本発明の一実施形態であるパチンコ機1について、図面を参照して詳細に説明する。まず、図1乃至図9を参照して本実施形態のパチンコ機1の全体構成について説明する。図1は本発明の一実施形態であるパチンコ機の正面図である。図2はパチンコ機の右側面図であり、図3はパチンコ機の平面図であり、図4はパチンコ機の背面図である。図5はパチンコ機を前から見た斜視図であり、図6はパチンコ機を後ろから見た斜視図である。図7は本体枠から扉枠3を開放させると共に、外枠2から本体枠4を開放させた状態で前から見たパチンコ機の斜視図である。図8はパチンコ機を扉枠3、遊技盤5、本体枠4、及び外枠2に分解して前から見た分解斜視図であり、図9はパチンコ機を扉枠3、遊技盤5、本体枠4、及び外枠2に分解して後ろから見た分解斜視図である。
本実施形態のパチンコ機1は、遊技ホールの島設備(図示しない)に設置される枠状の外枠2と、外枠2の前面を開閉可能に閉鎖する扉枠3と、扉枠3を開閉可能に支持していると共に外枠2に開閉可能に取付けられている本体枠4と、本体枠4に前側から着脱可能に取付けられると共に扉枠3を通して遊技者側から視認可能とされ遊技者によって遊技球が打込まれる遊技領域5aを有した遊技盤5と、を備えている。
パチンコ機1の外枠2は、図8及び図9等に示すように、上下に離間しており左右に延びている上枠部材10及び下枠部材20と、上枠部材10及び下枠部材20の両端同士を連結しており上下に延びている左枠部材30及び右枠部材40と、を備えている。上枠部材10、下枠部材20、左枠部材30、及び右枠部材40は、前後の幅が同じ幅に形成されている。また、上枠部材10及び下枠部材20の左右の長さに対して、左枠部材30及び右枠部材40の上下の長さが、長く形成されている。
また、外枠2は、左枠部材30及び右枠部材40の下端同士を連結し下枠部材20の前側に取付けられる幕板部材50と、上枠部材10の正面視左端部側に取付けられている外枠側上ヒンジ部材60と、幕板部材50の正面視左端側上部と左枠部材30とに取付けられている外枠側下ヒンジ部材70と、を備えている。外枠2の外枠側上ヒンジ部材60と外枠側下ヒンジ部材70とによって、本体枠4及び扉枠3が開閉可能に取付けられている。
パチンコ機1の扉枠3は、正面視の外形が四角形で前後に貫通している貫通口111を有した枠状の扉枠ベースユニット100と、扉枠ベースユニット100の前面下部に取付けられ遊技球を貯留可能な上皿201及び下皿202を有した皿ユニット200と、扉枠ベースユニット100の前面上部に取付けられるトップユニット350と、扉枠ベースユニット100の前面左部に取付けられる左サイドユニット400と、扉枠ベースユニット100の前面右部に取付けられる右サイドユニット450と、扉枠ベースユニット100の前面右下部に皿ユニット200を貫通して取付けられ上皿201に貯留された遊技球を遊技盤5の遊技領域内へ打込むために遊技者が操作可能なハンドルユニット500と、扉枠ベースユニット100の後面下部に取付けられ遊技領域内へ打ち損じた遊技球を受けて皿ユニット200の下皿202へ排出するファールカバーユニット520と、扉枠ベースユニット100の後面下部に取付けられ上皿201の遊技球を球発射装置680へ送るための球送りユニット540と、扉枠ベースユニット100の後面に取付けられ貫通口111を閉鎖するガラスユニット560と、ガラスユニット560の後面下部を覆う防犯カバー580と、を備えている。
パチンコ機1の本体枠4は、一部が外枠2の枠内に挿入可能とされると共に遊技盤5の外周を支持可能とされた枠状の本体枠ベース600と、本体枠ベース600の正面視左側の上下両端に取付けられ外枠2の外枠側上ヒンジ部材60及び外枠側下ヒンジ部材70に夫々回転可能に取付けられると共に扉枠3の扉枠側上ヒンジ部材140及び扉枠側下ヒンジ部材150が夫々回転可能に取付けられる本体枠側上ヒンジ部材620及び本体枠側下ヒンジ部材640と、本体枠ベース600の正面視左側面に取付けられる補強フレーム660と、本体枠ベース600の前面下部に取付けられており遊技盤5の遊技領域5a内に遊技球を打込むための球発射装置680と、本体枠ベースの正面視右側面に取付けられており外枠2と本体枠4、及び扉枠3と本体枠4の間を施錠する施錠ユニット700と、本体枠ベース600の正面視上辺及び左辺に沿って後側に取付けられており遊技者側へ遊技球を払出す逆L字状の払出ユニット800と、本体枠ベース600の後面下部に取付けられている基板ユニット900と、本体枠ベース600の後側に開閉可能に取付けられ本体枠ベース600に取付けられた遊技盤5の後側を覆う裏カバー980と、を備えている。
裏カバー980の内部には、パチンコ機1で行われる遊技の進行にかかる制御を行う主制御ユニット1300が設けられる。主制御ユニット1300には役物比率表示器が設けられる。役物比率表示器1317は、例えば、4桁の7セグメントLEDによって構成される。液晶表示装置によって役物比率表示器1317を構成してもよい。なお、役物比率表示器1317を主制御ユニット1300ではなく、払出制御基板ユニット950に設けられてもよい。
また、役物比率を表示する表示装置を別に設けず、液晶表示装置1600、3114、244に役物比率を表示してもよい。この場合、液晶表示装置1600、3114、244のいずれかに役物比率を常時表示すると、役物比率を遊技者に報知でき、遊技者がパチンコ機の調子を確認できてよい。
役物比率は、後述するように、役物獲得球数÷総獲得球数で計算でき、例えば役物比率の数値が高い(例えば、90%)のパチンコ機は、大当たりによって多くの賞球が得られているので、調子がよいといえる。一方、役物比率の数値が低い(例えば、10%)のパチンコ機は、大当たり遊技が少なく、大当たり中の賞球が少ないので、調子が悪いといえる。したがって、遊技者は、役物比率の数値を考慮して、遊技するパチンコ機を選択できる。
遊技者に役物比率を報知する態様として、役物比率の数値をメイン液晶表示装置1600に表示してもよい。例えば、役物比率が70%以上の場合は赤色で数値を表示し、枠ランプを赤点灯または点滅し、69%~30%の場合は緑色で数値を表示し、枠ランプを緑点灯または点滅する。役物比率の数値は、装飾図柄と間違えないような態様で表示するとよい。例えば、変動していないときの装飾図柄の表示位置と重ならない位置に表示したり、役物比率を示す数字の大きさを装飾図柄より小さくするなどの態様で表示するとよい。表示態様は何段階に分けてもよい。
また、役物比率の数値によってメイン液晶表示装置1600に表示される装飾図柄の態様を変えて、役物比率を遊技者に報知してもよい。例えば、役物比率が70%以上の場合は赤色で装飾図柄を表示し、枠ランプを赤点灯または点滅し、69%~30%の場合は緑色で装飾図柄を表示し、枠ランプを緑点灯または点滅する。表示態様は何段階に分けてもよい。
また、扉枠3に備わる液晶表示装置244に表示してもよい。その際、上述した表示態様を変えてもよいし、役物比率だけでなく、他の情報とともに表示してもよい。他の情報とは、大当たり回数や大当たりの連続回数(所謂、連チャン回数)や持ち球数、残り残金などである。
また、役物比率に限らず、後述する連続役物比率やベース値などを、前述したように態様を変化させて表示してもよい。役物比率、連続役物比率、ベース値は、各々表示態様を変えてもよい。
主制御ユニット1300は、図13に示すように、一度閉めたら破壊せずに開けることができない構造で封印された透明の樹脂製の主制御基板ボックス1320に封入されており、プリント基板上に配置された部品を外部から見ることができる。さらに、例えば、裏カバー980が透明な樹脂で形成されている場合、パチンコ機1の裏面側から主制御ユニット1300を見ることができ、主制御ユニット1300に設けられる役物比率表示器1317をパチンコ機1の裏面側から見ることができる。役物比率表示器1317を主制御基板ボックス1320内に封入することによって、パチンコ機1の射幸性を低く見せるための役物比率表示器1317の不正な改造を防止でき、パチンコ機1の正確な射幸性を表示できる。
なお、裏カバー980が不透明な樹脂で形成されている場合、役物比率表示器1317の位置の裏カバー980に穴を開けたり、役物比率表示器1317の位置を透明にすることによって、パチンコ機1の裏面側から役物比率表示器1317を見られるようにしてもよい。
また、裏カバー980が透明な樹脂で形成されている場合でも、役物比率表示器1317の位置の裏カバー980の表面を平坦に形成したり、裏カバー980を薄く形成することによって、役物比率表示器1317をパチンコ機1の裏面側から見やすくしてもよい。
パチンコ機1の裏面下方には、アウト口1111や入賞口2001、2005、2006などを経由して遊技領域5aから流出した遊技球を集合し、パチンコ機1の外部に排出する排出口が設けられている。なお、排出口から排出された遊技球は、島設備を通じて球タンク802に供給される。本実施例のパチンコ機1には、排出口から排出される遊技球を検出する排出球センサ3060を設ける。
図13に示すように、主制御ユニット1300には表示スイッチ1318が設けられる。主制御基板ボックス1320には、表示スイッチ1318が操作可能な穴が設けられる。表示スイッチ1318の近傍のプリント基板上又は主制御基板ボックス1320に、役物比率の表示を操作するためのスイッチであることを表示(印刷、刻印、シールなど)するとよい。なお、表示スイッチ1318は、役物比率表示器1317の近くに設けることが望ましいが、主制御ユニット1300ではなくても、操作が容易な場所であれば、他の基板(例えば、演出制御基板4700、電源装置4112)や筐体4100や前面部材4200に設けてもよい。周辺制御ユニット1500や、主制御ユニット1300とは別体で設けられた中継基板や、枠側の電源基板ボックス930内の電源基板や、払出制御基板ユニット950に設けられてもよい。また、後述するように、表示スイッチ1318はRAMクリアスイッチと兼用してもよい。表示スイッチ1318を遊技者が操作できない位置に設けることで、遊技者が誤って操作することを防止できる。
本体枠4の払出ユニット800は、本体枠ベース600の後側に取付けられる逆L字状の払出ユニットベース801と、払出ユニットベース801の上部に取付けられており上方へ開放された左右に延びた箱状で図示しない島設備から供給される遊技球を貯留する球タンク802と、球タンク802の下側で払出ユニットベース801に取付けられており球タンク802内の遊技球を正面視左方向へ誘導する左右に延びたタンクレール803と、払出ユニットベース801における正面視左側上部の後面に取付けられタンクレール803からの遊技球を蛇行状に下方へ誘導する球誘導ユニット820と、球誘導ユニット820の下側で払出ユニットベース801から着脱可能に取付けられており球誘導ユニット820により誘導された遊技球を払出制御基板ユニット950に収容された払出制御基板951(図17を参照)からの指示に基づいて一つずつ払出す払出装置830と、払出ユニットベース801の後面に取付けられ払出装置830によって払出された遊技球を下方へ誘導すると共に皿ユニット200における上皿201での遊技球の貯留状態に応じて遊技球を通常放出口又は満タン放出口の何れかから放出させる上部満タン球経路ユニット850と、払出ユニットベース801の下端に取付けられ上部満タン球経路ユニット850の通常放出口から放出された遊技球を前方へ誘導して前端から扉枠3の貫通球通路526へ誘導する通常誘導路及び満タン放出口から放出された遊技球を前方へ誘導して前端から扉枠3の満タン球受口530へ誘導する満タン誘導路を有した下部満タン球経路ユニット860と、を備えている。
本体枠4の基板ユニット900は、本体枠ベース600の後側に取付けられる基板ユニットベース910と、基板ユニットベース910の正面視左側で本体枠ベース600の後側に取付けられ内部に低音用のスピーカ921を有したスピーカユニット920と、基板ユニットベース910の後側で正面視右側に取付けられ内部に電源基板が収容されている電源基板ボックス930と、スピーカユニット920の後側に取付けられており内部にインターフェイス制御基板が収容されているインターフェイス制御基板ボックス940と、電源基板ボックス930及びインターフェイス制御基板ボックス940に跨って取付けられており内部に遊技球の払出しを制御する払出制御基板951が収容された払出制御基板ユニット950と、を備えている。
パチンコ機1の遊技盤5は、図8及び図9等に示すように、遊技球が打込まれる遊技領域5aの外周を区画し球発射装置680から発射された遊技球を遊技領域5aの上部に案内する外レール1001及び内レール1002を有した前構成部材1000と、前構成部材1000の後側に取付けられると共に遊技領域5aの後端を区画する平板状の遊技パネル1100と、遊技パネル1100の後側の下部に取付けられており上方に開放された箱状の基板ホルダ1200と、基板ホルダ1200の後側に取付けられておりパチンコ機1の遊技を制御するための主制御基板1310を有している主制御ユニット1300と、遊技パネル1100の前側で遊技領域5a内に取付けられ遊技領域5a内に打込まれた遊技球を受入可能な複数の入賞口を有した表ユニット(図示は省略)と、基板ホルダ1200の上側で遊技パネル1100の後側に取付けられている裏ユニット3000と、を備えている。
本実施形態のパチンコ機1は、上皿201に遊技球を貯留した状態で、遊技者がハンドルレバー504を回転操作すると、球発射装置680によってハンドルレバー504の回転角度に応じた強さで遊技球が遊技盤5の遊技領域5a内へ打込まれる。そして、遊技領域5a内に打込まれた遊技球が、図示しない入賞口に受入れられると、受入れられた入賞口に応じて、所定数の遊技球が払出装置830によって上皿201に払出される。この遊技球の払出しによって遊技者の興趣を高めることができるため、上皿201内の遊技球を遊技領域5a内へ打込ませることができ、遊技者に遊技を楽しませることができる。
[2.遊技盤の全体構成]
次に、パチンコ機1の遊技盤5の全体構成について、図10乃至図16を参照して詳細に説明する。図10は、遊技盤の正面図である。図11は遊技盤を右前から見た斜視図であり、図12は遊技盤を左前から見た斜視図であり、図13は遊技盤を後ろから見た斜視図である。また、図14は遊技盤を主な構成毎に分解して前から見た分解斜視図であり、図15は遊技盤を主な構成毎に分解して後ろから見た分解斜視図である。更に、図16は、遊技盤における前構成部材及び表ユニットを遊技領域内の前後方向の略中央で切断した正面図である。
本実施形態の遊技盤5は、遊技者がハンドルユニット500のハンドルレバー504を操作することで遊技球が打込まれる遊技領域5aを有している。また、遊技盤5は、遊技領域5aの外周を区画し外形が正面視略四角形状とされた前構成部材1000と、前構成部材1000の後側に取付けられており遊技領域5aの後端を区画する板状の遊技パネル1100と、遊技パネル1100の後側下部に取付けられている基板ホルダ1200と、基板ホルダ1200の後面に取付けられており遊技球を遊技領域5a内へ打込むことで行われる遊技内容を制御する主制御基板1310(図17を参照)を有している主制御ユニット1300と、を備えている。遊技パネル1100の前面において遊技領域5a内となる部位には、遊技球と当接する複数の障害釘が所定のゲージ配列で植設されている(図示は省略)。
また、遊技盤5は、主制御基板1310からの制御信号に基づいて遊技状況を表示し前構成部材1000の左下隅に遊技者側へ視認可能に取付けられている機能表示ユニット1400と、遊技パネル1100の後側に取付けられている周辺制御ユニット1500と、正面視において遊技領域5aの中央に配置されており所定の演出画像を表示可能なメイン液晶表示装置1600と、遊技パネル1100の前面に取付けられる表ユニット2000と、遊技パネル1100の後面に取付けられる裏ユニット3000と、を更に備えている。裏ユニット3000の後面にメイン液晶表示装置1600が取付けられていると共に、メイン液晶表示装置1600の後面に周辺制御ユニット1500が取付けられている。
遊技パネル1100は、外周が枠状の前構成部材1000の内周よりもやや大きく形成されていると共に透明な平板状のパネル板1110と、パネル板1110の外周を保持しており前構成部材1000の後側に取付けられると共に後面に裏ユニット3000が取付けられる枠状のパネルホルダ1120と、を備えている。
表ユニット2000は、遊技領域5a内に打込まれた遊技球を受入可能に常時開口している複数の一般入賞口2001と、複数の一般入賞口2001とは遊技領域5a内の異なる位置で遊技球を受入可能に常時開口している第一始動口2002と、遊技領域5a内の所定位置に取付けられており遊技球の通過を検知するゲート部2003と、遊技球がゲート部2003を通過することにより抽選される普通抽選結果に応じて遊技球の受入れが可能となる第二始動口2004と、第一始動口2002又は第二始動口2004への遊技球の受入れにより抽選される第一特別抽選結果又は第二特別抽選結果に応じて遊技球の受入れが何れかにおいて可能となる第一大入賞口2005及び第二大入賞口2006と、を備えている。第二大入賞口2006は、遊技球が流通する一つの流路に配置された第二上大入賞口2006aと第二下大入賞口2006bとの二つの大入賞口により構成されている(図16を参照)。
また、表ユニット2000は、遊技領域5a内の左右方向中央でアウト口1111の直上に取付けられており第一始動口2002及び第一大入賞口2005を有している始動口ユニット2100と、始動口ユニット2100の正面視左方で内レール1002に沿って取付けられており三つの一般入賞口2001を有しているサイドユニット下2200と、サイドユニット下2200の正面視左端上方に取付けられているサイドユニット上2300と、遊技領域5a内の略中央に取付けられており一つの一般入賞口2001、ゲート部2003、第二始動口2004、及び第二大入賞口2006を有している枠状のセンター役物2500と、を備えている。
裏ユニット3000は、パネルホルダ1120の後面に取付けられ前方が開放されている箱状で後壁に四角い開口部3010aを有している裏箱3010と、裏箱3010内の所定位置に配置されており表ユニット2000の一般入賞口2001に受入れられた遊技球を検知する複数の一般入賞口センサ3015と、裏箱3010の後面に取付けられておりメイン液晶表示装置1600を着脱可能に取付けるためのロック機構3020と、裏箱3010内の正面視右端に取付けられておりセンター役物2500の一般入賞口2001や第二始動口2004に受入れられた遊技球を排出するための右球通路ユニット3030と、裏箱3010内の正面視右下隅の前端付近に取付けられておりセンター役物2500の第二大入賞口2006や第二アウト口2543cに受入れられた遊技球を排出するための右下球通路ユニット3035と、を備えている。
また、裏ユニット3000は、裏箱3010の後面に取付けられている上中継基板3040と、上中継基板3040の後側を覆う上中継基板カバー3041と、裏箱3010の後面に回動可能に取付けられている箱状の演出駆動基板ボックス3042と、演出駆動基板ボックス3042内に収容されている演出駆動基板3043と、裏箱3010の後面に取付けられているパネル中継基板3044と、パネル中継基板3044の後側を覆うパネル中継基板カバー3045と、を備えている。
更に、裏ユニット3000は、裏箱3010内の前端で正面視左辺側の上下方向中央から上寄りに取付けられている裏左中装飾ユニット3050と、裏箱3010内における開口部3010aの下方で裏箱3010の後壁付近に取付けられている裏下後可動演出ユニット3100と、裏箱3010内における開口部3010aの上方で正面視左側に取付けられている裏上左可動演出ユニット3200と、裏箱3010内で開口部3010aの正面視左側に取付けられている裏左可動演出ユニット3300と、裏箱3010内における開口部3010aの上方で左右方向中央から正面視右端までにかけて取付けられている裏上中可動演出ユニット3400と、裏箱3010内における開口部3010aの下方で裏下後可動演出ユニット3100の前方に取付けられている裏下前可動演出ユニット3500と、を備えている。
[2-1.前構成部材]
次に、前構成部材1000について、主に図14及び図15を参照して説明する。前構成部材1000は、正面視の外形が略正方形とされ、内形が略円形状に前後方向へ貫通しており、内形の内周によって遊技領域5aの外周を区画している。この前構成部材1000は、正面視で左右方向中央から左寄りの下端から時計回りの周方向へ沿って円弧状に延び正面視左右方向中央上端を通り過ぎて右斜め上部まで延びた外レール1001と、外レール1001に略沿って前構成部材1000の内側に配置され正面視左右方向中央下部から正面視左斜め上部まで円弧状に延びた内レール1002と、内レール1002の下端の正面視右側で遊技領域5aの最も低くなった位置に形成されており後方へ向かって低くなるように傾斜しているアウト誘導部1003と、を備えている。
また、前構成部材1000は、アウト誘導部1003の正面視右端から前構成部材1000の右辺付近まで右端側が僅かに高くなるように直線状に傾斜している右下レール1004と、右下レール1004の右端から前構成部材1000の右辺に沿って外レール1001の上端の下側まで延びており上部が前構成部材1000の内側へ湾曲している右レール1005と、右レール1005の上端と外レール1001の上端とを繋いでおり外レール1001に沿って転動して来た遊技球が当接する衝止部1006と、を備えている。
また、前構成部材1000は、内レール1002の上端に回動可能に軸支され、外レール1001との間を閉鎖するように内レール1002の上端から上方へ延出した閉鎖位置と正面視時計回りの方向へ回動して外レール1001との間を開放した開放位置との間でのみ回動可能とされると共に閉鎖位置側へ復帰するように図示しないバネによって付勢された逆流防止部材1007を、備えている。
レール1001、1002の出口付近(望ましくは、逆流防止部材1007を通過した直後)の遊技盤5の裏面側には、遊技領域5aに打ち込まれた遊技球を検出する発射球センサ1020を設ける。例えば、発射球センサ1020は、磁気センサで構成し、逆流防止部材1007を通過して遊技領域5aに流入した遊技球を検出すると、信号を出力する。なお、発射球センサ1020は、遊技領域内で遊技球が必ず通過する位置に設けてもよい。遊技盤5における発射球センサ1020の位置を固定化することによって、複数機種間で仕様を共通化でき、製造現場での検査やホールでの設置後検査が容易になる。
また、レール1001、1002の出口付近などの遊技領域5aの上流に設けた発射球センサ1020は、入賞口センサが遊技球の入賞を検出する前にアウト球を検出する。すなわち、アウト球、賞球の順で遊技球を検出するので、アウト球として計数されていない遊技球に起因した賞球を検出せず、正確にベース値を計算できる。
[2-2.遊技パネル]
次に、遊技パネル1100について、主に図14及び図15を参照して説明する。遊技パネル1100は、外周が枠状の前構成部材1000の内周よりもやや大きく形成されていると共に透明な合成樹脂で形成されている平板状のパネル板1110と、パネル板1110の外周を保持しており前構成部材1000の後側に取付けられると共に後面に裏ユニット3000が取付けられる枠状のパネルホルダ1120と、を備えている。遊技パネル1100のパネル板1110は、遊技領域5a内において最も低い位置となる部位に前後に貫通しているアウト口1111が形成されている。また、パネル板1110には、前後に貫通しており表ユニット2000を取付けるための開口部1112が複数形成されている。
遊技パネル1100のパネルホルダ1120は、パネル板1110を後側から着脱可能に保持している。また、パネルホルダ1120は、裏ユニット3000を取付けるための取付孔と、位置決め孔とが後面に複数形成されている。
遊技パネル1100を前構成部材1000の後側に取付けた状態では、前構成部材1000のアウト誘導部1003の後側にパネル板1110のアウト口1111が開口した状態となる。これにより、遊技領域5aの下端へ流下した遊技球が、アウト誘導部1003によって後側のアウト口1111へ誘導され、アウト口1111を通って遊技パネル1100の後側へ排出される。
[2-3.基板ホルダ]
次に、基板ホルダ1200について、図11乃至図15を参照して説明する。基板ホルダ1200は、上方及び前方が開放された横長の箱状に形成されており、底面が左右方向中央へ向かって低くなるように傾斜している。この基板ホルダ1200は、遊技盤5に組立てた状態では、遊技パネル1100の後側に取付けられている裏ユニット3000の下部を下側から覆うことができる。これにより、アウト口1111を通って遊技パネル1100の後側へ排出された遊技球、及び、表ユニット2000及び裏ユニット3000から下方へ排出された遊技球、を全て受けることができ、底面に形成された排出部1201(図14を参照)から下方へ排出させることができる。
[2-4.主制御基板ユニット]
次に、主制御ユニット1300について、図11乃至図15、及び図17を参照して説明する。主制御ユニット1300は、基板ホルダ1200の後面に着脱可能に取付けられている。この主制御ユニット1300は、遊技内容及び遊技球の払出し等を制御する主制御基板1310と、主制御基板1310を収容しており基板ホルダ1200に取付けられる主制御基板ボックス1320と、を備えている。
主制御基板ボックス1320は、複数の封印機構を備えており、一つの封印機構を用いて主制御基板ボックス1320を閉じると、次に、主制御基板ボックス1320を開けるためにはその封印機構を破壊する必要があり、主制御基板ボックス1320の開閉の痕跡を残すことができる。従って、開閉の痕跡を見ることで、主制御基板ボックス1320の不正な開閉を発見することができ、主制御基板1310への不正行為に対する抑止力が高められている。
[2-5.機能表示ユニット]
次に、機能表示ユニット1400について、図10乃至図12を参照して説明する。機能表示ユニット1400は、図示するように、遊技領域5aの外側で前構成部材1000の左下隅に取付けられている。この機能表示ユニット1400は、遊技盤5をパチンコ機1に組立てた状態で、扉枠3の貫通口111を通して前方(遊技者側)から視認することができる(図1を参照)。この機能表示ユニット1400は、主制御基板1310からの制御信号に基づき複数のLEDを用いて、遊技状態(遊技状況)や、普通抽選結果や特別抽選結果等を表示するものである。
機能表示ユニット1400は、詳細な図示は省略するが、遊技状態を表示する一つのLEDからなる状態表示器と、ゲート部2003に対する遊技球の通過により抽選される普通抽選結果に基づいて二つのLEDを点滅制御することにより普通図柄を変動表示した後にこれら二つのLEDを普通抽選結果に応じた点灯態様で表示させる普通図柄表示器と、ゲート部2003に対する遊技球の通過に係る普通図柄の変動表示のうち未だ変動表示の開始条件が成立していない変動表示の個数である保留数を表示する二つのLEDからなる普通保留表示器と、第一始動口2002への遊技球の受入れ(始動入賞の発生)により抽選された第一特別抽選結果に基づいて八つのLEDを点滅制御することにより第一特別図柄を変動表示した後にこれら八つのLEDを第一特別抽選結果に応じた点灯態様で表示させる第一特別図柄表示器と、第一始動口2002への遊技球の受入れに係る第一特別図柄の変動表示のうち未だ変動表示の開始条件が成立していない変動表示の個数である保留数を表示する二つのLEDからなる第一特別保留数表示器と、第二始動口2004への遊技球の受入れ(始動入賞の発生)により抽選された第二特別抽選結果に基づいて八つのLEDを点滅制御することにより第二特別図柄を変動表示した後にこれら八つのLEDを第二特別抽選結果に応じた点灯態様で表示させる第二特別図柄表示器と、第二始動口2004への遊技球の受入れに係る第二特別図柄の変動表示のうち未だ変動表示の開始条件が成立していない変動表示の個数である保留数を表示する二つのLEDからなる第二特別保留数表示器と、第一特別抽選結果又は第二特別抽選結果が「大当り」等の時に、第一大入賞口2005や第二大入賞口2006の開閉パターンの繰返し回数(ラウンド数)を表示する二つのLEDからなるラウンド表示器と、を主に備えている。なお、機能表示ユニット1400の一部の表示器(例えば、第一特別図柄表示器)を7セグメントLEDで構成してもよい。
この機能表示ユニット1400では、備えられているLEDを、適宜、点灯、消灯、及び、点滅、等させることにより、保留数や図柄等を表示することができる。
[2-6.周辺制御ユニット]
次に、周辺制御ユニット1500について、図13及び図15を参照して説明する。周辺制御ユニット1500は、裏ユニット3000の裏箱3010の後面に取付けられている。周辺制御ユニット1500は、主制御基板1310からの制御信号に基づいて遊技者に提示する演出を制御する周辺制御基板1510(図17を参照)と、周辺制御基板1510を収容している周辺制御基板ボックス1520と、を備えている。周辺制御基板1510は、発光演出、サウンド演出、及び可動演出、等を制御するための周辺制御部1511と、演出画像を制御するための液晶表示制御部1512と、を備えている(図17を参照)。
[2-7.メイン液晶表示装置]
次に、メイン液晶表示装置1600について、図10乃至図16を参照して説明する。メイン液晶表示装置1600は、正面視において遊技領域5aの中央に配置されており、遊技パネル1100の後側に裏ユニット3000の裏箱3010を介して取付けられている。詳述すると、メイン液晶表示装置1600は、裏箱3010の後壁の略中央の後面に対して、着脱可能に取付けられている。このメイン液晶表示装置1600は、遊技盤5を組立てた状態で、枠状のセンター役物2500の枠内を通して、前側(遊技者側)から視認することができる。このメイン液晶表示装置1600は、白色LEDをバックライトとしたフルカラーの表示装置であり、静止画像や動画を表示することができる。
メイン液晶表示装置1600は、図14及び図15に示すように、正面視左側面から外方へ突出している二つの左固定片1601と、正面視右側面から外方へ突出している右固定片1602と、を備えている。このメイン液晶表示装置1600は、液晶画面を前方へ向けた状態で、後述する裏箱3010の枠状の液晶取付部内の正面視左内周面に開口している二つの固定溝3010cに、裏箱3010の斜め後方から二つの左固定片1601を挿入した上で、右固定片1602側を前方へ移動させて、右固定片1602をロック機構3020の開口部内に挿入し、ロック機構3020を下方へスライドさせることにより、裏箱3010に取付けられる。
[2-8.表ユニットの全体構成]
次に、表ユニット2000について、主に図10乃至図12、図14乃至図16を参照して説明する。遊技盤5の表ユニット2000は、遊技パネル1100のパネル板1110に、前方から取付けられており、前端がパネル板1110の前面よりも前方へ突出していると共に、後端が開口部1112を貫通してパネル板1110の後面よりも後方へ突出している。本実施形態の表ユニット2000は、遊技領域5a内に打込まれた遊技球を受入可能としており常時開口している複数の一般入賞口2001と、複数の一般入賞口2001とは遊技領域5a内の異なる位置で遊技球を受入可能に常時開口している第一始動口2002と、遊技領域5a内の所定位置に取付けられており遊技球の通過を検知するゲート部2003と、遊技球がゲート部2003を通過することにより抽選される普通抽選結果に応じて遊技球の受入れが可能となる第二始動口2004と、第一始動口2002又は第二始動口2004への遊技球の受入れにより抽選される第一特別抽選結果又は第二特別抽選結果に応じて何れかにおいて遊技球の受入れが可能となる第一大入賞口2005及び第二大入賞口2006と、を備えている。
複数(ここでは四つ)の一般入賞口2001は、三つが遊技領域5a内の下部に配置されており、残りの一つが遊技領域5a内における正面視右上付近に配置されている。第一始動口2002は、遊技領域5a内の左右方向中央でアウト口1111の直上に配置されている。ゲート部2003は、遊技領域5a内における正面視右上で衝止部1006の略直下に配置されている。第二始動口2004は、ゲート部2003の直下から正面視右寄りに配置されている。上述した複数の一般入賞口2001のうち遊技領域5a内の正面視右上付近に配置されている一般入賞口2001は、第二始動口2004の直上に配置されている。第一大入賞口2005は、第一始動口2002とアウト口1111との間に配置されている。第二大入賞口2006は、第一始動口2002の正面視右方で第一大入賞口2005よりも上方に配置されている。
表ユニット2000における第二大入賞口2006は、図16に示すように、遊技球が流通する一つの流路に沿って配置された第二上大入賞口2006aと第二下大入賞口2006bとにより構成されている。第二大入賞口2006は、第二上大入賞口2006aが遊技領域5a内における正面視右下付近に配置されており、第二下大入賞口2006bが第二上大入賞口2006aの正面視左側で下方に配置されている。
また、表ユニット2000は、遊技領域5a内の左右方向中央でアウト口1111の直上に取付けられており第一始動口2002及び第一大入賞口2005を有している始動口ユニット2100と、始動口ユニット2100の正面視左方で内レール1002に沿って取付けられており三つの一般入賞口2001を有しているサイドユニット下2200と、サイドユニット下2200の正面視左端上方に取付けられているサイドユニット上2300と、遊技領域5a内の略中央に取付けられており一つの一般入賞口2001、ゲート部2003、第二始動口2004、及び第二大入賞口2006を有している枠状のセンター役物2500と、を備えている。
[2-8a.始動口ユニット]
次に、表ユニット2000の始動口ユニット2100について、説明する。始動口ユニット2100は、遊技領域5a内において、左右方向中央の下端部付近でアウト口1111の直上に配置されており、パネル板1110に前方から取付けられている。この始動口ユニット2100は、第一始動口2002及び第一大入賞口2005を有している。
始動口ユニット2100は、パネル板1110の前面に取付けられ左右に延びた矩形状で前後に貫通している第一大入賞口2005を有した平板状のユニットベース2101と、ユニットベース2101における第一大入賞口2005の上方で左右方向略中央の上部から前方へ突出しており第一始動口2002を形成している球受部2102と、ユニットベース2101の後側に取付けられており第一始動口2002に受入れられた遊技球を下方へ誘導する球誘導部2103と、球誘導部2103に取付けられており第一始動口2002に受入れられた遊技球を検知する第一始動口センサ2104と、第一大入賞口2005を閉鎖するようにユニットベース2101の後面に取付けられている第一アタッカユニット2110と、を備えている。
始動口ユニット2100の第一アタッカユニット2110は、第一大入賞口2005を後方から閉鎖するようにユニットベース2101の後面に取付けられ前端が第一大入賞口2005と略同じ大きさで前方に開放されている箱状のユニットケース2111と、第一大入賞口2005を開閉可能にユニットケース2111の前端で下辺が回動可能に支持されている横長矩形状で平板状の第一大入賞口扉部材2112と、ユニットケース2111内に取付けられており第一大入賞口扉部材2112を開閉駆動させる第一アタッカソレノイド2113と、ユニットケース2111内に取付けられており第一大入賞口2005に受入れられた遊技球を検知する第一大入賞口センサ2114と、ユニットケース2111の上面に取付けられており第一始動口センサ2104、第一アタッカソレノイド、及び第一大入賞口センサ2114と主制御基板1310との接続を中継する始動口ユニット中継基板2115と、ユニットケース2111の下部に取付けられており第一大入賞口2005を発光装飾させるための始動口ユニット装飾基板(図示は省略)と、を備えている。
第一始動口2002を形成している球受部2102は、遊技球を一度に一つのみ受入可能な大きさで上方に向かって開口している。ユニットベース2101を貫通している第一大入賞口2005は、遊技球を一度に複数(例えば、4個~6個)受入可能な大きさで前方に向かって開口している。
始動口ユニット2100は、球受部2102により形成されている第一始動口2002が上方に向かって開口しており、第一始動口2002に受入れられた遊技球を、球誘導部2103によりユニットベース2101の後側で下方へ誘導し、第一始動口センサ2104に検知させた後に、第一アタッカユニット2110を貫通して下方へ排出させることができる。本実施形態では、第一始動口センサ2104が二つ備えられており、主制御基板1310では、所定の時間範囲内で二つの第一始動口センサ2104が遊技球を検知すると、第一始動口2002に遊技球が受入れられたと判断するようになっている。これにより、第一始動口2002への不正な工具の挿入による不正行為を検知することができる。
始動口ユニット2100では、ユニットベース2101の後面に第一アタッカユニット2110を取付けることにより、第一アタッカユニット2110の第一大入賞口扉部材2112が、ユニットベース2101に開口している第一大入賞口2005内に後方から挿入されて、第一大入賞口2005を閉鎖している。この第一大入賞口扉部材2112は、第一大入賞口2005を閉鎖している直立した状態で、下辺の左右両端部がユニットケース2111によって回動可能に取付けられており、上辺が前方且つ下方へ移動するように回動させることで第一大入賞口2005を閉状態から開状態とすることができる。
第一アタッカユニット2110の第一大入賞口扉部材2112は、通常の状態(第一アタッカソレノイド2113が非通電の状態)では直立して、第一大入賞口2005を閉鎖している。そして、第一アタッカソレノイド2113が遊技状態に応じて通電されると、上辺が前方且つ下方へ移動するように第一大入賞口扉部材2112が回動して、上辺が下辺よりもやや上方へ位置した状態となる。つまり、第一大入賞口扉部材2112が、第一大入賞口2005の下辺から前方へ向かって高くなるように傾斜した状態となる。
この状態で第一大入賞口2005の前方を遊技球が流下して第一大入賞口扉部材2112に当接すると、第一大入賞口扉部材2112の傾斜により遊技球の流通方向が下方から後方へと変化し、第一大入賞口2005に受入れられてユニットケース2111内に進入することとなる。そして、第一大入賞口2005に受入れられた遊技球は、第一大入賞口センサ2114により検知された後に、ユニットケース2111の下面から下方へ排出される。
[3.制御構成]
次に、パチンコ機1の各種制御を行う制御構成について、図17を参照して説明する。図17は、パチンコ機の制御構成を概略的に示すブロック図である。パチンコ機1の主な制御構成は、図示するように、遊技盤5に取付けられる主制御基板1310及び周辺制御基板1510と、本体枠4に取付けられる払出制御基板951と、から構成されており、夫々の制御が分担されている。主制御基板1310は、遊技動作(遊技の進行)を制御する。周辺制御基板1510は、主制御基板1310からのコマンドに基いて遊技中の各種演出装置を制御する周辺制御部1511と、周辺制御部1511からのコマンドに基いてメイン液晶表示装置1600や上皿液晶表示装置244等での演出画像の表示を制御する液晶表示制御部1512と、を備えている。払出制御基板951は、遊技球の払出し等を制御する払出制御部952と、ハンドルレバー504の回転操作による遊技球の発射を制御する発射制御部953と、を備えている。
[3-1.主制御基板]
遊技の進行を制御する主制御基板1310は、各種処理プログラムや各種コマンドを記憶するROM1313や一時的にデータを記憶するRAM1312等が内蔵されるマイクロプロセッサである主制御MPU1311と、入出力デバイス(I/Oデバイス)としての主制御I/Oポート1314と、各種検出スイッチからの検出信号が入力される主制御入力回路1315と、各種ソレノイドを駆動するための主制御ソレノイド駆動回路1316と、主制御MPU1311に内蔵されているRAMに記憶された情報を完全に消去するためのRAMクリアスイッチと、を備えている。主制御MPU1311は、その内蔵されたROMやRAMのほかに、その動作(システム)を監視するウォッチドッグタイマや不正を防止するための機能等も内蔵されている。
主制御基板1310の主制御MPU1311は、第一始動口2002に受入れられた遊技球を検出する第一始動口センサ2104、第二始動口2004に受入れられた遊技球を検出する第二始動口センサ2551、一般入賞口2001に受入れられた遊技球を検出する一般入賞口センサ3015、ゲート部2003を通過した遊技球を検知するゲートセンサ2547、第一大入賞口2005に受入れられた遊技球を検知する第一大入賞口センサ2114、第二大入賞口2006としての第二上大入賞口2006a及び第二下大入賞口2006bに受入れられた遊技球を検知する第二上大入賞口センサ2554及び第二下大入賞口センサ2557、排出球センサ3060、発射球センサ1020及び遊技領域5a内における不正な磁気を検知する磁気検出センサ、等からの検出信号が夫々主制御I/Oポート1314を介して入力される。
主制御MPU1311は、これらの検出信号に基づいて、主制御I/Oポート1314から主制御ソレノイド駆動回路に制御信号を出力することにより、始動口ソレノイド2550、第一アタッカソレノイド2113、第二上アタッカソレノイド2553、及び第二下アタッカソレノイド2556に駆動信号を出力したり、主制御I/Oポート1314から機能表示ユニット1400の第一特別図柄表示器、第二特別図柄表示器、第一特別図柄記憶表示器、第二特別図柄記憶表示器、普通図柄表示器、普通図柄記憶表示器、遊技状態表示器、ラウンド表示器、等に駆動信号を出力したりする。
なお、本実施形態おいて、第一始動口センサ2104、第二始動口センサ2551、ゲートセンサ2547、第一大入賞口センサ2114、第二上大入賞口センサ2554、及び第二下大入賞口センサ2557には、非接触タイプの電磁式の近接スイッチを用いているのに対して、一般入賞口センサ3015には、接触タイプのON/OFF動作式のメカニカルスイッチを用いている。これは、遊技球が、第一始動口2002や第二始動口2004に頻繁に入球すると共に、ゲート部2003を頻繁に通過するため、第一始動口センサ2104、第二始動口センサ2551、及びゲートセンサ2547による遊技球の検出も頻繁に発生する。このため、第一始動口センサ2104、第二始動口センサ2551、及びゲートセンサ2547には、耐久性が高く寿命の長い近接スイッチを用いている。また、遊技者にとって有利となる有利遊技状態(「大当り」遊技、等)が発生すると、第一大入賞口2005や第二大入賞口2006が開放(又は、拡大)されて遊技球が頻繁に入球するため、第一大入賞口センサ2114、第二上大入賞口センサ2554、及び第二下大入賞口センサ2557による遊技球の検出も頻繁に発生する。このため、第一大入賞口センサ2114、第二上大入賞口センサ2554、及び第二下大入賞口センサ2557にも、耐久性が高く寿命の長い近接スイッチを用いている。これに対して、遊技球が頻繁に入球しない一般入賞口2001には、一般入賞口センサ3015による検出も頻繁に発生しない。このため、一般入賞口センサ3015には、近接スイッチより寿命が短いメカニカルスイッチを用いている。
また、主制御MPU1311は、遊技に関する各種情報(遊技情報)及び払出しに関する各種コマンド等を払出制御基板951に送信したり、この払出制御基板951からのパチンコ機1の状態に関する各種コマンド等を受信したりする。更に、主制御MPU1311は、メイン液晶表示装置1600等で実行される遊技演出の制御に関する各種コマンド及びパチンコ機1の状態に関する各種コマンドを、主制御I/Oポート1314を介して周辺制御基板1510の周辺制御部1511に送信したりする。なお、主制御MPU1311は、払出制御基板951からパチンコ機1の状態に関する各種コマンドを受信すると、これらの各種コマンドを整形して周辺制御部1511に送信する。
主制御基板1310には、電源基板ボックス930内の電源基板から各種電圧が供給されている。この主制御基板1310に各種電圧を供給する電源基板は、電源遮断時にでも所定時間、主制御基板1310に電力を供給するためのバックアップ電源としての電気二重層キャパシタ(以下、単に「キャパシタ」と記載する。)を備えている。このキャパシタにより主制御MPU1311は、電源遮断時にでも電源断時処理において各種情報をRAM1312に記憶することができる。この記憶した各種情報は、電源投入時に主制御基板1310のRAMクリアスイッチが操作されると、RAM1312から完全に消去(クリア)される。このRAMクリアスイッチの操作信号(検出信号)は、払出制御基板951にも出力される。
また、主制御基板1310には、停電監視回路が設けられている。この停電監視回路は、電源基板から供給される各種電圧の低下を監視しており、それらの電圧が停電予告電圧以下となると、停電予告として停電予告信号を出力する。この停電予告信号は、主制御I/Oポート1314を介して主制御MPU1311に入力される他に、払出制御基板951等にも出力されている。
主制御基板1310には、パチンコ機1の裏面側から視認可能な位置に役物比率表示器1317が取り付けられる。役物比率表示器1317は、主制御MPU1311が計算した役物比率を表示する。
また、主制御基板1310には、表示スイッチ1318が設けられる。表示スイッチ1318は、モーメンタリ動作をする押ボタンスイッチで構成するとよいが、他の形式のスイッチでもよい。表示スイッチ1318を操作すると、役物比率表示器1317に役物比率を表示する。なお、役物比率表示器1317は常時、役物比率を表示し、表示スイッチ1318の操作によって表示内容を切り替えてもよい。
図18は、主制御MPU1311内の構成を示す図である。
主制御MPU1311は、CPU13111、RAM1312、ROM1313、乱数発生回路13112、パラレル入力ポート13113、シリアル通信回路13114、タイマ回路13115、割込コントローラ13116、外部バスインターフェイス13117、クロック回路13118、照合用ブロック13119、固有情報13120、演算回路13121及びリセット回路13122を有する。
CPU13111は、ROM1313に記憶されたプログラムを実行する。RAM1312は、プログラム実行時に必要なデータを記憶する。
主制御MPU1311には、一つ以上の乱数発生回路13112が設けられている。乱数発生回路13112は、変動表示ゲームの結果(第一特別抽選結果、第二特別抽選結果)の抽選結果や変動表示ゲームの演出内容を決定するための乱数を提供する。乱数発生回路13112は、例えば、主制御MPU1311に供給されるクロック周期(又は、該クロック周期を分周した信号)のタイミングで更新した乱数を出力する、いわゆるハード乱数生成手段である。乱数発生回路13112が生成するハード乱数は、特別図柄の当たりの抽選や、特別図柄変動表示ゲームの当たり図柄の抽選や、普通図柄の当たりの抽選に用いられる。
パラレル入力ポート13113は、主制御入力回路1315を経由して各種検出スイッチからの検出信号が入力されるポートである。
シリアル通信回路13114は、主制御I/Oポート1314を介して、遊技演出の制御に関する各種コマンド及びパチンコ機1の状態に関する各種コマンドを周辺制御基板1510の周辺制御部1511と送受信する。また、シリアル通信回路13114は、主制御I/Oポート1314を介して、遊技に関する各種情報(遊技情報)及び遊技球の払い出しに関する各種コマンド等を払出制御基板951と送受信する。さらに、シリアル通信回路13114は、役物比率を表示するためのデータを役物比率表示器1317に送信する。シリアル通信回路13114の詳細な構成は、図20を参照して後述する。
タイマ回路13115は、タイマ割り込みや各種時間制御のためのタイマである。割込コントローラ13116は、CPU13111に対する各種の割り込み(一般割り込み、ソフトウェアでマスク不可能なNMI)を制御する。すなわち、割込コントローラ13116が割り込みを検出した場合、割り込みの種類毎に定められた処理アドレステーブルを参照し、処理アドレステーブルに設定されたアドレスにジャンプする。
外部バスインターフェイス13117は、主制御MPU1311の内部バスを外部のデバイスと接続するためのインターフェイスである。外部バスインターフェイス13117からは、I/Oリクエスト(IORQ)、リード(RD)、ライト(WR)、16ビットのアドレス(A0~A15)、8ビットのデータ(D0~D7)が入出力できる。
クロック回路13118は、入力された外部クロック信号(例えば、32MHz)から主制御MPU1311の内部クロックを生成する。また、クロック回路13118は、入力されたクロック信号に、設定された数の分周をして、CLKO端子から外部に出力する。例えば、役物比率表示器1317のドライバ回路13171(図28参照)に供給するクロック信号を出力してもよい。
照合用ブロック13119は、ROM1313が不正に改造されていないかを所定のコードを用いて照合する機能ブロックである。固有情報13120は、主制御MPU1311に固有のIDであり、チップの製造時に書き換え不能に書き込まれている。
演算回路13121は、ROM1313に記録されたプログラムによらない演算機能を提供する。この演算機能は、チップの製造時に固定的に書き込まれている。
リセット回路13122は、指定外走行禁止回路、ウォッチドッグタイマ及びユーザリセット機能を有する。指定外走行禁止回路は、ROM1313の所定外のアドレスにCPU13111がアクセスした場合、不正なプログラムによるアクセスであると推定し、主制御MPU1311の動作をリセットする。ウォッチドッグタイマは、所定のタイマ時間が経過した際にタイムアウト信号を出力し、主制御MPU1311の動作をリセットする。ユーザリセット機能は、SRST端子に入力されたリセット信号によって、主制御MPU1311の動作をリセットする。
図19は、演算回路13121の詳細な構成を示すブロック図である。
演算回路13121は、演算結果についてプログラムによらない演算機能を提供するものであり、乗算回路131211及び除算回路131215を有する。
乗算回路131211は、所定ビット数(例えば、16ビット)の二つの値を乗じて、32ビットの積を出力する演算回路であり、乗算関数によって入力値(乗数、被乗数)を積に変換して出力する変換回路として機能する。
主制御MPU1311のCPU13111は、乗算入力レジスタA131212及び乗算入力レジスタB131213に16ビット以下の乗数及び被乗数を格納する。乗算回路131211は、二つの16ビットの乗算入力レジスタ131212、131213に格納された値を所定のタイミングで読み出し、二つの値を乗じた結果を乗算結果レジスタ131214に格納する。CPU13111は、乗算結果レジスタ131214から乗算結果を取得する。乗算入力レジスタ131212、131213への値の書き込みから乗算結果レジスタ131214への演算結果の格納までは、所定の時間(例えば1クロック)で完了するように構成されており、CPU13111は、乗算入力レジスタ131212、131213に値を格納して、所定のクロック数が経過した後に、乗算結果レジスタ131214を参照して乗算結果を取得できる。
除算回路131215は、所定ビット数(例えば、32ビット)の被除数を所定ビット数(例えば、32ビット)の除数で割って、32ビットの商と32ビットの剰余を出力する演算回路であり、除算関数によって入力値(除数、被除数)を商及び剰余変換して出力する変換回路として機能する。
主制御MPU1311のCPU13111は、除算入力レジスタA131216に32ビット以下の被除数を格納し、除算入力レジスタB131217に32ビット以下の除数を格納する。除算回路131215は、二つの32ビットの除算入力レジスタ131216、131217の両方に値が格納されことを検出すると、格納された値を所定のタイミングで読み出し、被除数を除数で割った結果である商を除算結果レジスタA131218に格納し、剰余を除算結果レジスタB131219に格納する。また、除算回路131215は、除算入力レジスタ131216、131217に格納された値を読み込むと、読み込んだ値を消去し、当該レジスタをクリアするとよい。また、除算回路131215は、スタート命令が入力されたタイミングで、除算入力レジスタ131216、131217に格納された値を読み出し、除算結果を除算結果レジスタ131218、131219に格納してもよい。この場合、除算入力レジスタ131216、131217に格納された値を、読み込みタイミングで消去しなくてもよい。また、除算入力レジスタ131216、131217は、既に値が格納されていても(格納されている値をクリアせずに)、さらに、値を上書き可能でもよい。
CPU13111は、除算結果レジスタ131218、131219から除算結果を取得する。除算入力レジスタ131216、131217への値の書き込みから除算結果レジスタ131218、131219への演算結果の格納までは、所定の時間(例えば32クロック)で完了するように構成されており、CPU13111は、除算入力レジスタ131216、131217に値を格納して、所定のクロック数が経過した後に、除算結果レジスタ131218、131219をそれぞれ参照して商及び剰余を取得できる。
本実施例のパチンコ機1では、後述するように、ベース値を計算するために除算処理が必要であり、CPU13111がプログラムを実行する除算は複数の乗算及び減算で実行されるので相当の時間がかかるものである。このため、タイマ割込み処理毎にベース計算処理を実行するのは困難であり、遅滞ないベース値の表示は困難であった。これに対し、演算回路13121を用いて除算処理を行うことによって、ベース値の計算に必要な時間を短縮でき、一つのタイマ割込み処理において複数回ベース値を計算できる(図75、図80参照)。また、演算回路13121の除算入力レジスタ131216、131217への値の書き込みから除算結果レジスタA131218からの演算結果の読み出しまでの間、CPU13111は除算処理のために占有されないので、他の処理を実行でき、タイマ割込み処理中のベース算出処理を効率的に実行できる。
図20は、シリアル通信回路13114の構成を示す図である。
シリアル通信回路13114は、四つのデータ送受信回路を有しており、各データ送受信回路が1チャネル分のデータを所定のデバイスと送受信する。なお、図20では、データ送信回路のみを図示し、データ受信回路(例えば、1チャネル分が実装)の説明は省略する。
本実施例の遊技機では、シリアル通信回路13114は、前述したように、周辺制御基板1510との通信に使用されるチャネル0、払出制御基板951との通信に使用されるチャネル1、役物比率表示器1317のドライバ回路13171との通信に使用されるチャネル2の三つのチャネルが使用され、チャネル3は未使用である。
シリアル通信回路13114は、データレジスタ3141、送信データレジスタ3142、パリティ生成回路3143、送信用シフトレジスタ3144、コマンドステータスレジスタ3145、通信設定レジスタ3146、送信トリガ設定レベルレジスタ3147、ボーレートレジスタ3148及びボーレート生成回路3149を有する。
CPU13111から入力されたデータは、データレジスタ3141に格納された後、送信データレジスタ3142に格納される。送信データレジスタ3142は、所定の容量(例えば、64バイト)のFIFOで構成される。送信データレジスタ3142は、パリティ生成回路3143がデータの送信単位毎に生成した誤り検出符号を、送信すべきデータに付加し、送信用シフトレジスタ3144に格納する。
ボーレート生成回路3149は、クロック回路13118から供給されるクロック信号から、ボーレートレジスタ3148に設定されたレートでデータを送信するための送信用クロック信号を生成する。そして、送信用シフトレジスタ3144は、送信用クロック信号に従って、データを送信する。
コマンドステータスレジスタ3145は、送信状態を確認するために参照されるレジスタである。
通信設定レジスタ3146は、データの送信を制御するためのコマンドを格納する。送信トリガ設定レベルレジスタ3147は、送信データレジスタ3142のFIFOが割り込みを発生させるデータ量を制御するための閾値を格納する。ボーレートレジスタ3148は、データの送信レートを規定するためのボーレートの設定を格納する。通信設定レジスタ3146、送信トリガ設定レベルレジスタ3147及びボーレートレジスタ3148は、図21のステップS28において初期設定として、4チャネルの各々について設定される。
以下、これらの設定について詳しく説明する。通信設定レジスタには、各チャネルの通信フォーマットが設定される。具体的には、FIFOの使用の有無(FIFOモード、ノーマルモード)、ストップビットのビット数、パリティ(パリティを使用するか、偶数パリティか奇数パリティか)を設定する。例えば、周辺制御基板1510との通信に使用されるチャネル0及び払出制御基板951との通信に使用されるチャネル1では、FIFOモード、ストップビット=1ビット、偶数パリティを意味する1×××1010Bを設定し、役物比率表示器1317のドライバ回路13171との通信に使用されるチャネル2では、FIFOモード、ストップビット=1ビット、パリティ未使用を意味する1×××1000Bを設定する。
FIFOモードでは、送信データレジスタ3142のFIFOを使用してデータを送信する。また、遊技機はノイズが多い環境にあることから、主制御基板1310の外に高速でデータを送信する際は、パリティを設定することが望ましい。
役物比率表示器1317は主制御基板1310に実装されるので、通信用の電線を経由する他の基板との通信と比較し、ノイズの影響は少ない。また、送受信するデータ量が少ないので、通信速度は低くてよく、パリティを使用する必要性は乏しい。なお、役物比率表示器1317のドライバ回路13171と主制御MPU1311との間で信号を伝達するパターンに沿って(例えば、プリント基板の表面又は内層に設けられた信号線の左右及び/又は厚み方向に隣接する層)にグランドパターンを設け、グランドパターンによるシールド効果によって、当該信号伝達パターンに重畳するノイズを低減できる。
送信トリガ設定レベルレジスタ3147は、送信データレジスタ3142のFIFOが割り込みを発生させるデータ量を定める。具体的には、送信データレジスタ3142のFIFOに格納されている送信データの量が設定したバイト数より小さい場合、各チャンネルに対応したステータスレジスタの所定ビットがセットされる。ステータスレジスタの当該ビットを判定することによって、送信データレジスタ3142のFIFOに空きがあるか否かを確認でき、送信データレジスタ3142のFIFOに格納されたデータの送信タイミングを判定できる。
なお、送信FIFOに異常があるかを判定するために、ステータスレジスタの当該ビットを利用できる。例えば、送信データレジスタ3142のFIFOに所定の期間データが書き込まれない場合でも、ステータスレジスタの当該ビットがセットされない場合、送信データレジスタ3142のFIFOに空きが生じていないことから、送信データレジスタ3142のFIFOからデータが送信されていないと判定して、エラー処理(例えば、エラー報知)を実行してもよい。
ボーレートレジスタ3148は、データ送信レートを定める。例えば、周辺制御基板1510との通信に使用されるチャネル0では19200bpsを設定し、払出制御基板951との通信に使用されるチャネル1では1200bpsを設定し、役物比率表示器1317のドライバ回路13171との通信に使用されるチャネル2では1200bpsを設定する。
このように、各チャネルで送信されるデータによって送信レートを変えている。これは、遊技機の内部は遊技球が転動しており、遊技機の電子回路はノイズの影響を受けやすい環境下にある。このため、遊技者に付与される利益に直接関係する出球を制御するためのデータは確実に送信されるように、低速で払出制御基板951にデータを送信する。一方、周辺制御基板1510は、送信されるデータ量が多く、出球に関係がないので、高いレートでデータを送信する。また、周辺制御基板1510は、受信したコマンドが異常かを検証しており、異常であると判定した場合、周辺制御基板1510を動作させない又は異常処理(例えば、通信エラー報知)を実行し、コマンドの再送を要求する。そして、再送されたコマンドが正常であると判定された場合、該正常コマンドを用いて周辺制御基板1510の状態が復旧される。このため、周辺制御基板1510との通信は、高いレートでデータを送信できる。さらに、周辺制御基板1510との通信レートを低くすると、始動口の入賞から図柄の変動開始までの遅延を遊技者が認識できるようになり、興趣を低下させる可能性がある。
役物比率表示器1317のドライバ回路13171との通信は、高いレート(周辺制御基板1510とのデータ送信レートである19200bps)でも、低いレート(払出制御基板951とのデータ送信レートである1200bps)でもよい。また、役物比率表示器1317のドライバ回路13171との通信は、高いレート(周辺制御基板1510とのデータ送信レートである19200bps)と低いレート(払出制御基板951とのデータ送信レートである1200bps)との間のレートを採用してもよい。これは、データ送信レートを高くすると、役物比率表示器1317のドライバ回路13171のトランジスタのスイッチングノイズ等により他の回路に誤動作を起こさせる可能性がある。一方、ノイズにより送信されたデータに異常が生じても、送信データが更新されない限りタイマ割込みごとに同じデータを再送し、再送されたコマンドが正常であれは、役物比率表示器1317の表示内容は正常に戻るので、送信レートを極端に低速にする必要はないためである。
コマンドステータスレジスタ3145は、送信状態を確認するために参照されるレジスタであり、例えば、各ビットは以下のように定義される。
ビット7:SnTC 送信完了を示すフラグであり、0は送信中、1は送信完了を示す。ビット6:SnTDBE ノーマルモード(FIFOを使用しない通信モード)においては、送信データエンプティを示すフラグであり、0は送信用シフトレジスタに未転送、1は送信用シフトレジスタに転送済みを示す。すなわち、送信データレジスタ3142から送信用シフトレジスタ3144にデータが転送され、送信データレジスタ3142に送信データが格納されていない状態になると、セットされる。
SnTFTL FIFOモードにおいては、送信FIFOトリガレベルを示すフラグであり、0は送信データレジスタ3142のFIFOに格納されている送信データの量がトリガレベル以上、1は送信データレジスタ3142のFIFOに格納されている送信データの量がトリガレベル未満を示す。すなわち、送信データレジスタ3142のFIFOに格納されている送信データの量が、送信トリガレベル設定レジスタに設定されたバイト数より少ないときにセットされる。このため、FIFOモードでの通信時には、当該ビットが1であることを確認した後、送信データレジスタ3142のFIFOにデータを書き込む。
ビット5~2:未使用(0固定)
ビット1:SnTCL 送信バッファ、ブレークコード送信をクリアし、送信データを空にして、又は送信FIFOトリガレベルを(SnTFL)を設定するためのビットであり、外部から書き込まれる。例えば、バッファの内容を強制的にクリアする場合、当該ビットに1をセットする。より具体的には、FIFOにコマンドを書き込んだが、なんらかの事情(例えば、異常発生)によって、書き込んだコマンドの送信を中止する場合に使用される。なお、ビット1が設定されても、送信用シフトレジスタのデータはクリアされない。
以上に説明した構成で、シリアル通信回路13114は、調歩同期通信(非同期通信)が可能であるが、図示しない同期通信用のクロック信号を出力する。この場合、通信相手方(役物比率表示器1317のドライバ回路13171)に供給するクロック信号は、クロック回路13118ではなく、シリアル通信回路13114から出力される。シリアル通信回路13114の各送受信回路は、少なくとも一つのチャネルが設定によって同期通信が可能でもよく、調歩同期用シリアル通信回路と同期通信用シリアル通信回路とを別に設けてもよい。
また、図示を省略したが、シリアル通信回路13114は、同期通信時に使用されるデータ取り込みタイミングを示す信号(LOAD)を出力する。
[3-2.払出制御基板]
図17に戻って、パチンコ機の制御構成の説明を続ける。遊技球の払出し等を制御する払出制御基板951は、詳細な図示は省略するが、払出しに関する各種制御を行う払出制御部952と、発射ソレノイド682による発射制御を行うとともに、球送りソレノイド551による球送り制御を行う発射制御部953と、パチンコ機1の状態を表示するエラーLED表示器と、エラーLED表示器に表示されているエラーを解除するためのエラー解除スイッチと、球タンク802、タンクレール803、球誘導ユニット820、及び払出装置830内の遊技球を、パチンコ機1の外部へ排出して球抜き動作を開始するための球抜きスイッチと、を備えている。
[3-2a.払出制御部]
払出制御基板951における払出しに関する各種制御を行う払出制御部952は、詳細な図示は省略するが、各種処理プログラムや各種コマンドを記憶するROMや一時的にデータを記憶するRAM等が内蔵されるマイクロプロセッサである払出制御MPUと、I/Oデバイスとしての払出制御I/Oポートと、払出制御MPUが正常に動作しているか否かを監視するための外部WDT(外部ウォッチドッグタイマ)と、払出装置830の払出モータ834に駆動信号を出力するための払出モータ駆動回路と、払出しに関する各種検出スイッチからの検出信号が入力される払出制御入力回路と、を備えている。払出制御MPUには、その内蔵されたROMやRAMのほかに、不正を防止するため機能等も内蔵されている。
払出制御部952の払出制御MPUは、主制御基板1310からの遊技に関する各種情報(遊技情報)及び払い出しに関する各種コマンドを払出制御I/Oポートを介してシリアル方式で受信したり、主制御基板1310からのRAMクリアスイッチの操作信号(検出信号)が払出制御I/Oポートを介して入力されたりする他に、満タン検知センサ535からの検出信号が入力されたり、球切れ検知センサ827、払出検知センサ842、及び羽根回転検知センサ840からの検出信号が入力される。
払出装置830の球切れ検知センサ827、払出検知センサ842、及び羽根回転検知センサ840からの検出信号は、払出制御入力回路に入力され、払出制御I/Oポートを介して払出制御MPUに入力される。
また、本体枠4に対する扉枠3の開放を検出する扉枠開放スイッチ、及び外枠2に対する本体枠4の開放を検出する本体枠開放スイッチからの検出信号は、払出制御入力回路に入力され、払出制御I/Oポートを介して払出制御MPUに入力される。
また、ファールカバーユニット520の満タン検知センサ535からの検出信号は、払出制御入力回路に入力され、払出制御I/Oポートを介して払出制御MPUに入力される。
払出制御MPUは、払出モータ834を駆動するための駆動信号を、払出制御I/Oを介して払出モータ834に出力したり、パチンコ機1の状態をエラーLED表示器に表示するための信号を、払出制御I/Oポートを介してエラーLED表示器に出力したり、パチンコ機1の状態を示すためのコマンドを、払出制御I/Oポートを介して主制御基板1310にシリアル方式で送信したり、実際に払出した遊技球の球数を払出制御I/Oポートを介して外部端子板784に出力したりする。この外部端子板784は、遊技ホール側に設置されたホールコンピュータに接続されている。このホールコンピュータは、パチンコ機1が払出した遊技球の球数やパチンコ機1の遊技情報等を把握することにより遊技者の遊技を監視している。外部端子板784から出力する信号のうち主制御基板1310が生成する信号は、主制御基板1310から払出制御基板951を経由して外部端子板784から出力する。なお、主制御基板1310が生成する信号を、払出制御基板951を経由せずに外部端子板784から出力してもよい。
エラーLED表示器は、セグメント表示器であり、英数字や図形等を表示してパチンコ機1の状態を表示している。エラーLED表示器が表示して報知する内容としては、次のようなものがある。例えば、図形「-」が表示されているときには「正常」である旨を報知し、数字「0」が表示されているときには「接続異常」である旨(具体的には、主制御基板1310と払出制御基板951との基板間の電気的な接続に異常が生じている旨)を報知し、数字「1」が表示されているときには「球切れ」である旨(具体的には、球切れ検知センサ827からの検出信号に基づいて払出装置830内に遊技球がない旨)を報知し、数字「2」が表示されているときには「球がみ」である旨(具体的には、羽根回転検知センサ840からの検出信号に基づいて払出装置830の払出通路において払出羽根と遊技球とがかみ合って払出羽根が回転困難となっている旨)を報知し、数字「3」が表示されているときには「計数スイッチエラー」である旨(具体的には、払出検知センサ842からの検出信号に基づいて払出検知センサ842に不具合が生じている旨)を報知し、数字「5」が表示されているときには「リトライエラー」である旨(具体的には、払出し動作のリトライ回数が予め設定された上限値に達した旨)を報知し、数字「6」が表示されているときには「満タン」である旨(具体的には、満タン検知センサ535からの検出信号に基づいてファールカバーユニット520内に貯留された遊技球で満タンである旨)を報知し、数字「7」が表示されているときには「CR未接続」である旨(払出制御基板951からCRユニットまでに亘るいずれかにおいて電気的な接続が切断されている旨)を報知し、数字「9」が表示されているときには「ストック中」である旨(具体的には、まだ払出していない遊技球の球数が予め定めた球数に達している旨)を報知している。
球貸ボタンからの遊技球の球貸要求信号、及び返却ボタンからのプリペイドカードの返却要求信号は、CRユニットに入力される。CRユニットは、球貸要求信号に従って貸し出す遊技球の球数を指定した信号を、払出制御基板951にシリアル方式で送信し、この信号が払出制御I/Oポートで受信されて払出制御MPUに入力される。またCRユニットは、貸出した遊技球の球数に応じて挿入されたプリペイドカードの残度を更新するとともに、その残度を表示部に表示するための信号を出力し、この信号が表示部に入力されて表示される。
[3-2b.発射制御部]
発射ソレノイド682による発射制御と、球送りソレノイド551による球送制御と、を行う発射制御部953は、詳細に図示は省略するが、発射に関する各種検出スイッチからの検出信号が入力される発射制御入力回路と、定時間毎にクロック信号を出力する発振回路と、このクロック信号に基づいて遊技球を遊技領域5aに向かって打ち出すための発射基準パルスを出力する発射タイミング制御回路と、この発射基準パルスに基づいて発射ソレノイド682に駆動信号を出力する発射ソレノイド駆動回路と、発射基準パルスに基づいて球送りソレノイド551に駆動信号を出力する球送りソレノイド駆動回路と、を備えている。発射タイミング制御回路は、発振回路からのクロック信号に基づいて、1分当たり100個の遊技球が遊技領域5aに向かって打ち出されるよう発射基準パルスを生成して発射ソレノイド駆動回路に出力するとともに、発射基準パルスを所定数倍した球送基準パルスを生成して球送りソレノイド駆動回路に出力する。
ハンドルユニット500関係では、ハンドルレバー504に手のひらや指が触れているか否かを検出する接触検知センサ509、及び遊技者の意志によって遊技球の打ち出しを強制的に停止するか否かを検出するストップボタンからの検出信号は、発射制御入力回路に入力された後に、発射タイミング制御回路に入力される。またCRユニットとCRユニット接続端子板とが電気的に接続されると、CR接続信号として発射制御入力回路に入力され、発射タイミング制御回路に入力される。ハンドルレバー504の回転位置に応じて遊技球を遊技領域5aに向かって打ち出す強度を電気的に調節するハンドル操作センサ507からの信号は、発射ソレノイド駆動回路に入力される。
この発射ソレノイド駆動回路は、ハンドル操作センサ507からの信号に基づいて、ハンドルレバー504の回転位置に見合う打ち出し強度で遊技球を遊技領域5aに向かって打ち出すための駆動電流を、発射基準パルスが入力されたことを契機として、発射ソレノイド682に出力する。一方、球送りソレノイド駆動回路は、球送基準パルスが入力されたことを契機として、球送りソレノイド551に一定電流を出力することにより、皿ユニット200の上皿201に貯留された遊技球を球送りユニット540内に1球受入れ、その球送基準パルスの入力が終了したことを契機として、その一定電流の出力を停止することにより受入れた遊技球を球発射装置680側へ送る。このように、発射ソレノイド駆動回路から発射ソレノイド682に出力される駆動電流は可変に制御されるのに対して、球送りソレノイド駆動回路から球送りソレノイド551に出力される駆動電流は一定に制御されている。
なお、払出制御基板951に各種電圧を供給する電源基板は、電源遮断時にでも所定時間、主制御基板1310に電力を供給するためのバックアップ電源としてのキャパシタを備えている。このキャパシタにより払出制御MPUは、電源遮断時にでも電源断時処理において各種情報を払出制御基板951のRAMに記憶することができる。この記憶した各種情報は、電源投入時に主制御基板1310のRAMクリアスイッチが操作されると、払出制御基板951のRAMから完全に消去(クリア)される。
[3-3.周辺制御基板]
周辺制御基板1510は、図17に示すように、主制御基板1310からのコマンドに基づいて演出制御を行う周辺制御部1511と、この周辺制御部1511からの制御データに基づいてメイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244の描画制御を行う液晶表示制御部1512と、を備えている。
[3-3a.周辺制御部]
周辺制御基板1510における演出制御を行う周辺制御部1511は、詳細な図示は省略するが、マイクロプロセッサとしての周辺制御MPUと、各種処理プログラムや各種コマンドを記憶する周辺制御ROMと、高音質の演奏を行う音源ICと、この音源ICが参照する音楽及び効果音等の音情報が記憶されている音ROMと、を備えている。
周辺制御MPUは、パラレルI/Oポート、シリアルI/Oポート等を複数内蔵しており、主制御基板1310から各種コマンドを受信すると、この各種コマンドに基づいて、遊技盤5の各装飾基板に設けられたカラーLED等への点灯信号、点滅信号又は階調点灯信号を出力するための遊技盤側発光データをランプ駆動基板用シリアルI/Oポートから演出駆動基板3043に送信したり、遊技盤5に設けられた各種演出ユニットを作動させる駆動モータへの駆動信号を出力するための遊技盤側駆動データを遊技盤装飾駆動基板用シリアルI/Oポートから演出駆動基板3043に送信したり、扉枠3に設けられた加振装置242や扉右下駆動モータ272等の電気的駆動源への駆動信号を出力するための扉側駆動データと、扉枠3の各装飾基板に設けられたカラーLED等への点灯信号、点滅信号又は階調点灯信号を出力するための扉側発光データと、から構成される扉側駆動発光データを枠装飾駆動基板用シリアルI/Oポートから扉枠3側に送信したり、メイン液晶表示装置1600や上皿液晶表示装置244に表示させる画面を示す制御データ(表示コマンド)を液晶制御部用シリアルI/Oポートから液晶表示制御部1512に送信したり、するほかに、音ROMから音情報を抽出するための制御信号(音コマンド)を音源ICに出力したりする。
遊技盤5に設けられた各種演出ユニットの位置を検出するための各種位置検出センサからの検出信号は、裏箱の後面に取付けられた演出駆動基板3043を介して周辺制御MPUに入力されている。また、扉枠3に設けられた演出操作ユニット220のタッチパネル246、演出ボタン押圧センサ258からの検出信号は、周辺制御MPUに入力されている。
また周辺制御MPUは、液晶表示制御部1512が正常に動作している旨を伝える信号(動作信号)が液晶表示制御部1512から入力されており、この動作信号に基づいて液晶表示制御部1512の動作を監視している。
音源ICは、周辺制御MPUからの制御データ(音コマンド)に基づいて音ROMから音情報を抽出し、扉枠3や本体枠4等に設けられたスピーカ921等から各種演出に合せた音楽及び効果音等が流れるように制御を行う。なお、周辺制御基板1510が収容された周辺制御基板ボックス1520から後方へ突出しているボリュームを回転操作することで、音量を調整することができるようになっている。本実施形態では、扉枠3側の複数のスピーカと本体枠4の低音用のスピーカ921とに、音情報としての音響信号(例えば、2chステレオ信号、4chステレオ信号、2.1chサラウンド信号、或いは、4.1chサラウンド信号、等)を送ることで、従来よりも臨場感のある音響効果(音響演出)を提示することができる。
なお、周辺制御部1511は、周辺制御MPUに内蔵された内蔵WDT(ウォッチドッグタイマ)のほかに、図示しない、外部WDT(ウォッチドッグタイマ)も備えており、周辺制御MPUは、内蔵WDTと外部WDTとを併用して自身のシステムが暴走しているか否かを診断している。
この周辺制御MPUから液晶表示制御部1512に出力される表示コマンドはシリアル入出力ポートにより行われ、本実施形態では、ビットレート(単位時間あたりに送信できるデータの大きさ)として19.2キロ(k)ビーピーエス(bits per second、以下、「bps」と記載する)が設定されている。一方、周辺制御MPUから裏箱の後面に取付けられた演出駆動基板3043に出力される、初期データ、扉枠側点灯点滅コマンド、遊技盤側点灯点滅コマンド、可動体駆動コマンド、表示コマンドと異なる複数のシリアル入出力ポートにより行われ、本実施形態では、ビットレートとして250kbpsが設定されている。
この演出駆動基板3043は、受信した扉枠側点灯点滅コマンドに基いた点灯信号又は点滅信号を、扉枠3に備えられた各装飾基板のLEDに出力したり、受信した遊技盤側点灯点滅コマンドに基いた点灯信号又は点滅信号を遊技盤5に備えられた各装飾基板のLEDに出力したりする。
また、演出駆動基板3043は、受信した駆動コマンドに基いた駆動信号を、扉枠3に備えられた加振装置242及び扉右下駆動モータ272や、遊技盤5に備えられた各駆動モータ等に出力したりする。
[3-3b.周辺制御部の各種制御処理]
まず、周辺制御部電源投入時処理について、図60を参照して説明する。パチンコ機1に電源が投入されると、図17に示した周辺制御部1511の周辺制御MPU(図示省略)は、図60に示すように、周辺制御部電源投入時処理を行う。この周辺制御部電源投入時処理が開始されると、演出制御プログラムが周辺制御MPUの制御の下、初期設定処理を行う(ステップS1000)。この初期設定処理では、演出制御プログラムが、周辺制御MPU自身を初期化する処理と、ホットスタート/コールドスタートの判定処理と、リセット後のウェイトタイマを設定する処理等を行う。周辺制御MPUは、まず自身を初期化する処理を行うが、この周辺制御MPUを初期化する処理にかかる時間は、マイクロ秒(μs)オーダーであり、極めて短い時間で周辺制御MPUを初期化することができる。これにより、周辺制御MPUは、割り込み許可が設定された状態となることによって、例えば、後述する周辺制御部コマンド受信割り込み処理において、主制御基板1310から出力される、遊技演出の制御に関するコマンドやパチンコ機1の状態に関するコマンド等の各種コマンドを受信することができる状態となる。
ステップS1000に続いて、演出制御プログラムは現在時刻情報取得処理を行う(ステップS1002)。この現在時刻情報取得処理では、RTC制御部から、年月日を特定するカレンダー情報と時分秒を特定する時刻情報とを取得して、周辺制御RAMに、現在のカレンダー情報としてカレンダー情報記憶部にセットするとともに、現在の時刻情報として時刻情報記憶部にセットする。
ステップS1002に続いて、演出制御プログラムは、Vブランク信号検出フラグVB-FLGに値0をセットする(ステップS1006)。このVブランク信号検出フラグVB-FLGは、後述する周辺制御部定常処理を実行するか否かを決定するためのフラグであり、周辺制御部定常処理を実行するとき値1、周辺制御部定常処理を実行しないとき値0にそれぞれ設定される。Vブランク信号検出フラグVB-FLGは、周辺制御MPUからの画面データを受け入れることができる状態である旨を伝えるVブランク信号が入力されたことを契機として実行される後述する周辺制御部Vブランク信号割り込み処理において値1がセットされるようになっている。このステップS1006では、Vブランク信号検出フラグVB-FLGに値0をセットすることによりVブランク信号検出フラグVB-FLGを一度初期化している。
ステップS1006に続いて、演出制御プログラムは、Vブランク信号検出フラグVB-FLGが値1であるか否かを判定する(ステップS1008)。このVブランク信号検出フラグVB-FLGが値1でない(値0である)ときには、再びステップS1008に戻ってVブランク信号検出フラグVB-FLGが値1であるか否かを繰り返し判定する。このような判定を繰り返すことにより、周辺制御部定常処理を実行するまで待機する状態となる。
ステップS1008でVブランク信号検出フラグVB-FLGが値1であるとき、つまり周辺制御部定常処理を実行するときには、まず定常処理中フラグSP-FLGに値1をセットする(ステップS1009)。この定常処理中フラグSP-FLGは、周辺制御部定常処理を実行中であるとき値1、周辺制御部定常処理を実行完了したとき値0にそれぞれセットされる。
ステップS1009に続いて、演出制御プログラムは1ms割り込みタイマ起動処理を行う(ステップS1010)。この1ms割り込みタイマ起動処理では、後述する周辺制御部1msタイマ割り込み処理を実行するための1ms割り込みタイマを起動するとともに、この1ms割り込みタイマが起動して周辺制御部1msタイマ割り込み処理が実行された回数をカウントするための1msタイマ割り込み実行回数STNに値1をセットして1msタイマ割り込み実行回数STNの初期化も行う。この1msタイマ割り込み実行回数STNは周辺制御部1msタイマ割り込み処理で更新される。
ステップS1010に続いて、演出制御プログラムは、ランプデータ出力処理を行う(ステップS1012)。このランプデータ出力処理では、演出制御プログラムが図119に示したランプ駆動基板4170へのDMAシリアル連続送信を行う。ここでは、周辺制御MPUの周辺制御DMAコントローラを利用してランプ駆動基板用シリアルI/Oポート連続送信を行う。
ステップS1012に続いて、演出制御プログラムは、演出操作ユニット監視処理を行う(ステップS1014)。この演出操作ユニット監視処理では、後述する周辺制御部1msタイマ割り込み処理における演出操作ユニット情報取得処理において、演出操作ユニット220に設けられた各種検出スイッチからの検出信号に基づいて操作ボタン220Cの操作等を取得した各種情報に基づいて、操作ボタン220Cの操作有無を監視し、操作ボタン220Cの操作の状態を遊技演出に反映するか否かを適宜決定する。
ステップS1014に続いて、演出制御プログラムは、表示データ出力処理を行う(ステップS1016)。この表示データ出力処理では、後述する表示データ作成処理で音源内蔵VDPの内蔵VRAM上に生成した1画面分(1フレーム分)の描画データを音源内蔵VDPが遊技盤側装飾基板3053及び扉枠側装飾基板233に出力する。これにより、遊技盤側装飾基板3053及び扉枠側装飾基板233にさまざまな画面が描画される。
ステップS1016に続いて、演出制御プログラムは、音データ出力処理を行う(ステップS1018)。この音データ出力処理では、演出制御プログラムが、後述する音データ作成処理で音源内蔵VDPに設定された音楽及び効果音等の音データをスピーカ921に出力したり、音楽及び効果音のほかに報知音や告知音の音データをスピーカ921に出力したりする。
ステップS1018に続いて、演出制御プログラムはスケジューラ更新処理を行う(ステップS1020)。このスケジューラ更新処理では、演出制御プログラムが周辺制御RAMにセットされた各種スケジュールデータを更新する。例えば、スケジューラ更新処理では、画面生成用スケジュールデータを構成する時系列に配列された画面データのうち、先頭の画面データから何番目の画面データを音源内蔵VDPに出力するのかを指示するために、ポインタを更新する。
またスケジューラ更新処理では、発光態様生成用スケジュールデータを構成する時系列に配列された発光データのうち、先頭の発光データから何番目の発光データを各種LEDの発光態様とするのかを指示するために、ポインタを更新する。
またスケジューラ更新処理では、音生成用スケジュールデータを構成する時系列に配列された、音楽や効果音等の音データ、報知音や告知音の音データを指示する音指令データのうち、先頭の音指令データから何番目の音指令データを音源内蔵VDPに出力するのかを指示するために、ポインタを更新する。
またスケジューラ更新処理では、電気的駆動源スケジュールデータを構成する時系列に配列されたモータやソレノイド等の電気的駆動源の駆動データのうち、先頭の駆動データから何番目の駆動データを出力対象とするのかを指示するために、ポインタを更新する。
ステップS1020に続いて、演出制御プログラムは、受信コマンド解析処理を行う(ステップS1022)。この受信コマンド解析処理では、演出制御プログラムが、遊技盤側装飾基板3053から送信された情報や、主制御基板1310から送信された各種コマンドであって、後述する周辺制御部コマンド受信割り込み処理(コマンド受信手段)において受信した各種コマンドの解析を行う(コマンド解析手段)。
ステップS1022に続いて、演出制御プログラムが警告処理を行う(ステップS1024)。この警告処理では、さらに、演出制御プログラムが、上述のようにステップS1022の受信コマンド解析処理で解析したコマンドに、所定の報知表示に区分される各種コマンドが含まれているときには、各種異常報知を実行するための異常表示態様に設定されている、画面生成用スケジュールデータ、発光態様生成用スケジュールデータ、音生成用スケジュールデータ、及び電気的駆動源スケジュールデータ等を、周辺制御部1511の周辺制御ROM又は周辺制御RAMから抽出して周辺制御RAMにセットする。なお、警告処理では、複数の異常が同時に発生した場合には、予め登録した優先度の高い順から異常報知から行われ、その異常が解決して残っている他の異常報知に自動的に遷移するようになっている。これにより、一の異常が発生した後であってその異常を解決する前に他の異常が発生して一の異常が発生しているという情報を失うことなく、複数の異常を同時に監視することができる。
またさらに、この警告処理では、電源投入時から所定時間が経過した後に、演出制御プログラムが、上述した受信コマンド解析処理(ステップS1022)において解析したコマンドが、状態表示に区分される各種コマンド、例えばエラー解除ナビコマンド(第2のエラー解除コマンド)である場合、演出動作に伴う通常の演出態様とは異なる態様に制御することにより、例えば、遊技盤側装飾基板3053(演出装置)、扉枠側装飾基板233(演出装置)、ランプ(演出装置)を用いて視覚的に外部に警告したり、スピーカを用いて聴覚的に外部に警告する(エラー報知手段)。このようにすると、悪意のある遊技者が、遊技状態であるにも拘わらず払出制御基板951の操作スイッチを操作することにより主制御基板1310にエラー解除ナビコマンドを入力しようと試行した際に、パチンコ機1が外部に警告を行う構成となっているため、遊技の進行に影響を及ぼしかねない主制御基板1310に対する不正行為が抑止されるようになる。
次に、上述したステップS1024に続いて、演出制御プログラムはRCT取得情報更新処理を行う(ステップS1026)。このRTC取得情報更新処理では、演出制御プログラムが、ステップS1002の現在時刻情報取得処理で取得して周辺制御RAMにセットした、カレンダー情報記憶部に記憶されたカレンダー情報と時刻情報記憶部に記憶された時刻情報とを更新する。このRCT取得情報更新処理により、時刻情報記憶部に記憶される時刻情報である時分秒が更新され、この更新される時刻情報に基づいてカレンダー情報記憶部に記憶されるカレンダー情報である年月日が更新される。
ステップS1026に続いて、演出制御プログラムはランプデータ作成処理を行う(ステップS1028)。このランプデータ作成処理では、この演出制御プログラムが、ステップS1020のスケジューラ更新処理においてポインタが更新されて、発光態様生成用スケジュールデータを構成する時系列に配列された発光データのうち、そのポインタが指示する発光データに基づいて、遊技盤5に設けた各種装飾基板の複数のLEDへの点灯信号、点滅信号、又は階調点灯信号を出力するための遊技盤側発光データSL-DATを、周辺制御部1511の周辺制御ROM又は周辺制御RAMから抽出して作成するとともに、周辺制御RAMにセットするとともに、扉枠3に設けた各種装飾基板の複数のLEDへの点灯信号、点滅信号又は階調点灯信号を出力するための扉側発光データSTL-DATを、周辺制御部1511の周辺制御ROM又は周辺制御RAMから抽出して作成して、周辺制御RAMにセットする。
ステップS1028に続いて、演出制御プログラムは表示データ作成処理を行う(ステップS1030)。この表示データ作成処理では、演出制御プログラムが、ステップS1020のスケジューラ更新処理においてポインタが更新されて、画面生成用スケジュールデータを構成する時系列に配列された画面データのうち、そのポインタが示す画面データを、周辺制御部1511の周辺制御ROM又は周辺制御RAMから抽出して音源内蔵VDPに出力する。音源内蔵VDPは、周辺制御MPUから画面データが入力されると、この入力された画面データに基づいて液晶及び音制御ROM1512bからキャラクタデータを抽出してスプライトデータを作成して遊技盤側装飾基板3053及び扉枠側装飾基板233に表示する1画面分(1フレーム分)の描画データを内蔵VRAM上に生成する。
ステップS1030に続いて、演出制御プログラムは音データ作成処理を行う(ステップS1032)。この音データ作成処理では、演出制御プログラムが、ステップS1020のスケジューラ更新処理においてポインタが更新されて、音生成用スケジュールデータを構成する時系列に配列された音指令データのうち、そのポインタが指示する音指令データを、周辺制御部1511の周辺制御ROM又は周辺制御RAMから抽出して音源内蔵VDPに出力する。音源内蔵VDPは、周辺制御MPUから音指令データが入力されると、液晶及び音制御ROMに記憶されている音楽や効果音等の音データを抽出して内蔵音源を制御することにより、音指令データに規定された、トラック番号に従って音楽及び効果音等の音データを組み込むとともに、出力チャンネル番号に従って使用する出力チャンネルを設定する。
ステップS1032に続いて、演出制御プログラムはバックアップ処理を行う(ステップS1034)。このバックアップ処理では、演出制御プログラムが、周辺制御MPUと外付けされる周辺制御RAMに記憶されている内容を、バックアップ第1エリアと、バックアップ第2エリアと、にそれぞれコピーしてバックアップするとともに、周辺制御MPUと外付けされる周辺制御SRAMに記憶されている内容を、バックアップ第1エリアと、バックアップ第2エリアと、にそれぞれコピーしてバックアップする。
ステップS1034に続いて、WDTクリア処理を行う(ステップS1036)。このWDTクリア処理では、周辺制御内蔵WDT1511afと、周辺制御外部WDT1511eと、にクリア信号を出力して周辺制御MPUにリセットがかからないようにしている。
ステップS1036に続いて、演出制御プログラムが、周辺制御部定常処理の実行完了として定常処理中フラグSP-FLGに値0をセットし(ステップS1038)、再びステップS1006に戻り、Vブランク信号検出フラグVB-FLGに値0をセットして初期化し、後述する周辺制御部Vブランク信号割り込み処理においてVブランク信号検出フラグVB-FLGに値1がセットされるまで、ステップS1008の判定を繰り返し行う。つまりステップS1008では、Vブランク信号検出フラグVB-FLGに値1がセットされるまで待機し、ステップS1008でVブランク信号検出フラグVB-FLGが値1であると判定されると、ステップS1009~ステップS1038の処理を行い、再びステップS1006に戻る。このように、ステップS1008でVブランク信号検出フラグVB-FLGが値1であると判定されると、ステップS1009~ステップS1038の処理を行うようになっている。ステップS1009~ステップS1038の処理を「周辺制御部定常処理」という。
この周辺制御部定常処理は、演出制御プログラムが、まずステップS1009で周辺制御部定常処理を実行中であるとして定常処理中フラグSP-FLGに値1をセットすることから開始し、ステップS1010で1ms割り込みタイマ起動処理を行い、ステップS1012、ステップS1014、・・・、そしてステップS1036の各処理を行って最後にステップS1038において周辺制御部定常処理の実行完了として定常処理中フラグSP-FLGに値0をセットすると、完了することとなる。周辺制御部定常処理は、ステップS1008でVブランク信号検出フラグVB-FLGが値1であるときに実行される。このVブランク信号検出フラグVB-FLGは、上述したように、周辺制御MPUからの画面データを受け入れることができる状態である旨を伝えるVブランク信号が音源内蔵VDPから入力されたことを契機として実行される後述する周辺制御部Vブランク信号割り込み処理において値1がセットされるようになっている。本実施形態では、遊技盤側装飾基板3053及び扉枠側装飾基板233のフレーム周波数(1秒間あたりの画面更新回数)として、上述したように、概ね秒間30fpsに設定しているため、Vブランク信号が入力される間隔は、約33.3ms(=1000ms÷30fps)となっている。つまり、周辺制御部定常処理は、約33.3msごとに繰り返し実行されるようになっている。
次に、図61に示した、周辺制御部1511の周辺制御MPUからの画面データを受け入れることができる状態である旨を伝えるVブランク信号が液晶表示制御部1512の音源内蔵VDPから入力されたことを契機として実行する周辺制御部Vブランク信号割り込み処理について説明する。この周辺制御部Vブランク信号割り込み処理が開始されると、周辺制御部1511の周辺制御MPUは、図61に示すように、定常処理中フラグSP-FLGが値0であるかを判定する(ステップS1045)。この定常処理中フラグSP-FLGは、上述したように、図60の周辺制御部電源投入時処理におけるステップS1009~ステップS1038の周辺制御部定常処理を実行中であるとき値1、周辺制御部定常処理を実行完了したとき値0にそれぞれセットされる。
ステップS1045で定常処理中フラグSP-FLGが値0でない(値1である)とき、つまり周辺制御部定常処理を実行中であるときには、そのままこのルーチンを終了する。一方、ステップS1045で定常処理中フラグSP-FLGが値0であるとき、つまり周辺制御部定常処理を実行完了したときには、Vブランク信号検出フラグVB-FLGに値1をセットし(ステップS1050)、このルーチンを終了する。このVブランク信号検出フラグVB-FLGは、上述したように、周辺制御部定常処理を実行するか否かを決定するためのフラグであり、周辺制御部定常処理を実行するとき値1、周辺制御部定常処理を実行しないとき値0にそれぞれ設定される。
次に、図60の周辺制御部電源投入時処理の周辺制御部定常処理におけるステップS1010で1ms割り込みタイマの起動により1ms割り込みタイマが発生するごとに繰り返し実行する周辺制御部1msタイマ割り込み処理について説明する。この周辺制御部1msタイマ割り込み処理が開始されると、周辺制御部1511の周辺制御MPUは、図62に示すように、1msタイマ割り込み実行回数STNが33回より小さいか否かを判定する(ステップS1100)。この1msタイマ割り込み実行回数STNは、上述したように、図60の周辺制御部電源投入時処理の周辺制御部定常処理におけるステップS1010の1ms割り込みタイマ起動処理で1ms割り込みタイマが起動して本ルーチンである周辺制御部1msタイマ割り込み処理が実行された回数をカウントするカウンタである。本実施形態では、遊技盤側装飾基板3053及び扉枠側装飾基板233のフレーム周波数(1秒間あたりの画面更新回数)として、上述したように、概ね秒間30fpsに設定しているため、Vブランク信号が入力される間隔は、約33.3ms(=1000ms÷30fps)となっている。つまり、周辺制御部定常処理は、約33.3msごとに繰り返し実行されるようになっているため、周辺制御部定常処理におけるステップS1010で1ms割り込みタイマを起動した後、次の周辺制御部定常処理が実行されるまでに、周辺制御部1msタイマ割り込み処理が32回だけ実行されるようになっている。具体的には、周辺制御部定常処理におけるステップS1010で1ms割り込みタイマが起動されると、まず1回目の1msタイマ割り込みが発生し、2回目、・・・、そして32回目の1msタイマ割り込みが順次発生することとなる。
ステップS1100で1msタイマ割り込み実行回数STNが33回より小さくないとき、つまり33回目の1msタイマ割り込みが発生してこの周辺制御部1msタイマ割り込み処理が開始されたときには、そのままこのルーチンを終了する。33回目の1msタイマ割り込みの発生が次回のVブランク信号の発生よりたまたま先行した場合には、本実施形態では、割り込み処理の優先順位として、周辺制御部1msタイマ割り込み処理の方が周辺制御部Vブランク割り込み処理と比べて高く設定されているものの、この33回目の1msタイマ割り込みによる周辺制御部1msタイマ割り込み処理の開始を強制的にキャンセルするようになっている。換言すると、本実施形態では、Vブランク信号が周辺制御基板1510のシステム全体を支配する信号であるため、33回目の1msタイマ割り込みの発生が次回のVブランク信号の発生よりたまたま先行した場合には、周辺制御部Vブランク割り込み処理を実行するために33回目の1msタイマ割り込みによる周辺制御部1msタイマ割り込み処理の開始が強制的にキャンセルさせられている。そして、Vブランク信号の発生により周辺制御部定常処理におけるステップS1010で1ms割り込みタイマを再び起動した後、新たに1回目の1msタイマ割り込みの発生による周辺制御部1msタイマ割り込み処理を開始するようになっている。
一方、ステップS1100で1msタイマ割り込み実行回数STNが33回より小さいときには、1msタイマ割り込み実行回数STNに値1だけ足す(インクリメントする、ステップS1102)。この1msタイマ割り込み実行回数STNに値1が足されることにより、図60の周辺制御部電源投入時処理の周辺制御部定常処理におけるステップS1010の1ms割り込みタイマ起動処理で1ms割り込みタイマが起動して本ルーチンである周辺制御部1msタイマ割り込み処理が実行された回数が1回分だけ増えることとなる。
ステップS1102に続いて、モータ及びソレノイド駆動処理を行う(ステップS1104)。このモータ及びソレノイド駆動処理では、周辺制御MPUと周辺制御RAMにセットされた電気的駆動源スケジュールデータを構成する時系列に配列されたモータやソレノイド等の電気的駆動源の駆動データのうち、ポインタが指示する駆動データに従って、各種モータやソレノイド等の電気的駆動源を駆動するとともに、時系列に規定された次の駆動データにポインタを更新し、このモータ及びソレノイド駆動処理を実行するごとに、ポインタを更新する。
ステップS1104に続いて、可動体情報取得処理を行う(ステップS1106)。この可動体情報取得処理では、遊技盤5に設けた各種検出スイッチからの検出信号が入力されているか否かを判定することにより各種検出スイッチからの検出信号の履歴情報(例えば、原位置履歴情報、可動位置履歴情報など。)を作成し、周辺制御RAMにセットする。この周辺制御RAMにセットされる各種検出スイッチからの検出信号の履歴情報から遊技盤5に設けた各種可動体の原位置や可動位置等を取得することができる。
ステップS1106に続いて、演出操作ユニット情報取得処理を行う(ステップS1108)。この演出操作ユニット情報取得処理では、演出操作ユニット220に設けられた各種検出スイッチからの検出信号が入力されているか否かを判定することにより各種検出スイッチからの検出信号の履歴情報(例えば、操作ボタン220Cの操作履歴情報など)を作成し、周辺制御RAMにセットする。この周辺制御RAMにセットされる各種検出スイッチからの検出信号の履歴情報から操作ボタン220Cの操作有無を取得することができる。
ステップS1108に続いて、描画状態情報取得処理を行う(ステップS1110)。この描画状態情報取得処理では、扉枠側装飾基板233の扉枠側演出用レシーバICから出力されるLOCKN信号の履歴情報を作成し、周辺制御RAMにセットする。LOCKN信号は、前述したように、扉枠側装飾基板233の扉枠側演出用レシーバICSDIC0が、周辺制御基板1510に備える扉枠側演出用トランスミッタIC1512dから受信した描画データが異常なデータであると判断すると、その旨を伝えるために出力する信号である。
ステップS1110に続いて、バックアップ処理を行い(ステップS1112)、このルーチンを終了する。このバックアップ処理では、周辺制御RAMに記憶されている内容を、バックアップ第1エリアと、バックアップ第2エリアと、にそれぞれコピーしてバックアップするとともに、周辺制御SRAMに記憶されている内容を、バックアップ第1エリアと、バックアップ第2エリアと、にそれぞれコピーしてバックアップする。
このように、周辺制御部1msタイマ割り込み処理では、1msという期間内において、演出の進行として上述したステップS1104~ステップS1108の演出に関する各種処理を実行している。これに対して、図60の周辺制御部電源投入時処理における周辺制御部定常処理では、約33.3msという期間内において、演出の進行として上述したステップS1012~ステップS1032の演出に関する各種処理を実行している。周辺制御部1msタイマ割り込み処理では、ステップS1100で1msタイマ割り込み実行回数STNが値33より小さくないとき、つまり33回目の1msタイマ割り込みが発生してこの周辺制御部1msタイマ割り込み処理が開始されたときには、そのままこのルーチンを終了するようになっているため、仮に、33回目の1msタイマ割り込みの発生が次回のVブランク信号の発生よりたまたま先行した場合でも、この33回目の1msタイマ割り込みによる周辺制御部1msタイマ割り込み処理の開始を強制的にキャンセルし、Vブランク信号の発生により周辺制御部定常処理におけるステップS1010で1ms割り込みタイマを再び起動した後、新たに1回目の1msタイマ割り込みの発生による周辺制御部1msタイマ割り込み処理を開始するようになっている。つまり、周辺制御部定常処理による演出の進行状態とタイマ割り込み制御である周辺制御部1msタイマ割り込み処理による演出の進行状態との整合性が崩れないようになっている。したがって、演出の進行状態を確実に整合させることができる。
また、上述したように、Vブランク信号が出力される間隔は、遊技盤側装飾基板3053及び扉枠側装飾基板233の液晶サイズによって多少変化するし、周辺制御MPUと音源内蔵VDPとが実装された周辺制御基板1510の製造ロットにおいてもVブランク信号が出力される間隔が多少変化する場合もある。本実施形態では、Vブランク信号が周辺制御基板1510のシステム全体を支配する信号であるため、33回目の1msタイマ割り込みの発生が次回のVブランク信号の発生よりたまたま先行した場合には、周辺制御部Vブランク割り込み処理を実行するために33回目の1msタイマ割り込みによる周辺制御部1msタイマ割り込み処理の開始が強制的にキャンセルさせられている。つまり本実施形態では、Vブランク信号が出力される間隔が多少変化する場合であっても、33回目の1msタイマ割り込みによる周辺制御部1msタイマ割り込み処理の開始を強制的にキャンセルすることによって、このVブランク信号が出力される間隔が多少変化することによる時間ズレを吸収することができるようになっている。
[3-4.液晶表示制御部]
次に、周辺制御基板1510におけるメイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244の描画制御を行う液晶表示制御部1512は、詳細な図示は省略するが、マイクロプロセッサとしての表示制御MPUと、各種処理プログラム、各種コマンド及び各種データを記憶する表示制御ROMと、メイン液晶表示装置1600や上皿液晶表示装置244を表示制御するVDP(Video Display Processorの略)と、メイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244に表示される画面の各種データを記憶する画像ROMと、この画像ROMに記憶されている各種データが転送されてコピーされる画像RAMと、を備えている。
この表示制御MPUは、パラレルI/Oポート、シリアルI/Oポート等を内蔵しており、周辺制御部1511からの制御データ(表示コマンド)に基づいてVDPを制御してメイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244の描画制御を行っている。なお、表示制御MPUは、正常に動作していると、その旨を伝える動作信号を周辺制御部1511に出力する。また表示制御MPUは、VDPから実行中信号が入力されており、この実行中信号の出力が16msごとに停止されたことを契機として、割り込み処理を行っている。
表示制御ROMは、メイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244に描画する画面を生成するための各種プログラムのほかに、周辺制御部1511からの制御データ(表示コマンド)と対応するスケジュールデータ、その制御データ(表示コマンド)と対応する非常駐領域転送スケジュールデータ等を複数記憶している。スケジュールデータは、画面の構成を規定する画面データが時系列に配列されて構成されており、メイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244に描画する画面の順序が規定されている。非常駐領域転送スケジュールデータは、画像ROMに記憶されている各種データを画像RAMの非常駐領域に転送する際に、その順序を規定する非常駐領域転送データが時系列に配列されて構成されている。この非常駐領域転送データは、スケジュールデータの進行に従ってメイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244に描画される画面データを、前もって、画像ROMから画像RAMの非常駐領域に各種データを転送する順序が規定されている。
表示制御MPUは、周辺制御部1511からの制御データ(表示コマンド)と対応するスケジュールデータの先頭の画面データを表示制御ROMから抽出してVDPに出力した後に、先頭の画面データに続く画面データを表示制御ROMから抽出してVDPに出力する。このように、表示制御MPUは、スケジュールデータに時系列に配列された画面データを、先頭の画面データから1つずつ表示制御ROMから抽出してVDPに出力する。
VDPは、表示制御MPUから出力された画面データが入力されると、この入力された画面データに基づいて画像RAMからスプライトデータを抽出してメイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244に表示する描画データを生成し、この生成した描画データを、メイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244に出力する。またVDPは、メイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244が、表示制御MPUからの画面データを受入れないときに、その旨を伝える実行中信号を表示制御MPUに出力する。なお、VDPは、ラインバッファ方式が採用されている。この「ラインバッファ方式」とは、メイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244の左右方向を描画する1ライン分の描画データをラインバッファに保持し、このラインバッファに保持した1ライン分の描画データを、メイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244に出力する方式である。
画像ROMには、極めて多くのスプライトデータが記憶されており、その容量が大きくなっている。画像ROMの容量が大きくなると、つまり、メイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244に描画するスプライトの数が多くなると、画像ROMのアクセス速度が無視できなくなり、メイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244に描画する速度に影響することとなる。そこで、本実施形態では、アクセス速度の速い画像RAMに、画像ROMに記憶されているスプライトデータを転送してコピーし、この画像RAMからスプライトデータを抽出している。なお、スプライトデータは、スプライトをビットマップ形式に展開する前のデータである基データであり、圧縮された状態で画像ROMに記憶されている。
ここで、「スプライト」について説明すると、「スプライト」とは、メイン液晶表示装置1600や上皿液晶表示装置244に、纏まった単位として表示されるイメージである。例えば、メイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244に、種々の人物(キャラクタ)を表示させる場合には、夫々の人物を描くためのデータを「スプライト」と呼ぶ。これにより、メイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244に複数人の人物を表示させる場合には、複数のスプライトを用いることとなる。また人物のほかに、背景を構成する家、山、道路等もスプライトであり、背景全体を1つのスプライトとすることもできる。これらのスプライトは、画面に配置される位置やスプライト同士が重なる場合の上下関係(以下、「スプライトの重ね合わせの順序」と記載する。)が設定されてメイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244に描画される。
なお、スプライトは縦横それぞれ64画素の矩形領域を複数張り合わせて構成されている。この矩形領域を描くためのデータを「スプライトキャラクタ」と呼ぶ。小さなスプライトの場合には1つのスプライトキャラクタを用いて表現することができるし、人物など比較的大きいスプライトの場合には、例えば横2×縦3などで配置した合計6個のスプライトキャラクタを用いて表現することができる。背景のように更に大きいスプライトの場合には更に多数のスプライトキャラクタを用いて表現することができる。このように、スプライトキャラクタの数及び配置は、スプライトごとに任意に指定することができるようになっている。
メイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244は、その正面から見て左から右に向かって順次、画素に沿った一方向に画素ごとの表示状態を設定する主走査と、その一方向と交差する方向に主走査を繰り返し行う副走査と、によって駆動される。メイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244は、液晶表示制御部1512から出力された1ライン分の描画データが入力されると、主走査としてメイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244の正面から見て左から右に向かって順次、1ライン分の画素にそれぞれ出力する。そして1ライン分の出力が完了すると、メイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244は、副走査として直下のラインに移行し、同様に次ライン分の描画データが入力されると、この次ライン分の描画データに基づいて主走査としてメイン液晶表示装置1600、サブ液晶表示装置3114や上皿液晶表示装置244の正面から見て左から右に向かって順次、1ライン分の画素にそれぞれ出力する。
[4.遊技内容]
次に、本実施形態のパチンコ機1による遊技内容について、主に図10、図16及び図17等を参照して説明する。本実施形態のパチンコ機1は、扉枠3の前面右下隅に配置されたハンドルユニット500のハンドルレバー504を遊技者が回転操作することで、皿ユニット200の上皿201に貯留された遊技球が、遊技盤5における外レール1001と内レール1002との間を通って遊技領域5a内の上部へと打ち込まれて、遊技球による遊技が開始される。遊技領域5a内の上部へ打ち込まれた遊技球は、その打込強さによってセンター役物2500の左側、或いは、右側の何れかを流下する。なお、遊技球の打込み強さは、ハンドルレバー504の回転量によって調整することができ、時計回りの方向へ回転させるほど強く打込むことができ、連続で一分間に最大100個の遊技球、つまり、0.6秒間隔で遊技球を打込むことができる。
また、遊技領域5a内には、適宜位置に所定のゲージ配列で複数の障害釘(図示は省略)が遊技パネル1100(パネル板1110)の前面に植設されており、遊技球が障害釘に当接することで、遊技球の流下速度が抑制されると共に、遊技球に様々な動きが付与されて、その動きを楽しませられるようになっている。また、遊技領域5a内には、障害釘の他に、遊技球の当接により回転する風車(図示は省略)が適宜位置に備えられている。
センター役物2500の上部へ打込まれた遊技球は、センター役物2500の前周壁部2512の外周面のうち、最も高くなった部位よりも正面視左側へ進入すると、図示しない複数の障害釘に当接しながら、センター役物2500よりも左側の領域を流下することとなる。そして、センター役物2500の左側の領域を流下する遊技球が、センター役物2500の前周壁部2512の外周面に開口しているワープ入口2520に進入すると、ワープ通路2521を通ってセンター役物2500の枠内に開口しているワープ出口2522から誘導路2523を通ってステージ2530に供給される。
ワープ出口2522からステージ2530に供給された遊技球は、ステージ2530上を転動して左右に行ったり来たりして、左右方向中央の中央誘導部2531、又は、その左右にあるサイド誘導部2532の何れかから後方に放出される。ステージ2530の中央誘導部2531から遊技球が遊技領域5a内に放出されと、この中央誘導部2531が第一始動口2002の直上に位置していることから、中央誘導部2531から放出された遊技球は、高い確率で第一始動口2002に受入れられる。この第一始動口2002に遊技球が受入れられると、主制御基板1310及び払出制御基板951を介して払出装置830から所定数(例えば、3個)の遊技球が、上皿201に払出される。
ステージ2530を転動している遊技球が、サイド誘導部2532から遊技領域5a内に放出されと、始動口ユニット2100へ向かって流下する。センター役物2500のステージ2530から遊技領域5a内に放出された遊技球は、始動口ユニット2100の第一始動口2002や、開状態の第一大入賞口2005等に受入れられる可能性がある。
ところで、センター役物2500の左側へ流下した遊技球が、ワープ入口2520に進入しなかった場合、サイドユニット上2300の棚部2302により左右方向中央側へ寄せられ、サイドユニット下2200の一般入賞口2001や第一始動口2002等に受入れられる可能性がある。そして、一般入賞口2001に遊技球が受入れられると、主制御基板1310及び払出制御基板951を介して払出装置830から所定数(例えば、10個)の遊技球が、上皿201に払出される。
一方、遊技領域5a内においてセンター役物2500の上部に打込まれた遊技球が、センター役物2500の前周壁部2512の外周面の最も高くなった部位よりも右側に進入する(打込まれる)と、右打遊技領域2540の右上流通空間2541内に進入する。この右上流通空間2541内には、図示は省略するが、複数の障害釘が植設されており、遊技球が障害釘に当接してその流下方向を様々に変化させながら流通する。この右上流通空間3541内には、上部にゲート部2003が、下部に一般入賞口2001と通常は第二始動口扉部材2549により閉鎖されている第二始動口2004が備えられている。
右上流通空間2541内を流下した遊技球は、その下流側の右流通路2542を通って右下流通空間2543内に進入する。この右下流通空間2543に進入した遊技球は、第二大入賞口2006として左右に並んだ第二上大入賞口2006aと第二下大入賞口2006bを閉鎖している第二上大入賞口扉部材2552と第二下大入賞口扉部材2555の上面が底面を形成している第二アタッカ通路2543aを通り、低くなっている正面視左側の放出板部2559の左端から遊技領域5a内に放出される。第二アタッカ通路2543aの下流端(放出板部2559)は、始動口ユニット2100の第一大入賞口2005へ遊技球が向かうように開口しており、第一大入賞口2005が開状態の時に、第二アタッカ通路2543aから遊技領域5a内に遊技球が放出されると、高い確率で遊技球が第一大入賞口2005に受入れられる。
この右流通路2542及び右下流通空間2543を流通する遊技球は、複数の減速リブ2546により、流通速度の増加が抑制されながら流下する。なお、ごくまれに、右下流通空間2543内において、第二アタッカ通路2543aの上流端付近で分岐している排出通路2543bに進入することがあり、排出通路2543bに進入した遊技球は遊技領域5a内に戻されることなく第二アウト口2543cから遊技盤5外に排出される。
右打して右上流通空間2541内に進入した遊技球が、ゲート部2003を通過してゲートセンサ2547により検知されると、主制御基板1310において予め決められている数値範囲で更新される普通乱数の中から一の普通乱数を取得し、この取得した普通乱数を予め決められた普通当り判定テーブルと照合することで普通抽選を行う。後述する時短制御を実行していない場合にこの普通抽選の結果が「普通当り」となると第二始動口扉部材2549が1回だけ正面視反時計回りの方向に回動して第二始動口2004を開状態とし、所定時間(この例では0.5秒)の間に亘り第二始動口2004への遊技球の受入れが可能となる。一方、時短制御を実行している場合には普通抽選にて「普通当り」として「第一普通当り」、「第二普通当り」、「第三普通当り」のいずれとなったかを抽選する。そして、時短制御を実行している場合に普通抽選の普通抽選結果が「第一普通当り」、「第二普通当り」、「第三普通当り」のいずれかとなると第二始動口扉部材2549が正面視反時計回りの方向へ回動して第二始動口2004を開状態とすることで所定期間に亘って第二始動口2004への遊技球の受入れが可能な状態とした後、正面視反時計回りの方向へ回動して第二始動口2004を閉状態とすることで第二始動口2004への遊技球の受入れが不可能な状態にする開閉制御を所定回数(この例では5回)に亘って繰り返す。なお、普通抽選の普通抽選結果が「第一普通当り」となった場合には第二始動口2004が遊技球の受入れを可能な状態とされる5回夫々の期間として「0.3秒」、「0.28秒」、「0.3秒」、「0.28秒」、「0.3秒」とされ、普通抽選の普通抽選結果が「第二普通当り」となった場合には第二始動口2004が遊技球の受入れを可能な状態とされる5回夫々の期間として「0.3秒」、「0.28秒」、「1.1秒」、「0.28秒」、「0.3秒」とされ、普通抽選の普通抽選結果が「第三普通当り」となった場合には第二始動口2004が遊技球の受入れを可能な状態とされる5回夫々の期間として「0.3秒」、「0.28秒」、「0.3秒」、「0.28秒」、「1.1秒」とされ、「第二普通当り」及び「第三普通当り」では「第一普通当り」よりも遊技者に有利(第二始動口2004への遊技球の受入れが容易)な当りとなっている。また、第二始動口2004に遊技球が受入れられると、主制御基板1310及び払出制御基板951を介して払出装置830から所定数(例えば、3個)の遊技球が、上皿201に払出される。
本実施形態では、ゲート部2003を遊技球が通過したことに基づいて機能表示ユニット1400の普通図柄表示器で行われる普通図柄の変動表示において、普通図柄の変動表示を開始してから普通図柄を停止表示するまで(普通抽選結果を示唆するまで)にある程度の時間を設定している(例えば、0.01~60秒、普通変動時間とも称す)。第二始動口2004では、普通変動時間の経過後に第二始動口扉部材2549が回動して開状態となる。なお、後述する時短制御の実行中には通常(時短制御を実行していない状態)よりも普通変動時間を短縮させる制御を実行するようになっている。また、第二始動口扉部材2549を回動して第二始動口2004を開状態とする開放時間については、遊技状態に応じて変化させるようにしても良く、例えば、時短制御を実行していない場合には時短制御を実行している場合に比べて、第二始動口2004の開放時間を長い時間に変更するようにしても良い。
また、遊技球がゲート部2003を通過してから普通図柄表示器に変動表示される普通図柄を停止表示するまで(普通抽選結果が示唆されるまで)の間に、新たな遊技球がゲート部2003を通過すると、普通図柄表示器にて新たに普通図柄の変動表示を開始することができないため、普通図柄の変動表示開始を、先の普通図柄の変動表示が終了するまで(普通抽選結果の示唆が終了するまで)保留するようにしている。具体的にはゲートセンサ2547によりゲート部2003を通過した遊技球を検知したことに基づいて主制御基板1310にて取得した普通乱数を記憶しておき、普通図柄の変動表示を開始できる状態になるまで普通図柄の変動表示開始を保留する。なお、主制御基板1310にて記憶可能な普通乱数の保留数は、4つまでを上限とし、それ以上については、ゲート部2003を遊技球が通過しても、保留せずに破棄している。これにより、保留が貯まることで遊技ホール側の負担の増加を抑制している。
本実施形態のパチンコ機1は、第一始動口2002に受入れられた遊技球が第一始動口センサ2104により検知されると、主制御基板1310において予め決められている数値範囲で更新される第一特別乱数の中から一の第一特別乱数を取得し、この取得した第一特別乱数を予め決められた大当り判定テーブルと照合することで遊技者に有利な有利遊技状態(例えば、「大当り」、「小当り」、等)を発生させる第一特別抽選結果の抽選が行われる。そして、抽選された第一特別抽選結果に基づいて第一特別図柄表示器の八つのLEDを所定の変動時間(例えば、0.1~360秒)に亘って点滅制御した後に第一特別抽選結果に応じた点灯態様で表示する(第一特別図柄を変動表示した後に第一特別抽選結果に応じた停止図柄を表示する)ことにより第一特別抽選結果を遊技者に示唆する。なお、第一始動口2002に遊技球が受入れられることで抽選される第一特別抽選結果には、「はずれ」、「小当り」、「2R大当り」、「8R大当り」、「10R大当り」があり、取得した第一特別乱数を大当り判定テーブルと照合することでこれらのうち何れであるかが判別され、さらには大当り遊技後に通常(低確率状態:本例では約395分の1の確率で大当りに当選する)よりも大当りに当選する確率(当選確率)を向上させる確率向上制御(高確率状態(確変状態ともいう):本例では約44分の1の確率で大当りに当選する)を実行するか否か(確変大当りか否か)と、少なくとも第一特別抽選結果がはずれの場合に通常よりも変動時間を短縮させる時短制御(時短状態)を実行するか否か(時短大当りか否か)及び時短制御を実行する期間(時短回数:特別図柄(第一特別打図柄及び第二特別図柄の変動回数))と、も判別されるようになっている。なお、「小当り」の当選確率は遊技状態に関わらず常に一定とされる(本例では約300分の1)。
また、第二始動口2004に受入れられた遊技球が第二始動口センサ2551により検知されると、主制御基板1310において予め決められている数値範囲で更新される第二特別乱数の中から一の第二特別乱数を取得し、この取得した第二特別乱数を予め決められた大当り判定テーブルと照合することで遊技者に有利な有利遊技状態(例えば、「大当り」、「小当り」、等)を発生させる第二特別抽選結果の抽選が行われる。そして、抽選された第二特別抽選結果に基づいて第二特別図柄表示器の八つのLEDを所定の変動時間(例えば、0.1~360秒)に亘って点滅制御した後に第二特別抽選結果に応じた点灯態様で表示する(第二特別図柄を変動表示した後に第二特別抽選結果に応じた停止図柄を表示する)ことにより第二特別抽選結果を遊技者に示唆する。なお、第二始動口2004に遊技球が受入れられることで抽選される第二特別抽選結果には、「はずれ」、「2R大当り」、「4R大当り」、「5R大当り」、「6R大当り」、「7R大当り」、「8R大当り」、「16R大当り」があり、取得した第二特別乱数を大当り判定テーブルと照合することでこれらのうち何れであるかが判別され、さらには大当り遊技後に通常(低確率状態:本例では約395分の1の確率で大当りに当選する)よりも大当りに当選する確率(当選確率)を向上させる確率向上制御(高確率状態(確変状態ともいう):本例では約44分の1の確率で大当りに当選する)を実行するか否か(確変大当りか否か)と、少なくとも第二特別抽選結果がはずれの場合に通常よりも変動時間を短縮させる時短制御(時短状態)を実行するか否か(時短大当りか否か)及び時短制御を実行する期間(時短回数:特別図柄(第一特別打図柄及び第二特別図柄の変動回数))と、も判別されるようになっている。
第一始動口2002及び第二始動口2004への遊技球の受入れにより抽選された特別抽選結果(第一特別抽選結果及び第二特別抽選結果)が、有利遊技状態を発生させる特別抽選結果の場合、所定の変動時間の経過後に特別図柄表示器(第一特別図柄表示器、第二特別図柄表示器)の8つのLEDを特別抽選結果に応じた点灯態様で表示させ、その後第一大入賞口2005及び第二大入賞口2006の何れが所定の開閉パターンで遊技球の受入れが可能な状態となる。第一大入賞口2005や第二大入賞口2006が開状態の時に、第一大入賞口2005や第二大入賞口2006に遊技球が受入れられると、主制御基板1310及び払出制御基板951によって払出装置830から所定数(例えば、第一大入賞口2005に遊技球が受入れられた場合には11個、又は、第二大入賞口2006に遊技球が受入れられた場合には15個)の遊技球が、上皿201に払出される。従って、第一大入賞口2005や第二大入賞口2006が遊技球を受入可能としている時に、第一大入賞口2005や第二大入賞口2006に遊技球を受入れさせることで、多くの遊技球を払出させることができ、遊技者を楽しませることができる。
特別抽選結果が「小当り」や「2R大当り」の場合には、第一大入賞口2005が、所定短時間(例えば、0.2秒~0.6秒の間)の間、遊技球を受入可能な開状態となってから閉鎖する開閉パターンを複数回(例えば、2回)繰返す。一方、特別抽選結果が「4R大当り」、「5R大当り」、「6R大当り」、「7R大当り」、「8R大当り」、「10R大当り」、「16R大当り」の場合には、第一大入賞口2005又は第二大入賞口2006が、遊技球を受入可能な開状態となった後に、所定時間(例えば、約30秒)経過するか、或いは、第一大入賞口2005へ予め決められている個数(例えば、7個)の遊技球が受入れられるか又は第二大入賞口2006へ予め決められている個数(例えば、10個)の遊技球が受入れられるか、の何れかの条件が充足すると、遊技球を受入不能な閉状態とする開閉パターン(一回の開閉パターンを1ラウンドと称す)を、所定回数(所定ラウンド数)繰返す。例えば、「4R大当り」であれば4ラウンド、「5R大当り」であれば5ラウンド、「16R大当り」であれば16ラウンド、夫々繰返して、遊技者に有利な有利遊技状態を発生させる。また、特別抽選結果が「小当り」や「2R大当り」の場合に実行される開閉パターン(第一大入賞口2005が所定短時間(例えば、0.2秒~0.6秒の間)の間、遊技球を受入可能な開状態となってから閉鎖する開閉パターン)では実質的に第一大入賞口2005へ遊技球を入球させることは困難である。これに対して特別抽選結果が「4R大当り」、「5R大当り」、「6R大当り」、「7R大当り」、「8R大当り」、「10R大当り」、「16R大当り」の場合に実行される開閉パターン(第一大入賞口2005又は第二大入賞口2006が、遊技球を受入可能な開状態となった後に、所定時間(例えば、約30秒)経過するか、或いは、第一大入賞口2005へ予め決められている個数(例えば、7個)の遊技球が受入れられるか又は第二大入賞口2006へ予め決められている個数(例えば、10個)の遊技球が受入れられるか、の何れかの条件が充足すると、遊技球を受入不能な閉状態とする開閉パターン)では第一大入賞口2005又は第二大入賞口2006へ遊技球を入球させることは容易となっている。なお、特別抽選結果が「4R大当り」、「5R大当り」、「6R大当り」、「7R大当り」、「8R大当り」、「10R大当り」、「16R大当り」の場合には、上記第一大入賞口2005又は第二大入賞口2006が、遊技球を受入可能な開状態となった後に、所定時間(例えば、約30秒)経過するか、或いは、第一大入賞口2005へ予め決められている個数(例えば、7個)の遊技球が受入れられるか又は第二大入賞口2006へ予め決められている個数(例えば、10個)の遊技球が受入れられるか、の何れかの条件が充足すると、遊技球を受入不能な閉状態とする開閉パターンが実行されるラウンド数を実質的な特別抽選結果としてもよく、特別抽選結果として第一大入賞口2005へ予め決められている個数(例えば、7個)の遊技球が受入れられるか又は第二大入賞口2006へ予め決められている個数(例えば、10個)の遊技球が受入れられるか、の何れかの条件が充足すると、遊技球を受入不能な閉状態とする開閉パターンと特別抽選結果が「小当り」や「2R大当り」の場合に実行される開閉パターン(第一大入賞口2005が所定短時間(例えば、0.2秒~0.6秒の間)の間、遊技球を受入可能な開状態となってから閉鎖する開閉パターン)とを含む複数のラウンドを実行するものを設けるようにしてもよい。例えば、特別抽選結果として「実質4Rとする8R大当り」を設けて、第一大入賞口2005へ予め決められている個数(例えば、7個)の遊技球が受入れられるか又は第二大入賞口2006へ予め決められている個数(例えば、10個)の遊技球が受入れられるか、の何れかの条件が充足すると、遊技球を受入不能な閉状態とする開閉パターンを4回繰り返した後、特別抽選結果が「小当り」や「2R大当り」の場合に実行される開閉パターン(第一大入賞口2005が所定短時間(例えば、0.2秒~0.6秒の間)の間、遊技球を受入可能な開状態となってから閉鎖する開閉パターン)を4回繰り返すようにしてもよい。
ところで、本実施形態では第二大入賞口2006が、左右に並んだ第二上大入賞口2006aと第二下大入賞口2006bとで構成されており、第二大入賞口2006が用いられる「大当り」の場合、例えば、初めのラウンド(1R目)は第二上大入賞口2006aが開いて遊技球を受入可能とし、受入不能とする条件の充足により閉鎖されて、次に受入可能とするまでの間(インターバルの間)、第二下大入賞口2006bを開いて遊技球を受入可能とする次のラウンド(2R目)を開始させ、第二下大入賞口2006bが受入不能となると、その間にインターバルの期間が経過しているため、第二上大入賞口2006aを再び開いて遊技球を受入可能とする。そして、第二上大入賞口2006aと第二下大入賞口2006bとを、所定ラウンド数の消化まで交互に開閉させる。これにより、第二アタッカ通路2543a内では、「大当り」中は第二上大入賞口2006a及び第二下大入賞口2006bの何れかが遊技球を受入可能な状態となっているため、この状態で右打して第二アタッカ通路2543a内に遊技球を流通させると、その遊技球が必ず第二大入賞口2006に受入れられることとなり、遊技球の取りこぼしをなくして、遊技者を楽しませることができる。
また、本実施形態では上記した複数種類の大当りのうち一部の大当りでは、大当り当選時の遊技状態に応じて大当り遊技の終了後に上記時短制御を実行するか否かを異ならせている。例えば、非時短状態(時短制御を実行していない状態)で第一特別抽選結果が大当り遊技後に確率向上制御を実行しない8R通常大当りである場合には、大当り遊技後に時短制御を実行しない。一方、時短状態(時短制御を実行している状態)で第一特別抽選結果が8R通常大当りである場合には、大当り遊技後に時短制御を実行するようになっている。また、非時短状態(時短制御を実行していない状態)で第二特別抽選結果が大当り遊技後に確率向上制御を実行しない2R通常大当りである場合には、大当り遊技後に時短制御を実行しない。一方、時短状態(時短制御を実行している状態)で第二特別抽選結果が2R通常大当りである場合には、大当り遊技後に時短制御を実行するようになっている。また、低確率非時短状態(確率向上制御と時短制御との両方ともに実行していない状態:通常状態ともいう)で第一特別抽選結果及び第二特別抽選結果が大当り遊技後に確率向上制御を実行する2R確変大当りである場合には、大当り遊技後に時短制御を実行しない。一方、確率向上制御を実行しているか又は時短制御を実行している状態、即ち通常状態以外の状態で第一特別抽選結果及び第二特別抽選結果が大当り遊技後に確率向上制御を実行する2R確変大当りである場合には、大当り遊技後に時短制御を実行するようになっている。
本実施形態では、第一始動口2002への遊技球の受入れにより第一特別図柄表示器にて実行される第一特別図柄の変動表示と、第二始動口2004への遊技球の受入れにより第二特別図柄表示器にて実行される第二特別図柄の変動表示と、は同時に実行されず、いずれか一方のみを実行するようにしている。そのため、第一始動口2002への遊技球の受入れにより第一特別図柄表示器に変動表示される第一特別図柄を停止表示するまで(第一特別抽選結果が示唆されるまで)の間と第二始動口2004への遊技球の受入れにより第二特別図柄表示器に変動表示される第二特別図柄を停止表示するまで(第二特別抽選結果が示唆されるまで)の間に、第一始動口2002や第二始動口2004に新たな遊技球が受入れられると、第一特別図柄表示器や第二特別図柄表示器にて新たに第一特別図柄や第二特別図柄の変動表示を開始することができないため、特別図柄(第一特別図柄、第二特別図柄)の変動表示開始を先の特別図柄(第一特別図柄、第二特別図柄)の変動表示が終了するまで(第一特別抽選結果や第二特別抽選結果の示唆が完了するまで)保留するようにしている。具体的には、第一始動口センサ2104により第一始動口2002に受入れられた遊技球を検知したことに基づいて主制御基板1310にて取得した第一特別乱数と、第二始動口センサ2551により第二始動口2004に受入れられた遊技球を検知したことに基づいて主制御基板1310にて取得した第二特別乱数と、を記憶しておき、特別図柄(第一特別図柄、第二特別図柄)の変動表示を開始できる状態になるまで特別図柄(第一特別図柄、第二特別図柄)の変動表示開始を保留する。なお、主制御基板1310にて記憶可能な第一特別乱数及び第二特別乱数の保留数は夫々4つまでを上限とし、それ以上については、第一始動口2002及び第二始動口2004に遊技球が受入れられても保留せずに、破棄している。これにより、保留が貯まることで遊技ホール側の負担の増加を抑制している。また、主制御基板1310に記憶されている第一特別乱数及び第二特別乱数は、第二特別乱数の方を優先して消化させるようになっている。つまり、第一始動口2002及び第二始動口2004への遊技球の受入れタイミングに関わらず、第二特別乱数が記憶されて第二特別図柄の変動表示開始が保留されていれば、第一特別図柄よりも第二特別図柄の変動表示が優先して実行されるようになっている。
この特別抽選結果の示唆は、機能表示ユニット1400(第一特別図柄表示器、第二特別図柄表示器)とメイン液晶表示装置1600とで行われる(サブ液晶表示装置3114も用いても良い)。機能表示ユニット1400では、主制御基板1310によって直接制御されて特別抽選結果の示唆が行われる。機能表示ユニット1400での特別抽選結果の示唆は、特別図柄表示器(第一特別図柄表示器、第二特別図柄表示器)を構成する上記した八つのLEDを、点灯・消灯を繰返して所定時間点滅させ、その後に、所定の点灯態様で停止して、この停止時に点灯しているLEDの組み合わせによって特別抽選結果を示唆する。
一方、メイン液晶表示装置1600では、主制御基板1310からの制御信号(変動パターンコマンド、判定結果通知コマンド等)に基いて、周辺制御基板1510によって間接的に制御され、演出画像によって特別抽選結果の示唆が行われる。具体的には、メイン液晶表示装置1600において、複数の異なる図柄からなる一連の装飾図柄列が複数列(例えば、左装飾図柄・中装飾図柄・右装飾図柄の三列)表示された状態で各装飾図柄列の変動表示が開始され、その後に、順次停止表示され(本例では左装飾図柄→右装飾図柄→中装飾図柄の順に停止表示される)、最終的に全ての装飾図柄列が停止表示されると、停止表示された図柄の組合せによって抽出された特別乱数(第一特別乱数、第二特別乱数)の抽選結果が遊技者側に示唆されるようになっている。つまり、始動入賞発生時に取得した特別乱数(第一特別乱数、第二特別乱数)に基づく特別抽選結果(第一特別抽選結果、第二特別抽選結果)に応じて、複数の装飾図柄列が変動表示された後に特別抽選結果(第一特別抽選結果、第二特別抽選結果)を示唆するように停止表示される演出画像が表示されるようになっている。なお、第一特別図柄表示器に変動表示される第一特別図柄や第二特別図柄表示器に変動表示される第二特別図柄よりも、メイン液晶表示装置1600に表示される装飾図柄の方が大きく見易いため、一般的に遊技者はメイン液晶表示装置1600に表示された装飾図柄に注目することとなる。
なお、機能表示ユニット1400での特別抽選結果を示唆する時間(LEDの点滅時間(変動時間))と、メイン液晶表示装置1600での特別抽選結果を示唆する時間(図柄列が変動して確定画像が表示されるまでの時間)とは、異なっており、機能表示ユニット1400の方が短い時間に設定されている。
また、周辺制御基板1510では、メイン液晶表示装置1600による特別抽選結果を示唆するための演出画像の表示の他に、抽選された特別抽選結果に応じて、センター役物2500の装飾体、裏左中装飾ユニット3050、裏下後可動演出ユニット3100、裏上左可動演出ユニット3200、裏左可動演出ユニット3300、裏上中可動演出ユニット3400、及び裏下前可動演出ユニット3500、等を適宜用いて、発光演出、可動演出、表示演出、等を行うことが可能であり、各種の演出によっても遊技者を楽しませることができ、遊技者の遊技に対する興趣が低下するのを抑制することができる。
[5.主制御基板の各種制御処理]
次に、パチンコ機1の遊技の進行に応じて、主制御基板1310によって実行される処理について説明する。具体的には、遊技機の電源投入時に実行されるシステム/ユーザリセット処理と、システム/ユーザリセット処理で起動されるタイマによって所定周期(本実施形態では、4ms)で実行されるタイマ割込み処理について説明する。
[5-1.初期化処理]
図21及び図22は、本発明の実施形態における主制御基板の初期化処理の手順を示すフローチャートである。
パチンコ機1に電源が投入されると、主制御基板1310の主制御MPU1311が主制御プログラムを実行することによって初期化処理を行う。初期化処理が開始されると、主制御MPU1311は、まず、主制御MPU1311に内蔵されたRAM1312のプロテクトを書き込み許可に設定し、RAM1312への書き込みができる状態にする(ステップS10)。具体的には、RAMプロテクトレジスタに書き込み許可を示す”00H”を出力する。
続いて、主制御MPU1311は、内蔵されたウォッチドッグタイマを起動する(ステップS12)。具体的には、まず、ウォッチドッグタイマコントロールレジスタに、モード設定を示す”03H”を書き込み、さらに、ウォッチドッグタイマの起動を示す”03H”を書き込む。さらに、ウォッチドッグタイマをクリアして、リセットする(ステップS14)。
続いて、所定のウェイト時間が経過したかを判定する(ステップS16)。パチンコ機1の電源を投入してから所定電圧となるまでの間は電圧がすぐに上昇しないため、電源投入時から所定電圧に上がるまでの間に電圧が停電予告電圧より小さくなると、停電監視回路から停電予告信号が入力される。ウェイト処理では、所定の監視ウェイト値を設定し、ウォッチドッグタイマを起動させながら所定時間(例えば、200ミリ秒)処理を待機させる。
所定のウェイト時間が経過していれば、サブ基板(周辺制御基板1510など)が起動するために必要な時間が経過しているので、RAMクリアスイッチが操作されているかを判定する(ステップS18)。RAMクリアスイッチが操作されている場合、内蔵RAM1312のワークエリアにバックアップされているデータのうち役物比率算出用ワークエリア(役物比率算出用領域13128)以外の領域のデータを消去し(ステップS30)、ステップS24に進む。一方、RAMクリアスイッチが操作されていない場合、内蔵RAM1312にバックアップされているデータを消去せず、停電フラグが設定されているかを判定する(ステップS20)。停電フラグは、停電発生など、パチンコ機1の電源が正常な処理を経て遮断された場合にセットされるフラグである(図22のステップS56参照)。
その結果、停電フラグが設定されていなければ、内蔵RAM1312のワークエリアのデータは正しくない恐れがあるので、ワークエリアにバックアップされているデータ(役物比率算出用領域13128以外)を消去し(ステップS30)、ステップS24に進む。一方、停電フラグが設定されていれば、停電フラグをクリアし、前回の電源遮断時に計算されたチェックサムを用いて内蔵RAM1312のワークエリアにバックアップされているデータから算出したチェックサムとステップS48で記憶したチェックサムとを比較(検証)する(ステップS22)。
その結果、バックアップデータから算出されたチェックサムとステップS48で記憶したチェックサムとが一致しなければ、内蔵RAM1312のワークエリアのデータは正しくない恐れがあるので、ワークエリアにバックアップされているデータ(役物比率算出用領域13128以外)を消去し(ステップS30)、ステップS24に進む。一方、バックアップデータから算出されたチェックサムとステップS48で記憶したチェックサムとが一致すれば、内蔵RAM1312のワークエリアのデータは正しいので、ワークエリアにバックアップされているデータを消去せず、ステップS24に進む。
続いて、チェックコードを用いて役物比率算出用ワークエリア(役物比率算出用領域13128)が正常かを判定する(ステップS24)。異常であると判定された場合、役物比率算出用ワークエリアのデータは正しくない恐れがあるので、役物比率算出用ワークエリアに格納されているデータを消去する(ステップS26)。
なお、役物比率算出用領域13128に、1又は複数のバックアップ領域を設ける場合、最初に、チェックコードを用いてメイン領域を判定し、メイン領域が異常であると判定された場合、バックアップ領域1、2、Nの順で判定し、最初に正常であると判定されたバックアップ領域のデータをメイン領域に複製するとよい。その後、バックアップ領域のデータは消去しても、そのまま残してもよい。メイン領域が正常であると判定された場合、バックアップ領域のデータは消去しても、そのまま残してもよい。
役物比率算出用領域については、電源投入時によるチェックコードの判定結果とは別に、所定時間毎に役物比率算出用領域13128のデータを消去してもよい。また、所定の稼動量毎(例えば、所定の発射球数毎、所定の入賞球数毎、所定数の特別図柄変動表示ゲーム毎、所定数の特別図柄変動表示ゲームの大当り毎など)に役物比率算出用領域13128のデータを消去してもよい。
このように、本実施形態のパチンコ機では、内蔵RAM1312のワークエリアにバックアップされているデータを、データの種別毎に(遊技制御用データ13132と役物比率算出・表示用データ13136とを)異なる条件で消去する。すなわち、RAMクリアスイッチの操作によって、バックアップされた遊技制御用データ13132は消去されるが、バックアップされた役物比率算出・表示用データ13136は消去されない。RAMクリアスイッチの操作によって役物比率算出・表示用データ13136が消去できると、パチンコ機1が算出した役物比率を任意のタイミングで消去できる。このため、RAMクリアスイッチの操作によって、バックアップされた役物比率算出・表示用データ13136は消去されないようにして、遊技場の係員の操作による役物比率算出・表示用データ13136の消去を防止し、役物比率が異常な状態の隠蔽を防止できる。このため、役物比率が高い状態や低い状態へ改造された遊技機を容易に検出できる。
主制御MPU1311は、RAM作業領域の復電時設定又はRAM初期化処理が実行されると、主制御MPU1311(CPU13111)の各種設定レジスタに設定するための初期設定を実行する(ステップS28)。主制御MPU1311の初期設定では、まず、CTC(Counter/Timer Circuit)の初期設定を行い、割り込みを許可する。さらに、シリアル通信ポート及び試験信号出力ポートの初期設定を行う。ハードウェア乱数の生成回路を起動する。そして、周辺制御基板1510、払出制御基板951及び役物比率表示器1317との通信に使用するシリアル通信回路13114の設定を行う。さらに、シリアル通信回路13114の動作開始後に、役物比率表示器1317のドライバ回路13171の初期設定を行う。
続いて、主制御MPU1311は、周辺制御基板1510に送信するための電源投入時コマンドを設定する処理を実行する(ステップS32)。電源投入時コマンド作成処理では、遊技バックアップ情報から遊技情報を読み出して、遊技情報に応じた各種コマンドを主制御内蔵RAM1312の所定記憶領域に記憶する。電源投入時コマンドの生成は、電源投入時状態基準コマンドを基準コマンドデータとしてセットし、生成するコマンドに対応するコマンド加算データを加算する。
電源投入時のコマンドには、電源投入時状態バッファコマンドや特別図柄・電動役物動作番号コマンドが含まれる。電源投入時状態バッファコマンドは、電源断後の復帰時に遊技状態を通知するコマンドであり、特別抽選の当選確率及び普通電動役物の動作態様を通知する。一方、特別図柄・電動役物動作番号コマンドは、特別図柄の変動表示の実行状況を通知する。
その後、主制御MPU1311は、タイマ割込み処理をはじめとする割り込み処理の実行を許可する(ステップS34)。パチンコ機1の電源投入からステップS34までの処理によりパチンコ機1の初期設定が完了する(初期設定手段)。
続いて、主制御MPU1311は、停電予告信号を取得し(ステップS36)、停電予告信号がONであるか否かを判定する(ステップS38)。停電予告信号がONでない場合(ステップS38の結果が「No」)、すなわち、乱数更新処理を実行する(ステップS40)。ステップS46の乱数更新処理では、主として特別抽選や普通抽選において当選判定を行うための乱数以外の乱数を更新する。なお、特別抽選や普通抽選において当選判定を行うための乱数の更新処理は、後述するタイマ割込み処理で実行される。停電予告信号が検出されるまでステップS36からステップS40までの処理を実行し、これらの処理を主制御側メイン処理とする(初期設定後通常手段)。
一方、停電予告信号を検出した場合には(ステップS38の結果が「Yes」)、主制御MPU1311は、電源断時処理を実行する(電断時設定手段)。電源断時処理では、停電発生前の状態に復帰させるためのデータをバックアップする処理を実行する。具体的には、まず、割込み処理の実行を禁止する(ステップS42)。これにより後述するタイマ割り込み処理が行われなくなり、主制御内蔵RAM1312への書き込みを防ぎ、遊技情報の書き換えを保護することができる。さらに、主制御MPU1311は、出力ポートをクリアして、各ポートからの出力によって制御される機器の動作を停止する(ステップS44)。具体的には、ソレノイド・停電クリア・ACK出力ポートに停電クリア信号OFFビットデータを設定する。なお、全ての出力ポートがクリアされなくてもよく、例えば、電力消費が大きいソレノイドやモータを制御するための出力ポートをクリアすればよい。これらの出力ポートをクリアすることによって、主基板側電源断時処理が終了するまでの時間の消費電力を低減し、主基板側電源断時処理を確実に終了できるようになる。
続いて、主制御MPU1311は、バックアップされるワークエリアに格納されたデータが正常に保持されたか否かを判定するためのチェックサムを計算する(ステップS46)。さらに、チェックサムの計算結果をRAM1312のチェックサムエリアに格納する(ステップS48)。このチェックサムはワークエリアにバックアップされたデータが正常かの判定に使用される。
続いて、役物比率算出用ワークエリア(役物比率算出用領域13128)のデータからチェックコード(例えば、チェックサム)算出する(ステップS50)。チェックコードが固定値である場合には、ステップS50においてチェックコードを算出する必要はない。なお、チェックコードは、主基板電源断時処理ではなく、役物比率算出・表示処理でデータの更新の都度、算出し、記憶してもよい。
続いて、算出したチェックコード(又は、チェックコードとして用いる所定値)を役物比率算出用領域13128の所定の領域に格納する(ステップS52)。
続いて、役物比率算出用ワーク(役物比率算出用領域13128)のメイン領域のデータを各バックアップ領域に複製する(ステップS54)。このとき、計算されたチェックコードも複製する。バックアップは、主基板側電源断時処理ではなく、役物比率算出・表示処理で適宜(例えば、データの更新の都度)、実行してもよい。
このように、役物比率の算出に使用するデータを、計算された(又は、所定値の)チェックコードと共にバックアップ領域に格納することによって、電源遮断時にも役物比率算出用のデータを保持し、長期間の稼動における役物比率を算出できる。
さらに、停電フラグとしてバックアップフラグエリアに正常にバックアップされたことを示す値を格納する(ステップS56)。これにより、遊技バックアップ情報の記憶が完了する。最後に、RAMプロテクトレジスタに書き込み禁止を示す”01H”を出力することでRAM1312の書き込みを禁止し(ステップS58)、停電から復旧するまでの間、待機する(無限ループ)。
[5-2.タイマ割込み処理]
次に、タイマ割込み処理について説明する。タイマ割込み処理は、図21及び図22に示した初期化処理において設定された割り込み周期(本実施形態では、4ms)ごとに繰り返し行われる。図23はタイマ割込み処理の一例を示すフローチャートである。
タイマ割込み処理が開始されると、主制御MPU1311は、主制御プログラムを実行することによって、まず、プログラムステータスワードのRBS(レジスタバンク選択フラグ)に1を設定し、レジスタを切り替える(ステップS70)。本実施形態における主制御基板1310には、バンク0とバンク1を有しており、タイマ割込み処理が実行されるたびに切り替えて使用される。
次に、主制御MPU1311は、スイッチ入力処理を実行する(ステップS74)。スイッチ入力処理では、主制御MPU1311の各種入力ポートの入力端子に入力されている各種信号を読み取り、入力情報として主制御内蔵RAM1312の入力情報記憶領域に記憶する。具体的には、一般入賞口などの入賞口に入球した遊技球を検出する各種センサからの検出信号、磁石を用いた不正行為を検出する磁気検出スイッチ3024からの検出信号、賞球制御処理で送信した賞球コマンドを払出制御基板951が正常に受信した旨を伝える払出制御基板951からの払主ACK信号などをそれぞれ読み取り、入力情報として入力情報記憶領域に記憶する。また、スイッチ入力処理では、排出球センサ3060や発射球センサ1020からの検出信号を読み取って、アウト球数を計数する。
続いて、主制御MPU1311は、タイマ更新処理を行う(ステップS76)。タイマ更新処理では、例えば、後述する特別図柄及び特別電動役物制御処理で決定される変動表示パターンに従って特別図柄表示器1185が点灯する時間、普通図柄及び普通電動役物制御処理で決定される普通図柄変動表示パターンに従って普通図柄表示器1189が点灯する時間のほかに、主制御基板1310(主制御MPU1311)が送信した各種コマンドを払出制御基板951が正常に受信した旨を伝える払主ACK信号が入力されているか否かを判定する際にその判定条件として設定されているACK信号入力判定時間等の時間管理を行う。具体的には、変動表示パターン又は普通図柄変動表示パターンの変動時間が5秒間であるときには、タイマ割り込み周期が4msに設定されているので、このタイマ減算処理を行うごとに変動時間を4msずつ減算し、その減算結果が値0になることで変動表示パターン又は普通図柄変動表示パターンの変動時間を正確に計測している。
続いて、主制御MPU1311は、乱数更新処理1を実行する(ステップS78)。乱数更新処理1では、大当り判定用乱数、大当り図柄用乱数、及び小当り図柄用乱数を更新する。またこれらの乱数に加えて、図に示したシステム/ユーザリセット処理(主制御側メイン処理)におけるステップS40の非当落乱数更新処理で更新される、大当り図柄用初期値決定用乱数、及び小当り図柄用初期値決定用乱数も更新する。
続いて、主制御MPU1311は、賞球制御処理を実行する(ステップS80)。賞球制御処理では、入力情報記憶領域から入力情報を読み出し、読み出した入力情報に基づいて払い出される遊技球(賞球)の数を計算し、主制御内蔵RAM1312に書き込む。また、賞球数の計算結果に基づいて、遊技球を払い出すための賞球コマンドを作成したり、主制御基板1310と払出制御基板951との基板間の接続状態を確認するためのセルフチェックコマンドを作成したりする。主制御MPU1311は、作成した賞球コマンドやセルフチェックコマンドを主払シリアルデータとして払出制御基板951に送信する。
続いて、主制御MPU1311は、現在の遊技状態を判定し、遊技価値として払い出される賞球数を現在の遊技状態に対応した領域に加算して、主制御内蔵RAM1312の役物比率算出用領域13128(図26参照)を更新する(ステップS81)。ステップS81の処理は、ステップS80で払い出されるべき賞球がない場合にはスキップでき、パチンコ機1の負荷を軽減できる。
続いて、主制御MPU1311は、枠コマンド受信処理を実行する(ステップS82)。払出制御基板951では、払出制御プログラムによって、状態表示に区分される1バイト(8ビット)の各種コマンド(例えば、枠状態1コマンド、エラー解除ナビコマンド、及び枠状態2コマンド)を送信する。一方、後述するように、払出制御プログラムによって、払出動作にエラーが発生した場合にエラー発生コマンドを出力したり、操作スイッチの検出信号に基づいてエラー解除報知コマンドを出力する。枠コマンド受信処理では、各種コマンドを払主シリアルデータとして正常に受信すると、その旨を払出制御基板951に伝える情報を、出力情報として主制御内蔵RAM1312の出力情報記憶領域に記憶する。また、主制御MPU1311は、払主シリアルデータとして正常に受信したコマンドを2バイト(16ビット)のコマンドに整形し(例えば、枠状態表示コマンド、エラー解除報知コマンドなど)、送信情報として上述した送信情報記憶領域に記憶する。また、賞球排出処理では、役物比率算出用領域13128の遊技状態により定められた記憶領域(図27参照)に賞球排出数を記録する。
役物比率算出用領域更新処理(ステップS81)は、賞球制御処理(ステップS80)の後で役物比率算出・表示処理(ステップS89)の前であれば、どの順序で実行してもよい。
続いて、主制御MPU1311は、不正行為検出処理を実行する(ステップS84)。不正行為検出処理では、賞球に関する異常状態を確認する。例えば、上述した入力情報記憶領域から入力情報を読み出し、大当り遊技状態でない場合にカウントスイッチによって大入賞口2005,2006に遊技球が入球していると検知されたとき等には、主制御プログラムは、異常状態として報知表示に区分される入賞異常表示コマンドを作成し、送信情報として上述した送信情報記憶領域に記憶する。
続いて、主制御MPU1311は、特別図柄及び特別電動役物制御処理を実行する(ステップS86)。特別図柄及び特別電動役物制御処理では、大当り用乱数値が主制御内蔵ROMに予め記憶されている当り判定値と一致するか否かを判定する。さらに、大当り図柄乱数値に基づいて確率変動状態に移行させるか否かを判定する。そして、確変移行条件が成立している場合には、その後、確率変動状態に移行させる一方、確変移行条件が成立していない場合には当該確率変動状態以外の遊技状態に移行させる。ここで、「確率変動状態」とは、上述した特別抽選の当選確率が通常遊技状態(低確率状態)と比較して相対的に高く設定された状態(高確率状態)をいう。
続いて、主制御MPU1311は、普通図柄及び普通電動役物制御処理を実行する(ステップS88)。普通図柄及び普通電動役物制御処理では、上述した入力情報記憶領域から入力情報を読み出し、ゲートスイッチ2352からの検出信号が入力端子に入力されていたか否かを判定する。検出信号が入力端子に入力されていた場合には、普通図柄当り判定用乱数を抽出し、主制御内蔵ROMに予め記憶されている普通図柄当り判定値と一致するか否かを判定する(「普通抽選」という)。そして、普通抽選による抽選結果に応じて第二始動口扉部材2549を開閉動作させるか否かを決定する。この決定により開閉動作をさせる場合、第二始動口扉部材2549が開放(又は、拡大)状態となることで始動口2004に遊技球が受け入れ可能となる遊技状態となって遊技者にとって有利な遊技状態に移行させる。
続いて、主制御MPU1311は、表示スイッチ1318が操作されているかを判定し、表示スイッチ1318が操作されていれば、役物比率算出・表示処理(図24、図25)を呼び出し、役物比率算出用領域13128に格納された賞球数を参照して役物比率を算出する。そして、算出された役物比率を役物比率表示器1317に表示する(ステップS89)。このように、タイマ割込み処理において役物比率算出・表示処理を呼び出して、役物比率を算出することによって、直近のデータによる役物比率(パチンコ機1の射幸性)を確認できる。
なお、表示スイッチ1318が操作されているかにかかわらず、本体枠4が外枠2から開放したことを本体枠開放スイッチ(図示省略)が検出していれば、役物比率を表示してもよい。また、本体枠4が外枠2から開放したことを本体枠開放スイッチ(図示省略)が検出中に表示スイッチ1318が操作された場合に、役物比率表示器1317に役物比率を表示してもよい。表示スイッチ1318は、遊技盤の裏面側に設けられていることから、表示スイッチ1318が表示されていれば、通常、本体枠4が開放しており、遊技の進行が停止している。このように、遊技の進行が停止したタイミングで役物比率を算出すると、遊技中に役物比率の算出のための除算や減算によってCPUリソースを消費することがなく、CPUの負荷を軽減できる。
役物比率算出・表示処理の詳細は、図24、図25において後述する。また、役物比率の表示方法の具体例は後述する。なお、表示スイッチ1318が操作されていると、全ての種類の値(役物比率、連続役物比率、累計、総累計)を計算してもよいが、表示スイッチ1318の操作毎に、表示される値のみを計算してもよい。また、表示スイッチ1318が操作されているかにかかわらず役物比率を計算し、表示スイッチ1318が操作されていれば、算出された役物比率を役物比率表示器1317に表示してもよい。
なお、パチンコ機1が不正を検出して遊技を中止した場合でも、役物比率算出用領域更新処理(ステップS81)及び役物比率算出・表示処理(ステップS89)を実行する。不正が検出されたか否かにかかわらず、これらの処理を実行することによって、不正報知中でも役物比率を確認できる。
続いて、主制御MPU1311は、出力データ設定処理を実行する(ステップS90)。出力データ設定処理では、主制御MPU1311の各種出力ポートの出力端子から各種信号を出力する。例えば、出力情報に基づいて主制御MPU1311の所定の出力ポートの出力端子から、払出制御基板951からの各種コマンドを正常に受信したときには主払ACK信号を払出制御基板951に出力したり、大当り遊技状態であるときには大入賞口2005、2006の開閉部材2107の開閉動作を行うアタッカソレノイド(第一アタッカソレノイド2113、第二上アタッカソレノイド2553、第二下アタッカソレノイド2556)に駆動信号を出力したり、始動口(第二始動口扉部材2549)の開閉動作を行う始動口ソレノイド2550に駆動信号を出力したりするほかに、確率変動中情報出力信号、特別図柄表示情報出力信号、普通図柄表示情報出力信号、時短中情報出力情報、始動口入賞情報出力信号等の遊技に関する各種情報(遊技情報)信号及びセキュリティ信号を払出制御基板951に出力したりする。
また、出力データ設定処理では、スイッチ入力処理(ステップS74)で計数されたアウト球数に対応する信号を外部端子板784から出力する。例えば、所定のアウト球数(10個など)毎に外部端子板784から所定長のパルス信号を出力してもよい。
また、出力データ設定処理では、パチンコ機1に接続された検査装置に出力するための試験信号の設定を行う。試験信号には、例えば、遊技状態を示す信号や普通図柄、特別図柄の停止図柄を示す信号が含まれる(情報信号出力手段)。
続いて、主制御MPU1311は、周辺制御基板コマンド送信処理を実行する(ステップS92)。周辺制御基板コマンド送信処理では、上述した送信情報記憶領域からコマンドやデータなどの送信情報を読み出し、送信情報を主周シリアルデータとして周辺制御基板1510に送信する。送信情報には、本ルーチンであるタイマ割込み処理で作成した各種コマンドが記憶されている。主周シリアルデータは、1パケットが3バイトに構成されている。具体的には、主周シリアルデータは、1バイト(8ビット)の記憶容量を有するコマンドの種類を示すステータスと、1バイト(8ビット)の記憶容量を有する演出のバリエーションを示すモードと、ステータス及びモードを数値とみなしてその合計を算出したサム値と、から構成されており、このサム値は、送信時に作成されている。
最後に、主制御MPU1311は、ウォッチドッグタイマクリアレジスタWCLに所定値(18H)をセットする(ステップS96)。ウォッチドッグタイマクリアレジスタWCLに所定値がセットされることにより、ウォッチドッグタイマクリアレジスタWCLがクリア設定される。また、最後に、主制御MPU1311は、レジスタバンクを切り替える(復帰する)。以上の処理が終了すると、タイマ割込み処理を終了し、割り込み前の処理に復帰する。
本実施例のパチンコ機1では、主制御MPU1311が、タイマ割込み処理において、役物比率や連続役物比率の計算処理を実行するが、払出制御部952の払出制御MPUが役物比率や連続役物比率の計算処理を実行してもよい。この場合、主制御基板1310から周辺制御基板1510の周辺制御部1511に役物比率や連続役物比率を表示するためのコマンドを送信してもよいし、払出制御部952から周辺制御部1511に役物比率や連続役物比率を表示するためのコマンドを送信してもよい。
[5-3.役物比率算出・表示処理]
図24及び図25は、役物比率算出・表示処理の一例を示すフローチャートである。役物比率算出・表示処理は、主制御MPU1311が実行する。なお、周辺制御基板1510の周辺制御部1511が役物比率算出・表示処理を実行してもよい。周辺制御部1511が役物比率を算出する場合、算出された役物比率はメイン液晶表示装置1600に表示してもよい。例えば、算出された役物比率が所定の範囲内(又は、範囲外)である場合、遊技における演出を変えてもよい。具体的には、役物比率が所定の閾値(基準値より小さい閾値)を超えている場合に、予告演出を変えて、通常の予告演出より興趣が高まる予告演出を行ってもよい。
まず、主制御MPU1311のRAM1312の役物比率算出用領域13128のメイン領域からチェックコードを算出し(ステップS140)、算出したチェックコードが、役物比率算出用領域13128に格納されているチェックコードと一致しているかを判定する(ステップS142)。算出したチェックコードと役物比率算出用領域13128に格納されているチェックコードとが一致していれば、メイン領域のデータは正常なので、役物比率算出処理を実行し、メイン領域のデータから役物比率及び連続役物比率を算出し、役物比率算出用領域13128に格納する(ステップS156)。具体的には、役物獲得球数÷総獲得球数で役物比率を計算し、連続役物獲得球数÷総獲得球数で連続役物比率を計算する。計算された役物比率及び連続役物比率の小数部分(小数点以下の値)は切り捨てるか、四捨五入するとよい。そして、ステップS160に進む。
なお、ステップS156において、役物比率算出用領域13128の役物比率及び/又は連続役物比率の更新毎に、更新された値をバックアップ領域に複製してもよい。
獲得球数が格納されるビット数が大きく、主制御MPU1311で演算可能なビット数が不足する場合、役物比率の演算において、獲得球数の下位ビットを省略して除算をして役物比率を算出してもよい。例えば、獲得球数の格納領域が32ビットであれば、0~42億9496万7295までの数値を記憶できる。しかし、主制御MPUが8ビットプロセッサであり、8又は16ビットの演算ができる場合、32ビットで格納された獲得球数のうち、値が1の最上位ビットから下の16ビットを取り出して演算用レジスタ(16ビット)に格納して除算するとよい。なお、獲得球数が演算に使用可能なビット数の最大値(16ビットの最大値である32767)以下である場合、下位16ビットを取り出して演算に使用すればよい。
また、総獲得球数を100で除して(小数点以下を切り捨てて)、被除数(割られる数)として用いて役物比率を計算すると、小数での計算を避けることができる。
また、役物比率の上限を99に設定し、役物比率の計算結果が100以上となった場合には99としてもよい。
一方、算出したチェックコードと役物比率算出用領域13128に格納されているチェックコードとが一致していなければ、メイン領域のデータは異常なので、バックアップ領域1のデータからの役物比率の算出を試みる。具体的には、役物比率算出用領域13128のバックアップ領域1からチェックコードを算出し(ステップS144)、算出したチェックコードが、役物比率算出用領域13128に格納されているチェックコードと一致しているかを判定する(ステップS146)。算出したチェックコードと役物比率算出用領域13128に格納されているチェックコードとが一致していれば、バックアップ領域1のデータは正常なので、バックアップ領域1のデータをメイン領域に複製し(ステップS148)、役物比率算出処理を実行し、メイン領域のデータから役物比率及び連続役物比率を算出する(ステップS156)。そして、ステップS160に進む。
一方、算出したチェックコードと役物比率算出用領域13128に格納されているチェックコードとが一致していなければ、バックアップ領域1のデータは異常なので、バックアップ領域2のデータからの役物比率の算出を試みる。具体的には、役物比率算出用領域13128のバックアップ領域2からチェックコードを算出し(ステップS150)、算出したチェックコードが、役物比率算出用領域13128に格納されているチェックコードと一致しているかを判定する(ステップS152)。算出したチェックコードと役物比率算出用領域13128に格納されているチェックコードとが一致していれば、バックアップ領域1のデータは正常なので、バックアップ領域2のデータをメイン領域に複製し(ステップS154)、役物比率算出処理を実行し、メイン領域のデータを読み出して役物比率及び連続役物比率を算出する(ステップS156)。そして、ステップS160に進む。
他にバックアップ領域があれば、同様に、当該バックアップ領域のデータが正常かを判定し、正常なバックアップ領域のデータから役物比率及び連続役物比率を算出する。
メイン領域及び全てのバックアップ領域のデータが異常であれば、役物比率算出用ワークエリア(役物比率算出用領域13128)を初期化し、異常を報知する(ステップS158)。
続いて、メイン領域からチェックコードを算出し(ステップS160)、算出したチェックコードを役物比率算出用領域13128に格納する(ステップS162)。役物比率算出・表示処理でチェックコードを算出するのは、主基板側電源断時処理の途中でリセットされた場合、停電フラグやチェックサムが算出されていないために、初期化処理においてRAM1312にバックアップされたデータが初期化されるが、役物比率算出・表示処理で定期的にチェックコードを算出して記憶すれば、パチンコ機の電源が再投入されても、役物比率算出用ワークエリア(役物比率算出用領域13128)のデータは消去されずに残すことができるためである。
続いて、バックアップ領域振り分けカウンタ値に1を加算して更新し(ステップS164)、バックアップ領域振り分けカウンタ値が奇数かを判定する(ステップS166)。バックアップ領域振り分けカウンタ値が奇数であれば、メイン領域のデータをバックアップ領域1に複製する(ステップS168)。一方、バックアップ領域振り分けカウンタ値が偶数であれば、メイン領域のデータをバックアップ領域2に複製する(ステップS170)。バックアップ領域振り分けカウンタ値によって、メイン領域のデータの複製先を振り分けて、一部のバックアップ領域のみにデータを書き込むことによって、異常な値が複数のバックアップ領域に書き込まれることを防止できる。
なお、3以上のバックアップ領域を設ける場合、バックアップ領域振り分けカウンタ値をバックアップ領域の数で除した余りによって、データを書き込むバックアップ領域を振り分ければよい。
続いて、算出された役物比率を役物比率表示器1317に表示する(ステップS172)。具体的には、算出した役物比率の種類と算出された値とを用いて、変換表(図示省略)を参照して、役物比率表示器1317の各桁に表示するデータを取得し、取得したデータを役物比率表示器1317のドライバ回路13171に送る。例えば、役物比率の種類が役物比率(累計)であれば、上2桁にA7を表示し、算出された役物比率が66%であれば、下2桁に66を表示する。
役物比率算出・表示処理の役物比率算出処理(ステップS156)は、役物比率算出用領域13128(すなわち、図27に示す役物比率算出用ワークエリア)から獲得球数のデータを読み出すが、役物比率算出用領域13128の獲得球数に関わる記憶領域にデータを書き込むことはできない。すなわち、後述するように、ステップS156、S172の処理を共通プログラムモジュールで構成した場合、当該共通プログラムモジュールは、役物比率算出用領域13128の獲得球数に関わる記憶領域にデータを書き込む権限がなく、算出した役物比率及び連続役物比率の記憶領域にはデータを書き込むことができる。
以上に説明したように、役物比率算出・表示処理において役物比率を算出するためのデータをバックアップ領域に複製するので、異常リセット等により、正常な電源断時処理が実行されなかった場合に、役物比率を算出するためのデータを保護できる。
なお、ステップS156、S172の処理は、遊技機の種類によらず共通であるため、一つ又は複数の共通プログラムモジュールで構成するとよい。この場合、メイン領域のチェックコード及びバックアップ領域のチェックコードが間違っていないかを判定する処理は、共通プログラムモジュールとは別に非共通側に構成するとよい。これは、データのチェック、バックアップ方法は機種ごとに異なるためである。しかし、データのチェック、バックアップ方法を機種間で共通化すれば、共通プログラムモジュールに配置してもよい。
[6.記憶領域の構成]
続いて、ROM1313に格納されたプログラム及びデータの配置について説明する。図26(A)は、主制御基板1310の主制御MPU1311に内蔵されたROM1313及びRAM1312に格納されたプログラム(コード)及びデータの配置の一例を示す図である。
ROM1313には、遊技制御用コード13131、遊技制御用データ13132、デバッグ(検査機能)用コード13133、デバッグ(検査機能)用データ13134、役物比率算出・表示用コード13135及び役物比率算出・表示用データ13136を格納する領域が含まれている。本実施形態のROM1313には、遊技制御用コード13131及び遊技制御用データ13132などのパチンコ機1に関わるプログラムやデータを格納する遊技制御領域(第一記憶領域)と、デバッグ(検査機能)コード13133及びデバッグ(検査機能)データ13134などの、パチンコ機1のデバッグ(検査機能)に必要な信号の出力を目的として使用されるプログラムやデータを格納するデバッグ(検査機能)領域(第二記憶領域)と、役物比率算出・表示用コード13135及び役物比率算出・表示用データ13136などの、役物比率の算出を目的として使用されるプログラムを格納する役物比率算出領域(第三記憶領域)が割り当てられている。
遊技制御用データ13132の最終アドレスと、デバッグ(検査機能)用コード13133の先頭アドレスとの間には16バイト以上の空き領域(未使用空間)が設けられており、ダンプリスト形式で表示した場合に遊技制御領域とデバッグ(検査機能)領域とが容易に区別できるようになっている。同様に、デバッグ(検査機能)用コード13133の最終アドレスと、役物比率算出・表示用コード13135の先頭アドレスとの間には16バイト以上の空き領域(未使用空間)が設けられており、ダンプリスト形式で表示した場合にデバッグ(検査機能)領域と役物比率算出用領域とが容易に区別できるようになっている。なお、空き領域に格納される値は、同一の値である固定値とし、かつ、遊技領域、デバッグ領域で設定される値とは異なる値又は頻度が低い値で設定されるとよい。また、空き領域に格納される値は、No OperationコードなどCPUが何もしない命令でもよい。このようにすると、ダンプリスト形式で表示される場合、遊技制御領域、デバッグ(検査機能)領域、役物比率算出領域が容易に区別できるようになる。
また、デバッグ(検査機能)領域と役物比率算出領域とを分けずに、デバッグ領域の一部に役物比率算出・表示用コード13135や役物比率算出・表示用データ13136を格納してもよい。すなわち、遊技制御領域と他の領域とが明確に区別されていればよい。このように、遊技制御領域と他の領域とを明確に区別することによって、遊技の進行の制御に直接関わらない処理である役物比率算出領域(役物比率算出・表示用コード13135や役物比率算出・表示用データ13136)を遊技制御領域と分けて配置して、役物比率算出・表示用コード13135の不具合(バグ等)が遊技制御に影響を及ぼす危険性を回避している。
なお、デバッグ(検査機能)領域には、遊技に直接関連しない目的のプログラムやデータが格納されており、例えば、パチンコ機1の遊技制御以外のパチンコ機1のデバッグ時のみに使用される各種機能検査信号を出力するためのコード13133が格納される。これらデバッグ用(検査機能)コード13133は、デバッグ用(検査機能)信号を出力するためのプログラムである。また、役物比率算出領域には、遊技の進行に直接関係しない、役物比率を算出する目的のプログラムが格納される。
また、遊技制御用コード13131は、主制御MPU1311によって実行される。また、遊技制御用コード13131は、RAM1312に対して適宜読み書きが可能であるが、遊技制御用コード13131で使用する遊技制御用領域13126に対しては、デバッグ(検査機能)用コードから読み出しのみが実行可能となるように構成されており、当該領域に対する書き込みが実行できないように構成されている。このように、遊技制御用領域13126は、遊技制御用コード13131のみからアクセス可能な、遊技領域を構成する。デバッグ(検査機能)用コード13133に基づく処理は、遊技制御用コード13131の実行中において、一方的に呼び出して実行することが可能であるが、デバッグ(検査機能)用コードから遊技制御用コード13131を呼び出して実行することができないように構成している。これにより、デバッグ(検査機能)用コード13133の独立性を高められるので、遊技制御用コード13131を変更した場合であってもデバッグ(検査機能)用コード13133の変更を最小限にとどめることができる。
また、役物比率算出・表示用コード13135は、遊技制御用コード13131から呼び出され(例えば、図23に示すタイマ割込み処理のステップS89)、主制御MPU1311によって実行される。役物比率算出・表示用コード13135によって計算された役物比率は、RAM1312の役物比率算出用領域13128に格納される。役物比率算出用領域13128は、図示するように、遊技制御用領域13126とは別に(遊技制御領域外に)設けられる。このように、役物比率算出・表示用コード13135を遊技制御用コード13131と別に設計し、別の領域に格納することによって、役物比率算出・表示用コード13135の検査と遊技制御用コード13131の検査とを別に行うことができ、パチンコ機1の検査の手間を減少できる。また、役物比率算出・表示用コード13135を、機種に依存せず、複数の機種で共通に使用できる。
図26(B)は、役物比率算出用領域13128の詳細を示す図である。役物比率算出用領域13128は、役物比率の算出結果が格納されるメイン領域の他、メイン領域に格納されたデータの複製が格納されるバックアップ領域1及びバックアップ領域2を設けてもよい。バックアップ領域は一つでも複数でもよい。各領域には、データの誤りを検出するためのチェックコードが付加される。チェックコードは、各領域のデータのチェックサムでも予め定めた値でもよい。チェックコードは、パチンコ機1の電源投入時に初期化処理で設定したり、役物比率算出・表示処理においてメイン領域のデータが更新される毎に設定したり、主制御側電源断時処理(図22のステップS50~S54)において設定してもよい。特に、チェックコードが固定値である場合、初期化処理で正常と判定した又はデータを消去した際にチェックコードを初期化し、主制御側電源断時処理(図20のステップS50)において固定値をセットしてもよい。チェックコードは、停電フラグと兼用してもよい。すなわち、メイン領域のチェックコードに所定値が設定されていれば、停電フラグが設定されていると判定してもよい。また、停電フラグに所定値が設定されていれば、各領域のチェックコードが正しい値である(すなわち、各領域のデータが正常である)と判定してもよい。
なお、メイン領域が異常であると判定された場合にバックアップ領域が正常であるかを判定し、正常であると判定されたバックアップ領域のデータをメイン領域に複製してもよい(図21のステップS24)。また、主制御側電源断時処理において、メイン領域の値を各バックアップ領域に複製してもよい(図22のステップS54)。また、役物比率算出・表示処理において、メイン領域の値が更新される毎に、更新されたデータをバックアップ領域に複製してもよい(図25のステップS168、S170)。
メイン領域とバックアップ領域1との間、及びバックアップ領域1とバックアップ領域2との間には、未使用空間が設けられる。各領域の間に未使用空間を設けることによって、各領域のアドレスを遠ざけることができ、アドレスの上位桁で各領域を区別できる。
図27は、役物比率算出用領域13128における各データを格納するためのワークエリアの具体的な構造を示す図である。役物比率算出用領域13128の獲得球数のデータは、主制御MPU1311が時刻するタイマ割り込み処理(図23)において書き込まれ、役物比率算出・表示処理の役物比率算出処理(図24のステップS156)において読み出される。このように、役物比率算出・表示処理が役物比率算出用領域13128から獲得球数のデータを読み出し、タイマ割り込み処理(遊技制御プログラム)が役物比率算出用領域13128に獲得球数のデータを書き込むことによって、遊技制御プログラムと役物比率算出・表示処理を実行するプログラムとを完全に分けることができ、異なる仕様の遊技機でも役物比率算出・表示処理のためのプログラムを共通化できる。
なお、役物比率算出・表示処理の役物比率算出処理(図24のステップS156)は、算出した役物比率及び連続役物比率を役物比率算出用領域13128の役物比率及び連続役物比率の記憶領域に書き込む。算出された役物比率及び連続役物比率のデータは、役物比率を表示する際、役物比率算出・表示処理の役物比率表示処理(図25のステップS170)において読み出される。遊技制御プログラムは、役物比率算出用領域13128の役物比率及び連続役物比率の記憶領域にアクセスしない。
図27(A)は、最も簡単な方法のワークエリアの構造を示す。図27(A)に示すワークエリアの構造では、役物獲得球数、連続役物獲得球数、総獲得球数、役物比率及び連続役物比率を格納する。役物獲得球数は、動作中の役物(例えば、開放中の大入賞口2005、2006、第二始動口扉部材2549が開放中の第二始動口2004)への入賞による賞球数である。連続役物獲得球数は、役物が連続して動作中(例えば、大当りの連チャン中で入賞口が開放中)の役物への入賞による賞球数である。総獲得球数は、遊技者に払い出された全賞球数である。役物比率は、役物獲得球数÷総獲得球数で計算できる。連続役物比率は、連続役物獲得球数÷総獲得球数で計算できる。役物獲得球数、連続役物獲得球数、及び総獲得球数は、タイマ割込み処理のステップS81で更新され、役物比率及び連続役物比率は、タイマ割込み処理のステップS91で計算され、格納される。
図27(A)に示すワークエリアの構造のうち、役物獲得球数、連続役物獲得球数及び総獲得球数は、後述する図27(B)の総累計に相当し、各々3又は4バイトの記憶領域であり、10進数で16777215又は4294967295までの数値を記憶できる。これらのデータはデータに異常が生じない限り消去されないことから、長期間のデータを格納できるように大きな記憶領域を用意している。また、役物比率及び連続役物比率は、1バイトの記憶領域であり、10進数で255までの数値を記憶できる。
図27(B)は、リングバッファを用いたワークエリアの構造を示す。図27(B)に示すワークエリアの構造では、役物獲得球数、その他獲得球数、連続役物獲得球数、合計獲得球数、役物比率及び連続役物比率を格納する。また各データの記憶領域は、所定数の賞球毎にn個の記憶領域(例えば、賞球6000個毎にn=10個の記憶領域)を持つリングバッファによって構成されており、合計獲得球数が所定数(6000個)になると全てのデータの書き込みポインタが移動して、データが更新される記憶領域が変わる。そして、n番目の記憶領域に所定数の賞球分のデータが格納された後、書き込みポインタは1番目の記憶領域に移動し、1番目の記憶領域にデータを格納する。なお、合計獲得球数以外のデータ(役物獲得球数、発射球数、入賞球数、特別図柄変動表示ゲーム数、特別図柄変動表示ゲームの大当り回数など)が所定数となった場合に、書き込みポインタを移動してもよい。
なお、リングバッファの書き込みポインタ及び読み出しポインタは全てのデータに共通であり、所定の賞球数毎に全てのデータ列の書き込みポインタが移動する。また、書き込みポインタの移動に伴い、読み出しポインタも移動する。読み出しポインタは、書き込みポインタより一つ前の記憶領域を指す。これは、賞球6000個分の直近のデータを用いて役物比率を計算するためである。
各データの累計は、リングバッファのn個の記憶領域に格納されているデータの累計値であり、役物比率、連続役物比率の累計の値は各データの累計値から算出された値であり、リングバッファが一巡して、新たなデータを書き込むためにリングバッファの一つの記憶領域がクリアされると、当該クリアされた領域のデータを除外して累計値が計算される。各データの総累計は、過去に収集したデータの累計値であり、当該累計値から計算された役物比率、連続役物比率の総累計の値は各データの総累計値から算出された値であり、リングバッファが一巡して、新たなデータを書き込むためにリングバッファの一つの記憶領域がクリアされても、当該クリアされた領域のデータを含めて総累計値が計算される。
図27(B)に示すワークエリアの構造のうち、役物獲得球数、連続役物獲得球数、役物比率、連続役物比率は、図27(A)における説明と同じである。その他獲得球数は、役物以外(開閉しない入賞口、例えば一般入賞口2001)への入賞による賞球数である。合計獲得球数は、遊技者に払い出された全賞球数であり、この値が所定数になると書き込みポインタが移動する。役物獲得球数、その他獲得球数、連続役物獲得球数、及び合計獲得球数は、タイマ割込み処理のステップS81で書き込みポインタがある記憶領域のデータが更新され、役物比率及び連続役物比率は、タイマ割込み処理のステップS91で計算され、格納される。
図27(C)は、リングバッファを用いたワークエリアの構造を示す。図27(C)に示すワークエリアの構造では、図27(B)に示すものより詳細なデータを取得でき、普通電動役物獲得球数、特別電動役物獲得球数、始動口獲得球数、その他入賞口獲得球数、連続役物獲得球数、合計獲得球数、役物比率及び連続役物比率を格納する。また各データの記憶領域は、所定数の賞球毎にn個の記憶領域(例えば、賞球6000個毎に10個の記憶領域)を持つリングバッファによって構成されており、合計獲得球数が所定数(6000個)になると書き込みポインタが移動して、データが更新される記憶領域が変わる。そして、n番目の記憶領域に所定数の賞球分のデータが格納された後、書き込みポインタは1番目の記憶領域に移動し、1番目の記憶領域にデータを格納する。なお、合計獲得球数以外のデータ(特別電動役物獲得球数、発射球数、入賞球数、特別図柄変動表示ゲーム数、特別図柄変動表示ゲームの大当り回数など)が所定数となった場合に、書き込みポインタを移動してもよい。
各データの累計は、リングバッファのn個の記憶領域に格納されているデータの累計値であり、役物比率、連続役物比率の累計の値は各データの累計値から算出された値であり、リングバッファが一巡して、新たなデータを書き込むためにリングバッファの一つの記憶領域にクリアされると、当該クリアされた領域のデータを除外して累計値が計算される。各データの総累計は、過去に収集したデータの累計値であり、役物比率、連続役物比率の累計の値は各データの累計値から算出された値であり、リングバッファが一巡して、新たなデータを書き込むためにリングバッファの一つの記憶領域にクリアされても、当該クリアされた領域のデータを含めて総累計値が計算される。
図27(B)(C)に示すワークエリアの構造のうち、リングバッファ内の役物獲得球数、その他獲得球数、連続役物獲得球数、合計獲得球数、普通電動役物獲得球数、特別電動役物獲得球数、始動口獲得球数、その他入賞口獲得球数は、各々2バイトの記憶領域であり、10進数で65535までの数値を記憶できる。役物獲得球数、その他獲得球数、連続役物獲得球数、合計獲得球数、普通電動役物獲得球数、特別電動役物獲得球数、始動口獲得球数及びその他入賞口獲得球数の累計は、各々3バイトの記憶領域であり、10進数で16777215までの数値を記憶できる。累計は賞球6000個×n(n=10の場合は60000個の賞球)分のデータの合計であることから、大きな記憶領域を用意している。役物獲得球数、その他獲得球数、連続役物獲得球数、合計獲得球数、役物比率、連続役物比率、普通電動役物獲得球数、特別電動役物獲得球数、始動口獲得球数及びその他入賞口獲得球数の総累計は、各々3又は4バイトの記憶領域であり、10進数で16777215又は4294967295までの数値を記憶できる。総累計はデータに異常が生じない限り消去されないことから、長期間のデータを格納できるように、さらに大きな記憶領域を用意している。また、役物比率及び連続役物比率の累計及び総累計は、各々1バイトの記憶領域であり、10進数で255までの数値を記憶できる。
図27(C)に示すワークエリアの構造のうち、合計獲得球数、役物比率、連続役物比率は、図27(B)における説明と同じである。その他獲得球数は、役物以外(開閉しない入賞口)への入賞による賞球数である。普通電動役物獲得球数は、普通図柄による抽選の結果によって動作中の普通電動役物(第二始動口扉部材2549が開放中の第二始動口2004)への入賞により獲得される賞球数である。特別電動役物獲得球数は、特別図柄による抽選の結果によって動作中の特別電動役物(例えば、開放中の大入賞口2005、2006)への入賞による賞球数である。始動口獲得球数は、始動口(第一始動口2002)への入賞により獲得される賞球数である。その他入賞口獲得球数は、役物ではなく(動作せず)、特別図柄の抽選の契機とならない入賞口(一般入賞口2001)への入賞により獲得される賞球数である。普通電動役物獲得球数、特別電動役物獲得球数、始動口獲得球数、その他入賞口獲得球数、連続役物獲得球数、及び合計獲得球数は、タイマ割込み処理のステップS81で書き込みポインタがある記憶領域のデータが更新され、役物比率及び連続役物比率は、タイマ割込み処理のステップS91で計算され、格納される。
図27(A)に示すデータ構造では、格納されている値が異常であると判定された場合に、初期化処理のステップS116で役物比率算出用領域13128のデータが消去されるが、他の契機でデータは消去されない。このため、所定期間(例えば、1日、1週間、1月など)毎に役物比率算出用領域13128のデータを消去してもよい。同様に、図25(B)(C)の総累計を所定期間毎に消去してもよい。
また、役物比率算出用領域13128のデータや、算出された役物比率が異常値である(例えば、役物比率が100%超、役物比率の算出結果が前回の算出値から大きく変化した、役物獲得球数>総獲得球数など)場合、当該異常値を消去してもよい。当該異常値だけでなく、役物比率算出用領域13128の全データを消去してもよい。また、役物比率算出用領域13128のデータや、算出された役物比率が異常値である場合、異常であることを報知してもよい。また、チェックコードを用いてバックアップ領域のデータを検査し、正常なバックアップ領域のデータをメイン領域に複製後に、再度役物比率を計算してもよい。
[7.役物比率表示器の構成]
図28は、役物比率表示器1317の構成を示す図である。
役物比率表示器1317は、ドライバ回路13171及び複数の7セグメントLED13172によって構成される。例えば、7セグメントLED13172は4桁で構成される。
ドライバ回路13171と7セグメントLED13172とは、一体として一つのパッケージに収容されるとよいが、両者が別のパッケージに収容されてもよい。
ドライバ回路13171と主制御MPU1311とは、3本の信号線(DATA、LOAD、CLOCK)によって接続される。
DATA線は、役物比率表示器1317に表示するデータや役物比率表示器1317の動作状態を設定する信号を転送し、主制御MPU1311のシリアル通信回路13114に接続される。LOAD線は、データの取り込みタイミングを示す信号を転送し、主制御MPU1311のシリアル通信回路13114に接続される。CLOCK線は、ドライバ回路13171の動作周期を規定するクロック信号を転送し、主制御MPU1311のシリアル通信回路13114に接続される。
ドライバ回路13171と7セグメントLED13172とは、4本の桁選択信号線IDIG-0~IDIG-3と、8本のセグメント点灯信号線ISEG-a~ISEG-Dpとで接続される。セグメント点灯信号線ISEG-a~ISEG-Dpは、7セグメントLED13172の各LED素子(7セグメント及び小数点)を点灯させる信号を伝達する。桁選択信号線IDIG-0~IDIG-3は、セグメント点灯信号線ISEG-a~ISEG-Dpで伝送される信号が、7セグメントLED13172のどの桁の信号かを示す制御信号を伝達する。なお、図示した信号(電流)の向きは7セグメントLED13172がアノードコモン型かカソードコモン型かで異なるが、アノードコモン型の例を図示した。
ドライバ回路13171のR-EXT端子には、7セグメントLED13172の各LED素子に流す電流値を定める抵抗13174が接続される。抵抗13174の抵抗値の変更によって、7セグメントLED13172の各LED素子の発光輝度を変えることができる。
図29は、役物比率表示器1317のドライバ回路13171の構成を示す図である。
ドライバ回路13171は、16ビットシフトレジスタ3171、16ビットデータラッチ3172、8ビットデータラッチ3173A~D、8×4データセレクタ3174、デコーダ3175、2×8データセレクタ3176、定電流ドライバ3178、ドライバ3179、ラッチセレクタ・ロードパルス分配器3180、Digit-Limit制御部3181、デューティ比制御部3182、データセレクタ制御部3183、スタンバイモード制御部3184及び発振器3185を有する。
16ビットシフトレジスタ3171は、DATA IN端子に入力されたシリアルデータを取り込み、16ビット分のデータを保持し、パラレルデータとして16ビットデータラッチ3172に送る。なお、D15(MSB)~D12の4ビットは、ドライバ回路13171の動作モード(図35参照)を選択するためのデータであり、D11~D8の4ビットは動作モードと対応するレジスタを選択させるデータであり(図33参照)、D7~D0(LSB)は、その詳細設定のデータである。
16ビットデータラッチ3172は、LOAD信号のタイミングでデータをラッチし、D15~D8を各制御部(ラッチセレクタ・ロードパルス分配器3180、Digit-Limit制御部3181、デューティ比制御部3182、データセレクタ制御部3183、スタンバイモード制御部3184)に送り、D7~D0を8ビットデータラッチ3173A~Dに送る。
具体的には、図30に示すように、16ビットシフトレジスタ3171は、CLOCK信号の立ち上がりタイミングでDATA IN端子に入力されたシリアルデータを取り込み、データをシフトする。16ビットデータラッチ3172は、LOAD信号の立ち上がりタイミングで、16ビット分のデータをパラレルデータとして16ビットシフトレジスタ3171から取得し、データをラッチする。そして、D15~D8を各制御部(ラッチセレクタ・ロードパルス分配器3180、Digit-Limit制御部3181、デューティ比制御部3182、データセレクタ制御部3183、スタンバイモード制御部3184)に送る。また、16ビットデータラッチ3172は、LOAD信号の立ち下がりタイミングで、ラッチしたデータのうちD7~D0を8ビットデータラッチ3173A~Dに送る。
LOAD信号はラッチセレクタ・ロードパルス分配器3180にも入力される。ラッチセレクタ・ロードパルス分配器3180は、D15~D8を取得し、表示データ(D7~D0の8ビット)を格納する8ビットデータラッチ3173を選択する。具体的には、ロードレジスタ選択テーブル(図33参照)に示すように、D15~D8が00100010Bであれば、ラッチセレクタ・ロードパルス分配器3180は、データレジスタ0、すなわち、Digit-Aの8ビットデータラッチ3173Aがデータを格納するように、8ビットデータラッチ3173を選択する信号を送る。
8ビットデータラッチ3173は、7セグメントLED13172の数(表示桁数)だけ設けられており、ラッチセレクタ・ロードパルス分配器3180からの選択信号に従って、各7セグメントLEDに表示するためのデータを取り込み、保持する。8ビットデータラッチ3173は、保持したデータを8×4データセレクタ3174に送る。
8×4データセレクタ3174は、各8ビットデータラッチ3173A~Dから送られたデータを、予め定められた各桁の表示タイミングで選択し、デコーダ3175及び2×8データセレクタ3176に送る。
デコーダ3175は、キャラクタジェネレータデコードテーブル(図34参照)を用いて、入力されたデータを7セグメントLED13172に表示するキャラクタに変換し、各セグメントを点灯させるためのデータを生成する。生成されたデータは、2×8データセレクタ3176に入力される。
2×8データセレクタ3176は、デコード設定を参照して、デコーダを使用するモードに設定されている場合はデコーダ3175からのデータを選択し、デコーダを使用しないモードに設定されている場合は8×4データセレクタ3174からのデータを選択する。選択されたデータは、定電流ドライバ3178に入力される。
定電流ドライバ3178は、2×8データセレクタ3176からのデータを用いて、各セグメントを点灯させるための電流信号をデータ出力端子OUTa~OUTDpから出力する。定電流ドライバ3178から出力される電流は、前述したように、R-EXT端子に接続された抵抗の抵抗値によって制御される。
ドライバ3179は、7セグメントLED13172の各セグメントを点灯させるために定電流ドライバ3178から出力された電流のシンク電流を受け入れる。ドライバ3179が、端子DIG-0~DIG-3の電流吸い込みタイミングを制御することによって、どの7セグメントLED(桁)を表示するかが決まる。
Digit-Limit制御部3181は、ドライバ回路13171が制御する7セグメントLED13172の表示桁数を制御する。すなわち、ドライバ回路13171は、外部からの設定によって、点灯する桁数を1から4桁に制御できる。具体的には、D15~D8を00100001Bとし、D7~D0を××××0011Bとしたデータを入力することによって、Digit-Limit制御部3181の桁レジスタ(DIGITREGISTER)に4桁全てを使用する設定が書き込まれる。なお、×はH又はLのいずれのデータでもよいことを示し、入力データがHかLかは真理表には影響しない。
デューティ比制御部3182は、7セグメントLED13172を点灯させる際のデューティ比を制御する。すなわち、ドライバ回路13171は、外部からの設定によってデューティ比を制御でき、7セグメントLED13172が点灯する明るさを制御する。デューティ比制御部3182は、定電流ドライバ3178及びドライバ3179に送るタイミング信号のうち少なくとも一方のパルス幅を制御することによって、デューティ比を制御する。具体的には、D15~D8を00100000Bとし、D3~D0に任意のデータを入力することによって、デューティ比制御部3182のデューティレジスタ(DUTY REGISTER)に0/16~15/16の16段階のデューティ比の設定が書き込まれる。
データセレクタ制御部3183は、デコーダの設定を制御する。すなわち、ドライバ回路13171は、外部からの設定によってデコーダ3175を使用するか否かを制御する。具体的には、D15~D8を00100001Bとし、D7~D0を0001××××Bとしたデータを入力することによって、デコーダを使用する設定がデコードレジスタに書き込まれ、D7~D0を0000××××Bとしたデータを入力することによって、デコーダを使用しないNO DECODERの設定が書き込まれる。データセレクタ制御部3183は、デコーダを使用する設定がされている場合、2×8データセレクタ3176がデコーダ3175からのデータを選択するように制御し、デコーダを使用しない設定がされている場合、2×8データセレクタ3176が8×4データセレクタ3174からのデータを選択するように制御する。
スタンバイモード制御部3184は、スタンバイモードの設定、データクリアの設定を制御する。すなわち、ドライバ回路13171は、外部からの設定によってスタンバイモードに移行できる。具体的には、D15~D12を0100Bとし、D3~D0を0000Bとしたデータを入力することによって、スタンバイモードに設定できる。スタンバイモードでは、その時点での設定をそのまま維持し、7セグメントLED13172へ出力される電流を遮断して、ドライバ回路13171の消費電力を抑制する。
また、ドライバ回路13171は、外部からの設定によって、内部に保持された全てのデータをクリアできる。具体的には、D15~D12を0100Bとし、D3~D0を0001Bとしたデータを入力することによって、レジスタやラッチに保持された全てのデータをクリアして初期化する。
発振器3185は、ドライバ回路13171内で使用されるクロックを生成する。
図31は、主制御基板1310の実装例を示す図である。なお、本図において、主制御基板ボックス1320の構成を実線で示し、主制御基板1310上の構成を点線で示す。
図31(A)は、実装例1の主制御基板ボックス1320を示す。主制御基板ボックス1320は、一度閉めたら破壊せずに開けることができない構造で封印可能に主制御基板1310を収容する透明の樹脂によって構成されおり、その表面には、主制御基板1310の型番表示(シール貼付、刻印、印刷など)や開封シールが貼付されている。開封シールは、主制御基板1310の封印を開封した履歴を記録するシールである。
図31(B)に示す実装例1は、(A)に示す主制御基板ボックス1320に主制御基板1310を収容した状態を示す。実装例1では、主制御基板1310上に主制御MPU1311が実装されている。なお、主制御基板1310の長手方向と主制御MPU1311の長手方向が同じ方向になるように、主制御MPU1311が実装されるとよい。
主制御基板1310は、主制御基板ボックス1320に封入され、主制御ユニット1300を構成している。主制御MPU1311は、不適切な改造がされていないことを外部から確認可能な位置に配置されている。また、主制御MPU1311は、その周囲に部品を配置しないことによって、不適切な改造がされていないことを外部から容易に確認できるように配置されている。
役物比率表示器1317は、主制御基板1310上で、外部から視認可能な位置に配置される。役物比率表示器1317に表示される数字の向きは、主制御MPU1311の型番表示や主制御基板ボックスに1320の型番表示と同一方向にするとよい。また、役物比率表示器1317の長手方向と主制御基板1310の長手方向と主制御MPU1311の長手方向が同じ方向になるように実装されるとよい。なお、主制御基板1310が横長の向きで遊技機に実装される場合には、役物比率表示器1317の長手方向や主制御MPU1311の長手方向と主制御基板1310の長手方向とが同じ向きになるように役物比率表示器1317や主制御MPU1311を実装するとよい。また、主制御基板1310が縦長の向きで遊技機に実装される場合には、役物比率表示器1317の長手方向や主制御MPU1311の長手方向と主制御基板1310の長手方向とが90度の向きになるように役物比率表示器1317や主制御MPU1311を実装するとよい。
また、主制御基板1310から信号線を引き出すためのコネクタCN1、CN2は、役物比率表示器1317と長手が揃う方向で、主制御基板1310の長辺に沿った端部(図では上側の長辺に沿った上端部であるが、下側の長辺に沿った下端部や、左右辺に沿った端部でもよい)に実装されるとよい。すなわち、コネクタCN1、CN2に接続される配線(ハーネス)が役物比率表示器1317と重なって、役物比率表示器1317の視認を妨げない位置に、コネクタCN1、CN2が配置されることが望ましい。
さらに、主制御基板ボックス1320の型番表示や主制御基板ボックス1320に貼付された開封シールは、主制御MPU及び役物比率表示器1317のいずれとも重ならない位置に貼付される。
このように役物比率表示器1317を実装することによって、役物比率表示器1317や主制御MPU1311の型番表示が正しい向きで表示され、これらの視認性を向上し、製造過程や、遊技場に設置後の検査においても、無理な姿勢を取ることなく、役物比率や主制御MPU1311の改造の有無を確認できる。
図31(C)に示す別の実装例では、主制御MPU1311の型番表示と役物比率表示器1317の数字表示の向きは同じ方向となるように実装されているが、主制御MPU1311以外の回路モジュール(例えばIC)の型番表示の向きが、主制御MPU1311の型番表示や役物比率表示器1317の数字表示の向きと異なる。また、主制御MPU1311以外の回路モジュールは、主制御基板ボックス1320の型番表示や主制御基板ボックス1320に貼付された開封シールと重なる位置に配置されてもよい。これは、主制御MPU1311以外の回路モジュールは、不正な改造を検査する際の重要性が低いので、主制御基板1310上に配置される向きを同じにする意義が薄いためである。
図32は、主制御MPU1311と役物比率表示器1317との位置関係を示す図である。
図32(A)に示すように、役物比率表示器1317のドライバ回路13171と7セグメントLED13172との間の信号線13173は、ノイズによる影響で、信号が不安定になる場合がある。このため、ドライバ回路13171と7セグメントLED13172とは可能な限り近づけて配置することが望ましい。
例えば、図示したように、ドライバ回路13171と7セグメントLED13172との距離(配線13173の長さL2)は、主制御MPU1311と役物比率表示器1317のドライバ回路13171との距離(配線13191の長さL1)より短くなるように配置する。すなわち、L1がL2より大きくなる。
また、前述したように、主制御MPU1311の周囲には、点線で示すように、不適切な改造がされていないことを外部から容易に確認するために、部品を配置しない。このため、配線長L1はある程度の長さになってしまうが、L2は可能な限り短くする。
なお、ドライバ回路13171と7セグメントLED13172とは、一つのパッケージに収容されても、別のパッケージに収容されてもよく、いずれの場合でも、L1がL2より大きくなるように実装される。
図32(B)は、別の実装例において、主制御MPU1311と役物比率表示器1317との位置関係を示す図であり、図32(C)は、図32(B)に示す実装例におけるプリント基板の断面図である。
図32(B)に示すように、主制御MPU1311と役物比率表示器1317のドライバ回路13171との間の信号線13191の両側にグランドパターン13192を設けている。さらに、プリント基板において、信号線13191の裏面及び内層には信号パターンを設けない禁止領域13196を設ける。禁止領域13196のプリント基板の裏面及び内層の少なくとも一方にガードパターンとしてのグランドパターン13197又は電源パターンを設けるとよい。
本実装例における他の信号線の配置を説明すると、例えば、発振器から主制御MPU1311にクロック信号を供給する信号線13193は、禁止領域13196を避けて(すなわち、信号線13193と信号線13191とが交差しないように)配置される。また、主制御MPU1311に接続される信号線13194は、スルーホール13195によって裏面又は内層に抜けるように配置してもよい。この場合も、信号線13194は禁止領域13196を避けて(すなわち、信号線13194と信号線13191とが交差しないように)配置される。
なお、主制御基板1310は、不正な改造を防止する観点から、一般的に、表面及び裏面にパターンを有し、内層を有さない二層基板で構成されるが、前述した実装例は、内層を有する(4層、6層などの)多層基板にも適用できる。
図33は、ドライバ回路13171のロードレジスタ選択テーブルを示す図である。
ロードレジスタ選択テーブルは、ドライバ回路13171に入力されたデータを格納するレジスタを決定するためのテーブルである。
本実施例のドライバ回路13171は、7個のレジスタを有する。デューティレジスタは、デューティ比制御部3182によって使用され、7セグメントLED13172を点灯するデューティ比が設定される。例えば、D15~D8が00100000Bである場合、D7~D0にセットされたデータは、デューティ比を設定するためのデータであり、デューティ比制御部3182のデューティレジスタに書き込まれる。
デコードレジスタは、データセレクタ制御部3183又はDigit-Limit制御部3181によって使用され、デコーダ3175の使用、すなわちデコードの有無及び表示桁数が設定される。デコードレジスタと桁数レジスタとを一つのレジスタとして構成してもよい。例えば、D15~D8が00100001Bである場合、D7~D0にセットされたデータは、デコードの有無を設定するためのデータ又は表示桁数を設定するためのデータであり、データセレクタ制御部3183のデコードレジスタ又はDigit-Limit制御部3181の桁レジスタに書き込まれる。
データレジスタは、8ビットデータラッチ3173A~Dによって使用され、7セグメントLED13172の各桁に表示するデータが設定される。例えば、D15~D8が00100010B~00100101Bである場合、D7~D0にセットされたデータは、7セグメントLEDを点灯するためのデータであり、8ビットデータラッチ3173A~D内のデータレジスタに書き込まれる。
以上に説明したレジスタに設定される、デューティ比、デコードの有無及び表示桁数は、役物比率を表示する都度設定する必要がなく、一度設定すればよいので、図21のステップS28において初期設定として設定される。なお、初期設定で1度のみ設定した場合には、初期設定後にノイズ等の影響で設定が変更される可能性があるため、所定条件(例えば、本体枠4の開放を検出するごと、切替ボタンが押下されるごと)に再設定してもよい。これにより、ノイズで設定が切り替わってしまっても、正しい表示を常に行うことができるようになる。
図34は、キャラクタジェネレータデコードテーブルを示す図である。キャラクタジェネレータデコードテーブルは、デコーダ3175が、入力データを7セグメントLED13172に表示するキャラクタのデータに変換するために使用される。キャラクタジェネレータデコードテーブルを用いることによって、数字や一部のアルファベットなどの文字を、字体を考えることなく表示できる。また、数字を表示する場合、D5~D0は表示される数字と一致するので、演算結果を変換することなくドライバ回路13171に入力して、7セグメントLED13172に表示できる。
なお、7セグメントLED13172の各桁の小数点の点灯はD6によって制御される。
図35は、ドライバ回路13171の状態遷移図であり、図36は、役物比率表示器1317の表示例を示す図である。
本実施例のドライバ回路13171には、五つの状態、すなわち、初期状態、データ入力済状態、LED点灯状態(0000)、LED点灯状態(入力データに応じた点灯)、LED点灯状態(全点灯)が準備されている。
この五つの状態を制御するために、ブランク、通常動作、レジスタ書込、全点灯、スタンバイのモード設定命令がある。ブランク命令は、定電流ドライバ3178の出力とドライバ3179の出力を遮断する。通常動作命令は、各設定の終了後に7セグメントLED13172の表示を行う。表示データを設定しないで通常動作命令を入力すると、7セグメントLED13172は全桁で数字の0を表示する。レジスタ書き込み命令は、使用桁数の設定、デューティ比の設定、デコーダの使用又は未使用の設定、表示データの入力を行う。D11~D8でデータを書き込むレジスタを選択し、D7~D0でレジスタへ設定する内容を入力する(図33参照)。全点灯命令はデータ側の定電流ドライバ3178の出力をオンにして、7セグメントLED13172の全セグメントを点灯する。スタンバイ命令には、パラメータによって二つに分かれ、スタンバイ状態に遷移するスタンバイ命令と、初期状態に遷移するクリア命令とがある。スタンバイ命令は、その時点での設定を維持し、定電流ドライバ3178及びドライバ3179の動作を停止し、7セグメントLED13172へ出力される電流を遮断して、ドライバ回路13171の消費電力を抑制する。また、クリア命令は、レジスタやラッチに保持された全てのデータをクリアして初期化し、表示も消灯する。
なお、ブランク命令も表示命令の一種であることから、本明細書において、「表示」は、7セグメントLEDの全点灯、一部のセグメントの点灯及び全消灯のいずれの状態も含むものである。
図36を参照して、前述した各状態における表示例を説明する。
遊技機の電源投入時は、ドライバ回路13171の初期設定が完了していない又は表示データが設定されていないため、初期状態(ALL BLANK)であり、図36(A)に示すように7セグメントLED13172の全セグメントが消灯する非点灯状態となる。また、本体枠4が閉鎖され遊技が可能な状態では、役物比率表示器1317を視認できないので、スタンバイモードに設定して、7セグメントLED13172を消灯し、遊技機の消費電力を低減するとよい。
そして、ドライバ回路13171に各種制御用のレジスタに制御用データを設定して初期設定が完了した後、表示データを入力すると、7セグメントLED13172に所定の表示をする。この所定の表示は、図36(B)に示すように、全桁に「-」を表示したり、全セグメントを点灯してもよい。この所定の表示によって、役物比率表示器1317の正常動作を確認できるようにするとよい。
また、本体枠4が開放された場合には、役物比率表示器1317が正常に動作していることを確認できるように、全桁に所定の表示をするとよい。例えば、図36(B)に示すように全桁に「-」を表示したり、全セグメントを点灯してもよい。
そして、表示スイッチ1318が操作され表示データがドライバ回路13171に入力されると、LED点灯状態(入力データに応じた点灯)となる。具体的には、役物比率表示状態となり、7セグメントLED13172の左2桁に表示内容を示すコードを表示し、右2桁に役物比率の数値を表示する。図36(C)に示す例では、「y175」が表示されており、役物比率1が75%であることを示している。なお、表示される役物比率が規定範囲外の異常値である場合、その旨を識別できる表示をするとよい。例えば、全桁(または、数字)を点滅して表示したり、小数点を点灯又は点滅させる。
さらに表示スイッチ1318が操作され表示データがドライバ回路13171に入力されると、7セグメントLED13172の表示内容が変更される。すなわち、別な種類の役物比率を表示する。この場合も、左2桁に表示内容を示すコードを、右2桁に役物比率の数値を表示する。図36(D)に示す例では、「y263」が表示されており、役物比率2が63%であることを示している。なお、この場合も、前述と同様に、表示される役物比率が規定範囲外の異常値である旨を識別できる表示をするとよい。役物比率のより具体的な表示例は、図37を用いて後述する。
そして本体枠4が閉鎖されると、役物比率表示器1317の正常動作を確認できる所定の表示を行い(図36(E))、所定時間(例えば、30秒)経過後、7セグメントLED13172を消灯し、遊技機の消費電力を低減するとよい。この役物比率非表示状態は、初期設定完了後と同じ態様であるが、異なる態様でもよく、役物比率表示と区別可能な態様であればよい。
図36(E)は、役物比率表示器1317や主制御MPU1311に異常があり、役物比率を表示できない場合の表示例である。小数点は点灯でも点滅でも、桁毎に異なる表示でもよい。また、異常表示は、図示したものと異なる態様でもよく、役物比率表示ができない状態であることを示すために正常な役物比率表示と区別可能な態様であればよい。
また、いずれかの状態において、全点灯命令を入力すると、7セグメントLED13172の全セグメントが点灯する。また、いずれかの状態において、ブランク命令又はスタンバイ命令を入力すると、データを保持したまま、7セグメントLED13172の全セグメントが消灯する。また、いずれかの状態において、データクリア命令を入力すると、レジスタやラッチに保持された全てのデータをクリアし、7セグメントLED13172の全セグメントを点灯して、初期状態に戻る。
[8.役物比率の表示]
次に、役物比率の算出及び表示の方法を説明する。
前述したように、役物比率は、主制御基板1310に設けられた役物比率表示器1317に表示される。前述したように、役物比率表示器1317は、例えば、4桁の7セグメントLEDや、液晶表示装置によって構成され、下2桁に役物比率の数値を表示し、上2桁に数値の種類を表示する。
また、2桁の7セグメントLEDで役物比率表示器1317を構成してもよい。この場合、役物比率の数値と当該数値の種類とを交互に表示するとよい。
役物比率の数値の表示態様は、役物比率と所定の基準値との比較結果によって異なる表示態様で表示してもよい。例えば、役物比率が所定の基準値を超えた場合に、数値を点滅させたり、色を変えたり(通常時は緑色で、基準超時は赤色など)して表示する。基準値との比較結果により表示態様を変えることによって、役物比率が異常であることを容易に認識できる。
役物比率表示器1317を、一つ又は複数のLEDランプで構成してもよい。役物比率表示器1317を一つのLEDランプで構成した場合、役物比率と所定の基準値との比較結果を異なる態様で表示する。例えば、役物比率が基準値より小さい場合は緑色、役物比率が基準値より大きい場合は赤色で表示する。また、役物比率が基準値より小さい場合は点灯、役物比率が基準閾値より大きい場合は点滅で表示する。
役物比率表示器1317を複数(例えば、10個)のLEDランプで構成した場合、一つのLEDランプを10%として役物比率を表示する。例えば、役物比率が70%以上80%未満であれば、7個のLEDを点灯させる。この場合、表示内容(役物比率か連続役物比率か、直近データ表示か中期データ表示かなど)によって、異なる表示態様(表示色)で表示してもよい。
また、総獲得球数が6000個より小さい場合、賞球データの収集期間が短く、役物比率の値が収束していない可能性があるため、異なる表示態様(表示色、点滅など)で表示してもよい。総獲得球数が閾値より少ない場合の表示態様と、前述した基準値を超えた場合の表示態様とは異なる態様とすることが望ましい。
役物比率表示器1317は、直近データ表示と中期データ表示と長期データ表示とを切り替えて表示してもよい。直近データ表示は、図27(B)(C)に示すリングカウンタにおいて、現在書き込み中の一つ前のカウンタ値を用いて計算した役物比率である。中期データ表示は、図27(B)(C)に示すリングカウンタにおいて、累計を用いて計算した役物比率である。長期データ表示は、図27(B)(C)に示すリングカウンタにおいて、総累計を用いて計算した役物比率である。
役物比率表示器1317を機能表示ユニット1400で兼用してもよい。機能表示ユニット1400は通常は主制御基板1310からの制御信号に基づいて遊技状況を表示するが、本体枠4が外枠2から開放したことを本体枠開放スイッチ(図示省略)が検出すると、主制御基板1310は、機能表示ユニット1400が役物比率を表示するように表示を切り替える。本体枠4の開放によって機能表示ユニット1400の表示を切り替えるが、遊技の進行は継続するとよい。遊技の進行を継続することによって、本体枠4が閉鎖すると役物比率表示から遊技状態の表示に迅速に切り替えることができる。例えば、特別図柄変動表示ゲーム中に本体枠4が開放すると役物比率が表示されるが、変動時間の経過前に本体枠4が閉鎖されると、残りの時間分の変動表示を行うことができる。機能表示ユニット1400に表示される特別図柄はメイン液晶表示装置1600に表示される装飾図柄と同期しているので、機能表示ユニット1400の特別図柄変動表示が停止するタイミングで装飾図柄が停止する。このため、機能表示ユニット1400が役物比率を表示しても、遊技者に違和感を与えないように構成できる。
役物比率表示器1317は、役物比率以外を表示してもよい。例えば、単位時間あたりの入賞口の種類毎の入賞数や払い出された賞球数を表示してもよい。単位時間は、1分、10分、1時間、10時間など、表示スイッチ1318の操作によって切り替えて表示するとよい。
役物比率表示器1317は、ベースを表示してもよい。ベースは、特賞中(大当り中)を除いた通常時の出玉率であり、セーフ球数÷アウト球数で計算できる。発射球数(アウト球数)は、発射球センサ1020によって検出する。前述したように、発射球センサ1020は、球発射装置から遊技領域5aに遊技球を導くレール1001、1002の出口(逆流防止部材1007)付近に設ける(図10、図16参照)。また、アウト球数を、排出球センサ3060によって検出してもよい。前述したように、排出球センサ3060は、遊技領域5aから流出した遊技球をパチンコ機1の外部に排出する排出口に設ける(図4参照)。また、遊技領域5aの下部に設けられるアウト口1111を通過する遊技球を検出するアウト口通過球センサ1021(図53参照)を設け、アウト口通過球センサ1021が検出した遊技球の数と、始動口センサ2104、2551が検出した遊技球の数と、各種入賞口センサ3015、2114、2554、2557が検出した遊技球の数との合計によって、アウト球数を検出してもよい。さらに、球発射装置680へ供給される遊技球を検出する発射供給球センサ(図示省略)と、球発射装置680から打ち出されたが遊技領域5aに到達しなかった遊技球(いわゆる、ファール球)を検出するファール球センサ(図示省略)とを設け、発射供給球センサが検出した球発射装置680へ供給された遊技球の数からファール球数を減じて、アウト球数(発射球数)を検出してもよい。
アウト球数は、前述したいずれかの方法で計数すればよい。すなわち、図示したセンサのうち、排出球センサ3060か発射球センサ1020のいずれかが設けられれば足りる。
また、セーフ球数は払い出した賞球数に等しい。また、ベースを、遊技状態毎(通常遊技中、電サポ中、確率変動中、時間短縮中)の出玉率と定義し、遊技状態毎のセーフ球数÷アウト球数で計算してもよい。役物比率表示器1317にベースを表示することによって、稼動中における出球性能の設計値からのズレを遊技機ごとにその場で確認できる。また、ホールコンを使用せずに出球性能を確認できるので、遊技場の立入検査時に遊技機毎の検査が容易になる。
役物比率表示器1317は、ベースの他の入賞や賞球に関する情報(一般入賞口2001への入賞数や当該入賞による賞球数、始動口2002への入賞数や当該入賞による賞球数、大入賞口2005、2006への入賞数や当該入賞による賞球数など)を表示してもよい。
役物比率表示器1317は、常に役物比率を表示しても、表示スイッチ1318の操作によって役物比率を表示してもよい。例えば、押ボタンスイッチである表示スイッチ1318を押すと、役物比率の表示を開始し、所定時間表示した後に表示を消す。なお、本体枠4が外枠2から開放したことを本体枠開放スイッチ(図示省略)が検出中に表示スイッチ1318が操作されると、役物比率表示器1317に役物比率を表示してもよい。すなわち、本体枠開放中でなければ表示スイッチ1318が操作されても、役物比率表示器1317は役物比率を表示しない。
また、表示スイッチ1318の操作毎に、表示内容を変えてもよい。例えば、図37に示すように、表示スイッチ1318を1回操作すると、役物比率(累計)を意味するA7を上2桁に表示し、所定数(例えば、60000個)の賞球に対する役物比率を下2桁に表示する。表示スイッチ1318を、もう1回操作すると、上2桁の表示が連続役物比率(累計)を意味するA6に切り替わり、所定数(例えば、60000個)の賞球に対する連続役物比率を下2桁に表示してもよい(図37(B))。さらに、表示スイッチ1318を1回操作すると役物比率(賞球6000個)を意味するy7を上2桁に表示し、直近のデータによる役物比率を下2桁に表示(直近データ表示)をする(図37(C))。表示スイッチ1318を、もう1回操作すると、上2桁の表示が役物比率(累計)を意味するy6に切り替わり、所定数(例えば、60000個)の賞球に対する役物比率を下2桁に表示(中期データ表示)をしてもよい(図37(D))。
表示スイッチ1318は、独立したスイッチとして設けなくても、主制御基板1310又は周辺制御基板1510に設けられるRAMクリアスイッチと兼用してもよい。すなわち、当該スイッチは、電源投入時に操作されるとRAMクリアスイッチとして機能し、パチンコ機1の動作中に操作されると表示スイッチ1318として機能する。RAMクリアスイッチと表示スイッチ1318とを一つのスイッチに機能を集約することによって、遊技場の係員が操作するスイッチは一つとなり、経験が浅い係員による誤操作を減少できる。
以上のように、本実施形態によれば、稼働中の遊技機の役物比率を正確に計算でき、稼働中の遊技機の射幸性を確認できる。
また、賞球数のデータを役物比率算出・表示用データ13136として蓄積し、チェックコードが異常である場合に役物比率算出・表示用データ13136を消去するので、誤った役物比率の表示を避けることができる。
また、主制御MPU1311のRAM1312にバックアップされた遊技の進行に関係するデータの消去条件と別の条件で役物比率算出・表示用データ13136を消去するので、正確な賞球数のデータを保持し、正確な役物比率を計算できる。
また、RAMクリアスイッチの操作によっては役物比率算出・表示用データ13136を消去しないので、遊技場の係員の操作により、誤って役物比率算出・表示用データ13136を消去することがなく、役物比率算出・表示用データがRAMクリアスイッチの操作によって消去されないので、遊技場の係員の誤操作によって、当該データが消去されないように構成されている。また、遊技場が意図的に役物比率算出・表示用データを消去できないので、表示される役物比率の信頼性が高まり、役物比率が高い状態の隠蔽を防止できる。
[9.ベースの表示]
[9-1.ベースを表示する遊技機の基本構成]
ここまで、役物比率を計算し表示するパチンコ機の実施例を説明したが、次に、ベース値を計算し表示するパチンコ機の実施例を説明する。なお、本実施例では、専ら、ベース値を計算し表示するパチンコ機を説明するが、ベース値と共に役物比率を計算し表示してもよい。
以下に説明するパチンコ機では、前述したように、始動口(第一始動口2002、第二始動口2004)に遊技球が入賞すると、乱数による抽選が行われ、特別図柄変動表示ゲームを実行する。特別図柄変動表示ゲームの変動パターン(変動時間)は、相対的に短い時間の変動パターン(10秒程度の通常変動パターン、保留数が多いときに選択されやすい2~5秒程度の短縮変動パターン)や、相対的に長い時間の変動パターン(1分を超えるスーパーリーチなどの変動パターン)がある。パチンコ機でベース値を計算する場合、ベース値の報知はエラーの報知より緊急性を要さないことから、特別図柄変動表示ゲームが次の変動表示ゲームに切り替わるタイミングで報知できる。しかし、変動表示時間が長い場合は、一つの特別図柄変動表示ゲームの終了を待たずに、所定の条件を満たしたときに(例えば、アウト球数(発射球数)や賞球数(払出球数)が変化した場合に)、ベース値を計算し表示を更新する方が望ましい。このため、本実施例のパチンコ機では、遊技中(例えば、特別図柄変動表示ゲーム中でも)に所定の条件を満たしたとき(例えば、アウト球数(発射球数)や賞球数(払出球数)が変化した場合)に、ベース値を計算し、表示する。次に、このような動作をするパチンコ機の具体的な構成を説明する。
図38は、ベース値を計算し表示するパチンコ機1の主制御基板1310の周辺の構成を示すブロック図である。
図38に示すパチンコ機1は、図17に示すパチンコ機1とほぼ同様の構成を有するが、符号1317で表される構成が、役物比率表示器ではなくベース表示器である。本実施例のパチンコ機1のベース表示器1317は、例えば、図4や図28に示すように、4桁の7セグメントLEDを使用してもよく、他の桁数(例えば、2桁)の7セグメントLEDを使用してもよい。
本実施例のパチンコ機1は、主制御MPU1311が実行するタイマ割込み処理(図23)の役物比率算出用領域更新処理(ステップS81)において、賞球数やアウト球数のデータを取得し、役物比率算出・表示処理(ステップS89)において、ベース値を計算して表示する。なお、以下の説明では、図23のステップS81の「役物比率算出用領域更新処理」を「ベース算出用領域更新処理」と読み替え、ステップS89の「役物比率算出・表示処理」を「ベース算出・表示処理」と読み替えて説明する。また、図26に示す「役物比率算出用領域13128」を「ベース算出用領域13128」と読み替え、「役物比率算出・表示用コード13135」を「ベース算出・表示用コード13135」と読み替え、「役物比率算出・表示用データ13136」を「ベース算出・表示用データ13136」と読み替えて説明する。
図39は、ベース算出用領域更新処理(ステップS81)の一例を示すフローチャートである。ベース算出用領域更新処理は、現在の遊技状態を判定し、遊技価値として払い出される賞球数を現在の遊技状態に対応した領域に加算して、主制御内蔵RAM1312のベース算出用領域13128を更新する。特に、図39に示すベース算出用領域更新処理は、タイマ割込み周期ごとに毎回ベース値を計算するために、賞球制御処理(ステップS80)で算出された賞球数を用いて総賞球数を直接更新し(ステップS814)、アウト球数を用いて総アウト球数を直接更新する(ステップS822)。
まず、遊技状態が特賞中であるかを判定する(ステップS810)。遊技状態が特賞中であるとは、大入賞口2005、2006が開放しており、遊技者が多くの賞球を獲得できる時間中であるが、大当り遊技のオープニングやエンディングの時間を含めてもよい。一つの大当り中で大入賞口2005、2006が開放と閉鎖を繰り返す場合、大入賞口の閉鎖から次の開放までの間(閉鎖インターバル)の時間を含んでもよい。すなわち、ステップS810における特賞中は、条件装置作動中を意味し、例えば、特別図柄変動表示ゲームの大当たり図柄の確定からエンディング終了までである。また、右打ち指示中の全ての時間を含んでもよい。
さらに、始動口2002、2004においては、時短中、確変中(ST中)、電サポ中を特賞中に含めてもよい。さらに、時短中、確変中(ST中)、電サポ中以外の遊技状態において、始動口2004の開放から閉鎖後の所定時間(例えば、始動口に入賞した球がアウト球として検出されるまでに必要な数秒)までの間を特賞中に含めてもよい。
本実施例のパチンコ機1に設けられる電動作動役物は、ベース値の計算の観点から2種類に分けられる。前述したように、本実施例の遊技機における、大入賞口2005、2006に関する特賞中とは、条件装置作動中(例えば、特別図柄変動表示ゲームの大当たり図柄の確定からエンディング終了まで)であり、ベース値は特賞中以外の賞球およびアウト球数で計算されるので、大入賞口2005、2006への正常な(いわゆる大当り中の)入賞はベース値の算出に使用されない。一方、開閉部材を有する始動口2004(いわゆる、電動チューリップ)は、特賞中以外(低確率時や非時短時)の入賞球および賞球がベース値の算出に使用される。つまり、電動作動役物のうち、一部の役物(大入賞口2005、2006)は、遊技状態(特賞中か否か)に関係なく、入賞球数および賞球数をベース値の計算に使用せず、他の役物(始動口2004)は、入賞球数および賞球数をベース値の計算に使用するか使用しないかが、遊技状態(特賞中か否か)に応じて切り替えられることになる。入賞球数および賞球数をベース値の計算に使用しないとは、払い出された賞球をイン(ベース値の計算における被除数である特賞中以外の賞球数)に計数しないことの他、入賞信号が入力されても、当該入賞信号によって賞球を払い出すためのエッジ情報を作成しないことも含まれる。
また、大入賞口2005、2006は、条件装置が作動しない場合でも(いわゆる小当たりとして)開放するときがある。一般的に小当りは時短中に発生し、短時間開放のため遊技球が入賞する可能性が低いので、ベース値の計算には影響しない。しかし、特賞中以外(通常時)に小当たりを発生させ、遊技球が入賞する可能性が高くなる時間だけ開放してもよい。この場合、特賞中以外に発生した小当りにおける大入賞口2005、2006への入賞球および賞球はベース値の計算に使用してもよい。このようにすると、特賞中以外の小当たりの発生確率を制御することによって、ベース値の期待値(設計値)を変更できる。すなわち、ベース値の規格に対し柔軟に対応できるパチンコ機を提供でき、設計の自由度を向上できる。
遊技状態が特賞中であれば、ベース値の計算に関係しない賞球であるため、賞球数やアウト球数を更新せずに、ベース算出用領域更新処理を終了する。一方、遊技状態が特賞中でなければ、賞球制御処理(ステップS80)で入力情報に基づいて算出された賞球数を取得する(ステップS811)。ベース算出用領域更新処理で取得する賞球数は、払い出しが決定した賞球数でもよい。また、作成済みの払出コマンドに対応する賞球数でもよい。また、送信済の払出コマンドに対応する賞球数でもよい。また、主制御基板1310が払出制御基板951に払出コマンドを送信し、払出制御基板951から受信確認(ACK)を受信した払出コマンドに対応する賞球数でもよい。さらに、主制御基板1310が払出制御基板951に払出コマンドを送信し、払出制御基板951から払出完了の報告を受けた賞球数(払出済み賞球数)でもよい。このバリエーションは図41から図44を用いて説明する。
そして、取得した賞球数を総賞球数に加算して、総賞球数を更新する(ステップS814)。なお、賞球があるかを判定し、賞球がなければ、総賞球数を更新する処理をスキップしてもよい。また、始動口2002、2004に遊技球が入賞したが、保留が上限値であり、始動口への入賞が保留されなかった場合でも賞球は払い出されるので、総賞球数が更新される。また、入賞口に遊技球が入賞しても賞球が発生しない遊技状態(例えば、特定のエラー発生時など)においては、当該入賞に起因する賞球が発生せず、取得する賞球数が0であるため、総賞球数は更新されない。総賞球数は、主制御内蔵RAM1312のベース算出用領域13128に設けられる総賞球数格納領域(図52参照)に記録される。すなわち、図39に示すベース算出用領域更新処理では、賞球数が計算される都度、ベース値の計算に用いられる総賞球数が更新される。
その後、アウト球数を取得し(ステップS818)、取得したアウト球数を総アウト球数に加算するように、総アウト球数を更新する(ステップS822)。アウト球数は、前述したように、発射球センサ1020や排出球センサ3060などによって検出され、ステップS74のスイッチ入力処理で、これらのセンサの検出信号を読み取って、センサの検出信号があればアウト球数=1を取得する。総アウト球数は、主制御内蔵RAM1312のベース算出用領域13128に設けられる総アウト球数格納領域(図52参照)に記録される。すなわち、図39に示すベース算出用領域更新処理では、アウト球が検出される都度、ベース値の計算に用いられる総アウト球数が更新される。このように、タイマ割込み処理ごとにベース算出処理を実行して、総アウト球数を更新し、ベース算出表示処理(図40)にてベース値を計算し表示するので、ベース値を遅滞なく表示でき、ベースが正常か異常かを遅滞なく判断できる。
なお、後述するベース算出用領域更新処理(図46)のステップS815からS817のように、賞球数に異常があるかを判定し、賞球数に異常があれば、異常報知コマンドを生成し、賞球異常報知用タイマをリセットしてもよい。さらに、ステップS824からS825のように、賞球異常報知用タイマがタイムアップしたかを判定し、賞球異常報知用タイマがタイムアップすると、賞球異常報知停止コマンドを生成し、賞球異常報知を停止してもよい。
本実施例のパチンコ機1では、主制御MPU1311が、タイマ割込み処理においてベース値の計算処理を実行するが、払出制御部952の払出制御MPUがベース値の計算処理を実行してもよい。この場合、主制御基板1310から周辺制御基板1510の周辺制御部1511にベースを報知するためのコマンドを送信してもよいし、払出制御部952から周辺制御部1511にベースを報知するためのコマンドを送信してもよい。
また、一つのタイマ割込み処理において、入賞口への入賞とアウト球との両方の情報を取得しても、賞球数を総賞球数(または、後述する実施例では賞球数バッファ)に加算し、アウト球数を総アウト球数(または、後述する実施例ではアウト球数バッファ)に加算する。また、一つのタイマ割込み処理において、複数の入賞口への入賞の情報を取得しても、複数の入賞による賞球数の合計を総賞球数(または、後述する実施例では賞球数バッファ)に加算する。このため、ベース値を正確に計算し、表示できる。例えば、賞球数が5個の入賞口の入賞口センサと賞球数が3個の入賞口の入賞口センサとへの入賞を検出した場合は、合計8個の賞球を総賞球数(または、賞球数バッファ)に加算する。
また、遊技球の発射が検出されている場合にのみ、賞球数を総賞球数(または、賞球数バッファ)に加算してもよい。すなわち、発射球センサ1020の検出から所定時間以内に検出した入賞に関する賞球数のみを総賞球数(または、賞球数バッファ)に加算してもよい。また、発射制御部953または球発射装置680の動作を検出し、発射制御部953または球発射装置680が動作している間(さらに、発射制御部953または球発射装置680が動作を停止してから所定時間(例えば、5秒)後まで)に検出した入賞に関する賞球数のみを総賞球数または賞球数バッファに加算してもよい。また、遊技者が発射ハンドルを操作している場合に、賞球数を総賞球数(または、賞球数バッファ)に加算してもよい。すなわち、ハンドルユニット500の接触検知センサ509に手のひらや指が触れていることが検出されている時間から所定時間(例えば、5秒)以内に検出した入賞に関する賞球数のみを総賞球数(または、賞球数バッファ)に加算してもよい。このようにすると、遊技球が発射されていない状態で賞球を検出する異常や不正行為による賞球のベース値への反映を防止でき、不正確なベース値の表示を防止できる。また、接触検知センサ509を用いると、遊技球の発射を検出するセンサを新たに設けなくてもよいので、パチンコ機1のコストの上昇を抑制できる。
図39に示すベース算出用領域更新処理では、特賞中の賞球数およびアウト球数を除外してベースを計算したが、特賞中でも一般入賞口及び始動口への入賞による賞球数を計数し、大入賞口へ入賞した球数を除外してアウト球数を計数して、ベース値を計算してもよい。
図40は、ベース算出・表示処理(ステップS89)の一例を示すフローチャートである。図40に示すベース算出・表示処理では、毎回(タイマ割込み周期ごと)にベース値を計算する。
まず、総アウト球数が0であるかを判定する(ステップS902)。総アウト球数が0であれば、ベース値を計算できないので、ベース値を計算せず、ベース算出・表示処理を終了する。一方、総アウト球数が0でなければ、総賞球数を総アウト球数で除してベース値を計算する(ステップS903)。なお、総賞球数が0である場合はベース値として0が計算されるが、ベース値を計算しなくてもよい。さらに、異常なベース値が計算される場合(例えば、総賞球数が総アウト数より大きく、ベース値として1(100%)以上の値が計算される場合)、ベース値を計算しなくてもよい。ベース値を百分率で表す場合、総賞球数÷総アウト球数に100を乗じてベース値を計算する。具体的には、総賞球数に所定数(例えば100)を乗じて除算入力レジスタA131216に格納し、総アウト球数を除算入力レジスタB131217に格納する。
除算入力レジスタA131216に格納される総賞球数に乗じられる所定数は、計算されるベース値の桁数を制御する。例えば、この所定数を100とすれば、ベース値は100分率で1の位まで計算され、少数以下は計算されない。また、この所定数を10000とすれば、ベース値は100分率で小数2桁まで計算される。すなわち、演算回路から出力された商を100で除すると、小数2桁の100分率のベース値が計算できる。
そして、32クロック経過後に、除算結果レジスタA131218から商を読み出して、ベース値とする。なお、除算入力レジスタ131216、131217へのデータの書き込みから除算結果レジスタA131218からデータを読み出すまでの32クロックのウェイト時間には、主制御MPU1311は、処理を行わずに待機しても、他の処理を行ってもよい。例えば、除算入力レジスタ131216、131217へのデータの書き込みから除算結果レジスタA131218からデータを読み出すまでの間に大当たりの当落を判定する乱数を更新してもよい。より具体的には、乱数発生回路13112で生成されるハード乱数は、主制御MPU1311に供給されるクロック周期(又は、該クロック周期を分周した信号)のタイミングで更新されるので、該ウェイト時間にもハード乱数が更新される。
すなわち、本実施例の遊技機では、演算回路13121がベース演算処理を実行中においても、遊技にかかる他の処理を並行して実行可能となっている。遊技にかかる他の処理は、少なくとも、当落を判定するための乱数を更新する処理が含まれる。また、演算回路13121における演算(除算)処理中に、遊技の結果に影響を与える乱数の更新が1回以上行われる。
また、総アウト球数が0である場合、ベース値を計算しても、演算回路13121からの返り値はエラーとなるので、ベース算出用領域13128に格納しなくてよい。この場合、ベース表示器1317に表示されるベース値は更新されない。
その後、ベース報知コマンドを生成し(ステップS908)、遊技者やホール従業員にベースを報知する。ベース報知コマンドは、単にベース値を報知するものでも、ベース値の異常を報知するものでもよい。ベース値の異常とは、例えば、計算されたベース値が設計値(正常値)から所定の許容範囲を超えて大きくまたは小さくなった場合などである。なお、複数段階の許容範囲を設けてベース値の乖離の程度によって異常の程度を複数段階で判定してもよい。
ベースの報知は、様々な方法があり、以下に説明する方法の一つでも、二つ以上を組み合わせてもよい。例えば、ベース表示器(7セグメントLED)1317、液晶表示装置1600、3114、244などでベースの値を常時または所定のタイミングで報知してもよい。遊技者にベース値を報知すると、遊技者がパチンコ機の調子を確認できてよい。その際、役物比率で説明した表示態様をベース値に適用してもよい。ベースの値を報知する場合、計算されたベース値をパーセンテージ表記として、前述した表示器や表示装置に表示する。なお、小数点以下の値は切り捨て、四捨五入、切り上げのいずれでもよいし、液晶表示装置1600、3114、244など画像を表示可能な表示装置では、小数点以下第1位まで表示し、より詳細に表示してもよい。
7セグメントLEDで構成されるベース表示器1317にベース値を表示する場合、主制御MPU1311がベース表示器1317のドライバ回路13171に設けられた所定のレジスタに表示データを入力する。すなわち、主制御MPU1311は、ベース報知コマンドとして、ドライバ回路13171のレジスタに設定される表示データを生成する。より具体的には、主制御MPU1311は、図33、図34に示すように、D15~D8に数値を表示する桁を「データn設定」で指定し、D7~D0に表示内容を指定したデータを生成し、シフトレジスタ3171に書き込む。
また、液晶表示装置1600、3114、244にベース値を表示する場合、ベース値に所定の基準値(例えば、50%など)を設け、当該基準値を超えた場合は、表示態様を変更するとよい。例えば、数値を点滅させたり、色を変えたり(通常時は緑色で、基準超時は赤色など)して表示する。さらに、複数段階でベース値の表示態様を変えてもよい。具体的には、表示されるベース値が、30%以上、25%以上30%未満、20%以上25%未満、15%以上20%未満、10%以上15%未満、10%未満のように複数の段階に分けて、各段階で白、青、黄のように発光色を変えて表示してもよい。また、各段階で「調子いいね」「調子が下がってきてるよ」「やばいんじゃない」「ある意味凄いね」など、ベース値が低いときには自虐的なコメントを表示してもよい。ベース値が基準値を超えている場合、パチンコ機が想定とは異なる動作をしており、不正が行われている可能性がある。このため、赤色などの警告を示す態様による表示が望ましい。また、遊技の進行を停止しない程度の弱いエラーと同一又は同様の表示態様でもよい。ここで、同様とは、表示、ランプ、音の少なくとも一つが同じことを意味する。
また、各種ランプ、液晶表示装置、音などでベース値がどの範囲にあるか(ベース値が高いのか低いのか、異常値か正常値か、など)を報知してもよい。また、ベースが計算できず(ステップS902でYes)、かつ、過去に計算されたベース値がない場合、ベース報知不可を液晶表示装置に表示するためのベース報知コマンドを生成してもよい。報知コマンドを生成したサブ基板に送信することによって、サブ基板が制御する演出装置でベースの状態を報知することができるので、主基板で報知するより多種多様の報知ができ、主基板の負荷を軽減できる。また、ベース表示器1317に何も表示されていないときにベース表示不可を報知することによって、ベース表示器1317の故障と、表示するベース値がないこととを切り分けることができる。さらに、ベース値の異常を液晶表示装置に表示することによって、ベース表示器1317が設けられた遊技盤の裏面側を見ることなく、ベース値の異常を知ることができる。
機能表示ユニット1400がベース表示器1317を兼ねてもよい。この場合、機能表示ユニット1400の特定のLEDランプ(または7セグメントLED)を使用して常時報知するとよい。また、所定のタイミング(例えば、本体枠4の開放時、特別図柄変動表示ゲームが実行されていない間、特別図柄変動表示ゲームが終了したタイミング)で報知するとよい。
外部端子板784から遊技場に設置されたホールコンピュータにベースの情報を出力してもよい。この場合、後述するベース算出・表示処理(図47、図49など)のように、所定のタイミングで(所定の賞球数ごとに、所定のアウト球数ごとに)、ベースの情報を出力するとよい。
外部端子板784から出力するベースの情報は、算出されたベース値が所定の閾値に対して高いか低いかを表す2値(ハイ、ロー)の信号でもよい。また、算出されたベース値の概略を示す長さの信号を出力してもよい(例えば、ベース値が30%以上40%未満は、30ミリ秒のパルス)。また、算出されたベース値の概略を示す数の連続パルスを出力してもよい(例えば、ベース値が30%以上40%未満は、3個の連続パルス)。
なお、ベース値が更新されない場合でも、ベース報知コマンドを生成してもよく、ベース値が更新されない場合には、ベース報知コマンドを生成しなくてもよい。ベース報知コマンドを生成しなくても、ベース値の表示は継続される。
また、図56などで後述するように、計算されたベース値が異常であるかを判定し、ベース値の異常を報知するベース報知コマンドを生成し、遊技者やホール従業員にベースの異常を報知してもよい。
また、遊技者へのベースを報知するかを、遊技状態(遊技状況)に応じて決定してもよい。これは、ベース値を遊技者に常時報知すると、パチンコ機の本来の楽しみである特別図柄変動表示ゲームの演出に対する遊技者の注意が疎かになり、遊技者の意識が分散する可能性があるためである。
また、計算されたベース値に基づいて、実行中や今後実行される特別図柄変動表示ゲームの演出を変化させてもよい。例えば、複数の表示選択テーブルを準備し、ベース値によって異なる表示選択テーブル(図64~図68参照)から演出を選択するとよい。
また、特別図柄変動表示ゲーム中に、ベース値が所定の閾値(例えば、30%)を越えたり下回ることもある。このため、特別図柄変動表示ゲーム中に閾値を越えたり、下回ったときに、特別図柄変動表示ゲームの演出を変化させてもよい。ベース値が所定の閾値を超えて上昇したときと下降したときで、演出を同じ態様で変化させてもよいし、演出を異なる態様で変化させてもよい。
図41は、賞球数の更新タイミングとベース値の計算タイミングの一例を示す図である。図23に示すように、本実施例ではステップS81のベース算出用領域更新処理で賞球数を更新し、ステップS89のベース比率算出・表示処理でベース値を計算する。
このため、主制御MPU1311は、スイッチ入力処理(ステップS74)で遊技球の入賞を検出し、賞球制御処理(ステップS80)で入賞口毎に定められた賞球数を計算し、ベース算出用領域更新処理(ステップS81)で賞球数バッファを更新する。その後、ベース比率算出・表示処理(ステップS89)でベース値を更新し、出力データ設定処理(ステップS90)で払出制御基板951に払出コマンドを送信する。
払出制御基板951は、受信した払出コマンドをメモリに格納すると、払出コマンド受信確認を主制御基板1310に送信する。そして、払出制御基板951は、払出コマンドに従って賞球を払い出すと、球払出完了を主制御基板1310に通知する。なお、賞球制御処理(ステップS80)で計算された賞球数のうち未払出し賞球数は、主制御基板1310又は払出制御基板951でバックアップされる。払出制御基板951で未払出し賞球数をバックアップする場合、払出制御基板951が払出コマンド受信確認を主制御基板1310に送信する必要があるが、球払出完了を主制御基板1310に通知する必要はない。一方、主制御基板1310で未払出し賞球数をバックアップする場合、払出制御基板951が球払出完了を主制御基板1310に通知する必要があるが、払出コマンド受信確認を主制御基板1310に送信する必要はない。
以上に説明した実施例にかかるパチンコ機では、遊技中にベース値が遅滞なく計算され、遊技機の状態をリアルタイムで知ることができる。このため、遊技機の異常を早期に発見できる。例えば、ベース値が所定の閾値より低いまたは高いとベースが異常であると判定する場合、一つの特別図柄変動表示ゲーム中にベース値が複数回計算され、所定の閾値を跨いで上下して異常であると判定されても遊技を止めることなく、異常の判定にかかわらずベース値の計算処理は継続して実行する。例えば、特別図柄変動表示ゲームには、通常変動などの短時間のものや、リーチ変動などの長時間のものがあり、一つの特別図柄変動表示ゲームの開始から終了までの間にベース値を計算する条件を複数回満たした場合、その都度ベース値を計算し、その都度ベース値を更新して表示するとよい。これは、特別図柄変動表示ゲーム中のベース値の計算を制限すると(例えば、変動表示終了時に1回だけベース値を計算し更新する)、ベース値の計算タイミングによっては、ベース値の変化に長時間気が付かず、ホール運営に必要な情報が適切なタイミングで出力されず、ホールが迷惑を被る可能性があるからである。
また、発射された遊技球が始動口や一般入賞口に入賞していなければ、ベース値が低下する。この状態では、遊技者は損をしているので、例えば、液晶で行われている演出に追加演出(例えば、ベース値の変化に関連しない当落に関する演出や、ベース値の変化に伴って現出する特定の演出)を付加したり、大当りの期待度が高い予告演出(ベース値の変化に関連しない演出のうち、次回予告演出などの期待度が高い予告演出や、ベース値の変化に伴って現出する特定の演出のうち期待度が高い予告演出(例えば、ベース値をレインボー表示で表示))を行ってもよい。これによって、遊技者は、始動口および一般入賞口に入賞しないことにより感じる不快感を軽減し、遊技を継続する動機づけを与えることができる。
一方、発射された遊技球の多くが始動口や一般入賞口に入賞すれば(過去の入賞数の平均値より多く入賞すれば)、ベース値が上昇する。この状態では、大当り抽選の結果がはずれでも、遊技者には通常より多くの遊技球の払い出しを受けているため、遊技者のがっかり感は軽減される。変動表示ゲームの演出を、期待度が低い演出に変えてもよい。
[9-2.賞球数の更新タイミングとベース値の計算タイミングのバリエーション]
次に、図42から図44を用いて、賞球数の更新タイミングとベース値の計算タイミングのバリエーションを説明する。各バリエーションにおける賞球数の更新タイミング、ベース値の計算タイミングの概要は以下の通りである。
・図41:賞球数計算→賞球数更新→ベース値計算→払出コマンド送信
・図42:賞球数計算→賞球数更新→払出コマンド送信→ベース値計算
・図43:賞球数計算→払出コマンド送信→賞球数更新→ベース値計算
・図44:賞球数計算→払出コマンド送信→コマンド受信確認→賞球数更新→ベース値計算
・図45:賞球数計算→払出コマンド送信→払出完了通知→賞球数更新→ベース値計算
なお、上記図41から図44のバリエーションは、図39に示すベース算出用領域更新処理および図40に示すベース算出・表示処理だけでなく、後述するいずれのベース算出用領域更新処理およびベース算出・表示処理にも適用可能である。
図42に示す手順では、図23に示すタイマ割込み処理の手順と異なり、ベース算出用領域更新処理(ステップS81)は図示した位置で実行し、出力データ設定処理(ステップS90)の後にベース比率算出・表示処理(ステップS89)を実行する。
すなわち、主制御MPU1311は、スイッチ入力処理(ステップS74)で遊技球の入賞を検出し、賞球制御処理(ステップS80)で入賞口毎に定められた賞球数を計算し、ベース算出用領域更新処理(ステップS81)で総賞球数(または、後述する実施例では賞球数バッファ)を更新する。その後、出力データ設定処理(ステップS90)で払出制御基板951に払出コマンドを送信し、ベース比率算出・表示処理(ステップS89)でベース値を更新する。
払出制御基板951は、受信した払出コマンドをメモリに格納すると、払出コマンド受信確認を主制御基板1310に送信する。そして、払出制御基板951は、払出コマンドに従って賞球を払い出すと、球払出完了を主制御基板1310に通知する。前述したように、賞球制御処理(ステップS80)で計算された賞球数のうち未払出し賞球数を主制御基板1310又は払出制御基板951のいずれでバックアップするかによって、払出コマンド受信確認又は球払出完了のいずれかを省略してもよい。
図43に示す手順では、図23に示すタイマ割込み処理の手順と異なり、出力データ設定処理(ステップS90)の後にベース算出用領域更新処理(ステップS81)及びベース比率算出・表示処理(ステップS89)を実行する。
すなわち、主制御MPU1311は、スイッチ入力処理(ステップS74)で遊技球の入賞を検出し、賞球制御処理(ステップS80)で入賞口毎に定められた賞球数を計算し、出力データ設定処理(ステップS90)で払出制御基板951に払出コマンドを送信する。その後、ベース算出用領域更新処理(ステップS81)で、送信した払出コマンドに対応する賞球数で総賞球数(または、後述する実施例では賞球数バッファ)を更新し、ベース比率算出・表示処理(ステップS89)でベース値を更新する。なお、送信した払出コマンドに対応する賞球数ではなく、作成した払出コマンドに対応する賞球数で(払出コマンドが未送信であっても)賞球数バッファを更新してもよい。
払出制御基板951は、受信した払出コマンドをメモリに格納すると、払出コマンド受信確認を主制御基板1310に送信する。そして、払出制御基板951は、払出コマンドに従って賞球を払い出すと、球払出完了を主制御基板1310に通知する。前述したように、賞球制御処理(ステップS80)で計算された賞球数のうち未払出し賞球数を主制御基板1310又は払出制御基板951のいずれでバックアップするかによって、払出コマンド受信確認又は球払出完了のいずれかを省略してもよい。
なお、主制御MPU1311が、払出制御基板951からコマンド受信確認や球払出完了通知を受信するタイミングは、払出制御基板951の処理速度や払出装置830の動作速度によるので、ベース算出用領域更新処理(ステップS81)やベース比率算出・表示処理(ステップS89)との順序は問わない。
図44に示す手順では、図23に示すタイマ割込み処理の手順と異なり、払出制御基板951から払出コマンド受信確認を受信した後に、ベース算出用領域更新処理(ステップS81)及びベース比率算出・表示処理(ステップS89)を実行する。
すなわち、主制御MPU1311は、スイッチ入力処理(ステップS74)で遊技球の入賞を検出し、賞球制御処理(ステップS80)で入賞口毎に定められた賞球数を計算し、出力データ設定処理(ステップS90)で払出制御基板951に払出コマンドを送信する。
払出制御基板951は、受信した払出コマンドをメモリに格納すると、払出コマンド受信確認を主制御基板1310に送信する。
主制御MPU1311は、払出制御基板951から払出コマンド受信確認を受信すると、ベース算出用領域更新処理(ステップS81)で、コマンド受信確認を受信した払出コマンドに対応する賞球数で総賞球数(または、後述する実施例では賞球数バッファ)を更新し、ベース比率算出・表示処理(ステップS89)でベース値を更新する。
そして、払出制御基板951は、払出コマンドに従って賞球を払い出すと、球払出完了を主制御基板1310に通知する。なお、図44に示す手順では、停電発生時に未払出し賞球数のデータを消失しないため、払出制御基板951で未払出し賞球数のデータバックアップしている。このため、払出制御基板951から主制御基板1310へのコマンド受信確認は必要であるが、球払出完了通知は省略してもよい。
図45に示す手順では、図23に示すタイマ割込み処理の手順と異なり、払出制御基板951から球払出完了通知を受信した後に、ベース算出用領域更新処理(ステップS81)及びベース比率算出・表示処理(ステップS89)を実行する。
すなわち、主制御MPU1311は、スイッチ入力処理(ステップS74)で遊技球の入賞を検出し、賞球制御処理(ステップS80)で入賞口毎に定められた賞球数を計算し、出力データ設定処理(ステップS90)で払出制御基板951に払出コマンドを送信する。
払出制御基板951は、受信した払出コマンドをメモリに格納すると、払出コマンド受信確認を主制御基板1310に送信する。そして、払出制御基板951は、払出コマンドに従って賞球を払い出すと、球払出完了を主制御基板1310に通知する。
主制御MPU1311は、払出制御基板951から球払出完了通知を受信すると、ベース算出用領域更新処理(ステップS81)で、払い出しが完了した賞球数で総賞球数(または、後述する実施例では賞球数バッファ)を更新し、ベース比率算出・表示処理(ステップS89)でベース値を更新する。
なお、図44に示す手順では、停電発生時に未払出し賞球数のデータを消失しないため、主制御基板1310で未払出し賞球数のデータバックアップしている。このため、払出制御基板951から主制御基板1310への球払出完了通知は必要であるが、コマンド受信確認は省略してもよい。
以上に説明したように、本実施例のパチンコ機は、所定の条件が満たされた場合に、ベース値の計算に使用するパラメータである賞球数やアウト球数を更新する。例えば、図41や図42に示す処理では、スイッチ入力処理(ステップS74)で入賞口センサが遊技球の入賞を検出すると賞球数を更新する。また、図43に示す処理では、払い出しコマンドを送信すると賞球数を更新する。また、図44に示す処理では、払い出しコマンドの受信を確認すると賞球数を更新する。また、図45に示す処理では、賞球の払い出しが完了すると賞球数を更新する。
なお、本実施例のパチンコ機では、遊技状態が特賞中であるかの判定タイミングと賞球数の更新タイミングとのズレによって、特賞中の賞球数を正確に計数できない可能性がある。特に、入賞口への入賞から賞球数の更新までの時間が長い場合に問題が大きくなる。このため、特賞中の入賞にフラグを付し、当該入賞による賞球数、払出コマンド、受信確認および払出完了通知に当該フラグを引き継ぐ。そして、当該フラグを用いて、各段階で特賞中の賞球であるかを判定する。このようにすると、入賞口への入賞から賞球数の更新までの時間が長くても、特賞中の賞球数を正確に計数して更新できる。
また、本実施例のパチンコ機では、これらの契機で賞球数やアウト球数を更新して、ベース値を計算して表示する。すなわち、遊技機単体でベース値を知ることができるので、製造工程や検査工程での釘調整に必要な時間を短縮でき、効率良く遊技機を製造できる。
また、本実施例のパチンコ機では、パチンコ機が球切れ状態で賞球を払い出せない場合、主制御基板1310又は払出制御基板951が未払出球の数を保持する。
主制御基板1310が未払出球の数を保持する場合、スイッチ入力処理(ステップS74)で入賞口センサが遊技球の入賞を検出すると、入賞が検出された入賞口に対応する賞球数を未払出球数に加算する。なお、この未払出球数には、所定の上限を設けてもよいが、上限を設けなくてもよい。この場合、払い出される賞球数が計算される都度、ベース値を計算するための賞球数バッファまたは総賞球数を更新するとよい。また、主制御基板1310から払出制御基板951に払出コマンドの送信後に賞球数を更新してもよい。
一方、払出制御基板951が未払出球の数を保持する場合、スイッチ入力処理(ステップS74)で入賞口センサが遊技球の入賞を検出すると、入賞が検出された入賞口に対応する賞球数の払出コマンドを払出制御基板951に送信する。パチンコ機が球切れ状態で賞球を払い出せない場合でも払出コマンドが送信され、未払出球数は払出制御基板951で保持される。この場合、払出コマンドが送信される都度、ベース値を計算するための賞球数バッファまたは総賞球数を更新するとよい。
また、払出制御基板951が払出コマンドを受信すると、ベース値を計算するための賞球数を更新してもよい。なお、この賞球数には、所定の上限を設けてもよいが、上限を設けなくてもよい。また、実際に賞球が払い出される都度、ベース値を計算するための賞球数を更新してもよい。払出制御基板951はベース値を計算するための賞球数を主制御基板1310に送信し、主制御基板1310は、受信した賞球数を用いてベース値を計算する。
また、図47において後述するように、賞球数バッファ値と閾値Th1とを比較せずに、所定回数(例えば、10回)の入賞毎に、または、所定時間(例えば、5秒)毎に、ステップS891およびS892を実行してもよい。
以上に説明したように、ベース値を計算するための賞球数の更新は様々なタイミングで行うことができるが、賞球数を更新すると遅滞なくベース値を計算し、ベース表示器1317にリアルタイムに表示してもよいし、所定のタイミング(例えば、1分ごと)にベース値を計算し、表示してもよい。
[9-3.賞球数の更新とベース値の計算のタイミング]
次に、図46から図51を用いて、ベース算出用領域更新処理(ステップS81)、ベース算出表示処理(ステップS89)のバリエーションを説明する。各バリエーションにおけるベース値の計算タイミングの概要は以下の通りである。
・図39及び図40:タイマ割込み周期ごとに毎回ベース値を計算
・図46及び図47:所定賞球数ごとにベース値を計算
・図48及び図49:所定アウト球数ごとにベース値を計算
・図50及び図51:賞球数及びアウト球数の一方が所定数に達したらベース値が更新
図46は、ベース算出用領域更新処理(ステップS81)の別の一例を示すフローチャートである。図46に示すベース算出用領域更新処理は、賞球数が所定の条件を満たしたタイミングでベース値を計算するために、賞球数を賞球数バッファに記録する(ステップS813)。なお、図46において、前述したベース算出用領域更新処理(図39)と同じ部分には同じステップ番号を付し、その詳細の説明は省略する。
まず、遊技状態が特賞中であるかを判定する(ステップS810)。特賞中であるかの判定基準は図39で説明したものと同じものを用いることができる。遊技状態が特賞中であれば、ベース値の計算に関係しない賞球であるため、賞球数やアウト球数を更新せずに、ステップS824に進む。一方、遊技状態が特賞中でなければ、賞球制御処理(ステップS80)で入力情報に基づいて算出された賞球数を取得する(ステップS811)。
そして、賞球があるか、すなわち、取得した賞球数が1以上であるかを判定する(ステップS812)。その結果、賞球がなければ、賞球数を更新せずにステップS818に進む。一方、賞球があれば、取得した賞球数を賞球数バッファに加算する(ステップS813)。なお、賞球数バッファに加算する都度、外部端子板784から遊技場に設置されたホールコンピュータに賞球数を出力してもよいし、後述する賞球数が所定の閾値Th1以上となった場合に当該閾値Th1を外部端子板784からホールコンピュータに出力してもよい。ここで賞球数バッファは、ベース値を計算するために主制御内蔵RAM1312に設けられる領域であり、パチンコ機1が払い出す賞球数が一時的に格納される。
そして、賞球数に異常があるかを判定する(ステップS815)。例えば、賞球数の異常とは、特賞中以外の所定時間に多くの賞球(例えば、一般入賞口や始動口の賞球数から考えて、1分間に10発以上の入賞に相当する賞球)が得られている場合などである。なお、複数段階の許容範囲を設けて賞球数の基準値からの乖離の程度によって異常の程度を複数段階で判定してもよい。また、賞球数に異常がある場合、ステップS813において、取得した賞球数を賞球数バッファに加算しなくてもよく、ステップS813において賞球数バッファに加算した賞球数を減算してもよい。
その結果、賞球数に異常があれば、異常報知コマンドを生成し(ステップS816)、遊技者やホール従業員に賞球が異常であることを報知する。異常の報知は、様々な方法があり、以下に説明する方法の一つでも、二つ以上を組み合わせてもよい。例えば、各種ランプ、液晶表示装置1600、3114、244、音などで賞球数の異常を報知してもよい。また、外部端子板784から遊技場に設置されたホールコンピュータに賞球数の異常を出力してもよい。さらに、当該異常と判定された賞球数をベース値の計算に使用しなくてもよい。この場合、遊技者に賞球を払い出してもよい。また、賞球数が異常と判定され且つ前述した報知手段(音、ランプ、LED、液晶表示装置、外部端子板784からの情報出力など)によって報知する場合、異常と判定された賞球数をベース値の計算に使用してもよい。さらに、遊技を一時的に停止してもよい。具体的には、主制御基板1310は、RAMクリアスイッチが操作されなくても、主制御内蔵RAM1312の全データを初期化し、周辺制御部1511のRAMの全データを初期化する。そして、初期状態で動作確認から遊技を開始する。遊技を停止する他の方法として、遊技を一旦停止(例えば、特別図柄の変動表示を停止)した後、エラー報知停止後に元の状態に復帰して遊技を再開する。このため、停電監視回路が電源電圧の低下を検出しなくても停電検知信号を出力し、主制御MPU1311は主制御内蔵RAM1312の全データをバックアップして、遊技を停止する。そして、エラー報知終了後に、主制御内蔵RAM1312のデータをバックアップ領域からリストアして、遊技を再開する。このとき、周辺制御部1511は、そのままの状態で、主制御基板1310からのコマンドを待つので、主制御基板1310の動作の再開によって、中断していた遊技を再開する。とはいえ、100個の遊技球(すなわち、アウト球)が遊技領域5aに発射され、全ての遊技球が一般入賞口や始動口に入賞する可能性があるので、賞球数の異常を報知する態様は、通常のエラー(磁気センサエラーなど)より緊急度が低い、おとなしい態様(例えば、通常のエラー報知より小音量や低光量)が望ましい。また、表示時間も通常のエラーと同じか、短時間でもよい。場合によっては、報知時間を0秒にして報知しなくてもよい。
そして、賞球異常報知用タイマをリセットし(ステップS817)、賞球異常報知時間の計数を開始する。
その後、アウト球数を取得し(ステップS818)、取得したアウト球数を総アウト球数に加算するように、総アウト球数を更新する(ステップS822)。
その後、ステップS817で起動した賞球異常報知用タイマがタイムアップしたかを判定する(ステップS824)。そして、賞球異常報知用タイマがタイムアップすると、賞球異常報知停止コマンドを生成し、賞球異常報知を停止する(ステップS825)。なお、ステップS824では、所定時間だけ賞球異常を報知するためのタイマの時間によって報知の終了を判定したが、所定の発射球数だけ賞球異常を報知するように報知の終了を判定してもよい。また、ホール従業員が確認するまで異常を報知し続けてもよい。
図46に示すベース算出用領域更新処理では、ステップS985で賞球数に異常があるかを判定したが、アウト球数を取得した後に、アウト球数との比較において賞球数に異常があるか(すなわち、ベース値に異常があるか)を判定してもよい。例えば、所定の時間においてアウト球数を超える賞球数が計数された場合や、一般入賞口や始動口の賞球数から考えて、アウト球が高い割合(例えば、50%以上)で入賞している場合などである。
図47は、ベース算出・表示処理(ステップS89)の別の一例を示すフローチャートである。図47に示すベース算出・表示処理では、賞球数が所定の条件を満たすタイミングでベース値が更新される。なお、図47において、前述したベース算出・表示処理(図40)と同じ部分には同じステップ番号を付し、その詳細の説明は省略する。
まず、賞球数バッファに格納されている賞球数が予め定められている閾値Th1以上であるかを判定する(ステップS890)。賞球数バッファ値が所定の閾値Th1以上であるかの判定には様々な方法がとり得る。例えば、賞球数バッファ値と閾値Th1とを比較したり、賞球数の格納領域の所定のビットの値で判定してもよい(具体的には、賞球数の格納領域を8ビットで構成し、最上位ビットが1になればアウト球数が128以上であると判定できる)。またベース算出用領域更新処理(図46)で賞球数と閾値Th1とを比較した判定結果をフラグに記録し、ベース算出・表示処理(図47)では、当該フラグによって、賞球数バッファ値が所定の閾値Th1以上であるかを判定してもよい。
そして、賞球数バッファ値が閾値Th1より小さければ、ベース値を計算するタイミングではないので、ベース算出・表示処理を終了する。
一方、賞球数バッファ値が閾値Th1以上であれば、総賞球数に閾値Th1を加算し(ステップS891)、賞球数バッファから閾値Th1を減算する(ステップS892)。すなわち、所定の起点から計数した賞球数が所定の条件を満たす(賞球数バッファに格納された賞球数が閾値Th1以上となる)遊技状況であれば、当該賞球数の端数部分を残し(賞球数バッファから閾値Th1を減算した端数を賞球数バッファに残し)、他の部分をメモリに格納して(総賞球数に閾値Th1を加算し)、ベース値の計算に使用する処理を実行する。具体的には、閾値Th1が100個である場合に、賞球数バッファ値が99個であり、一般入賞口に入賞して5個の賞球が発生すると、賞球数バッファ値は104個となるが、100個を総賞球数に移動してベース値の計算に使用し、残り4個は賞球数バッファに残す。この場合、賞球数バッファに残された4個の賞球のカウントは、次に賞球数バッファ値が閾値Th1以上となった場合にベース値の計算に使用される。また、閾値Th1=100個で説明したが、1000個など他の数値でもよい。しかし、大当たりが得られてもベースが計算されないような大きな閾値Th1を設定すると、不正の発見が遅延する可能性があるので、閾値Th1は1回の大当たりで払い出される賞球数以下(複数種類の大当たり(例えば、4ラウンドと8ラウンドの大当たり)がある場合、大当たりの賞球数の最小値以下)に設定するとよい。また、早期に不正を発見する観点から、頻繁にベース値を更新するとよい。例えば、閾値Th1が100個ではなく10個の方が、頻繁にベース値が更新される点で好ましい。
なお、賞球数バッファ値と閾値Th1とを比較せずに、所定回数(例えば、10回)の入賞毎に、ステップS891およびS892を実行してもよい。さらに、賞球数バッファ値と閾値Th1とを比較せずに、所定時間(例えば、5秒)毎に、ステップS891およびS892を実行してもよい。この所定時間は、主制御MPU1311で動作するタイマで計測しても、RTC(リアルタイムクロック)の出力で計測してもよい。
その後、総アウト球数が0であるかを判定する(ステップS902)。総アウト球数が0であればベース値を計算できないので、ベース値を計算せず、ベース算出・表示処理を終了する。一方、総アウト球数が0でなければ、総賞球数を総アウト球数で除してベース値を計算する(ステップS903)。具体的には、総賞球数に所定数(例えば100)を乗じて除算入力レジスタA131216に格納し、総アウト球数を除算入力レジスタB131217に格納する。そして、32クロック経過後に、除算結果レジスタA131218から商を読み出して、ベース値とする。なお、総アウト球数が0である場合、ベース値を計算しても、演算回路13121からの返り値はエラー(又は、不定)となるので、ベース算出用領域13128に格納しなくてよい。この場合、ベース表示器1317に表示されるベース値は更新されない。
また、総アウト球数が0である場合の他、算出されるベース値が異常値となる場合に、ベース値を計算せず、ベース算出用領域13128を更新しなくてもよい。例えば、総アウト球数が総賞球数以下である場合、ベース値は100%以上となり、発射球数(アウト球)と同数以上の賞球が得られており、通常に遊技が行われている状態ではないので、除算入力レジスタ131216、131217に数値を格納せず、ベース値を計算しなくてもよい。また、ベース値を計算して、除算結果レジスタA131218から読み出した値が100%以上である場合、除算結果レジスタA131218から読み出した値でベース算出用領域13128を更新しなくてもよい。
また、ベース値の異常は、1500%を閾値として判定してもよい。入賞口に対する最大賞球数が15個であるパチンコ機の理論的なベース値の上限値は1500%なので、1500%を超えているベース値は、あり得ない値であり、遊技機が異常であると判定できる。この場合も、ベース値を計算しなくてもよい、又は、除算結果レジスタA131218から読み出した値でベース算出用領域13128を更新しなくてもよい。
また、ベース値の異常を判定する閾値は他の値でもよい。パチンコ機の通常の稼働におけるベース値の正常値(例えば、30%~50%)を定めて、当該正常値の範囲外であれば、除算結果レジスタA131218から読み出した値でベース算出用領域13128を更新せず、ベース値の表示を更新しなくてもよい。
以上にベース値を表示しない場合を説明したが、計算されたベース値が異常な値であっても、当該異常なベース値を表示してもよい。
なお、総賞球数と総アウト球数は、図52で後述するように、パチンコ機1が稼働を開始したときからの累計の数値であるが、総賞球数と総アウト球数を同じタイミングで(例えば、所定の賞球数毎、所定のアウト球数毎に)初期化してもよい。
その後、ベース報知コマンドを生成し(ステップS908)、遊技者やホール従業員にベースを報知する。
以上に説明したように、本実施例のパチンコ機は、賞球数を取得する毎に賞球数が異常でないかを判定するので、不正行為を早期に発見できる。これは、通常の遊技中では、一般入賞口2001や始動口2002、2004に、高い確率で相当数の遊技球(例えば発射球数の50%)が入賞することはない。そこで、常に開口している入賞口(一般入賞口2001や始動口2002、2004)への入賞の異常を判定し、報知する。
また、本実施例のパチンコ機では、賞球数が所定の条件を満たした場合にベース値を計算するので、適切なタイミングで正確なベース値を表示できる。
図46、図47に示す例では、賞球数が所定数の達したタイミングでベース値を計算するので、賞球毎にベース値を計算する場合より、ベース値の計算に要する演算量(例えば主制御MPU1311の負荷)を低減できる。なお、新たなベース値が計算されると、計算されたベース値を報知するためのベース報知コマンドが生成されて新たなベース値が報知されるが、それまでの間は従来のベース値が報知される。
図48は、ベース算出用領域更新処理(ステップS81)の別の一例を示すフローチャートである。図48に示すベース算出用領域更新処理は、アウト球数が所定の条件を満たしたタイミングでベース値を計算するために、アウト球数をアウト球数バッファに記録する(ステップS819)。なお、図48において、前述したベース算出用領域更新処理と同じ部分には同じステップ番号を付し、その詳細の説明は省略する。
まず、遊技状態が特賞中であるかを判定する(ステップS810)。特賞中であるかの判定基準は図39で説明したものと同じものを用いることができる。そして、特賞中以外の賞球数を取得し(ステップS811)、賞球があるかを判定する(ステップS812)。そして、ステップS812における判定の結果、賞球があれば、取得した賞球数を総賞球数に加算する(ステップS814)。すなわち、図48に示すベース算出用領域更新処理では、賞球数が計算される都度、ベース値の計算に用いられる総賞球数が更新される。
そして、賞球数に異常があるかを判定し(ステップS815)、賞球数に異常があれば、異常報知コマンドを生成し(ステップS816)、賞球異常報知用タイマをリセットする(ステップS817)。
その後、アウト球数を取得し(ステップS818)。取得したアウト球数をアウト球数バッファに加算する(ステップS819)。
その後、賞球異常報知用タイマがタイムアップしたかを判定し(ステップS824)、賞球異常報知用タイマがタイムアップすると、賞球異常報知停止コマンドを生成し、賞球異常報知を停止する(ステップS825)。
また、本実施例のパチンコ機では、所定の賞球数毎にベース値を計算する。このため、例えば、始動口に遊技球が入賞して、先読み演出を発生させることが決定され、保留表示の表示態様を通常とは異なる態様(点滅表示や赤色保留など)で表示する場合に、遊技者は先読みされた保留に対応する特別図柄変動表示ゲームが大当りになることを期待するが、当該特別図柄変動表示ゲームがハズレであると、遊技者は落胆する。このような場合でも、本実施例のように、所定の賞球数毎にベース値を計算すると、前述したような遊技者の落胆を低減できる。これは、賞球発生タイミングよりベース値の計算が遅延するので、始動口に入賞したことによる賞球によって高くなったベース値が報知されるためである。すなわち、始動口への入賞時に先読み演出を実行すると判定された場合でも、当該始動口への入賞時に払い出される賞球数を加算しても上述した所定数(例えば、閾値Th1=100個)に達しない場合にはベース値は更新されない。つまり、遊技者に表示されるベース値は変化していない。しかし、賞球を得られたので、ベース値は上昇するはずである(表示桁数の関係で下位の数値しか変わらず、表示は変わらない場合がある)。このため、前述した先読み演出がはずれであっても、遊技者は、後にベース値が上昇する(すなわち、調子がよい)と思い、興趣の低下が抑制できる。換言すると、先読み演出を実行すると判定された場合でも、賞球バッファ値が所定数(閾値Th1)に達していない場合にはベース値が更新されない。また、先読み演出を実行すると判定された場合で且つ賞球バッファ値が所定数に達した場合には、次に賞球バッファ値が所定数に達するまで、ベース値の計算が遅延させてもよい。
なお、ベース値の計算を遅延させるか、遅滞なく計算するかを遊技者が選択できるようにしてもよい。例えば、遊技の開始時に操作ボタン220Cによって選択できるようにする。また、抽選によって、ベース値の計算タイミングを決定してもよい。また、先読み演出を行うことが決定されると、ベース値の計算の遅延を報知可能な演出を実行するとよい。なお、特別図柄変動表示ゲームの保留記憶が上限に到達している場合、始動口に入賞しても大当たり抽選は実行されない。この場合でも、始動口への入賞に伴い賞球が払い出されるので、当該賞球数は計数され、ベース値の計算に使用される。なお、特定のエラー時に、始動口や一般入賞口に入賞しても、入賞がなかったと取り扱われて、賞球が払い出されない場合は、賞球数は計数されず、当該入賞によってはベース値は更新されない。
図49は、ベース算出・表示処理(ステップS89)の別の一例を示すフローチャートである。図49に示すベース算出・表示処理では、アウト球数が所定の条件を満たすタイミングでベース値が更新される。なお、図49において、前述したベース算出・表示処理と同じ部分には同じステップ番号を付し、その詳細の説明は省略する。
まず、アウト球数バッファに格納されているアウト球数が予め定められている閾値Th2以上であるかを判定する(ステップS895)。アウト球数バッファ値が所定の閾値Th2以上であるかの判定には様々な方法がとり得る。例えば、アウト球数と閾値Th2とを比較したり、アウト球数の格納領域の所定のビットの値で判定してもよい(具体的には、アウト球数の格納領域を8ビットで構成し、最上位ビットが1になればアウト球数が128以上であると判定できる)。またベース算出用領域更新処理(図48)でアウト球数と閾値Th2とを比較した判定結果をフラグに記録し、ベース算出・表示処理(図49)では、当該フラグによって、アウト球数が所定の閾値Th2以上であるかを判定してもよい。
そして、アウト球数バッファ値が閾値Th2より小さければ、ベース値を計算するタイミングではないので、ベース算出・表示処理を終了する。
一方、アウト球数バッファ値が閾値Th2以上であれば、総アウト球数に閾値Th2を加算し(ステップS899)、アウト球数バッファから閾値Th2を減算する(ステップS900)。なお、アウト球数バッファ値と閾値Th2とを比較せずに、所定時間(例えば、1分)毎に、ステップS899およびS900を実行してもよい。
その後、総賞球数を総アウト球数で除してベース値を計算する(ステップS903)。具体的には、総賞球数に所定数(例えば100)を乗じて除算入力レジスタA131216に格納し、総アウト球数を除算入力レジスタB131217に格納する。そして、32クロック経過後に、除算結果レジスタA131218から商を読み出して、ベース値とする。なお、総アウト球数が0である場合、ベース値を計算しても、演算回路13121からの返り値はエラーとなるので、ベース算出用領域13128に格納しなくてよい。この場合、ベース表示器1317に表示されるベース値は更新されない。
なお、総賞球数と総アウト球数は、パチンコ機1が稼働を開始したときからの累計の数値であるが、総賞球数と総アウト球数を同じタイミングで(例えば、所定の賞球数毎、所定のアウト球数毎に)初期化してもよい。
その後、ベース報知コマンドを生成し(ステップS908)、遊技者やホール従業員にベースを報知する。ベース報知コマンドは、単にベース値を報知するものでも、特定の演出でベース値を報知するものでも、ベース値の異常を報知するものでもよい。
以上に説明したように、本実施例のパチンコ機では、アウト球数(発射球数)が所定数に達する毎にベース値を更新し表示できる。このため、適切なタイミングでベース値を表示できる。また、面白さが追求された遊技機を提供できる。
また、賞球(入賞検出、払出コマンド送信、払出コマンド到達、賞球払出完了など)の都度、賞球数を総賞球数に加算する。これは、賞球数を加算する際に所定の条件を満たしているか(例えば、賞球に対応するアウト球があるか)を確認すると、ベース値を正しく計算できないおそれがあるためである。例えば、発射が所定時間(1分程度)行われなくても、遊技領域に配設された釘に遊技球が引っ掛かって生じる玉掛り(ぶどう)状態が解消し、遅れて入賞口に遊技球が入賞する場合があるからである。このため、アウト球の有無にかかわらず賞球数を更新することが望ましい。
アウト球数およびアウト球数バッファ値のいずれもが閾値Th2より小さい場合、アウト球数バッファ値が閾値Th2より小さい端数であることを表示したり、アウト球数バッファ値を表示してもよい。
図48、図49に示す例では、アウト球数が所定数の達したタイミングでベース値を計算するので、アウト球が検出される毎にベース値を計算する場合より、ベース値の計算に要する演算量(例えば主制御MPU1311の負荷)を低減できる。なお、新たなベース値が計算されると、計算されたベース値を報知するためのベース報知コマンドが生成されて新たなベース値が報知されるが、それまでの間は従来のベース値が報知される。
図50は、ベース算出用領域更新処理(ステップS81)の別の一例を示すフローチャートである。図50に示すベース算出用領域更新処理は、賞球数とアウト球数のいずれかが所定の条件を満たしたタイミングでベース値を計算するために、賞球数を賞球数バッファに記録し、アウト球数をアウト球数バッファに記録する。なお、図50において、前述したベース算出用領域更新処理と同じ部分には同じステップ番号を付し、その詳細の説明は省略する。
まず、遊技状態が特賞中であるかを判定する(ステップS810)。特賞中であるかの判定基準は図39で説明したものと同じものを用いることができる。そして、特賞中以外の賞球数を取得し(ステップS811)、賞球があるかを判定する(ステップS812)。そして、賞球があれば、取得した賞球数を賞球数バッファに加算する(ステップS813)。
そして、賞球数に異常があるかを判定し(ステップS815)、賞球数に異常があれば、異常報知コマンドを生成し(ステップS816)、賞球異常報知用タイマをリセットする(ステップS817)。
その後、アウト球数を取得し(ステップS818)、取得したアウト球数をアウト球数バッファに加算する(ステップS819)。
その後、賞球異常報知用タイマがタイムアップしたかを判定し(ステップS824)、賞球異常報知用タイマがタイムアップすると、賞球異常報知停止コマンドを生成し、賞球異常報知を停止する(ステップS825)。
図51は、ベース算出・表示処理(ステップS89)の別の一例を示すフローチャートである。図51に示すベース算出・表示処理では、賞球数とアウト球数のいずれかが所定の条件を満たすタイミングでベース値が更新される。なお、図51において、前述したベース算出・表示処理と同じ部分には同じステップ番号を付し、その詳細の説明は省略する。
まず、賞球数バッファに格納されている賞球数が予め定められている閾値Th1以上であるかを判定する(ステップS890)。賞球数バッファ値が閾値Th1より小さければ、総賞球数を更新するタイミングではないので、ステップS895に進む。一方、賞球数バッファ値が閾値Th1以上であれば、総賞球数に閾値Th1を加算し(ステップS891)、賞球数バッファから閾値Th1を減算する(ステップS892)。そして、総アウト球数にアウト球数バッファ値を加算し(ステップS893)、アウト球数バッファを0にする(ステップS894)。なお、賞球数バッファ値と閾値Th1とを比較せずに、所定回数の入賞毎や所定時間毎に、ステップS891からS894を実行してもよい。
その後、アウト球数バッファに格納されているアウト球数が予め定められている閾値Th2以上であるかを判定する(ステップS895)。アウト球数バッファ値が閾値Th2より小さければ、総アウト球数を更新するタイミングではないので、ステップS902に進む。一方、アウト球数バッファ値が閾値Th2以上であれば、総賞球数に賞球数バッファ値を加算し(ステップS897)、賞球数バッファを0にする(ステップS898)。そして、総アウト球数に閾値Th2を加算し(ステップS899)、アウト球数バッファから閾値Th2を減算する(ステップS900)。
その後、総アウト球数が0であるかを判定する(ステップS902)。総アウト球数が0であれば、ベース値を計算できないので、ベース算出・表示処理を終了する。一方、総アウト球数が0でなければ、総賞球数を総アウト球数で除してベース値を計算する(ステップS903)。具体的には、総賞球数に所定数(例えば100)を乗じて除算入力レジスタA131216に格納し、総アウト球数を除算入力レジスタB131217に格納する。そして、32クロック経過後に、除算結果レジスタA131218から商を読み出して、ベース値とする。なお、総アウト球数が0である場合、ベース値を計算しても、演算回路13121からの返り値はエラーとなるので、ベース算出用領域13128に格納しなくてよい。この場合、ベース表示器1317に表示されるベース値は更新されない。
その後、ベース報知コマンドを生成し(ステップS908)、遊技者やホール従業員にベースを報知する。ベース報知コマンドは、単にベース値を報知するものでも、ベース値の異常を報知するものでもよい。なお、ベース値を計算する毎にベース報知コマンドを生成しても、ベース値を計算してもベース報知コマンドを生成しなくてもよい。
図51に示すベース算出・表示処理では、総賞球数や総アウト球数が更新されなくても、毎回ベース値を計算している。すなわち、総賞球数および総アウト球数が更新されなければ、ベース値として同じ値が計算され、ベース値は同じ値を維持する。一方、総賞球数または総アウト球数が更新されれば、ベース値は違う値に更新される。
図52は、ベース算出用領域13128における各データを格納するためのワークエリアの具体的な構造を示す図である。
ベース算出用領域13128の総賞球数および総アウト球数のデータは、主制御MPU1311が実行するベース算出用領域更新処理およびベース算出・表示処理(図39、図46、図47、図48、図49、図51など)で書き込まれ、ベース算出・表示処理(図40、図47、図49、図51など)で読み出される。また、ベース算出用領域13128の賞球数バッファおよびアウト球数バッファのデータは、主制御MPU1311が実行するベース算出用領域更新処理(図46、図48、図50など)で書き込まれ、ベース算出・表示処理(図47、図49、図51など)で読み出される。このため、ベース算出用領域更新処理およびベース算出・表示処理をタイマ割込み処理(遊技制御プログラム)と分けて構成でき、異なる仕様の遊技機でも役物比率算出・表示処理のためのプログラムを共通化できる。
図52(A)は、最も簡単な方法のワークエリアの構造の一例を示す。図52(A)に示すワークエリアの構造では、賞球数バッファ、総賞球数、アウト球数バッファ、入賞球数バッファ、特定入賞球数バッファ、総アウト球数及びベースを格納する。賞球数バッファは、特賞中以外に遊技者に払い出された賞球数を一時的に格納し、賞球数が所定の条件を満たした場合(例えば、所定数の賞球ごと)にベースを計算するために用いられる。総賞球数は、特賞中以外に遊技者に払い出された全賞球数である。アウト球数バッファは、特賞中以外に遊技者が発射した遊技球数であり、アウト球数が所定の条件を満たした場合(例えば、所定数のアウト球ごと)にベースを計算するために用いられる。入賞球数バッファは、一般入賞口や始動口に入賞した球数を一時的に格納する。特定入賞球数バッファは、特定の一般入賞口や始動口に入賞した球数を一時的に格納する。入賞球数バッファは、アウト口通過球数によってアウト球数を計数する場合(図55、図56)に使用される。特定入賞球数バッファは、特定一般入賞口への入賞球数でアウト球数を補正する場合(図71、図72)に使用される。総アウト球数は、特賞中以外に遊技者が発射した全遊技球数である。ベースは、総賞球数÷総アウト球数×100で計算され、パーセンテージで表された数値であり、ベース算出・表示処理のステップS903で計算される。
図52(A)に示すワークエリアの構造のうち、総賞球数及び総アウト球数は、後述する図52(B)の総累計の各領域に相当し、各々3又は4バイトの記憶領域であり、10進数で16777215又は4294967295までの数値を記憶できる。これらのデータはデータに異常が生じない限り消去されないことから、長期間のデータを格納できるように大きな記憶領域を用意する。また、ベースは、後述する図52(B)のベースの総累計に相当する1バイトの記憶領域であり、10進数で255までの数値を記憶できる。なお、ベース値が小数で記録できる容量を割り当ててもよい。
図52(B)は、リングバッファを用いたワークエリアの構造の別の一例を示す。図52(B)に示すワークエリアの構造では、賞球数バッファ、総賞球数、アウト球数バッファ、入賞球数バッファ、特定入賞球数バッファ、総アウト球数及びベースを格納する。各データ項目は、図52(A)における説明と同じである。総賞球数および総アウト球数の記憶領域は、所定数の賞球毎(または、所定数のアウト球数毎、所定時間毎)にn個の記憶領域(例えば、賞球6000個毎にn=10個の記憶領域)を持つリングバッファによって構成されており、賞球数が所定数(6000個)になると全てのデータの書き込みポインタが移動して、データが更新される記憶領域が変わる。そして、n番目の記憶領域に所定数の賞球分のデータが格納された後、書き込みポインタは1番目の記憶領域に移動し、1番目の記憶領域にデータを格納する。なお、賞球数以外のデータ(アウト球数、所定時間など)が所定数となった場合に、書き込みポインタを移動してもよい。
なお、リングバッファの書き込みポインタ及び読み出しポインタは全てのデータに共通であり、所定の賞球数毎に全てのデータ列の書き込みポインタが移動する。また、書き込みポインタの移動に伴い、読み出しポインタも移動する。読み出しポインタは、書き込みポインタより一つ前の記憶領域を指す。これは、賞球6000個分の直近のデータを用いてベース値を計算するためである。
総賞球数及び総アウト球数の累計は、リングバッファのn個の記憶領域に格納されているデータの累計値であり、ベースの累計の値は総賞球数及び総アウト球数の累計値から算出された値であり、リングバッファが一巡して、新たなデータを書き込むためにリングバッファの一つの記憶領域がクリアされると、当該クリアされた領域のデータを除外して累計値が再計算される。各データの総累計は、過去に収集した全データの累計値であり、当該累計値から計算されたベースの総累計の値は各データの総累計値から算出された値であり、リングバッファが一巡して、新たなデータを書き込むためにリングバッファの一つの記憶領域がクリアされても、当該クリアされた領域の元のデータを含めて総累計値が計算される。
図52(B)に示すワークエリアの構造のうち、リングバッファ内の総賞球数、総アウト球数は、各々2バイトの記憶領域であり、10進数で65535までの数値を記憶できる。累計は賞球6000個×n(n=10の場合は60000個の賞球)分のデータの合計であることから、大きな記憶領域を用意する。総賞球数および総アウト球数の累計は、各々3又は4バイトの記憶領域であり、10進数で16777215又は4294967295までの数値を記憶できる。総累計はデータに異常が生じない限り消去されないことから、長期間のデータを格納できるように、さらに大きな記憶領域を用意する。また、ベースの累計及び総累計は、各々1バイトの記憶領域であり、10進数で255までの数値を記憶できる。なお、ベース値が小数で記録できる容量を割り当ててもよい。
図52(A)に示すデータ構造では、格納されているデータは消去されないので、所定期間(例えば、1日、1週間、1月など)毎にベース算出用領域13128のデータを消去してもよい。同様に、図52(B)の総累計を所定期間毎に消去してもよい。
また、ベース算出用領域13128のデータや、算出されたベース値が異常値である場合、当該異常値を消去してもよい。当該異常値だけでなく、ベース算出用領域13128の全データを消去してもよい。また、ベース算出用領域13128のデータや、算出されたベース値が異常であることを報知してもよい。また、チェックコードを用いてバックアップ領域のデータを検査し、正常なバックアップ領域のデータをメイン領域に複製後に、再度ベース値を計算してもよい。
[9-4.ベース値の表示]
前述したように計算されたベース値は、パチンコ機1の電源が投入されている間は表示し続けてもよいが、本体枠4が閉鎖され遊技が可能な状態では、ベース表示器1317を視認できないので、7セグメントLED13172を消灯し、遊技機の消費電力を低減してもよい。当然ながら、7セグメントLED13172の消灯中でも、ベース算出用領域更新処理(ステップS81)及びベース算出・表示処理(ステップS89)は実行される。
また、ベース表示器1317は、ベース値を常に表示しても、表示スイッチ1318の操作によってベース値を表示してもよい。例えば、押ボタンスイッチである表示スイッチ1318を押すと、ベース値の表示を開始し、所定時間表示した後に表示を消す。なお、本体枠4が外枠2から開放したことを本体枠開放スイッチ(図示省略)が検出中に表示スイッチ1318が操作されると、ベース表示器1317にベース値を表示してもよい。すなわち、本体枠4の開放中でなければ表示スイッチ1318が操作されても、ベース表示器1317は役物比率を表示しない。
また、本体枠4が開放された場合には、ベース表示器1317が正常に動作していることを確認できるように、全桁に所定の表示をするとよい。例えば、図36(B)に示すように全桁に「-」を表示したり、全セグメントを点灯してもよい。
そして本体枠4が閉鎖されると、ベース表示器1317の正常動作を確認できる所定の表示を行い(図36(E))、所定時間(例えば、30秒)経過後、7セグメントLED13172を消灯し、遊技機の消費電力を低減するとよい。このベース非表示状態は、初期設定完了後(図36(B))と同じ態様であるが、異なる態様でもよく、表示されるベース値と区別可能な態様であればよい。
ベース表示器1317を機能表示ユニット1400で兼用してもよい。機能表示ユニット1400は通常は主制御基板1310からの制御信号に基づいて遊技状況を表示するが、本体枠4が外枠2から開放したことを本体枠開放スイッチ(図示省略)が検出すると、主制御基板1310は、機能表示ユニット1400がベース値を表示するように表示を切り替える。本体枠4の開放によって機能表示ユニット1400の表示を切り替えても、遊技の進行は継続するとよい。遊技の進行を継続することによって、本体枠4が閉鎖するとベース表示から遊技状態の表示に迅速に切り替えることができる。例えば、特別図柄変動表示ゲーム中に本体枠4が開放するとベース値が表示されるが、変動時間の経過前に本体枠4が閉鎖されると、残りの時間分の変動表示を行うことができる。機能表示ユニット1400に表示される特別図柄はメイン液晶表示装置1600に表示される装飾図柄と同期しているので、機能表示ユニット1400の特別図柄変動表示が停止するタイミングで装飾図柄が停止する。このため、機能表示ユニット1400がベース値を表示しても、遊技者に違和感を与えないように構成できる。
また、本体枠4の閉鎖中でも、計算されたベース値(前述した実施例では、役物比率)をベース表示器(役物比率表示器)1317に表示してもよい。このようにすると、本体枠4を開けずにベース値(役物比率)を確認できるので、遊技機の稼働の低下を抑制できる。また、本体枠4が開放しているかの判定が不要である。また、パチンコ機が両側に設置される島設備では、片側のパチンコ機の本体枠4を開放すると、反対側に設置されたパチンコ機の裏面を見ることができる。このような遊技機において、片側のパチンコ機の本体枠4を開放することによって、背中合わせに設置された2台のパチンコ機のベース(役物比率)を確認できる。また、本体枠4の閉鎖中でもベース値を表示する場合、遊技者が認識できる形態で(例えば、特別図柄変動表示ゲームの演出を表示する表示装置や枠に取り付けられた表示装置などに)ベース値を表示するとよい。ベース値は、パチンコ機の調子を表すバロメータとして利用可能であり、遊技者が見る価値があるからである。主制御基板1310でベース値を計算する場合にはベース値を表示するための信号を主制御基板1310から周辺制御基板1510に送信すればよい。払出制御基板951でベース値を計算する場合にはベース値を表示するための信号を払出制御基板951から周辺制御基板1510に送信すればよい。また、ベース値を表示するための信号を中継基板を介して送信してもよい。
また、本実施例のパチンコ機では、省エネモードに移行してもベース表示器1317の光量(輝度)を変化させない。省エネモード中にベース表示器1317の光量を低下させると、開店時間以外にパチンコ機を調整する場合にベース表示器1317によるベース値の確認が困難になるからである。
具体的には、本実施例の遊技機は、いずれの入賞口にも遊技球が入賞せず、特別図柄変動表示ゲームの保留記憶が消化された後、所定時間が経過すると、待機状態になる。待機状態において、周辺制御部1511は、いわゆる通常変動で出力するBGMを継続して出力する。さらに、待機状態で所定時間(例えば、30秒)が経過するとデモ状態に移行する。デモ状態では、遊技機のモチーフが分かる動画を再生したり、遊技機の説明が行われたりする。さらに、デモ状態で所定時間(例えば、30秒)が経過すると省エネモードに移行する(なお、デモ状態と省エネモードとを区別しなくてもよい)。省エネモードでは、電力消費を抑制するために、周辺制御部1511が制御する液晶表示装置1600、3114、244や各種ランプの光量を低減する。しかし、主制御基板1310が制御する表示装置(機能表示ユニット1400やベース表示器1317)の消費電力は、パチンコ機全体の消費電力と比べて小さいので、これらの表示装置の光量を低減しなくてもよい。また、機能表示ユニット1400の光量を低減しなければ、空き台で遊技しようとする遊技者が前回の抽選の結果を容易に視認できる。
また、始動口や一般入賞口に遊技球が入賞しなくても、遊技球が遊技領域に向けて発射されアウト球が検出されると、表示されているベース値が再計算され更新される可能性がある。遊技球が発射されアウト球数が増加しても賞球数が増えなければ、計算されるベース値は低下するが、リベンジに燃える遊技者もいる。
このような遊技者に、ベース表示器1317を兼ねた機能表示ユニット1400で遊技の状態を報知することによって、遊技の興趣を再興できる。すなわち、デモモードや省エネモードに移行しても、ベース値が表示される表示器の表示態様をデモモードや省エネモードに移行する前の光量を維持するか、光量を上昇させて、遊技者がベース値をきちんと確認できるようにするとよい。
このようにベース値が表示される表示器の光量の維持または上昇について説明したが、消費エネルギーの低減という観点を重視して、ベース値が表示される表示器の光量を下降または消灯してもよい。例えば、省エネモード中に所定の操作(発射を強制的に停止させる発射停止ボタン、現出される演出に変化を与える操作ボタン、RAMの内容をクリアするRAMクリアボタン、遊技機への電力の供給の有無を切り替える供給調整ボタンなどの遊技機に備わる操作手段の操作)を検出すると、ベース値が表示される表示器の光量を低減するとよい。さらに、省エネモード中に限らず、前述した所定の操作を行うと、省エネモード中に消費電力を低減するランプ等とベース値が表示される表示器との両方の光量を低減したり消灯してもよい。
ランプ等とベース値が表示される表示器との両方の光量を低減や消灯する場合、ベース値が表示される表示器より先に、省エネモード中に消費電力を低減するランプ等の光量を低減したり消灯してもよく、この場合、消費電力が大きいランプ等の光量を先に低減して消費電力を大きく減少させる効果を奏する。また、ベース値が表示される表示器をランプ等より先に、ベース値が表示される表示器の光量を低減したり消灯してもよく、この場合、省エネモード中でも遊技機の華やかさを維持する効果を奏する。また、省エネモード中に消費電力を低減するランプ等とベース値が表示される表示器とを同時に低減したり消灯してもよく、この場合、消費電力の低減量を大きくでき、省エネ効果が高い。なお、これらの説明における時間の前後(「先に」や「同時に」の意味)は、内部的な処理のタイミングの順序や、遊技者からの見た目の順序も含む。
また、ベース値の表示態様を複数段階に設定し、各段階の表示態様を変えてもよい。具体的には、表示されるベース値が、30%以上、25%以上30%未満、20%以上25%未満、15%以上20%未満、10%以上15%未満、10%未満のように複数の段階に分ける。ベース値を表示する表示器をマルチカラーLEDで構成して、各段階で白、青、黄のように発光色を変えて表示してもよい。また、ベース値を表示する表示器を液晶表示装置で構成して、各段階で「調子いいね」「調子が下がってきてるよ」「やばいんじゃない」「ある意味凄いね」など、ベース値が低いときには自虐的なコメントを表示してもよい。さらに、ベース値を表示する表示器の表示態様は変えずに、装飾図柄が表示されるメイン液晶表示装置1600に前述したようなコメントを付加する演出を実行してもよい。
[9-5.アウト口通過球数を用いるベース値の計算]
次に、図53から図56を用いて、ベース算出用領域更新処理(ステップS81)、ベース算出表示処理(ステップS89)のさらなるバリエーションを説明する。図54から図56で説明する処理では、入賞球数とアウト口通過球数を用いてアウト球数を計算し、ベース値を計算する。各バリエーションにおけるベース値の計算タイミングの概要は以下の通りである。
・図54及び図40:タイマ割込み周期ごとに毎回ベース値を計算
・図55及び図56:所定賞球数ごとおよび所定アウト球数ごとにベース値を計算
なお、所定賞球数ごとにベース値を計算するパターン、所定アウト球数ごとにベース値を計算するパターンの説明は省略するが、図54から図56を組み合わせることによって実現できる。
アウト球を、アウト口1111付近に設けたアウト口通過球センサ1021で検出すると、正確なアウト球数を計数できない問題がある。これは、遊技領域5aに向けて打ち出された遊技球は、アウト口1111の他、一般入賞口2001、始動口2002、大入賞口2005、2006を経由して遊技領域5aから流出する。このため、アウト口通過球センサ1021では、遊技領域5aに向けて発射された遊技球の数を正確に計数できない。そこで、本実施例のパチンコ機では、入賞球数とアウト口通過球数を用いて正確にアウト球数を計算し、ベース値を正確に計算する。
図53は、遊技盤の別の一例を示す正面図である。
本実施例のパチンコ機の遊技盤は、図10に示す遊技盤と概ね同じ構造であるが、遊技領域5aの下部に設けられアウト口1111を通過して遊技領域5aから流出する遊技球(アウト口通過球数)を検出するアウト口通過球センサ1021を設ける。アウト口通過球センサ1021は、遊技者がアウト口1111を通して見える位置に設置するとよい。遊技者がアウト口1111を通して見える位置にアウト口通過球センサ1021を設置することによって、アウト球が計数されていること、すなわち、ベースが計算されていることを意識させることができる。
また、アウト口通過球センサ1021を、遊技領域5aからアウト口1111を通過して流下する遊技球が整列する集合樋など、遊技者から見ない位置に設置してもよい。遊技者が視認不可能な位置に設置すると、アウト球の計数を遊技者に意識させなくてよい。また、アウト口通過球センサ1021をアウト口1111の奥側に設けることによって、液晶表示装置や役物(可動体)を配置する場所を十分に確保でき、遊技盤5の設計の自由度を向上できる。また、遊技球の二重カウントを防止するため、アウト口通過球センサ1021を通過した遊技球が跳ね返らないように、アウト口通過球センサ1021を通過した遊技球が転動する転動面に傾斜をつけたり、曲面にするとよい。
図54は、ベース算出用領域更新処理(ステップS81)の別の一例を示すフローチャートである。図54に示すベース算出用領域更新処理は、タイマ割込み周期ごとにアウト口通過球数を用いてベース値を計算するために、賞球数、アウト口通過球数および入賞球数を取得する。なお、図54において、前述したベース算出用領域更新処理と同じ部分には同じステップ番号を付し、その詳細の説明は省略する。
まず、遊技状態が特賞中であるかを判定する(ステップS810)。特賞中であるかの判定基準は図39で説明したものと同じものを用いることができる。そして、特賞中以外の賞球数を取得し(ステップS811)、取得した賞球数を総賞球数に加算する(ステップS814)。すなわち、図54に示すベース算出用領域更新処理では、賞球数が計算される都度、ベース値の計算に用いられる総賞球数が更新される。なお、賞球があるかを判定し、賞球がなければ、総賞球数を更新する処理をスキップしてもよい。
その後、アウト口通過球数を取得し(ステップS818)、入賞球数を取得する(ステップS820)。そして、アウト口通過球数と入賞球数の和を総アウト球数に加算する(ステップS822)。すなわち、図54に示すベース算出用領域更新処理では、アウト球や入賞球が検出される都度、ベース値の計算に用いられる総アウト球数が更新される。
なお、前述したベース算出用領域更新処理(図46)のステップS815からS817のように、賞球数に異常があるかを判定し、賞球数に異常があれば、異常報知コマンドを生成し、賞球異常報知用タイマをリセットしてもよい。さらに、図46のステップS824からS825のように、賞球異常報知用タイマがタイムアップしたかを判定し、賞球異常報知用タイマがタイムアップすると、賞球異常報知停止コマンドを生成し、賞球異常報知を停止してもよい。
図54に示すベース算出用領域更新処理で総賞球数および総アウト球数を記録した後、図40に示すベース算出・表示処理によってベース値を計算できる。
図55は、ベース算出用領域更新処理(ステップS81)の別の一例を示すフローチャートである。図55に示すベース算出用領域更新処理は、賞球数とアウト球数のいずれかが所定の条件を満たしたタイミングでベース値を計算するために、賞球数を賞球数バッファに記録し、アウト口通過球数をアウト球数バッファに記録し、入賞球数を入賞球数バッファに記録する。なお、図55において、前述したベース算出用領域更新処理と同じ部分には同じステップ番号を付し、その詳細の説明は省略する。
まず、遊技状態が特賞中であるかを判定する(ステップS810)。特賞中であるかの判定基準は図39で説明したものと同じものを用いることができる。そして、特賞中以外の賞球数を取得し(ステップS811)、賞球があるかを判定する(ステップS812)。そして、賞球があれば、取得した賞球数を賞球数バッファに加算する(ステップS813)。
そして、賞球数に異常があるかを判定し(ステップS815)、賞球数に異常があれば、異常報知コマンドを生成し(ステップS816)、賞球異常報知用タイマをリセットする(ステップS817)。
その後、アウト口通過球数を取得し(ステップS818)、取得したアウト口通過球数をアウト球数バッファに加算する(ステップS819)。そして、入賞球数を取得し(ステップS820)、取得した入賞球数を入賞球数バッファに加算する(ステップS821)。
その後、賞球異常報知用タイマがタイムアップしたかを判定し(ステップS824)、賞球異常報知用タイマがタイムアップすると、賞球異常報知停止コマンドを生成し、賞球異常報知を停止する(ステップS825)。
図54に示すベース算出用領域更新処理では、取得したアウト口通過球数と入賞球数の和を一つの記憶領域(総アウト球数)に加算し、図55に示すベース算出用領域更新処理では、取得したアウト口通過球数と入賞球数を、別の記憶領域(アウト球数バッファ、入賞球数バッファ)に加算する。このように、アウト口通過球数と入賞球数を一つの記憶領域に記録しても、別の記憶領域に記録してもよい。
また、図55に示すベース算出用領域更新処理で、取得したアウト口通過球数と入賞球数を別の記憶領域に記録する場合、入賞口に入賞したときにアウト球数が1増えるので、アウト口通過球数の計数と入賞球数の計数が同時に(一つのタイマ割込み処理内で)実行されるが、アウト球数バッファと入賞球数バッファの両方を更新した後にベース値を計算する。その際、一つのタイマ割込み処理内でアウト球数バッファと入賞球数バッファの両方を更新できない場合に、アウト口通過球数を優先して計数するか、入賞球数を優先して計数するかを、適宜抽選によって決定するのではなく、予め定めておいたほうがよい。その際、賞球に関する処理を他の処理より優先すると、賞球の払出処理を迅速に実行できるが、遊技機の仕様に応じて適宜決定すればよい。
図56は、ベース算出・表示処理(ステップS89)の別の一例を示すフローチャートである。図56に示すベース算出・表示処理では、賞球数とアウト球数のいずれかが所定の条件を満たすタイミングでベース値が更新される。なお、図56において、前述したベース算出・表示処理と同じ部分には同じステップ番号を付し、その詳細の説明は省略する。
まず、賞球数バッファに格納されている賞球数が予め定められている閾値Th1以上であるかを判定する(ステップS890)。賞球数バッファ値が閾値Th1より小さければ、総賞球数を更新するタイミングではないので、ステップS896に進む。一方、賞球数バッファ値が閾値Th1以上であれば、総賞球数に閾値Th1を加算し(ステップS891)、賞球数バッファから閾値Th1を減算する(ステップS892)。そして、総アウト球数にアウト球数バッファ値を加算し(ステップS893)、アウト球数バッファを0にする(ステップS894)。なお、賞球数バッファ値と閾値Th1とを比較せずに、所定回数の入賞毎や所定時間毎に、ステップS891からS894を実行してもよい。
その後、アウト球数バッファに格納されているアウト口通過球数と入賞球数バッファに格納されている入賞球数との和が予め定められている閾値Th2以上であるかを判定する(ステップS896)。アウト口通過球数と入賞球数の合計が遊技領域に流入した遊技球の数でありアウト球数となる。判定の結果、計算されたアウト球数が閾値Th2より小さければ、総アウト球数を更新するタイミングではないので、ステップS902に進む。一方、計算されたアウト球数が閾値Th2以上であれば、総賞球数に賞球数バッファ値を加算し(ステップS897)、賞球数バッファを0にする(ステップS898)。そして、総アウト球数に閾値Th2を加算し(ステップS899)、入賞球数バッファを0に設定し、アウト球数バッファに入賞球数バッファ値を加算し、閾値Th2を減算する(ステップS901)。なお、アウト球数(アウト球数バッファ値+入賞球数バッファ値)と閾値Th2とを比較せずに、所定回数の入賞毎や所定時間毎に、ステップS896からS901を実行してもよい。
その後、総アウト球数が0であるかを判定する(ステップS902)。総アウト球数が0であれば、ベース値を計算できないので、ベース算出・表示処理を終了する。一方、総アウト球数が0でなければ、総賞球数を総アウト球数で除してベース値を計算する(ステップS903)。具体的には、総賞球数に所定数(例えば100)を乗じて除算入力レジスタA131216に格納し、総アウト球数を除算入力レジスタB131217に格納する。そして、32クロック経過後に、除算結果レジスタA131218から商を読み出して、ベース値とする。なお、総アウト球数が0である場合、ベース値を計算しても、演算回路13121からの返り値はエラーとなるので、ベース算出用領域13128に格納しなくてよい。この場合、ベース表示器1317に表示されるベース値は更新されない。
その後、ベース報知コマンドを生成し(ステップS908)、遊技者やホール従業員にベースを報知する。
図56に示すベース算出・表示処理では、総賞球数や総アウト球数が更新されなくても、毎回ベース値を計算している。すなわち、総賞球数および総アウト球数が更新されなければ、ベース値として同じ値が計算され、ベース値は同じ値を維持する。一方、総賞球数または総アウト球数が更新されれば、ベース値は違う値に更新される。
以上に説明したように本実施例のパチンコ機では、アウト口通過球数に入賞球数を加算してアウト球数を計算するので、アウト球数を正確に計数し、ベース値を正確に計算できる。さらに、遊技機の製造工程や検査工程において、ベース値を確認することによって、入賞口スイッチ、ベース表示器1317およびベース値を計算する処理が正常かを確認できる。
[9-6.ベースの異常の報知]
以上に説明した処理は、計算されたベース値を報知するためのコマンドを生成するものであるが、次に、ベース値の異常を判定し、該異常を報知する処理を説明する。
・図57:タイマ割込み周期ごとに毎回ベース値を計算
・図58:所定賞球数ごとおよび所定アウト球数ごとにベース値を計算
なお、所定賞球数ごとにベース値を計算するパターン、所定アウト球数ごとにベース値を計算するパターンの説明は省略するが、図57と図58を組み合わせることによって実現できる。
図57は、ベース算出・表示処理(ステップS89)の別の一例を示すフローチャートである。図57に示すベース算出・表示処理では、毎回(タイマ割込み周期ごと)にベース値を計算する。
まず、総アウト球数が0であるかを判定する(ステップS902)。総アウト球数が0であれば、ベース値を計算できないので、ベース値を計算せず、ベース算出・表示処理を終了する。一方、総アウト球数が0でなければ、総賞球数を総アウト球数で除してベース値を計算する(ステップS903)。具体的には、総賞球数に所定数(例えば100)を乗じて除算入力レジスタA131216に格納し、総アウト球数を除算入力レジスタB131217に格納する。そして、32クロック経過後に、除算結果レジスタA131218から商を読み出して、ベース値とする。なお、総アウト球数が0である場合、ベース値を計算しても、演算回路13121からの返り値はエラーとなるので、ベース算出用領域13128に格納しなくてよい。この場合、ベース表示器1317に表示されるベース値は更新されない。
その後、計算されたベース値が異常であるかを判定する(ステップS907)。ベース値の異常とは、例えば、計算されたベース値が設計値(正常値)から所定の許容範囲を超えて大きくまたは小さくなった場合などである。なお、複数段階の許容範囲を設けてベース値の乖離の程度によって異常の程度を複数段階で判定してもよい。そして、ベース値が異常であれば、ベース報知コマンドを生成し(ステップS908)、遊技者やホール従業員にベースを報知する。一方、ベース値が異常でなければ、ベース算出・表示処理を終了する。ベースの異常を報知する方法は、前述したベースの報知と同じ方法を採用できる。
例えば、以下に説明する方法の一つでも、二つ以上を組み合わせてもよい。具体的には、ベース表示器(7セグメントLED)1317、液晶表示装置1600、3114、244などでベース値の異常を報知してもよい。遊技者にベース値の異常を報知すると、遊技者がパチンコ機の異常を確認できてよい。計算されたベース値をパーセンテージ表記として、前述した表示器や表示装置に表示して、ベース値の異常を報知してもよい。なお、小数点以下の値は切り捨て、四捨五入、切り上げのいずれでもよいし、液晶表示装置1600、3114、244など画像を表示可能な表示装置では、小数点以下第1位まで表示し、より詳細に表示してもよい。
また、液晶表示装置1600、3114、244にベース値を表示する場合、ベース値が異常である場合は、表示態様を変更するとよい。例えば、数値を点滅させたり、色を変えたり(通常時は緑色で、異常時は赤色など)して表示する。さらに、複数段階でベース値の表示態様を変えてもよい。具体的には、表示されるベース値が、30%以上、25%以上30%未満、20%以上25%未満、15%以上20%未満、10%以上15%未満、10%未満のように複数の段階に分けて、各段階で白、青、黄のように発光色を変えて表示してもよい。
また、各種ランプ、液晶表示装置、音などでベース値がどの範囲にあるか(ベース値が高いのか低いのか、異常値か正常値か、など)を報知してもよい。機能表示ユニット1400でベース値の異常を報知してもよい。また、外部端子板784から遊技場に設置されたホールコンピュータにベースの異常の情報を出力してもよい。
なお、図57に示すベース算出・表示処理は、例えば、図50、図55に示すような、賞球数やアウト球数が所定の条件を満たすタイミングで総賞球数や総アウト球数を更新するベース算出用領域更新処理と組み合わせて使用するとよい。
図58は、ベース算出・表示処理(ステップS89)の別の一例を示すフローチャートである。図58に示すベース算出・表示処理では、賞球数とアウト球数のいずれかが所定の条件を満たすタイミングでベース値が更新される。なお、図58において、前述したベース算出・表示処理と同じ部分には同じステップ番号を付し、その詳細の説明は省略する。
まず、賞球数バッファに格納されている賞球数が予め定められている閾値Th1以上であるかを判定する(ステップS890)。賞球数バッファ値が閾値Th1より小さければ、総賞球数を更新するタイミングではないので、ステップS895に進む。一方、賞球数バッファ値が閾値Th1以上であれば、総賞球数に閾値Th1を加算し(ステップS891)、賞球数バッファから閾値Th1を減算する(ステップS892)。そして、総アウト球数にアウト球数バッファ値を加算し(ステップS893)、アウト球数バッファを0にする(ステップS894)。なお、賞球数バッファ値と閾値Th1とを比較せずに、所定回数の入賞毎や所定時間毎に、ステップS891からS894を実行してもよい。
その後、アウト球数バッファに格納されているアウト球数が予め定められている閾値Th2以上であるかを判定する(ステップS895)。アウト球数バッファ値が閾値Th2より小さければ、総アウト球数を更新するタイミングではないので、ステップS902に進む。一方、アウト球数バッファ値が閾値Th2以上であれば、総賞球数に賞球数バッファ値を加算し(ステップS897)、賞球数バッファを0にする(ステップS898)。そして、総アウト球数に閾値Th2を加算し(ステップS899)、アウト球数バッファから閾値Th2を減算する(ステップS900)。
その後、総アウト球数が0であるかを判定する(ステップS902)。総アウト球数が0であれば、ベース値を計算できないので、ベース算出・表示処理を終了する。一方、総アウト球数が0でなければ、総賞球数を総アウト球数で除してベース値を計算する(ステップS903)。具体的には、総賞球数に所定数(例えば100)を乗じて除算入力レジスタA131216に格納し、総アウト球数を除算入力レジスタB131217に格納する。そして、32クロック経過後に、除算結果レジスタA131218から商を読み出して、ベース値とする。なお、総アウト球数が0である場合、ベース値を計算しても、演算回路13121からの返り値はエラーとなるので、ベース算出用領域13128に格納しなくてよい。この場合、ベース表示器1317に表示されるベース値は更新されない。
その後、計算されたベース値が異常であるかを判定する(ステップS907)。ベース値の異常とは、例えば、計算されたベース値が設計値(正常値)から所定の許容範囲を超えて大きくまたは小さくなった場合などである。なお、複数段階の許容範囲を設けてベース値の乖離の程度によって異常の程度を複数段階で判定してもよい。そして、ベース値が異常であれば、ベース報知コマンドを生成し(ステップS908)、遊技者やホール従業員にベースを報知する。一方、ベース値が異常でなければ、ベース算出・表示処理を終了する。
図58に示すベース算出・表示処理では、総賞球数や総アウト球数が更新されなくても、毎回ベース値を計算している。すなわち、総賞球数および総アウト球数が更新されなければ、ベース値として同じ値が計算され、ベース値は同じ値を維持する。一方、総賞球数または総アウト球数が更新されれば、ベース値は違う値に更新される。
なお、図58に示すベース算出・表示処理は、例えば、図39や図54に示すように、取得した賞球数やアウト球数を用いて直接、総賞球数や総アウト球数を更新するベース算出用領域更新処理と組み合わせて使用するとよい。
以上に説明したように、本実施例のパチンコ機では、計算されたベース値が異常である場合に当該異常を報知するので、遊技者は遊技機の状態を知ることができ、ホール従業員は遊技機への不正な操作の可能性を知ることができる。また、従来のエラー検出では発見できない遊技機の異常を検出し報知できる。
[9-7.ベースの変化の報知]
次に、計算されたベース値の変化を報知する遊技機の実施例を説明する。
パチンコ機で計算されるベース値は、当然ながら上下する。ベース値は遊技機の調子を表すため、遊技中の遊技者はベース値そのものの他、ベース値の変化を気にする。このため、遊技者へのベース値の変化の報知が望まれる。ベース値の上下の目安となる表示が出現すると、遊技者は安心して遊技を行うことができる。
図59は、ベース算出・表示処理(ステップS89)の別の一例を示すフローチャートである。図59に示すベース算出・表示処理では、現在のベース値と過去のベース値の履歴とを比較するために、計算されたベース値の履歴を記録する。なお、図59において、前述したベース算出・表示処理と同じ部分には同じステップ番号を付し、その詳細の説明は省略する。
まず、賞球数バッファに格納されている賞球数が予め定められている閾値Th1以上であるかを判定する(ステップS890)。賞球数バッファ値が閾値Th1より小さければ、総賞球数を更新するタイミングではないので、ステップS895に進む。一方、賞球数バッファ値が閾値Th1以上であれば、総賞球数に閾値Th1を加算し(ステップS891)、賞球数バッファから閾値Th1を減算する(ステップS892)。そして、総アウト球数にアウト球数バッファ値を加算し(ステップS893)、アウト球数バッファを0にする(ステップS894)。なお、賞球数バッファ値と閾値Th1とを比較せずに、所定回数の入賞毎や所定時間毎に、ステップS891からS894を実行してもよい。
その後、アウト球数バッファに格納されているアウト球数が予め定められている閾値Th2以上であるかを判定する(ステップS895)。アウト球数バッファ値が閾値Th2より小さければ、総アウト球数を更新するタイミングではないので、ステップS902に進む。一方、アウト球数バッファ値が閾値Th2以上であれば、総賞球数に賞球数バッファ値を加算し(ステップS897)、賞球数バッファを0にする(ステップS898)。そして、総アウト球数に閾値Th2を加算し(ステップS899)、アウト球数バッファから閾値Th2を減算する(ステップS900)。
その後、総アウト球数が0であるかを判定する(ステップS902)。総アウト球数が0であれば、ベース値を計算できないので、ベース算出・表示処理を終了する。一方、総アウト球数が0でなければ、総賞球数を総アウト球数で除してベース値を計算する(ステップS903)。具体的には、総賞球数に所定数(例えば100)を乗じて除算入力レジスタA131216に格納し、総アウト球数を除算入力レジスタB131217に格納する。そして、32クロック経過後に、除算結果レジスタA131218から商を読み出して、ベース値とする。なお、総アウト球数が0である場合、ベース値を計算しても、演算回路13121からの返り値はエラーとなるので、ベース算出用領域13128に格納しなくてよい。この場合、ベース表示器1317に表示されるベース値は更新されない。
その後、ベース値管理タイマがタイムアップしたかを判定する(ステップS904)。ベース値管理タイマがタイムアップしていなければ、ベース値をベース履歴に格納するタイミングではないので、ベース算出・表示処理を終了する。一方、ベース値管理タイマがタイムアップしていれば、ベース値をベース履歴に格納し(ステップS905)、ベース値管理タイマをリセットする(ステップS906)。
ベース値管理タイマは、所定時間(例えば、10分)毎にベース値を記録するために使用されるタイマで、ベース値管理タイマがタイムアップする毎に現在のベース値をベース履歴に格納する。ベース履歴は、ベース算出用領域13128に格納される。ベース履歴は、一つのみをベース算出用領域13128に格納しても、複数をベース算出用領域13128に格納してもよい。複数のベース履歴をベース算出用領域13128に格納する場合、ベース算出用領域13128にリングバッファを構成し、例えば所定時間×10個のベース値を格納してもよい。また、図52に示すように、ベース算出用領域13128に総賞球数と総アウト球数のリングバッファを構成し、例えば所定時間×n個の賞球数と総アウト球数を格納し、必要に応じてベース値を計算してもよい。
その後、ベース報知コマンドを生成し(ステップS908)、遊技者やホール従業員にベースを報知する。
図63は、表示選択処理の一例を示すフローチャートである。表示選択処理は、周辺制御部電源投入時処理(図60)の表示データ作成処理(ステップS1030)から呼び出される。
まず、周辺制御部1511のMPUは、ベース算出用領域13128に格納された特定のベース履歴(例えば、直近の過去のベース値)を選択し、選択されたベース履歴値が現在のベース値より小さいかを判定する(ステップS10301)。その結果、選択されたベース履歴値が現在のベース値より小さければ、ベース低下継続時間計測タイマを参照し、ベース値の低下開始から所定時間(例えば、30秒)が経過しているかを判定する(ステップS10302)。そして、ベースの低下開始から所定時間が経過していなければ、ベース低下中の演出テーブルを選択する(ステップS10303)。一方、ベースの低下開始から所定時間が経過していれば、ベース低下継続中の演出テーブルを選択する(ステップS10304)。
一方、選択されたベース履歴値が現在のベース値より小さくなければ(等しいまたは大きい)、ベース低下継続時間計測タイマをリセットし(ステップS10305)、ベース上昇中の表示選択テーブルを選択する(ステップS10306)。
以上に説明した表示選択処理では、ステップS10301において、現在のベース値がベース履歴値より小さいかを判定したが、現在のベース値とベース履歴値とを比較して、大きい、等しい、小さいを判定してもよい。ベース値は除算で求まることから一般的に小数値である。このため、所定の許容範囲(例えば、3%)を考慮してベース履歴値と現在のベース値とが等しいかを判定するとよい。
図64から図68は、表示選択テーブルの一例を示す図である。これらの表示選択テーブルは、始動口への入賞を契機として(または、特別図柄変動表示ゲームの開始前に)選択された乱数によって、特別図柄変動表示ゲームの演出を選択するために用いられる。図64から図66に示す表示選択テーブル1はベース値の上昇中またはベース値に変化がない場合に選択され、図67、図68に示す表示選択テーブル2、3は、ベース値の低下中に選択される。特に、図68に示す表示選択テーブル3は、ベース値が低下し始めてから所定時間(例えば30秒)の経過後に選択される。
各表示選択テーブルは、演出番号、演出内容、変動時間、備考、振り分けの各項目を含む。演出番号は、表示選択テーブルで選択される演出を一意に識別するための識別子である。演出内容は、当該演出の名称である。変動時間は、当該演出により特別図柄の変動が開始してから終了するまでの時間である。備考は、当該演出の概要を設計者が理解可能なように記載した情報である。振り分けは、当該演出が選択される確率であり、65536を分母とした分子で定義されている。
図64に示す表示選択テーブル1(はずれ)は、大当り抽選の結果がはずれであって、ベース値の上昇中または変化がない場合に選択される、図65に示す表示選択テーブル1(当たり1)は、大当り抽選の結果が確変状態を導出しない通常大当りであって、ベース値の上昇中または変化がない場合に選択される。図66に示す表示選択テーブル1(当たり2)は、大当り抽選の結果が確変状態を導出する確変大当りであって、ベース値の上昇中または変化がない場合に選択される。
図67に示す表示選択テーブル2は、ベース値の低下中に選択される。また、図68に示す表示選択テーブル3は、ベース値が低下し始めてから所定時間(例えば30秒)が経過しても、ベース値が低下している場合に選択される。
図示するように、表示選択テーブル2、3には、図柄が変動しない演出であるフリーズ演出1、2が含まれており、高い確率でフリーズ演出が選択される。フリーズ演出は、演出決定後所定時間(例えば5秒)が経過すると表示される。
また、ベース値が低下し始めてから所定時間(例えば30秒)が経過しても、ベース値が低下している場合には、表示選択テーブル3を用いて演出を選択し、選択された演出に切り替えてもよい。
また、ベース値の変化を報知する特定の演出を表示するかを、遊技状態(遊技状況)に応じて決定してもよい。これは、ベース値の変化を遊技者に常時報知すると、パチンコ機の本来の楽しみである特別図柄変動表示ゲームの演出に対する遊技者の注意が疎かになり、遊技者の意識が分散する可能性があるためである。
例えば、特別図柄変動表示ゲームの実行中(大当たり抽選の結果が示されていない遊技状況)においては、特別図柄変動表示ゲームの演出を優先して実行し、変動中でないときは、ベース値の上昇時または下降時に特定の演出(ベース値の変化の目安となる演出)を表示するとよい。
当該特定の演出は、特別図柄変動表示ゲームが実行されない時間が所定時間継続したタイミングで表示するとよい。こでは、当該特定の演出を特別図柄変動表示ゲーム終了後直ちに表示すると、遊技者の緊張感が持続し、疲労が蓄積されるからである。当該特定の演出が表示されている状態で、始動口に遊技球が入賞すると、当該特定の演出の表示を中止して、特別図柄変動表示ゲームの演出を実行する。これは、始動口への入賞を契機に、大当たり抽選が行われ、特別図柄変動表示ゲームが開始するので、遊技者を特別図柄変動表示ゲームに注視させる方がよいためである。
当該特定の演出は、賞球数が所定数(閾値Th1)に達していない状況、または、アウト球数が所定数(閾値Th2)に達していない状況でも表示されるとよい。また、当該特定の演出を抽選の結果に応じて表示してもよいが、同一条件を満たせば必ず実行されるようにしてもよい。
また、当該特定の演出は、ベース値の上昇時には表示せず、ベース値の下降時にのみ表示するとよい。これは、ベース値の上昇を遊技者に報知すると、遊技者の期待が高まり、遊技者が期待する程度にベース値が上昇しなければ、期待とのギャップによって、遊技者は落胆する可能性がある。一方、ベース値の下降を遊技者に報知すると、ベース値を上昇させるべく闘争心を高める遊技者もいるためである。
また、本実施例では、ベース値の低下中とそれ以外(上昇中、定常中)で表示選択テーブルを変えたが、ベース値の低下中と定常中と上昇中との3状態に分けて表示選択テーブルを定義して、ベースの上昇中を遊技者に報知してもよい。この場合、所定の許容範囲(例えば、3%)を考慮してベース値が定常中か(ベース履歴値と現在のベース値とが等しいか)を判定するとよい。
また、当該特定の演出を特別図柄変動表示ゲーム中に表示してもよい。この場合、特別図柄変動表示ゲーム中に表示されたときより、特別図柄変動表示ゲーム中以外で表示されたときの方が、ベース値が下降するする可能性が高くなっている。
なお、始動口へ遊技球が入賞せず、特別図柄変動表示ゲームが行われない状態では、通常、ベース値は低下する。また、特別図柄変動表示ゲームが所定時間行われなければ、メイン液晶表示装置1600にはデモ画面が表示される。
図69は、本実施例のパチンコ機の表示画面の一例を示す図である。
図69(A)は、ノーマルリーチの表示例であり、左図柄と右図柄とが7で停止しており、中図柄が変動している。図69(B)は、スペシャルリーチ1の表示例であり、画面左上に表示される左図柄と右図柄とが7で停止しており、中図柄が変動している。画面中央部では、遊技者と相手がじゃんけんで対戦しており、じゃんけんの結果によって中図柄が決定される。図69(C)は、スペシャルリーチ2の表示例であり、画面左上に表示される左図柄と右図柄とが7で停止しており、中図柄が変動している。画面中央部では、遊技者と相手が対戦しており、対戦の結果によって中図柄が決定される。
図69(D)は、フリーズ演出1の表示例であり、停止した装飾図柄が画面中央部に表示されており、装飾図柄の認識を邪魔しない位置(例えば、画面右下部)にベース値の低下を認識可能な表示をする。図69(E)は、フリーズ演出2の表示例であり、停止した装飾図柄が画面中央部に表示されており、装飾図柄の認識を邪魔しない位置(例えば、画面下部)にベース値の低下の継続を認識可能な表示をする。フリーズ演出において、ベース値の低下を示す表示は装飾図柄の認識を邪魔しない位置であれば任意の位置でよい。また、ベース値の低下を示す表示は装飾図柄と重なる位置に表示してもよい。例えば、表示画面の中央にポップアップする表示でもよい。
以上にベース値の変化の程度をメイン液晶表示装置1600に表示する例を説明したが、装飾ランプの点灯態様を変更してもよい。また、ベース値の上下の傾向ではなく、ベース値の変化を数値で表示してもよい。
表示されるベース値の変化は、所定時間前の時間区間で計算されたベース値と現在の時間区間で計算されたベース値との比較結果でも、所定時間前に計算されたベース値の総累計と最新のベース値の総累計との比較結果でもよい。
[9-8.特定の一般入賞口を考慮したベースの計算]
次に、特定の一般入賞口への入賞を考慮してベース値を正確に計算する処理を説明する。
パチンコ機では、遊技者は、大当たり中に遊技球が入賞しやすい状態となった特定の入賞口(例えば、開放状態となった大入賞口2005、2006)への入賞を狙って、遊技球の発射の強さを調整する。大当り中でも、いわゆる通常打ちと同じ箇所を狙って遊技球を発射させて大入賞口2005を狙ったり、発射の強さを最大まで強めた、いわゆる右打ちによって大入賞口2006を狙ったりする遊技のバリエーションがある。このようなバリエーションがある中で、大入賞口の下流に始動口や一般入賞口を配置して、大入賞口からこぼれた球を拾うように遊技盤を設計することがある。
ここで、大当り中に右打ちさせるパチンコ機における、下流(下部)について詳しく説明する。大当り中には開放した大入賞口に遊技球を入賞させるため、遊技者は右打ちを行う。遊技領域に向けて発射された遊技球の多くは開放中の大入賞口2006に入賞する。前述したように、本実施例のパチンコ機は、図10や図16に示すように、大入賞口2005の右側に一般入賞口2001が設けられており、右打ちをした遊技球が開放中の大入賞口2006に入賞しなかったときに、この一般入賞口2001に入賞する。すなわち、大入賞口2005の右側の一般入賞口2001は、右打ちをした遊技球が開放中の大入賞口2006に入賞しなかったときにのみ入賞するといえる。
ベース値は100発の遊技球を遊技領域5aに向けて発射したときに、始動口および一般入賞口への入賞によって払い出された賞球数(すなわち、100個のアウト球数に対して払い出された賞球数の割合)を示すため、遊技領域に流入したが始動口および一般入賞口に入賞する可能性が低い(大入賞口に入賞する可能性が高い)遊技球を発射球数(アウト球数)に計数すると、ベース値として計算したときに、実際のベース値と乖離することが想定される。
このため、本実施例では、大入賞口2005の右側の一般入賞口2001を特定の一般入賞口と定義し、特賞中に該特定の一般入賞口に入賞した球数をアウト球数から除外してベース値を計算する。
特定の一般入賞口を考慮してベース値を計算する遊技機の各バリエーションにおけるベース値の計算タイミングの概要は以下の通りである。
・図70及び図40:タイマ割込み周期ごとに毎回ベース値を計算
・図71及び図72:所定賞球数ごとおよび所定アウト球数ごとにベース値を計算
なお、所定賞球数ごとにベース値を計算するパターン、所定アウト球数ごとにベース値を計算するパターンの説明は省略するが、図70から図72を組み合わせることによって実現できる。
図70は、ベース算出用領域更新処理(ステップS81)の別の一例を示すフローチャートである。図70に示すベース算出用領域更新処理は、タイマ割込み周期ごとに特定の一般入賞口への入賞球数で補正されたアウト球数を用いてベース値を計算するために、賞球数、アウト球数および特定入賞球数を取得する。なお、図70において、前述したベース算出用領域更新処理と同じ部分には同じステップ番号を付し、その詳細の説明は省略する。
まず、遊技状態が特賞中であるかを判定する(ステップS810)。特賞中であるかの判定基準は図39で説明したものと同じものを用いることができる。そして、特賞中以外の賞球数を取得し(ステップS811)、取得した賞球数を総賞球数に加算する(ステップS814)。すなわち、図70に示すベース算出用領域更新処理では、賞球数が計算される都度、ベース値の計算に用いられる総賞球数が更新される。なお、賞球があるかを判定し、賞球がなければ、総賞球数を更新する処理をスキップしてもよい。
その後、アウト球数を取得し(ステップS818)、特定の一般入賞口への入賞球数(特定入賞球数)を取得する(ステップS820)。そして、アウト球数から特定入賞球数を減じた値を総アウト球数に加算する(ステップS822)。すなわち、図70に示すベース算出用領域更新処理では、アウト球や入賞球が検出される都度、ベース値の計算に用いられる総アウト球数が更新される。
なお、前述したベース算出用領域更新処理(図46)のステップS815からS817のように、賞球数に異常があるかを判定し、賞球数に異常があれば、異常報知コマンドを生成し、賞球異常報知用タイマをリセットしてもよい。さらに、図46のステップS824からS825のように、賞球異常報知用タイマがタイムアップしたかを判定し、賞球異常報知用タイマがタイムアップすると、賞球異常報知停止コマンドを生成し、賞球異常報知を停止してもよい。
図70に示すベース算出用領域更新処理で総賞球数および総アウト球数を記録した後、図40に示すベース算出・表示処理によってベース値を計算できる。
図71は、ベース算出用領域更新処理(ステップS81)の別の一例を示すフローチャートである。図71に示すベース算出用領域更新処理は、賞球数とアウト球数が所定の条件を満たしたタイミングでベース値を計算するために、賞球数を賞球数バッファに記録し、アウト球数をアウト球数バッファに記録する。なお、図71において、前述したベース算出用領域更新処理と同じ部分には同じステップ番号を付し、その詳細の説明は省略する。
まず、遊技状態が特賞中であるかを判定する(ステップS810)。特賞中であるかの判定基準は図39で説明したものと同じものを用いることができる。そして、特賞中以外の賞球数を取得し(ステップS811)、賞球があるかを判定する(ステップS812)。そして、賞球があれば、取得した賞球数を賞球数バッファに加算する(ステップS813)。
そして、賞球数に異常があるかを判定し(ステップS815)、賞球数に異常があれば、異常報知コマンドを生成し(ステップS816)、賞球異常報知用タイマをリセットする(ステップS817)。
その後、アウト球数を取得し(ステップS818)、取得したアウト球数をアウト球数バッファに加算する(ステップS819)。そして、入賞球数を取得し、取得した入賞球数にかかる入賞口が特定の一般入賞口であるかを判定し、特定の一般入賞口への入賞球数を取得する(ステップS820)。そして、取得した特定の一般入賞口への入賞球数を特定入賞球数バッファに加算する(ステップS823)。
その後、賞球異常報知用タイマがタイムアップしたかを判定し(ステップS824)、賞球異常報知用タイマがタイムアップすると、賞球異常報知停止コマンドを生成し、賞球異常報知を停止する(ステップS825)。
図72は、ベース算出・表示処理(ステップS89)の別の一例を示すフローチャートである。図72に示すベース算出・表示処理では、特定入賞球数バッファに記録された特定入賞球数を考慮してベース値を計算する。なお、図72において、前述したベース算出・表示処理と同じ部分には同じステップ番号を付し、その詳細の説明は省略する。
まず、賞球数バッファに格納されている賞球数が予め定められている閾値Th1以上であるかを判定する(ステップS890)。賞球数バッファ値が閾値Th1より小さければ、総賞球数を更新するタイミングではないので、ステップS895に進む。一方、賞球数バッファ値が閾値Th1以上であれば、総賞球数に閾値Th1を加算し(ステップS891)、賞球数バッファから閾値Th1を減算する(ステップS892)。そして、総アウト球数にアウト球数バッファ値を加算し(ステップS893)、アウト球数バッファを0にする(ステップS894)。なお、賞球数バッファ値と閾値Th1とを比較せずに、所定回数の入賞毎や所定時間毎に、ステップS891からS894を実行してもよい。
その後、アウト球数バッファに格納されているアウト口通過球数と入賞球数バッファに格納されている入賞球数との和が予め定められている閾値Th2以上であるかを判定する(ステップS895)。アウト口通過球数と入賞球数の合計が遊技領域に流入した遊技球の数でありアウト球数となる。判定の結果、計算されたアウト球数が閾値Th2より小さければ、総アウト球数を更新するタイミングではないので、ステップS902に進む。一方、計算されたアウト球数が閾値Th2以上であれば、総賞球数に賞球数バッファ値を加算し(ステップS897)、賞球数バッファを0にする(ステップS898)。そして、総アウト球数から特定入賞球数を減算し、閾値Th2を加算する(ステップS899)、入賞球数バッファを0に設定し、アウト球数バッファから閾値Th2を減算する(ステップS900)。
その後、総アウト球数が0であるかを判定する(ステップS902)。総アウト球数が0であれば、ベース値を計算できないので、ベース算出・表示処理を終了する。一方、総アウト球数が0でなければ、総賞球数を総アウト球数で除してベース値を計算する(ステップS903)。具体的には、総賞球数に所定数(例えば100)を乗じて除算入力レジスタA131216に格納し、総アウト球数を除算入力レジスタB131217に格納する。そして、32クロック経過後に、除算結果レジスタA131218から商を読み出して、ベース値とする。なお、総アウト球数が0である場合、ベース値を計算しても、演算回路13121からの返り値はエラーとなるので、ベース算出用領域13128に格納しなくてよい。この場合、ベース表示器1317に表示されるベース値は更新されない。
その後、計算されたベース値が異常であるかを判定する(ステップS907)。ベース値の異常とは、例えば、計算されたベース値が設計値(正常値)から所定の許容範囲を超えて大きくまたは小さくなった場合などである。なお、複数段階の許容範囲を設けてベース値の乖離の程度によって異常の程度を複数段階で判定してもよい。そして、ベース値が異常であれば、ベース報知コマンドを生成し(ステップS908)、遊技者やホール従業員にベースを報知する。一方、ベース値が異常でなければ、ベース算出・表示処理を終了する。
図72に示すベース算出・表示処理では、総賞球数や総アウト球数が更新されなくても、毎回ベース値を計算している。すなわち、総賞球数および総アウト球数が更新されなければ、ベース値として同じ値が計算され、ベース値は同じ値を維持し、総賞球数または総アウト球数が更新されれば、ベース値は違う値に更新される。なお、総賞球数および総アウト球数の一方が更新されたタイミングでベース値を計算してもよく、両方が更新されたタイミングでベース値を計算してもよい。
また、本実施例のパチンコ機では、遊技領域に流入したが始動口および一般入賞口に入賞する可能性が低い遊技球を除外してベース値を計算するので、実際のベース値との乖離が少ないベース値を正確に計算できる。
また、大当り中に右打ちするパチンコ機で大入賞口2006の下流に一般入賞口2001がある場合を説明したが、本実施例にかかる発明は、大当り中に通常打ちで大入賞口2005を狙うパチンコ機でも、大入賞口2005の下流に始動口または一般入賞口が配設されている遊技機にも適用できる。
また、遊技領域5aには、通常は遊技球を受け入れないが、大当たり抽選結果に応じて遊技球の受け入れが可能となる大入賞口2005、2006が配置されている。この大入賞口2005、2006への入賞による賞球をベース値の計算から除外してもよい。この場合、遊技球が始動口2002、2004に入賞して特別図柄変動表示ゲームが開始し、特別図柄が確定してから大入賞口2005、2006が開放するまで(大当たりオープニング)から、大入賞口2005、2006が閉鎖してから次の特別図柄変動表示ゲームが開始するまで(大当たりエンディング)の間を特賞中として、検出されたアウト球をアウト球数から除外する。このようにすれば、図39などのステップS810で特賞中であるかを判定せずに特賞中の賞球数およびアウト球数を計数できる。なお、一つの大当たりで大入賞口2005、2006が開放と閉鎖を繰り返す場合、大入賞口2005、2006の閉鎖から次の開放までの間(閉鎖インターバル)の時間を特賞中に含めてもよい。すなわち、特賞中は、条件装置作動中を意味し、例えば、特別図柄変動表示ゲームの大当たり図柄の確定からエンディング終了までである。また、右打ち指示中の全ての時間を含んでもよい。さらに、始動口2002、2004においては、時短中、確変中(ST中)、電サポ中を特賞中に含めてもよい。さらに、時短中、確変中(ST中)、電サポ中以外の遊技状態において、始動口2004の開放から閉鎖後の所定時間(例えば、始動口に入賞した球がアウト球として検出されるまでに必要な数秒)までの間を特賞中に含めてもよい。
また、遊技領域5aには、通常は遊技球を受け入れないが、普通図柄の抽選結果に応じて遊技球の受け入れが可能となる第二始動口2004が配置されている。この第二始動口2004への入賞による賞球をベース値の計算から除外してもよい。この場合、遊技球がゲート部2003を通過して普通図柄の抽選が行われ、普通図柄変動表示ゲームが開始し、普通図柄が確定してから開放するまで(オープニング)から、第二始動口2004が閉鎖してから次の普通図柄変動表示ゲームが開始するまで(エンディング)の間を特賞中として、検出されたアウト球をアウト球数から除外する。なお、第二始動口2004が普通図柄の抽選結果によって開放と閉鎖を繰り返す場合、第二始動口2004の閉鎖から次の開放までの間(閉鎖インターバル)の時間を特賞中に含めてもよい。このようにすると、時短中だけでなく、第二始動口2004への全ての入賞をベース値の計算から除外できる。
前述のようにすれば、図39などのステップS810で特賞中であるかを判定せずに特賞中(大当たり、時短など)以外の賞球数およびアウト球数を正確に計数できる。
このようにすると、遊技者が右打ちをしている間のアウト球数、賞球数を正確に除外し、ベース値を正確に計算できる。
また、パチンコ機によっては、大当り中でも時短中でもない状態(いわゆる通常状態)では左打ちで遊技を行い、大当り中または時短中は右打ちで遊技を行うことが推奨される。このような遊技機では、左打ち時に入賞する一般入賞口2001、第一始動口2002および右打ち時に入賞する一般入賞口2001、第二始動口2004が設けられている。このような遊技機において、遊技領域5aの左側から中央(左打ち時に遊技球が転動する領域)および遊技領域5aの右側(右打ち時に遊技球が転動する領域)における入賞口の数や配置、釘の配設位置によって、各入賞口への入球率が異なる。言い換えると左打ちのときのベース値と右打ちのときのベース値が異なる。
パチンコ機のベース値は、通常状態において遊技者が左打ちを行うことを想定して設定されている。ところが、前述した理由のように、左打ち時と右打ち時とでベース値が異なる場合(例えば、通常状態における右打ち時のベース値は左打ち時より低くなるように設計されている場合)、通常状態において遊技者が右打ちをすると、低いベース値が計算される。
ホールは、ベース値が低いパチンコ機は、異常があると考え点検をするか、出玉性能が悪い遊技機であると判断する。出玉性能が悪い(想定されるベースより低い)と判断されたパチンコ機においても、ホールは、遊技者が左打ちを行っていると判断するので、左打ち時のベースに作用する始動口や一般入賞口の入球率を高める調整を行う。そして、異常がある釘を調整して、ベース値を高めるようにする。このように調整された遊技機で左打ちをすると、通常状態でも多くの賞球が得られる。換言すると少額で多くの抽選を受けられることになる。つまり、左打ち時のベースがホールが想定していたものと相違がなくても、ホールが勘違いして、左打ち時に入賞する始動口や一般入賞口の入球率を高める調整を行う。このような遊技者の悪意によってホールが不利益を被る可能性があることから、左打ち時のベース値と右打ち時のベース値とを正確に計算する必要がある。
ところで、時短中に右打ちを行うパチンコ機は、遊技状態によって開閉する第二始動口2004と、第二始動口2004を開放させるための普通図柄抽選を行うためのゲート部2003は、右打ち時に遊技球が転動する領域に配置されている。また、通常状態に右打ちしてゲート部2003を遊技球が通過した場合、普通図柄の抽選は行っても普図当選確率を極めて低くして第二始動口2004が開かないようにしたり、普通図柄抽選に当選しても第二始動口2004の開放時間を短くして、通常状態では第二始動口2004への入賞を困難にしている。
ここで、通常状態で右打ちした状態でベース値を高めるためには、第二始動口2004への入球率を高めることになる。しかし、一般に第一始動口2002より第二始動口2004は有利に設定されていることから、第二始動口2004への入球率を高めるとホールの利益を圧迫する。そこで、通常状態にゲート部2003を通過した遊技球を計数し、ベース値を計算する際に、ゲート部2003の通過球数を用いて補正したベース値を計算するとよい。
具体的には、通常状態においてゲート部2003を通過した遊技球数を特定入賞球数としてアウト球数(遊技領域5aに向けて打ち込まれた遊技球数)から減算する。アウト球数の減少によって、高いベースの計算値を得ることができる。例えば、相当数の遊技球がゲート部2003を通過した場合、には極めて高いベース値が計算されることになる。なお、補正処理の程度は、遊技機の設計値(性能)に基づいて、適宜決定すればよい。
さらに、ゲート部2003の通過を監視し、遊技球がゲート部2003を通過した場合(始動口に入賞せずに所定数(例えば、3個)の遊技球がゲート部2003を通過した場合などの条件をつけてもよい)、ゲート部2003を通過した後(または、前後)の所定時間または所定発射数において計数されたアウト球数をベース値の計算に使用しなくてもよい。このようにすると、より正確にベース値を計算できる。ゲート部2003の通過を検出すると、ベース値の計算結果に反映されないことを積極的に遊技者に報知せずに、「左打ちに戻してください」などの表示や音声を出力してもよい。また、ゲート部2003の通過の検出時に、右打ちがされていることをホールに報知してもよい。例えば、特定のランプを点灯させたり、点灯態様を変えたり、外部端子板784から遊技場に設置されたホールコンピュータに右打ち中であることを出力してもよい。
以上に説明したように、遊技領域5aの右側(右打ち時に遊技球が転動する領域)に設けられたゲート部2003の通過球数をアウト球数から除外することによって、通常状態で右打ち時のベース値を大きい値へ補正できる。このため、遊技者の遊技スタイルによるベースの計算値の変動を防止できる。
[9-9.ベース値の初期化]
パチンコ機1の稼働状況を確認するというベース値の役割を鑑みると、算出されたベース値は長期間保持されることが望ましい。また、算出されたベース値は容易に消去できないことが望ましい。このため、主制御MPU1311のRAM1312にバックアップされた遊技の進行に関係するデータの消去条件と別の条件でベース算出・表示用データ13136を消去する。これにより、正確な賞球数のデータを保持し、正確な役物比率を計算できる。
具体的には、RAMクリアスイッチの操作(第1の操作)によってはベース算出・表示用データ13136を消去しないが、主制御MPU1311に供給されるバックアップ電源を遮断し、かつパチンコ機1の電源の遮断する第2の操作によって、主制御MPU1311のRAM1312にバックアップされた全てのデータを消去できる。第2の操作は、この操作を実現する一つのスイッチを設けてもよいし、遊技店の従業員が主制御基板1310に供給されるバックアップ用の電源線のコネクタを抜去して、パチンコ機1の電源を遮断してもよい。
換言すると、主制御MPU1311のRAM1312を消去するために二つの操作が準備されており、第1の操作では遊技の進行に関係するデータのみを消去するが、第2の操作では算出されたベース値や遊技の進行に関係するデータを含む全てのデータを消去する。
このように構成することによって、遊技場の係員の誤操作によってベース算出・表示用データ13136が消去されないので、表示される役物比率の信頼性が高まり、役物比率が高い状態の隠蔽を防止できる。
[9-10.入賞異常を考慮したベースの計算]
図73、図74は、入賞異常を考慮したベース算出領域更新処理のフローチャートである。
パチンコ機1においては、前述したステップS815で判定される賞球数の異常の他、入賞異常が検出される場合がある。例えば、特別図柄変動表示ゲームで大当たりが導出されたことによる大入賞口2005、2006の開放中以外に入賞が検出された場合や、普通図柄変動表示ゲームで当たりが導出されたことによる始動口2004の開放中以外に入賞が検出された場合は入賞異常である。すなわち、ステップS815で判定される賞球数の異常は、賞球数から検出される異常な動作であり、主に所定時間に多くの賞球が得られている場合である。一方、入賞異常は、入賞球数から検出される異常な動作であり、主に入賞不可能な状態における入賞や、所定時間に多くの入賞が検出される場合である。
この入賞異常にかかる入賞球はアウト球としてカウントされるので、この分を補正してベースを正確に計算することが望ましい。このため、入賞異常を考慮したベース算出領域更新処理では、検出した入賞異常にかかる入賞球数を減じるように総アウト球数を補正する。
なお、通常は大入賞口2005、2006や始動口2004へは特賞中にのみ入賞するので、これらの入賞口への入賞球はベースを計算するためのアウト球として計数されることがなく、入賞異常を考慮する必要がない。
図73は、ベース算出用領域更新処理(ステップS81)の一例を示すフローチャートである。ベース算出用領域更新処理は、現在の遊技状態を判定し、遊技価値として払い出される賞球数を現在の遊技状態に対応した領域に加算して、主制御内蔵RAM1312のベース算出用領域13128を更新する。特に、図73に示すベース算出用領域更新処理は、図39に示すベース算出用領域更新処理と同様に、タイマ割込み周期ごとに毎回ベース値を計算するために、賞球制御処理(ステップS80)で算出された賞球数を用いて総賞球数を直接更新し(ステップS814)、アウト球数を用いて総アウト球数を直接更新する(ステップS822)。なお、図73において、前述したベース算出用領域更新処理と同じ部分には同じステップ番号を付し、その詳細の説明は省略する。
まず、遊技状態が特賞中であるかを判定する(ステップS810)。特賞中であるかの判定基準は図39で説明したものと同じものを用いることができる。
遊技状態が特賞中であれば、ベース値の計算に関係しない賞球であるため、賞球数やアウト球数を更新せずに、ベース算出用領域更新処理を終了する。一方、遊技状態が特賞中でなければ、賞球制御処理(ステップS80)で入力情報に基づいて算出された賞球数を取得する(ステップS811)。ベース算出用領域更新処理で取得する賞球数は、払い出しが決定した賞球数でもよい。また、作成済みの払出コマンドに対応する賞球数でもよい。また、送信済の払出コマンドに対応する賞球数でもよい。また、主制御基板1310が払出制御基板951に払出コマンドを送信し、払出制御基板951から受信確認(ACK)を受信した払出コマンドに対応する賞球数でもよい。さらに、主制御基板1310が払出制御基板951に払出コマンドを送信し、払出制御基板951から払出完了の報告を受けた賞球数(払出済み賞球数)でもよい。このバリエーションは図41から図44を用いて説明済みである。
そして、取得した賞球数を総賞球数に加算して、総賞球数を更新する(ステップS814)。なお、賞球があるかを判定し、賞球がなければ、総賞球数を更新する処理をスキップしてもよい。また、始動口2002、2004に遊技球が入賞したが、保留が上限値であり、始動口への入賞が保留されなかった場合でも賞球は払い出されるので、総賞球数が更新される。また、入賞口に遊技球が入賞しても賞球が発生しない遊技状態(例えば、特定のエラー発生時など)においては、当該入賞に起因する賞球が発生せず、取得する賞球数が0であるため、総賞球数は更新されない。総賞球数は、主制御内蔵RAM1312のベース算出用領域13128に設けられる総賞球数格納領域(図52参照)に記録される。すなわち、図73に示すベース算出用領域更新処理では、賞球数が計算される都度、ベース値の計算に用いられる総賞球数が更新される。
その後、アウト球数を取得する(ステップS818)。そして、入賞異常が検出されているかを判定する(ステップS826)。そして、異常と判定された入賞に対応する遊技球数を取得する(ステップS827)。具体的には、前述したように、特別図柄変動表示ゲームで大当たりが導出されたことにより生起する特賞中(条件装置作動中)以外に大入賞口2005、2006への入賞が検出された場合や、普通図柄変動表示ゲームで当たりが導出されたことによる開放中ではないのに始動口2004への入賞が検出された場合は入賞異常であると判定する。
入賞異常にかかる入賞球が一つ検出されると入賞異常と判定してもよいし、入賞異常にかかる入賞球が所定数検出されると入賞異常と判定してもよい。また、入賞異常にかかる入賞球が連続して所定数検出されると入賞異常と判定してもよいし、入賞異常にかかる入賞球が所定の時間内に所定数検出されると入賞異常と判定してもよい。
そして、取得したアウト球数を総アウト球数に加算するように、総アウト球数を更新する(ステップS822)。アウト球数は、前述したように、発射球センサ1020や排出球センサ3060などによって検出され、ステップS74のスイッチ入力処理で、これらのセンサの検出信号を読み取って、取得する。このとき、取得したアウト球数から入賞異常にかかる入賞球数を減じた値を総アウト球数に加算してもよく、また、取得したアウト球数を総アウト球数に加算した後に、入賞異常にかかる入賞球数を総アウト球数から減じてもよい。総アウト球数は、主制御内蔵RAM1312のベース算出用領域13128に設けられる総アウト球数格納領域(図52参照)に記録される。すなわち、図73に示すベース算出用領域更新処理では、アウト球が検出される都度、ベース値の計算に用いられる総アウト球数が更新される。このように、タイマ割込み処理ごとにベース算出処理を実行して、総アウト球数を更新し、ベース算出表示処理(図40)にてベース値を計算し表示するので、ベース値を遅滞なく表示でき、ベース値が正常か異常かを遅滞なく判断できる。
なお、後述するベース算出用領域更新処理(図74)のステップS815からS817のように、賞球数に異常があるかを判定し、賞球数に異常があれば、異常報知コマンドを生成し、賞球異常報知用タイマをリセットしてもよい。さらに、ステップS824からS825のように、賞球異常報知用タイマがタイムアップしたかを判定し、賞球異常報知用タイマがタイムアップすると、賞球異常報知停止コマンドを生成し、賞球異常報知を停止してもよい。
本実施例のパチンコ機1では、主制御MPU1311が、タイマ割込み処理においてベース値の計算処理を実行するが、払出制御部952の払出制御MPUがベース値の計算処理を実行してもよい。この場合、主制御基板1310から周辺制御基板1510の周辺制御部1511にベースを報知するためのコマンドを送信してもよいし、払出制御部952から周辺制御部1511にベースを報知するためのコマンドを送信してもよい。
また、一つのタイマ割込み処理において、入賞口への入賞とアウト球との両方の情報を取得しても、賞球数を総賞球数(または、後述する実施例では賞球数バッファ)に加算し、アウト球数を総アウト球数(または、後述する実施例ではアウト球数バッファ)に加算する。また、一つのタイマ割込み処理において、複数の入賞口への入賞の情報を取得しても、複数の入賞による賞球数の合計を総賞球数(または、後述する実施例では賞球数バッファ)に加算する。このため、ベース値を正確に計算し、表示できる。例えば、賞球数が5個の入賞口の入賞口センサと賞球数が3個の入賞口の入賞口センサとへの入賞を検出した場合は、合計8個の賞球を総賞球数(または、賞球数バッファ)に加算する。
また、遊技球の発射が検出されている場合にのみ、賞球数を総賞球数(または、賞球数バッファ)に加算してもよい。すなわち、発射球センサ1020の検出から所定時間以内に検出した入賞に関する賞球数のみを総賞球数(または、賞球数バッファ)に加算してもよい。また、発射制御部953または球発射装置680の動作を検出し、発射制御部953または球発射装置680が動作している間(さらに、発射制御部953または球発射装置680が動作を停止してから所定時間(例えば、5秒)後まで)に検出した入賞に関する賞球数のみを総賞球数または賞球数バッファに加算してもよい。また、遊技者が発射ハンドルを操作している場合にのみ、賞球数を総賞球数(または、賞球数バッファ)に加算してもよい。すなわち、ハンドルユニット500の接触検知センサ509に手や指が触れていることが検出されている時間から所定時間(例えば、5秒)以内に検出した入賞に関する賞球数のみを総賞球数(または、賞球数バッファ)に加算してもよい。このようにすると、遊技球が発射されていない状態で賞球を検出する異常や不正行為による賞球のベース値への反映を防止でき、不正確なベース値の表示を防止できる。この場合、接触検知センサ509を用いると、遊技球の発射を検出するセンサを新たに設けなくてもよいので、パチンコ機1のコストの上昇を抑制できる。
図74は、ベース算出用領域更新処理(ステップS81)の別の一例を示すフローチャートである。図74に示すベース算出用領域更新処理は、アウト球数が所定の条件を満たしたタイミングでベース値を計算するために、アウト球数をアウト球数バッファに記録する(ステップS819)。なお、図74において、前述したベース算出用領域更新処理と同じ部分には同じステップ番号を付し、その詳細の説明は省略する。
まず、遊技状態が特賞中であるかを判定する(ステップS810)。特賞中であるかの判定基準は図39で説明したものと同じものを用いることができる。そして、特賞中以外の賞球数を取得し(ステップS811)、賞球があるかを判定する(ステップS812)。そして、ステップS812における判定の結果、賞球がなければ、賞球数を更新せずにステップS818に進む。一方、賞球があれば、賞球数に異常があるかを判定し(ステップS815)、賞球数に異常がなければ、取得した賞球数を総賞球数に加算する(ステップS814)。すなわち、図74に示すベース算出用領域更新処理では、賞球数が計算される都度、ベース値の計算に用いられる総賞球数が更新される。
一方、賞球数に異常があれば、異常報知コマンドを生成し(ステップS816)、賞球異常報知用タイマをリセットする(ステップS817)。
その後、アウト球数を取得し(ステップS818)。取得したアウト球数をアウト球数バッファに加算する(ステップS819)。そして、入賞異常が検出されているかを判定し(ステップS826)、異常と判定された入賞に対応する遊技球数を取得する(ステップS827)。
その後、賞球異常報知用タイマがタイムアップしたかを判定し(ステップS824)、賞球異常報知用タイマがタイムアップすると、賞球異常報知停止コマンドを生成し、賞球異常報知を停止する(ステップS825)。
図73、図74に示すベース算出領域更新処理では、入賞異常にかかる全ての入賞球数分アウト球を補正したが、特定の種類の入賞異常にかかる入賞球ではアウト球を補正して、他の特定の種類の入賞異常にかかる入賞球ではアウト球を補正しなくてもよい。例えば、入賞異常にかかる入賞球の種類によっては、当該入賞球に対する賞球を払い出すことや払い出さないことがある。この入賞異常に対して賞球を払い出すかは入賞口毎に定められているとよい。この場合、賞球が払い出されない入賞異常については、入賞球を総アウト球として計数せず、ベース値の計算に使用しないとよい。一方、賞球が払い出される入賞異常については、入賞球を総アウト球として計数し、払い出される賞球も総賞球数として計数して、ベース値の計算に使用するとよい。なお、賞球が払い出される入賞異常でも、入賞球を総アウト球として計数せず、払い出される賞球も総賞球数として計数せず、ベース値の計算に使用しなくてもよい。
例えば、遊技機の故障をメンテナンス(球詰まりの解除等)した結果、ホール従業員が手で始動口に遊技球を入れて、遊技者が損しないように出球を補償することがあり、この場合は当該始動口への入賞に対して賞球が払い出される。この始動口への入賞は入賞異常として検出されるが、賞球が払い出される。このように賞球が払い出される場合は、ベース値に反映すべきなので、入賞異常と判定しないとよい。この場合、ベース値の計算に反映する入賞口(始動口2002、2004)においては賞球を払い出し、入賞異常を判定せず、他の入賞口(大入賞口2005、2006)においては賞球を払い出さずに、入賞異常を判定するとよい。入賞異常を判定する入賞口は、入賞異常を判定しない入賞口より、入賞により払い出される賞球の数が少ないものである(始動口は3個賞球、大入賞口は15個賞球)。このため、大入賞口において入賞異常を判定するが、始動口において異常入賞を判定しなくても、不正行為に対する防御の観点からは、大きなセキュリティホールにはならない。このように、入賞異常を判定することによって、アウト球と賞球数との不整合を防止できる。特に、賞球を発生しない入賞異常にかかる入賞球数を用いてアウト球数を補正することによって、賞球数と当該賞球の原因となるアウト球とを整合させることができる。
前述したように様々な入賞口で入賞異常を判定できるが、パチンコ機への具体的な実装例について説明する。
まず、一般入賞口2001では入賞異常を判定せず、一般入賞口2001以外の入賞口(大入賞口2005、2006、始動口2002、2004)で入賞異常を判定してもよい。一般入賞口は、複数の遊技球の同時入賞が困難であることから、不正行為に対する遊技機のセキュリティ耐性を向上しつつ、開閉する電動役物である大入賞口2005、2006や始動口2002(合計3個)より数多く設けられている一般入賞口2001(合計4個)への入球によって遊技者に出球を補償できる。また、一般入賞口2001は、ホールの従業員が容易に識別できることから、パチンコ機1のメンテナンスや出球補償のための操作が容易である。ホールの従業員が一般入賞口2001を容易に識別できる理由としては、一般入賞口2001は遊技領域にまとめて(分かれた領域に)配置されることが多く、また、電動役物(大入賞口2005、2006、始動口2002、2004)と飾り部材(外観)が異なったりするためである。また、一般入賞口の1球の入賞に対する賞球数が少ない場合には、不正行為に対する遊技機のセキュリティ耐性が向上する効果がある。なお、特定の一般入賞口(例えば、左端)のみで入賞異常を判定せず、他の一般入賞口では入賞異常を判定してもよい。
また、賞球数が多い大入賞口2005、2006では入賞異常を判定せず、大入賞口2005、2006以外の入賞口(賞球数が少ない一般入賞口2001、始動口2002、2004)で入賞異常を判定してもよい。大入賞口は、1球の入賞に対する賞球数が多いので、少ない入賞球でもベース値が大きく変化する。このため、パチンコ機の検査時にベース値の変化を容易に検査できて便利である。なお、特定の大入賞口(例えば、遊技球を手で入れやすい大入賞口2005)のみで入賞異常を判定せず、他の大入賞口(例えば、2006)では入賞異常を判定してもよい。
また、始動口2002、2004では入賞異常を判定せず、始動口2002、2004以外の入賞口(一般入賞口2001、大入賞口2005、2006)で入賞異常を判定してもよい。始動口は、1球の入賞に対する賞球数が大入賞口より少ないので、ゴトに対する遊技機のセキュリティ耐性を向上しつつ、遊技者に出球を補償できる。なお、特定の始動口(例えば、遊技盤の中央に設けられた始動口2002は位置が分かりやすい)のみで入賞異常を判定せず、他の始動口2004では入賞異常を判定してもよい。
さらに、大入賞口や始動口においては、当該入賞口の開閉部材がパチンコ機の正面から視認可能な位置にある、すなわち、ホールの従業員が開閉部材を操作容易な入賞口では入賞異常を判定せず、当該入賞口の開閉部材がパチンコ機の正面から視認できない位置にある、すなわち、ホールの従業員が開閉部材を操作困難な入賞口では入賞異常を判定してもよい。例えば、閉状態で垂直に位置する開閉部材が斜め位置に傾斜することによって、開閉部材が遊技球を拾う構造の入賞口(いわゆる、電動チューリップ)ではホールの従業員が操作容易である。一方、閉状態では平板状部材で入賞口が塞がれており、該平板状部材が奥に引っ込むことによって、入賞口への入口が開く構造の入賞口(いわゆる、ベロチュー)ではホールの従業員が操作困難である。このようにすると、遊技者への出球補償に使用される入賞口に限定してセキュリティレベルを緩和するので、ホールの従業員に分かりやすく、かつ、遊技機のセキュリティ耐性を向上できる。
また、検出された入賞異常を報知してもよい。入賞異常の報知の方法は、前述した賞球数異常の報知の方法と同じでよい(例えば、外部端子板へのセキュリティ信号の出力、液晶等の表示装置への警告表示、遊技盤又は枠の装飾ランプの点灯や点滅、音声や効果音、警告音の出力など)が、入賞異常の報知は他の異常の報知より緩い報知にするとよい。具体的には、異常報知の時間が短かったり、異常を報知する文字が小さかったり、異常報知時にランプが点灯しなかったり、異常報知音を他の異常時の報知音の音量よりも小さく(抑制)するとよい。
また、入賞異常の報知では、入賞異常を検出してから所定時間の異常報知をし、当該所定時間中にさらに入賞異常を検出しても、当該所定時間を延長せずに、最初に設定された所定時間で報知を終了したり、報知の態様を変えるとよい。このように、入賞異常が所定の時間(例えば、数分間)連続して発生する場合、遊技者による不正行為ではなく、ホールが遊技機をメンテナンスしていると判断できる。このため、所定時間だけ入賞異常を報知して、その後は報知を継続しないようにすると、ホールによる遊技機のメンテナンス作業を妨害せず、作業効率を向上できる。また、所定時間後に報知の態様を変えることによって、遊技機のメンテナンス作業を妨害せず、正しく作業が継続して行われていることが分かる。具体的には、表示装置やランプによる報知は継続するが、音による報知を停止する(又は、音量を低下する)とよい。
纏めると、本実施例の遊技機は、入賞球数によってアウト球数を補正する補正手段を有し、該補正手段は、複数の入賞口を複数の種別(始動口、大入賞口)に区分し、第1の種別の入賞口については、所定の条件の成立中(特賞中)以外に検出した入賞球に基づいてアウト球数を補正し、第2の種別の入賞口については、所定の条件の成立中(特賞中)以外に検出した入賞球に基づいてアウト球数を補正しない。これによって、前述したように、遊技機のメンテナンスによる遊技者への補償の際のアウト球数のズレを防止でき、アウト球数を正確に計算できる。また、遊技機の誤動作により異常なベース値が計算されることがあり、その調整(メンテナンス)としてベース値の調整が可能となる。これにより、正確なベース値を計算し、表示できる。
ここまで、入賞異常の検出や、入賞異常の検出の例外的な取り扱い(検出しない場合)について説明したが、入賞異常と判定される遊技球は、遊技において取得した賞球ではなく、パチンコ機のメンテナンス(ベース値の調整)に用いられる可能性が高いので、望ましくは、入賞異常を判定された入賞球はアウト球数に反映せず、ベース値の計算に使用しないとよい。
また、図73、図74に示すベース算出領域更新処理において検出された入賞異常を報知してもよい。例えば、タイマ割込み処理の不正行為検出処理(ステップS84)において、入賞異常を異常状態として入賞異常表示コマンドを作成し、周辺制御基板コマンド送信処理(ステップS92)において送信する。この入賞異常の報知は、入賞異常にかかる入賞球が一つ検出されると行ってもよいし、入賞異常にかかる入賞球が所定数検出されると行ってもよい。また、入賞異常にかかる入賞球が連続して所定数検出されると入賞異常の報知を行ってもよいし、入賞異常にかかる入賞球が所定の時間内に所定数検出されると入賞異常の報知を行ってもよい。
さらに、入賞異常の報知は、所定時間の経過後に終了してもよいし、次に当該入賞口が開放した(条件装置が作動した)場合に終了してもよい。
なお、入賞異常を報知しなくてもよい。
[9-11.演算回路の特性を生かしたベース値の算出処理]
本実施例のパチンコ機1では、ベース値を計算する除算処理を演算回路13121が行うので、CPU13111がプログラムによって除算を実行するより他の処理を妨げることなくベース値を計算できる。ここまで説明したベース算出処理は、この特性を生かしたものではなかった。
すなわち、ベース値の計算に関連し、前述したタイマ割込み処理(図23)では、スイッチ入力処理(ステップS74)において、排出球センサ3060や発射球センサ1020からの検出信号を読み取って、アウト球数を計数し、賞球制御処理(ステップS80)において、払い出される遊技球(賞球)の数を計算する。その後、ベース算出用領域更新処理(ステップS98)において、ベース算出用領域13128の賞球数とアウト球数を更新する。
その後、ベース算出・表示処理(ステップS89)において、ベース算出用領域13128に格納された賞球数とアウト球数を参照してベース値を算出し、算出されたベース値をベース表示器1317に表示する。
タイマ割込み処理は、所定時間毎に実行されるものであるところ、タイマ割込み毎に所定の処理が必ず終了する必要があるので、プログラムによる遅い除算処理では、時間がかかる処理をタイマ割込み処理に含める、すなわち、複数回のベース計算処理をタイマ割込み処理に含めるのは困難であった。一方、演算回路13121を用いて除算処理を行うことによって、ベース値の計算に必要な時間を短縮でき、一つのタイマ割込み処理において複数回ベース値を計算でき、遅滞なくベース値を表示できる。
また、演算回路13121の除算入力レジスタ131216、131217への値の書き込みから除算結果レジスタA131218からの演算結果の読み出しまでの間、CPU13111は除算処理のために占有されない。すなわち、被除数及び除数の入力タイミングから商の出力タイミングまでの32クロックのウェイト時間を有効に活用でき、この間に他の処理を行うことができる。換言すると、被除数及び除数の入力タイミングと商の出力タイミングとが別になるので、タイマ割込み処理におけるベース値計算処理の自由度が向上する。
図75は、演算回路の特性を生かしたタイマ割込み処理の一例を示すフローチャートである。図75に示すタイマ割込み処理は、ベース算出処理(ステップS97、S98)を除いて前述したタイマ割込み処理(図23)と同じなので、同一の処理の説明は省略する。
タイマ割込み処理が開始されると、主制御MPU1311は、主制御プログラムを実行することによって、まず、レジスタを切り替える(ステップS70)。
次に、主制御MPU1311は、スイッチ入力処理を実行する(ステップS74)。スイッチ入力処理では、主制御MPU1311の各種入力ポートの入力端子に入力されている各種信号を読み取り、入力情報として主制御内蔵RAM1312の入力情報記憶領域に記憶する。具体的には、入賞球を検出するセンサからの検出信号や、不正行為を検出するスイッチからの検出信号や、排出球センサ3060や、発射球センサ1020からの検出信号を読み取って、アウト球数を計数する。
続いて、主制御MPU1311は、ベース算出処理1を実行する(ステップS97)。ベース算出処理1では、ステップS74で計数されたアウト球数を用いて総アウト球数を更新し、ベース値を計算する。ベース算出処理1の詳細は、図76、図78を用いて後述する。
続いて、主制御MPU1311は、タイマ更新処理(ステップS76)と、乱数更新処理1(ステップS78)を実行する。
続いて、主制御MPU1311は、賞球制御処理を実行する(ステップS80)。賞球制御処理では、入力情報記憶領域から入力情報を読み出し、読み出した入力情報に基づいて払い出される遊技球(賞球)の数を計算し、主制御内蔵RAM1312に書き込む。また、賞球数の計算結果に基づいて、遊技球を払い出すための賞球コマンドを作成する。
続いて、主制御MPU1311は、ベース算出処理2を実行する(ステップS98)。ベース算出処理2では、ステップS80で算出された賞球数を用いて総賞球数を更新し、ベース値を計算する。ベース算出処理2の詳細は、図77、図79を用いて後述する。
続いて、主制御MPU1311は、枠コマンド受信処理(ステップS82)と、不正行為検出処理(ステップS84)と、特別図柄及び特別電動役物制御処理(ステップS86)と、普通図柄及び普通電動役物制御処理(ステップS88)とを実行する。続いて、主制御MPU1311は、出力データ設定処理(ステップS90)と、周辺制御基板コマンド送信処理(ステップS92)とを実行する。最後に、主制御MPU1311は、ウォッチドッグタイマクリアレジスタWCLに所定値(18H)をセットする(ステップS96)。ウォッチドッグタイマクリアレジスタWCLに所定値がセットされることにより、ウォッチドッグタイマクリアレジスタWCLがクリア設定される。また、最後に、主制御MPU1311は、レジスタバンクを切り替える(復帰する)。以上の処理が終了すると、タイマ割込み処理を終了し、割り込み前の処理に復帰する。
図76は、ベース算出処理1(ステップS97)の一例を示すフローチャートである。
まず、主制御MPU1311は、遊技状態が特賞中であるかを判定する(ステップS9701)。特賞中であるかの判定基準は図39で説明したものと同じものを用いることができる。そして、遊技状態が特賞中であれば、ベース値の計算に関係しないアウト球であるため、ベースを計算せず、ベース算出処理1を終了する。一方、遊技状態が特賞中でなければ、スイッチ入力処理(ステップS74)で検出されたアウト球数を取得し(ステップS9702)、取得したアウト球数を総アウト球数に加算するように、総アウト球数を更新する(ステップS9705)。なお、アウト球数が取得できない又は取得したアウト球数が0である場合、ベース算出処理1を直ちに終了してもよい。このようにすると、無駄にベース値を計算することなく、主制御MPU1311の負荷を低減できる。
その後、総アウト球数が0であるかを判定する(ステップS9707)。総アウト球数が0であればベース値を計算できないので、ベース値を計算せず、ベース算出処理1を終了する。一方、総アウト球数が0でなければ、総賞球数に所定数(例えば100)を乗じた値を演算回路13121の除算入力レジスタA131216に格納し、総アウト球数を除算入力レジスタB131217に格納する(ステップS9708)。そして、所定時間(32クロック)経過後に、除算結果レジスタA131218から演算結果(総賞球数÷総アウト球数)を読み出して、ベース値とする(ステップS9709)。
その後、前述したステップS908と同様に、ベース報知コマンドを生成し(ステップS9710)、遊技者やホール従業員にベース(ベース値や、ベース値の異常)を報知する。ベース報知コマンドは、周辺制御部1511や液晶表示制御部1512が制御する表示装置(液晶表示装置1600、3114、244)やスピーカ921でベース値を報知する場合には、周辺制御部1511に対する表示コマンドや音出力コマンドである。また、主制御基板1310が制御するベース表示器1317や機能表示ユニット1400で報知する場合、これらの表示装置は7セグメントLEDやLEDランプで構成されていることから、ベース報知コマンドはLED素子への駆動信号である。具体的には、7セグメントLEDがドライバによって駆動される場合、ドライバ(ドライバ内のキャラクタジェネレータ)に設定された文字コードを含む駆動信号がベース報知コマンドである。また、7セグメントLEDが直接駆動される場合、各LED素子を点灯するための駆動信号がベース報知コマンドである。
図77は、ベース算出処理2(ステップS98)の一例を示すフローチャートである。
まず、主制御MPU1311は、遊技状態が特賞中であるかを判定する(ステップS9801)。特賞中であるかの判定基準は図39で説明したものと同じものを用いることができる。
その結果、遊技状態が特賞中であれば、ベース値の計算に関係しない賞球であるため、ベースを計算せず、ベース算出処理2を終了する。一方、遊技状態が特賞中でなければ、賞球制御処理(ステップS80)で算出された賞球数を取得し(ステップS9802)、取得した賞球数を総賞球数に加算するように、総賞球数を更新する(ステップS9809)。なお、賞球数が取得できない又は取得した賞球数が0である場合、ベース算出処理2を直ちに終了してもよい。このようにすると、無駄にベース値を計算することなく、主制御MPU1311の負荷を低減できる。
その後、総アウト球数が0であるかを判定する(ステップS9810)。総アウト球数が0であればベース値を計算できないので、ベース値を計算せず、ベース算出処理2を終了する。一方、総アウト球数が0でなければ、総賞球数に所定数(例えば100)を乗じた値を演算回路13121の除算入力レジスタA131216に格納し、総アウト球数を除算入力レジスタB131217に格納する(ステップS9812)。なお、総賞球数が0である場合はベース値として0が計算されるが、ベース値を計算しなくてもよい。さらに、総賞球数が総アウト数より大きい場合はベース値として1(100%)以上の値が計算されるが、ベース値を計算しなくてもよい。そして、所定時間(32クロック)経過後に、除算結果レジスタA131218から演算結果(総賞球数÷総アウト球数)を読み出して、ベース値とする(ステップS9813)。
その後、ベース報知コマンドを生成し(ステップS9814)、遊技者やホール従業員にベースを報知する。
図76、図77に示すベース算出処理は、タイマ割込み処理毎に実行されるので、遅滞なくベース値を計算し表示できる。なお、ベース算出処理1、ベース算出処理2をタイマ割込み処理毎に実行せずに、所定時間(例えば、タイマ割込み処理より長い周期の1分)毎のタイマ割込み処理において実行してもよい。タイマ割込み処理毎にベース算出表示処理を実行しないことによって、タイマ割込み処理毎にベース値を計算する場合より、ベース値の計算に要する演算量(例えば主制御MPU1311の負荷)を低減できる。
次に、図78から図79を用いて、ベース算出処理(ステップS97、S98)の別な例を説明する。図78、図79に示すベース算出処理は、所定アウト球数毎、所定賞球数毎にベース値を計算する。
図78は、ベース算出処理1(ステップS97)の別な一例を示すフローチャートである。
まず、主制御MPU1311は、遊技状態が特賞中であるかを判定する(ステップS9701)。特賞中であるかの判定基準は図39で説明したものと同じものを用いることができる。そして、遊技状態が特賞中であれば、ベース値の計算に関係しないアウト球であるため、ベースを計算せず、ベース算出処理1を終了する。一方、遊技状態が特賞中でなければ、スイッチ入力処理(ステップS74)で検出されたアウト球数を取得し(ステップS9702)、取得したアウト球数をアウト球数バッファに加算するように、アウト球数バッファを更新する(ステップS9703)。なお、アウト球数が取得できない又は取得したアウト球数が0である場合、ベース算出処理1を直ちに終了してもよい。このようにすると、無駄にベース値を計算することなく、主制御MPU1311の負荷を低減できる。
その後、アウト球数バッファに格納されているアウト球数が予め定められている閾値Th2以上であるかを判定する(ステップS9704)。アウト球数が所定の閾値Th2以上であるかの判定には様々な方法がとり得る。例えば、アウト球数バッファ値と閾値Th2とを比較したり、アウト球数の格納領域の所定のビットの値で判定してもよい(具体的には、アウト球数の格納領域を8ビットで構成し、最上位ビットが1になればアウト球数が128以上であると判定できる)。
そして、アウト球数バッファ値が閾値Th2より小さければ、ベース値を計算するタイミングではないので、ベース算出処理1を終了する。
一方、アウト球数バッファ値が閾値Th2以上であれば、総アウト球数にアウト球数バッファ値を加算するように、総アウト球数を更新し(ステップS9705)、アウト球数バッファを0に設定する(ステップS9706)。
その後、総アウト球数が0であるかを判定する(ステップS9707)。総アウト球数が0であればベース値を計算できないので、ベース値を計算せず、ベース算出処理1を終了する。一方、総アウト球数が0でなければ、総賞球数に所定数(例えば100)を乗じた値を演算回路13121の除算入力レジスタA131216に格納し、総アウト球数を除算入力レジスタB131217に格納する(ステップS9708)。そして、所定時間(32クロック)経過後に、除算結果レジスタA131218から演算結果(総賞球数÷総アウト球数)を読み出して、ベース値とする(ステップS9709)。
その後、ベース報知コマンドを生成し(ステップS9710)、遊技者やホール従業員にベースを報知する。
図79は、ベース算出処理2(ステップS98)の別な一例を示すフローチャートである。
まず、主制御MPU1311は、遊技状態が特賞中であるかを判定する(ステップS9801)。特賞中であるかの判定基準は図39で説明したものと同じものを用いることができる。そして、遊技状態が特賞中であれば、ベース値の計算に関係しない賞球であるため、ベースを計算せず、ベース算出処理2を終了する。一方、遊技状態が特賞中でなければ、賞球制御処理(ステップS80)で算出された賞球数を取得し(ステップS9802)、賞球があるか、すなわち、取得した賞球数が1以上であるかを判定する(ステップS9803)。その結果、賞球がなければ、賞球数を更新せずにステップS9808に進む。一方、賞球があれば、賞球数に異常があるかを判定し(ステップS9805)、賞球数に異常がなければ、取得した賞球数を賞球数バッファに加算するように、賞球数バッファを更新する(ステップS9804)。
一方、賞球数に異常があれば、異常報知コマンドを生成し(ステップS9806)、遊技者やホール従業員に賞球が異常であることを報知する。異常の報知は、様々な方法があり、以下に説明する方法の一つでも、二つ以上を組み合わせてもよい。具体的には、図46のステップS816で説明した様々な方法をとりうる。
賞球数の異常とは、例えば、特賞中以外の所定時間に多くの賞球(例えば、一般入賞口や始動口の賞球数から考えて、1分間に10発以上の入賞に相当する賞球)が得られている場合などである。なお、複数段階の許容範囲を設けて賞球数の基準値からの乖離の程度によって異常の程度を複数段階で判定してもよい。
そして、賞球異常報知用タイマをリセットし(ステップS9807)、賞球異常報知時間の計数を開始する。
そして、賞球数バッファに格納されている賞球数が予め定められている閾値Th1以上であるかを判定する(ステップS9808)。賞球数バッファ値が所定の閾値Th1以上であるかの判定には様々な方法がとり得る。例えば、賞球数バッファ値と閾値Th1とを比較したり、賞球数の格納領域の所定のビットの値で判定してもよい(具体的には、賞球数の格納領域を8ビットで構成し、最上位ビットが1になればアウト球数が128以上であると判定できる)。
そして、賞球数バッファ値が閾値Th1より小さければ、ベース値を計算するタイミングではないので、ベースを計算せず、ベース算出処理2を終了する。
一方、賞球数バッファ値が閾値Th1以上であれば、総賞球数に賞球数バッファ値を加算するように、総賞球数を更新し(ステップS9809)、賞球数バッファを0に設定する(ステップS9810)。
なお、賞球数バッファに加算する都度、外部端子板784から遊技場に設置されたホールコンピュータに賞球数を出力してもよいし、後述する賞球数が所定の閾値Th1以上となった場合に当該閾値Th1を外部端子板784からホールコンピュータに出力してもよい。ここで賞球数バッファは、ベース値を計算するために主制御内蔵RAM1312に設けられる領域であり、パチンコ機1が払い出す賞球数が一時的に格納される。
その後、総アウト球数が0であるかを判定する(ステップS9811)。総アウト球数が0であればベース値を計算できないので、ベース値を計算せず、ベース算出処理2を終了する。一方、総アウト球数が0でなければ、総賞球数に所定数(例えば100)を乗じた値を演算回路13121の除算入力レジスタA131216に格納し、総アウト球数を除算入力レジスタB131217に格納する(ステップS9812)。そして、所定時間(32クロック)経過後に、除算結果レジスタA131218から演算結果(総賞球数÷総アウト球数)を読み出して、ベース値とする(ステップS9813)。
その後、ベース報知コマンドを生成し(ステップS9814)、遊技者やホール従業員にベースを報知する。
その後、ステップS9807で起動した賞球異常報知用タイマがタイムアップしたかを判定する(ステップS9815)。そして、賞球異常報知用タイマがタイムアップすると、賞球異常報知停止コマンドを生成し、賞球異常報知を停止する(ステップS9816)。なお、ステップS9815では、所定時間だけ賞球異常を報知するためのタイマの時間によって報知の終了を判定したが、所定の発射球数だけ賞球異常を報知するように報知の終了を判定してもよい。また、ホール従業員が確認するまで異常を報知し続けてもよい。
図80は、タイマ割込み処理の別な一例を示すフローチャートである。図80に示すタイマ割込み処理は、ベース算出処理(ステップS93、S94)とベース表示処理(ステップS95)を除いて前述したタイマ割込み処理(図23、図75)と同じなので、同一の処理の説明は省略する。
タイマ割込み処理が開始されると、主制御MPU1311は、主制御プログラムを実行することによって、まず、レジスタを切り替える(ステップS70)。
次に、主制御MPU1311は、スイッチ入力処理を実行する(ステップS74)。スイッチ入力処理では、排出球センサ3060や発射球センサ1020からの検出信号を読み取って、アウト球数を計数する。
続いて、主制御MPU1311は、ベース算出処理3を実行する(ステップS93)。ベース算出処理3では、ステップS74で計数されたアウト球数を用いて総アウト球数を更新し、ベース値を計算するためのパラメータを演算回路13121に書き込む。ベース算出処理3の詳細は、図81、図84を用いて後述する。
続いて、主制御MPU1311は、タイマ更新処理(ステップS76)と、乱数更新処理1(ステップS78)を実行する。
続いて、主制御MPU1311は、賞球制御処理を実行する(ステップS80)。賞球制御処理では、入力情報記憶領域から入力情報を読み出し、読み出した入力情報に基づいて払い出される遊技球(賞球)の数を計算し、主制御内蔵RAM1312に書き込む。また、賞球数の計算結果に基づいて、遊技球を払い出すための賞球コマンドを作成する。
続いて、主制御MPU1311は、ベース算出処理4を実行する(ステップS94)。ベース算出処理2では、ステップS80で計数された賞球数を用いて総賞球数を更新し、ベース値を計算するためのパラメータを演算回路13121に書き込む。ベース算出処理4の詳細は、図82、図85を用いて後述する。
続いて、主制御MPU1311は、枠コマンド受信処理(ステップS82)と、不正行為検出処理(ステップS84)と、特別図柄及び特別電動役物制御処理(ステップS86)と、普通図柄及び普通電動役物制御処理(ステップS88)とを実行する。
続いて、主制御MPU1311は、演算回路13121から読み出し、ベースを報知するためのコマンドを生成するベース表示処理を実行する(ステップS95)。
続いて、主制御MPU1311は、出力データ設定処理(ステップS90)と、周辺制御基板コマンド送信処理(ステップS92)とを実行する。最後に、主制御MPU1311は、ウォッチドッグタイマクリアレジスタWCLに所定値(18H)をセットする(ステップS96)。ウォッチドッグタイマクリアレジスタWCLに所定値がセットされることにより、ウォッチドッグタイマクリアレジスタWCLがクリア設定される。また、最後に、主制御MPU1311は、レジスタバンクを切り替える(復帰する)。以上の処理が終了すると、タイマ割込み処理を終了し、割り込み前の処理に復帰する。
図81は、ベース算出処理3(ステップS93)の一例を示すフローチャートである。図81に示すベース算出処理3は、図76に示すベース算出処理1からステップS9709以後を取り除いたものである。
まず、主制御MPU1311は、遊技状態が特賞中であるかを判定する(ステップS9701)。特賞中であるかの判定基準は図39で説明したものと同じものを用いることができる。そして、遊技状態が特賞中であれば、ベース値の計算に関係しないアウト球であるため、ベースを計算せず、ベース算出処理1を終了する。一方、遊技状態が特賞中でなければ、スイッチ入力処理(ステップS74)で検出されたアウト球数を取得し(ステップS9702)、取得したアウト球数を総アウト球数に加算するように、総アウト球数を更新する(ステップS9705)。なお、アウト球数が取得できない又は取得したアウト球数が0である場合、ベース算出処理3を直ちに終了してもよい。このようにすると、無駄にベース値を計算することなく、主制御MPU1311の負荷を低減できる。
その後、総アウト球数が0であるかを判定する(ステップS9707)。総アウト球数が0であればベース値を計算できないので、ベース値を計算せず、ベース算出処理3を終了する。一方、総アウト球数が0でなければ、演算回路13121の除算入力レジスタB131217に総アウト球数を格納する(ステップS9708)。
図82は、ベース算出処理4(ステップS94)の一例を示すフローチャートである。図82に示すベース算出処理4は、図77に示すベース算出処理2からステップS9813以後を取り除いたものである。
まず、主制御MPU1311は、遊技状態が特賞中であるかを判定する(ステップS9801)。特賞中であるかの判定基準は図39で説明したものと同じものを用いることができる。そして、遊技状態が特賞中であれば、ベース値の計算に関係しない賞球であるため、ベースを計算せず、ベース算出処理2を終了する。一方、遊技状態が特賞中でなければ、賞球制御処理(ステップS80)で算出された賞球数を取得し(ステップS9802)、取得した賞球数を総賞球数に加算するように、総賞球数を更新する(ステップS9809)。なお、賞球数が取得できない又は取得した賞球数が0である場合、ベース算出処理1を直ちに終了してもよい。このようにすると、無駄にベース値を計算することなく、主制御MPU1311の負荷を低減できる。
その後、総アウト球数が0であるかを判定する(ステップS9810)。総アウト球数が0であればベース値を計算できないので、ベース値を計算せず、ベース算出処理2を終了する。一方、総アウト球数が0でなければ、総賞球数に所定数(例えば100)を乗じた値を演算回路13121の除算入力レジスタA131216に格納する(ステップS9812)。
なお、図81のステップS9708で、総アウト球数を除算入力レジスタB131217に格納せず、図82のステップS9812で、総賞球数に所定数(例えば100)を乗じた値を除算入力レジスタA131216に格納し、総アウト球数を除算入力レジスタB131217に格納してもよい。
図83は、ベース表示処理(ステップS95)の一例を示すフローチャートである。
主制御MPU1311は、除算結果レジスタA131218から演算結果(総賞球数÷総アウト球数)を読み出して、ベース値とする(ステップS8901)。その後、ベース報知コマンドを生成し(ステップS8902)、遊技者やホール従業員にベースを報知する。
図81、図82に示すベース算出処理と、図83に示すベース表示処理は、タイマ割込み処理毎に実行されるので、遅滞なくベース値を計算し表示できる。なお、ベース算出処理1、ベース算出処理2をタイマ割込み処理毎に実行せずに、所定時間(例えば、1分)毎のタイマ割込み処理において実行してもよい。
次に、図84から図85を用いて、ベース算出処理(ステップS97、S98)の別な例を説明する。図84、図85に示すベース算出処理は、所定アウト球数毎、所定賞球数毎にベース値を計算する。
図84は、ベース算出処理3(ステップS93)の別な一例を示すフローチャートである。図84に示すベース算出処理3は、図78に示すベース算出処理1からステップS9709以後を取り除いたものである。
まず、主制御MPU1311は、遊技状態が特賞中であるかを判定する(ステップS9701)。特賞中であるかの判定基準は図39で説明したものと同じものを用いることができる。そして、遊技状態が特賞中であれば、ベース値の計算に関係しないアウト球であるため、ベースを計算せず、ベース算出処理1を終了する。一方、遊技状態が特賞中でなければ、スイッチ入力処理(ステップS74)で検出されたアウト球数を取得し(ステップS9702)、取得したアウト球数をアウト球数バッファに加算するように、アウト球数バッファを更新する(ステップS9703)。なお、アウト球数が取得できない又は取得したアウト球数が0である場合、ベース算出処理3を直ちに終了してもよい。このようにすると、無駄にベース値を計算することなく、主制御MPU1311の負荷を低減できる。
その後、アウト球数バッファに格納されているアウト球数が予め定められている閾値Th2以上であるかを判定する(ステップS9704)。アウト球数が所定の閾値Th2以上であるかの判定には様々な方法がとり得る。例えば、アウト球数バッファ値と閾値Th2とを比較したり、アウト球数の格納領域の所定のビットの値で判定してもよい(具体的には、アウト球数の格納領域を8ビットで構成し、最上位ビットが1になればアウト球数が128以上であると判定できる)。
そして、アウト球数バッファ値が閾値Th2より小さければ、ベース値を計算するタイミングではないので、ベース算出処理1を終了する。
一方、アウト球数バッファ値が閾値Th2以上であれば、総アウト球数にアウト球数バッファ値を加算するように、総アウト球数を更新し(ステップS9705)、アウト球数バッファを0に設定する(ステップS9706)。
その後、総アウト球数が0であるかを判定する(ステップS9707)。総アウト球数が0であればベース値を計算できないので、ベース値を計算せず、ベース算出処理1を終了する。一方、総アウト球数が0でなければ、演算回路13121の除算入力レジスタB131217に総アウト球数を格納する(ステップS9708)。
図85は、ベース算出処理4(ステップS94)の別な一例を示すフローチャートである。図85に示すベース算出処理4は、図79に示すベース算出処理2からステップS9813以後を取り除いたものである。
まず、主制御MPU1311は、遊技状態が特賞中であるかを判定する(ステップS9801)。特賞中であるかの判定基準は図39で説明したものと同じものを用いることができる。そして、遊技状態が特賞中であれば、ベース値の計算に関係しない賞球であるため、ベースを計算せず、ベース算出処理2を終了する。一方、遊技状態が特賞中でなければ、賞球制御処理(ステップS80)で算出された賞球数を取得し(ステップS9802)、賞球があるか、すなわち、取得した賞球数が1以上であるかを判定する(ステップS9803)。その結果、賞球がなければ、賞球数を更新せずにステップS9808に進む。一方、賞球があれば、賞球数に異常があるかを判定し(ステップS9805)、賞球数に異常がなければ、取得した賞球数を賞球数バッファに加算するように、賞球数バッファを更新する(ステップS9804)。
一方、賞球数に異常があれば、異常報知コマンドを生成し(ステップS9806)、遊技者やホール従業員に賞球が異常であることを報知する。異常の報知は、様々な方法があり、以下に説明する方法の一つでも、二つ以上を組み合わせてもよい。具体的には、図46のステップS816で説明した様々な方法をとりうる。
賞球数の異常とは、例えば、特賞中以外の所定時間に多くの賞球(例えば、一般入賞口や始動口の賞球数から考えて、1分間に10発以上の入賞)が得られている場合などである。なお、複数段階の許容範囲を設けて賞球数の基準値からの乖離の程度によって異常の程度を複数段階で判定してもよい。
そして、賞球異常報知用タイマをリセットし(ステップS9807)、賞球異常報知時間の計数を開始する。
そして、賞球数バッファに格納されている賞球数が予め定められている閾値Th1以上であるかを判定する(ステップS9808)。賞球数バッファ値が所定の閾値Th1以上であるかの判定には様々な方法がとり得る。例えば、賞球数バッファ値と閾値Th1とを比較したり、賞球数の格納領域の所定のビットの値で判定してもよい(具体的には、賞球数の格納領域を8ビットで構成し、最上位ビットが1になればアウト球数が128以上であると判定できる)。
そして、賞球数バッファ値が閾値Th1より小さければ、ベース値を計算するタイミングではないので、ベースを計算せず、ベース算出処理2を終了する。
一方、賞球数バッファ値が閾値Th1以上であれば、総賞球数に賞球数バッファ値を加算するように、総賞球数を更新し(ステップS9809)、賞球数バッファを0に設定する(ステップS9810)。
なお、賞球数バッファに加算する都度、外部端子板784から遊技場に設置されたホールコンピュータに賞球数を出力してもよいし、後述する賞球数が所定の閾値Th1以上となった場合に当該閾値Th1を外部端子板784からホールコンピュータに出力してもよい。ここで賞球数バッファは、ベース値を計算するために主制御内蔵RAM1312に設けられる領域であり、パチンコ機1が払い出す賞球数が一時的に格納される。
その後、総アウト球数が0であるかを判定する(ステップS9811)。総アウト球数が0であればベース値を計算できないので、ベース値を計算せず、ベース算出処理2を終了する。一方、総アウト球数が0でなければ、総賞球数に所定数(例えば100)を乗じた値を演算回路13121の除算入力レジスタA131216に格納する(ステップS9812)。
なお、図84のステップS9708で、総アウト球数を除算入力レジスタB131217に格納せず、図85のステップS9812で、総賞球数に所定数(例えば100)を乗じた値を除算入力レジスタA131216に格納し、総アウト球数を除算入力レジスタB131217に格納してもよい。
図86は、ベース表示処理(ステップS95)の別な一例を示すフローチャートである。
主制御MPU1311は、除算結果レジスタA131218から演算結果(総賞球数÷総アウト球数)を読み出して、ベース値とする(ステップS8901)。その後、ベース報知コマンドを生成し(ステップS8902)、遊技者やホール従業員にベースを報知する。
その後、ベース算出処理4のステップS9807で起動した賞球異常報知用タイマがタイムアップしたかを判定する(ステップS8903)。そして、賞球異常報知用タイマがタイムアップすると、賞球異常報知停止コマンドを生成し、賞球異常報知を停止する(ステップS8904)。なお、ステップS8903では、所定時間だけ賞球異常を報知するためのタイマの時間によって報知の終了を判定したが、所定の発射球数だけ賞球異常を報知するように報知の終了を判定してもよい。また、ホール従業員が確認するまで異常を報知し続けてもよい。
図75、図80に示すように、本実施例のタイマ割込み処理では、タイマ割込み処理が終了する前に(タイマ割り込み周期が経過して、次のタイマ割込み処理が開始する前に)、演算回路13121から除算結果を読み出せるタイミングで、演算回路13121への入力値(除数、被除数)を書き込む。具体的には、演算回路13121への入力値(除数、被除数)の書き込みタイミングは、タイマ割込み処理の前半であったり、乱数更新処理(ステップS78)より前であったり、特別図柄や普通図柄の制御処理(ステップS86、S88)より前がよい。
また、遊技者に付与する遊技媒体(賞球)の数によって、ベース値を計算する処理の実行の有無を判定してもよい。すなわち、入賞口毎に定められた賞球数の観点から、賞球数やアウト球数をベース値の計算に使用するかを切り替えてもよい。例えば、一つの入賞球に対して最大の賞球を付与する入賞口の賞球は、ベース値の計算に使用しなくてもよい。
具体的には、遊技領域に設けられた入賞口毎に定められた遊技媒体が入賞したときに付与する賞遊技媒体(1つの入賞球に対して払い出される賞球)の数が1個、3個、5個の3種類である場合、最大である5個の賞球数及びこれに対応するアウト球数をベース値の計算に使用しなくてもよい。これは、賞球数が大きい入賞をベース値の計算に使用すると、計算されたベース値の変化が大きくなり、計算されたベース値の下位桁を加工手段によって丸めて(四捨五入、切り上げ、切り捨て等をして)表示しても、表示される値が頻繁に変化する場合が生じる。このような場合、パチンコ機が所定の性能を発揮しているか(例えば、設定した出玉率通りなのか)のホールによる判断が困難になるからである。
また、最小である1個の賞球数及びこれに対応するアウト球数をベース値の計算に使用しなくてもよい。これは、賞球数が小さい入賞によるベース値の変化は小さいことから、当該1個の賞球をベース値の計算に使用しなくても、加工手段によって計算されたベース値の下位桁を丸めて(四捨五入、切り上げ、切り捨て等をして)表示すると、表示されるベース値は変化しない場合が生じるので、表示の変化に貢献しない処理は省略してもよいからである。
また、賞球数が最大の場合と最小の場合で説明したが、最大と最小の間にある中間値の賞球数をベース値の計算に使用しなくてもよい。この場合、最大と最小の賞球数はベース値の計算に使用するため、最大と最小が平均化されることによってパチンコ機全体の動作を表す賞球数やアウト球数が示され、適切なベース値を示すことができる。
なお、3種類の賞球数のパターンで説明したが、3種類に限らず、5種類や7種類など他の種類の賞球数のパターンでもよい。
さらに、特定の種類(前述した最小値の1個や、中間値の3個や、最大値の5個など)の賞球数の入賞をベース値の計算に使用しなかった場合、当該入賞が検出された際の遊技状態における全ての入賞はベース値の計算に使用しなくてもよい。例えば、5個の賞球を付与する入賞口への入賞をベース値の計算に使用しない場合、当該入賞口への入賞が検出された遊技状態においては、当該遊技状態の終了までは、当該入賞口や他の入賞口への入賞をベース値の計算に使用しない。また、当該遊技状態の開始以後についても、当該入賞口や他の入賞口への入賞は遡ってベース値の計算に使用しない。
また、当該入賞が検出された際の遊技状態が再び生じた場合における入賞はベース値の計算に使用しなくてもよく、当該入賞が検出された際の遊技状態が他の遊技状態に遷移するまでの入賞をベース値の計算に使用しなくてもよい。これは、計算されるベース値の変化が大きい遊技状態の賞球数とアウト球数をベース値の計算に使用しないことによって、パチンコ機が正常か(例えば、設定した出玉率通りなのか)の判断が遅延する可能性を排除するためである。
なお、遊技状態によって賞球数が変化する場合に1個の入賞球に対して最大(又は、最小、中間)となる賞球について、ベース値の計算に使用しなくてもよい。
次に、前述した遊技媒体(賞球)の数によって、賞球数及びアウト球数をベース値の計算に使用しない具体的な処理を説明する。
スイッチ入力処理(ステップS74)において、各入賞口センサからの検出信号が主制御基板1310に入力されたときに、主制御MPU1311が当該入賞をベース値の計算に使用するかを判定してもよい。そして、ベース値の計算に使用しないと判定される入賞については、ベース値を計算するための総賞球数や総アウト球数の更新をしなかったり、ベース値の計算処理を実行しなかったりする。より具体的には、例えば、図75に示すタイマ割込み処理で、ベース算出処理1(ステップS97)において、ベース値の計算から除外する入賞球数を0にしてアウト球数から除外し、ベース算出処理2(ステップS98)において、ベース値の計算から除外する賞球数を0にして総賞球数に加算しないとよい。また、検出された全ての入賞がベース値の計算に使用しない場合、図75のベース算出処理1(ステップS97)及びベース算出処理2(ステップS98)を実行しなくてもよい。
また、図80に示すタイマ割込み処理では、ベース算出処理3(ステップS93)において、ベース値の計算から除外する入賞球数を0にしてアウト球数から除外し、ベース算出処理4(ステップS94)において、ベース値の計算から除外する賞球数を0にして総賞球数に加算しないとよい。また、検出された全ての入賞がベース値の計算に使用しない場合、図80のベース算出処理3(ステップS93)、ベース算出処理4(ステップS94)及びベース表示処理(ステップS95)を実行しなくてもよい。
ベース値の計算に使用しないと判定された入賞球数をアウト球数から除外する方法は、図73や図74で説明した異常入賞によるアウト球の補正と同様の方法を採用してもよい。
なお、この場合、検出された入賞をベース値の計算に使用するかを入賞球数から判定するので、ベース算出処理1(ステップS97)、ベース算出処理2(ステップS98)、ベース算出処理3(ステップS93)及びベース算出処理4(ステップS94)において、特賞中かを判定しなくてもよい。
このように、所定の入賞にかかるアウト球数及び入賞球数をベース値の計算から除外することによって、処理を飛ばさずに実行するので、特に開発段階において処理が正確に実行されているかを容易に確認できる。また、ベース値を計算する処理を実行せずに、ベース値を更新しないことによって、主制御MPU1311の処理が軽減され、他の処理(抽選処理や変動パターンを決定する処理など)を正確に実行できる。
すなわち、有利度合いが異なる複数の賞がある中で、最大の賞は遊技者に付与されても、ベース値の計算には使用されず、当該賞の付与によってベース値は変化せずに表示される。さらに、当該最大となる賞を付与した遊技状態が少なくとも終了するまでは、計算されるベース値は変化せずに表示される。
[9-12.ベースを表示する遊技機の別な構成]
図87は、本実施例のパチンコ機の制御構成を概略的に示すブロック図である。
本実施例のパチンコ機1では、図17に示すパチンコ機の制御構成と異なり、排出球センサ3060として、盤側排出球センサ3060Aが遊技盤5に設けられ、枠側排出球センサ3060Bが本体枠4に設けられる。なお、盤側排出球センサ3060A及び枠側排出球センサ3060Bのいずれか一方が設けられても、両方が設けられてもよい。
盤側排出球センサ3060Aは、前述したように、遊技領域5aの下部に設けられるアウト口1111を通過する遊技球を検出するアウト口通過球センサ1021である(図53参照)。盤側排出球センサ3060Aの出力信号は、図92を用いて後述するように、主制御基板1310に入力され、主制御MPU1311に入力される。この場合、アウト口通過球センサ1021が検出した遊技球の数と、始動口センサ2104、2551が検出した遊技球の数と、各種入賞口センサ3015、2114、2554、2557が検出した遊技球の数との合計をアウト球数とする。
枠側排出球センサ3060Bは、前述したように、遊技領域5aから流出した遊技球をパチンコ機1の外部に排出する排出口に設けられる(図4参照)。枠側排出球センサ3060Bの出力信号は、払出制御基板951や、本体枠4と遊技盤5とを接続するコネクタを経由して主制御基板1310に入力される。
盤側排出球センサ3060Aと枠側排出球センサ3060Bとの両方を設けた場合、盤側排出球センサ3060Aの計数結果と枠側排出球センサ3060Bの計数結果とを比較して、二つの計数結果に所定以上の差が生じた場合にエラーを報知してもよい。また、所定時間内の二つの計数結果に所定以上の差が生じた場合に、エラーを報知してもよい。
なお、本実施例のパチンコ機では、表示スイッチ1318は必須の構成ではなく、後述するように所定の時間間隔でベース表示器1317の表示内容(暫定区間表示と確定区間表示)が切り替えられるが(図99参照)、表示スイッチ1318の操作によって、ベース値を表示したり、表示内容を切り替えてもよい。
前述した以外の構成は、図17に示すパチンコ機の制御構成と同じである。
図88、図89は、枠側排出球センサ3060Bの配置を示す図である。
図88は、遊技盤の裏面側の本体枠4に設けられる球流路960においてアウト球を1条に整列させて、一つの枠側排出球センサ3060Bでアウト球を計数する機構の例を示す。遊技領域5aを転動する遊技球は、アウト口1111、一般入賞口2001、大入賞口2005、2006を経由して遊技盤5の裏面側の本体枠4に流入する。本体枠4には、排出された遊技球を正面視の右側に流下させ、1条に整列させる球流路960が設けられている。枠側排出球センサ3060Bは、1条に整列した遊技球を計数する。
図89は、遊技盤の裏面に設けられる球流路960において整列させたアウト球を2条で流下させ、複数の排出球センサ3060で計数する機構の例を示す。遊技領域5aを転動する遊技球は、アウト口1111、一般入賞口2001、始動口2002、2004、大入賞口2005、2006を経由して遊技盤5の裏面側の本体枠4に流入する。本体枠4には、排出された遊技球を左右から中央付近に流下させ、2条に整列させる球流路960が設けられている。二つ設けられた枠側排出球センサ3060Bの各々は、各条に整列した遊技球を計数する。
枠側排出球センサ3060Bは、図53、図88、図89に示す位置に設けられるが、球流路960と共にユニット化して、本体枠4から着脱可能に構成してもよい。また、枠側排出球センサ3060Bを本体枠4から着脱可能に構成してもよい。
図90は、排出球センサと主制御基板との接続例を示す図である。
盤側排出球センサ3060Aの出力線は、中継基板を経由して主制御基板1310に設けられたコネクタ13101に接続され、盤側排出球センサ3060Aの出力信号が主制御MPU1311に入力される。枠側排出球センサ3060Bの出力線は、主制御基板1310に設けられたコネクタ13102に接続され、枠側排出球センサ3060Bの出力信号が主制御MPU1311に入力される。
盤側排出球センサ3060Aの出力線が接続されるコネクタ13101は、主制御基板1310の上側に設けられるとよく、枠側排出球センサ3060Bの出力線が接続されるコネクタ13102は、主制御基板1310の下側に設けられるとよい。
盤側排出球センサ3060Aの出力線が接続されるコネクタ13101と、枠側排出球センサ3060Bの出力線が接続されるコネクタ13102とは別に設けられるが、破線で示すように、盤側排出球センサ3060Aの出力線と枠側排出球センサ3060Bの出力線とが一つのコネクタ(例えば、13102)に接続されてもよい。
なお、盤側排出球センサ3060Aの出力線を、中継基板を経由せずに主制御基板1310に接続してもよい。枠側排出球センサ3060Bの出力線を、直接、主制御基板1310に接続してもよい。枠側排出球センサ3060Bの出力線を払出制御基板951を経由して主制御基板1310に接続してもよい。枠側排出球センサ3060Bの出力線を中継基板(図示省略)を経由して主制御基板1310に接続してもよい。枠側排出球センサ3060Bの出力線を払出制御基板951又は中継基板に接続後、遊技盤5と本体枠4とを接続するコネクタ(例えば、フローティングコネクタ)を経由して、主制御基板1310に接続してもよい。
また、本実施例のパチンコ機には複数の磁気検出センサ1030が設けられる。磁気検出センサ1030の出力信号は、図92を用いて後述するように、主制御MPU1311に入力される。
図91は、遊技盤5の一例を示す正面図であり、特に、遊技盤5に設けられた磁気検出センサ1030の配置を示す。
磁気検出センサ1030は、遊技領域5a内における不正な磁気を検知するセンサであり、各種入賞口2001、2002、2004、2005、2006への入賞を検出するセンサの近傍(図において星印の位置)に設けられる。磁気検出センサ1030の検出範囲は遊技盤5上の破線で示し、一部重複している。
本実施例のパチンコ機1では、アウト口1111の付近にも磁気検出センサ1030が設けられる。これは、不正なベース値の計算を防止するためである。すなわち、遊技者がアウト口1111に磁石を近づけて排出球センサ3060を動作させた場合、アウト球数が実際より多く計数され、ベース値が低下する。このため、遊技店では、ベース値を所定の規格値に戻すようにパチンコ機1のメンテナンス作業を行うことがある。実際と異なるベース値に基づいてメンテナンス作業がされたパチンコ機では通常状態の出球が増加することになり、遊技者が通常より有利な状態で遊技でき、多くの出球を獲得できる。正確なベース値を計算し、このように不正な出球の払い出しを防止するために、アウト口1111の付近に磁気検出センサ1030を設ける。なお、アウト口1111の付近以外にも排出球センサ3060が磁気によって誤動作する可能性がある箇所には磁気検出センサ1030を設けるとよい。
アウト口1111付近に設けられる磁気検出センサ1030は、図示したように、他の磁気検出センサ1030より検出範囲が広い方がよい。これは、図89に示したように、複数の排出球センサ3060でアウト球を検出する場合、複数の排出球センサ3060をカバー可能な十分な範囲で磁気を検出するためである。また、アウト口1111付近に設けられる磁気検出センサ1030の磁気検出範囲は、他の入賞口(例えば、アウト口1111の上部に設けられる大入賞口2005)を含んでもよい。
図92は、主制御入力回路1315の構成を示す図である。主制御入力回路1315は、排出球センサ3060や入賞口センサ(一般入賞口センサ3015、第一始動口センサ2104、第二始動口センサ2551、第一大入賞口センサ2114、第二上大入賞口センサ2554、第二下大入賞口センサ2557など)、磁気検出センサ1030の出力信号を受け、主制御MPU1311に入力する。
主制御入力回路1315は、インターフェイス回路1331及びバッファ回路1332を含む。インターフェイス回路1331は、各種センサから入力された信号をレベル変換や整形(例えば、チャタリング除去)して出力する。バッファ回路1332は、主制御MPU1311から指示されたタイミングで、入力された信号をデータバスに出力する。
具体的には、各センサからの出力信号はインターフェイス回路1331のA1~A8のいずれかの端子に入力され、インターフェイス回路1331でレベル変換や整形がされた信号がY1~Y8端子から出力され、バッファ回路1332のA1~A8のいずれかの端子に入力される。バッファ回路1332は、主制御MPU1311のチップセレクト信号CS4、CS5が入力されたタイミングで、Y1~Y8端子に入力された信号をデータバスに出力する。これによって、各センサによる検出結果が主制御MPU1311に取り込まれる。
インターフェイス回路1331は、異常検出回路及び電源監視回路を含む。インターフェイス回路1331の異常検出回路は、A1~A8端子の入力を監視しており、各端子への入力信号が所定の閾値(例えば、4V)より低いレベルや、所定の閾値(例えば、電源電圧-0.1V)より高いレベルになると、スイッチへの接続線の断線やスイッチの短絡を検出し、いずれかの端子の入力が前記所定の閾値によって定義される正常範囲を超えた場合、異常信号Eを出力するとともに、A1~A8端子の入力信号とは無関係に、各センサがOFFであるレベルの信号をY1~Y8端子から出力する。インターフェイス回路1331の電源監視回路は、電源電圧VSを監視しており、電源電圧が所定の閾値(例えば、12V-20%)より低いレベルとなり、電源の異常を検出すると、異常信号Eを出力するとともに、A1~A8端子の入力信号とは無関係に、各センサがOFFであるレベルの信号をY1~Y8端子から出力する。つまり、センサからONレベルの信号が入力されても、当該入力に対するインターフェイス回路の出力はOFFレベルとなる。このため、主制御MPU1311は、当該センサから出力された信号を有効なものとして判定しない(当該センサの出力は無効とされる)。これにより、主制御MPU1311は、スイッチの電源が低下したか否かによって、入力信号の処理を実行するか否かを判定する必要がなくなり、処理負荷を軽減できるとともに、Y1~Y8の出力信号を入力信号A1~8の状態に無関係に、各センサがOFFとなるレベルの信号を出力できる。
後述するように、主制御MPU1311は、異常信号を検出すると、ベース値の計算を行わない(図105参照)。インターフェイス回路1331には、ベース値の計算に使用されるセンサからの信号(排出球数、賞球数)とベース値の計算に使用されないセンサからの信号(ゲートセンサ2547など)とが入力される。インターフェイス回路1331は、いずれかの入力信号が異常となった場合に異常信号を出力する。このため、ベースの計算に関係ないセンサに異常が検出されても、ベースの計算が実行されずに、ベース表示器1317の表示内容は維持されて変化しないことになる。
すなわち、主制御入力回路1315は、ベース値の計算に使用されるセンサからの信号とベース値の計算に使用されないセンサからの信号とを監視して、いずれかの信号が異常となった場合、ベースの計算を停止するために異常信号を出力する。
図93、図94、図95は、主制御基板1310の実装例を示す図である。図93(A)は、機能表示ユニット1400とベース表示器1317とが異なるドライバ回路1334に接続される例を示し、図93(B)は、機能表示ユニット1400とベース表示器1317とが一つのドライバ回路1334に接続される例を示す。図94は、主制御MPU1311とベース表示器1317と主制御基板1310上の配置を示す。図95(A)は、主制御基板ボックス1320に収容された主制御基板1310の正面図であり、図95(B)は下面図であり、図95(C)は右側面図である。
図93(A)、(B)に示すように、主制御I/Oポート1314は、ラッチ回路1333及びドライバ回路1334を含む。
図93(A)に示す例において、機能表示ユニット1400の表示データとベース表示器1317の表示データとは、主制御MPU1311から出力され、異なるラッチ回路1333に取り込まれる。そして、異なるドライバ回路1334から表示データが機能表示ユニット1400及びベース表示器1317に出力される。
図93(B)に示す例において、機能表示ユニット1400の表示データとベース表示器1317の表示データとは、主制御MPU1311から出力され、一つのラッチ回路1333に取り込まれる。そして、一つのドライバ回路1334から表示データが機能表示ユニット1400及びベース表示器1317に出力される。
図93(A)及び(B)に示す例において、主制御MPU1311には、リセット回路1335からのリセット信号や、クロック発振器1336からのクロック信号が入力される。主制御MPU1311から機能表示ユニット1400とベース表示器1317の表示データが出力される信号線と、リセット信号やクロック信号の信号線とは交差しないように配置されるとよい。
コネクタ13101は、盤側排出球センサ3060Aの出力線が接続されるコネクタであり、主制御基板1310の上側に設けられるとよい。コネクタ13101には、盤側排出球センサ3060Aからの出力線だけでなく、他の入賞口センサ3015、2104等や、磁気検出センサ1030からの出力線が接続される。コネクタ13102は、枠側排出球センサ3060Bの出力線が接続されるコネクタであり、主制御基板1310の下側に設けられるとよい。コネクタ13101、13102に入力された排出球センサ3060からの信号は、インターフェイス回路1331及びバッファ回路1332を介して、主制御MPU1311に入力される。
図94は、主制御MPU1311とベース表示器1317との間に配置される部品の主制御基板1310上の配置を示す図である。図94は、主制御基板1310を構成するプリント基板を裏面側から示した図であり、実線が裏面側のパターン、破線が部品面側のパターン、点線がプリント基板の部品面に実装された部品を示す。なお、グランドパターンと電源パターンの図示は省略した。
主制御MPU1311から出力されるデータ線(D1~D8)は、ラッチ2(1333)に入力され、ドライバ2(1334)を経由してベース表示器1317の7セグメントLEDの各桁のカソード側のセグメント端子に接続される。
また、主制御MPU1311から出力されるデータ線の一部(D1~D4)は、ラッチ1(1333)に入力され、ドライバ1(1334)を経由してベース表示器1317の7セグメントLEDの各桁のアノード側のコモン端子に接続される。
主制御MPU1311からは、ラッチ回路1333の動作タイミングを制御するチップセレクト信号が出力されている、具体的には、ラッチ回路2(1333)は、主制御MPU1311のチップセレクト信号CS2が入力されたタイミングで、各セグメントの点滅を制御するためのデータをデータ線(D1~D8)から取り込む。また、ラッチ回路1(1333)は、主制御MPU1311のチップセレクト信号CS3が入力されたタイミングで、各桁の点滅を制御するためのデータをデータ線(D1~D4)から取り込む。
主制御MPU1311には、リセット回路1335からのリセット信号や、クロック発振器1336からのクロック信号が入力される。また、リセット信号はリセット回路1335から各ラッチ回路1333にも入力される、ラッチ回路1333は、リセット信号によって、ラッチされたデータをクリアする。
主制御MPU1311とベース表示器1317との間のデータ線(D1~D8)と、リセット信号やクロック信号の信号線とは交差しないように配置される。同様に、図示は省略するが、主制御MPU1311と機能表示ユニット1400との間のデータ線(D1~D8)と、リセット信号やクロック信号の信号線とは交差しないように配置される。
これは、本実施例のパチンコ機1では、ダイナミック点灯によってベース表示器1317を制御することから、主制御MPU1311とベース表示器1317との間のデータ線ではパルス信号が伝達され、主制御MPU1311とベース表示器1317との間のデータ線では、頻繁にレベルが変化する。特に、ドライバ回路1334とベース表示器1317との間はLED素子を駆動するために必要な大きな電流が流れる。このため、主制御MPU1311とベース表示器1317との間(特に、ドライバ回路1334とベース表示器1317との間)のデータ線はノイズの発生要因となる。そして、主制御MPU1311とベース表示器1317との間のデータ線と、リセット信号やクロック信号の信号線とが交差すると、リセット信号やクロック信号の信号線にノイズが載って、パチンコ機1が誤動作する可能性がある。この信号線の交差は、プリント基板の表面と裏面における配線パターンの交差や、内層と表面層(表面、裏面)の配線パターンの交差でも生じうる。
具体的には、本来生じ得ないタイミングで主制御MPU1311にリセット信号が入力されることによって、遊技中に主制御MPU1311がリセットされ、遊技が停止したり、遊技状態が消去されることが生じ得る。なお、本来生じ得ないタイミングで遊技状態が消去されると、正常な電源断時処理が実行されずにリセットされるので、RAM1312に記憶されたデータがクリアされ、大当りが終了したり、変動表示ゲームが途中で終了したり、特別図柄変動表示ゲームや普通図柄変動表示ゲームの保留が消去されたりする。
主制御基板ボックス1320は、主制御基板1310に取り付けられた部品の高さや、組み付けたときの他の部材との干渉に応じて、部分的に高さが低く、他の部分の高さが高くなっている。例えば、図95に示すように、主制御MPU1311は高さが高いので、主制御MPU1311が実装される箇所は主制御基板ボックス1320の高さが高くなっており、主制御MPU1311が実装される箇所の左側の領域は主制御基板ボックス1320の高さが高くなっており、比較的背が高い電解コンデンサ等の部品が搭載される。一方、主制御MPU1311が実装される箇所の右側の領域は主制御基板ボックス1320の高さが低くなっており、背が低いIC等の部品が搭載される(背が高い部品が配置できない)。なお、主制御基板ボックス1320の高さが高く、高さが高い部品を実装可能な領域をハッチングで示す。また、コネクタ13101、13102が取り付けられる領域では、主制御基板ボックス1320は、相手方コネクタが挿抜される面と同程度以下(基板面と同じ高さとすることが望ましい)の高さに形成し、他の基板と接続するケーブル(コネクタ)の挿抜に支障が生じないようにするとよい。
このように、基板上に搭載される部品の高さに合わせて主制御基板ボックス1320の高さを部分的に変えることによって、主制御基板上の不正な部品(回路)を取り付けるゴト行為を抑制できる。
図95では、主制御基板1310の右上部にベース表示器1317を配置したが、メンテナンスの都合で本体枠4を所定の角度だけ開放しても、遊技者が表示内容を視認困難な位置にベース表示器1317を配置するとよい。例えば、営業中のメンテナンス(補給タンクの遊技球の有無が確認する)ために本体枠4を所定の角度だけ開放したときに、遊技者がベース表示器1317の表示内容を視認できると、遊技者はベース表示器1317の表示の読み方を正しく理解していない場合が多いことから、ベース表示器1317の表示内容について、遊技者から説明を求められることがあり、このような煩雑さを防止するために、遊技者が表示内容を視認困難な位置にベース表示器1317を配置するとよい。また、このようにベース表示器1317を配置すると、遊技者からの問い合わせを抑制できる。すなわち、ベース表示器1317は、最大でアウト球数で52000個の稼動分のベース値を表示するが、当該遊技者による短時間の遊技におけるベース値と異なるため、出球率についてクレームが生じることがある。このようにベース表示器1317を配置すると、遊技者からのクレームを抑制できる。以上のことは、前述した役物比率表示器1317でも同様であり、遊技者が表示内容を視認困難な位置に役物比率表示器1317を配置するとよい。
図示したように、ベース表示器(7セグメントLED)1317は高さが低いので、主制御基板ボックス1320の高さが低い領域に実装される。
図96は、主制御I/Oポート1314の構成を示す図であり、図93(A)に示すように、機能表示ユニット1400とベース表示器1317とが異なるドライバ回路1334に接続される例の回路図である。本実施例では、機能表示ユニット1400及びベース表示器1317が発光ダイオード(LED)で構成される例を説明するが、ランプ(電球)や他の発光素子で構成されてもよい。主制御I/Oポート1314は、主制御MPU1311とベース表示器1317や機能表示ユニット1400との間に配置され、主制御MPU1311から出力された表示データをベース表示器1317や機能表示ユニット1400へ出力する。
前述したように、主制御I/Oポート1314は、ラッチ回路1333及びドライバ回路1334を含む。
ラッチ回路1333は、入力されたデータをクロック信号のタイミングで取り込み、次にクロック信号又はクリア信号が入力されるまで保持し、出力する。ドライバ回路1334は、入力された信号に従ってスイッチングトランジスタを動作させ、それぞれ、ドライバ回路1334のVCC端子に入力される電源電圧(+12V)を出力する。
具体的には、ラッチ回路1333は、クロック信号CKの立ち上がりタイミングでD1~D8端子に入力されたバスデータを取り込み、それぞれ、Q1~Q8端子からドライバ回路1334に出力する。ドライバ回路1334は、I1~I8端子に入力された信号に従ってスイッチングトランジスタを動作させ、それぞれ、O1~O8端子の電圧を変化させる。ドライバ回路1334の出力O1~O8は、ベース表示器1317を構成する7セグメントLEDのセグメント端子や機能表示ユニット1400の7セグメントLEDに接続される。
例えば、ベース表示器1317の1桁目の7セグメントLED(7seg1)を点灯させるため、CS1の立ち上がりタイミングで、ラッチ2(1333)に取り込まれたバスデータD1~D8を、ドライバ2(1334)がセグメントデータ(点灯時がLOW)として出力する。また、ベース表示器1317の7セグメントLEDの駆動タイミングはコモン端子に印加される電圧のタイミングによって定まる。すなわち、CS0の立ち上がりタイミングで、ラッチ1(1333)に取り込まれたバスデータD1~D4を、ドライバ1(1334)がコモンデータ(駆動時がHIGH)として出力する。具体的には、CS0の立ち上がりタイミングで、バスデータD1がHIGHであれば、ドライバ1(1334)から出力されるCOM1がHIGHとなり、ベース表示器1317の1桁目の7セグメントLED(7seg1)が駆動される。
また、機能表示ユニット1400の7セグメントLEDを点灯させるため、CS2の立ち上がりタイミングで、ラッチ3(1333)に取り込まれたバスデータD1~D8を、ドライバ3(1334)がセグメントデータ(点灯時がLOW)として出力する。また、機能表示ユニット1400の7セグメントLEDの駆動タイミングはコモン端子(LED-C1)に印加される電圧のタイミングによって定まる。すなわち、CS3の立ち上がりタイミングで、ラッチ4(1333)に取り込まれたバスデータD1~D4を、ドライバ4(1334)がコモンデータ(駆動時がHIGH)として出力する。具体的には、CS3の立ち上がりタイミングで、バスデータD1がHIGHであれば、ドライバ4(1334)のO1端子がHIGHとなり、機能表示ユニット1400の7セグメントLED(LED-C1)が駆動される。
本実施例では、ベース表示器1317も機能表示ユニット1400も7セグメントLEDはアノードコモン型であるため、7セグメントLEDにはドライバ1からドライバ2への電流が流れる。このため、当該セグメントの点灯時のドライバ1、4の出力はVCC(+12V)であり、ドライバ2、3の出力はGND(0V)となる。
なお、コモン側のラッチ1、4(1333)は、データバスから入力されたデータをそのままQ1~Q8端子に出力するものであるが、ラッチ1、4(1333)がデコーダ機能を有しデータバスから取得した2進数データに従って、Q1~Q8のいずれかの端子から信号を出力してもよい。
次に、図93(A)や図96に示すように、機能表示ユニット1400とベース表示器1317とを異なるドライバ回路1334に接続した場合の信号の出力タイミングについて説明する。
ドライバ2(1334)からベース表示器1317に送られるセグメントデータと、ドライバ1(1334)からベース表示器1317に送られるコモンデータとは、同じタイマ割込み処理において出力される。また、ドライバ3(1334)から機能表示ユニット1400に送られるセグメントデータと、ドライバ4(1334)から機能表示ユニット1400に送られるコモンデータも、同じタイマ割込み処理において出力される。すなわち、コモンデータもセグメントデータも別の信号線でベース表示器1317及び機能表示ユニット1400へ送られるので、ベース表示器1317への表示データと、機能表示ユニット1400への表示データとの両方が、一つのタイマ割込み処理において出力される。
そして、次のタイマ割込み処理で、次の桁(LEDのグループ)を選択するコモンデータを出力し、コモンデータの出力と同じタイミングで各LEDの点灯を制御するセグメントデータを出力する。
ベース表示器1317への表示データと、機能表示ユニット1400への表示データとは、タイマ割込み処理内の別の処理で生成され、タイマ割込み処理内の別のタイミングで出力される。すなわち、主制御MPU1311が遊技制御領域外のベース算出・表示用コード13135を実行することによって、ベース表示器1317への表示データを生成し、出力する。一方、主制御MPU1311が遊技制御領域の遊技制御用コード13131を実行することによって、機能表示ユニット1400への表示データを生成し、出力する。これらのデータは、別のプログラム(コード)によって生成され、別なタイミングで出力されることになる。
次に、機能表示ユニット1400とベース表示器1317とを異なるドライバ回路1334に接続した場合の信号の出力タイミングの変形例について説明する。
ドライバ2(1334)からベース表示器1317に送られるセグメントデータと、ドライバ1(1334)からベース表示器1317に送られるコモンデータとは、同じタイマ割込み処理において出力される。同様に、ドライバ3(1334)から機能表示ユニット1400に送られるセグメントデータと、ドライバ4(1334)から機能表示ユニット1400に送られるコモンデータとは、同じタイマ割込み処理において出力される。ベース表示器1317に送るデータを出力するタイマ割込み処理は、機能表示ユニット1400に送るデータを出力するタイマ割込み処理と異なるタイミングで実行され、続いて実行するとよい。
機能表示ユニット1400とベース表示器1317とに信号を出力する処理は、RAM1312の異なる領域に格納されたプログラム(遊技制御用コード13131、ベース算出・表示用コード13135)に従って実行されるが、同一のタイミングでコモン信号が送信されないように、二つのコードで共通する制御用のデータを使用して、コモン信号の送信タイミングが重複しないように制御するとよい。例えば、遊技制御用コード13131とベース算出・表示用コード13135とが共通に使用するコモンカウンタを設け、例えば、コモンカウンタが0~3の場合に機能表示ユニット1400にコモン信号を出力し、コモンカウンタが4~7の場合にベース表示器1317にコモン信号を出力するように制御する。
コモン信号を出力する処理とセグメント信号を出力する処理とを別個又は一つのサブルーチンで構成してもよい。機能表示ユニット1400に送るデータを出力する処理を実行するための遊技制御用コード13131と、ベース表示器1317に送るデータを出力する処理を実行するためのベース算出・表示用コード13135とが、各プログラムで定められたタイミングで当該サブルーチンを呼び出して、機能表示ユニット1400やベース表示器1317に信号を出力するとよい。この場合、機能表示ユニット1400に送るデータの出力と、ベース表示器1317に送るデータを出力とは、同じタイマ割込み処理内では行われない。遊技制御用コード13131及びベース算出・表示用コード13135は、一つのタイマ割込み処理内で実行されるものの、当該サブルーチンは異なるタイマ割込み処理で呼び出される。
図93(A)や図96に示すように、機能表示ユニット1400とベース表示器1317とを異なるドライバ回路1334に接続すると、主制御基板1310の外部に設けられた表示器(機能表示ユニット1400)からノイズが混入しても、主制御基板1310の内部の表示器(ベース表示器1317)や主制御基板1310の回路に及ぼす影響を抑制できる。
図97は、主制御I/Oポート1314の構成を示す図であり、図93(B)に示すように、機能表示ユニット1400とベース表示器1317とがコモン側で共通するドライバ回路1334に接続される例の回路図である。主制御I/Oポート1314は、主制御MPU1311とベース表示器1317や機能表示ユニット1400との間に配置され、主制御MPU1311から出力された表示データをベース表示器1317や機能表示ユニット1400へ出力する。
前述したように、主制御I/Oポート1314は、ラッチ回路1333及びドライバ回路1334を含む。主制御I/Oポート1314に含まれる回路の構成は、前述した回路構成と同じであるため、以下では図96に示す構成例との違いを説明する。
図97に示す例では、ベース表示器1317の7セグメントLEDを点灯させるための動作は、図96に示す例と同じであるが、機能表示ユニット1400のコモンがベース表示器1317とでコモン信号が共通である。
機能表示ユニット1400の7セグメントLEDを点灯させるため、CS2の立ち上がりタイミングで、ラッチ3(1333)に取り込まれたバスデータD1~D8を、ドライバ3(1334)がセグメントデータ(点灯時がLOW)として出力する。また、機能表示ユニット1400の7セグメントLEDの駆動タイミングはコモン端子(LED-C1)に印加される電圧のタイミングによって定まる。すなわち、CS0の立ち上がりタイミングで、ラッチ1(1333)に取り込まれたバスデータD1~D4を、ドライバ1(1334)がコモンデータ(駆動時がHIGH)として出力する。
このように、ベース表示器1317と機能表示ユニット1400とでドライバ回路を共通にすることによって、回路規模を削減できる。部品点数が減ることで、故障率が低下し、基板のサイズも小さくすることができ、基板ユニット(主制御基板1310と主制御基板ボックス1320を含め)を容易に小型化できる。パチンコ機において、主制御基板1310では、内層パターン(3層以上のプリント基板)を使用せず、表面と裏面にのみパターンを有する2層基板を使用する。このため、2層基板で構成した主制御基板1310上に、部品が物理的に配置が可能であっても配線パターンを引き回す領域が確保できず、3層以上の多層基板より基板が大きくならざるを得ないことから、部品点数の削減による小型化が重要となる。
図98は、図97に示す主制御I/Oポート1314の構成例におけるタイミング図である。図98において、時間軸と垂直な点線はタイマ割込み処理の区切り(タイマ割込み処理の開始タイミング)を示す。
タイマ割込み処理内で、主制御MPU1311は、CS0を出力するタイミングで、桁選択データをデータバスに出力する。CS0で選択されるラッチ1(1333)は、CS0の立ち上がりタイミングで、データバスからD1~D4を取り込み、ドライバ1(1334)は、D1~D4で指示された桁に対応するコモンデータ(駆動時がHIGH)を出力する。
次に、主制御MPU1311は、CS2を出力するタイミングで、機能表示ユニット1400で点灯するセグメントのデータをデータバスに出力する。CS2で選択されるラッチ3(1333)は、CS2の立ち上がりタイミングで、データバスからD1~D8を取り込み、ドライバ3(1334)は、D1~D8で指示されたセグメントデータ(点灯時がLOW)を出力し、機能表示ユニット1400の7セグメントLEDを点灯する。
その後、主制御MPU1311は、CS1を出力するタイミングで、ベース表示器1317で点灯するセグメントのデータをデータバスに出力する。CS1で選択されるラッチ2(1333)は、CS1の立ち上がりタイミングで、データバスからD1~D8を取り込み、ドライバ2(1334)は、D1~D8で指示されたセグメントデータ(点灯時がLOW)を出力し、ベース表示器1317の7セグメントLEDを点灯する。
最後に、主制御MPU1311は、CS0、CS1、CS2を出力するタイミングで、データバスのデータを全て0に設定する。これによって、ラッチ1(1333)に設定された桁選択データと、ラッチ2、3(1333)に設定された表示データとが消去され、7セグメントLEDが消灯する。
次のタイマ割込み処理において、主制御MPU1311は、CS0を出力するタイミングで、次の桁選択データをデータバスに出力し、前述した処理を繰り返して、桁選択データ及び表示データを出力する。このようにして、ベース表示器1317と機能表示ユニット1400とでコモン側のドライバ回路を共通にして、セグメントデータを時分割して出力し、共通のコモンデータを用いて、ベース表示器1317と機能表示ユニット1400とのLED素子を点灯できる。
図93(B)や図97に示すように、機能表示ユニット1400とベース表示器1317とを共通のドライバ回路1334に接続するので、主制御基板1310の回路規模を小さくでき、高密度実装(例えば、多層基板の採用や部品の近接配置)が不可能な主制御基板1310における部品の実装を容易にできる。
また、一つのタイマ割込み処理において機能表示ユニット1400とベース表示器1317との両方を共通のコモンデータによって制御するために、当該コモンデータを出力している期間において、機能表示ユニット1400とベース表示器1317とに異なるタイミングでセグメントデータを出力する。このため、機能表示ユニット1400とベース表示器1317との両方を共通のコモンデータ線によって制御しつつ、機能表示ユニット1400とベース表示器1317との両方を、一つのタイマ割込み処理内で表示制御できる。
図98に示す場合では、機能表示ユニット1400の表示用データを先に出力し、ベース表示器1317の表示用データを後に出力している。各表示用データは、チップセレクト(CS2、CS1)の立ち上がりタイミングでラッチされ、消去データに対応するチップセレクト(CS0)の立ち上がりタイミングで消去される。このため、図示するように、機能表示ユニット1400の表示用データを先に出力し、ベース表示器1317の表示用データを後に出力すると、機能表示ユニット1400の表示時間がベース表示器1317の表示時間より長くなる。これは、パチンコ機1の表面側に配置されている機能表示ユニット1400のLEDの1サイクルにおける点灯時間を長くし、輝度を上げることによって、ホールの照明に直接照らされることによる視認性の低下を防ぐためである。また、ベース表示器1317は、パチンコ機1の表面側より暗い裏面側に配置されているため、LEDを低輝度で発光させても、ベース表示器1317の視認性への影響が小さい。すなわち、本実施例のパチンコ機1では、主制御MPU1311で制御される第1LEDと第2LEDが設けられており、第1LEDの発光輝度を第2LEDの発光輝度より高くしている。
なお、上記とは逆に、ベース表示器1317の表示用データを先に出力し、機能表示ユニット1400の表示用データを後に出力して、ベース表示器1317の表示時間を機能表示ユニット1400の表示時間より長くしてもよい。
図99は、ベース値の計算にかかる状態(区間)の変化を示す図である。
本実施例のパチンコ機1のベース表示器1317には、暫定区間表示と確定区間表示とが所定時間(例えば5秒)間隔で切り替えられて表示される。暫定区間表示では、計測中の区間のベース値を表示する。具体的には、上2桁に「bA.」を表示してベース値Aを表示していることを示し、下2桁に計測中のベース値Aを2桁の百分率で表示する。なお、ベース値Aの百分率の整数部分が99である場合は「99」を表示し、100以上である場合は「99.」を表示し、0である場合は「00」を表示する。このため、ベース表示器1317の表示桁数が2桁でも、ベース値Aが0%か100%かが分かるように表示できる。
また、暫定区間表示では、低確率・非時短アウト球数が所定数(例えば、6000個)未満の場合は上2桁(又は4桁全て)を点滅表示して(例えば、周期0.6秒で、0.3秒点灯と0.3秒消灯を繰り返す)、正確なベース値が計測できていないことを示す。一方、低確率・非時短アウト球数が所定数(例えば、6000個)以上の場合は上2桁を点灯表示して、正確なベース値が計測できていることを示す。
確定区間表示では、一つ前の区間のベース値を表示する。具体的には、上2桁に「bb.」を点灯表示してベース値Bを表示していることを示し、下2桁に一つ前の区間のベース値(一つ前の期間の下2桁の最終値であるベース値B)を2桁の百分率で点灯表示する。なお、ベース値Bの百分率の整数部分が99である場合は「99」を表示し、100以上である場合は「99.」を表示し、0である場合は「00」を表示する。このため、ベース表示器1317の表示桁数が2桁でも、ベース値Bが0%か100%かが分かるように表示できる。
なお、第1区間においては、一つ前の区間はテスト区間であるため、ベース値が計測されていない。このため、確定区間表示では、上2桁に「bb.」を点滅表示し、下2桁に「--」を点滅表示する。
本実施例のパチンコ機1では、初回電源投入からアウト球数が500個未満の所定数(例えば、256個)はテスト区間として、ベース値を計算しない。これは、パチンコ機1の初回電源投入から所定数の発射においては、確率分布の範囲内で出球がばらつくことがあり、ベース値が安定せず、意味のあるベース値が計測できないからである。このため、テスト区間においては、ベース表示器1317にベース値を表示せずに、ベース値を不定とする。具体的には、暫定区間表示では、上2桁に「bA.」を表示し、下1桁に「--」を表示し、確定区間表示では、上2桁に「bb.」を表示し、下1桁に「--」を表示する。テスト区間においては、ベース表示器1317の全桁数を点滅表示して、正確なベース値が計測できていないことを示す。なお、テスト区間においてもベース値を計算して、計算されたベース値をベース表示器1317に表示せずに、ベース値を不定としてもよい。
ここで、初回電源投入時とは、パチンコ機の1の完成後の初めての電源投入時や、ベース算出用ワークエリアの初期化(図101のS26、図108のS8013)が実行された直後の状態である。また、本明細書で一般的に用いられる電源投入時とは、初回電源投入時以外の電源投入時である。
また、電源投入後の所定時間や、設定変更モードや設定確認モードの終了後(設定キー971のOFF操作から)所定時間において、ベース表示器1317の全ての桁の全LEDを点滅してもよい。
なお、後述するベース算出用領域13128のデータの検査において、データに異常が検出され、データが消去された場合、ベース値の計算はテスト区間から再開する。
テスト区間以外の各区間において、全ての遊技状態(大当たり中、通常遊技中、時短中、非時短中、高確率中、低確率中など)の全アウト球数が52000に至ると、次の区間に切り替え、新たにベース値を計測する。なお、1区間のアウト球数は52000個ではなく、予め定めた値であれば他の数でもよい。例えば、パチンコ機1の1日の稼動時間を10時間だと想定すると、1日の稼動(アウト球数)である60000個を1区間のアウト球数に採用してもよい。切りのよい数字である50000個や100000個を採用してもよい。
なお、1区間のアウト球数を適宜変更可能とする構成にしてもよい。例えば、主制御基板1310に設定用のスイッチ(DIPスイッチ、ロータリースイッチなど)を設け、当該スイッチの設定に応じて1区間のアウト球数が設定されるとよい。当該スイッチは、パチンコ機1の裏面側に設けられる主制御基板1310又は主制御基板1310に接続される他の基板上に設けられる。さらに、当該スイッチの設定を変更すると、RAM1312のベース算出用ワークエリア(ベース算出用領域13128)を初期化してテスト区間からベース値の計算を再開したり、現在の区間の最初から再開してもよい。パチンコ機は、新台として導入された直後は稼動が多いので、1区間のアウト球数を大きい数に設定し、営業期間が経過すると、1区間のアウト球数を小さい数に設定する。すなわち、本実施例のパチンコ機1ではベース値の計算の単位となる区間の長さを定める稼動が設定可能な設定手段を有し、初回電源投入時には、該設定手段によって設定された稼動に基づいて1区間の長さが設定される。
なお、確定区間表示として、現在測定中の暫定区間の一つ前の区間を表示する例を説明するが、複数の確定区間(例えば、1~3区間前の区間)のベース値を切り替えて表示してもよい。このとき、所定時間毎に暫定区間→確定区間1→確定区間2→確定区間3と切り替えて表示しても、別途設けた表示切替スイッチの操作によって、暫定区間→確定区間1→確定区間2→確定区間3を切り替えて表示してもよい。
この場合、確定区間表示におけるベース表示器1317の上2桁を「bb.」ではなく、「b1」「b2」「b3」のように、表示されている区間が分かるように、各確定区間で異なる表示をするとよい。
このように、ベース表示器1317に、現在計測中の区間のベース値と、直前の一つ又は複数の区間のベース値とを所定時間毎に切り替えて表示する。また、ベース表示器1317の一部に表示内容を区別可能な表示を行い、他の一部に計測されたベース値を表示する。
図100は、ベース表示器1317に表示される文字の例を示す図である。
前述したように、ベース表示器1317は、複数桁(例えば4桁)の7セグメントLEDで構成されており、各桁のセグメントを点灯又は点滅することによって、数字や文字を表示する。数字として0から9を表示でき、文字としてアルファベットのA、b、c、d、E、F、Lや-符号も表示できる。さらに、数字や文字と同時に小数点も表示できる。小数点と同時に数字の6が表示される場合と数字の9が表示される場合を図示した。
図101及び図102は、本実施例のパチンコ機の初期化処理の一例を示すフローチャートである。
図101及び図102に示す初期化処理は、図21及び図22で前述した初期化処理と比較し、チェックコード算出処理(ステップS50)及びチェックコード格納処理(ステップS52)が削除される。このため、ベース算出用領域のチェックコードの計算は、タイマ割込み処理のベース算出処理(ステップS8038)で実行される。なお、図21及び図22で前述した初期化処理と同じステップには同じ符号を付し、その詳細な説明は省略する。
パチンコ機1に電源が投入されると、主制御基板1310の主制御MPU1311が主制御プログラムを実行することによって初期化処理を行う。主制御MPU1311は、まず、主制御MPU1311に内蔵されたRAM1312のプロテクトを書き込み許可に設定し、RAM1312への書き込みができる状態にする(ステップS10)。続いて、主制御MPU1311は、内蔵されたウォッチドッグタイマを起動し(ステップS12)、所定のウェイト時間(サブ基板(周辺制御基板1510など)が起動するために必要な時間)が経過したかを判定する(ステップS16)。所定のウェイト時間が経過していれば、RAMクリアスイッチが操作されているかを判定する(ステップS18)。RAMクリアスイッチが操作されている場合、内蔵RAM1312のワークエリアにバックアップされているデータのうちベース算出用ワークエリア(ベース算出用領域13128)以外の領域のデータを消去し(ステップS30)、ステップS24に進む。一方、RAMクリアスイッチが操作されていない場合、内蔵RAM1312にバックアップされているデータを消去せず、停電フラグが設定されているかを判定する(ステップS20)。
その結果、停電フラグが設定されていなければ、内蔵RAM1312のワークエリアのデータは正しくない恐れがあるので、ワークエリアにバックアップされているデータ(ベース算出用領域13128以外)を消去し(ステップS30)、ステップS24に進む。一方、停電フラグが設定されていれば、停電フラグをクリアし、前回の電源遮断時に計算されたチェックサムを用いて内蔵RAM1312のワークエリアにバックアップされているデータから算出したチェックサムとステップS48で記憶したチェックサムとを比較(検証)する(ステップS22)。
その結果、バックアップデータから算出されたチェックサムとステップS48で記憶したチェックサムとが一致しなければ、内蔵RAM1312のワークエリアのデータは正しくない恐れがあるので、ワークエリアにバックアップされているデータ(ベース算出用領域13128以外)を消去し(ステップS30)、ステップS24に進む。一方、バックアップデータから算出されたチェックサムとステップS48で記憶したチェックサムとが一致すれば、内蔵RAM1312のワークエリアのデータは正しいので、ワークエリアにバックアップされているデータを消去せず、ステップS24に進む。
続いて、チェックコードを用いてベース算出用ワークエリア(ベース算出用領域13128)が正常かを判定する(ステップS24)。異常であると判定された場合、ベース算出用ワークエリアのデータは正しくない恐れがあるので、ベース算出用ワークエリアに格納されているデータを消去する(ステップS26)。
本実施例のパチンコ機1では、RAM1312の少なくとも一部の領域が初期化されるケースとして、RAMクリアスイッチの操作(ステップS18)と、停電フラグがセットされていない停電フラグ異常(ステップS20)と、RAMのチェックサムが一致しないRAM異常(ステップS22)と、ベース算出用ワークの異常(ステップS24)とがある。これらのうち、図示したように、電源投入時にRAMクリアスイッチの操作が検出された場合、及び停電フラグ異常、RAM異常の場合は、遊技制御用領域13126(遊技用ワーク領域と遊技用スタック領域を含む)をクリアし、ベース算出用領域13128(ベース算出用ワーク領域とベース算出用スタック領域を含む)はクリアしない。また、ベース算出用ワーク異常の場合、ベース算出用領域13128(遊技制御領域外)をクリアし、遊技制御用領域13126はクリアしない。
なお、図示したものと異なり、停電フラグ異常、RAM異常、ベース算出用ワーク異常の場合は、RAM1312に格納されたデータの正当性が保証されないことから、遊技制御用領域13126及びベース算出用領域13128を含む全RAM領域をクリアしてもよい。ベース算出用ワーク異常の場合に全RAM領域をクリアすると、遊技状態を示すデータが消失して正常な処理が実行不可能になるメモリ構成である場合、ベース算出用ワーク領域とベース算出用スタック領域のみを初期化するとよい。また、電源投入時にRAMクリアスイッチの操作が検出された場合は、前述と同様に、遊技制御用領域13126(遊技用ワーク領域と遊技用スタック領域を含む)をクリアし、ベース算出用領域13128はクリアしなくてよい。
なお、ベース算出用領域13128に、1又は複数のバックアップ領域を設ける場合、最初に、チェックコードを用いてメイン領域を判定し、メイン領域が異常であると判定された場合、バックアップ領域1、2、Nの順で判定し、最初に正常であると判定されたバックアップ領域のデータをメイン領域に複製するとよい。その後、バックアップ領域のデータは消去しても、そのまま残してもよい。メイン領域が正常であると判定された場合、バックアップ領域のデータは消去しても、そのまま残してもよい。
このように、本実施形態のパチンコ機1では、内蔵RAM1312のワークエリアにバックアップされているデータを、データの種別毎に(遊技制御用領域13126とベース算出用領域13128とを)異なる条件で消去する。すなわち、RAMクリアスイッチの操作によって、バックアップされた遊技制御用領域13126は消去されるが、バックアップされたベース算出用領域13128は消去されない。RAMクリアスイッチの操作によってベース算出用領域13128が消去できると、パチンコ機1が算出したベース値を任意のタイミングで消去できる。このため、RAMクリアスイッチの操作によって、バックアップされたベース算出用領域13128が消去されないようにして、遊技場の係員の操作によるベース算出用領域13128の消去を防止し、異常なベース値の隠蔽を防止できる。このため、ベース値が高い状態や低い状態へ改造された遊技機を確実に検出できる。
主制御MPU1311は、RAM作業領域の復電時設定又はRAM初期化処理が実行されると、主制御MPU1311(CPU13111)の各種設定レジスタに設定するための初期設定処理(ステップS28)、周辺制御基板1510に送信するための電源投入時コマンド設定処理(ステップS32)を実行し、タイマ割込み処理をはじめとする割り込み処理の実行を許可する(ステップS34)。続いて、主制御MPU1311は、停電予告信号を取得し(ステップS36)、停電予告信号がONであるか否かを判定する(ステップS38)。停電予告信号がONでない場合(ステップS38の結果が「No」)、乱数更新処理を実行する(ステップS40)。
一方、停電予告信号を検出した場合には(ステップS38の結果が「Yes」)、主制御MPU1311は、電源断時処理を実行する(電断時設定手段)。電源断時処理では、まず、割込み処理の実行を禁止し(ステップS42)、出力ポートをクリアして、各ポートからの出力によって制御される機器の動作を停止する(ステップS44)。続いて、主制御MPU1311は、バックアップされるワークエリアに格納されたデータが正常に保持されたか否かを判定するためのチェックサムを計算し(ステップS46)、チェックサムの計算結果をRAM1312のチェックサムエリアに格納する(ステップS48)。
続いて、ベース算出用ワーク(ベース算出用領域13128)のメイン領域のデータを各バックアップ領域に複製する(ステップS54)。このとき、計算されたチェックコードも複製する。バックアップは、主基板側電源断時処理ではなく、ベース算出処理で適宜(例えば、データの更新の都度)、実行してもよい。このように、ベース値の算出に使用するデータを、計算された(又は、所定値の)チェックコードと共にバックアップ領域に格納することによって、電源遮断時にもベース算出用のデータや算出されたベース値を保持し、長期間の稼動におけるベース値を算出できる。
なお、ステップS24でチェックされるチェックコードは、ベース算出処理のステップS8038(図106)で算出される。また、後述する変形例においては、初期化処理のステップS50(図22)で算出される。
さらに、停電フラグとしてバックアップフラグエリアに正常にバックアップされたことを示す値を格納し(ステップS56)、RAMプロテクトレジスタに書き込み禁止を示す”01H”を出力することでRAM1312の書き込みを禁止し(ステップS58)、停電から復旧するまでの間、待機する(無限ループ)。
図103は、本実施例のパチンコ機1において、図26(A)に示す役物比率算出用領域が読み替えられるベース算出用領域13128の構成を示す図である。
ベース算出用領域13128は、RAM1312の一部の領域で構成され、前述したように、遊技制御用領域13126とは別に(遊技制御領域外に)設けられる。
ベース算出用領域13128は、ベース値A、ベース値B、区間カウンタ、全アウト球数、低確率・非時短アウト球数及び低確率・非時短賞球数の格納領域を含む。
ベース値Aの格納領域は、1バイトで構成され、現在計測中の暫定区間のベース値を格納する。ベース値Bの格納領域は、1バイトで構成され、前記暫定区間の一つ前の区間において計測されたベース値を格納する。区間カウンタの格納領域は、1バイトで構成され、現在ベース値を測定中の区間を示す値を格納する。区間カウンタは、区間が切り替えられる毎に更新され、区間によって異なる表示内容を制御するために使用される。なお、区間カウンタは、0、1、2のいずれかの値、すなわち、2より大きくならないように制御するとよい。具体的には、テスト区間では区間カウンタ=0、第1区間では区間カウンタ=1、第2区間以後では区間カウンタ=2である。また、区間カウンタは、0から255の値として、255より大きくならないように制御してもよく、第2区間以後では区間カウンタ=2以上となる。
全アウト球数の格納領域は、2バイトで構成され、遊技状態によらない全てのアウト球数(すなわち、遊技機の稼働を示す値)を格納する。全アウト球数は、ベースの測定単位である区間の切り替えを判定するために使用される。本実施例のパチンコ機では、概ね1日の稼働を一つの区間として、各区間におけるベース値を計測する。このため、2バイト(65536)を全アウト球数の格納領域に割り当てている。全アウト球数は、前述したように、遊技状態によらない全てのアウト球数を区間毎に計数するための記憶領域であり、前述した実施例の総アウト球数(特賞中のアウト球数のパチンコ機1の稼働開始からの合計値)とは異なるものである。
低確率・非時短アウト球数の格納領域は、2バイト以上(望ましくは、4バイト)で構成され、ベース値を計算するためのアウト球数(特賞中以外の遊技状態のアウト球数)を格納する。低確率・非時短賞球数の格納領域は、2バイト以上(望ましくは、4バイト)で構成され、ベース値を計算するための賞球数(特賞中以外の遊技状態の賞球数)を格納する。なお、低確率・非時短アウト球数の格納領域と低確率・非時短賞球数の格納領域は2バイト以上の領域であればよいが、ベース値の計算処理を考慮すると、同じバイト数にする方が望ましい。
前述した各格納領域の記憶容量(バイト数)は、前述したものは一例に過ぎず、1区間のアウト球数に応じて定めるとよい。
また、ベース算出用領域13128のメイン領域とバックアップ領域とを設ける場合、同じ構成の記憶領域をRAM1312に設ける。
図104は、本実施例のパチンコ機のタイマ割込み処理の一例を示すフローチャートである。
図104に示すタイマ割込み処理は、図23で前述したタイマ割込み処理と比較し、ステップS81の役物比率算出用領域更新処理に代えてベース算出処理(ステップS801)が設けられ、ステップS89の役物比率算出・表示処理が削除される。なお、図23で前述したタイマ割込み処理と同じステップには同じ符号を付し、その詳細な説明は省略する。
タイマ割込み処理が開始されると、主制御MPU1311は、主制御プログラムを実行することによって、まず、プログラムステータスワードのRBS(レジスタバンク選択フラグ)に1を設定し、レジスタを切り替える(ステップS70)。
次に、主制御MPU1311は、スイッチ入力処理(ステップS74)、タイマ更新処理(ステップS76)、乱数更新処理1(ステップS78)、賞球制御処理を実行する(ステップS80)。
続いて、主制御MPU1311は、現在の遊技状態を参照して、遊技価値として払い出される賞球数を現在の遊技状態に対応した領域に加算して、主制御内蔵RAM1312のベース算出用領域13128(図103参照)を更新し、ベース値を計算する(ステップS801)。ベース算出処理の詳細は、図105及び図106を用いて後述する。ベース算出処理(ステップS801)は、賞球制御処理(ステップS80)の後であれば、どの順序で実行してもよいが、タイマ割込み毎に確実に実行するために、早い順序で実行するとよい。
続いて、主制御MPU1311は、枠コマンド受信処理(ステップS82)、不正行為検出処理(ステップS84)、特別図柄及び特別電動役物制御処理(ステップS86)、普通図柄及び普通電動役物制御処理(ステップS88)、出力データ設定処理(ステップS90)、周辺制御基板コマンド送信処理(ステップS92)を実行する。
最後に、主制御MPU1311は、ウォッチドッグタイマクリアレジスタWCLに所定値(18H)をセットする(ステップS96)。また、最後に、主制御MPU1311は、レジスタバンクを切り替える(復帰する)。以上の処理が終了すると、タイマ割込み処理を終了し、割り込み前の処理に復帰する。
このように、本実施例のパチンコ機では、タイマ割込み処理でベース値を計測するので、遊技中のベース値をリアルタイムに計測できる。
図105、図106は、ベース算出処理の一例を示すフローチャートである。
ベース算出処理(ステップS801)は、タイマ割込み処理から呼び出されて、主制御MPU1311が実行する。
主制御MPU1311は、ベース算出プログラムを実行することによって、まず、ベース値の計算にエラーがあるかを判定する(ステップS8011)。例えば、前述したように、入賞口センサ(一般入賞口センサ3015、第一始動口センサ2104、第二始動口センサ2551、第一大入賞口センサ2114、第二上大入賞口センサ2554、第二下大入賞口センサ2557など)や排出球センサ(盤側排出球センサ3060A、枠側排出球センサ3060B)に異常がある場合、インターフェイス回路1331から出力された異常信号によって、ベース値を正確に計算できないエラーがあると判定する。また、不正行為が行われていると判定された(例えば、磁気検出センサが磁気を検出した、振動検出センサが振動を検出した、電波検出センサが電波を検出した)場合も、ベース値を正確に計算できないエラーがあると判定する。このエラーがあると判定された場合、ベース表示器1317の表示を消灯してもよい。ステップS8011では、遊技停止を伴うエラー(例えば、磁気、振動、電波エラー等)については、エラーである(YES)と判定し、遊技停止を伴わないエラー(例えば、賞球異常、扉開放等)やベースに算出に直接関係しない故障(補給切れ、満タンエラー等)については、エラーではない(NO)と判定してもよい。つまり、複数種類の異常状態のうち、一部の異常があってもベース算出処理を実行して、他の異常があればベース算出処理を実行しなくてもよい。
次に、主制御MPU1311は、アウト球数を取得する(ステップS8014)。アウト球数は、前述したように、発射球センサ1020や排出球センサ3060などによって検出され、ステップS74のスイッチ入力処理で、これらのセンサの検出信号を読み取って、センサの検出信号があればアウト球数=1を取得する。複数の排出球センサ3060でアウト球が検出された場合、各センサで検出された数の合計値をアウト球数として取得する。すなわち、1回のタイマ割込み処理において、複数のアウト球を検出することがある。
次に、主制御MPU1311は、賞球数を取得する(ステップS8015)。賞球数は、前述したように、ステップS80の賞球制御処理で入力情報に基づいて算出された賞球数を取得する。ベース算出処理で取得する賞球数は、払い出しが決定した賞球数でもよい。また、作成済みの払出コマンドに対応する賞球数でもよい。また、送信済の払出コマンドに対応する賞球数でもよい。また、主制御基板1310が払出制御基板951に払出コマンドを送信し、払出制御基板951から受信確認(ACK)を受信した払出コマンドに対応する賞球数でもよい。さらに、主制御基板1310が払出制御基板951に払出コマンドを送信し、払出制御基板951から払出完了の報告を受けた賞球数(払出済み賞球数)でもよい。このバリエーションは図41から図44を用いて説明した通りである。
次に、主制御MPU1311は、ステップS8014でアウト球が検出されているかを判定する(ステップS8016)。アウト球が検出されていなければ、アウト球に関する処理を実行せずに、ステップS8022に進む。一方、アウト球が検出されていれば、ベース算出用領域13128に格納されている全アウト球数に検出されたアウト球数を加算する(ステップS8017)。
次に、主制御MPU1311は、ベース算出用領域13128に格納されている区間カウンタを参照して、現在、テスト区間であるかを判定する(ステップS8018)。テスト区間は、パチンコ機の初回電源投入(又は、ベース算出用領域13128の初期化)からアウト球数が500個未満の所定値である区間であり、区間カウンタの値は初期値である0となっている。このため、区間カウンタ値が0であればテスト区間であると判定できる。テスト区間であれば、ベース値を計算する必要がないので、ステップS8028に進む。一方、テスト区間でなければ、現在の遊技状態が特賞中であるかを判定する(ステップS8019)。特賞中であるかの判定は、前述した図39のステップS810と同様に判定できる。遊技状態が特賞中であるとは、大当りにより大入賞口2005、2006が開放しており、遊技者が多くの賞球を獲得できる時間中であるが、大当り遊技のオープニングやエンディングの時間を含めてもよい。一つの大当り中で大入賞口2005、2006が開放と閉鎖を繰り返す場合、大入賞口の閉鎖から次の開放までの間(閉鎖インターバル)の時間を含んでもよい。すなわち、ステップS810における特賞中は、条件装置作動中を意味し、例えば、特別図柄変動表示ゲームの大当たり図柄の確定からエンディング終了までである。また、右打ち指示中の全ての時間を含んでもよい。
さらに、始動口2002、2004においては、時短中、確変中(ST中)、電サポ中を特賞中に含めてもよい。さらに、時短中、確変中(ST中)、電サポ中以外の遊技状態において、始動口2004の開放から閉鎖後の所定時間(例えば、始動口に入賞した球がアウト球として検出されるまでに必要な数秒)までの間を特賞中に含めてもよい。なお、高確率遊技状態であるが時短中(電サポ中)とならない所謂「潜伏遊技状態」は特賞中に含まずに、通常状態(低確率・非時短状態)と同様に、当該遊技状態における賞球数やアウト球数を使用してベース値を算出してもよい。この場合、通常遊技状態と潜伏遊技状態の各々において、別個にベース値を算出し、何れのベース表示か否かが識別可能にベース値を表示してもよい。
潜伏遊技状態は高確率であっても遊技者には高確率状態であることを認識させない遊技状態であるが、潜伏遊技状態をベース値の算出から除外すると、営業中に枠が開放された場合に、遊技者がベース表示器1317を見て、潜伏遊技状態(すなわち、高確率)であることを認識することがある。つまり、枠開放状態で、ホールの従業員が入賞口に球を手入れしたりアウト口に球を流した場合に、遊技者はベース表示が変わるかによって遊技状態を知ることができる。通常遊技状態と潜伏遊技状態とを区別せずにベース値を計算することによって、このような問題を回避できる。
一方、ホールの営業上、低確率・非時短状態におけるベース値の管理が必要な場合があり、潜伏遊技状態を含めてベース値を計算すると、ホールの営業形態に応じた管理ができない場合がある。潜伏遊技状態を除外してベース値を計算することによって、このような問題を回避できる。通常遊技状態と潜伏遊技状態とで分けてベース値を計算することによって、同様の問題を回避できる。すなわち、通常遊技状態と潜伏遊技状態とは、そもそも異なる遊技状態であることから、ホールの営業形態によっては、各遊技状態で分けてベース値を管理(検査)したいと考える場合もあるためである。
なお、通常遊技状態と潜伏遊技状態とを分けてベース値を算出する場合、各遊技状態の専用の計算処理を用いてベース値を算出しても、共通の計算処理を用いてベース値を算出してもよい。共通の計算処理を用いてベース値を算出することによって、CPUの処理負担を軽減でき、プログラム容量を軽減できる。
本実施例のパチンコ機1に設けられる電動作動役物は、ベース値の計算の観点から2種類に分けられる。前述したように、本実施例の遊技機における、大入賞口2005、2006に関する特賞中とは、条件装置作動中(例えば、特別図柄変動表示ゲームの大当たり図柄の確定からエンディング終了まで)であり、ベース値は特賞中以外の賞球およびアウト球数で計算されるので、大入賞口2005、2006への正常な(いわゆる大当り中の)入賞はベース値の算出に使用されない。一方、開閉部材を有する始動口2004(いわゆる、電動チューリップ)は、特賞中以外(低確率時や非時短時)の入賞球および賞球がベース値の算出に使用される。つまり、電動作動役物のうち、一部の役物(大入賞口2005、2006)は、遊技状態(特賞中か否か)に関係なく、入賞球数および賞球数をベース値の計算に使用せず、他の役物(始動口2004)は、入賞球数および賞球数をベース値の計算に使用するか使用しないかが、遊技状態(特賞中か否か)に応じて切り替えられることになる。
また、大入賞口2005、2006は、条件装置が作動しない場合でも(いわゆる小当たりとして)開放するときがある。一般的に小当りは時短中に発生し、短時間開放のため遊技球が入賞する可能性が低いので、ベース値の計算には影響しない。しかし、特賞中以外(通常時)に小当たりを発生させ、遊技球が入賞する可能性が高くなる時間だけ開放してもよい。この場合、特賞中以外に発生した小当りにおける大入賞口2005、2006への入賞球および賞球はベース値の計算に使用してもよい。このようにすると、特賞中以外の小当たりの発生確率を制御することによって、ベース値の期待値(設計値)を変更できる。すなわち、ベース値の規格に対し柔軟に対応できるパチンコ機を提供でき、設計の自由度を向上できる。
遊技状態が特賞中であれば、ベース値の計算に関係しないアウト球であるため、低確率・非時短アウト球数を更新せずに、ステップS8022に進む。一方、遊技状態が特賞中でなければ、ステップS8014で検出されたアウト球数はベースの計算に用いるべきものなので、ベース算出用領域13128に格納されている低確率・非時短アウト球数に検出されたアウト球数を加算する(ステップS8020)。そして、更新フラグを1に設定する(ステップS8021)。更新フラグは、ベース算出処理(タイマ割込み処理)の実行毎に特賞中以外のアウト球や賞球が検出された場合に1に設定され、ベース値を計算すべきタイミングを示す(ステップS8026からS8027参照)。
次に、主制御MPU1311は、ステップS8015で賞球が検出されているかを判定する(ステップS8022)。賞球が検出されていなければ、賞球に関する処理を実行せずに、ステップS8026に進む。一方、賞球が検出されていれば、現在の遊技状態が特賞中であるかを判定する(ステップS8023)。特賞中であるかの判定は、ステップS8019と同じでよい。
遊技状態が特賞中であれば、ベース値の計算に関係しない賞球であるため、低確率・非時短賞球数を更新せずに、ステップS8026に進む。一方、遊技状態が特賞中でなければ、ステップS8015で検出された賞球数はベースの計算に用いるべきものなので、ベース算出用領域13128に格納されている低確率・非時短賞球数に検出された賞球数を加算する(ステップS8024)。そして、更新フラグを1に設定する(ステップS8025)。
次に、主制御MPU1311は、更新フラグが1であるかを判定する(ステップS8026)。更新フラグが1である場合、当該ベース算出処理(タイマ割込み処理)において特賞中以外のアウト球又は賞球が検出されているので、低確率・非時短賞球数を低確率・非時短アウト球数で除してベース値を計算し、ベース算出用領域13128のベース値Aの格納領域に格納する(ステップS8027)。
次に、主制御MPU1311は、区間カウンタを参照して、テスト区間中であるかを判定する(ステップS8028)。そして、区間カウンタ値が0であり、テスト区間であることを示す場合、テスト区間を終了するタイミングであるかを判定する(ステップS8029)。テスト区間は、パチンコ機の初回電源投入(ベース算出用領域13128の初期化を含む)からアウト球数が500個未満の所定値である区間であり、区間カウンタがテスト区間であることを示し、全アウト球数が当該所定値以上であれば、テスト区間を終了するタイミングであると判定できる。
その結果、テスト区間を終了するタイミングでなければ、テスト区間を継続するために、ベース算出用領域13128を更新せずに、ステップS8034に進む。一方、テスト区間中でありかつテスト区間を終了するタイミングであれば、テスト区間から第1区間に移行するため、ステップS8032に進む。具体的には、主制御MPU1311は、区間カウンタに1を加算する(ステップS8032)。区間カウンタは、テスト区間を表す0から第1区間を表す1に変化する。そして、全アウト球数、低確率・非時短アウト球数、及び低確率・非時短賞球数を0に初期化する(ステップS8033)。この処理によって、テスト区間を終了して、第1区間に移行する。
一方、ステップS8028で、区間カウンタ値が0ではなく、テスト区間中ではないと判定された場合、主制御MPU1311は、全アウト球数が52000以上であるかを判定する(ステップS8030)。全アウト球数が52000より小さければ、現在の区間を継続するために、ステップS8034に進む。
一方、全アウト球数が52000以上であれば、当該区間が終了し、新たな区間を開始するための処理(ステップS8031~S8033)を実行する。具体的には、主制御MPU1311は、ベース算出用領域13128において、ベース値A格納領域からベース値Aを読み出し、ベース値B格納領域に書き込む(ステップS8031)。その後、区間カウンタに1を加算する(ステップS8032)。区間カウンタは、前述したように、0、1、2のいずれかの値、すなわち、2より大きくならないように制御されるので、区間カウンタ値が2の場合に区間カウンタに1を加算しても区間カウンタ値は増加せず、2のままである。そして、全アウト球数、低確率・非時短アウト球数、及び低確率・非時短賞球数を0に初期化し(ステップS8033)、次の区間に移行する。
次に、主制御MPU1311は、更新フラグが1であるかを判定する(ステップS8034)。更新フラグが1である場合、新しく算出されたベース値を表示するためのデータを生成する(ステップS8035)。ベース表示データ生成処理の詳細は、図107を用いて後述する。その後、主制御MPU1311は、更新フラグを0に設定する(ステップS8036)。
次に、主制御MPU1311は、表示切替カウンタに1を加算する(ステップS8037)。表示切替カウンタは、図99で説明した暫定区間表示と確定区間表示とを所定時間間隔(例えば5秒)で切り替えて表示するために使用される。暫定区間表示と確定区間表示とを切り替える所定時間は、各区間における低確率・非時短アウト球数が6000個未満である場合の点滅表示(図107のステップS8051で制御される点滅表示)の周期より十分に長い時間にするとよい。これは、点滅と表示切り替えとが同程度の周期だと、点滅表示(すなわち、低確率・非時短アウト球数が6000個未満であるか)が分かりにくくなることから、点滅表示なのか表示の切り替えなのかを分かりやすくするためである。
次に、主制御MPU1311は、ベース算出用領域13128のデータからチェックコード(例えば、チェックサム)算出する(ステップS8038)。チェックコードの算出方法は、初期化処理(図22)のステップS50でチェックコードを算出する処理と同じ算出方法を用いる。また、チェックコードを算出することなく固定値とする場合には、チェックコードの隣り合うビット同士が同値とならない複数バイトの値とするとよい(例えば、2バイトであれば、A55AH(1010010101011010B)のようにする)。また、連続したエリアに固定値を設定するのではなく、分けて配置してもよい。例えば、ベース算出用領域13128の先頭に第1固定値を格納し、中間に第2固定値を格納し、最後に第3固定値を格納する。チェックコードが固定値である場合、チェックサムの算出によるチェックデータより多いバイト数で構成して、RAM異常の判定可能性を向上するとよい。
このように、本実施例のベース算出処理によると、タイマ割込み処理ごとにベース値を算出して、表示するので、賞球の発生毎やアウト球の発生毎のタイミングでベース値を遅滞なく(リアルタイムに)表示でき、ベース値が正常か異常かを遅滞なく判断できる。なお、ベース算出用に使用する記憶領域であるベース算出用領域13128の容量は、遊技制御用領域13126の容量と比較して極めて少ないため、ベース算出処理の実行毎に、その終了時にチェックコードを算出しても、主制御MPU1311の処理負荷に及ぼす影響は少ない。
また、賞球について、発生した入賞信号に基づく賞球払出予定数を用いてベース値を算出・表示している場合、ベース値として算出・表示されるタイミングと、賞球が払出されるタイミングとが異なる。すなわち、払出装置に異常が生じて、賞球が払い出されない状態(補給切れ、上皿が満タン、賞球通路に設けられた払出数カウントセンサの故障、払出モータの故障などによる払出装置の停止など)になっても、ベース値は算出され、表示される。
なお、前述したベース算出処理では、タイマ割込み処理からベース算出処理が呼び出される毎に当該タイマ割込み処理で検出されたアウト球数及び計算された賞球数を用いてベース値を計算したが、排出球センサ3060がアウト球を検出する毎、及び各種入賞口センサが入賞球を検出する毎にベース値を計算してもよい。すなわち、1回のタイマ割り込み処理において、ベース値計算処理が複数回呼び出され、ベース値が複数回計算される。このようにすると、1回のベース算出処理の中で前述した区間の切り替え(アウト球数が52000個)のタイミングが到来しても、前後のいずれの区間のベース値として計算するかを区別でき、リアルタイムに正確なベース値を表示できる。
また、前述したベース算出用領域更新処理(図46)のステップS815からS817のように、賞球数に異常があるかを判定し、賞球数に異常があれば、異常報知コマンドを生成し、賞球異常報知用タイマをリセットしてもよい。さらに、ステップS824からS825のように、賞球異常報知用タイマがタイムアップしたかを判定し、賞球異常報知用タイマがタイムアップすると、賞球異常報知停止コマンドを生成し、賞球異常報知を停止してもよい。
図107は、ベース表示データ生成処理の一例を示すフローチャートである。
ベース表示データ生成処理は、ベース算出処理のステップS8035から呼び出されて実行される。
主制御MPU1311は、ベース表示データ生成プログラムを実行することによって、まず、表示切替カウンタが1250より小さいかを判定する(ステップS8041)。前述したタイマ割込み処理は4ミリ秒ごとに実行されることから、表示切替カウンタが1250に到達すると、表示切替カウンタが0に初期化されてから5秒の時間が経過している。ステップS8053において、表示切替カウンタは、2499に到達すると0に初期化されるので、表示切替カウンタが0~1249の間はステップS8042~S8045の処理を実行し、表示切替カウンタが1250~2499の間はステップS8046~S8049の処理を実行する。このため、本実施例のベース表示データ生成処理では、5秒ごとにベース表示器1317の表示データを切り替える。
表示切替カウンタが1250より小さければ、ベース表示器1317の上2桁に「bA.」を表示するためのデータを生成する(ステップS8042)。その後、主制御MPU1311は、ベース算出用領域13128に格納されている区間カウンタを参照して、現在、テスト区間であるかを判定する(ステップS8043)。テスト区間ではベース値が計算されていないので、下2桁に「--」を表示するためのデータを生成する(ステップS8044)。一方、テスト区間でなければ、暫定区間において現在計測中のベース値Aを表示するためのデータを生成する(ステップS8045)。
ステップS8041において、表示切替カウンタが1250以上であると判定されると、ベース表示器1317の上2桁に「bb.」を表示するためのデータを生成する(ステップS8046)。その後、主制御MPU1311は、ベース算出用領域13128に格納されている区間カウンタを参照して、現在、テスト区間又は第1区間であるかを判定する(ステップS8047)。テスト区間又は第1区間では過去の確定区間でベース値が計測されていないので、下2桁に「--」を表示するためのデータを生成する(ステップS8048)。一方、テスト区間及び第1区間のいずれでもなければ、直近の確定区間において計測されたベース値Bを表示するためのデータを生成する(ステップS8049)。
次に、主制御MPU1311は、ベース算出用領域13128に格納されている低確率・非時短アウト球数を参照して、低確率・非時短アウト球数が6000より小さいかを判定する(ステップS8050)。そして、低確率・非時短アウト球数が6000より小さければ、当該区間でベース値の計測を開始した後の稼働数(アウト球数)が少ないので、ベース値が安定していないことがあり、ベース表示器1317の表示が点滅するように制御する(ステップS8051)。一方、低確率・非時短アウト球数が6000以上であれば、ベース表示器1317の表示が点滅しないで点灯するように制御する(ステップS8052)。
次に、主制御MPU1311は、表示切替カウンタが2499以上であるかを判定する(ステップS8053)。表示切替カウンタが2499より小さければ、表示切替カウンタを初期化せず、ステップS8055に進む。一方、表示切替カウンタが2499以上であれば、一つの繰り返しが終了したので、表示切替カウンタを0に初期化する(ステップS8054)。
最後、主制御MPU1311は、生成された表示データと点灯態様(点灯又は点滅)が指定された表示パターンを生成する(ステップS8055)。
このように、所定時間毎に実行されるタイマ割込み処理(ベース算出処理)において、定期的に更新される表示切替カウンタを用いてベース表示器1317への表示内容を切り替えることによって、暫定区間において現在計測中のベース値Aと確定区間において過去に計測したベース値Bとを分かりやすく表示できる。
また、各区間においてベース値が安定しない範囲では点滅表示をするので、ベース値が安定した範囲にあるか、安定していない範囲にあるかを、ベース表示器1317の表示によって容易に確認できる。
図108は、ベース算出処理の変形例を示すフローチャートである。図108に示す変形例では、ベース算出用ワークのチェック処理(ステップS8012、S8013)が追加された他は、図105に示すベース算出処理と同じである。なお、図108では、ベース算出処理のうちベース値Aの計算(ステップS8027)までを説明するが、ステップS8028からS8038の処理は、前述した図106と同じである。
主制御MPU1311は、ベース算出プログラムを実行することによって、まず、ベース値の計算にエラーがあるかを判定する(ステップS8011)。
次に、主制御MPU1311は、チェックコードを用いてベース算出用ワークエリア(ベース算出用領域13128)が正常かを判定する(ステップS8012)。異常であると判定された場合、ベース算出用ワークエリアのデータは正しくない恐れがあるので、ベース算出用ワークエリアに格納されているデータを消去する(ステップS8013)。
なお、ベース算出用領域13128に、1又は複数のバックアップ領域を設ける場合、最初に、チェックコードを用いてメイン領域を判定し、メイン領域が異常であると判定された場合、バックアップ領域1、2、Nの順で判定し、最初に正常であると判定されたバックアップ領域のデータをメイン領域に複製するとよい。その後、バックアップ領域のデータは消去しても、そのまま残してもよい。メイン領域が正常であると判定された場合、バックアップ領域のデータは消去しても、そのまま残してもよい。
図示した例では、ベース値の計算にエラーがあるかを判定(ステップS8011)した後に、ベース算出用領域13128が正常かを判定(ステップS8012)したが、これとは逆に、ベース算出用領域13128が正常かを判定(ステップS8012)して、判定結果に基づく必要な処理を実行した後に、ベース値の計算にエラーがあるかを判定(ステップS8011)してもよい。
以後の処理(ステップS8014~)は前述した図105及び図106と同じなので、それらの説明は省略する。
図108に示すベース算出処理では、タイマ割込み毎(すなわち、4ミリ秒毎)に、ベース算出用領域13128のデータが正常かを判定するので、ベース算出用領域13128の異常が早く検出でき、異常なベース値の表示を抑制できる。
次に、本実施例のパチンコ機においてベース算出用領域13128の異常判定方法を説明する。ベース値の計算に用いられる値及び計算されたベース値は、内蔵RAM1312のワークエリアのベース算出用領域13128(図26に示す「役物比率算出用領域13128」は「ベース算出用領域13128」と読み替えられる)に格納されており、所定のタイミングでデータが正常かを判定する。この正常・異常の判定ステップと、チェックコードの計算ステップとを、どの処理(タイミング)で行うかは以下のバリエーションがある。
・図101及び図106:ベース算出処理(タイマ割込み処理)で計算したチェックコードを、電源投入時に判定する。
・図21及び図22:電源遮断時に計算したチェックコードを、電源投入時(初期化処理)に判定する。
・図106及び図108:ベース算出処理(タイマ割込み処理)で計算したチェックコードを、ベース算出処理(タイマ割込み処理)で判定する。
(チェックコードをタイマ割込み毎に算出し、電源投入時に判定するケース)
まず、図101及び図106を用いて、ベース算出処理(タイマ割込み処理)で計算したチェックコードを、電源投入時に判定する処理を説明する。
初期化処理を図101、図102に示すものとし、ベース算出処理を図105、図106に示すものとした場合、ベース算出処理(図105、図106)のステップS8038で、ベース算出用領域13128のデータからチェックコード(例えば、チェックサム)算出する。
また、初期化処理(図101、図102)のステップS24で、チェックコードを用いてベース算出用ワークエリア(ベース算出用領域13128)が正常かを判定する。その結果、異常であると判定された場合、ベース算出用ワークエリアのデータは正しくない恐れがあるので、ベース算出用ワークエリアに格納されているデータを消去する(ステップS26)。
ベース算出用領域13128のデータが消去された場合、ベース値の計算にかかる状態が初期化されるので、計算されたベース値はクリアされ、ベース値の計算はテスト期間から開始される。
なお、ベース算出用領域13128に、1又は複数のバックアップ領域を設ける場合、最初に、チェックコードを用いてメイン領域を判定し、メイン領域が異常であると判定された場合、バックアップ領域1、2、Nの順で判定し、最初に正常であると判定されたバックアップ領域のデータをメイン領域に複製して、ベース算出用領域13128のデータを復旧してもよい。その後、バックアップ領域のデータは消去しても、そのまま残してもよい。メイン領域が正常であると判定された場合、バックアップ領域のデータは消去しても、そのまま残してもよい。
この場合、チェックコードの判定の頻度が少なく、異常判定にかかる計算リソース(主制御MPU1311)の消費を低減できる。
(チェックコードを電源遮断時に算出し、電源投入時に判定するケース)
次に、図21及び図22を用いて、電源遮断時に計算したチェックコードを、電源投入時(初期化処理)に判定する処理を説明する。
初期化処理を図21、図22に示すものとし、ベース算出処理を図105、図106に示すものとした場合、初期化処理(図21、図22)の電源断時処理のステップS50で、ベース算出用ワークエリア(ベース算出用領域13128)のデータからチェックコード(例えば、チェックサム)算出する。
また、初期化処理(図21、図22)のステップS24で、チェックコードを用いてベース算出用ワークエリア(ベース算出用領域13128)が正常かを判定する。その結果、異常であると判定された場合、ベース算出用ワークエリアのデータは正しくない恐れがあるので、ベース算出用ワークエリアに格納されているデータを消去する(ステップS26)。
この場合、ベース算出処理のステップS8038でのチェックコードの算出は省略してよい。
この場合、チェックコードの計算及び判定の頻度が少なく、異常判定にかかる計算リソース(主制御MPU1311)の消費を低減できる。
(チェックコードをタイマ割込み処理で算出し、判定するケース)
次に、図106及び図108を用いて、ベース算出処理(タイマ割込み処理)で計算したチェックコードを、ベース算出処理(タイマ割込み処理)で判定する処理を説明する。
ベース算出処理を図108、図106に示すものとした場合、ベース算出処理(図108、図106)のステップS8038で、ベース算出用領域13128のデータからチェックコード(例えば、チェックサム)算出する。
また、ベース算出処理(図108、図106)のステップS8012で、チェックコードを用いてベース算出用ワークエリア(ベース算出用領域13128)が正常かを判定する。その結果、異常であると判定された場合、ベース算出用ワークエリアのデータは正しくない恐れがあるので、ベース算出用ワークエリアに格納されているデータを消去する(ステップS8013)。
この場合、初期化処理を図101、図102に示すものとし、ステップS24、S26のベース算出用ワークエリアが正常かの判定ステップは省略してよい。
この場合、前述した場合と比較して、ベース算出用領域13128の異常を迅速に検出できる。
なお、チェックコードにチェックサムではなく固定値を用いる場合、チェックコードの設定及び判定のタイミングは、チェックサムの算出及び判定のタイミングと同じでよい。また、チェックコードとしてチェックサムと固定値の両方を併用して判定してもよい。
図109は、遊技状態が切り替わるときのベース値の計算を示す図である。
始動口2004(電動チューリップ)の開放中に一つの遊技球が入賞し、その後に所定回数の変動表示ゲームが終了して、時短状態が終了し通常状態に戻った。その後、通常状態において、さらに、開放中の始動口2004に遊技球が入賞した場合を想定する。
本実施例のパチンコ機1では、始動口2004への入賞に従って、第二特別図柄表示器に第二特別図柄が変動表示する。すなわち、図示した、始動口2004へのいずれの入賞に関連して第二特別図柄が変動表示する変動表示ゲームが行われる。
また、本実施例のパチンコ機1では、特賞中のアウト球をベース計算に用いないので、始動口2004への一つ目の入賞球は低確率・非時短アウト球数に加算されずに、二つ目の入賞球は低確率・非時短アウト球数に加算される。
前述では、時短状態終了時について説明したが、STによる確変終了時も同様である。
前述した時短状態終了時の他、特別図柄変動表示ゲームの大当り発生時にも同様の現象が生じる。通常状態で、始動口2004(電動チューリップ)の開放中に一つの遊技球が入賞し、その後に大当り状態が開始し、さらに、開放中の始動口2004に遊技球が入賞した場合を想定する。
この場合も、いずれの始動口2004への入賞に関連して第二特別図柄が変動表示する変動表示ゲームが行われる。一方、特賞中のアウト球をベース計算に用いないので、始動口2004への一つ目の入賞球は低確率・非時短アウト球数に加算されるが、二つ目の入賞球は低確率・非時短アウト球数に加算されない。
さらに、特定のエラー発生時にも同様の現象が生じる。通常状態で、始動口2004(電動チューリップ)の開放中に一つの遊技球が入賞し、その後に特定のエラーが発生し、さらに、開放中の始動口2004に遊技球が入賞した場合を想定する。前述したように、本実施例のパチンコ機1では、特定のエラー発生時(インターフェイス回路1331から出力された異常信号によって、ベース値を正確に計算できないエラーがあると判定される場合)に、アウト球をベース計算に用いない。
この場合も、いずれの始動口2004への入賞に関連して第二特別図柄が変動表示する変動表示ゲームが行われる。一方、特定のエラー発生中のアウト球をベース計算に用いないので、始動口2004への一つ目の入賞球は低確率・非時短アウト球数に加算されるが、二つ目の入賞球は低確率・非時短アウト球数に加算されない。
すなわち、本実施例のパチンコ機1では、特定の条件(時短終了時、特別図柄変動表示ゲームの大当り発生時、特定のエラー発生時など)において、電動役物作動中に入賞した複数の遊技球について、ベース値の算出に用いられる場合とベース算出に用いられない場合があり、何れの入賞においても特図の変動を開始し得るものである。
また、本実施例のパチンコ機1では、保留中の特別図柄変動表示ゲームの先読み演出について、始動口2004へ時短状態で入賞した一つ目の入賞は先読み演出の対象とならず、通常状態で入賞した二つ目の入賞は先読み演出の対象としてもよい。これとは逆に、始動口2004へ時短状態で入賞した一つ目の入賞は先読み演出の対象として、通常状態で入賞した二つ目の入賞は先読み演出の対象としなくてもよい。
なお、時短状態から通常状態へ変化するタイミングについて説明したが、確変状態(ST)又は電サポ状態から通常状態へ変化するタイミングについても同様である。
[10.遊技制御領域外の処理におけるメモリの切り替え]
次に、遊技制御領域外の処理(例えば、ベース算出処理)において、CPUが使用するメモリの切り替えを説明する。
図110は、主制御MPU1311の内部構成のうち記憶領域に関する構成を示す図である。
主制御MPU1311は、全体として図18に示すように構成されているが、図110では記憶領域に関する構成を詳細に示す。
主制御MPU1311内にはデータを格納する記憶領域としてRAM1312とROM1313とCPU内補助記憶部13142とが設けられている。CPU内補助記憶部13142は、専ら、CPU13111によるプログラム実行時のデータ(例えば、演算結果の状態を表すフラグ、プログラムの実行状態、CPU13111に入出力されるデータなど)を一時的に格納する。CPU内補助記憶部13142には、例えば、乱数更新処理(図22のステップS40)において更新される乱数値や、乱数値更新演算における中間的な値を一時的に格納する。また、実行するサブルーチンのアドレスやジャンプ先のアドレスをCPU内補助記憶部13142に一時的に格納し、プロセッサコア13141が当該格納したアドレスに対応した処理を実行するようにする。さらには、主制御基板1310に接続される各種のスイッチからポートに入力された値(例えば、スイッチから入力された信号のエッジ情報を作成する途中の値や、エッジ情報の検出結果)を一時的に格納する。
また、始動口入賞時に乱数を取得して保留記憶領域に記憶する際に、乱数値をCPU内補助記憶部13142に一時的に格納し、一時的に格納された乱数値をRAM1312の保留記憶領域に記憶する。また、始動口入賞時の乱数を取得して当該乱数の値に基づいて先読み判定(始動口入賞時における当落判定)を行う際には、CPU内補助記憶部13142に一時的に格納された乱数値に基づいて、先読み判定を行ってもよいし、保留記憶領域に記憶した乱数値をCPU内補助記憶部13142の何れかの記憶領域に(再度)読み出して先読み判定を行ってもよい。
CPU内補助記憶部13142は、RAM1312及びROM1313によって構成されアドレスで指定されるメモリ空間とは別に設けられ、CPU内補助記憶部13142に含まれる各記憶領域の名称(例えば、Area0)で特定される。CPU内補助記憶部13142は、切替部13143、切替用レジスタ13144及び複数の補助記憶領域13145A~Cを含む。
補助記憶領域13145A~Cは、所定のビット数(例えば、1バイトや2バイト)の複数の記憶領域(Area0~6)で構成され、所定数(図では7個)の記憶領域毎にグループが構成され、該グループ毎にプロセッサコア13141からのアクセスが可能となる。すなわち、補助記憶領域13145Aが選択されている場合、プロセッサコア13141は、補助記憶領域13145Aのみにアクセス可能であって、他の補助記憶領域13145B、Cにはアクセスできない。
この補助記憶領域13145の選択は、後述するように、一つのCHANGE命令でグループ毎に複数の記憶領域を一括して切り替えることができる。例えば、命令CHANGE 0によって、グループ0の補助記憶領域13145Aが選択され、プロセッサコア13141がアクセス可能な補助記憶領域がグループ0に切り替えられる。
補助記憶領域13145は、図示した例では三つのグループで構成されるが、二つ以上であればいくつでもよい。すなわち、補助記憶領域13145は、同じ構成で少なくとも二つ設けられる。
補助記憶領域13145の記憶領域(Area0~5)は、プログラム実行時のデータを一時的に格納するためにRAM1312とは別に設けられる記憶領域であり、一つ(1バイト=8ビット)でも使用可能であり、複数をセットにしても(例えば、Area0とArea1を組とした2バイト=16ビットでも)使用可能である。このため、記憶領域に余剰の容量を生じさせることなく、8ビットのデータや16ビットのデータを補助記憶領域13145に格納できる。また、記憶領域(Area6)は、他の記憶領域の整数倍(例えば、2バイト)の容量で使用される記憶領域として設定されており、1バイトの記憶領域に分割して使用できない。このように、複数の容量の記憶領域によって補助記憶領域13145を構成し、また任意に組み合わせて使用できる記憶領域を設けたので、演算処理における用途(例えば、データ長)に応じて記憶領域を使い分けることができる。例えば、アドレス空間が16ビットで表される場合、一つの(又は組み合わされた一組の)記憶領域でアドレスを指定できる。このため、命令の引数を少なくでき、少ないクロック数で命令を実行できる。
切替部13143は、切替用レジスタ13144に格納された値に従って、プロセッサコア13141がアクセス可能となる記憶領域のグループを切り替える。
切替用レジスタ13144は、アクセス可能な補助記憶領域13145を決定するためのデータを格納する記憶領域であり、補助記憶領域13145の選択によらずにプロセッサコア13141がアクセス可能な領域である。切替用レジスタ13144には、例えば、選択される補助記憶領域13145を識別するためのデータ(例えば、4領域を切り替えるための2ビットのデータ)、切り替えが正常に行われなかったことを示す異常フラグ(異常フラグが設定されると、再度切替命令を実行することになる)、及び、選択されていない補助記憶領域13145の値が変化した異常が生じた場合に設定される不正アクセスフラグが記憶されるとよい。
また、切替用レジスタ13144は、演算結果の状態を表すフラグ(例えば、キャリーフラグ、パリティ/オーバーフローフラグ、ゼロフラグ、サインフラグなど)を格納してもよい。
切替用レジスタ13144の他に、補助記憶領域13145の選択によらずにプロセッサコア13141がアクセス可能な記憶領域を設けてもよい。例えば、プログラムを実行中のアドレスを示すプログラムカウンタ、RAM1312に設けられたスタック領域の先頭アドレスを示すスタックポインタを設けてもよい。
図111は、タイマ割込み処理及びベース算出処理のプログラムの一例を示す図であり、タイマ割込み処理からベース算出処理を呼び出し、ベース算出処理から復帰する部分の具体例を示す。
タイマ割込み処理(図104)では、ステップS801においてベース算出処理を呼び出すが、ベース算出処理に移行する前に、DI命令によって割り込みを禁止する。DI命令からEI命令までの間の処理が割り込みによって中断することなくベース算出処理を行うことができる。
その後、PUSH命令によって、切替用レジスタ13144のデータを遊技制御用スタック領域13137(図113参照)に退避する。その後、CALL命令によってベース算出処理の先頭番地xxxxからプログラムが実行される。
ベース算出処理では、図105~図108に示す処理を開始する前に、CHANGE命令によって、補助記憶領域13145を、呼び出し元のタイマ割込み処理で使用するグループ0から呼び出し先のベース算出処理で使用するグループ1に切り替える。このように、一つのCHANGE命令によって、複数の記憶領域をグループ毎に切り替えることができ、一つの命令(すなわち、少ないステップ)で、複数の記憶領域を一括して切り替えることができる。
また、LD命令によって、タイマ割込み処理で使用中のスタックポインタ値をRAM1312の任意のアドレス(例えば、zzzz)に書き込み、スタックポインタ値を退避する。その後、LD命令によって、ベース算出用スタック領域13138のアドレスyyyyをスタックポインタに書き込み、スタック領域を変更する。
ベース算出処理を実行する準備が完了した後、図105又は図108のステップS8011から処理を実行する。そして、ベース算出処理が終了した後(図106のステップS8038の後)、LD命令によって、タイマ割込み処理で使用していたスタックポインタ値をRAM1312のアドレスzzzzから復旧する。その後、CHANGE命令によって、補助記憶領域13145を、呼び出し先のベース算出処理で使用するグループ1から呼び出し元のタイマ割込み処理で使用するグループ0に切り替えた後、RET命令によって呼び出し元のタイマ割込み処理に戻る。なお、一般的には、補助記憶領域13145を切り替える命令とスタックに退避されたデータを復帰する命令とは異なる役割を有するが、本実施例では、ベース算出処理からタイマ割込み処理に戻った後に、スタックに退避されたデータを切替用レジスタ13144に戻すことによって、補助記憶領域13145が切り替わる。このため、本実施例では、ベース算出処理が終了した後にCHANGE命令によって、補助記憶領域13145をグループ0に切り替えなくてもよいが、CHANGE命令によって補助記憶領域13145を確実に切り替えてもよい。
このように、CHANGE命令は、引数(オペランド)を変えることによって補助記憶領域13145を切り替えるが、各補助記憶領域13145毎に異なる命令を設けてもよい。
その後、ベース算出処理から復帰すると、POP命令によって、遊技制御用スタック領域13137に退避した切替用レジスタ13144のデータを切替用レジスタ13144に復旧する。なお、切替用レジスタ13144のデータの退避及び復旧は、スタック操作命令であるPUSHやPOPを使用せず、他の命令(例えば、データ転送命令LD、交換命令EX)を使用してもよい。
その後、EI命令によって割り込みを許可した後、タイマ割込み処理を続行し、RETIでタイマ割込み処理を終了して、主制御側メイン処理(図21のステップS36~S40)に戻る。
なお、タイマ割込み処理の先頭でDI命令によって割り込みを禁止し、タイマ割込み処理の最後にEI命令によって割り込みを許可してもよい。また、DI命令やEI命令によらず、割り込み許可フラグを直接操作することによって、タイマ割込み処理が開始すると割り込みが禁止され、RETI命令の実行タイミングで割り込みを許可してもよい。
また、タイマ割込み処理は、本来、割り込みが禁止された状態で実行されるものであるため、タイマ割込み処理内でさらに割り込みを禁止したり、割り込みを許可する必要はない。図示したプログラム例において、DI命令による割込禁止は、何らかの事情によって割込許可となった状態を割込禁止に設定するためである。この場合、タイマ割込み処理の最後まで割込禁止状態を継続すべきなので、EI命令は、POP命令の直後ではなく、タイマ割込み処理の最後に行うとよい。
なお、前述した例では、切替用レジスタ13144の退避は呼び出し元のタイマ割込み処理で実行し、補助記憶領域13145の切り替えとスタック領域の切り替えは、呼び出し先のベース算出処理で実行したが、この三つの処理は、遊技制御領域外に処理が移る際、及び遊技制御領域内に処理が戻る際に呼び出し元又は呼び出し先のいずれかで実行すればよい。呼び出し元のタイマ割り込み処理で補助記憶領域13145を切り替える例を図112で説明する。
図112は、タイマ割込み処理及びベース算出処理のプログラムの別の一例を示す図であり、タイマ割込み処理からベース算出処理を呼び出し、ベース算出処理から復帰する部分の具体例を示す。
タイマ割込み処理(図104)では、ステップS801においてベース算出処理を呼び出すが、ベース算出処理に移行する前に、DI命令によって割り込みを禁止する。DI命令からEI命令までの間に割り込みによって、その間の処理が割り込みによって中断することなくベース算出処理を行うことができる。
その後、PUSH命令によって、切替用レジスタ13144のデータを遊技制御用スタック領域13137(図113参照)に退避する。その後、CHANGE命令によって、補助記憶領域13145を、呼び出し元のタイマ割込み処理で使用するグループ0から呼び出し先のベース算出処理で使用するグループ1に切り替える。このように、一つのCHANGE命令によって、複数の記憶領域をグループ毎に切り替えることができ、一つの命令(すなわち、少ないステップ)で、複数の記憶領域を一括して切り替えることができる。
その後、CALL命令によってベース算出処理の先頭番地xxxxからプログラムが実行される。
ベース算出処理では、図105~図108に示す処理を開始する前に、LD命令によって、タイマ割込み処理で使用中のスタックポインタ値をRAM1312の任意のアドレス(例えば、zzzz)に書き込み、スタックポインタ値を退避する。その後、LD命令によって、ベース算出用スタック領域13138のアドレスyyyyをスタックポインタに書き込み、スタック領域を変更する。
ベース算出処理を実行する準備が完了した後、図105又は図108のステップS8011から処理を実行する。そして、ベース算出処理が終了した後(図106のステップS8038の後)、LD命令によって、タイマ割込み処理で使用していたスタックポインタ値をRAM1312のアドレスzzzzから復旧する。
その後、ベース算出処理から復帰すると、CHANGE命令によって、補助記憶領域13145を、呼び出し先のベース算出処理で使用するグループ1から呼び出し元のタイマ割込み処理で使用するグループ0に切り替え、POP命令によって、遊技制御用スタック領域13137に退避した切替用レジスタ13144のデータを切替用レジスタ13144に復旧する。なお、切替用レジスタ13144のデータの退避及び復旧は、スタック操作命令であるPUSHやPOPを使用せず、他の命令(例えば、データ転送命令LD、交換命令EX)を使用してもよい。
前述したように、切替用レジスタ13144の復帰によって補助記憶領域13145はベース算出処理を呼び出す前の状態に戻るので、CHANGE命令によって補助記憶領域13145を切り替えなくてもよい。しかし、CHANGE命令によって補助記憶領域13145を確実に切り替えてもよい。
その後、EI命令によって割り込みを許可した後、タイマ割込み処理を続行し、RETIでタイマ割込み処理を終了して、主制御側メイン処理(図21のステップS36~S40)に戻る。
なお、前述と同様に、タイマ割込み処理の先頭でDI命令によって割り込みを禁止し、タイマ割込み処理の最後にEI命令によって割り込みを許可してもよい。また、DI命令やEI命令によらず、割り込み許可フラグを直接操作することによって、タイマ割込み処理が開始すると割り込みが禁止され、RETI命令の実行タイミングで割り込みを許可してもよい。
また、タイマ割込み処理は、本来、割り込みが禁止された状態で実行されるものであるため、タイマ割込み処理内でさらに割り込みを禁止したり、割り込みを許可する必要はない。図示したプログラム例において、DI命令による割込禁止は、何らかの事情によって割込許可となった状態を割込禁止に設定するためである。この場合、タイマ割込み処理の最後まで割込禁止状態を継続すべきなので、EI命令は、POP命令の直後ではなく、タイマ割込み処理の最後に行うとよい。
図111では、タイマ割込み処理とベース算出処理と補助記憶領域13145を切り替える例を説明したが、さらに、デバッグ(検査機能)用コード13133が実行する検査処理でも補助記憶領域13145を切り替えてもよい。この場合、デバッグ(検査機能)用コード13133の先頭で、CHANGE命令によって補助記憶領域13145を検査処理用の補助記憶領域13145に切り替えるとよい。また、初期化処理(図21のステップS10~図22のステップS34)と、主制御側メイン処理(図21のステップS36~S40)と、電源断時処理(図21のステップS42~S58)と、タイマ割込み処理(図23、図75、図80など)とで補助記憶領域13145を切り替えて、各処理で異なる補助記憶領域13145を使い分けてもよい。
さらに、補助記憶領域13145が二つだけ設けられている場合、遊技制御領域内で実行される処理(例えば、主制御側メイン処理、タイマ割込み処理など)と、遊技制御領域外(例えば、デバッグ(検査機能)領域、ベース算出領域など)で実行される処理(例えば、デバッグ処理、ベース算出処理など)とで補助記憶領域13145を切り替えて、遊技制御領域の内外で異なる補助記憶領域13145を使い分けてもよい。
この場合、主制御側メイン処理とタイマ割込み処理とで同じ補助記憶領域13145を使用することになるが、実行中の主制御側メイン処理を中断してタイマ割込み処理を開始することから、タイマ割込み処理の開始時に(例えば、タイマ割込み処理の先頭で)補助記憶領域13145の値を遊技制御用スタック領域13137に一時的に格納し、タイマ割込み処理の終了時に(例えば、タイマ割込み処理の最後に)遊技制御用スタック領域13137に一時的に格納された値を補助記憶領域13145に戻すとよい。
例えば、補助記憶領域13145は複数(バイト)の記憶領域を有することから、一単位(バイト又はワード)ずつスタック領域へ退避すると、退避のための命令数が増える。同様に、スタック領域からデータを復旧するための命令数が増える。また、この場合、スタック領域へのデータ退避とスタック領域からのデータ復旧とで処理の順序を間違えると、異なるデータをスタック領域から読み出してしまうため、以降の処理が正確に行われないことがある。このため、補助記憶領域13145の複数の記憶領域の全てを一括してスタック領域に退避し、補助記憶領域13145の複数の記憶領域の全てを一括してスタック領域から復旧する命令を設けることによって、上記問題を解決できる。
さらに、補助記憶領域13145の全ての記憶領域をスタック領域に退避すると、スタック領域がオーバーフローして、スタック領域として予定されている領域外(他の用途のスタック領域など)のデータを書き換える可能性がある。このため、補助記憶領域13145の全ての記憶領域を一括してスタック領域に記憶する命令以外に、補助記憶領域13145のうち任意に指定した複数の記憶領域を一括してスタック領域に退避する命令と、スタック領域に退避した補助記憶領域13145のうちの任意に指定した複数の記憶領域に一括して復旧する命令を設けて、実行するようにしてもよい。
このように、遊技制御領域外の処理に移る際に別の補助記憶領域13145に切り替えて、遊技制御領域内の処理に移る際に元の補助記憶領域13145に切り替えるので、補助記憶領域13145に格納されたデータをRAM1312(例えば、スタック領域)に退避させずに処理を進行できる。
また、遊技制御領域外の処理に移る際に切替用レジスタ13144をRAM1312(例えば、スタック領域)に退避して、遊技制御領域内の処理に移る際に切替用レジスタ13144をRAM1312から回復するので、遊技制御領域内の処理に移る際に補助記憶領域13145を切り替えることができ、補助記憶領域13145のデータをRAM1312から回復することなく、復旧できる。
また、遊技制御領域外の処理に移行する際に別のスタック領域に切り替え、遊技制御領域内の処理に移る際に元のスタック領域に切り替えるので、遊技制御領域内の処理で使用するスタック領域が、遊技制御領域外の処理において更新されることなく、遊技制御領域内外の処理を完全に分けることができる。
また、遊技制御領域外の処理に移行する際に切替用レジスタ13144に格納された値をRAM1312(例えば、スタック領域)に退避し、遊技制御領域内の処理に移る際に退避した値を切替用レジスタ13144に復旧するので、遊技制御領域内におけるプログラムの実行結果に関する値が、遊技制御領域外の処理において更新されることなく、遊技制御領域内外の処理を完全に分けることができる。
図113(A)は、主制御基板1310の主制御MPU1311に内蔵されたROM1313及びRAM1312に格納されたプログラム(コード)及びデータの配置の一例を示す図である。図113に示すメモリ上の配置は、図26で前述したメモリ上の配置では省略したスタック領域をRAM1312内に図示しているが、図26に示すRAM1312にもスタック領域は設けられている。
ROM1313には、遊技制御用コード13131、遊技制御用データ13132、デバッグ(検査機能)用コード13133、デバッグ(検査機能)用データ13134、ベース算出・表示用コード13135及びベース算出・表示用データ13136を格納する領域が含まれている。本実施形態のROM1313には、遊技制御用コード13131及び遊技制御用データ13132などのパチンコ機1に関わるプログラムやデータを格納する遊技制御領域(第一記憶領域)と、デバッグ(検査機能)コード13133及びデバッグ(検査機能)データ13134などの、パチンコ機1のデバッグ(検査機能)に必要な信号の出力を目的として使用されるプログラムやデータを格納するデバッグ(検査機能)領域(第二記憶領域)と、ベース算出・表示用コード13135及びベース算出・表示用データ13136などの、ベース値の算出を目的として使用されるプログラムを格納するベース算出領域(第三記憶領域)が割り当てられている。
遊技制御用データ13132の最終アドレスと、デバッグ(検査機能)用コード13133の先頭アドレスとの間には16バイト以上の空き領域(未使用空間)が設けられており、ダンプリスト形式で表示した場合に遊技制御領域とデバッグ(検査機能)領域とが容易に区別できるようになっている。同様に、デバッグ(検査機能)用コード13133の最終アドレスと、ベース算出・表示用コード13135の先頭アドレスとの間には所定長の空き領域(未使用空間)が設けられている。この所定長を16バイト以上とすると、ダンプリスト形式で表示した場合にデバッグ(検査機能)領域とベース算出用領域とが容易に区別できるので望ましいが、所定長は16バイトより短くてもよい。なお、空き領域に格納される値は、同一の値である固定値とし、かつ、遊技制御領域、デバッグ領域で設定される値とは異なる値又は頻度が低い値で設定されるとよい。また、空き領域に格納される値は、No OperationコードなどCPUが何もしない命令でもよい。このようにすると、ダンプリスト形式で表示される場合、遊技制御領域、デバッグ(検査機能)領域、ベース算出領域が容易に区別できるようになる。
また、デバッグ(検査機能)領域とベース算出領域とを分けずに、デバッグ領域の一部にベース算出・表示用コード13135やベース算出・表示用データ13136を格納してもよい。すなわち、遊技制御領域と他の領域とが明確に区別されていればよい。このように、遊技制御領域と他の領域とを明確に区別することによって、遊技の進行の制御に直接関わらない処理であるデバック領域(デバック(検査機能)用コード、デバック(検査機能)用データ)やベース算出領域(ベース算出・表示用コード13135やベース算出・表示用データ13136)を遊技制御領域と分けて配置して、ベース算出・表示用コード13135の不具合(バグ等)が遊技制御に影響を及ぼす危険性を回避している。
なお、デバッグ(検査機能)領域には、遊技に直接関連しない目的のプログラムやデータが格納されており、例えば、パチンコ機1の遊技制御以外にパチンコ機1のデバッグ時のみに使用される各種機能検査信号を出力するためのコード13133が格納される。これらデバッグ用(検査機能)コード13133は、デバッグ用(検査機能)信号を出力するためのプログラムである。また、ベース算出領域には、遊技の進行に直接関係しない、ベース値を算出するためのプログラムが格納される。
また、遊技制御用コード13131は、主制御MPU1311によって実行される。また、遊技制御用コード13131は、RAM1312に対して適宜読み書きが可能であるが、遊技制御用コード13131で使用する遊技制御用領域13126に対しては、デバッグ(検査機能)用コード13133から読み出しのみが実行可能となるように構成されており、当該領域に対する書き込みが実行できないように構成されている。このように、遊技制御用領域13126は、遊技制御用コード13131のみからアクセス可能な、遊技制御領域を構成する。デバッグ(検査機能)用コードに基づく処理は、遊技制御用コード13131の実行中において、一方的に呼び出して実行することが可能であるが、デバッグ(検査機能)用コードから遊技制御用コード13131を呼び出して実行することができないように構成している。これにより、デバッグ(検査機能)用コード13133の独立性を高められるので、遊技制御用コード13131を変更した場合であってもデバッグ(検査機能)用コード13133の変更を最小限にとどめることができる。
また、ベース算出・表示用コード13135は、遊技制御用コード13131から呼び出され(例えば、図23に示すタイマ割込み処理のステップS89)、主制御MPU1311によって実行される。ベース算出・表示用コード13135によって計算されたベース値は、RAM1312のベース算出用領域13128に格納される。ベース算出用領域13128は、図示するように、遊技制御用領域13126とは別に(遊技制御領域外に)設けられる。このように、ベース算出・表示用コード13135を遊技制御用コード13131と別に設計し、別の領域に格納することによって、ベース算出・表示用コード13135の検査と遊技制御用コード13131の検査とを別に行うことができ、パチンコ機1の検査の手間を減少できる。また、ベース算出・表示用コード13135を、機種に依存せず、複数の機種で共通に使用できる。
RAM1312には、遊技制御用領域13126、デバッグ用領域、ベース算出用領域13128、遊技制御用スタック領域13137、デバッグ用スタック領域、及びベース算出用スタック領域13138が設けられる。
遊技制御用領域13126は、遊技制御用コード13131が使用するデータが格納さる領域であり、遊技制御用領域13126からは読み書きが可能である。また、遊技制御用領域13126は、デバッグ(検査機能)用コード13133及びベース算出・表示用コード13135からデータを書き込めないが、リードアクセスが可能であり、デバッグ(検査機能)用コード13133及びベース算出・表示用コード13135は遊技制御用領域13126に格納されているデータを参照できる。
デバッグ用領域は、デバッグ(検査機能)用コード13133が使用するデータが格納される領域である。デバック用領域は、遊技制御用コード13131、ベース算出・表示用コード13135からアクセス可能であるが、データの読み出しのみが許可され、データの書き込みが禁止されている。ベース算出用領域13128は、ベース算出・表示用コード13135が使用するデータを格納する領域である。ベース算出用領域13128は、遊技制御用コード13131、デバッグ(検査機能)用コード13133からアクセス可能であるが、データの読み出しのみが許可され、データの書き込みが禁止されている。
遊技制御用スタック領域13137は、遊技制御用コード13131が使用するデータが退避される領域である。デバッグ用スタック領域は、デバッグ(検査機能)用コード13133が使用するデータが退避される領域である。ベース算出用スタック領域13138は、ベース算出・表示用コード13135が使用するデータが退避される領域である。各スタック領域は、専ら、CPU内補助記憶部13142に格納されたデータを一時的に退避するために用いられる。各スタック領域は、CPU13111が管理するスタックポインタの値を変更することによって、切り替えることができる。なお、スタックポインタは、スタック領域の開始アドレスを指定する記憶領域である。
図113(B)は、ベース算出用領域13128の詳細を示す図である。ベース算出用領域13128は、ベースの算出結果が格納されるメイン領域の他、メイン領域に格納されたデータの複製が格納されるバックアップ領域1及びバックアップ領域2とを設けてもよい。バックアップ領域は一つでも複数でもよい。各領域には、データの誤りを検出するためのチェックコードが付加される。チェックコードは、各領域のデータのチェックサムでも予め定めた値でもよい。チェックコードは、パチンコ機1の電源投入時に初期化処理で設定したり、ベース算出・表示処理においてメイン領域のデータが更新される毎に設定したり、主制御側電源断時処理(図22のステップS50~S54)において設定してもよい。特に、チェックコードが固定値である場合、初期化処理で正常と判定した又はデータを消去した際にチェックコードを初期化し、主制御側電源断時処理(図20のステップS50)において固定値をセットしてもよい。チェックコードは、停電フラグと兼用してもよい。すなわち、メイン領域のチェックコードに所定値が設定されていれば、停電フラグが設定されていると判定してもよい。また、停電フラグに所定値が設定されていれば、各領域のチェックコードが正しい値である(すなわち、各領域のデータが正常である)と判定してもよい。
なお、メイン領域が異常であると判定された場合にバックアップ領域が正常であるかを判定し、正常であると判定されたバックアップ領域のデータをメイン領域に複製してもよい(図21のステップS24)。また、主制御側電源断時処理において、メイン領域の値を各バックアップ領域に複製してもよい(図22のステップS54)。また、ベース算出・表示処理において、ベース算出・表示処理の終了時にメイン領域の値をバックアップ領域に複製してもよい。少なくともメイン領域の一部が更新された際に、メイン領域の全部又は更新された値の領域のみをバックアップ領域に複製するものであればよい(図25のステップS168、S170)。
メイン領域とバックアップ領域1との間、及びバックアップ領域1とバックアップ領域2との間には、未使用空間が設けられる。各領域の間に未使用空間を設けることによって、各領域のアドレスを遠ざけることができ、アドレスの上位桁で各領域を区別できる。
[11.遊技履歴の記録]
次に、遊技履歴を記録し、出力するパチンコ機の実施例を説明する。
[11-1.遊技履歴を記録する遊技機の基本構成]
本実施例のパチンコ機1では、周辺制御部1511は、主制御基板1310から送信される変動パターンコマンドに適合する演出を複数用意された演出の中から決定し、決定された演出をメイン液晶表示装置1600に表示する。その際、周辺制御部1511は複数用意された演出のうち特定の演出(例えば、3種類のスーパーリーチのうち2種類の特定の演出)を現出することが決定すると、遊技状態の切り替わりを起点として何回の特別図柄変動表示ゲームが行われて、その特定の演出が現出されたか(換言すると、何回転目に当該演出が出現したか)を、ゲームの進行状況と共にメイン液晶表示装置1600に表示する。
具体的には、図114に示す遊技履歴に従って、10時25分の34回転目にスーパーリーチ1が現出して、特別図柄変動表示ゲームの結果はハズレとなり、10時54分の127回転目にスーパーリーチ2が現出して、特別図柄変動表示ゲームの結果はハズレとなり、11時30分の428回転目にスーパーリーチ2が出現して、特別図柄変動表示ゲームの結果は確変大当りとなった、という内容が表示される。
大当たり履歴の表示(例えば、15回転目に大当たり、50回転目に大当たりという履歴)は、ホールに備え付けられているデータ表示器で確認できるが、大当たりまでに現出した特定の演出は確認できない。特定の演出が現出する程度からパチンコ機1が好調か不調かを見極める遊技者もいる(例えば、大当たり終了後50回転以内にスーパーリーチ2が出現すると、短時間で大当たりに当選すると考える)。このような遊技者の期待に応えるために、演出の現出の程度を視認可能に表示する。また、遊技者が演出の現出の程度を確認しているときは遊技球を発射しないことから、複数用意されている演出の全ての現出の程度が分かる表示をすると、遊技者が演出毎の現出の程度を確認する時間がかかり、遊技台の稼働が低下する可能性がある。このため、リーチ演出のうちの特定のリーチ演出(大当たりに対する期待度が高いリーチ演出)のみを表示するとよい。また、所定の操作手段(操作ボタン220Cなど)の操作によって、演出毎の現出の履歴を確認できるようにしてもよい。
具体的な処理として、周辺制御部1511は、主制御基板1310から変動パターンコマンドを受信すると、変動回数と現出された演出の情報を記憶する。さらに、周辺制御部1511は、受信した変動パターンコマンドに基づいて、変動回数と現出された演出の情報を更新する。そして、所定の操作手段(操作ボタン220Cなど)が操作されると、現出された全ての演出ではなく、限定された特定の演出が現出するまでに要した変動回数を加算して表示する処理を行えばよい。
また、営業中のパチンコ機1にエラーが発生した場合、パチンコ機1からエラー情報を出力しホールの従業員に報知する。この通知の形態は、図115(A)に示すエラー画面をメイン液晶表示装置1600に表示したり、図115(B)に示す詳細エラー画面をメイン液晶表示装置1600に表示して、エラーの原因を報知したり、警報音を出力したり、図116に示すエラー信号を外部端子板784から出力する。また、パチンコ機1における代表的なエラーは、図117、図118、図119に示すものがある。パチンコ機1に発生するエラーはホールの従業員がその原因を知ることができるように、パチンコ機1の外に報知される。例えば、エラーの種別毎に定められたコードを、機能表示ユニット1400に含まれる状態表示LEDに表示していてもよい。具体的には、主制御基板1310と払出制御基板951との間のケーブルの接続不良である場合、機能表示ユニット1400に含まれる状態表示LEDに「0」を表示し、扉右中のLEDが青色に点灯する。
しかしながら、エラーは、パチンコ機1の軽微な故障(例えば、コネクタ外れ)によるものや、部品交換が必要な重度の故障によるものや、不正行為に起因するもの等、様々な原因により発生する。
エラーが発生したパチンコ機1は、エラー発生原因を探り、エラーから復旧して稼動させなければならない。エラー発生原因の探求には時間やコストが必要であり、エラーによるパチンコ機1の稼働停止は、売上の低下を招く。従って、ホールは、発生したエラーの詳細な情報を知ることができれば、エラーを早期に解決でき、パチンコ機1の稼動停止時間を短縮できる。
より具体的には、ホールは、ホールコンピュータを用いて、外部端子板784から出力された信号によってパチンコ機1の状態を判定する。しかし、エラーの原因の探求には、外部端子板784から出力された信号に加え、望ましくは、「一般入賞口の入賞数」「大入賞口の入賞数」「ゲート通過数」「普通図柄変動数」などの遊技履歴情報が必要である。パチンコ機1の故障であれば、修理や部品交換で解決するので、それほど大きな問題はないが、不正行為によって遊技球が取得された場合、正常な遊技者が利益を得られる機会が減り、ホールの営業を妨害し、最終的には、ホールが経営難となる可能性がある。
このような遊技履歴情報を外部端子板784から出力すると、外部端子板784に用いられるコネクタの端子数が増加し、パチンコ機1のコストが増大する。さらに、「一般入賞口への入賞」「大入賞口への入賞」「ゲートの通過」「普通図柄が変動」等のイベントは頻繁に生じるため、パチンコ機1から全てのデータを出力すると、データを解析するために高性能のホールコンピュータが必要となり、ホールの負担が増大する。
本実施例のパチンコ機1は、前述した課題を解決するために、外部端子板748からリアルタイムな信号として出力されないデータをパチンコ機1の内部に記憶し、記憶されたデータを後に参照可能とすることによって、エラー発生までの経緯の詳細を確認できるようにした。
さらに、これらエラー発生までの経過において生じたイベント(一般入賞口の入賞数、大入賞口の入賞数、ゲート通過数、普通図柄変動数など)の発生時刻が記録されるので、どれだけの時間にどれだけのイベントが発生したかを把握できる。例えば、一般入賞口の入賞数が1分間に50個だった等の異常が分かる。
なお、イベント毎に発生日時を記録すると、エラー発生原因の探求に使用するデータ量が多くなり、エラー発生原因の探求に時間がかかる。このため、所定時間(例えば、1分間)に所定数以上のイベントが発生している場合にエラー情報として出力し、報知してもよい。
例えば、どの遊技状態においても一般入賞口へは入賞可能なので、所定時間に所定数以上の入賞があった場合にエラー情報を出力し報知するとよいが、大入賞口へは大当たり遊技中のみで入賞するので、所定時間を大当たり遊技開始から終了までに設定し、所定時間に所定数以上の大入賞口への入賞があった場合にエラー情報を出力し報知するとよい。
以下に説明するパチンコ機では、周辺制御部1511が遊技履歴を記録し、所定の形式のデータで出力する。
図120は、本実施例の周辺制御部電源投入時処理の一例を示すフローチャートである。図120に示す周辺制御部電源投入時処理は、図60を用いて前述した周辺制御部電源投入時処理に遊技履歴記録処理(ステップS1023)が追加されている。
遊技履歴記録処理は、周辺制御部1511が、主制御基板1310から受信したコマンドの解析結果に基づいて、受信したコマンドが所定のコマンドである場合、遊技履歴をメモリに記録する。遊技履歴は、例えば、図122に示すような形式でイベントの発生日時として記録される。遊技履歴が記録されるメモリは、DRAMでもよいが、電源遮断時にも記憶内容を保持することを考慮しリフレッシュ動作が不要で消費電力が低いSRAMに記録するとよい。
遊技履歴記録処理(ステップS1023)は、遊技制御に関する処理(ステップS1024~S1032)より前に実行するとよい。遊技履歴記録処理を周辺制御部定常処理の早い段階で実行することによって、遊技制御に関する処理が途中で停止して、一部の演出が実行されなくても、遊技履歴を正確に記録できる。すなわち、一部の演出が実行されなくても(たとえ全ての演出が実行されなくても)、主制御基板1310で既に行われた抽選の結果は変わらず、遊技者に付与される特典も変わらないことから、演出より優先して遊技履歴を記録している。また、遊技履歴記録処理が遊技制御に関する処理に影響されないので、複数の機種のパチンコ機で遊技履歴記録処理を共通化できる。
次に、記録される遊技履歴のメモリの容量が上限に達した場合の処理を説明する。記録される遊技履歴のデータ量がメモリの容量の上限に達している場合、遊技履歴記録処理を実行するが、メモリに記録されている遊技履歴を更新しなくてもよい。つまり、メモリに記録されている情報は変化しない。このように、遊技履歴を記録するメモリの容量に空きがなくても遊技履歴記録処理を実行することによって、遊技履歴を記録するメモリの空き状態を確認する必要がなく、周辺制御部1511の毎回の処理を軽減できる。
また、記録される遊技履歴のメモリの容量が上限に達している場合、遊技履歴記録処理を実行し、メモリに記録されている遊技履歴を更新してもよい。この場合、複数(例えば10個)の記憶領域を有するリングバッファを周辺制御SRAM1511dの遊技履歴格納領域に設け、最古の遊技履歴を消去して最新の遊技履歴を記録してもよい。この場合でも、遊技履歴を記録するメモリの空き状態を確認する必要がなく、周辺制御部1511の毎回の処理を軽減できる。
また、記録される遊技履歴がメモリの容量の上限に達した場合に、ステップS1023をスキップして、遊技履歴記録処理を実行しなくてもよい。記録される遊技履歴がメモリの容量の上限に達した場合に遊技履歴記録処理を実行しないことによって、無駄な処理の実行を防止できるため、周辺制御部1511が行う他の処理(演出制御、ランプ制御、音制御)を確実に実行できるとともに、空いた処理時間を利用して、新たな処理(例えば、処理時間に余裕がないために複数回の周辺制御部定常処理に跨って実行される処理や、毎回実行する必要がないために何回かの周辺制御部定常処理に1回実行される処理(例えば、選択テーブルを切り替える処理))を実行してもよい。
なお、割り込みタイマ起動処理(ステップS1010)の直後に受信コマンドを解析し(ステップS1022)、遊技履歴記録処理(ステップS1023)を実行してもよい。
図121は、遊技履歴記録条件設定テーブルの構成例を示す図である。
遊技履歴記録条件設定テーブルは、周辺制御部1511が主制御基板1310から受信するコマンドのうち、遊技履歴として記録されるコマンドの種別、すなわち、遊技履歴として記録されるイベントを登録する。
例えば、遊技履歴記録条件設定テーブルには、以下のコマンド種別が登録され、当該コマンドの発生条件や、遊技履歴として記録する目的は以下の通りである。
例えば、始動口1入賞時コマンド、始動口2入賞時コマンドは、それぞれ、始動口2002、始動口2004への遊技球の入賞を検出すると主制御基板1310から周辺制御部1511へコマンド送信され、周辺制御部1511が各始動口への入賞球数を計数できる。また、特別図柄1図柄種別コマンド、特別図柄2図柄種別コマンドは、それぞれ、特別図柄の変動開始時に主制御基板1310から周辺制御部1511へコマンド送信され、周辺制御部1511が特別図柄1、2の変動数を計数できる。
また、電源投入コマンドは、電源投入時に主制御基板1310から周辺制御部1511へコマンド送信され、周辺制御部1511がラムクリア操作などを取得できる。変動開始時状態コマンドは、特別図柄の変動開始時に主制御基板1310から周辺制御部1511へコマンド送信され、周辺制御部1511が特別図柄の変動開始時の状態を取得できる。変動開始時状態コマンドで区別可能な状態は、低確率・時短、低確率・非時短、高確率・時短、高確率・非時短の4状態であり、状態の変化を取得でき、各状態で開始した変動の数を計数できる。ここで、低確率とは、特別図柄変動表示ゲームに伴う大当たり抽選において大当たりが導出される確率が通常の確率である状態であり、高確率とは、特別図柄変動表示ゲームに伴う大当たり抽選において大当たりが導出される確率が通常より高い状態である。時短は、前述した第二始動口扉部材2549が開放(又は、拡大)状態となる確率が非時短と比べて高確率になったり、普通図柄が変動を開始してから確定するまでの時間が短くなるなど、第二始動口扉部材2549が開放(又は、拡大)状態となる頻度が非時短状態より高い状態である。それに伴い、1回の特別図柄変動表示ゲームの時間が短い演出が選択される確率が高くなる。
大入賞口1入賞コマンド(入賞毎)、大入賞口2入賞コマンド(入賞毎)は、それぞれ、大入賞口2005、大入賞口2006へ遊技球が入賞すると主制御基板1310から周辺制御部1511へコマンド送信され、周辺制御部1511が各大入賞口への入賞球数を計数できる。
大入賞口1入賞コマンド(規定入賞以下)、大入賞口2入賞コマンド(規定入賞以下)は、それぞれ、大入賞口2005、大入賞口2006において、ラウンド終了までに規定数以下の遊技球しか入賞しなかった場合、各大入賞口の閉鎖時から所定時間経過時(例えば、1秒後から次回の開放前まで)に主制御基板1310から周辺制御部1511へコマンド送信され、周辺制御部1511が各大入賞口への1ラウンドにおける入賞の状態を取得できる。大入賞口1入賞コマンド(規定入賞より大きい)、大入賞口2入賞コマンド(規定入賞より大きい)は、それぞれ、大入賞口2005、大入賞口2006において規定数を超える遊技球が入賞してラウンドが終了した場合、各大入賞口の閉鎖時から所定時間経過時(例えば、1秒後から次回の開放前まで)に主制御基板1310から周辺制御部1511へコマンド送信され、周辺制御部1511が各大入賞口への1ラウンドにおける入賞の状況を取得できる。なお、このコマンドが各大入賞口2005、2006の閉鎖時から所定時間経過時に送信されるのは、1回のラウンドで定める規定数(例えば、10個)の入賞球を検出して大入賞口を閉鎖した時に未検出の遊技球が大入賞口内に存在する可能性もあり、このようなオーバー入賞時にも正確に入賞の状況を把握するためである。
大当たりOPコマンドは、大当たり発生時(すなわち、条件装置作動時又は役物連続作動装置作動)に主制御基板1310から周辺制御部1511へコマンド送信され、周辺制御部1511が大当たり状態への変化を取得でき、大当たり回数を計数できる。大当たり動作終了時移行先コマンドは、大当たり状態の終了時に主制御基板1310から周辺制御部1511へコマンド送信され、大当たり状態の終了と、周辺制御部1511が大当たり後の状況を取得できる。
小当りOPコマンドは、大入賞口の開放が比較的短時間(例えば、1回の開放時間が1.8秒であったり、複数回の開放時間の合計が1.8秒未満)の開放であって、役物連続作動装置が作動しない当たり(いわゆる、小当たり)に、主制御基板1310から周辺制御部1511へコマンド送信され、周辺制御部1511が小当り回数を計数できる。
普通図柄停止コマンドは、普通図柄の停止時に主制御基板1310から周辺制御部1511へコマンド送信され、周辺制御部1511が普通図柄の停止図柄を取得でき、普通図柄の変動数を計数できる。普図ゲート通過コマンドは、遊技球がゲート部2003を通過すると主制御基板1310から周辺制御部1511へコマンド送信され、周辺制御部1511がゲート部2003を通過した遊技球数を取得できる。
始動口に入賞したりゲートを通過しても特別図柄や普通図柄の抽選が行われない場合(オーバーフローや記憶がない場合など)でも、主制御基板1310は周辺制御部1511に、始動口1入賞時コマンド、始動口2入賞時コマンドおよび普図ゲート通過コマンドを送信する。このため、周辺制御部1511は始動口への入賞球数とゲート部を通過した球数を計数できる。
エラー表示コマンドは、エラー発生時に主制御基板1310から周辺制御部1511へコマンド送信され、周辺制御部1511がエラーの発生タイミングを取得でき、エラー発生数を計数できる。
一般入賞口1入賞コマンド、一般入賞口2入賞コマンド、一般入賞口3入賞コマンドは、それぞれ、各一般入賞口2001へ遊技球が入賞すると主制御基板1310から周辺制御部1511へコマンド送信され、周辺制御部1511が各一般入賞口2001への入賞球数を計数できる。なお、一般入賞口入賞コマンドは、遊技領域5aに設けられる一般入賞口2001の数だけ定められるとよく、前述では三つの一般入賞口2001が設けられている場合を例示している。本実施例のパチンコ機1は図10や図16に示すように、四つの一般入賞口2001が設けられるので、一般入賞口1入賞コマンドから一般入賞口4入賞コマンドの四種類の一般入賞口入賞コマンドが定められるものである。
図122は、メモリに記録された遊技履歴の構成例を示す図である。
遊技履歴は、履歴番号、イベント、及びイベント発生日時を含み、望ましくは、イベント発生時刻順にメモリに記録される。イベント発生日時は、周辺制御部1511が主制御基板1310からコマンドを受信した時刻をイベント発生日時として記録してもよく、主制御基板1310がイベント発生を検出した時刻を周辺制御部1511に通知して、周辺制御部1511は、主制御基板1310から通知されたイベント発生時刻を記録してもよい。図示した遊技履歴では、イベント発生日時は分までの粒度で記録されているが、秒まで記録してもよい。
図122に示す形態の遊技履歴の解析によって、主制御基板1310から送信されたコマンドに関連して発生したイベントの詳細(例えば、遊技状態の変化、変動表示ゲームの結果など)を知ることができる。例えば、履歴番号1の電源投入コマンドは、2016年3月15日の15時30分に発生し、コマンドの内容からRAMクリアが行われて、低確率・非時短状態で遊技が開始したことが分かる。すなわち、ホールが15時30分に営業を開始しパチンコ機1の電源を投入し、遊技者がしばらくして(例えば、煙草に火をつけた後に)打ち始めて、一般入賞口2001に入賞した経緯が分かる。また、履歴番号4の特図1変動開始イベントは、2016年3月15日の15時34分に発生し、受信した特別図柄1図柄種別コマンドの内容(停止図柄の種別)から、特別図柄変動表示ゲームの結果が分かる。履歴番号6の特図1変動開始イベントは、2016年3月15日の15時34分に発生し、受信した特別図柄1図柄種別コマンドの内容(停止図柄の種別)から、特別図柄変動表示ゲームの結果が分かる。なお、図122には特別図柄変動表示ゲームの結果を図示していないが、特別図柄の変動開始時に受信する図柄種別コマンドに含まれる変動表示ゲームの結果を示す数値によって、各特別図柄変動表示ゲームの結果を知ることができ、変動表示ゲームの結果(ハズレ、通常4ラウンド当たり、高確率4ラウンド当たり、高確率16ラウンド当たりなど)を遊技履歴として記録してもよい。
次に、メモリに記録された情報(遊技履歴)をホールが参照する方法を説明する。
まず、周辺制御部1511からメモリに記録された情報を出力する履歴出力インターフェイス1590を設ける。そして、周辺制御部1511は、主制御基板1310から履歴参照コマンドを受信すると、メモリに記録される遊技履歴を履歴出力インターフェイス1590から出力する。
また、パチンコ機1にデータ収集端末を接続し、周辺制御部1511は、該データ収集端末から履歴参照コマンドを受信すると、メモリに記録される遊技履歴を履歴出力インターフェイス1590から出力する。履歴出力インターフェイス1590は、周辺制御部1511に設けた履歴出力端子で構成しても、周辺制御部1511とは別に設けてもよい。データ収集端末は、パチンコ機1のデータ管理用にホールが保有するとよい。
データ収集端末とパチンコ機1との間の接続は、履歴出力インターフェイス1590を介したケーブルによる接続でも、近距離無線(たとえば、ブルートゥース(登録商標))を介した無線接続でもよい。
周辺制御部1511が遊技履歴を出力するトリガとなるコマンドは、遊技履歴出力専用の履歴参照コマンドでも、パチンコ機1に電源が投入されてから通常の遊技を行っているときには送信されないコマンド(図121には定義されていないコマンド)で特別な条件(操作)が行われたときのコマンドを履歴参照コマンドとしてもよい。特別な条件(操作)は、例えば、パチンコ機1に電源が投入されている状態でRAMクリアボタンを操作するなどである。また、通常の遊技を行っているときに送信されるコマンドでも、起こりえない(または、起こりにくい)事象を条件として、履歴参照コマンドを送信してもよい。例えば、1分間に始動口や一般入賞口に50個入賞した場合などである。また、遊技制御に使用するコマンドを通常はあり得ない特殊な順序で受信した場合に遊技履歴を出力してもよい。
なお、パチンコ機1の裏面側(遊技者から見えない場所)に操作パネル(キーボード)及び表示器(液晶表示装置)を設け、遊技履歴を表示してもよい。
図123は、周辺制御基板及びその周辺の構成を示すブロック図である。
周辺制御基板1510は、主制御基板1310からの各種コマンドに基づいて演出制御を行い、かつ、枠周辺中継端子板868を介して、演出表示駆動基板4450と制御コマンドや各種情報(各種データ)をやり取りする周辺制御部1511と、メイン液晶表示装置1600及び扉枠側演出表示装置460の描画制御を行い、かつ、下部スピーカ921及び上部スピーカ573から流れる音楽や効果音等の音制御を行う液晶表示制御部1512と、年月日を特定するカレンダー情報と時分秒を特定する時刻情報とを保持するリアルタイムクロック(以下、「RTC」と記載する。)制御部4165とを有する。
演出制御を行う周辺制御部1511は、図123に示すように、マイクロプロセッサとしての周辺制御MPU1511aと、電源投入時に実行される電源投入時処理を制御し、電源投入時から所定時間が経過した後に実行される演出動作を制御するサブ制御プログラムなどの各種制御プログラム、各種データ、各種制御データ及び各種スケジュールデータを記憶する周辺制御ROM1511bと、後述する液晶表示制御部1512の音源内蔵VDP1512aからのVブランク信号が入力されるごとに実行される周辺制御部定常処理をまたいで継続される各種情報(例えば、メイン液晶表示装置1600に描画する画面を規定するスケジュールデータや各種LED等の発光態様を規定するスケジュールデータなどを管理するための情報など)を記憶する周辺制御RAM1511cと、日をまたいで継続される各種情報(例えば、大当たり遊技状態が発生した履歴を管理するための情報や特別な演出フラグの管理するための情報など)を記憶する周辺制御SRAM1511dと、周辺制御MPU1511aが正常に動作しているか否かを監視するための周辺制御外部ウォッチドッグタイマ1511e(以下、「周辺制御外部WDT1511e」と記載する。)とを有する。
周辺制御RAM1511cは、電力が長時間遮断された状態(長時間の電断が発生した場合)ではその内容を失うのに対して、周辺制御SRAM1511dは、電源基板931に設けられた図示しない大容量の電解コンデンサ(以下、「SRAM用電解コンデンサ」と記載する。)によりバックアップ電源が供給されることにより、記憶された内容を50時間程度、保持することができるようになっている。電源基板931にSRAM用電解コンデンサが設けられるので、遊技盤5をパチンコ機1から取り外した場合には、周辺制御SRAM1511dにバックアップ電源が供給されなくなるため、周辺制御SRAM1511dは、記憶された内容を保持することができなくなってその内容を失う。
また、周辺制御SRAM1511dの一部の領域は、電源基板931から供給されるバックアップ電源と異なるバックアップ電源1513によって電源が供給される。バックアップ電源1513によって電源が供給される周辺制御SRAM1511dの領域には、遊技履歴が記録され、パチンコ機1の電源が遮断されても、記憶内容を保持できるように構成されている。バックアップ電源1513は、リチウムイオン電池などの二次電池で構成され、数週間から1か月程度の間、周辺制御SRAM1511dの少なくとも一部の領域のデータを保持可能な電源供給能力を有するとよい。
図124は、周辺制御SRAM1511dの周辺の構成を示すブロック図である。
周辺制御SRAM1511dのうち、遊技履歴を格納する領域は、周辺制御MPUを含む周辺制御CPUとは別のパッケージで構成されても、周辺制御MPUと共に周辺制御CPUのパッケージ内に構成されてもよい。
図124(A)は、周辺制御CPUとは別のパッケージで遊技履歴を格納する領域を構成した周辺制御SRAM1511dの周辺の構成を示す。図示するように、バックアップ電源1513から電源が供給されない演出制御用領域は周辺制御CPUパッケージの外部に設けられ、バックアップ電源1513から電源が供給される遊技履歴格納領域は周辺制御CPUパッケージの外部に設けられる。
RAMクリアスイッチを操作してパチンコ機1をリセットする場合、周辺制御CPU内の周辺制御SRAM(演出制御用領域)1511dのデータはクリアされるが、周辺制御CPU外の周辺制御SRAM(遊技履歴格納用領域)1511dのデータはクリアされない。
図124(B)は、周辺制御CPUのパッケージ内に遊技履歴を格納する領域を構成した周辺制御SRAM1511dの周辺の構成を示す。図示するように、バックアップ電源1513から電源が供給されない演出制御用領域及びバックアップ電源1513から電源が供給される遊技履歴格納領域の両方が周辺制御CPUパッケージ内に設けられる。
図124(B)に示す構成でも、RAMクリアスイッチを操作してパチンコ機1をリセットする場合、周辺制御CPU内の周辺制御SRAM(演出制御用領域)1511dのデータはクリアされるが、周辺制御CPU外の周辺制御SRAM(遊技履歴格納用領域)1511dのデータはクリアされない。このため、周辺制御SRAM1511dの演出制御用領域と遊技履歴格納領域とは、望ましくは、物理的に分けて構成されているとよい。
なお、周辺制御SRAM1511dのうち、遊技履歴を格納する領域を、SRAMではなく、フラッシュメモリで構成してもよい。フラッシュメモリに遊技履歴を格納することによって、バックアップ電源1513を設けることなく、電源が供給されていないパチンコ機1においても遊技履歴を保持できる。
図124(A)、(B)いずれの形態においても、パチンコ機1は、周辺制御SRAM1511dの遊技履歴格納領域のデータを初期化する手段を有する。周辺制御SRAM1511dの遊技履歴格納領域のデータを初期化する手段は、RAMクリアスイッチを操作しながらパチンコ機1の電源を投入するという通常のデータの初期化方法とは異なる手順の方法であれば何でもよい。例えば、RAMクリアスイッチの他に履歴クリアスイッチを設け、履歴クリアスイッチを操作しながらパチンコ機1の電源を投入すると、記憶された遊技履歴を初期化する。この場合、RAMクリアスイッチと履歴クリアスイッチの両方を操作しながらパチンコ機1の電源を投入すると、記憶された遊技状態の情報と遊技履歴の両方を初期化する。履歴クリアスイッチは、周辺制御基板1510に直接接続されてもよい。
また、RAMクリアスイッチを操作しながらパチンコ機1の電源を投入し、電源投入後も所定時間RAMクリアスイッチを継続して操作した場合に、記憶された遊技状態の情報と遊技履歴の両方を初期化してもよい。
周辺制御SRAM1511dに記憶された遊技履歴を初期化する場合、主制御基板1310は、通常の電源投入コマンドと異なるコマンドを周辺制御基板1510に送信する。
また、主制御基板1310は、RAMクリアスイッチが操作されている間は、周辺制御基板1510に電源投入コマンドを送信し続け、周辺制御基板1510は、所定時間内に所定回数の電源投入コマンドを受信した場合、又は電源投入コマンドを連続して受信した場合周辺制御SRAM(遊技履歴格納用領域)1511dに記憶された遊技履歴を初期化してもよい。このように遊技履歴格納領域のデータを初期化する手段を設けることによって、例えば、遊技機が1年間ホールで稼働し続けても、最新の情報を正確に記録し、解析できる。
周辺制御外部WDT1511eは、周辺制御MPU1511aのシステムが暴走していないかを監視するためのタイマであり、このタイマがタイマアップすると、ハードウェア的にリセットをかけるようになっている。つまり、周辺制御MPU1511aは、一定期間内(タイマがタイマアップするまで)に周辺制御外部WDT1511eのタイマをクリアするクリア信号を周辺制御外部WDT1511eに出力しないときには、リセットがかかることとなる。周辺制御MPU1511aは、一定期間内にクリア信号を周辺制御外部WDT1511eに出力するときには、周辺制御外部WDT1511eのタイマカウントを再スタートさせるため、リセットがかからない。
周辺制御MPU1511aは、パラレルI/Oポート、シリアルI/Oポート等を複数内蔵しており、主制御基板1310からの各種コマンドを受信すると、この各種コマンドに基づいて、遊技盤5の各装飾基板に設けた複数のLED等への点灯信号、点滅信号又は階調点灯信号を出力するための遊技盤側発光データをランプ駆動基板用シリアルI/Oポートから図示しない周辺制御出力回路を介してランプ駆動基板4170に送信したり、遊技盤5に設けた各種可動体を作動させるモータやソレノイド等の電気的駆動源への駆動信号を出力するための遊技盤側モータ駆動データをモータ駆動基板用シリアルI/Oポートから周辺制御出力回路を介してモータ駆動基板4180に送信したり、扉枠3に設けられた電気的駆動源への駆動信号を出力するための扉側モータ駆動データを枠装飾駆動アンプ基板モータ用シリアルI/Oポートから周辺制御出力回路、枠周辺中継端子板868を介して枠装飾駆動アンプ基板に送信したり、扉枠3の各装飾基板に設けた複数のLED等への点灯信号、点滅信号又は階調点灯信号を出力するための扉側発光データを枠装飾駆動アンプ基板LED用シリアルI/Oポートから周辺制御出力回路、枠周辺中継端子板868を介して枠装飾駆動アンプ基板に送信したりする。
主制御基板1310からの各種コマンドは、図示しない周辺制御入力回路を介して、周辺制御MPU1511aの主制御基板用シリアルI/Oポートに入力されている。また、演出操作ユニット220に設けられた、ダイヤル操作部401の回転(回転方向)を検出するための回転検出スイッチからの検出信号、及び押圧操作部405の操作を検出するための押圧検出スイッチからの検出信号は、枠装飾駆動アンプ基板194に設けた図示しない扉側シリアル送信回路でシリアル化され、このシリアル化された演出操作ユニット検出データが扉側シリアル送信回路から、周辺扉中継端子板882、枠周辺中継端子板868、そして周辺制御入力回路を介して、周辺制御MPU1511aの演出操作ユニット検出用シリアルI/Oポートに入力されている。
遊技盤5に設けた各種可動体の原位置や可動位置等を検出するための各種検出スイッチ(例えば、フォトセンサなど。)からの検出信号は、モータ駆動基板4180に設けた図示しない遊技盤側シリアル送信回路でシリアル化され、このシリアル化された可動体検出データが遊技盤側シリアル送信回路から周辺制御入力回路を介して、周辺制御MPU1511aのモータ駆動基板用シリアルI/Oポートに入力されている。周辺制御MPU1511aは、モータ駆動基板用シリアルI/Oポートの入出力を切り替えることにより周辺制御基板1510とモータ駆動基板4180との基板間における各種データのやり取りを行うようになっている。
以上に説明したように、本実施例の遊技機では、主制御基板1310から周辺制御基板1510へ送信されるコマンドに従って、遊技中に生じたイベントを遊技履歴として記録するので、遊技中に生じたイベントを後で(例えば、ホールの営業終了後など)解析して、遊技機の性能や故障を把握できる。また、遊技履歴は不揮発性メモリ(バックアップ電源が入力されたSRAM)に格納するので、遊技機を再起動した後でも遊技履歴を確認できる。
本実施例のパチンコ機1では、図121、図122等に示すように、様々な情報が発生時刻とともに記録される。また、例えば、始動口1に入賞した場合は、(1)始動口1に入賞した事実、(2)始動口1に入賞した時刻、(3)始動口1に入賞する前に起きたイベントのように、図116に示す外部端子板748から出力される情報よりも多くの情報をパチンコ機1の内部に記憶している。これは、始動口に入賞した場合など、必要最低限の情報(前述の(1)始動口に入賞した事実を示す情報)は外部端子板784から出力し、特別な場合(例えば、エラーの原因を調査するとき)には、パチンコ機1の内部に記憶した情報を確認できるようにしたためである。これは、始動口への入賞時に内部に記憶している情報の全てを外部端子板784から出力すると、パチンコ機1の稼動に関する情報の出力量が多くなり、ホールに負担となる恐れがあるからである。つまり、イベント発生時に、外部端子板784から出力される情報より多くの情報をパチンコ機1の内部に記録しておき、内部に記録される情報の一部を外部端子板784を介してパチンコ機1の外部に出力し、特別な場合にはパチンコ機1の内部に記憶した情報を確認できるようにした。
[11-2.コンパクト案1]
次に、遊技履歴を記録し、出力するパチンコ機の変形例を説明する。なお、以下に説明するいくつかの変形例は、前述した実施例の一部を変更するものであって、当該実施例の一部を成すものである。
前述した実施例では、主制御基板1310から周辺制御基板1510へ送信されるコマンドのうち、予め定められた所定のコマンドについて、発生したイベント(コマンドの種別)及びイベント発生日時を記録した。しかし、遊技履歴を記録するSRAM1511dの容量は有限であり、遊技中に発生する膨大な量のイベントの全てを長時間にわたり記録することは困難である。このため、変形例1(コンパクト案1)では、パチンコ機1の状態の変化と、当該状態において生じた計数イベントの数を記録するものとした。
図125は、変形例1の遊技履歴記録条件設定テーブルの構成例を示す図である。
変形例1の遊技履歴記録条件設定テーブルでは、遊技履歴として記録されるコマンドが、計数するコマンドと状態変化の契機となるコマンドとに分けて定義されており、両方の属性が設定されているコマンドもある。なお、計数可能な情報の欄と取得可能な状態変化の欄は説明の便宜上設けたものであり、遊技履歴記録条件設定テーブルがパチンコ機1に実装される場合には、コマンド種別欄だけでよい。
周辺制御部1511は、計数する属性が設定されているコマンドを受信すると、コマンド解析の結果、コマンド発行の契機となったイベントの数を計数する。また、周辺制御部1511は、状態変化の契機となる属性が設定されているコマンドを受信すると、コマンド解析の結果、メモリに記録される遊技履歴の状態を新しくして、イベント数を計数するレコードを追加する。
例えば、電源投入コマンド、変動開始時状態コマンド、大当たりOPコマンド、大当たり動作終了時移行先コマンド、エラー表示コマンドは、状態変化によって発行されるコマンドであり、それぞれ、電源投入、特別図柄変動表示開始、大当たり状態開始、大当たり状態終了、エラー状態発生の状態の切り替わりとして把握できる。
また、計数コマンドを用いて、計数コマンド発行の契機となったイベント数を計数する。具体的には、始動口1入賞時コマンド、始動口2入賞時コマンドでは、各始動口への入賞球数を計数できる。特別図柄1図柄種別コマンド、特別図柄2図柄種別コマンドは、各特別図柄の変動数を計数できる。大入賞口1入賞コマンド(入賞毎)、大入賞口2入賞コマンド(入賞毎)は、各大入賞口への入賞球数を計数できる。大入賞口1入賞コマンド(規定入賞以下)、大入賞口2入賞コマンド(規定入賞以下)は、規定入賞数以下で終了したラウンドの数を計数できる。大入賞口1入賞コマンド(規定入賞より大きい)、大入賞口2入賞コマンド(規定入賞より大きい)は、規定入賞数を超えて(すなわち、オーバー入賞で)終了したラウンドの数を計数できる。
小当りOPコマンドは、小当り回数を計数できる。普通図柄停止コマンドは、普通図柄の変動数を計数できる。普図ゲート通過コマンドは、ゲート部を通過した遊技球数を取得できる。エラー表示コマンドは、エラー発生数を計数できる。一般入賞口1入賞コマンド、一般入賞口2入賞コマンド、一般入賞口3入賞コマンドは、各一般入賞口への入賞球数を計数できる。
図126は、変形例1のメモリに記録された遊技履歴を示す図である。
変形例1の遊技履歴は、パチンコ機1の状態変化の契機となった状態変化イベントと、当該状態変化イベント後の状態と、当該状態変化イベントが発生した時刻と、所定の起算点から当該状態の終了まで(次の状態変化イベントまで)に検出された計数イベントの累計数とを含む。遊技履歴として記録される計数イベントの数は、当該状態中(一つ前の状態変化イベントから当該状態変化イベントまでの間)に検出された計数イベントの数でもよい。所定の起算点は、周辺制御SRAM1511dの遊技履歴記憶領域の初期化時点である。計数イベントが分けて記録される状態は、低確率・非時短状態、低確率・時短状態、高確率・非時短状態、高確率・時短状態、大当たり状態の5状態を想定しているが、この状態を更に細分化してもよい。
次に、変形例1における遊技履歴記録処理の詳細を説明する。図126に示す遊技履歴では、計数イベントとして、始動口1入賞数、始動口2入賞数、特別図柄1変動数、特別図柄2変動数、一般入賞口1入賞数、一般入賞口2入賞数、一般入賞口3入賞数、大入賞口1入賞数、大入賞口2入賞数、ゲート通過数、普通図柄変動数が記録される。なお、図示した以外のイベントの数を計数してもよい。
各計数イベントの累積数の記憶領域は2バイトあれば十分である。特に、それほど頻繁に派生せず、累積数が大きくならないデータ(例えば、一般入賞口入賞数)は1バイトでもよく、それ以外は2バイトにするとよい。この場合、1バイトのデータと2バイトのデータとを混在させることなく、2バイト、1バイトの順(又は、1バイト、2バイトの順)で並べるとよい。
また、状態変化イベントが生じると、状態変化イベントの種別、当該イベント発生後の状態、当該イベントの発生日時が記録され、遊技履歴に新たなレコードが作られる。そして、状態変化後の計数イベントは新たなレコードに記録される。
なお、現在の状態における計数イベントの計数結果は、周辺制御RAM1511cの作業領域に記録し、状態変化後にSRAM1511dの遊技履歴格納領域に作られた新たなレコードに格納するとよい。なお、周辺制御SRAM1511dの遊技履歴格納領域の新たなレコードは状態変化を契機として作成されるが、計数イベントが計数される期間の開始時に新たなレコードを作成してもよい。この場合、計数イベントが計数される間、作成された新たなレコードにデータは格納されていなくても、初期値として0を格納してもよい。また、計数イベントが計数される期間の終了時に新たなレコードを作成してもよい。この場合、新たなレコードを作成した直後に、当該期間の計数イベントの計数結果が新たなレコードに格納される。
遊技状態が変化して作業領域(周辺制御RAM1511c)に記録されたデータを遊技履歴格納領域(周辺制御SRAM1511d)に格納する場合、遊技履歴格納領域からデータを読み出して、作業領域に記録された計数値を加算して、遊技履歴格納領域に格納する。一方、当該状態中(一つ前の状態変化イベントから当該状態変化イベントまでの間)に検出された計数イベントの数が遊技履歴として記録される場合、計数イベントの計数値を周辺制御SRAM1511dの遊技履歴格納領域に格納する。
すなわち、状態変化イベントが生じる毎に、周辺制御SRAM1511dの遊技履歴格納領域の計数値が更新される。このため、周辺制御RAM1511cの作業領域に記録されている現在の状態における計数結果は、次の状態変化イベントが発生するまで周辺制御RAM1511cに記録されており、停電発生時には記憶内容がバックアップされるが、通常のラムクリア操作によって初期化されることになる。具体的には、例えば、低確率・非時短状態において、始動口1への入賞数が50個が作業領域(周辺制御RAM1511c)に記録されている遊技履歴の情報は、変形例1のパチンコ機1では遊技状態が変化した後に周辺制御SRAM1511dの遊技履歴格納領域に記録される。換言すれば、遊技状態が変化しなければ、周辺制御SRAM1511dの遊技履歴格納領域に遊技履歴が記録されない。このため、低確率・非時短状態のまま、電源を遮断してラムクリア操作すると、この50個の入賞数は初期化され0個となる。
また、現在の状態における計数イベントの計数結果を、周辺制御SRAM1511dの遊技履歴格納領域に書き込んでもよい。すなわち、計数イベントが生じる毎に、周辺制御SRAM1511dの遊技履歴格納領域の計数値が更新される。この場合、周辺制御SRAM1511dに記録されている現在の状態における計数結果は、通常のラムクリア操作によっては初期化されないが、前述した遊技履歴初期化操作によって初期化される。
また、記録される遊技履歴がメモリの容量の上限に達した場合でも、遊技履歴記録処理を実行するとよい。この場合、現在の状態において遊技履歴の周辺制御RAM1511cへの記録は継続して実行し、計数イベントの累積数を状態変化時に周辺制御RAM1511cから周辺制御SRAM1511d格納しなくてもよい。また、最古の状態における遊技履歴(計数イベントの累積数)を消去して直前の状態における計数イベントの累積数を記録してもよい。この場合、周辺制御SRAM1511dの遊技履歴格納領域にリングバッファを構成するとよい。
遊技履歴を記録するメモリの容量に空きがなくても遊技履歴記録処理を実行することによって、遊技履歴を記録するメモリの空き状態を確認する必要がなく、周辺制御部1511の毎回の処理を軽減できる。また、現在の状態における計数イベントの累積数は周辺制御RAM1511cに記録されているので、直近の遊技履歴を確認できる。
また、記録される遊技履歴がメモリの容量の上限に達した場合に、ステップS1023をスキップして、遊技履歴記録処理を実行しなくてもよい。記録される遊技履歴がメモリの容量の上限に達した場合に遊技履歴記録処理を実行しないことによって、無駄な処理の実行を防止し、周辺制御部1511の処理を軽減できる。
以上に説明したように、変形例1では、パチンコ機1の状態の切り替わりを記録し、切り替わり間の各状態における計数イベント(各入賞数、変動数など)の数を記録するので、SRAM1511dの遊技履歴格納領域の容量を大きくせずに、長時間の遊技履歴が記録できる。
また、前述したように、変形例1のパチンコ機1では、外部端子板784から出力される情報よりも多くの情報を内部的に記録しているのも特徴である。
さらに、前述したように、変形例1のパチンコ機1では、遊技履歴に新たなレコードが作られる条件は遊技状態の変化であり、遊技状態が変化しなければ周辺制御SRAM1511dの遊技履歴格納領域に情報(遊技履歴)が書き込まれない。つまり、遊技履歴格納領域に新たなレコードが作られない状態(同じ遊技状態の継続中)において不正が行われると、不正の発見が困難となるおそれがある。前述したように、ホールは、メモリに書き込まれた情報(遊技履歴)を解析するために、周辺制御SRAM1511dの遊技履歴格納領域に書き込まれた情報を確認できるものの、変形例1のパチンコ機1では、遊技状態が変化しないかぎり、周辺制御SRAM1511dの遊技履歴格納領域に情報が書き込まれないので、周辺制御SRAM1511dから情報を読み出しても、現在の状態の情報(遊技履歴)を確認できない。このような場合にも早期に不正を発見できるチェック機能を設けてもよい。
具体的には、直近の状態の遊技履歴が記録された第1のレコード(周辺制御SRAM1511dの最新のレコード)と現在の状態の遊技履歴が記録された第2のレコード(周辺制御RAM1511cのレコード)との比較結果が所定の条件を満たした場合、エラーを報知してもよい。
例えば、高確率・時短状態や大当たり遊技状態では遊技領域5aの右側を転動するように遊技球を発射する、いわゆる右打ちを行うパチンコ機1において、高確率・時短状態から大当たり遊技状態へ遷移し、さらに大当たり遊技状態終了後に高確率・時短状態へ遷移した場合、状態が切り替わっても、通常は右打ちを行っているため、遊技領域5aの左側にある一般入賞口に入賞する可能性は極めて低い。この場合、一般入賞口への入賞数を大当たり遊技状態とその後の高確率・時短状態とで比較して、差が検出されると、エラーを報知してもよい。状態間の一般入賞口への入賞球数の差の許容値は1個とし、2個以上の差が生じるとエラーを報知するとよい。これは、発射ハンドルから手を離すと発射勢にムラが生じ遊技領域5aの左側を遊技球が転動する可能性があるからである。
エラー報知に代えて、図116に示す外部端子板784からセキュリティ信号を送信してもよい。前述した早期不正発見チェック機能は、パチンコ機1の遊技状態から、遊技を予想して(例えば、高確率・時短状態だから右打ちするだろう)エラーを検出しているので、不慣れな遊技者が想定外の打ち方をする場合にエラーを検出する可能性がある。このため、パチンコ機1においてエラーを報知せず、外部端子板784からセキュリティ信号を出力するのみとし、遊技客には知らせないようにしてもよい。このようにすれば、ホールの店員がパチンコ機1から離れた場所から、遊技者に気付かれずにエラーの可能性を確認でき、遊技客とのトラブルも防止できる。
このように、パチンコ機1のエラー検出機能は万全ではないため、パチンコ機1の外部で遊技履歴を解析することによって、エラーの原因をチェックできるようにした。
[11-3.コンパクト案2]
前述した変形例1では、主制御基板1310から周辺制御基板1510へ送信されるコマンドのうち、状態変化イベントでパチンコ機1の状態の切り替わりを記録し、切り替わりの間の各状態における計数イベントの数を記録した。しかし、変化する個々の状態におけるイベントの数は重要ではない場合もあり、繰り返し発生する状態の種別毎のイベントの数が分かれば十分な場合も考えられる。このため、変形例2(コンパクト案2)では、パチンコ機1の状態と、当該状態毎の計数イベントの累計数を記録するものとした。
変形例2では、変形例1と同じ遊技履歴記録条件設定テーブル(図125)を用いて、遊技履歴を記録する。
図127は、変形例2のメモリに記録された遊技履歴を示す図である。
図127に示すように、変形例2の遊技履歴は、状態イベントの履歴と状態毎の各計数イベントの累計数とで構成される。状態イベントの履歴は、パチンコ機1の状態変化の契機となった状態変化イベントと、当該状態変化イベント後の状態と、当該状態変化イベントが発生した時刻とを含む。変形例2のパチンコ機1では、低確率・非時短状態、低確率・時短状態、高確率・非時短状態、高確率・時短状態、大当たり状態の5状態において、計数イベントの累計数が記録される。変形例2において記録される計数イベント(及び、当該イベントに関連するコマンド)は、始動口1入賞数(始動口1入賞時コマンド)、始動口2入賞数(始動口2入賞時コマンド)、特別図柄1変動数(特別図柄1図柄種別コマンド)、特別図柄2変動数(特別図柄2図柄種別コマンド)、一般入賞口1入賞数(一般入賞口1入賞コマンド)、一般入賞口2入賞数(一般入賞口2入賞コマンド)、一般入賞口3入賞数(一般入賞口3入賞コマンド)、大入賞口1入賞数(大入賞口1入賞コマンド)、大入賞口2入賞数(大入賞口2入賞コマンド)、ゲート通過数(普図ゲート通過コマンド)、普通図柄変動数(普通図柄停止コマンド)である。
なお、前述した以外の計数イベントの数を計数してもよく、計数イベントが分けて記録される状態を更に細分化してもよい。
次に、変形例2における遊技履歴記録処理の詳細を説明する。図127に示す遊技履歴では、状態変化イベントが生じると、状態変化イベントの種別、当該イベント発生後の状態、当該イベントの発生日時が状態イベント履歴に記録される。状態変化イベントによって遊技機の状態の変化が検出されると、変化前の状態において計数された計数イベントの累計数を不揮発性メモリに記録し、変化後の状態に対応して、前述した計数イベントの累計数の記録を開始する。
なお、現在の状態における計数イベントの計数結果は、周辺制御RAM1511cの作業領域に記録し、状態変化後にSRAM1511dの遊技履歴格納領域(当該状態の累積値)を読み出して、周辺制御RAM1511cの作業領域に記録された値を加算して、SRAM1511dの遊技履歴格納領域に格納するとよい。すなわち、状態変化イベントが生じる毎に、SRAM1511dの遊技履歴格納領域の累積値が、周辺制御RAM1511cの作業領域に記録された当該状態変化前の値を用いて更新される。このため、周辺制御RAM1511cの作業領域に記録されている現在の状態における計数結果は、停電発生時には記憶内容がバックアップされるが、通常のラムクリア操作によって初期化される。
また、現在の状態における計数イベントの計数結果を、SRAM1511dの遊技履歴格納領域に書き込んでもよい。すなわち、計数イベントが生じる毎に、SRAM1511dの遊技履歴格納領域の累積値が更新される。この場合、SRAM1511dに記録されている現在の状態における計数結果は、通常のラムクリア操作によっては初期化されないが、前述した遊技履歴初期化操作によって初期化される。
以上に説明したように、変形例2では、パチンコ機1の状態の切り替わりを記録し、状態の種別毎の計数イベント(各入賞数、変動数など)を記録するので、SRAM1511dの遊技履歴格納領域の容量を大きくせずに、長時間の遊技履歴が記録できる。
[11-4.コンパクト案3]
前述した変形例2では、主制御基板1310から周辺制御基板1510へ送信されるコマンドのうち、状態変化イベントでパチンコ機1の状態変化を記録し、状態毎の計数イベントの累積数を記録した。しかし、状態が切り替わったタイミングは重要ではない場合もあり、状態の種別毎のイベントの数が分かれば十分な場合も考えられる。このため、変形例3(コンパクト案3)では、パチンコ機1の状態の切り替わりを記録せず、状態毎の計数イベントの累計数を記録するものとした。
変形例3では、変形例1と同じ遊技履歴記録条件設定テーブル(図125)を用いて、遊技履歴を記録する。
変形例3では、図125に示す遊技履歴記録条件設定テーブルを用いて、変形例1で記録されるイベントと同じイベントを記録する。
図128は、変形例3のメモリに記録された遊技履歴を示す図である。
図128に示すように、変形例3の遊技履歴は、各状態における計数イベントの累計数で構成される。さらに、変形例3の遊技履歴は、各状態の累積時間を含む。累積時間を含めたのは、累積時間からイベントの発生回数(例えば、大当たりの発生回数等)をホールが推測できるようにするためである。計数イベントが分けて記録される状態は、低確率・非時短状態、低確率・時短状態、高確率・非時短状態、高確率・時短状態、大当たり状態の5状態であるが、更に細分化して計数イベントを記録してもよい。
変形例3において記録される計数イベント(及び、当該イベントに関連するコマンド)は、始動口1入賞数(始動口1入賞時コマンド)、始動口2入賞数(始動口2入賞時コマンド)、特別図柄1変動数(特別図柄1図柄種別コマンド)、特別図柄2変動数(特別図柄2図柄種別コマンド)、一般入賞口1入賞数(一般入賞口1入賞コマンド)、一般入賞口2入賞数(一般入賞口2入賞コマンド)、一般入賞口3入賞数(一般入賞口3入賞コマンド)、大入賞口1入賞数(大入賞口1入賞コマンド)、大入賞口2入賞数(大入賞口2入賞コマンド)、ゲート通過数(普図ゲート通過コマンド)、普通図柄変動数(普通図柄停止コマンド)である。なお、前述した以外の計数イベントの数を計数してもよい。
次に、変形例2における遊技履歴記録処理の詳細を説明する。図128に示す遊技履歴では、状態変化イベントが生じると、当該状態変化イベントによって変化した遊技機の状態に対応して、前述した計数イベントの累計数が記録される。
なお、現在の状態における計数イベントの計数結果は、周辺制御RAM1511cの作業領域に記録し、状態変化後にSRAM1511dの遊技履歴格納領域(当該状態の累積値)を読み出して、周辺制御RAM1511cの作業領域に記録された値を加算して、SRAM1511dの遊技履歴格納領域に格納するとよい。すなわち、状態変化イベントが生じる毎に、SRAM1511dの遊技履歴格納領域の累積値が更新される。このため、周辺制御RAM1511cの作業領域に記録されている現在の状態における計数結果は、停電発生時には記憶内容がバックアップされるが、通常のラムクリア操作によって初期化される。
また、現在の状態における計数イベントの計数結果を、SRAM1511dの遊技履歴格納領域に書き込んでもよい。すなわち、計数イベントが生じる毎に、SRAM1511dの遊技履歴格納領域の累積値が更新される。この場合、SRAM1511dに記録されている現在の状態における計数結果は、通常のラムクリア操作によっては初期化されないが、前述した遊技履歴初期化操作によって初期化される。
以上に説明したように、変形例2では、パチンコ機1の状態の切り替わりを記録し、状態の種別毎の計数イベント(各入賞数、変動数など)を記録するので、SRAM1511dの遊技履歴格納領域の容量を大きくせずに、長時間の遊技履歴が記録できる。
以上に説明したように、変形例1~3については、遊技履歴記録処理によってイベント発生時に一旦作業領域(周辺制御RAM1511c)に記録し、周辺制御SRAM1511dの遊技履歴格納領域に書き込む条件を満たしたときに、作業領域のデータをSRAM1511dの遊技履歴格納領域に書き込む。また、通常のラムクリア操作では、SRAM1511dの遊技履歴格納領域に書き込まれた情報は消去(初期化)しないが、作業領域(周辺制御RAM1511c)に記録した情報は消去(初期化)される。
ここでホールの営業について簡単に触れておく。多くの場合、ホールは営業時間が定められており、例えば開店時間が10:00で閉店時間が23:00である。このため、開店から間もない時間帯や夕方の時間帯などの、多くの遊技客がいる時間帯では、遊技客が不正な遊技をしているかの店員による監視は困難な場合がある。しかしながら、閉店時間が近づくと遊技客も減り、閉店間際において高確率・時短状態のパチンコ機があると、翌日の営業に向けて、高確率・時短状態のパチンコ機を初期化して、低確率・非時短状態にすることがある。この場合、遊技客が少ないことから、高確率・時短状態のパチンコ機を監視できるため、直近の遊技については不正されているかが分かる。つまり、直近の遊技履歴は必要ないパチンコ機もあるという状況を考慮すると、店員が直近の情報を残すかを選択可能にすることで、効率のよい遊技機を提供できる。
具体的には、ラムクリア操作によるパチンコ機1の初期化によって、直近のイベントの後に発生したイベントに関して作業領域に格納された遊技履歴を消去し、直近のイベントの前に発生したイベントに関して遊技履歴格納領域に格納された遊技履歴は残している。つまり、パチンコ機は外部端子板784から出力されない情報を記録するものの、RAMクリア操作によって消去される作業領域に記録された情報と、RAMクリア操作によって消去されない遊技履歴格納領域に記録された情報とに分けて、遊技履歴を記録している。このようにすることで、作業領域に記録される全てのイベントの記録を残したい場合、店員がパチンコ機の状態変化を引き起こせばよく、作業領域に記録されたイベントの記録を消去したい場合、店員はラムクリア操作を行えばよい。ラムクリア操作によって、全ての遊技履歴を消去せず、直近のイベントの後に発生したイベントに関する作業領域に格納された遊技履歴のみを消去することとしたのは、前述したように、直近のイベントの前までに発生したイベントは店員は見ていない(遊技客が多いため見られない)ためである。
前述したように、本実施例のパチンコ機1では、始動口に入賞したという情報の記録だけでなく、抽選と関係ない一般入賞口への入賞も作業領域に一旦は記録するため、特別図柄(始動口に入賞したことによって変動を開始する図柄で、この図柄の停止態様をもって当落の抽選結果が示される図柄)が変動していなくとも、遊技領域5aに遊技球が打ち出されている間は遊技履歴を収集することを特徴としている。つまり、遊技履歴記録処理は、当落の抽選を契機に実行される処理ではなく、パチンコ機に電源が供給されている間は常に実行される可能性がある処理であると言える。
また、低確率・非時短状態であれば、いわゆる左打ちやちょろ打ちのように、始動口2002へ遊技球が入賞するように遊技球を発射する。このような場合、始動口2002や一般入賞口2001へは適度に入賞するはずである。しかし、一般入賞口2001への入賞が無い(または、極めて少ない)が、始動口2002に多くの遊技球が入賞している場合や、逆に始動口2002への入賞が無い(または、極めて少ない)が、一般入賞口2001に多くの遊技球が入賞している場合には、不正が行われている可能性がある。そこで、同時期に遊技球が入賞する第1の入賞口と第2の入賞口を監視対象に設定し、第1の入賞口への入賞数が第2の入賞口への入賞数の所定倍率を超えるときに、エラーを報知してもよい。
また、エラー報知に代えて、外部端子板784からセキュリティ信号を送信してもよい。前述の検出方法では、不慣れな遊技者が想定外の打ち方をする場合にエラーを検出する可能性がある。このため、パチンコ機1においてエラーを報知せず、外部端子板784からセキュリティ信号を出力するのみとし、遊技客には知らせないようにしてもよい。このようにすれば、ホールの店員がパチンコ機1から離れた場所から、遊技者に気付かれずにエラーの可能性を確認でき、遊技客とのトラブルも防止できる。
また、本実施例のパチンコ機1は、複数ゲームで累積した情報を遊技履歴として収集していることも特徴としている。記録可能な遊技履歴のデータ量には上限があるため、1ゲーム(1変動)ごとに記録すると、多くのゲーム(長時間)の記録ができないため、より多くのゲームの記録を保持可能にしている。
[12.遊技性能の設定機能]
次に、設定機能を有するパチンコ機の実施例を説明する。本実施例のパチンコ機は、遊技性能として、例えば条件装置の作動割合を変更する設定機能を有する。
[12-1.設定機能を有するパチンコ機の基本構成]
図129は、設定部を有するパチンコ機の制御構成を概略的に示すブロック図であり、図130は、設定部を有するパチンコ機を開扉状態で裏面側から見た斜視図であり、図131は、図130に示すパチンコ機を閉扉状態で裏面側から見た斜視図であり、図132は、図130に示すパチンコ機の設定部を示す図である。
図129に示すパチンコ機は、パチンコ機の遊技性能を設定するための設定基板970を有する。設定基板970は、払出制御基板951と接続されており、払出制御部952が各スイッチの操作状態を取得し、設定表示器974の表示を制御する。
図132(A)の正面図に示すように、設定基板970には、パチンコ機1の動作モードを設定変更モードや設定確認モードに変更するための設定キー971、設定値を変更するための設定変更スイッチ972、変更された設定値を確定入力するための設定確定スイッチ973、及び、設定又は選択された設定値を表示する設定表示器974が設けられる。設定基板970は、設定変更の操作を受け付ける設定変更操作部として機能する。
本実施例では、設定基板970上の設定キー971、設定変更スイッチ972及び設定確定スイッチ973の操作信号は、払出制御部952に取り込まれる。また、設定表示器974は、払出制御部952によって制御される。確定した設定は、払出制御部952から主制御基板1310に送信される。なお、後述するように、主制御基板1310が設定基板970上の部品を制御してもよい。
設定キー971は、鍵穴(鍵挿入部)に所定の鍵を挿入して、設定位置に鍵を回す操作によって接点の短絡又は開放状態を維持して、設定変更モードや設定確認モードに変更するための契機となる信号を出力するスイッチである。なお、設定キー971を設けずに、他のスイッチで兼用してもよい。この場合、設定変更スイッチ972を所定時間(例えば5秒)以上操作すること(長押し)によって、設定変更モードや設定確認モードを開始し、設定変更モードや設定確認モード中における設定変更スイッチ972の長押しによって、設定変更モードや設定確認モードを終了してもよい。
また、RAMクリアスイッチ954の操作によって設定変更モードを開始・終了してもよい。例えば、RAMクリアスイッチ954を操作しながら電源を投入し、さらにRAMクリアスイッチ954の操作を所定時間(例えば5秒)以上継続すること(長押し)によって、設定変更モードを開始する。また、RAMクリアスイッチ954を操作しながら電源を投入し、RAMクリアスイッチ954の継続した操作が所定時間未満であれば、RAMクリア処理を実行する。さらに、設定変更モード中におけるRAMクリアスイッチ954の長押しによって、設定変更モードを終了してもよい。
このようにすると、設定キー971用の鍵を保有していない従業員でも設定変更が可能なことから、ホールでのパチンコ機1の取り扱いが容易になる。また、設定変更スイッチ972の操作時間を検出することから、設定変更スイッチ972の立ち下がりで操作を検出するとよい。
設定変更スイッチ972は、例えば押しボタンスイッチで構成され、設定値(1~6)を順に切り替えて選択するために操作される。つまり、設定変更スイッチ972が1回押されると、設定値が1増加し、設定値=6の時に設定変更スイッチ972が操作されると設定値=1となる。なお、設定変更スイッチ972を設けずに、RAMクリアスイッチ954の操作によって設定値が選択可能でもよい。なお、設定値は、6段階でなく、これより少ない段階(例えば2段階)でも、多い段階(例えば8段階)でもよい。
また、設定変更スイッチ972を設けず、設定キー971が設定変更スイッチ972を兼ねてもよい。この場合、設定キー971が3段階に操作可能で、中立位置(通常位置)では鍵が挿抜可能で、左に回すと設定変更モードを開始するための操作となり、右に回すと設定すべき設定値を選択するための操作となる(右に回すと設定変更スイッチ972として機能する)。設定キー971は、左位置及び中立位置を保持可能なアルタネイティブ動作をし、右位置が保持されない(鍵から手を離すと中立位置に戻る)モーメンタリ動作をする。
なお、設定値は条件装置の作動割合(つまり、特別図柄の当り確率)を変更するものであり、設定値=1が当り確率が低く、設定値=6が当り確率が高い。また、設定値によって、確変大当りの割り合い、大当り後の時短(ST)の割り合い、時短回数、大当りのラウンド数やカウント数、普図当り確率、一般入賞口や始動口や大入賞口の賞球数など、遊技に関する様々なパラメータを変更して遊技者が獲得できる賞球の数を変化させてもよい。
設定確定スイッチ973は、例えばモーメンタリ型のスイッチで構成され、設定変更スイッチ972の操作によって選択された設定値を確定し、パチンコ機1に入力するためのスイッチである。設定確定スイッチ973は、モーメンタリ型のスイッチであれば、押しボタンスイッチでも、モーメンタリ型のトグルスイッチでもよい。設定変更スイッチ972と設定確定スイッチ973とは、両スイッチを間違えて操作しないように、操作方法(操作方向)や形状が異なるスイッチで構成するとよい。例えば、設定変更スイッチ972を押しボタンスイッチで構成し、設定確定スイッチ973をモーメンタリ型のトグルスイッチで構成するとよい。
なお、設定確定スイッチ973を設けずに、設定キー971を通常位置に戻す操作によって選択された設定を確定してもよい。また、パチンコ機1に設けられた他のスイッチやセンサの動作を契機に選択された設定値を確定してもよい。例えば、ハンドルユニット500のハンドルレバー504の操作や、ハンドルレバー504に触ったことによる接触検知センサ509による接触検出や、ハンドルユニット500のストップボタンの操作や、操作ボタン220Cの操作や、球貸ボタンの操作や、返却ボタンの操作や、始動口2002、2004への遊技球の入賞検出などによって、選択された設定を確定してもよい。設定確定スイッチ973を代用する操作部は、遊技者が操作可能な(遊技に使用する)スイッチでも、遊技者が操作不可能な(パチンコ機の裏面側に設けられた)スイッチでもよい。
つまり、図示した例では、パチンコ機1に遊技性能を設定するために、設定基板970に三つのスイッチ(設定キーも含む)を設けたが、設定基板970には、一つ又は二つのスイッチを設ければ足りる。
さらに、設定キー971、設定変更スイッチ972及び設定確定スイッチ973のいずれも設けず、RAMクリアスイッチ954のみで設定変更操作を可能としてもよい。例えば、RAMクリアスイッチ954を操作しながら電源を投入し、さらにRAMクリアスイッチ954の操作を所定時間(例えば5秒)以上継続すること(長押し)によって、設定変更モードを開始する。また、RAMクリアスイッチ954を操作しながら電源を投入し、RAMクリアスイッチ954の継続した操作が所定時間未満であれば、RAMクリア処理を実行する。さらに、設定変更スイッチ972に代えて、設定変更モード中におけるRAMクリアスイッチ954の所定時間(例えば5秒)未満の操作によって、設定値を選択可能とし、設定確定スイッチ973に代えて、RAMクリアスイッチ954の所定時間以上の操作(長押し)によって、設定値を確定可能とする。さらに、設定確定後のRAMクリアスイッチ954の長押しによって、設定変更モードを終了してもよい。
設定表示器974は、例えば7セグメントLEDで構成され、設定変更スイッチ972の操作によって選択された設定値を表示し、所定の操作(例えば、設定キー971の操作)によって現在の設定値を表示する。なお、設定表示器974を7セグメントLEDではなく、設定可能な値の数のLEDによって構成してもよい。この場合、設定値に対応するLEDが点灯して、設定値を表示する。
本実施例のパチンコ機1では、払出制御基板951に払出エラーの種別を表示する7セグメントLEDによるエラー種別表示器が設けられているが、このエラー種別表示器と設定表示器974を兼用し、選択された設定値や現在の設定値をエラー種別表示器に表示してもよい。この場合、エラー種別の表示と設定値の表示とを区別できるように表示態様を変えるとよい。例えば、エラー種別の表示においてはドットを消灯し、設定値の表示においてはドットを点灯してもよい。また、エラー種別の表示は(点滅しない)点灯表示をし、設定値の表示は点滅表示をしてもよい。
図示した例では、設定基板970が払出制御基板951と接続されているが、電源基板ボックス930内の電源基板(図示省略)と接続されてもよい。設定基板970を電源基板に併設して(又は、電源基板ボックス930の内部に)設けることによって、設定変更時に操作される設定キー971と電源スイッチ932を近隣に配置して、設定変更の操作性を向上できる。
また、後述するように、設定基板970が主制御基板1310と接続されてもよい。
さらに別な形態として、設定基板970が独立した基板ではなく、払出制御基板951や電源基板や主制御基板1310の一部でも構成されてもよい。すなわち、払出制御基板951、電源基板又は主制御基板1310のいずれかに、設定キー971、設定変更スイッチ972、設定確定スイッチ973及び設定表示器974が搭載されてもよい。
図130に示すように、設定基板970は、パチンコ機1を構成する本体枠4の下部(つまり、遊技盤5ではなく枠側)の右側面に取り付けられており、図131に示すように、本体枠4を外枠2に収容すると設定基板970の少なくとも一部が外枠2の右枠部材40とが対向する。本体枠4が外枠2に収容された状態では、設定基板970と右枠部材40との間隔は狭いので、この状態で設定基板970上のキーやスイッチの操作は困難となっている。このように、右枠部材40は、設定キー971を隠蔽し、設定キー971の鍵穴への鍵の挿入を阻害し、設定基板970(設定変更操作部)の操作を困難にする設定変更困難化手段として機能する。本実施例のパチンコ機1では、本体枠4を外枠2に収容した状態で、設定基板970の少なくとも一部として設定キー971が外枠2の右枠部材40と狭い間隔で対向すればよいが、設定基板970の全部が外枠2の右枠部材40と狭い間隔で対向してもよい。この場合、設定基板970の幅が右枠部材40の幅を超えないように、キーやスイッチを縦に並べて配置するとよい。このように、設定基板970の全部が外枠2の右枠部材40と狭い間隔で対向すると、パチンコ機1の稼動中に(つまり、本体枠4が外枠2に収容された状態で)設定基板970の操作を困難にして、遊技者がパチンコ機1の設定を変える不正行為を抑制できる。
本体枠4が外枠2に収容された状態で設定基板970と対向する部材(設定変更困難化手段)は、図示した例では、右枠部材40であるが、他の部材でもよい。例えば、外枠2に設けられるカバーが、本体枠4が外枠2に収容された状態では、設定基板970と狭い間隔で対向する位置に配置されてもよい。また、本体枠4の開閉に連動して移動するカバーを設け、本体枠4が外枠2に収容された状態では、該カバーが設定基板970と狭い間隔で対向する位置に配置されてもよい。
設定基板970と対向して設けられる部材によって構成される設定変更困難化手段は、設定基板970を覆うカバーでもよい。この場合、設定変更モードを開始する契機となる設定キー971を2重のカバーで覆うとよい。例えば、設定基板970を覆う内カバーと、設定基板970を含めた各種制御基板を覆う外カバーとを設ける。また、設定キー971の鍵穴を覆う内カバーと、設定基板970を覆う外カバーとを設けてもよい。より具体的には、設定基板970は設定基板ケースに収容されており、設定基板ケースには設定キー971や各スイッチ972、973(少なくとも設定キー971)の不用意な操作を妨げる第1のカバー体(例えば、操作時に開けることができる扉状の蓋体)を設ける。さらに、設定基板970や主制御基板1310も含めた各種制御基板を覆う第2のカバー体を、外枠2に設ける。なお、第2のカバー体は、本体枠4や遊技盤5に設けて各種制御基板を覆ってもよい。このようにすると、不用意な操作による設定変更モードの開始を防止でき、不正な遊技者がパチンコ機1の設定を変える不正行為を抑制できる。
本体枠4が外枠2に収容された状態で設定基板970が右枠部材40などの部材と対向する距離は、設定キー971の鍵穴に挿入される鍵の頭部(操作時に把持するキーヘッド)の長さより短ければよい。
設定変更時に操作される設定キー971と電源スイッチ932とが近隣に配置されるように、設定基板970を電源スイッチ932の近傍に配置するとよい。このようにすると、設定変更モードを起動する際の操作性を向上できる。
また、図131に示すように、電源基板ボックス930には、パチンコ機1に通電するための電源スイッチ932が設けられており、払出制御基板ユニット950には、パチンコ機1の主制御RAM1312を初期化するRAMクリアスイッチ954が設けられている。このように、パチンコ機1には、遊技中には操作されず、裏面側から操作可能な複数のスイッチが設けられているが、前述した電源スイッチ932とRAMクリアスイッチ954とは、裏面側から視認及び操作可能な位置に設けられている。一方、設定キー971は(望ましくは、設定変更スイッチ972と設定確定スイッチ973も)、パチンコ機1の稼動中には裏面側から視認及び操作困難な位置に設けられている。これは、電源スイッチ932やRAMクリアスイッチ954は、製造工程で頻繁に操作されることから、パチンコ機1の稼動中に裏面側から操作可能な位置に設けられる。一方、設定キー971は、パチンコ機1の稼動中には操作困難に隠しておくことによって、遊技中に設定基板970を操作して、パチンコ機1の設定を変える不正行為を抑制している。このように本実施例のパチンコ機1では、利便性と不正行為の抑制を両立させるように、パチンコ機1の裏面側のスイッチを配置している。
同様に、パチンコ機1の現在の設定値は、遊技客の台の選択に重要な情報であることから、遊技客に知られないことが望ましい。このため、図131に示すように、設定キー971と同様に、設定表示器974も右枠部材40と狭い間隔で対向させて表示が見えないようにするとよい。なお、通常は、本体枠4が外枠2に収容された状態や設定キー971が操作されていない状態では、設定表示器974は消灯して、遊技者に設定値を知られないようにすることが望ましい。このように、右枠部材40は、設定表示器974の表示内容を隠蔽し、設定表示器974(設定状態表示部)の表示内容の視認を困難にする視認困難化手段として機能する。
図132(B)は、本体枠4が外枠2に収容された状態で、設定基板970を上から見た図である。この状態では、設定基板970は右枠部材40と狭い間隔で対向しているので、設定キー971の鍵穴に挿入された鍵975の頭部と右枠部材40とが干渉し、設定キー971の鍵穴に鍵975を挿入できない。
一方、本体枠4が外枠2から開放された状態では、設定キー971の鍵穴の前面に右枠部材40が位置せず、設定キー971の鍵穴に鍵975を挿入可能となる。
また、設定表示器974の表示面は、パチンコ機1の側面を向いており、本体枠4が外枠2に収容された状態では右枠部材40と対向しているので、遊技者による正面からパチンコ機の現在の設定値の確認が困難になっている。
図133は、設定基板970の変形例を示す図である。
本変形例でも、前述した例と同様に、設定基板970には、設定キー971、設定変更スイッチ972、設定確定スイッチ973及び設定表示器974が設けられる。しかし、本変形例では、設定キー971が設定基板970に横向きに配置されており、設定基板の側方から鍵975を挿入するようになっている。
このため、本変形例の設定基板970は、本体枠4の側面側ではなく裏面側に、鍵穴が側面を向くように設置する。そして、図133(B)に示すように、設定基板970を上から見ると、本体枠4が外枠2に収容された状態で、設定基板970の側面(すなわち、鍵穴)は右枠部材40と狭い間隔で対向しているので、設定キー971の鍵穴に挿入された鍵975の頭部と右枠部材40とが干渉し、設定キー971の鍵穴に鍵975を挿入できない。
図133に示す変形例では、パチンコ機1の基板を他の基板と同じ向きに配置でき、基板配置の困難性を低くしても、パチンコ機1の稼動中に設定基板970を操作して、パチンコ機1の設定を変える不正行為を抑制できる。
次に、設定部を有するパチンコ機の変形例を説明する。本変形例では、設定基板970が本体枠4ではなく遊技盤5に設けられており、主制御基板1310に接続されている。
図134は、本変形例のパチンコ機の制御構成を概略的に示すブロック図であり、図135は、設定部を有する遊技盤を後ろから見た斜視図であり、図136は、図135に示す遊技盤を実装したパチンコ機を後ろから見た斜視図である。
設定基板970は、設定キー971、設定変更スイッチ972、設定確定スイッチ973及び設定表示器974が設けられる。設定基板970は、図132(A)に示すものでも図133(A)に示すものでもよい。
図134に示すパチンコ機1では、パチンコ機の遊技性能を設定するための設定基板970は、主制御基板1310と接続されており、主制御MPU1311が各スイッチの操作状態を取得し、主制御MPU1311が設定表示器974の表示を制御する。
設定基板970や、設定基板上の各部品の機能及び構成は、前述した実施例と同じであり、共通する説明は省略する。
主制御基板1310には7セグメントLEDで構成されるベース表示器1317が設けられている。このため、ベース表示器1317と設定表示器974を兼用し、選択された設定値や現在の設定値をベース表示器1317に表示してもよい。ベース表示器1317には、通常は、暫定区間(現在計測中の区間)のベース値と確定区間(直線の区間)のベース値とが所定時間間隔で切り替えて表示される。一方、設定変更モード中では、選択された(次に設定される)設定値が表示され、設定確認中(図152参照)では、現在の設定値が表示される。
この場合、ベース値の表示と設定値の表示とを区別できるように表示態様を変えるとよい。例えば、ベース値の表示は4桁を使用するが、設定値の表示は所定の1桁(例えば、最右の桁)のみを使用し、「-」を表示してもよい。設定値の表示で使用されない桁には、「-」ではなく、ベース値の表示で使用されないものであれば他の数字、文字、記号を表示してもよい。また、設定値を表示する場合、ベース値の表示で使用されない文字を表示してもよい。例えば、設定値をアルファベットのA、b、C、d、E、Fの6段階で表示する。
さらに、設定変更モードにおいて設定値の選択中は点滅表示し、確定した設定値は点灯表示するとよい。また、現在の設定値は点灯表示するとよい。また、ベース表示において上2桁は表示データの種別を表し、数字が表示されることはない。このため、最上位桁を使用して設定値を表示してもよい。なお、ベース表示器1317と設定表示器974を兼用する場合、設定変更モード及び設定確認中は設定値が優先して表示されるので、ベース値の計算は行われているものの、ベース値が表示されない。その後、設定変更モードや設定値の確認が終了すると、ベース表示器1317は、ベース値の表示を再開する。
また、ベース表示器1317と設定表示器974を兼用する場合、設定表示器974へ表示内容を出力する処理は遊技制御領域内の遊技制御用コード13131によって実行され、ベース表示器1317へ表示内容を出力する処理は遊技制御領域外のベース算出・表示用コード13135で実行される。しかし、ベース算出・表示用コード13135の一部(例えば、表示データをドライバ回路に出力する処理)を遊技制御領域内に設けてもよい。処理の共通化によってプログラムの容量を小さくでき、メモリを節約できる。
一方、設定表示器974へ表示内容を出力する処理は遊技制御領域内の遊技制御用コード13131によって実行され、ベース表示器1317へ表示内容を出力する処理は遊技制御領域外のベース算出・表示用コード13135で実行すると、遊技制御領域内外の処理を完全に分離でき、セキュリティを向上できる。
また、設定変更や設定確認の処理は、遊技制御領域外で実行してもよい。
つまり、設定表示器974が、ベース表示器1317と別に設けられても、ベース表示器1317と兼用されても、いずれの場合も、本明細書に記載された発明の範疇に含まれる。このように、設定変更モードや設定値の確認中において、主制御基板ボックス1320に設けられる複数の表示を紛らわしくないように表示することによって、設定変更時の誤操作や設定値の誤認を防止できる。
また、ベース表示器1317と設定表示器974を兼用しない場合でも、設定表示器974が設定値を表示中は、ベース表示器1317の表示を消したり、全点灯してもよい。この場合でも、設定変更モードや設定値の確認が終了すると、ベース表示器1317はベース値の表示を再開する。設定変更モードや設定値の確認中において、主制御基板ボックス1320に複数の表示をしないことによって、設定変更時の誤操作や設定値の誤認を防止できる。
図示した例では、設定基板970が主制御基板1310と接続されているが、設定基板970が独立した基板ではなく、主制御基板1310の一部に形成されてもよい。すなわち、主制御基板1310に、設定キー971、設定変更スイッチ972、設定確定スイッチ973及び設定表示器974が搭載されてもよい。
設定基板970は、主制御基板1310と共に主制御基板ボックス1320に封入されてもよい。設定基板970が主制御基板ボックス1320に封入される場合、主制御基板ボックス1320には、設定基板970上の設定キー971、設定変更スイッチ972及び設定確定スイッチ973を操作するための穴や切り欠きが設けられる。
設定基板970を主制御基板ボックス1320に封入する場合、設定基板970上の設定キー971の鍵穴の向きによって主制御基板ボックス1320の構造、つまり開閉方向が異なる。具体的には、鍵975を基板の正面から基板に垂直に挿入する場合、主制御基板ボックス1320は、設定基板970の表面と裏面とで設定基板970に垂直に分離する又は表面側箱体(又はカバー)と裏面側箱体とを1辺を蝶番として開閉可能な構造にするとよい。一方、鍵975を側方から基板が延伸する方向に挿入する場合、主制御基板ボックス1320は、設定基板970の表面側箱体(又はカバー)と裏面側箱体とで設定基板970の延伸方向(鍵975の挿入方向)にスライドして分離する構造にするとよい。
本変形例では、設定基板970上の設定キー971、設定変更スイッチ972及び設定確定スイッチ973の操作信号は、主制御MPU1311に取り込まれる。また、設定表示器974は、主制御MPU1311によって制御される。
図135に示すように、設定基板970は、パチンコ機1を構成する遊技盤5の右側面(図135では左側)に取り付けられており、図136に示すように、遊技盤5が取り付けられた本体枠4を外枠2に収容すると設定基板970の少なくとも一部が外枠2の右枠部材40とが対向する。本体枠4が外枠2に収容された状態では、設定基板970と右枠部材40との間隔は狭いので、本体枠4が外枠2に収容された状態では、設定基板970上のキーやスイッチの操作は困難となっている。本実施例のパチンコ機1では、本体枠4を外枠2に収容した状態で、設定基板970の少なくとも一部として設定キー971が外枠2の右枠部材40と狭い間隔で対向すればよいが、設定基板970の全部が外枠2の右枠部材40と狭い間隔で対向してもよい。この場合、設定基板970の幅が右枠部材40の幅を超えないように、キーやスイッチを縦に並べて配置するとよい。このように、設定基板970の全部が外枠2の右枠部材40と狭い間隔で対向すると、パチンコ機1の稼動中に(つまり、本体枠4が外枠2に収容された状態で)設定基板970を操作して、パチンコ機1の設定を変える不正行為を抑制できる。
本体枠4が外枠2に収容された状態で設定基板970と対向する部材(設定変更困難化手段)は、図示した例では、右枠部材40であるが、他の部材でもよい。例えば、外枠2に設けられるカバーが、本体枠4が外枠2に収容された状態では、設定基板970と狭い間隔で対向する位置に配置されてもよい。また、本体枠4の開閉に連動して移動するカバーを設け、本体枠4が外枠2に収容された状態では、該カバーが設定基板970と狭い間隔で対向する位置に配置されてもよい。
本体枠4が外枠2に収容された状態で設定基板970が右枠部材40などの部材と対向する距離は、設定キー971の鍵穴に挿入される鍵の頭部(操作時に把持するキーヘッド)の長さより短ければよい。
また、図136に示すように、電源基板ボックス930には、パチンコ機1に通電するための電源スイッチ932が設けられており、払出制御基板ユニット950には、パチンコ機1の主制御RAM1312を初期化するRAMクリアスイッチ954が設けられている。このように、パチンコ機1には、遊技中には操作されず、裏面側から操作可能な複数のスイッチが設けられているが、前述した電源スイッチ932とRAMクリアスイッチ954とは、裏面側から視認及び操作可能な位置に設けられている。一方、設定キー971は(望ましくは、設定変更スイッチ972と設定確定スイッチ973も)、パチンコ機1の稼動中には裏面側から視認及び操作困難な位置に設けられている。これは、電源スイッチ932やRAMクリアスイッチ954は、製造工程で頻繁に操作されることから、パチンコ機1の稼動中に裏面側から操作可能な位置に設けられる。一方、設定キー971は、パチンコ機1の稼動中には操作困難に隠しておくことによって、遊技中に設定基板970を操作して、パチンコ機1の設定を変える不正行為を抑制している。このように本実施例のパチンコ機1では、利便性と不正行為の抑制を両立させるように、パチンコ機1の裏面側のスイッチを配置している。
同様に、パチンコ機1の現在の設定値は、遊技客の台の選択に重要な情報であることから、遊技客に知られないことが望ましい。このため、図136に示すように、設定キー971と同様に、設定表示器974も右枠部材40と狭い間隔で対向させて表示が見えないようにするとよい。なお、通常は、本体枠4が外枠2に収容された状態や設定キー971が操作されていない状態では、設定表示器974は消灯して、遊技者に設定値を知られないようにすることが望ましい。このように、右枠部材40は、設定表示器974の表示内容を隠蔽し、設定表示器974(設定状態表示部)の表示内容の視認を困難にする視認困難化手段として機能する。
図134に示すパチンコ機1において、本体枠4が外枠2に収容された状態で、設定基板970を上から見た図は、図132(B)や図133(B)に示すとおりである。この状態では、設定基板970や設定キー971の鍵穴は右枠部材40と狭い間隔で対向しているので、設定キー971の鍵穴に挿入された鍵975の頭部と右枠部材40とが干渉し、設定キー971の鍵穴に鍵975を挿入できない。
また、設定表示器974の表示面は、パチンコ機1の側面を向いており、本体枠4が外枠2に収容された状態では右枠部材40と対向しているので、遊技者による正面からパチンコ機の現在の設定値を確認できなくなっている。
次に、設定変更に関する処理を説明する。
図137は、初期化処理の一例を示すフローチャートである。図137に示す初期化処理は、図21で前述した初期化処理と比較し、設定キーが操作されている場合にRAMクリア処理を行う点(ステップS17、ステップS30)及びCPU初期設定処理(ステップS28)内で設定変更処理を行う点が相違する。なお、図21で前述した初期化処理と同じステップには同じ符号を付し、その詳細な説明は省略する。
パチンコ機1に電源が投入されると、主制御基板1310の主制御MPU1311が主制御プログラムを実行することによって初期化処理を行う。主制御MPU1311は、まず、主制御MPU1311に内蔵されたRAM1312のプロテクトを書き込み許可に設定し、RAM1312への書き込みができる状態にする(ステップS10)。続いて、主制御MPU1311は、内蔵されたウォッチドッグタイマを起動し(ステップS12)、所定のウェイト時間(サブ基板(周辺制御基板1510など)が起動するために必要な時間)が経過したかを判定する(ステップS16)。所定のウェイト時間が経過していれば、設定キー971が操作されており、その出力がオンであるかを判定する(ステップS17)。設定キー971が操作されている場合、内蔵RAM1312のワークエリアにバックアップされているデータのうち設定値のデータと遊技状態(例えば、確変状態、時短状態、特別図柄や普通図柄の保留記憶、賞球に関する情報)のデータを残し、それ以外のデータを消去し(ステップS30)、ステップS24に進む。
一方、設定キー971が操作されていない場合、RAMクリアスイッチが操作されているかを判定する(ステップS18)。RAMクリアスイッチが操作されている場合、内蔵RAM1312のワークエリアにバックアップされているデータのうちベース算出用ワークエリア(ベース算出用領域13128)以外の領域のデータを消去し(ステップS30)、ステップS24に進む。一方、RAMクリアスイッチが操作されていない場合、内蔵RAM1312にバックアップされているデータを消去せず、停電フラグが設定されているかを判定する(ステップS20)。
その結果、停電フラグが設定されていなければ、内蔵RAM1312のワークエリアのデータは正しくない恐れがあるので、ワークエリアにバックアップされているデータ(ベース算出用領域13128以外)を消去し(ステップS30)、ステップS24に進む。一方、停電フラグが設定されていれば、停電フラグをクリアし、前回の電源遮断時に計算されたチェックサムを用いて内蔵RAM1312のワークエリアにバックアップされているデータから算出したチェックサムとステップS48で記憶したチェックサムとを比較(検証)する(ステップS22)。
その結果、バックアップデータから算出されたチェックサムとステップS48で記憶したチェックサムとが一致しなければ、内蔵RAM1312のワークエリアのデータは正しくない恐れがあるので、ワークエリアにバックアップされているデータ(ベース算出用領域13128以外)を消去し(ステップS30)、ステップS24に進む。一方、バックアップデータから算出されたチェックサムとステップS48で記憶したチェックサムとが一致すれば、内蔵RAM1312のワークエリアのデータは正しいので、ワークエリアにバックアップされているデータを消去せず、ステップS24に進む。
続いて、チェックコードを用いてベース算出用ワークエリア(ベース算出用領域13128)が正常かを判定する(ステップS24)。異常であると判定された場合、ベース算出用ワークエリアのデータは正しくない恐れがあるので、ベース算出用ワークエリアに格納されているデータを消去する(ステップS26)。
本実施例のパチンコ機1では、RAM1312の少なくとも一部の領域が初期化されるケースとして、設定キー971の操作(ステップS17)と、RAMクリアスイッチの操作(ステップS18)と、停電フラグがセットされていない停電フラグ異常(ステップS20)と、RAMのチェックサムが一致しないRAM異常(ステップS22)と、ベース算出用ワークの異常(ステップS24)とがある。これらのうち、図示したように、電源投入時に設定キー971の操作が検出された場合は、遊技制御用領域13126(遊技用ワーク領域と遊技用スタック領域を含む)のうち、設定値と遊技状態(例えば、確変状態、時短状態、特別図柄や普通図柄の保留記憶、賞球に関する情報)のデータを残し、それ以外のデータをクリアし、ベース算出用領域13128(遊技制御領域外)はクリアしない。電源投入時にRAMクリアスイッチの操作が検出された場合、及び停電フラグ異常、RAM異常の場合は、遊技制御用領域13126(遊技用ワーク領域と遊技用スタック領域を含む)をクリアし、ベース算出用領域13128(ベース算出用ワーク領域とベース算出用スタック領域を含む)はクリアしない。また、ベース算出用ワーク異常の場合、ベース算出用領域13128(遊技制御領域外)をクリアし、遊技制御用領域13126はクリアしない。
なお、図示したものと異なり、停電フラグ異常、RAM異常、ベース算出用ワーク異常の場合は、RAM1312に格納されたデータの正当性が保証されないことから、遊技制御用領域13126及びベース算出用領域13128を含む全RAM領域をクリアしてもよい。ベース算出用ワーク異常の場合に全RAM領域をクリアすると、遊技状態を示すデータが消失して正常な処理が実行不可能になるメモリ構成である場合、ベース算出用ワーク領域とベース算出用スタック領域のみを初期化するとよい。また、電源投入時にRAMクリアスイッチの操作が検出された場合は、前述と同様に、遊技制御用領域13126(遊技用ワーク領域と遊技用スタック領域を含む)をクリアし、ベース算出用領域13128はクリアしなくてよい。
このように、本実施形態のパチンコ機1では、内蔵RAM1312のワークエリアにバックアップされているデータを、データの種別毎に(遊技制御用領域13126(設定値、遊技状態のデータ)、ベース算出用領域13128)異なる条件で消去する。すなわち、RAMクリアスイッチの操作によって、設定値以外のバックアップされた遊技制御用領域13126は消去され、設定値とベース算出用領域13128は消去されない。RAMクリアスイッチの操作によって設定値が消去されると、RAMクリア操作毎に設定値を再設定する必要があり、ホールのパチンコ機1のメンテナンスが煩雑になるからである。このため、RAMクリアスイッチの操作によって、設定値が消去されないようにしている。
ステップS28より後の処理は、必要に応じて、図22と図102とのいずれかを採用すればよい。図22と図102との違いは、電源遮断時にベース算出用ワークエリア(ベース算出用領域13128)のデータからチェックコード算出して格納する処理(ステップS50、S52)の有無である。
図138、図139は、設定変更処理及び設定表示処理の一例を示すフローチャートであり、図138は設定基板970が払出制御基板951に接続されている(又は払出制御基板951と一体に構成されている)場合の処理を示し、図139は設定基板970が主制御基板1310に接続されている(又は主制御基板1310と一体に構成されている)場合の処理を示す。
まず、図138(A)に示す主制御基板1310と払出制御基板951とが連携した設定変更処理を説明する。
パチンコ機1に電源が投入されると、(1)払出制御部952が、設定キー971がオンに操作されているか、及び、本体枠4が外枠2から開放しているかを判定する。本体枠4が外枠2から開放しているかは、本体枠開放スイッチからの検出信号によって判定できる。なお、設定キー971の配置位置から考えると、設定キー971を操作するためには、本体枠4が外枠2から開放しているので、この本体枠4の開放の判定は省略してもよい。
設定キー971がオンに操作されており、かつ、本体枠4が外枠2から開放していれば、払出制御部952は設定変更モードを開始する。このように、払出制御部952は設定変更許容状態発生手段として機能する。前述以外の設定変更モードの開始条件として、ハンドルユニット500のハンドルレバー504の操作や、ハンドルレバー504に触ったことによる接触検知センサ509による検出や、CRユニットにプリペイドカードが挿入されていたり(プリペイドカードの残高がある)、現金サンドに投入された残高がある場合に設定変更モードを開始しなくてもよい。また、パチンコ機1が何らかの不正行為の可能性(例えば磁気エラー)を検出している場合にも、設定変更モードを開始しない方がよい。これらの条件の判定は、払出制御部952ではなく主制御MPU1311が、設定変更開始コマンドを受信した後に行ってもよい。このような場合、ホールによるパチンコ機1のメンテナンスではないと推定され、不正な遊技者による設定変更操作が行われようとしている可能性があるため、設定変更モードへ移行しない方がよいからである。
(2)設定変更モードが開始すると、払出制御部952は、主制御基板1310に設定変更開始コマンドを送信する。
(3)主制御MPU1311は、払出制御部952から設定変更開始コマンドを受信すると、設定変更前のRAMクリア処理を実行する。この設定変更前のRAMクリア処理は、遊技制御用領域13126(遊技用ワーク領域と遊技用スタック領域を含む)のうち、遊技状態(例えば、確変状態、時短状態、特別図柄や普通図柄の保留記憶、賞球に関する情報)のデータを残し、それ以外のデータをクリアし、ベース算出用領域13128(遊技制御領域外)はクリアしない。なお、設定値は、後に手順(6)で初期値に設定されるので、本ステップでクリアしなくてもよい。
(4)その後、主制御MPU1311は、周辺制御部1511に設定変更開始コマンドを送信する。
(5)周辺制御部1511は、主制御MPU1311から設定変更開始コマンドを受信すると、設定変更モード中であることを報知する。設定変更モード中の報知は、役物の初期動作を行ったり、メイン液晶表示装置1600に所定の表示を行う。なお、周辺制御部1511は、役物の初期動作を行わなくてもよい。例えば、メイン液晶表示装置1600に設定変更の手順や状態を表示する場合に、設定変更中に役物の初期動作を行うと、メイン液晶表示装置1600の表示を部分的に隠すことになり、設定変更作業の邪魔をするからである。
また、周辺制御部1511による設定変更モードの報知に合わせて、主制御MPU1311も設定変更モードを報知してもよい。例えば、機能表示ユニット1400の表示を、通常の遊技中には表れない特殊な態様の表示(例えば、特別図柄表示用のLEDを全部消灯又は点灯)をして遊技の進行を停止してもよい。また、主制御MPU1311は、入賞球やアウト球の検出を停止して、遊技の進行を停止することによって、設定変更モードを報知してもよい。その結果、設定変更モードにおいては、ベース値が計算されない。また、主制御MPU1311は、発射許可信号の出力を停止して、発射制御装置によって制御される遊技球の発射を停止して、発射不能化手段として機能することによって、設定変更モードを報知してもよい。設定変更モード中に遊技球の発射を停止する場合、発射停止期間中の遊技球の発射をエラーとして、当該期間中にハンドルユニット500のハンドルレバー504が操作されるとエラーを検知してもよい。
(6)次に、主制御MPU1311は、設定値を0にリセットする。前述したように、設定値は1~6の間で選択可能で、設定値=0は設定がされていない状態であり、設定値=0では設定変更モードを終了できず、遊技(遊技球の発射、変動表示ゲームなど)が開始しない。
(7)その後、遊技者が設定変更スイッチ972を操作する毎に、払出制御部952は選択された設定値を設定表示器974に表示する。
(8)払出制御部952は、本体枠4が外枠2から開放しているかを判定する。なお、前述した手順(1)でも本体枠4の開放を判定しているが、設定確定スイッチ973の操作を判定する前に少なくとも1回判定すればよい。このように、払出制御部952は、設定変更の確定前に設定変更の条件が整っているかを判定する設定変更許容状態発生手段として機能する。
(9)さらに、払出制御部952は、設定確定スイッチ973が操作されているかを判定する。
(10)払出制御部952は、本体枠4が外枠2から開放しており、かつ、設定確定スイッチ973が操作されていれば、選択された設定値を確定し、設定値が確定したことを設定表示器974に表示する。設定値確定表示は、設定値として選択できない値(例えば8)を表示したり、確定した設定値を所定時間点滅表示してもよい。
(11)その後、払出制御部952は、設定キー971のオフに操作されているかを判定する。
(12)設定キー971がオフに操作されていれば、設定変更モードを終了するので、払出制御部952は、主制御基板1310に設定変更終了コマンドを送信する。この設定変更終了コマンドによって、確定した設定値が主制御MPU1311に通知される。
(13)主制御MPU1311は、払出制御部952から設定変更終了コマンドを受信すると、周辺制御部1511に設定変更終了コマンドを送信する。
(14)周辺制御部1511は、主制御MPU1311から設定変更終了コマンドを受信すると、設定変更中の報知を終了する。これと共に、主制御MPU1311で設定変更中の報知を行っていれば、これも終了する。
なお、設定変更モードが終了すると直ちに報知(遊技停止、発射停止も含む)を解除しても、所定時間経過後に解除してもよい。手順(5)で行う報知を、単なる外部(遊技者、ホール従業員)への報知と考えれば、設定変更モード終了後、直ちに報知を解除するとよい。しかし、手順(5)で行う報知を不正行為の発見の観点で捕らえると、設定変更モードが終了して所定時間経過後に報知を解除するとよい。これは、設定変更が行われた場合、所定時間だけ所定の表示が行われたり、遊技が停止するので、不正な遊技者が営業時間中に設定を変更したことの発見が容易になるためである。
設定変更モード終了後の所定期間に遊技球の発射を停止する場合、発射停止期間中の遊技球の発射をエラーとして、当該期間中にハンドルユニット500のハンドルレバー504が操作されるとエラーを検知してもよい。
(15)その後、主制御MPU1311は、設定変更後のRAMクリア処理を実行する。この設定変更後のRAMクリア処理は、遊技制御用領域13126(遊技用ワーク領域と遊技用スタック領域を含む)のうち、設定値と遊技状態(例えば、確変状態、時短状態、特別図柄や普通図柄の保留記憶、賞球に関する情報)のデータを残し、それ以外のデータをクリアし、ベース算出用領域13128(遊技制御領域外)はクリアしない。つまり、設定変更後のRAMクリア処理では、設定変更前のRAMクリア処理と異なり、設定値が初期化されない。
そして、設定変更モードを終了する。
このように、設定基板970が払出制御基板951に接続されており、払出制御基板951の子基板として機能している(又は、設定基板970が払出制御基板951と一体に構成されている)場合、主制御基板1310と払出制御基板951とが連携して設定変更処理を実行する。
なお、前述した処理では、設定キー971が操作されているかを払出制御部952が判定しているが、主制御MPU1311が判定してもよい。この場合、払出制御部952から主制御基板1310への設定キー971の操作に関する信号は、シリアル通信で送信したり、所定のパルス信号(所定周波数のパルスを所定回数)を送信したり、電源電圧でもグランド電圧でもない中間電位の信号を出力してもよい。これは、設定キー971の端子を短絡して設定変更モードを起動する不正行為を防止するために、端子の短絡では生じ得ない信号によって設定キー971の操作に関する信号を払出制御部952から主制御基板1310に送信することが好ましいからである。
次に、図138(B)に示す主制御基板1310と払出制御基板951とが連携した設定表示処理を説明する。
パチンコ機1の稼働中(通電中)に設定キー971をオンに操作すると、払出制御部952は、当該設定キー971の操作を検出し、設定表示モードを開始する。
(1)設定表示モードでは、払出制御部952は、本体枠4が外枠2から開放しているかを判定する。なお、設定キー971の配置位置から考えると、設定キー971を操作するためには、本体枠4が外枠2から開放しているので、この本体枠4の開放の判定は省略してもよい。
(2)払出制御部952は、本体枠4が外枠2から開放していると判定されると、主制御基板1310に設定値要求コマンドを送信する。
(3)主制御MPU1311は、払出制御部952から設定値要求コマンドを受信すると、主制御RAM1312に記憶された設定値を読み出し、設定値通知コマンドを払出制御部952に送信する。
(4)払出制御部952は、主制御MPU1311から設定値通知コマンドで通知された設定値を設定表示器974に表示する。
なお、上記では、主制御基板1310(主制御RAM1312)に格納された設定値を設定表示器974に表示したが、払出制御部952が設定値を格納しておき、払出制御部952に格納された設定値を設定表示器974に表示してもよい。
次に、図139(A)に示す主制御基板1310による設定変更処理を説明する。
パチンコ機1に電源が投入されると、(1)主制御MPU1311が、設定キー971がオンに操作されているか、及び、本体枠4が外枠2から開放しているかを判定する。このように、主制御MPU1311は設定変更許容状態発生手段として機能する。本体枠4が外枠2から開放しているかは、本体枠開放スイッチからの検出信号によって判定できる。本体枠開放スイッチの検出信号は、払出制御基板951を経由して主制御基板1310に送信される。払出制御基板951は、受信した本体枠開放検出スイッチの検出信号に基づいて、主制御基板1310に本体枠開放検出コマンドを送信してもよい。また、払出制御基板951は、受信した本体枠開放検出スイッチの検出信号をそのまま主制御基板1310に出力してもよい。なお、設定キー971の配置位置から考えると、設定キー971を操作するためには、本体枠4が外枠2から開放しているので、この本体枠4の開放の判定は省略してもよい。
設定キー971がオンに操作されており、かつ、本体枠4が外枠2から開放していれば、主制御MPU1311は設定変更モードを開始する。前述以外の設定変更モードの開始条件として、ハンドルユニット500のハンドルレバー504の操作や、ハンドルレバー504に触ったことによる接触検知センサ509による検出や、CRユニットにプリペイドカードが挿入されていたり(プリペイドカードの残高がある)、現金サンドに投入された残高がある場合に設定変更モードを開始しなくてもよい。また、パチンコ機1が何らかの不正行為の可能性(例えば磁気エラー)を検出している場合にも、設定変更モードを開始しない方がよい。このような場合、ホールによるパチンコ機1のメンテナンスではないと推定され、不正な遊技者による設定変更操作が行われようとしている可能性があるため、設定変更モードへ移行しない方がよいからである。
(3)設定変更モードが開始すると、主制御MPU1311は、払出制御部952から設定変更開始コマンドを受信すると、設定変更前のRAMクリア処理を実行する。この設定変更前のRAMクリア処理は、遊技制御用領域13126(遊技用ワーク領域と遊技用スタック領域を含む)のうち、遊技状態(例えば、確変状態、時短状態、特別図柄や普通図柄の保留記憶、賞球に関する情報)のデータを残し、それ以外のデータをクリアし、ベース算出用領域13128(遊技制御領域外)はクリアしない。なお、設定値は、後に手順(6)で初期値に設定されるので、本ステップでクリアしなくてもよい。
(4)その後、主制御MPU1311は、周辺制御部1511に設定変更開始コマンドを送信する。
(5)周辺制御部1511は、主制御MPU1311から設定変更開始コマンドを受信すると、設定変更モード中であることを報知する。設定変更モード中の報知は、役物の初期動作を行ったり、メイン液晶表示装置1600に所定の表示を行う。なお、周辺制御部1511は、役物の初期動作を行わなくてもよい。例えば、メイン液晶表示装置1600に設定変更の手順や状態を表示する場合に、設定変更中に役物の初期動作を行うと、メイン液晶表示装置1600の表示を部分的に隠すことになり、設定変更作業の邪魔をするからである。
また、周辺制御部1511による設定変更モードの報知に合わせて、主制御MPU1311も設定変更モードを報知してもよい。例えば、機能表示ユニット1400の表示を、通常の遊技中には表れない特種な態様の表示(例えば、特別図柄表示用のLEDを全部消灯又は点灯)をして遊技の進行を停止してもよい。また、主制御MPU1311は、入賞球やアウト球の検出を停止して、遊技の進行を停止することによって、設定変更モードを報知してもよい。その結果、設定変更モードにおいては、ベース値が計算されない。また、主制御MPU1311は、発射許可信号の出力を停止して、発射制御装置によって制御される遊技球の発射を停止して、発射不能化手段として機能することによって、設定変更モードを報知してもよい。設定変更モード中に遊技球の発射を停止する場合、発射停止期間中の遊技球の発射をエラーとして、当該期間中にハンドルユニット500のハンドルレバー504が操作されるとエラーを検知してもよい。
(6)次に、主制御MPU1311は、設定値を0にリセットする。前述したように、設定値は1~6の間で選択可能で、設定値=0は設定がされていない状態であり、設定値=0では設定変更モードを終了できず、遊技(遊技球の発射、変動表示ゲームなど)が開始しない。
(7)その後、遊技者が設定変更スイッチ972を操作する毎に、主制御MPU1311は選択された設定値を設定表示器974に表示する。
(8)主制御MPU1311は、本体枠4が外枠2から開放しているかを判定する。なお、前述した手順(1)でも本体枠4の開放を判定しているが、設定確定スイッチ973の操作を判定する前に少なくとも1回判定すればよい。このように、払出制御部952は、設定変更の確定前に設定変更の条件が整っているか(特に、払出制御基板951から本体枠開放スイッチの検出信号が入力されているか)を判定する設定変更許容状態発生手段として機能する。
(9)さらに、主制御MPU1311は、設定確定スイッチ973が操作されているかを判定する。
(10)主制御MPU1311は、本体枠4が外枠2から開放しており、かつ、設定確定スイッチ973が操作されていれば、選択された設定値を確定し、設定値が確定したことを設定表示器974に表示する。設定値確定表示は、設定値として選択できない値(例えば8)を表示したり、確定した設定値を所定時間点滅表示してもよい。
(11)その後、主制御MPU1311は、設定キー971のオフに操作されているかを判定する。
(13)設定キー971がオフに操作されていれば、設定変更モードを終了するので、主制御MPU1311は、周辺制御部1511に設定変更終了コマンドを送信する。
(14)周辺制御部1511は、主制御MPU1311から設定変更終了コマンドを受信すると、設定変更中の報知を終了する。これと共に、主制御MPU1311で設定変更中の報知を行っていれば、これも終了する。
なお、設定変更モードが終了すると直ちに報知(遊技停止、発射停止も含む)を解除しても、所定時間経過後に解除してもよい。手順(5)で行う報知を、単なる外部(遊技者、ホール従業員)への報知と考えれば、設定変更モード終了後、直ちに報知を解除するとよい。しかし、手順(5)で行う報知を不正行為の発見の観点で捕らえると、設定変更モードが終了して所定時間経過後に報知を解除するとよい。これは、設定変更が行われた場合、所定時間だけ所定の表示が行われたり、遊技が停止するので、不正な遊技者が営業時間中に設定を変更したことの発見が容易になるためである。
設定変更モード終了後の所定期間に遊技球の発射を停止する場合、発射停止期間中の遊技球の発射をエラーとして、当該期間中にハンドルユニット500のハンドルレバー504が操作されるとエラーを検知してもよい。
(15)その後、主制御MPU1311は、設定変更後のRAMクリア処理を実行する。この設定変更後のRAMクリア処理は、遊技制御用領域13126(遊技用ワーク領域と遊技用スタック領域を含む)のうち、設定値と遊技状態(例えば、確変状態、時短状態、特別図柄や普通図柄の保留記憶、賞球に関する情報)のデータを残し、それ以外のデータをクリアし、ベース算出用領域13128(遊技制御領域外)はクリアしない。つまり、設定変更後のRAMクリア処理では、設定変更前のRAMクリア処理と異なり、設定値が初期化されない。
そして、設定変更モードを終了する。
このように、設定基板970が主制御基板1310に接続されており、主制御基板1310の子基板として機能している(又は、設定基板970が主制御基板1310と一体に構成されている)場合、主制御基板1310は払出制御基板951から本体枠開放スイッチの検出信号を取得するので、主制御基板1310のみでは設定変更処理を実行できず、主制御基板1310と払出制御基板951とが連携して設定変更処理を実行している。
次に、図139(B)に示す設定基板970と払出制御基板951とが連携した設定表示処理を説明する。
パチンコ機1の稼働中(通電中)に設定キー971をオンに操作すると、主制御MPU1311は、当該設定キー971の操作を検出し、設定表示モードを開始する。
設定表示モードでは、主制御MPU1311は、本体枠4が外枠2から開放しているかを判定する。なお、設定キー971の配置位置から考えると、設定キー971を操作するためには、本体枠4が外枠2から開放しているので、この本体枠4の開放の判定は省略してもよい。
主制御MPU1311は、本体枠4が外枠2から開放していると判定されると、主制御RAM1312に記憶された設定値を読み出し、設定表示器974に表示する。
図138(A)及び図139(A)で説明した設定変更処理において、設定変更モード中にパチンコ機1がエラーを検出すると、設定変更モードを無効とし、一旦設定変更モードを停止するとよい。そして、パチンコ機1の電源を遮断し、再度電源を投入することによって、停止した設定変更モードを再開する。設定変更モードの再開は、エラー検出によって停止した段階から行っても、設定変更モードの最初(設定値が選択されていない状態の設定値=0)から行ってもよい。
設定値の変更は、所定回数履歴を記録するとよい。具体的には、設定を確定した日時及び確定した設定値を主制御RAM1312又は周辺制御部1511のRAMに格納する。設定値の履歴を周辺制御部1511に格納する場合、周辺制御部1511内に設けられたRTC内のRAMに格納すると、パチンコ機1の電源遮断時にも記憶内容がバックアップされるので好ましい。さらに、記録された設定値の変更の履歴は出力できる。例えば、所定の操作によって、記録された設定値の変更の履歴をメイン液晶表示装置1600に表示するとよい。
設定値が変更された場合にベース値の計測の区間を変えてもよい。すなわち、設定値が変更されると、現在ベース値を計測中の区間の全アウト球数が52000未満でも、当該区間を終了して、次の区間を開始する。設定値によって遊技機の遊技性能が変更されることから、設定値の変更で区間を変えることによって、異なる遊技性能が混在しないベース値を計算でき、設定値の変更によるベース値の推移を把握できる。
また、設定値が変更された場合にベース値の計測の区間を変えずに、現在ベース値を計測中の区間を継続してもよい。設定値は条件装置の作動割合を変えるものであるところ、設定値の変更によってベース値は大きく変化しない設計も可能である。このような場合には、設定値の変更によって、ベース値の計算の区間を変更する必要がないからである。
また、電源投入時にRAMクリアスイッチ954の操作と設定キー971のオン操作との両方が検出されている場合、設定変更モードを起動してもよい。RAMクリアスイッチ954と設定キー971のオン操作とでは、その操作の方法や操作手段の配置から考えると、設定キー971の操作の方が誤って操作する可能性が低いので、設定変更モードの起動が操作者の意思だと考えられるからである。また、設定変更モードでは、遊技状態とベース値以外の主制御RAM1312の記憶内容がクリアされることから、RAMクリアを希望する場合でも、設定変更モードを起動すれば十分だと考えられるからである。
一方、電源投入時にRAMクリアスイッチ954の操作と設定キー971のオン操作との両方が検出されている場合に、設定変更モードを起動せず、RAMクリアを行ってもよい。これは、両方が操作されている場合に、操作者は少なくともRAMクリアを望んでいると考えられるからである。また、電源投入時にRAMクリアスイッチ954の操作と設定キー971のオン操作との両方が検出されている場合に、設定変更モードの起動もRAMクリアも行わなくてもよい。これは、誤操作に対するファイルセーフの観点からは、操作者の意思が明確ではない操作は受け付けないことが好ましいからである。
前述した手順(3)や(15)のRAMクリアにおいて、遊技状態のデータを維持しているが、特別図柄の保留記憶は消去してもよい。設定値は条件装置の作動割合を変えるものであるところ、特別図柄抽選の乱数の判定結果が変わることがある。このため、特別図柄の保留記憶は消去して、新たに抽選を行わせる方が好ましいからである。
一方、特別図柄の抽選(当たり乱数の抽出)は始動口への遊技球の入賞時に行われるが、抽選結果の判定は変動表示ゲームの開始時に行われることから、設定値の変更後の条件で保留記憶された乱数値を判定すればよい。このため、特別図柄の保留記憶を維持してもよい。
また、前述した手順(3)や(15)のRAMクリアにおいて、RAMクリアスイッチ954の操作に起因して消去される領域と同じ領域で主制御RAM1312を初期化してもよい。すなわち、設定変更モード中のRAMクリア処理において、設定値以外のバックアップされた遊技制御用領域13126は消去され(遊技状態のデータも消去し)、設定値とベース算出用領域13128は消去されない。通常、設定変更は、ホールの閉店から翌日の開店までの間に行われることから、遊技状態のデータ(確変状態、時短状態、特別図柄や普通図柄の保留記憶、賞球に関する情報など)を消去せずに維持する必要はないからである。
[12-2.設定機能を有するパチンコ機における演出]
[12-2-1.特別図柄及び特別電動役物制御処理]
以下、主制御MPU1311による処理の詳細を説明する。まず、特別図柄及び特別電動役物制御処理について説明する。図140は、特別図柄及び特別電動役物制御処理の手順の一例を示すフローチャートである。特別図柄及び特別電動役物制御処理は、主制御側タイマ割り込み処理におけるステップS86の処理で実行される。以下、第一始動口2002及び第二始動口2004を総称して始動口とも呼ぶ。また、第一大入賞口2005及び第二大入賞口2006を総称して単に大入賞口とも呼ぶ。また、第一特別図柄と第二特別図柄を総称して単に特別図柄とも呼ぶ。
特別図柄及び特別電動役物制御処理では、始動口への遊技球の受け入れ、すなわち、始動入賞を契機として(始動条件の成立)、この始動条件が成立した始動記憶情報(始動情報)ごとに大当り判定用乱数を取得し、この大当り判定用乱数が主制御内蔵ROMに予め記憶されている大当り判定値と一致するか否かを判定する(抽選手段)。そして、抽選結果に基づいて大当り遊技状態を発生させるか否かを判定し、大当り用乱数値が大当り判定値と一致している(予め定められた当選条件が成立している)場合には通常遊技状態から大当り遊技状態に移行させる。以下、図140に示したフローチャートに沿って特別図柄及び特別電動役物制御処理の手順を説明する。
特別図柄及び特別電動役物制御処理が開始されると、主制御MPU1311は、まず、大入賞口に遊技球Bが入賞したか否かを判定する(ステップS100)。大入賞口に遊技球Bが入賞した場合には(ステップS100の結果が「yes」)、大入賞口入賞指定コマンドをセットする(ステップS102)。
続いて、主制御MPU1311は、始動口に遊技球が入賞したか否かを判定する(ステップS112)。そして、始動口に遊技球が入賞したか否かは、主制御側タイマ割り込み処理におけるスイッチ入力処理(ステップS74)で第一始動口センサ3002又は第二始動口センサ2511からの検出信号の有無を読み取って主制御内蔵RAMの入力情報記憶領域に記憶された入力情報に基づいて行われる。
主制御MPU1311は、始動口に遊技球が入賞した場合には(ステップS114の結果が「yes」)、始動口入賞時処理を実行する(ステップS116)。始動口入賞時処理では、始動口に新たに遊技球が入賞した場合に送信される始動口入賞コマンドを設定したり、大当り判定用乱数等を抽出して所定の領域に格納したり、特別図柄先読み演出を実行するための処理等を実行したりする。
続いて、主制御MPU1311は、遊技の進行に応じて実行される分岐処理の種類が指定された遊技進行状態変数である特別図柄・電動役物動作番号に基づいて対応する処理を実行する(ステップS124)。遊技進行状態変数は、主制御内蔵RAMの遊技進行状態記憶領域に記憶されており、遊技の進行に応じて実行された各分岐処理において更新される。ステップS124の処理では、遊技進行状態記憶領域に記憶されている遊技進行状態変数の値に基づいて指定された分岐処理に移行し、移行した分岐処理を終えると、特別図柄及び特別電動役物制御処理を終了する。なお、遊技進行状態記憶領域に記憶される遊技進行状態変数の値等は、遊技情報であるため、主制御側電源断時処理においてバックアップされる。
ステップS130の処理では、遊技進行状態変数の値に基づいて、分岐処理として、特別図柄変動待ち処理(ステップS130)、特別図柄変動中処理(ステップS132)、特別図柄大当り判定処理(ステップS134)、特別図柄はずれ停止処理(ステップS136)、特別図柄大当り停止処理(ステップS138)、大入賞口開放前インターバル処理(ステップS140)、大入賞口開放処理(ステップS142)、大入賞口閉鎖中処理(ステップS144)又は大入賞口開放終了インターバル処理(ステップS146)が実行される。
特別図柄変動待ち処理(ステップS130)では、始動口に遊技球Bが入球したことに基づいて、特別図柄表示器における特別図柄の変動表示を開始させる処理等を行う。
特別図柄変動中処理(ステップS132)では、特別図柄の変動表示を制御する処理等を行う。特別図柄大当り判定処理(ステップS134)では、始動口に遊技球が入球したことに基づいて、確定停止した特別図柄が大当り遊技状態を発生させるか否かの判定を行う。
特別図柄はずれ停止処理(ステップS136)では、大当り遊技状態を発生させない場合に特別図柄の変動表示を停止させてその旨を報知する処理等を行う。特別図柄大当り停止処理(ステップS138)では、大当り遊技状態を発生させる場合に特別図柄の変動表示を停止させてその旨を報知する処理等を行う。
大入賞口開放前インターバル処理(ステップS140)では、大当り遊技状態を発生させて大当り動作が開始される旨を報知するための処理等を行う。大入賞口開放処理(ステップS142)では、大入賞口を開状態とすることにより各大入賞口に遊技球が入球容易とする大当り動作に関する処理等を行う。
大入賞口閉鎖中処理(ステップS144)では、大入賞口を開状態から閉状態とすることにより各大入賞口に遊技球が入球困難とする大当り動作に関する処理等を行う。入賞口開放終了インターバル処理(ステップS146)では、大当り動作が終了しているときにはその旨を報知する処理等を行う。
[12-2-2.特別図柄変動待ち処理]
続いて、特別図柄及び特別電動役物制御処理における特別図柄変動待ち処理(ステップS130)の詳細について説明する。図141は、特別図柄変動待ち処理の手順の一例を示すフローチャートである。特別図柄変動待ち処理では、特別図柄の変動表示が実行されていない状態で実行され、当該変動表示が保留されている場合には、特別図柄の変動表示を開始する準備を行う。
主制御MPU1311は、まず、特別図柄の変動が保留されているか否かを判定する(ステップS420)。具体的には、特別図柄作動保留球数が0でないか否を判定する。なお、特別図柄作動保留球数は、複数の始動口が設けられている場合には始動口ごとに記憶される。特別図柄の変動が保留されていない場合には(ステップS420の結果が「no」)、特別図柄の変動表示を開始しないので本処理を終了する。
一方、特別図柄の変動表示が保留されている場合には(ステップS420の結果が「yes」)、主制御MPU1311は、コマンドデータとして保留球数指定コマンドをセットする(ステップS438)。
続いて、主制御MPU1311は、特別図柄・フラグ設定処理を実行する(ステップS442)。特別図柄・フラグ設定処理では、始動口入賞時に取得された大当り判定用の乱数などに基づいて、特別抽選を実行する。
さらに、主制御MPU1311は、特別図柄変動パターン設定処理を実行する(ステップS444)。特別図柄変動パターン設定処理では、特別抽選の結果に基づいて、変動パターンを設定する。特別図柄変動パターン設定処理の詳細については、図126にて後述する。
次に、主制御MPU1311は、周辺制御基板1510に送信するための変動パターンコマンドを作成する。具体的には、まず、コマンド値として、特別図柄識別フラグに対応する特図変動パターン基準コマンドの上位バイトを設定する(ステップS452)。さらに、下位のコマンドデータとして、変動パターンエリアに格納された変動パターン値を設定する(ステップS458)。さらに、変動タイプ種別エリアから変動タイプ種別値を取得し(ステップS460)、ステップS452の処理で設定されたコマンド値に変動タイプ種別値を加算することによって変動タイプに応じた変動パターンコマンドの上位バイトを算出する(ステップS462)。このようにして作成された変動パターンコマンドのコマンドデータを所定の領域に格納する。
続いて、主制御MPU1311は、周辺制御基板1510に送信するための図柄種別コマンドを設定する(ステップS466)。さらに、変動時状態指定コマンドをコマンドバッファに設定する(ステップS474)。
以上の処理で作成された各コマンドは、コマンドバッファに設定される。コマンドバッファに設定された保留球数指定コマンドは、主制御側タイマ割り込み処理における周辺制御基板コマンド送信処理(ステップS92)によって送信される。
[12-2-3.特別図柄変動パターン設定処理]
続いて、特別図柄変動待ち処理における特別図柄変動パターン設定処理(ステップS444)の詳細について説明する。特別図柄変動パターン設定処理では、特別図柄の変動表示における変動パターンを設定するための処理である。図142は、特別図柄変動パターン設定処理の手順の一例を示すフローチャートである。
主制御MPU1311は、まず、特別図柄作動保留球数を取得する(ステップS530)。特別図柄作動保留球数は、特別図柄作動保留球数バッファに格納される。さらに、主制御MPU1311は、大当りフラグエリアから大当りフラグを設定する(ステップS538)。
そして、主制御MPU1311は、特別図柄作動保留球数及び大当りフラグに基づいて、特別図柄の変動パターンを選択する変動パターン選択判定処理を実行する(ステップS542)。変動パターン選択判定処理の詳細については、図143にて後述する。
次に、主制御MPU1311は、変動パターン選択判定処理によって抽出された変動パターン値を取得する(ステップS544)。そして、特別図柄変動時間データから変動パターン値に対応するデータ(変動時間値)を検索する(ステップS546)。
さらに、主制御MPU1311は、特別図柄の変動表示における変動パターンに定義された変動タイプを選択するための変動タイプ判定処理を実行する(ステップS548)。変動タイプ判定処理によって取得された変動タイプ種別値を設定する(ステップS550)。
続いて、主制御MPU1311は、変動時間加算値データから変動タイプ種別値に対応する変動時間加算値を検索する(ステップS552)。変動時間加算値は変動タイプに対応する加算時間であり、例えば、疑似連回数に応じた加算時間などに相当する。そして、主制御MPU1311は、ステップS546の処理で検索された基準となる変動時間値にステップS552の処理で検索された変動時間加算値を加算し、最終的な変動時間を取得する(ステップS554)。最後に、最終的な変動時間を特別図柄・電動役物動作タイマエリアに格納し(ステップS556)、特別図柄変動パターン設定処理を終了する。
[12-2-4.変動パターン選択判定処理]
続いて、変動パターン選択判定処理(ステップS542)の詳細について説明する。図143は、変動パターン選択判定処理の手順の一例を示すフローチャートである。変動パターン選択判定処理は、特別図柄の変動表示における変動パターンを選択するための処理である。
主制御MPU1311は、まず、変動テーブル番号に基づいて変動情報源テーブルを取得する(ステップS340)。変動テーブル番号は、変動情報源アドレステーブルから変動情報源テーブルを選択(取得)するための値である。変動情報源テーブルは、遊技状態などに応じた、当り(当り変動選択情報状態テーブル)、はずれ(はずれ変動選択情報状態テーブル)、リーチ(リーチ変動選択情報状態テーブル)、リーチ確率(特別図柄リーチ確率テーブル)、変動タイプ(変動タイプ判定データテーブル)を参照するためのテーブル情報が記憶されたデータテーブルである。
続いて、主制御MPU1311は、特別抽選の結果を導出するための当り判定値を取得する(ステップS346)。当り判定値が大当り値と一致するか否かを判定することによって大当りに当選したか否かを判定する(ステップS350)。大当りに当選した場合には(ステップS350の結果が「yes」)、大当りフラグ及び大当り図柄種別を取得する(ステップS354)。
次に、主制御MPU1311は、大当りフラグ及び大当り図柄種別に基づいて、変動情報番号検索処理を実行する(ステップS358)。変動情報番号検索処理では、大当り変動選択情報種別テーブルから当り時変動パターン選択値データテーブルを決定するための変動情報番号を取得する。主制御MPU1311は、取得された変動情報番号に基づいて、大当り変動選択情報種別テーブルから変動パターン用乱数1を取得する(ステップS360)。
一方、主制御MPU1311は、大当り若しくは小当りに当選していない場合には(ステップS350の結果が「no」)、始動入賞に対応する変動表示においてリーチを発生させるか否かを判定する(ステップS372)。
主制御MPU1311は、当該変動表示においてリーチを発生させない場合には(ステップS372の結果が「no」)、保留球数に基づいてはずれ変動選択情報保留テーブルから変動パターン用乱数1を取得する(ステップS376)。
一方、主制御MPU1311は、当該変動表示においてリーチを発生させる場合には(ステップS372の結果が「yes」)、状態フラグに基づいて、リーチ変動選択情報状態テーブルから変動パターン用乱数1を取得する(ステップS382)。
続いて、主制御MPU1311は、ステップS360、ステップS378又はステップS382の処理で取得された変動パターン用乱数1に基づいて、変動情報番号検索処理を実行する(ステップS388)。そして、変動情報番号検索処理によって変動パターン選択値データテーブルを取得し、変動パターン選択値データテーブルから変動パターン用乱数2を取得する(ステップS392)。さらに、変動パターン用乱数2及び変動パターン選択値データテーブルに基づいて、変動情報番号検索処理を実行する(ステップS394)。変動情報番号検索処理の結果に基づいて変動パターンを選択し(ステップS396)、本処理を終了する。
本実施形態では、変動パターン用乱数1(ステップS360、S372、S378)及び変動パターン用乱数2(ステップS392)の2種類の乱数によって2段階で変動パターンが選択される。まず、変動パターン用乱数1に基づいて変動パターンの種別(○○系リーチといった変動パターン群)を選択する。さらに、変動パターン用乱数2に基づいて変動パターン用乱数1によって選択した変動パターン群から、最終的に変動表示する変動パターン(変動パターンコマンドに設定される値)が選択される。なお、2段階で抽選する方法に限定されず、3段階以上で抽選する方式でもよいし、一の変動パターン用乱数で直接変動パターンを選択するようにしてもよい。
[12-3.設定機能を有するパチンコ機における演出の説明]
以下、設定機能を有するパチンコ機1における演出について説明する。具体的には、現在の設定を示唆する設定示唆演出について説明する。設定機能を有するパチンコ機1においては、例えば、設定が高いほど特別抽選の回数に対する遊技球の払い出し数が多くなる。具体的には、例えば、設定が高いほど非確変状態における大当り当選確率が高い(例えば、設定1:1/300、設定2:1/290、設定3:1/280、設定4:1/270、設定5:1/250、設定6:1/230等)。従って、遊技者はなるべく高い設定のパチンコ機1で遊技を行いたいため、設定示唆演出が搭載されることにより、遊技意欲が高まる。
以下、本章では、説明の便宜のため、主制御MPU1311は、ステップS542の変動パターン選択判定処理において、一の変動パターン用乱数で直接変動パターンを選択するものとする。具体的には、本章では、主制御MPU1311は、ステップS542において以下の処理を実行するものとする。
主制御MPU1311は、ステップS542において、現在の遊技状態(時短状態(時短制御が実行されている状態)であるか、時短状態以外の通常状態であるか)と、特別抽選の結果(大当りに当選したか外れであるか)と、に応じた変動パターンテーブルを選択する。主制御MPU1311は、特別抽選の結果が大当りである場合には、変動パターン用乱数を取得し、取得した変動パターン用乱数と、選択した変動パターンテーブルにおける各変動パターンの振り分けと、に基づいて、選択した変動パターンテーブルから変動パターンを選択するものとする。また、特別抽選の結果が外れである場合にはさらにリーチ発生有無を判定し、変動パターン用乱数を取得し、取得した変動パターン用乱数と、選択した変動パターンテーブルにおける各変動パターンの振り分けと、に基づいて、選択した変動パターンテーブルから変動パターンを選択するものとする。
図144(A)は、遊技状態が通常状態であり、かつ特別抽選の結果が外れである場合に選択される変動パターンテーブルの一例である。図144(B)は、遊技状態が通常状態であり、かつ特別抽選の結果が大当りである場合に選択される変動パターンテーブルの一例である。
変動パターンテーブルは、例えば、主制御基板1310のROM1313に格納されている。変動パターンテーブルは、例えば、変動パターン種別欄、変動時間欄、対応する演出内容欄、及び変動パターン決定用乱数振り分け欄を含む。変動パターン種別欄は変動パターンをテーブル内で識別するための種別を特定する情報を格納する。変動時間欄は、対応する変動パターン種別における変動時間を特定する情報を格納する。対応する演出内容欄は、対応する変動パターンにおいて実行される演出内容を特定する情報を格納する。
変動パターン決定用振り分け乱数欄は、対応する変動パターンが選択される振り分けを設定ごとに格納する。なお、特別抽選結果が外れである場合に選択される変動パターンテーブル(即ち図144(A)及び後述する図149(A)の変動パターンテーブル)の変動パターン決定用振り分け乱数欄は、リーチ発生時及びリーチ非発生時のそれぞれについて、対応する変動パターンが選択される振り分けを設定ごとに格納する。
[12-4.特別抽選結果の仮表示後に実行される設定示唆演出]
まず、図144(A)の変動パターンテーブルに格納された、外れ変動パターンにおける設定示唆演出について説明する。まず、外れ変動パターン24~29において実行される演出について、図144も併せて用いながら説明する。
図144は、図144(A)の変動パターンテーブルにおける外れ変動パターン20、及び24~29において実行される演出の一例を示す概要図である。外れ変動パターン20の変動では、SPリーチ1が実行された後に特別抽選結果が外れである可能性が高いことを示す仮表示をメイン液晶表示装置1600上に表示した後に、その後特別抽選結果が外れであることを示す確定表示をメイン液晶表示装置1600上に表示する。これに対し、外れ変動パターン25~29の変動では、SPリーチ1が実行された後に特別抽選結果が外れである可能性が高いことを示す仮表示をメイン液晶表示装置1600上に表示した後に、設定示唆演出を実行し、その後特別抽選結果が外れであることを示す確定表示をメイン液晶表示装置1600上に表示する。
このように、変動パターン25~29において、特別抽選結果が外れである可能性が高いことを示す仮表示を行った後に、設定示唆演出が実行されることにより、当該仮表示が実行されても遊技者は、その後の設定示唆演出の発生を期待し、期待感を維持することができる。また、外れ変動において設定示唆演出が発生した場合には、特別抽選結果が外れであっても、特別抽選の結果による遊技者の落胆を抑制し、ひいては高揚感を高めることができる。
なお、外れ変動パターン24の変動では、SPリーチ1が実行された後に特別抽選結果が外れである可能性が高いことを示す仮表示をメイン液晶表示装置1600上に表示した後に、設定示唆演出の実行を示唆するガセ演出を実行するものの、設定示唆演出自体を行わずに、特別抽選結果が外れであることを示す確定表示をメイン液晶表示装置1600上に表示する。
なお、SPリーチとは、特別抽選の結果が大当りである場合に選択される割合が高く、特別抽選の結果が外れである場合に選択される割合が低いリーチ演出である。つまり、SPリーチが実行される変動の大当り期待度は高い。
以下、外れ変動パターン20、及び24~29において実行される演出について具体的に説明する。なお、各演出においては、以下に説明する内容以外にも、各種スピーカからの音出力、各種ランプからの発光、各種可動体の動作、及び/又はメイン液晶表示装置1600における表示等が同時に実行されてもよい。
外れ変動パターン20、及び24~29において、まず、リーチ前演出が実行される。リーチ前演出では、メイン液晶表示装置1600において全ての装飾図柄が変動する。続いて、外れ変動パターン20、及び24~29において、ノーマルリーチ演出に発展する。ノーマルリーチ演出では、メイン液晶表示装置1600において装飾図柄がリーチ状態となる。具体的には、例えば、3つの装飾図柄(例えば、左図柄、中図柄、及び右図柄)のうち、左図柄と右図柄が同一の図柄で停止し、中図柄が変動中の状態となる。
続いて、外れ変動パターン20、及び24~29において、SPリーチ1に発展し、SPリーチ1の前半演出が実行される。SPリーチ1では、例えば、メイン液晶表示装置1600において1人の主人公キャラクタと1人の敵キャラクタが表示され、じゃんけん勝負をする。外れ変動パターン20、及び24~29におけるSPリーチ1の前半演出では、メイン液晶表示装置1600において、主人公キャラクタが敵キャラクタにじゃんけん勝負で負けてしまう演出が実行される。なお、SPリーチ中において装飾図柄は、例えば、リーチ前演出時及びノーマルリーチ演出時と比較して、小さく、かつメイン液晶表示装置1600の周囲に近い位置に表示されてもよい。
続いて、外れ変動パターン20、及び24~29において、SPリーチ1の後半演出に発展する。外れ変動パターン20、及び24~29におけるSPリーチ1の後半演出では、例えば、所謂復活演出が実行され、例えば後半演出の開始時に「まだまだ!」等の主人公の声が各種スピーカから出力され、メイン液晶表示装置1600上において、再度主人公キャラクタと敵キャラクタとのじゃんけん勝負が行われる演出が実行される。外れ変動パターン24~29におけるSPリーチ1の後半演出では、メイン液晶表示装置1600において、主人公キャラクタが敵キャラクタにじゃんけん勝負で再度負けてしまう演出が実行される。
続いて、特別抽選結果が外れである仮表示がメイン液晶表示装置1600上で実行される。具体的には、例えば、メイン液晶表示装置1600において、外れ状態の装飾図柄の1つの組み合わせ(例えば、装飾図柄の左図柄と右図柄はリーチ状態で停止した図柄と同一の図柄で、中図柄は当該同一の図柄とは異なる図柄)が、小さい幅で揺れているような態様で表示される。
続いて、外れ変動パターン20においては仮表示後に、他の演出が行われることなく、特別抽選結果が外れであったことを示す確定表示がメイン液晶表示装置1600に表示される。外れ変動パターン24においては仮表示後に設定示唆ガセ演出が実行され、その後特別抽選結果が外れであったことを示す確定表示がメイン液晶表示装置1600に表示される。これに対して、外れ変動パターン25~29においては仮表示後に設定示唆演出が実行され、その後特別抽選結果が外れであったことを示す確定表示がメイン液晶表示装置1600に表示される。確定表示においては、例えば、メイン液晶表示装置1600において、仮表示において表示した装飾図柄の組み合わせと同一の組み合わせが、完全に停止した態様で表示される。なお、仮表示及び確定表示においては、装飾図柄は、例えば、メイン液晶表示装置1600の中央部に、リーチ前演出及びノーマルリーチ演出時と同様の大きさで、表示される。
外れ変動パターン24における設定示唆ガセ演出では、例えば、メイン液晶表示装置1600において、主人公キャラクタ1人が敵キャラクタ2人を発見して、当該敵キャラクタを追いかけるものの捕まえることができない演出が実行される。図144(A)における外れ変動パターン24の振り分けのように、設定示唆ガセ演出が実行される変動パターンの振り分けは、全ての設定において均等又はおおよそ均等であることが望ましい。当該振り分けが均等でない場合には、設定示唆ガセ演出が設定を示唆してしまうからである。
また、SPリーチ1が実行される変動の振り分けの合計に占める外れ変動パターン24の振り分けの割合は低い(例えば、20%以下)であることが望ましい。当該振り分けが高いと、SPリーチ1に発展した場合に頻繁に設定示唆ガセ演出が発生することになり、設定示唆演出の発生に対する遊技者の期待感を削ぐおそれがあるからである。
外れ変動パターン25~29における設定示唆演出では、例えば、メイン液晶表示装置1600において、主人公キャラクタ1人が敵キャラクタ2人を発見して、当該敵キャラクタを追いかけて捕まえ、その後3人でじゃんけん勝負をする演出が実行される。
外れ変動パターン25における設定示唆演出では、3人でのじゃんけん勝負において3人ともグーを出してあいこになる演出が実行される。また、図144(A)において外れ変動パターン25は、低設定(設定1、2、及び3)においてのみ振り分けられるように定められている。即ち、外れ変動パターン25における設定示唆演出は、低設定が確定する演出である。
なお、図144(A)の例では、外れ変動パターン25の振り分けは、高設定(設定4、5、及び6)における外れ変動パターン26等の振り分けと同じ値であるが、低設定確定演出が発生すると、遊技者が遊技を早期に中止する可能性もあるため、外れ変動パターン25の振り分けは、他の設定における他の設定確定演出の振り分けより低く設定されていてもよいし、外れ変動パターン25自体が存在しなくてもよい。
外れ変動パターン26における設定示唆演出では、3人でのじゃんけん勝負において3人ともチョキを出してあいこになる演出が実行される。また、図144(A)において外れ変動パターン26は高設定(設定4、5、及び6)においてのみ振り分けられるように定められている。即ち、外れ変動パターン26における設定示唆演出は、高設定が確定する演出である。
外れ変動パターン27における設定示唆演出では、3人でのじゃんけん勝負において3人ともパーを出してあいこになる演出が実行される。また、図144(A)において外れ変動パターン27は偶数設定(設定2、4、及び6)においてのみ振り分けられるように定められている。即ち、外れ変動パターン27における設定示唆演出は、偶数設定が確定する演出である。
外れ変動パターン28における設定示唆演出では、3人でのじゃんけん勝負において3人とも違う手を出してあいこになる演出が実行される。また、図144(A)において外れ変動パターン28は奇数設定(設定1、3、及び5)においてのみ振り分けられるように定められている。即ち、外れ変動パターン28における設定示唆演出は、奇数設定が確定する演出である。
なお、例えば、奇数設定と偶数設定とが異なる特性を有する場合には、上述のような奇数設定確定演出又は偶数設定確定演出が搭載されることにより、遊技者の演出に対する興味を惹くことができる。
具体的には、例えば、設定6、4、2、5、3、1の順に通常状態の大当り当選確率が高く(6が最高、1が最低)、設定5、3、1、6、4、2の順に大当り当選のうちの確変大当りの割合が高く(5が最高、2が最低)、かつ設定6、5、4、3、2、1の順に第一始動口2002及び第二始動口2004への遊技球の入賞個数に対する遊技球払い出し総数の割合が高く(6が最高、1が最低)なるように、各設定における大当り当選確率及び確変割合が定められているとする。
この場合、偶数設定は奇数設定と比較して、通常状態における大当り当選確率が高い代わりに、確変割合が低い、即ち、所謂初当りに当選するために要する遊技球の数は少なくなりやすいものの、初当りからの一度の連荘で得られる遊技球の総量も少なくなりがちである。一方、奇数設定は偶数設定と比較して、通常状態における大当り当選確率が低い代わりに、確変割合が高い、即ち、初当りに当選するために要する遊技球の数は多くなりがちだが、初当りからの一度の連荘で得られる遊技球の総量は多くなりやすい。このよう場合、ある遊技者は偶数設定の出玉傾向を好み、別の遊技者は奇数設定の出玉傾向を好む、という事態が発生する可能性があるため、奇数設定確定演出又は偶数設定確定演出への遊技者の関心が高くなる。また、偶数設定は奇数設定と比較して、通常状態における大当り当選確率が高い代わりに、ラウンド数の少ない大当りが選択されやすい等の、特徴があってもよい。
上述した外れ変動パターン25~29においては、設定示唆演出が開始するまでの演出は同一であるが、設定示唆演出の内容は異なる(3人でのじゃんけん勝負における結果が異なる)。なお、3人でのじゃんけん勝負演出は外れ変動パターン25~29のみで用いられることが望ましい。これにより3人でのじゃんけん勝負演出が開始した時点で、遊技者は設定示唆演出が開始したことを認識することができ、高揚感がより高まる。
なお、例えば、外れ変動パターン25は、高設定が確定する演出が実行される変動パターンであるが、高設定の可能性が高いことを示唆する演出が実行される変動パターンであってもよい。具体的には、例えば、低設定においても変動パターン25の振り分けを有し、かつ当該振り分けが高設定における変動パターン25の振り分けよりも低ければ(例えば、50%以下)、外れ変動パターン25における演出は高設定が確定する演出ではなく、高設定の可能性が高いことを示唆する演出となる。
なお、高設定が確定する演出が実行される変動パターンに加えて上述のような高設定の可能性が高いことを示唆する演出が実行される変動パターンが定められていてもよい。上述したことは、低設定確定演出、奇数設定確定演出、偶数設定確定演出、及び最高設定確定演出等についても同様である。
なお、図144(B)の変動パターンテーブル(通常時かつ大当り当選時の変動パターンテーブル)によれば通常状態において特別抽選結果が大当りである場合には、最高設定が確定する当り変動パターン34以外の設定示唆演出は実行されない。また、設定示唆演出が実行されない変動パターンの振り分けが、特別抽選結果が外れである場合と比較して高くなっている。これにより、設定示唆演出は、主として特別抽選結果が外れであるときに実行される演出となり、特別抽選結果が外れである場合においても遊技者は期待感を得ることができる。
[12-5.短縮変動を用いた設定示唆演出]
以下、外れ変動パターン30について図146も併せて用いて説明する。図146は、図144(A)の変動パターンテーブルにおける外れ変動パターン1、2、及び30において実行される演出の一例を示す概要図である。
外れ変動パターン1、2、及び30において、短縮変動が実行される。短縮変動とは、例えば、他の変動パターンと比較して、変動時間が短い変動であり、メイン液晶表示装置1600上で装飾図柄の変動を開始した後に、リーチ状態に発展することなく全ての装飾図柄が停止する変動である。通常の変動においては、メイン液晶表示装置1600において、装飾図柄が、例えば左図柄、右図柄、中図柄の順に停止するが、短縮変動においては全ての装飾図柄が一斉に停止してもよい。
続いて、外れ変動パターン1、2、及び30において、特別抽選結果が外れである可能性が高いことを示す仮表示を行った後に、特別抽選結果が外れであることを示す確定表示を行う。仮表示、及び確定表示についての説明は上述した説明と同様であるため、省略する。
外れ変動パターン30は、外れ変動パターン1、2のような短縮変動が実行される他の全ての変動パターンの変動時間と異なる変動時間を有する。図144(A)の例では、外れ変動パターン1の変動時間は2秒であり、外れ変動パターン2の変動時間は、5秒であり、外れ変動パターン30の変動時間は3.5秒である。また、図144(A)において外れ変動パターン30は最高設定(設定6)においてのみ振り分けられるように定められている。即ち、外れ変動パターン30が実行されると、最高設定が確定する。
また、短縮変動が実行されかつ設定を示唆する変動パターンである外れ変動パターン30の振り分けは、短縮変動が実行される他の変動パターンの振り分けと比較して、極めて低い(例えば当該他の変動パターンの最小の振り分けの10%以下である)ことが望ましい。また、短縮変動が実行される各変動パターンにおいて、仮表示及び確定表示の実行時間は同じであり、短縮変動の時間のみが異なることが望ましい。また、外れ変動パターン30の変動時間と、他の短縮変動が実行される変動パターンの変動時間と、の差は、遊技者が認識可能な程度(例えば1.5秒以上)であることが望ましい。
これにより、短縮変動が実行された時点で遊技者は、振り分けの多い外れ変動パターン1、2のような変動時間を想定するが、外れ変動パターン30が実行された場合には想定した変動時間と異なることを認識することができ、最高設定が確定する演出を楽しむことができる。特に、図144(A)の例では、短縮変動を含む変動パターンは、リーチなし外れ時にしか選択されないため、遊技者は短縮変動が実行されると期待感が削がれ、短縮変動に興味を持てなくなってしまう。しかし、このように短縮変動を用いた設定示唆演出が実行されることにより、遊技者は、リーチなし外れ時にしか選択されない短縮変動に対しても期待感を有することができ、興趣の低下を抑制することができる。
また外れ変動パターン1、2、及び30では、メイン液晶表示装置1600に表示される内容は同一であるものの、短縮変動の時間だけが異なる。これにより、遊技者を、最高設定確定演出を見逃さないように演出に集中させることができる。
なお、外れ変動パターン30は、最高設定が確定し、かつ短縮変動が実行される変動パターンであるが、最高設定以外の各設定についても、当該設定が確定し、かつ短縮変動が実行される変動パターンが存在してもよい。この場合、例えば、当該変動パターンそれぞれの変動時間は、短縮変動が実行される他の外れ変動パターンの変動時間と異なることが望ましい。
[12-6.特別抽選結果の仮表示前に実行される設定示唆演出]
以下、外れ変動パターン31、及び当り変動パターン34について図147も併せて用いて説明する。図147は、図144(A)の変動パターンテーブルにおける外れ変動パターン31、及び当り変動パターン34において実行される演出の一例を示す概要図である。図144において外れ変動パターン31、及び当り変動パターン34は最高設定(設定6)においてのみ振り分けられるように定められている。即ち、外れ変動パターン31及び当り変動パターン34が実行されると、最高設定が確定する。
外れ変動パターン31、及び当り変動パターン34では、例えば、変動開始と同時に、メイン液晶表示装置1600において、スペシャルムービー1が流れる。スペシャルムービー1は、外れ変動パターン31及び当り変動パターン34においてのみ発生する演出であり、つまり最高設定が確定する演出である。
外れ変動パターン31においては、スペシャルムービー1の終了後、特別抽選結果が外れである可能性が高いことを示す仮表示を行った後に、特別抽選結果が外れであることを示す確定表示を行う。当り変動パターン34においては、スペシャルムービー1の終了後、特別抽選結果が当りであることを示す仮表示を行った後に、特別抽選結果が当りであることを示す確定表示を行う。
外れ変動パターン31及び当り変動パターン34は、外れ変動パターン25~30等と異なり、仮表示の前に(具体的には、例えば、変動開始と同時に)設定示唆演出が開始されている。これにより、遊技者は最高設定が確定した状態で、大当り抽選結果の報知を待つ高揚感を得ることができる。また、特にスペシャルムービー1の表示時間が長い(例えば30秒以上)場合には、他の遊技者に対して当該パチンコ機1の設定が最高設定であることをアピールすることができ、ひいては遊技者は当該他の遊技者に対して優越感を感じることができ、ホールにとっても当該他の遊技者に対して最高設定を使用していることをアピールしやすくなる。
[12-7.大当り当選又は高設定が確定する設定示唆演出]
以下、外れ変動パターン32、及び当り変動パターン35について図148も併せて用いて説明する。図148は、図144(A)の変動パターンテーブルにおける外れ変動パターン32、及び当り変動パターン35において実行される演出の一例を示す概要図である。図144(A)において外れ変動パターン32は高設定(設定4、5、6)のみにおいて振り分けられるように定められている。即ち、外れ変動パターン32が実行されると、最高設定が確定する。
外れ変動パターン32、及び当り変動パターン35では、例えば、変動開始と同時に、メイン液晶表示装置1600において、スペシャルムービー2が流れる。スペシャルムービー2は、外れ変動パターン31及び当り変動パターン34のみで発生する演出である。
外れ変動パターン32においては、スペシャルムービー2の終了後、特別抽選結果が外れである可能性が高いことを示す仮表示を行った後に、特別抽選結果が外れであることを示す確定表示を行う。当り変動パターン35においては、スペシャルムービー2の終了後、特別抽選結果が当りであることを示す仮表示を行った後に、特別抽選結果が当りであることを示す確定表示を行う。
従って、スペシャルムービー2が発生した場合には、高設定又は当該変動における大当りの一方が確定する。つまり、スペシャルムービー2が発生した後に特別抽選結果が外れであった場合には高設定が確定するため、遊技者は特別抽選結果が外れであったことに対する落胆を抑えることができ、ひいては高設定が確定したことにより高揚感を得ることができる。
また、特にスペシャルムービー2の表示時間が長い場合には(例えば30秒以上)、遊技者は他の遊技者に対して優越感を感じることができる上に、さらにスペシャルムービー2が発生した上で特別抽選結果が外れである場合には、他の遊技者に対しても高設定を使用していることをホールがアピールしやすくなる。
[12-8.時短状態における設定示唆演出]
以下、遊技状態時短状態である場合において選択される変動パターンについて説明する。図149(A)は、遊技状態が時短状態であり、かつ特別抽選の結果が外れである場合に選択される変動パターンテーブルの一例である。図149(B)は、遊技状態が時短状態であり、かつ特別抽選の結果が大当りである場合に選択される変動パターンテーブルの一例である。
図149(A)の例では、設定が高いほど、リーチなし外れ時における、外れ変動パターン3の振り分けが大きく、かつ外れ変動パターン2の振り分けが小さくなっている。また、外れ変動パターン2の変動時間は、外れ変動パターン3の変動時間より短い。例えば、設定が高いほど大当り当選確率が高い場合には、仮に全ての設定において各変動パターンの振り分けが同一であるとすると、設定が高いほど短時間で大当りに当選しやすくなり、単位時間あたりの遊技球の払い出し数が増加し、ホールの負担につながるおそれがある。
しかし図149(A)の例のように、設定が高いほど、変動時間の長い変動パターンの振り分けが多いことにより、各設定における単位時間あたりの大当りによる遊技球の払い出し数を均等にすることができる。また、設定が高いほど、短縮変動を含む変動パターンの中では変動時間が長い外れ変動パターン3、の選択率が高くなるため、外れ変動パターン3は高設定を示唆する変動パターンとしても機能することができる。
また、リーチあり外れ時においても、同様に、設定が高いほど、変動時間の長い外れ変動パターン11の振り分けが大きくなり、かつ変動時間の短い外れ変動パターン12の振り分けが小さくなっている。また、大当り当選時においても、同様に、設定が高いほど、変動時間の長い当り変動パターン2の振り分けが大きくなり、かつ変動時間の短い当り変動パターン3の振り分けが小さくなっている。
上述したように、例えば、設定が高いほど大当り当選確率が高い場合には、仮に全ての設定において各変動パターンの振り分けが同一であるとすると、設定が高いほど短時間で大当りに当選しやすくなる、換言すれば、設定が低いほど大当りに当選するために長時間を要し、大当りに当選するまでに発射する遊技球の数が多くなる。例えば、設定が低いほど変動時間の長い変動パターンの振り分けが大きくなり、かつ変動時間の短い変動パターンの選択率が小さくなれば、変動中に遊技球の発射を中止する遊技者であれば、各設定における単位時間あたりの遊技球の発射数を均等にすることができる。
なお、本章で述べた各種設定示唆演出において設定が示唆されるタイミングにおいて、所定の効果音が出力されたり、所定の発光演出が実行されたりしてもよい。なお、当該所定の効果音及び当該所定の発光演出は、設定示唆演出時のみに実行される専用のものであってもよい。また、特に高設定や最高設定が確定する設定示唆演出においては、当該設定示唆演出のみで実行される、所定の効果音の出力や、所定の発光演出が実行されるとよい。
なお、高設定や最高設定が確定する、又は可能性が高いことを示唆する演出が実行される変動パターンの振り分けは、他の変動パターンの振り分けと比較して極めて低いことが望ましい。当該変動パターンの振り分けが高いと、遊技者が、少ない遊技時間しか遊技していないにも関わらず、高設定示唆演出や最高設定示唆演出が実行されないと、期待感を失い、ひいては早期に遊技を中止するおそれがあるからである。
また、低設定や最低設定が確定する、又は可能性が高いことを示唆する演出が実行される変動パターンの振り分けは、他の変動パターンの振り分けと比較して極めて低いことが望ましい。当該変動パターンの振り分けが高いと、低設定示唆演出や最低設定示唆演出が頻繁に実行されてしまうことにより、遊技者が期待感を失い、ひいては早期に遊技を中止するおそれがあるからである。
また、高設定、低設定、最高設定、奇数設定、偶数設定等の設定のグループを示唆する設定示唆演出について説明したが、設定示唆演出における設定のグループはこれらに限られない。1以上の設定からなる任意のグループについての設定示唆演出が実行されてもよい。例えば、設定1、2を低設定、設定3、4を中間設定、設定5、6を高設定としてグループ分けされていてもよいし、設定5のみからなるグループがあってもよい。
[12-9.設定機能を有するパチンコ機の他の形態]
図150は、主制御基板1310の実装例を示す図である。なお、本図において、主制御基板ボックス1320の構成を実線で示し、主制御基板ボックス1320内の構成を点線で示す。
前述した説明では、設定基板970が払出制御基板951と接続されており、払出制御部952が各スイッチの操作状態を取得し、設定表示器974の表示を制御していたが、以後の説明では、設定基板970は主制御基板1310と接続されており、主制御MPU1311が各スイッチの操作状態を取得し、設定表示器974の表示を制御する。
図150(A)は、本実装例の主制御基板ボックス1320を示す。主制御基板ボックス1320は、一度閉めたら破壊せずに開けることができない構造で封印可能に主制御基板1310を収容する透明の樹脂によって構成される。主制御基板ボックス1320には、表示スイッチ1318を操作するための穴1318A、RAMクリアスイッチ954を操作するための穴954A、及び設定キー971を操作するための穴971Aが設けられる。
図150(B)は、(A)に示す主制御基板ボックス1320に、主制御基板1310及び設定基板970を収容した状態を示す。図150(B)に示す例では、主制御基板1310上には、主制御MPU1311やドライバ回路(図示省略)の他、ベース表示器1317、表示スイッチ1318及びRAMクリアスイッチ954が実装されている。なお、RAMクリアスイッチ954は主制御基板1310に実装されずに、他の制御基板(例えば、払出制御基板951や電源基板)に実装されてもよい。この場合、主制御基板ボックス1320には穴954Aを設けない。
本実施例のパチンコ機1では、主制御基板ボックス1320内にRAMクリアの契機となる二つの操作部(RAMクリアスイッチ954、設定キー971)が設けられている。なお、後述するように、RAMクリアスイッチ954のみの操作時と、設定キー971が操作された場合とは、データが消去される主制御RAM1312の記憶領域が異なる。
設定基板970は、主制御基板1310に近接して設けられ、設定基板970と主制御基板1310とは、信号が伝達可能なように電気的に接続される。設定基板970と主制御基板1310との接続は、コネクタによって基板間を直接接続したり、電線によって接続してもよい。設定基板970上には、パチンコ機1の動作モードを設定変更モードや設定確認モードに変更するための設定キー971、及び設定又は選択された設定値を表示する設定表示器974が実装される。なお、設定値を変更するための設定変更スイッチ972及び変更された設定値を確定入力するための設定確定スイッチ973が設定基板970上に実装されてもよい。
設定基板970に設けられる各種スイッチ971、972、973の出力は、主制御基板1310に送られ、主制御MPU1311のポートに入力される。
また、主制御基板1310と設定基板970とがシリアル通信を行い、設定表示器974のドライバ回路を設定基板970に実装してもよい。
主制御基板ボックス1320は、パチンコ機1の裏面側に配置されるので、設定基板970上の設定表示器974はパチンコ機1の裏面側から見ることができる位置に実装される。
主制御基板1310は、初期化処理(図21、図22)において設定基板970を認証してもよい。例えば、パチンコ機の製造者毎の認証用コードを設定基板970に設定し、主制御基板1310が設定基板970に設定された認証用コードを読み出して照合する。そして、設定基板970が認証できなければ、パチンコ機1で遊技を開始できないようにする。つまり、遊技領域5aに向けて遊技球を発射可能であるが、入賞口に入賞しても賞球は払い出されず、変動表示ゲームの実行されない状態となる。認証用コードは、パチンコ機の機種毎に設定してもよいし、パチンコ機毎のシリアル番号を設定してもよい。認証用コードの設定方法は、例えば、設定基板970に設けたDIPスイッチ、ジャンパ線、ジャンパピン、パターンの短絡などで認証用コードを設定したり、認証用コードが設定されたロジック回路(例えば、小容量のFPGA(Field Programmable Gate Array))を設定基板970に搭載してもよい。
また、主制御基板ボックス1320内に実装されている基板が、設定基板970なのかダミー基板979なのかを、主制御基板1310(主制御MPU1311)が識別可能としてもよい。例えば、設定基板970とダミー基板979とが異なる信号を主制御基板1310に出力することによって、主制御MPU1311が、接続されている基板が設定基板970とダミー基板979とのいずれであるかを認識する。具体的には、設定基板970は+5Vを出力し、ダミー基板979は0V(グランドレベル)を出力する。設定基板970及びダミー基板979からの信号は、主制御基板1310のインターフェイス回路1331回路の特定のポートに入力される。主制御MPU1311は、該ポートへの入力信号によって、接続されている基板を判定する。
このように、製造者毎(機種毎)に設定基板970のコードを変えることによって、誤った設定基板970の主制御基板ボックス1320への実装を防止できる。また、設定基板970上のロジック回路に認証用コードを設定することによって、設定基板970の不正な交換を防止できる。
図150(C)は、(A)に示す主制御基板ボックス1320に、主制御基板1310及びダミー基板979を収容した状態を示す。
前述したように、近年、パチンコ機1は遊技性能の設定機能を有するものがある。この設定機能は、特別図柄変動表示ゲームにおける大当り確率など遊技者が獲得する賞球に関するパチンコ機の性能を変更でき、設定機能によって、ホールの営業方針に沿ってパチンコ機1の性能を変更できる。一方、設定機能を有さない従来のパチンコ機で十分であり、設定機能が不要だと思うホールもある。このため、パチンコ機の製造者は、設定機能を有さないパチンコ機と、設定機能を有するパチンコ機との両方を設計、生産する必要があり、パチンコ機の仕様を共通化して、二種類のパチンコ機の設計、生産を効率的に行うことが求められている。
このため、設定機能を有さないパチンコ機1においては、設定基板970の実装スペースにダミー基板979を実装して、設定基板970が実装されている場合と同様に、パチンコ機1が生産できるようにする。また、設定機能を有さないパチンコ機と、設定機能を有するパチンコ機とで、主制御基板1310を共通化できる。
ダミー基板979は、設定基板970上に実装される設定キー971や設定表示器974などのデバイスが実装されていないが、これらのデバイスを実装するためのパターンを有してもよい。すなわち、ダミー基板979上にはデバイスを実装するためのパターンが設けられているが、当該パターン上にデバイスは実装されていない。
ダミー基板979は、プリント基板によって構成されなくても、設定基板970と同じ位置で主制御基板ボックス1320に取り付け可能な部材(例えば、樹脂ケースで構成されたユニット)でもよい。
また、設定表示器974のドライバ回路は主制御基板1310に実装されることから、設定表示器974のドライバ回路の出力は、ダミー基板979においては、オープンでもグランドでもなく、ダミー抵抗によって終端されるとよい。これによってドライバ回路の過電流による破損を防止できる。また、主制御基板1310と設定基板970とがシリアル通信を行う場合、ダミー基板979は、主制御基板1310とのシリアル通信を終端するとよい。
ダミー基板979が実装される場合、主制御基板ボックス1320には穴971Aを設けない。なお、穴971Aを塞ぐように移動可能な小扉を、主制御基板ボックス1320の内側からは操作可能で、外側からは操作不可能に主制御基板ボックス1320に設けることによって、設定機能を有さないパチンコ機と、設定機能を有するパチンコ機と、主制御基板ボックス1320を共通化してもよい。
なお、後述するダミー基板979にも、主制御基板1310が認証するための、認証用コードを設定してもよい。また、ダミー基板979は、主制御基板1310による認証を不要とし、認証用コードを設定しなくてもよい。主制御基板1310とダミー基板979とがシリアル通信を行い、主制御基板1310がダミー基板を認証してもよい。
以上に説明した設定基板970に実装される操作手段のバリエーションを纏めると以下の通りとなる。
(1)設定変更スイッチ972有り、設定確定スイッチ973有り
この場合、設定キー971に鍵975を挿入し、設定位置に回した状態で(さらに、RAMクリアスイッチ954を押した状態で)、パチンコ機1の電源スイッチを操作して電源を投入する。そして、設定変更スイッチ972を操作して設定すべき設定値を選択した後、設定確定スイッチ973を操作する。
(2)設定変更スイッチ972有り、設定確定スイッチ973無し
この場合、設定キー971に鍵975を挿入し、設定位置に回した状態で(さらに、RAMクリアスイッチ954を押した状態で)、パチンコ機1の電源スイッチを操作して電源を投入する。そして、設定変更スイッチ972を操作して設定すべき設定値を選択した後、設定キー971を通常位置に戻す。
(3)設定変更スイッチ972無し、設定確定スイッチ973有り
この場合、設定キー971に鍵975を挿入し、設定位置に回した状態で(さらに、RAMクリアスイッチ954を押した状態で)、パチンコ機1の電源スイッチを操作して電源を投入する。そして、RAMクリアスイッチ954を操作して設定すべき設定値を選択した後、設定確定スイッチ973を操作する。なお、RAMクリアスイッチ954の操作に代えて、設定キー971を右に回して、設定すべき設定値を選択してもよい。
(4)設定変更スイッチ972無し、設定確定スイッチ973無し
この場合、設定キー971に鍵975を挿入し、設定位置に回した状態で(さらに、RAMクリアスイッチ954を押した状態で)、パチンコ機1の電源スイッチを操作して電源を投入する。そして、RAMクリアスイッチ954を操作して設定すべき設定値を選択した後、設定キー971を通常位置に戻す。なお、RAMクリアスイッチ954の操作に代えて、設定キー971を右に回して、設定すべき設定値を選択してもよい。
図151、図152は、主制御基板1310の別の実装例を示す図である。なお、本図において、主制御基板ボックス1320の構成を実線で示し、主制御基板ボックス1320内の構成を点線で示す。
図151、図152に示す実装例では、主制御基板ボックス1320に小扉1321が設けられている点が、図150に示す実装例と異なる。
図151(A)は、本実装例の主制御基板ボックス1320を示す。主制御基板ボックス1320は、前述と同様に、一度閉めたら破壊せずに開けることができない構造で封印可能に主制御基板1310を収容する透明の樹脂によって構成される。主制御基板ボックス1320には、表示スイッチ1318を操作するための穴1318A、RAMクリアスイッチ954を操作するための穴954A、及びパチンコ機1の動作モードを設定変更モードに変更するための設定モードスイッチ976を操作するための穴976Aが設けられる。
穴976Aは、通常時は、小扉1321によって覆われている。小扉1321には鍵ユニット1322が設けられており、鍵ユニット1322の鍵穴に鍵975を挿入して操作することによって主制御基板ボックス1320から小扉1321を開放し、穴976Aが露出し、設定モードスイッチ976を操作可能となる。
図152(A)に示すように、鍵975が挿抜可能な通常状態では、鍵ユニット1322から閂1323が最大突出位置にあり、閂1323が受座1324に挿入されて、閂1323と受座1324とが係合して、小扉1321は閉鎖位置に固定される。一方、図152(B)に示すように、鍵975を鍵穴に挿入して回転操作をすると、閂1323が最大突出位置から後退して、閂1323と受座1324との係合が解除されて、蝶番1325を軸として、小扉1321が開放可能となる。小扉1321が開放状態(図152(B))では、穴976Aが露出して、設定モードスイッチ976が操作可能となる。
図153は、主制御基板1310のさらに別の実装例を示す図である。図153に示す実装例では、パチンコ機1の裏面側を覆う裏カバー980に鍵ユニット1322が設けられている。すなわち、鍵ユニット1322の鍵穴に鍵975を挿入して操作することによって裏カバー980を本体枠ベース600から開放し、主制御基板ボックス1320(設定基板970に設けられた設定モードスイッチ976)を操作可能となる。
すなわち、鍵975が挿抜可能な通常状態では、裏カバー980が本体枠ベース600の裏面側を閉鎖して固定されており、主制御基板ボックス1320は裏カバー980に収容された状態となる。一方、鍵975を鍵穴に挿入して回転操作をすると、裏カバー980を本体枠ベース600から開放可能となり、裏カバー980の内部に収容されている主制御基板ボックス1320が裏面側に露出し、設定モードスイッチ976が操作可能となる。
裏カバー980に鍵ユニット1322を設ける場合、主制御基板ボックス1320(主制御基板1310)は、図151(C)に示す構成でよい。具体的には、主制御基板ボックス1320は、一度閉めたら破壊せずに開けることができない構造で封印可能に主制御基板1310を収容する透明の樹脂によって構成される。主制御基板ボックス1320には、表示スイッチ1318を操作するための穴1318A、RAMクリアスイッチ954を操作するための穴954A及びパチンコ機1の動作モードを設定変更モードに変更するための設定モードスイッチ976を操作するための穴976Aが設けられる。主制御基板ボックス1320には、主制御基板1310及び設定基板970を収容される。主制御基板1310上には、主制御MPUやドライバ回路(図示省略)の他、ベース表示器1317、表示スイッチ1318及びRAMクリアスイッチ954が実装される。なお、RAMクリアスイッチ954は主制御基板1310に実装されずに、他の制御基板(例えば、払出制御基板951や電源基板)に実装されてもよい。この場合、主制御基板ボックス1320には穴954Aを設けない。
設定基板970は、主制御基板1310に近接して設けられ、設定基板970と主制御基板1310とは、信号は伝達可能なように電気的に接続される。設定基板970と主制御基板1310との接続は、コネクタによって基板間を直接接続したり、電線によって接続してもよい。設定基板970上には、パチンコ機1の動作モードを設定変更モードに変更するための設定モードスイッチ976、及び設定又は選択された設定値を表示する設定表示器974が実装される。なお、設定値を変更するための設定変更スイッチ972及び変更された設定値を確定入力するための設定確定スイッチ973が設定基板970上に実装されてもよい。
[12-10.設定変更処理の詳細]
図154は、初期化処理の一例を示すフローチャートである。図154に示す初期化処理は、図101で前述した初期化処理と比較し、設定キー971が操作されている場合にRAMクリア処理を行う点(ステップS17、ステップS30)が相違する。なお、図21、図101で前述した初期化処理と同じステップには同じ符号を付し、その詳細な説明は省略する。
パチンコ機1に電源が投入されると、主制御基板1310の主制御MPU1311が主制御プログラムを実行することによって初期化処理を行う。主制御MPU1311は、まず、主制御MPU1311に内蔵されたRAM1312のプロテクトを書き込み許可に設定し、RAM1312への書き込みができる状態にする(ステップS10)。続いて、主制御MPU1311は、内蔵されたウォッチドッグタイマを起動し(ステップS12)、所定のウェイト時間(サブ基板(周辺制御基板1510など)が起動するために必要な時間)が経過したかを判定する(ステップS16)。所定のウェイト時間が経過していれば、RAMクリアスイッチ954が操作されているかを判定する(ステップS18)。
なお、RAMクリアスイッチ954は、電源投入後直ちに(例えばステップS12の前に)検出して、検出結果を所定のレジスタに格納しておき、格納した値をステップS18で判定するとよい。電源投入後、直ぐにRAMクリアスイッチ954を検出することによって、電源投入後短時間しかRAMクリアスイッチ954が操作されなくても、確実にRAMクリアスイッチ954の操作を検出できる。
RAMクリアスイッチ954が操作されている場合、設定キー971が操作されており、その出力がオンであるかを判定する(ステップS17)。設定キー971が操作されていない場合は、通常のRAMクリア操作なので、ステップS30に進み、内蔵RAM1312の所定領域を初期化する。一方、設定キー971が操作されている場合、すなわち、設定キー971とRAMクリアスイッチ954との両方が操作された状態で電源が投入された場合、設定変更モードに移行する。すなわち、設定変更モードを開始するために二つのスイッチの操作と電源スイッチの操作が必要なので、誤って設定変更モードを開始する誤操作を防止できる。
設定変更モードでは、まず、設定値を表示する(ステップS60)。具体的には、主制御MPU1311は、主制御RAM1312から現在の設定値を読み出して設定表示器974に表示するためのデータを生成する。そして、セキュリティ信号を出力する(ステップS61)。具体的には、主制御MPU1311は、セキュリティ信号を出力するためのデータを生成する。セキュリティ信号は、パチンコ機1が異常を検出した場合に外部端子板784から出力される信号であるが、遊技中にパチンコ機1を設定変更モードにすることは極めて希であり、不正行為の可能性があることから、営業時間中に設定変更モードに移行した場合にはホールコンピュータに通知すべきだからである。
セキュリティ信号は、設定変更モードの開始から所定時間だけ出力しても、設定変更モードの開始から終了までの間に出力しても、設定変更モードの開始から設定変更モードの終了後の所定期間まで出力してもよい。設定変更モードの終了後の所定期間までセキュリティ信号を出力することによって、異常を検出できる期間が長くなり、セキュリティ性をより高くできる。
その後、主制御MPU1311は、設定変更スイッチ972の操作の有無によって、設定変更操作がされたかを判定し(ステップS62)、設定変更スイッチ972の操作に従って設定値を変更して、主制御RAM1312に書き込む(ステップS63)。例えば、設定変更スイッチ972が押しボタンスイッチで構成される場合、設定変更スイッチ972が1回押されると、設定値を1段階変更する。また、設定キー971が設定変更スイッチ972を兼ねる場合、設定キー971が1回右に回されると、設定値を1段階変更する。そして、主制御MPU1311は、変更後の設定値を設定表示器974に表示するためのデータを生成する(ステップS64)。
その後、設定変更モードを終了して設定値を確定するかを判定する(ステップS65)。具体的には、主制御MPU1311が設定確定スイッチ973の操作を検出すると、設定変更モードを終了し、ステップS30に進む。また、設定キー971を通常位置に戻す操作によって設定変更モードを終了してもよい。また、パチンコ機1に設けられた他のスイッチやセンサの動作を契機に設定変更モードを終了してもよい。
前述した処理では、設定変更モード終了後、又は、ステップS17で設定キーがオンではないと判定された場合、ステップS30に進んだが、ステップS20に進んでもよい。この場合、設定変更モード終了後に、停電フラグが設定されているかを判定し(ステップS20)、チェックサムが一致したかを判定し(ステップS22)、停電フラグが設定されておらず、かつ、チェックサムが一致しない場合に、内蔵RAM1312の所定領域を初期化する。なお、ステップS17で設定キーがオンではないと判定された場合はステップS30に進む。
設定変更モードの終了後、ステップS30において、内蔵RAM1312のワークエリアにバックアップされているデータのうち設定値のデータとベース算出用ワークエリア(ベース算出用領域13128)と遊技状態(例えば、確変状態、時短状態、特別図柄や普通図柄の保留記憶、賞球に関する情報)のデータを残し、それ以外のデータを消去し、ステップS24に進む。なお、遊技状態のデータは残さずに消去してもよい。この場合、設定変更操作後において消去されるRAM領域によって消去される記憶領域とRAMクリア操作によって消去される記憶領域とは同じになる。
一方、設定変更モードを終了する操作を検出しなければ、ステップS62に戻り、さらに、設定変更操作を検出する。
また、ステップS17において、設定キー971の操作が検出されなければ、ステップS30において、内蔵RAM1312のワークエリアにバックアップされているデータのうち設定値のデータとベース算出用ワークエリア(ベース算出用領域13128)のデータを残し、それ以外のデータを消去し、ステップS24に進む。
また、ステップS18で、RAMクリアスイッチ954の操作が検出されなければ、主制御MPU1311は、内蔵RAM1312にバックアップされているデータを消去せず、停電フラグが設定されているかを判定する(ステップS20)。
その結果、停電フラグが設定されていなければ、内蔵RAM1312のワークエリアのデータは正しくない恐れがあるので、主制御MPU1311は、ワークエリアにバックアップされているデータ(ベース算出用領域13128以外)を消去し(ステップS30)、ステップS24に進む。一方、停電フラグが設定されていれば、主制御MPU1311は、停電フラグをクリアし、前回の電源遮断時に計算されたチェックサムを用いて内蔵RAM1312のワークエリアにバックアップされているデータから算出したチェックサムとステップS48で記憶したチェックサムとを比較(検証)する(ステップS22)。
その結果、バックアップデータから算出されたチェックサムとステップS48で記憶したチェックサムとが一致しなければ、内蔵RAM1312のワークエリアのデータは正しくない恐れがあるので、主制御MPU1311は、ワークエリアにバックアップされているデータ(ベース算出用領域13128以外)を消去し(ステップS30)、ステップS24に進む。一方、バックアップデータから算出されたチェックサムとステップS48で記憶したチェックサムとが一致すれば、内蔵RAM1312のワークエリアのデータは正しいので、ワークエリアにバックアップされているデータを消去せず、ステップS24に進む。
ステップS24では、主制御MPU1311は、チェックコードを用いてベース算出用ワークエリア(ベース算出用領域13128)が正常かを判定する。異常であると判定された場合、ベース算出用ワークエリアのデータは正しくない恐れがあるので、主制御MPU1311は、ベース算出用ワークエリアに格納されているデータを消去する(ステップS26)。
本実施例のパチンコ機1では、RAM1312の少なくとも一部の領域が初期化されるケースとして、設定キー971の操作(ステップS17)と、RAMクリアスイッチのみの操作(ステップS18)と、停電フラグがセットされていない停電フラグ異常(ステップS20)と、RAMのチェックサムが一致しないRAM異常(ステップS22)と、ベース算出用ワークの異常(ステップS24)とがある。これらのうち、図示したように、電源投入時に設定キー971の操作が検出された場合は、遊技制御用領域13126(遊技用ワーク領域と遊技用スタック領域を含む)のうち、設定値と遊技状態(例えば、確変状態、時短状態、特別図柄や普通図柄の保留記憶、賞球に関する情報)のデータを残し、それ以外のデータをクリアし、ベース算出用領域13128(遊技制御領域外)はクリアしない。電源投入時にRAMクリアスイッチ954の操作が検出されたが、設定キー971の操作が検出されない場合、及び停電フラグ異常、RAM異常の場合は、遊技制御用領域13126(遊技用ワーク領域と遊技用スタック領域を含む)をクリアし、ベース算出用領域13128(ベース算出用ワーク領域とベース算出用スタック領域を含む)はクリアしない。また、ベース算出用ワーク異常の場合、ベース算出用領域13128(遊技制御領域外)をクリアし、遊技制御用領域13126はクリアしない。
なお、図示したものと異なり、停電フラグ異常、RAM異常、ベース算出用ワーク異常の場合は、RAM1312に格納されたデータの正当性が保証されないことから、遊技制御用領域13126及びベース算出用領域13128を含む全RAM領域をクリアしてもよい。ベース算出用ワーク異常の場合に全RAM領域をクリアすると、遊技状態を示すデータが消失して正常な処理が実行不可能になるメモリ構成である場合、ベース算出用ワーク領域とベース算出用スタック領域のみを初期化するとよい。また、電源投入時にRAMクリアスイッチの操作が検出された場合は、前述と同様に、遊技制御用領域13126(遊技用ワーク領域と遊技用スタック領域を含む)をクリアし、ベース算出用領域13128はクリアしなくてよい。
このように、本実施形態のパチンコ機1では、内蔵RAM1312のワークエリアにバックアップされているデータを、データの種別毎に(遊技制御用領域13126(設定値、遊技状態のデータ)、ベース算出用領域13128)異なる条件で消去する。すなわち、RAMクリアスイッチの操作によって、設定値以外のバックアップされた遊技制御用領域13126は消去され、設定値とベース算出用領域13128は消去されない。RAMクリアスイッチの操作によって設定値が消去されると、RAMクリア操作毎に設定値を再設定する必要があり、ホールのパチンコ機1のメンテナンスが煩雑になるからである。このため、RAMクリアスイッチの操作によって、設定値が消去されないようにしている。
ステップS28より後の処理は、必要に応じて、図22と図102とのいずれかを採用すればよい。図22と図102との違いは、電源遮断時にベース算出用ワークエリア(ベース算出用領域13128)のデータからチェックコード算出して格納する処理(ステップS50、S52)の有無である。
以上に説明した初期化処理では設定確認処理を実行せず、後述するタイマ割込み処理から呼び出される設定確認処理で実行するものとしたが(図155、図156)、初期化処理で設定確認処理を実行してもよい。初期化処理で設定確認処理を実行することによって、電源投入時のみに設定確認を許可でき、パチンコ機1の動作中の不用意な操作による設定値の確認を防止できる。
この場合、設定キー971とは別に、設定確認用の操作部(例えば、押しボタンスイッチ)を設け(設定変更スイッチ972が設定確認用の操作部の機能を有してもよい)、電源投入時に当該設定確認用操作部が操作されている場合には、主制御RAM1312から現在の設定値を読み出して設定表示器974に表示するためのデータを生成して、設定値を設定表示器974に表示するとよい。この場合も、設定値の表示に伴いセキュリティ信号を出力するとよい。
本実施例のパチンコ機1の主制御基板1310は、RAMクリアスイッチ954が操作されても直ちにRAMクリア処理を実行しない場合があることになる。具体的には、設定キー971をオンに操作した状態で、RAMクリアスイッチ954を操作して電源を投入すると、設定変更モードの終了後に主制御RAMがクリアされる(ステップS30)。すなわち、主制御MPU1311がRAMクリア処理を保留して、所定の条件が満たされた(設定変更モードの終了)後にRAMクリア処理を実行する。設定変更モード中は、主制御MPU1311がRAMクリア処理を実行することを記憶するように制御していると言える。一方、設定キー971を操作せずに、RAMクリアスイッチ954を操作して電源を投入すると、設定変更モードを開始せずに主制御RAMがクリアされる(ステップS30)。
以上、主制御RAM1312のクリア(初期化)について詳しく述べたが、次に払出制御基板951に搭載された払出制御部952のRAMのクリアについて説明する。
設定変更モードの後、ステップS30で主制御RAM1312をクリアするが、これと共に払出制御部のRAMをクリアしてもよい。また、払出制御部952のRAMをクリアしなくてもよい。さらに、操作によって払出制御部のRAMをクリアするかを切り替えてもよい。例えば、設定キー971をオンに操作した状態で、RAMクリアスイッチ954を操作しながら電源を投入すると主制御RAM1312と払出制御部952のRAMをクリアし、設定キー971をオンに操作した状態で、RAMクリアスイッチ954を操作しないで電源を投入すると主制御RAM1312をクリアし、払出制御部952のRAMをクリアしない。このように、操作方法を変えることによって、主制御RAM1312の一部の領域をクリアし、払出制御部952のRAMはクリアされない処理を実行できる。
また、主制御RAM1312と払出制御部952のRAMをクリアする場合、設定キー971の操作の有無によって、主制御RAM1312がクリアされるタイミングと払出制御部952のRAMがクリアされるタイミングとにずれが生じることがある。すなわち、設定キー971がオンに操作された状態で、RAMクリアスイッチ954を操作して電源を投入した場合、設定変更モードの終了後に主制御RAM1312がクリアされる(ステップS30)。一方、払出制御部952は、RAMクリアスイッチ954の操作を検出すると、直ちにRAMをクリアする。このため、条件(操作)によっては、払出制御部952のRAMはクリアされるが、主制御RAM1312がクリアされていない状態が生じ得る。
また、RAMクリアスイッチ954を主制御基板1310に設ける場合だけでなく、払出制御基板951や電源基板931に設けたパチンコ機1においても、設定値を変更する際にRAMクリアスイッチ954を操作しながら電源を投入すると払出制御部952のRAMがクリアされるとよい。すなわち、主制御基板1310からのRAMクリアコマンドによって払出制御部952がRAMクリアするのではなく、電源投入時に払出制御部952がRAMクリアスイッチ954の信号のレベルを検出して、RAMクリアスイッチ954が操作されているかを判定し、払出制御部952のRAMをクリアするかを判定する。払出制御基板951にRAMクリアスイッチを設けると、枠側の制御プログラムを変えることなく、多様な機種に対応できる効果がある。
[12-11.設定確認処理の詳細]
図155は、本実施例のパチンコ機のタイマ割込み処理の一例を示すフローチャートである。
図155に示すタイマ割込み処理は、図23で前述したタイマ割込み処理と比較し、ステップS81の役物比率算出用領域更新処理に代えてベース算出処理(ステップS801)が設けられ、ステップS89の役物比率算出・表示処理が削除される。また、パチンコ機1の遊技性能(例えば、条件装置の作動割合)を示す設定値を表示するための設定確認処理(ステップS802)が追加される。なお、図23や図104で前述したタイマ割込み処理と同じステップには同じ符号を付し、その詳細な説明は省略する。
タイマ割込み処理が開始されると、主制御MPU1311は、主制御プログラムを実行することによって、まず、プログラムステータスワードのRBS(レジスタバンク選択フラグ)に1を設定し、レジスタを切り替える(ステップS70)。
次に、主制御MPU1311は、スイッチ入力処理(ステップS74)、タイマ更新処理(ステップS76)、乱数更新処理1(ステップS78)、賞球制御処理を実行する(ステップS80)。
続いて、主制御MPU1311は、現在の遊技状態を参照して、遊技価値として払い出される賞球数を現在の遊技状態に対応した領域に加算して、主制御内蔵RAM1312のベース算出用領域13128(図103参照)を更新し、ベース値を計算する(ステップS801、ベース算出処理の詳細は図105及び図106を参照)。ベース算出処理(ステップS801)は、賞球制御処理(ステップS80)の後であれば、どの順序で実行してもよいが、タイマ割込み毎に確実に実行するために、早い順序で実行するとよい。
続いて、主制御MPU1311は、枠コマンド受信処理(ステップS82)、不正行為検出処理(ステップS84)、特別図柄及び特別電動役物制御処理(ステップS86)、普通図柄及び普通電動役物制御処理(ステップS88)を実行する。
その後、パチンコ機1の遊技性能を示す設定値を表示するための設定確認処理(ステップS802)を実行する。設定確認処理では、ホールの従業員が所定の操作をすることによって、現在の設定値を設定表示器974に表示する。設定確認処理の詳細は図156を用いて後述する。
続いて、出力データ設定処理(ステップS90)、周辺制御基板コマンド送信処理(ステップS92)を実行する。
最後に、主制御MPU1311は、ウォッチドッグタイマクリアレジスタWCLに所定値(18H)をセットする(ステップS96)。また、最後に、主制御MPU1311は、レジスタバンクを切り替える(復帰する)。以上の処理が終了すると、タイマ割込み処理を終了し、割り込み前の処理に復帰する。
図156は、本実施例のパチンコ機の設定確認処理の一例を示すフローチャートである。設定確認処理は、タイマ割込み処理(図155)のステップS802から呼び出されて実行される。
設定確認処理では、まず、主制御MPU1311は、設定確認操作中であるかを判定する(ステップS8061)。具体的には、設定キー971が操作されているかを判定する。設定キー971は、電源投入時に操作されていると設定変更モードへの移行の契機となり(図154のステップS17)、動作中に操作されると設定確認操作となり、現在の設定を表示できる。
設定キー971の操作を検出しなければ、設定キー971が通常位置に戻されたので、設定値を表示しないためのデータを生成し、設定値を非表示にする(ステップS8065)。
一方、設定キー971の操作を検出すると、設定表示条件を満たすかを判定する(ステップS8062)。
設定表示条件としては、枠開放スイッチの出力によって、本体枠4が外枠2から開放しているかを判定する。設定キー971はパチンコ機1の裏面側に設置されているので、外枠2が開放していなければ設定キー971を操作できない。しかし、外枠2が閉鎖しているのに設定キー971の操作が検出された場合、パチンコ機1に何らかの異常(故障や、不正行為)が生じていることが推定され、この場合には設定を表示しない方がよい。また、設定表示器974はパチンコ機1の裏面側に設置されているので、外枠2が開放していなければ設定表示器974を見ることができず、設定を表示する必要がない。
パチンコ機1の動作中はいつでも設定値を表示してもよい。また、特定の時間において表示可能とする設定表示条件を設けてもよい。例えば、電源投入時から所定時間(例えば、10秒間)だけ設定位置を表示可能としてもよい。この場合、電源投入(又は、ステップS28のCPU初期設定)からの経過時間を計測するタイマを動作させ、当該タイマがタイムアップするまでは設定値の表示を可能とするとよい。
また、特定の遊技状態において設定値を表示可能とする設定表示条件を設けてもよい。例えば、特別図柄の変動表示中や大当たり遊技中には設定表示条件を表示不可能とする。すなわち、特別図柄変動中及び大当たり中以外の期間において設定値を表示可能とする設定表示条件を設ける。なお、前述した以外の遊技状態で設定値を表示不可としてもよい。この場合、特別図柄変動ゲーム中や大当たり遊技中に設定キーが操作された場合、特別図柄変動ゲームや大当たり遊技が終了するタイミングに設定値を表示してもよい。
設定表示条件を満たすと判定されると、セキュリティ信号を出力する(ステップS8063)。具体的には、主制御MPU1311は、セキュリティ信号を出力するためのデータを生成する。セキュリティ信号は、パチンコ機1が異常を検出した場合に外部端子板784から出力される信号であるが、パチンコ機1が遊技中に設定を確認することは希であり、不正行為の前触れとなることもあるので、営業時間中に設定確認操作がされた場合にはホールコンピュータに通知すべきだからである。
セキュリティ信号は、設定値表示開始から所定時間だけ出力しても、設定値表示開始から終了までの間に出力しても、設定値表示開始から設定値表示終了後の所定期間まで出力してもよい。設定値表示終了後の所定期間までセキュリティ信号を出力することによって、異常を検出できる期間が長くなり、セキュリティ性をより高くできる。
図示した設定確認処理では、設定表示条件を満たす場合にセキュリティ信号を送信するが、設定表示条件を満たさない場合でも、設定確認操作(設定キー971の操作)を検出するとセキュリティ信号を送信してもよい。
その後、設定値を表示する(ステップS8064)。具体的には、主制御MPU1311は、主制御RAM1312から現在の設定値を読み出して設定表示器974に表示するためのデータを生成する。
なお、設定表示条件を満たさない場合、設定表示条件を満たすまで条件を確認するが、長時間ループから抜け出せない可能性があるので、所定の時間、連続して設定表示条件を満たさない場合、設定確認処理を終了してもよい。例えば、特別図柄変動表示中であるために設定値を表示しないと判定された後、所定時間内に特別図柄変動表示が終了すると、特別図柄変動表示の終了を契機に設定表示条件を満たすことになり、設定値を表示する。また、設定条件を満たさない場合、設定条件の確認を繰り返さず、直ちに設定確認処理を終了してもよい。
このとき、設定値を表示中でないことを特別図柄変動表示開始条件に含めてもよい。このようにすると、設定値の表示中は新たな特別図柄変動表示を開始せず、設定値が非表示になった後に新たな特別図柄変動表示を開始する。
以上に説明したように、本実施例のパチンコ機1では、所定のタイミングで設定値を確認できるようにしたので、他の表示を妨げることなく、設定値を確認できる。特にベース表示器1317と設定表示器974を兼用する場合、設定確認中は設定値が優先して表示されるので、ベース値の計算は行われているものの、ベース値が表示されない。短時間に多くの賞球が払い出される遊技状態では、ベース値の変化を確認したい場合がある。このため、ベース値のリアルタイム表示を妨げることなく、設定値を表示できる。
[12-12.設定変更、設定確認に伴うセキュリティ信号の出力]
図157は、設定変更、設定確認に伴って出力されるセキュリティ信号のタイミング図である。
前述したように、設定変更モード及び設定確認時にセキュリティ信号が出力される(図154のS61、図156のS8063)。
設定変更モードには、図157(A)に示すように、設定変更モードの開始から所定時間だけ外部端子板784からセキュリティ信号が出力される。セキュリティ信号が出力される所定時間(T秒)は、ホールコンピュータがセキュリティ信号を認識できる時間以上であればよく、1秒以下でも、数十秒の長さでもよい。
また、セキュリティ信号は、設定変更モードの開始から所定時間ではなく、設定変更モードの開始から終了までの期間、出力されてもよい。
また、設定変更モードには、図157(B)に示すように、設定変更モードに伴って実行されるRAMクリア処理のタイミングで所定時間(T秒)だけセキュリティ信号を出力してもよい。
設定確認時には、図157(C)に示すように、設定確認の開始から所定時間だけ外部端子板784からセキュリティ信号が出力される。セキュリティ信号が出力される所定時間(T秒)は、ホールコンピュータがセキュリティ信号を認識できる時間以上であればよく、1秒以下でも、数十秒の長さでもよい。
また、セキュリティ信号は、設定確認の開始から所定時間ではなく、設定確認の開始から終了までの期間(設定値が表示されている期間)、出力されてもよい。
パチンコ機1がエラーを検出すると、図157(D)に示すように、エラーの検出から所定時間(T秒)だけ外部端子板784からセキュリティ信号が出力される。設定確認中にパチンコ機1がエラーを検出した場合、図157(E)に示すように、エラーの検出から所定時間だけセキュリティ信号が出力される。すなわち、設定確認に起因するセキュリティ信号と、エラー検出に起因するセキュリティ信号とが連続して、所定時間(T秒)を超えて(エラー検出から所定時間)出力される。なお、設定確認中にエラーが検出された場合でも、セキュリティ信号の出力時間を延長しなくてもよい。すなわち、セキュリティ信号出力中にエラーが検出されても、エラー検出に起因するセキュリティ信号が出力されず、出力中のセキュリティ信号に吸収される。
なお、設定変更モード中は、パチンコ機1がエラーを検出しないので、設定確認に起因するセキュリティ信号と、エラー検出に起因するセキュリティ信号とは重複しない。すなわち、設定変更モード中はエラーが発生してもセキュリティ信号の出力時間が延長しないが、設定確認時にエラーが発生するとセキュリティ信号の出力時間が延長する。
[12-13.設定確認処理の別例]
以下、設定確認処理の別例について説明する。上記説明では、周辺制御部定常処理におけるタイマ割り込み処理において、設定確認処理が行われる例について主に説明したが、以下では、パチンコ機1への電源投入時の初期化処理において設定確認処理が行わる例について説明する。
具体的には、例えば、パチンコ機1への電源投入時に設定キーがオンである場合に、設定確認処理へ移行する。以下、当該処理の詳細を説明する。なお、本章における周辺制御MPUが実行するタイマ割込み処理は、図23におけるタイマ割込み処理(即ちステップS802における設定確認処理を含まないタイマ割込み処理)であるものとする。
図158は、初期化処理の別例を示すフローチャートである。図154との相違点を説明する。主制御MPU1311は、ステップS18において、RAMクリアスイッチ954が操作されていないと判定した場合(ステップS18:No)、設定キー971が操作されており、その出力がオンであるかを判定する(ステップS29)。
主制御MPU1311は、設定キー971の出力がオンであると判定した場合(ステップS29:Yes)、ステップS807における設定確認処理へと移行し、その後ステップS20へ移行する。ステップS807における設定確認処理については後述する。主制御MPU1311は、設定キー971の出力がオフであると判定した場合(ステップS29:No)、ステップS20へ移行する。
図159は、設定確認処理の別例(ステップS807における設定確認処理)を示すフローチャートである。図156との相違点について説明する。主制御MPU1311は、ステップS8061の処理を行うことなく、設定表示条件を満たすかを判定する(ステップS8062)。主制御MPU1311は、設定表示条件を満たすと判定した場合(ステップS8062:Yes)、セキュリティ信号を出力(ステップS8063)し、設定値を表示する(ステップS8064)。主制御MPU1311は、設定表示条件を満たさないと判定した場合(ステップS8062:No)、ステップS8062の処理を再度実行する。
主制御MPU1311は、ステップS8064の処理に続いて、設定キー971が操作されており、その出力がオフであるかを判定する(ステップS8071)。主制御MPU1311は、設定キー971の出力がオンであると判定した場合(ステップS8071:No)、例えば所定時間経過後に、再度ステップS8071の判定を実行する。主制御MPU1311は、設定キー971の出力がオフであると判定した場合(ステップS8071:Yes)、設定値を非表示にし(ステップS8075)、設定確認処理を終了する。つまり、RAMクリアボタンを押下することなく、設定キー971をオン状態にして電源を立ち上げた場合に設定確認状態に移行する。
なお、特別図柄変動中にパチンコ機1の電源をオフにした場合、主制御基板1310が管理する保留記憶数や当該特別図柄における残り変動時間等は、そのまま記憶される。その後、次回の電源投入時に設定確認処理が行われた場合(設定キー971がオン状態とされた状態で電源を立ち上げたとき)、設定確認処理終了後(電源をオフ状態にすることなく設定キー971を初期位置に戻した後)に当該特別図柄変動が再開する。このとき、例えば、当該特別図柄変動とともに実行されていた演出(表示装置を用いた演出、ランプを用いた演出、スピーカを用いた音演出、及び可動体を用いた演出等)は、当該特別図柄変動の再開後は一切行われない。
また、特別図柄変動中にパチンコ機1の電源をオフにして、次回の電源投入時に設定確認処理が行われた場合において、設定確認処理終了後の当該特別図柄変動の再開時に、当該特別図柄変動とともに実行されていた演出を再開してもよい。例えば、中断されていた、表示装置、ランプ、及びスピーカを用いた演出を再開する。また、可動体を用いた演出については、例えば、当該特別図柄変動の再開後又は電源投入時に当該可動体を初期位置に戻した後に、当該演出の演出パターンにおいて可動体を動作させることが定められている場合、当該演出パターンに従って可動体を動作させる。
つまり、可動体が初期位置ではないときに設定確認状態に移行した場合は、電源立ち上げ時又は設定確認処理が終了したときに一度初期位置に戻し、その後、特別図柄変動の変動パターンに基づいて決定された演出の中に可動体を動作(移動)させる演出が含まれているのであれば、可動体を動作(移動)させてもよい。なお、可動体が動作(移動)しているときに設定確認状態に移行した場合は、当該動作(移動)の動作パターンは実行されないものとしてもよいし、当該可動体を一度初期位置に戻してからでも動作可能なパターンであれば可動体を動作させてよい。
また、特別図柄変動中にパチンコ機1の電源をオフにして、次回の電源投入時に設定確認処理が行われた場合において、設定確認処理終了後の当該特別図柄変動の再開時に、当該特別図柄変動とともに実行されていた演出のうち表示装置を用いた演出、ランプを用いた演出、及びスピーカを用いた音演出を再開し、当該特別図柄変動の再開後又は電源投入時に当該可動体を初期位置に戻し、可動体を用いた演出については行わなくてもよい。
また、特別図柄変動中にパチンコ機1の電源をオフにして、次回の電源投入時に設定確認処理が行われた場合において、設定確認処理終了後の当該特別図柄変動の再開時に、メイン液晶表示装置1600に表示されていた装飾図柄の変動を再開(もともと行う予定の演出を再開)するようにしてもよいし、装飾図柄の変動において図柄確定時まで(又は図柄確定時の直前の揺れ変動時まで)装飾図柄を透明にした高速変動を行うようにしてもよいし、図柄確定時まで(又は図柄確定時の直前の揺れ変動時まで)装飾図柄を非表示にしてもよい。また、図柄確定時においては、例えば、電源をオフにする前に予定されていた装飾図柄の組み合わせをメイン液晶表示装置1600に表示する。また、この場合において、再開後の当該特別図柄変動の終了時に、所定の装飾図柄の組み合わせ、初期電源投入時に表示される装飾図柄の組み合わせ、又は通常の特別図柄変動時には表示されない特殊な装飾図柄の組み合わせ(例えば、「×××」等)を、メイン液晶表示装置1600に表示してもよい。
なお、特別図柄変動中にパチンコ機1の電源をオフにして、次回の電源投入時に設定確認処理が行われ、設定確認処理が終了して通常状態に復帰するときに、設定キー971がオフ状態の電源投入時(つまり、通常に電源を立ち上げたとき)と同様の初期動作(例えば、可動体の所定の動作や、LEDの所定の発光などを確認等の動作)が行われてもよい(この初期動作を行ってから上述した演出等を再開させるようにしてもよい)。
また、特別図柄変動中に先読み演出が行われているときにパチンコ機1の電源をオフにして、次回の電源投入時に設定確認処理が行われた場合、例えば、設定確認処理終了後の当該特別図柄変動の再開時に、当該先読み演出、及び電源をオフにする直前に保留されていた特別図柄変動についての先読み演出を実行しない(具体的には、例えば、電源をオフ状態にする前に行われていた特別図柄の変動中に表示していた特別なゾーン(例えば、大当たりの期待が高いことを複数の変動に跨って遊技者に見せる特別なステージで、後述するライバル馬演出から競馬演出へと発展するゾーン(競馬演出は、それ自体の期待度が高めに(例えば後述する台詞演出よりも相対的に期待が高めに)設定されている特別なゾーン))待機中の表示や、当該特別なゾーン中の表示演出を消去したり、保留表示の態様が例えば通常の白色ではなく青色であった場合、通常の白色に戻したりする)。但し、設定確認処理終了後の入賞に対応する特別図柄変動については先読み演出を実行してもよい。
また、特別図柄変動中に先読み演出が行われているときにパチンコ機1の電源をオフにして、次回の電源投入時に設定確認処理が行われた場合、例えば、設定確認処理終了後の当該特別図柄変動の再開時に、当該特別図柄変動中における先読み演出は中止(具体的には、例えば、電源をオフ状態にする前に行われていた特別図柄の変動中に表示していた当該特別なゾーン待機中の表示や、当該特別なゾーン中の表示演出を消去したり、保留表示の態様が例えば通常の白色ではなく青色であった場合、通常の白色に戻したりする)されるが、次の特別図柄変動から先読み演出が再開されてもよい(消去した表示を元に戻したり、変動開始時に先読み演出を昇格させる演出パターンであった場合には昇格後の表示態様にて復帰させたりしてもよい)。この場合、次の特別図柄変動から実行される先読み演出は、例えば、当該特別図柄変動中における先読み演出は中止されなかったものとして再開される。つまり、パチンコ機1の電源をオフにする前に、当該次の特別図柄変動以降において実行される予定だった先読み演出を実行する。また、新たな先読み演出のパターンを設定して、当該次の特別図柄変動から当該新たな先読みパターンの演出が実行されてもよい。
[12-14.設定示唆演出の別例]
以下、設定示唆演出の実行が制限される処理の一例について説明する。なお、以下の説明において、通常時における設定1~設定6の大当り確率が、それぞれ1/240、1/230、1/220、1/210、1/200、1/190であるものとし、確変時における設定1~設定6の大当り確率が、それぞれ1/48、1/46、1/44、1/42、1/40、1/38であるものとする。また、大当り当選時の確変割合が50%であるものとする。
[12-14-1.変動パターンテーブル]
図160は、変動パターンテーブルの別例である。変動パターンテーブルは、例えば、主制御基板1310のROM1313に格納されている。図142等の説明においては、特別抽選結果の当落種別ごとに変動パターンテーブルが存在する例を説明したが、図160の例では、1つの変動パターンテーブルで特別抽選結果の当落種別ごとの変動パターンが定義されている。また、図160の例では、全設定において共通の変動パターンテーブルが使用されるものとする。
図160の変動パターンテーブルは、特別抽選結果の当落種別と、変動パターンの識別子と、当該変動パターンの演出の概要と、選択率と、の対応を示す。上述したように図160の例では、各特別抽選結果の変動パターンの情報が、1つの変動パターンテーブルに格納されている。従って、主制御MPU1311は、入賞に対応する当落種別に対応する変動パターンを、変動パターンテーブルが示す選択率に従って選択する。なお、図144の例のように、変動パターンテーブル内に各変動パターンの変動時間が定義されていてもよい。
なお、概要欄に記載されているムービーリーチとは、特別抽選の結果が大当りである場合に選択される割合が高く、特別抽選の結果が外れである場合に選択される割合が極めて低いリーチ演出である。つまり、ムービーリーチが実行される変動の大当り期待度は高い。また、ムービーリーチ発生時には所定のムービーがメイン液晶表示装置1600に表示される。
また、概要欄に記載されている、当落種別が「はずれ」である場合の「+1図柄」とは、装飾図柄がリーチ状態で停止した後、最後まで変動している装飾図柄が、リーチ状態の装飾図柄を1つ通り過ぎて停止することを示す。具体的には、例えば、装飾図柄「7」でリーチ状態になった後に、最後まで変動していた装飾図柄が「8」で停止する。当落種別が「大当り」である場合の「+1図柄」とは、装飾図柄がリーチ状態で停止した後、最後まで変動している装飾図柄が、リーチ状態の装飾図柄を1つ通り過ぎて一旦停止したように見せかけた後に、当該装飾図柄がリーチ状態の装飾図柄と同一の図柄として停止する。具体的には、例えば、装飾図柄「7」でリーチ状態になった後に、最後まで変動していた装飾図柄が「8」で一旦停止したように見せかけ、その後当該装飾図柄が「7」で停止し、大当りを報知する。
なお、図161の例における概要欄において、「+1図柄」は当落種別が大当りのうち「大当たり(非確変)」の場合のみ選択されるようになっているが、「大当たり(確変)」の場合のみ選択されてもよいし、「大当り(非確変)」及び「大当たり(確変)」の場合に選択されてもよい。また、「+1図柄」は当落種別が「はずれ」である場合のみ選択されてもよい。
また、概要欄に記載されている「+擬似1」及び「+擬似2」は、それぞれ2連の擬似連続演出、及び3連の擬似連続演出が実行されることを示す。擬似連続演出とは、装飾図柄の変動を行い装飾図柄の変動を終了させる動作を、第一特別図柄表示器又は第二特別図柄表示器の一回の変動中に、複数回実行する演出である。「装飾図柄の変動を終了させる」とは、例えば、装飾図柄の一部または全部を停止表示させる態様、装飾図柄の変動が一旦終了したように遊技者に認識させるような態様、及び装飾図柄の一部に擬似連図柄(この図柄が停止すれば擬似連が確定する図柄)が停止する態様、などである。なお、当該動作がN回(Nは1以上の自然数)行われる擬似連続演出をN連の擬似連続演出と呼び、N連の擬似連続演出におけるM回目の装飾図柄の変動(Mは1以上N以下の自然数)をM連目の擬似連続演出と呼ぶ。また、第一特別図柄表示器又は第二特別図柄表示器の一回の変動中に、当該動作を再度実行する可能性があることを遊技者に示唆しつつ、実際には当該動作を再度実行しない演出を、「擬似ガセ演出」と呼ぶ。また、以下、擬似連続演出のことを単に「擬似連演出」とも呼ぶ。
擬似連演出が発生又は継続する、即ち、装飾図柄の変動を行い装飾図柄の変動を終了させる動作を、第一特別図柄表示器又は第二特別図柄表示器の一回の変動中に、再度実行することが確定している場合に、周辺制御MPUは、左装飾図柄、中装飾図柄、及び右装飾図柄の少なくとも1つに擬似連図柄を停止させてもよい。以下の例では、周辺制御MPUは、「続く!」のような文字を擬似連図柄として中装飾図柄に停止させる。なお、例えば、特定の装飾図柄の組み合わせ(例えば、左装飾図柄、中装飾図柄、右装飾図柄の全てが奇数又は偶数かつリーチ非発生)を擬似連図柄としてもよい。なお、擬似ガセ演出は、例えば、演出の概要が「通常変動」等のときに実行され得る。また、例えば、「+擬似1」が実行される変動パターンであっても、「+擬似2」における3連目の擬似連の発生を示唆する擬似ガセ演出を実行するようにしてもよい。
[12-14-2.最終保留色テーブル]
図161は、最終保留色テーブルの一例である。最終保留色テーブルは、例えば、周辺主制御ROMに格納されている。最終保留色テーブルは、例えば、変動パターン(特別抽選結果の当落種別、変動パターンの識別子、及び当該変動パターンの演出の概要)ごとの当該変動終了時の保留表示の表示色(以下、最終保留色とも呼ぶ)の選択率と、を保持する。
なお、メイン液晶表示装置1600は、保留中の第一特別乱数及び第二特別乱数の数を示す保留表示領域を含む。図142のステップS116の始動口入賞時処理では、第一特別乱数及び第二特別乱数の保留数を指定する保留数指定コマンドが周辺制御基板1510に対して送信される。周辺制御MPUは、保留数指定コマンドが示す保留数を示す表示を、保留表示領域に行う。
具体的には、第一始動口2002又は第二始動口2004に遊技球が入賞(始動条件が成立)したときには、保留数指定コマンドから特定される保留数(保留記憶数)が増加することで、保留表示領域に1つの保留表示を追加して表示する。一方、保留表示に基づいた装飾図柄の変動表示(特別図柄の変動表示)を開始(開始条件が成立)するときには、保留数指定コマンドから特定される保留数(保留記憶数)が減少することで、保留表示領域における当該保留表示を消去する。
なお、保留表示には複数の表示態様が存在してもよい。例えば、当該複数の表示態様として、複数の色(白、青、緑、赤、虹)による保留表示の表示態様が存在する。以下、保留表示の色が白、青、緑、赤、虹の順で、当該保留表示に対応する特別抽選結果の大当り期待度が高くなるものとする。特に図161の例では、虹色の保留表示は特別抽選の結果が大当りである場合にのみに選択される。
つまり、周辺制御MPUは、選択された変動パターンに対応する最終保留色を、最終保留色テーブルが示す選択率に従って選択する。また、周辺制御MPUは、例えば、保留表示領域に保留表示を表示してから当該保留表示が消去されるまでの表示期間中に、保留表示の表示態様を変化させることで、当該保留表示に対応する装飾図柄の変動表示(特別図柄の変動表示)に対する大当り期待度を示唆する保留予告演出を実行可能としている。
また、本実施例において、保留表示の表示期間中において、保留表示の表示態様が変化する可能性を示唆する保留変化演出を実行可能としている。なお、保留表示の表示期間中かつ当該保留に対応する変動開始前、における保留変化演出及び保留予告演出を保留先読み演出とも呼ぶ。
例えば、周辺制御ROMは、保留表示の表示態様の変化タイミングを定義する保留予告テーブル(図示しない)を保持する。具体的には、例えば、保留予告テーブルは、保留表示の表示態様の変化タイミングと、入賞時及び各変化タイミングにおける保留表示の表示態様(表示色)と、を最終保留色ごとに定義する。入賞時以降かつ当該入賞に対応する特別図柄変動以前の特別図柄変動の開始時、変動中、及び終了時等は、当該変化タイミングの一例である。
なお、各変化タイミングにおける保留表示の表示態様は、最終保留色の大当り期待度以下の大当り期待度を有する保留色であることが望ましい。また、各変化タイミングにおいて保留表示が示す大当り期待度が降格しないことが望ましい(例えば、青色の保留表示が白色の保留表示に変化しないことが望ましい)。なお、入賞時の保留記憶数ごとに異なる保留予告テーブルが存在してもよい。
なお、例えば、当該保留表示以前に保留された特別図柄変動の開始時は、上述した保留表示の表示態様の変化タイミングの一例であるまた、例えば、当該保留表示に対応する特別図柄変動中にも、保留表示の表示態様の変化タイミングが設けられていてもよい。
なお、保留先読み演出を含む先読み演出は、図142のステップS116の始動口入賞時処理において行われる事前判定処理において、主制御MPU1311から周辺制御基板1510へ送信される事前判定コマンドに基づいて実行される。
以下、第一特別図柄についての始動口入賞処理における事前判定処理について説明する。なお、第二特別図柄についての始動口入賞処理における事前判定処理についても同様であるため、ここでは第一特別図柄についてのみ説明する。事前判定処理において、主制御MPU1311は、事前判定テーブル(図示しない)と、特別乱数、図柄乱数、リーチ乱数、及び変動乱数とを比較することにより大当りとなるか否か、大当りとなる場合には大当りの種類、大当りとならない場合にはメイン液晶表示装置1600で実行される遊技演出としてリーチ演出を実行するか、実行する遊技演出の態様種別、を特定する。
そして、特定した事前判定情報(大当りとなるか否か、大当りとなる場合には大当りの種類、大当りとならない場合にはメイン液晶表示装置1600で実行される遊技演出としてリーチ演出を実行するか、実行する遊技演出の態様種別など)と、取得した特別乱数の種別(第一特別乱数)と、取得した特別乱数に対応して記憶される保留記憶数(保留数カウンタの値)と、に応じた事前判定コマンドをセットする。例えば、第一特別図柄に関する演出事前判定処理では、特定した事前判定情報と、第一特別乱数を取得したことと、第一保留記憶数と、に応じた第一特別図柄事前判定コマンドをセットする。
そして、主制御基板1310から周辺制御基板1510に事前判定コマンドが送信されることにより、始動入賞が発生した始動口に対応して記憶される保留記憶数に加え、発生した始動入賞に基づく特別図柄の変動表示の表示結果を大当りとするか否か、大当りとなる場合には大当りの種類、大当りとならない場合にはメイン液晶表示装置1600で実行される遊技演出としてリーチ演出を実行するか、実行する遊技演出の態様種別などの事前判定情報を、当該始動入賞に応じた変動表示を開始する以前に周辺制御基板1510に搭載される周辺制御IC1510aが把握できるようになる。
図162は、図160の変動パターンテーブルによって変動パターンが決定され、かつ図161の最終保留色テーブルによって最終保留色が決定された場合における、設定1の変動パターンごとの各最終保留色の出現率を示すテーブルの一例である。図163は、同様の場合における、設定3の変動パターンごとの各最終保留色の出現率を示すテーブルの一例である。図164は、同様の場合における、設定5の変動パターンごとの各最終保留色の出現率を示すテーブルの一例である。図162乃至図164によれば、高設定ほど上位の大当り期待度の保留表示の表示態様の出現率が高い。また、各色の大当り期待度は高設定ほど高い。なお、これらの出現率や期待度は、上述した各設定の大当り確率に基づいて算出されたものであり、最終保留色テーブルについては、全ての設定において図161の最終保留色テーブルが用いられているものとしている。
なお、周辺制御ROMは、設定ごとに異なる最終保留色テーブルを保持してもよい。この場合、例えば、同一の保留表示の表示態様において、高設定になるほど大当り期待度が高くなるように最終保留色の最終保留色テーブルの選択率が設定されている。これにより、例えば、赤色の保留表示に対応する特別図柄変動において大当りに当選した場合、さらに高設定への期待度も高くなるため、遊技者は高揚感を得ることができる。
また、例えば、最も多く選択される白色以外の保留表示の表示態様において、同一の保留表示の表示態様については、低設定になるほど大当り期待度が高くなるように最終保留色テーブルの最終保留色の選択率が設定されていてもよい(具体的には、例えば、保留表示の態様が赤色である場合の大当り期待度が、低設定である設定1では50%、高設定である設定6では30%になるように設定する)。これにより、例えば、赤色の保留表示に対応する特別図柄変動において大当りに当選しなかった場合であっても、高設定への期待度が高くなるため、遊技者の落胆を抑制、遊技の継続を促進することができる。
また、例えば、最も多く選択される白色以外の保留表示の表示態様において、同一の保留表示の表示態様については、全設定で大当り期待度が略共通になるように最終保留色テーブルの最終保留色の選択率が設定されていてもよい。これにより、例えば、最終保留色と特別抽選結果との組み合わせから設定を推定することが困難となり、遊技者は保留表示の表示態様から特別抽選結果に対する期待感のみに集中することができる。また、例えば、赤色の表示態様に対応する特別図柄変動において大当りに当選しなかった場合に、低設定の可能性が高くなるという事態が発生しないようにすることができる。
[12-14-3.予告演出テーブル]
図165は、予告演出テーブルの一例である。予告演出テーブルは、例えば周辺制御ROMに格納されている。予告演出テーブルは、例えば、変動パターン(特別抽選結果の当落種別、変動パターンの識別子、及び当該変動パターンの演出の概要で特定される)ごとの予告演出の選択率を保持する。
図165の例では、予告演出として、台詞演出、天候変化演出、及びライバル馬演出がある。台詞演出は、例えば、当該変動において所定のキャラクタがメイン液晶表示装置1600に表示され、台詞を言う演出である。天候変化演出は、例えば、当該変動において、メイン液晶表示装置1600上に表示された装飾図柄の背景における天候が変化する演出である。ライバル馬演出は、当該変動において、メイン液晶表示装置1600に主人公キャラクタが育てる馬のライバル馬が出現する演出である。
なお、予告演出を用いた設定示唆演出の実行が可能であり、予告演出テーブルには、設定示唆演出の実行有無別の各予告演出の選択率が格納されている。図165の例における「set無し」は設定示唆演出が実行されないことを示し、「set有」は設定示唆演出が実行されることを示す。周辺制御MPUは、変動パターンと予告演出テーブルの選択率とに基づいて、実行する予告演出を決定する。
なお、予告演出テーブルの各変動パターンにおける各予告演出において、設定示唆演出有りの選択率より、設定示唆演出無しの選択率の方が十分に高いことが望ましい。設定示唆演出有りの選択率が高いと、設定示唆演出が頻繁に発生する。この状態で高設定を示唆する設定示唆演出の発生頻度が低い場合には、遊技者は短時間で遊技を中止してしまう可能性が高いからである。つまり、低設定であるパチンコ機1の稼働率が著しく低下してしまい、ホールに過大な負担を強いるおそれがある。逆に、例えば、高設定を示唆する設定示唆演出の発生頻度が高い場合には、ホール内の他のパチンコ機1の設定が低いと推測する遊技者が増えて当該他のパチンコ機1の稼働率が低下してしまい、ホールに過大な負担を強いるおそれがある。
なお、擬似連回数が多くなるほど大当り期待度が向上するよう、変動パターンテーブルにおける変動パターンの選択率が決定されているが、例えば、設定示唆演出の出現率は擬似連回数によって概ね変化しないように、予告演出テーブルにおける設定示唆演出の実行有無の選択率が決定されている。つまり、例えば、概要が「SPリーチ」、「SPリーチ+擬似1」、「SPリーチ+擬似2」である変動パターンについて、設定示唆演出の出現率が略同一となるように、擬設定示唆演出の実行有無の選択率が決定されている。これにより、擬似連回数が少ない変動パターンについては、大当り期待度は低いものの、設定示唆演出の発生率は擬似連回数が多い変動パターンと比較しても低くないため、遊技者は擬似連回数が少ない変動パターンの変動についても興味を抱くことができる。
また、擬似連回数が多くなるほど、設定示唆演出の出現率が高くなるように、予告演出テーブルにおける設定示唆演出の実行有無の選択率が決定されていてもよいし、擬似連回数が少なくなるほど、設定示唆演出の出現率が高くなるように、予告演出テーブルにおける設定示唆演出の実行有無の選択率が決定されていてもよい。なお、擬似連回数が少なくなるほど設定示唆演出の出現率を高くした場合には上述した課題が発生するおそれがあるため、擬似連回数が少なくなるほど設定示唆演出の出現率を高くした場合であっても、ほぼ同等の数値として設定するほうが望ましい(具体的には、例えば、はずれ時における変動パターン5選択時の台詞演出のset有りは15/256、変動パターン6選択時の台詞演出のset有りは16/256、のように設定する)。
また、大当り期待度の高い変動パターン(又は大当たり期待度の高い変動パターンではないものの、現出された演出の期待度合いが相対的に高い演出(例えば、大当り期待度が所定値以上である演出))ほど、設定示唆演出の出現率が高くなるように、予告演出テーブルにおける設定示唆演出の実行有無の選択率が決定されていてもよい。具体的には、例えば、「通常変動」、「ノーマルリーチ」を含む変動、「SPリーチ」を含む変動、「ムービーリーチ」を含む変動の順で、設定示唆演出の出現率が高くなるように、予告演出テーブルにおける設定示唆演出の実行有無の選択率が決定されていてもよい。
また、図165の例では、全ての予告演出(台詞演出、天候変化演出、及びライバル馬演出)において、設定示唆演出が発生する可能性があるが、例えば、設定示唆演出が発生しない予告演出が存在してもよい。
また、変動パターンの概要が同一であれば、特別抽選結果が確変ありの大当りである場合より、特別抽選結果が確変無しの大当りである方が、設定示唆演出の出現率が高くなるように、予告演出テーブルにおける設定示唆演出の実行有無の選択率が決定されていてもよい。これにより、確変無しの大当りに当選した場合において設定示唆演出の出現率が高くなり、確変が付与されなかったことに対する遊技者の落胆を軽減することができる。なお、上述の例において、台詞演出、天候変化演出、及びライバル馬演出の3種類の予告演出について説明したが、3種類に限らないことは言うまでもない。
[12-14-4.台詞演出]
以下、予告演出のうち、台詞演出の詳細について説明する。周辺制御MPUは、予告演出として設定示唆演出無しの台詞演出を選択した場合、例えば、当該変動の開始から所定時間経過後(例えば2秒後)に、メイン液晶表示装置1600にキャラAを出現させ、キャラAの台詞として「今日、何日だっけ?」と表示する。そして、周辺制御MPUは、例えば、キャラAの台詞表示から所定時間後(例えば3秒後)に、メイン液晶表示装置1600にキャラBを出現させ、キャラBの台詞として「さあ・・・・」と表示する。なお、例えば、キャラA及びキャラBの台詞は当該変動の大当り期待度を示唆するものであってもよい。
一方、周辺制御MPUは、予告演出として設定示唆演出有りの台詞演出を選択した場合、後述する台詞演出テーブルからキャラBの台詞(設定を示唆する台詞)を選択する。周辺制御MPUは、例えば、当該変動の開始から所定時間経過後(例えば2秒後、つまり上述の設定示唆演出無しの場合のキャラAが出現するタイミングと同じタイミング)に、メイン液晶表示装置1600にキャラAを出現させ、キャラAの台詞として「今日、何日だっけ?」と表示する。周辺制御MPUは、例えば、キャラAの台詞表示から所定時間後(例えば3秒後)に、メイン液晶表示装置1600にキャラBを出現させ、選択したキャラBの台詞を表示する。なお、キャラAの台詞は、例えば、「今日のこの台の設定って知ってる?」のような設定値を直接表現する台詞であってもよい。
図166は、台詞演出テーブルの一例である。台詞演出テーブルは、例えば周辺制御ROMに格納されている。台詞演出テーブルは、台詞演出の演出種別及びキャラBの台詞の内容の選択率、を設定ごとに保持する。なお、演出種別は、「途中まで一緒のパターン」と「いきなり分岐するパターン」とを含み、当該2つのパターンそれぞれに対して「かもね系」の台詞と「確定系」の台詞とが存在する。
「途中まで一緒のパターン」に属する各台詞は、途中まで同一の台詞を含み、その後異なる台詞へと分岐する。図166の例では、「途中まで一緒のパターン」に属する台詞は、全て「さあ・・・」で始まり、その後異なる台詞へと分岐する。一方、「いきなり分岐するパターン」に属する台詞は、始めから異なる台詞へと分岐する。なお、「途中まで一緒のパターン」に属する台詞の選択率の方が、「いきなり分岐するパターン」に属する台詞の選択率より高いほうが望ましい。期待感を引っ張るためである。
「かもね系」に属する台詞は、現在の設定を示唆するものの、設定を確定的には告知しない台詞である。例えば、「でも、偶数の日だったような気がする・・・」は、偶数設定を示唆する「かもね系」の台詞である。「でも、偶数の日だったような気がする・・・」は「かもね」系の台詞であるため、奇数設定でも出現する可能性があるように選択率が決定されている。但し、奇数設定での当該台詞の選択率は、偶数設定での当該台詞の選択率より十分に低いものとする。他の「かもね系」の台詞についても同様に、台詞が示唆する設定における当該台詞の選択率は、他の設定における当該台詞の選択率より十分に高いものとする。
一方「確定系」に属する台詞は、設定を確定的に告知する台詞である。例えば、「あっ!思い出した!偶数の日だ!」は、偶数設定を確定的に告知する「確定系」の台詞である。従って、奇数設定における当該台詞の選択率は0であり、偶数設定においてのみ選択率が0を超える。
なお、「確定系」に属する台詞の選択率より、「かもね系」に属する台詞の選択率の方が高いことが望ましい。仮に「確定系」に属する台詞の選択率が高いとすると、遊技を開始してから短い時間で確定的に高設定を遊技者に報知する可能性が十分にあり、この場合、ホール内の他のパチンコ機1の設定がよくないと推測する遊技者が一定数存在するため、他の遊技機の稼働を低下させてしまうおそれがあるからである。
なお、SPリーチやムービーリーチなどの特定のリーチ演出を実行する場合の台詞演出や、擬似連を行う場合の台詞演出では、キャラクタBの設定示唆を行う台詞を赤文字(大当り期待示唆演出等における通常演出の台詞は白文字)で表示してもよい。これにより、遊技者にとって期待示唆演出の台詞と設定示唆演出の台詞とが区別しやすくなるため、遊技者に不自然さを感じさせることなく2種類の演出(設定示唆演出と期待示唆演出)共存させることができる。なお、期待示唆演出とは、当該特別図柄変動における大当り期待度が所定値であることを示す演出であり、具体的には、1回の変動内で大当たりに対する期待を示唆する予告演出や、複数の変動に跨って大当たりに対する期待を示唆する先読み演出を含む。
なお、周辺制御MPUは、天候変化演出やライバル馬演出についても、図示はしないが、台詞演出テーブルと同様の抽選テーブルによって設定示唆演出を決定するとよい。例えば、天候変化演出における設定示唆演出において、メイン液晶表示装置1600に雷雲が表示され、雷光によって「246?」等の数字が表示されたり(偶数設定を示唆する「かもね系」の演出)、ライバル馬演出における設定示唆演出において、主人公キャラクタが育てている馬とライバル馬による併せ馬演出がメイン液晶表示装置1600に表示され、例えばライバル馬のゼッケンに「135?」等の数字が表示されたりする(奇数設定を示唆する「かもね系」の演出)。
上述の例では台詞演出におけるキャラAの台詞として「今日、何日だっけ?」を表示するようにしたが、この台詞の他にも、キャラAが「先週のテスト何点だった?」、キャラBが「66点だよ!(設定6が確定する「確定系」)」や「55点だった気が・・(設定5を示唆する「かもね系」)」のように、一の演出(例えば台詞演出)に対して複数のバリエーションを設けるようにしてもよい。その場合に、A演出(例えば日付を聞く演出)よりもB演出(例えばテストの点数を聞く演出)のほうが設定示唆に対する信憑性を高めるようにするとよい。具体的には、例えば、A演出で「6が付いた日だった気が・・(かもね系)」といわれたときの設定6である期待度は30%に留まるものの、B演出で「66点だった気が・・(かもね系)」といわれたときの設定6である期待度は50%といったようにするとよい。
[12-14-5.予告演出テーブルの別例]
図167は予告演出テーブルの別例である。図167の例では、予告演出テーブル173は各変動パターンについての予告演出の選択率を保持する。図165の例と異なり、図167の予告演出テーブルは、設定示唆演出の実行有無についての情報を保持していない。つまり、周辺制御MPUは、図167の予告演出テーブルの変動パターンに対応する選択率に従って、予告演出の種類のみを選択する。
そして、周辺制御MPUは、変動パターンと、選択した予告演出の種類に基づいて、設定示唆演出を実行するか否かを決定する。図168(A)は、変動パターンの概要が「通常変動」であり、かつ予告演出として「台詞演出」が選択された場合の、設定示唆演出実行有無の振り分けを示す設定示唆演出テーブルの一例である。図168(B)は、変動パターンの概要が「ノーマルリーチ+1図柄」であり、かつ予告演出として「台詞演出」が選択された場合の、設定示唆演出実行有無の振り分けを示す設定示唆演出テーブルの一例である。図168のような、変動パターンと予告演出との全ての組み合わせについての設定示唆演出テーブルが、予め周辺制御ROMに格納されている。
なお、上述の例では、周辺制御MPUは、予告演出の内容を決定した後に設定示唆演出の実行有無を決定しているが、設定示唆演出の実行有無を決定してから予告演出の内容を決定してもよい。このような手法を用いることで、図165のようなテーブルよりもデータ量が多くなるものの、演出の出現率や信頼度を詳細に設定することができる。また、図165に示すテーブルと本別例で示す処理とを複合させてもよい。
[12-14-6.設定示唆演出の具体例]
図169は、設定示唆演出の概要の一例を示す説明図である。図169(A)、(B)、(C)の順に進行する演出は、台詞演出において、キャラBの台詞として「4か5か6が付く日だよ!」が選択された場合における設定示唆演出の概要である。
図169(A)において、特別図柄変動が開始する。図169(B)において、当該特別図柄変動の開始後に、メイン液晶表示装置1600にキャラBの台詞「4か5か6が付く日だよ!」が表示される。図169(C)において、特別図柄変動の終了時まで、当該台詞がメイン液晶表示装置1600に表示される。
図169(A)、(D)、(E)の順に進行する演出は、台詞演出において、キャラBの台詞として「6が付く日だよ!」が選択された場合における設定示唆演出の概要である。図169(A)、(D)、(E)の順に進行する演出において、設定示唆演出は特別図柄変動の開始時から開始しつつ、設定示唆演出において示唆される設定が特別図柄変動終了中に変更されている。具体的には、図169(D)において、当該特別図柄変動の開始後に、メイン液晶表示装置1600にキャラBの台詞「4か5か6が付く日だよ!」が表示される。図169(E)において、特別図柄変動の終了時に、キャラBの台詞「6が付く日だよ!」が表示される。つまり、キャラBの台詞が示唆する設定が昇格している。
具体的には、例えば、台詞演出テーブルにおける台詞(最終的に表示される台詞)それぞれについて、台詞変更のタイミングと各タイミングにおける台詞とを示す1以上のシナリオ、及び各シナリオの選択率が、設定ごとに定義されていてもよい。周辺制御MPUは、選択したシナリオに従って、台詞変更のタイミングにおいて当該タイミングにおける台詞を表示する。
なお、この場合、台詞演出テーブルは、示唆する設定が降格する可能性があるシナリオを保持しないことが望ましい。具体的には、例えば、台詞演出テーブルは、「4か5か6が付く日だよ!」という台詞の後に、「偶数の日だよ!」という台詞が表示されるシナリオを保持しないことが望ましい。
また、図169の例では、特別図柄変動において設定示唆演出のみが行われているが、他の演出(例えば大当り期待度を示唆する演出等)が並行して実行されてもよい。なお、特別図柄変動の終了時にキャラBの台詞が昇格する例を示したが、これに限らず、特別図柄変動の終了前に昇格させるようにしてもよい。なお、キャラBの台詞の前にキャラAが出現し、キャラAがキャラBに話しかける演出を行うが、図面では割愛している。
図170は、先読み演出としての設定示唆演出の概要の一例を示す説明図である。図170(A)において、特別図柄変動の保留がない状態での特別図柄変動中に、第一始動口2002に遊技球Bが入賞している。続いて、図170(B)において、第一始動口2002への遊技球Bの入賞直後に、メイン液晶表示装置1600にキャラBの台詞「4か5か6が付く日だよ!」が表示される。この場合、既に変動している特別図柄の残り時間が不定となるため、キャラAを表示することなくキャラBを即座に表示してもよいし、入賞から所定時間経過後にキャラBを表示してもよいし、キャラAを表示してからキャラBを表示するようにしてもよい。また、図170(B)において保留表示領域内の表示が示す保留数が1つ増えている。
続いて、図170(C)において、全ての装飾図柄が停止し、当該特別図柄変動が終了する。また、メイン液晶表示装置1600にキャラBの台詞「4か5か6が付く日だよ!」が表示されたままである。続いて、図170(D)において、当該入賞に対応する特別図柄変動が開始する。また、当該特別図柄変動の開始と同時に、メイン液晶表示装置1600に表示されるキャラBの台詞が「5か6が付く日だよ!」に変化する。つまり、キャラBの台詞が示す設定が昇格している。
続いて図170(E)において、全ての装飾図柄が停止し、当該入賞に対応する特別図柄変動が終了する。当該入賞に対応する特別図柄変動の終了時に、メイン液晶表示装置1600に表示されるキャラBの台詞が「6が付く日だよ!」に変化する。つまり、キャラBの台詞が示す設定が昇格している。
なお、例えば、周辺制御ROMは、キャラBの台詞及び台詞の変化タイミングを定義する台詞先読み演出テーブル(図示しない)を保持する。具体的には、例えば、台詞先読み演出テーブルは、キャラBの台詞の変化タイミングと、入賞時及び各変化タイミングにおけるキャラBの台詞と、を定義する。入賞時以降かつ当該入賞に対応する特別図柄変動以前の特別図柄変動の開始時、変動中、及び終了時等は、当該変化タイミングの一例である。なお、各変化タイミングにおいて台詞が示唆する設定が降格しないことが望ましい。なお、入賞時の保留記憶数ごとに異なる台詞先読み演出テーブルが存在してもよい。周辺制御MPUは、事前判定コマンドに基づいて先読み演出を実行すると決定した場合に、例えば、所定の割合で、台詞先読み演出テーブルを参照して台詞先読み演出を実行する。また、昇格する場合において図170では1段階ずつ昇格させている(「4か5か6が付く日だよ!」、「5か6が付く日だよ!」、「6が付く日だよ!」の順に昇格)が、一気に複数段階昇格させるようにしてもよい。具体的には、例えば、図170において、(D)の台詞を表示することなく(E)の台詞を表示してもよい。
なお、設定示唆演出は、上記した以外の特定の状況下で実行されてもよい。例えば、保留連の条件を満たした場合に、設定示唆演出が実行されてもよい。保留連とは、大当り遊技の終了までに保留された特別乱数によって次回の大当りが実現されることである。この場合、例えば、当該保留が行われた後、かつ当該大当り遊技終了前に、設定示唆演出が実行される。また、例えば、特定の変動パターンが所定回数連続した場合において、当該所定回数目の特別図柄変動において、設定示唆演出が実行されてもよい。
[12-15.設定示唆演出の制限]
以下、特定の条件下における設定示唆演出の制限について説明する。
[12-15-1.特殊状態以降時における設定示唆演出の制限]
まず、特殊状態以降時における設定示唆演出の制限について説明する。以下、設定確認モード中とエラー発生中は、いずれも特殊状態の一例である。なお、設定確認モードとは、設定確認処理において、設定表示条件を満たすと判定された場合(ステップS8062:Yes)に開始する、設定値を表示するためのモードである。
図171(A)は、設定確認モード時演出制限テーブルの一例である。図171(B)は、エラー発生時演出制限テーブルの一例である。設定確認モード時演出制限テーブル及びエラー発生時演出制限テーブルは、例えば、周辺制御ROMに格納されている。
[12-15-1-1.設定確認モード以降時における設定示唆演出の制限]
まず、設定確認モード時演出制限テーブルについて説明する。設定確認モード時演出制限テーブルは、設定示唆演出を実行すると決定された変動(以下、本章において設定示唆変動と呼ぶ)の実行中又は保留中に、設定確認モードが開始した場合における、当該変動の設定示唆演出を制限するか否かを示す制限フラグを格納する。
設定確認モード時演出制限テーブルは、設定示唆演出の開始前(つまり、設定示唆演出を行うと判定されたにも関わらず設定示唆にかかわる演出が実行(表示)されていないとき)に設定確認モードが開始した場合における制限フラグを格納するレコード1701と、設定示唆変動における設定示唆演出の開始後(つまり、設定示唆演出を行うと判定され設定示唆にかかわる演出が実行(表示)されたとき)に設定確認モードが開始した場合における制限フラグを格納するレコード1702と、を含む。
図159に示す設定確認処理が行われる場合には、設定確認モード開始時に遊技が停止しており、図156に示す設定確認処理が行われる場合には、設定確認モード中にも遊技が進行する。従って、設定確認モード時演出制限テーブルは、設定確認モード開始時に遊技が停止している場合における制限フラグを格納するカラム1703と、設定確認モード中にも遊技が進行する場合における制限フラグを格納するカラム1704と、を含む。
また、設定確認モード中にも遊技が進行する場合には、設定確認モード中に始動口に遊技球が入賞することにより、新たな設定示唆変動を保留する可能性がある。従って、カラム1704は、設定確認モード中の始動口への入賞に対応する新たな設定示唆変動における制限フラグを格納するカラム1705を含む。なお、設定確認モード時演出制限テーブル中の各制限フラグは、例えば、パチンコ機1の製造時又はホール等において、パチンコ機1に備え付けられた操作媒体(遊技者が操作できない操作媒体でも遊技者が操作できる操作媒体でも構わない)によって、設定可能である。なお、設定確認モード中に、始動口に遊技球が入球した場合に、当該入球に対しては抽選情報の取得及び賞球が実施されなくてもよい。但し、このような場合においても、既に保留されている特別図柄変動においては、設定確認モード中又は設定変更モード終了後に実行される。
設定確認モード開始時に遊技が停止する場合においては、フィールド1706及びフィールド1707の一方の値が1かつ他方の値が0であり、フィールド1708~1711の値が0であり、フィールド1712及びフィールド1713の一方の値が1かつ他方の値が0であり、フィールド1714~1717の値が0である。
また、設定確認モード中にも遊技が進行する場合においては、フィールド1706及びフィールド1707の値が0であり、フィールド1708及びフィールド1709の一方の値が1かつ他方の値が0であり、フィールド1710及びフィールド1711の一方の値が1かつ他方の値が0であり、フィールド1712及びフィールド1713の値が0であり、フィールド1714及びフィールド1715の一方の値が1かつ他方の値が0であり、フィールド1716又はフィールド1717の一方の値が1かつ他方の値が0である。
周辺制御MPUは、設定確認モード開始時演出制限テーブルやエラー発生時演出制限テーブルに定義された各状態における制限フラグに従って、設定示唆演出の制限パターンを実行する。以下、これらの制限パターンについて説明する。
(1)設定示唆演出の開始前に設定確認モードが開始し、かつ設定確認モード開始時に遊技が停止する場合について。
(1-1)遊技再開後に設定示唆演出を実行する(フィールド1706の値が1かつフィールド1707の値が0)。設定示唆演出が実行されることで、設定変更処理が実行される設定変更モードではなく設定確認モードが実行されたことを遊技者に知らせることができ、遊技の結果に影響がないという安心感を与えることができる。
(1-2)遊技再開後に設定示唆演出を実行しない(フィールド1706の値が0かつフィールド1707の値が1)。例えば、設定確認モード中に、設定確認中であることを示す音声や画像が各種スピーカ及びメイン液晶表示装置1600に出力される場合、このように設定示唆演出を実行しないことで、設定確認モード中でありながら高設定に変更されたかもしれないという期待感を、遊技者に提供することができる。
(2)設定示唆演出の開始前に設定確認モードが開始し、かつ設定確認モード中にも遊技が進行する場合における、当該設定示唆変動の設定示唆演出について。
(2-1)設定示唆演出を実行する(フィールド1708の値が1かつフィールド1709の値が0)。設定確認モード中にも遊技が進行するため、稼働を落とすことがない。なお、設定確認モード中であることを示す音声及び画像が、各種スピーカ及びメイン液晶表示装置1600に出力される場合には、これらの音声及び画像を、設定示唆演出における音声及び画像に優先して出力する。このとき、遊技者に対して不快感を与えないために、設定示唆演出の一部又は全部が表示されるように、設定確認モード中であることを示す画像をメイン液晶表示装置1600に表示する。また、「設定示唆演出がいつ表示されたのか」、「高設定を示唆する設定示唆演出が表示されたかもしれない」、という期待感を遊技者に提供するために、設定示唆演出の全てを隠すようにして、設定確認モード中であることを示す画像をメイン液晶表示装置1600に表示してもよい。
(2-2)設定示唆演出を実行しない(フィールド1708の値が0かつフィールド1709の値が1)。例えば、設定値を遊技者が確認した場合において、設定示唆演出による設定示唆と実際の設定とが相違すると(例えば、設定値が1であるときに「高設定かも?」のような高設定を示唆する演出が発生すると)、遊技者が遊技機に対して不信感を抱く可能性があり、設定示唆演出を実行しないことにより、このような事態を回避することができる。
(2’)設定示唆演出の開始前に設定確認モードが開始し、かつ設定確認モード中にも遊技が進行する場合における、設定確認モード中の始動口への入賞に対応する新たな設定示唆変動の設定示唆演出について。
(2’-1)設定示唆演出を実行する(フィールド1710の値が1かつフィールド1711の値が0)。設定示唆演出が実行されることで、設定変更モードではなく設定確認モードが実行されたことを遊技者に知らせることができ、遊技の結果に影響がないという安心感を与えることができる。
(2’-2)設定示唆演出を実行しない(フィールド1710の値が0かつフィールド1711の値が1)。例えば、ホールが設定値に疑問を感じているために設定確認モードに移行させた場合には、その後設定値を変更する可能性がある。このような場合において当該設定示唆演出が実行されると、当該設定示唆演出と実際の設定とが異なる(例えば、当該設定示唆演出において偶数設定が確定する表示がされながら、異なる設定に変更された後の当該設定示唆演出において奇数設定が確定する表示がされる)可能性があるため、ホールと遊技者との間でトラブルが発生しかねない。設定示唆演出を実行しないことにより、このような事態の発生を回避することができる。
なお、上述した設定確認状態であること示す画像、音、及び光などについては、上述したフィールドの値に問わず現出させるようにしたほうが望ましい。また、設定確認状態に移行したら遊技を停止させる場合にも新たな入賞を有効とする場合も想定されるため、その場合には遊技を進行させる処理と同様の処理を行えばよい。
(3)設定示唆変動中かつ設定示唆演出の開始後(設定示唆演出を表示しているとき、及び設定示唆演出を表示し該設定示唆演出の表示を終了した後)に設定確認モードが開始し、かつ設定確認モード開始時に遊技が停止する場合について。
(3-1)遊技再開後に設定示唆演出を再開する(フィールド1712の値が1かつフィールド1713の値が0)。開始済みの設定示唆演出が中止されると、遊技者は設定が変更されたのではないかと不信感を抱いてしまう可能性があり、遊技再開後に設定示唆演出を再開することにより、このような事態の発生を回避することができる。
(3-2)遊技再開後に設定示唆演出を再開しない(フィールド1712の値が0かつフィールド1713の値が1)。例えば、設定確認モード中に、設定確認中であることを示す音声や画像が各種スピーカ及びメイン液晶表示装置1600に出力される場合、このように設定示唆演出を実行しないことで、設定確認モード中でありながら高設定に変更されたかもしれないという期待感を、遊技者に提供することができる。
(4)設定示唆変動中かつ設定示唆演出の開始後(設定示唆演出を表示しているとき、及び設定示唆演出を表示し該設定示唆演出の表示を終了した後)に設定確認モードが開始し、かつ設定確認モード中にも遊技が進行する場合における、当該設定示唆変動の設定示唆演出について。
(4-1)設定示唆演出を継続する(フィールド1714の値が1かつフィールド1715の値が0)。設定確認モード中にも遊技が進行するため、稼働を落とすことがない。なお、設定確認モード中であることを示す音声及び画像が、各種スピーカ及びメイン液晶表示装置1600に出力される場合には、これらの音声及び画像を、設定示唆演出における音声及び画像に優先して出力する。このとき、遊技者に対して不快感を与えないために、設定示唆演出の一部又は全部が表示されるように、設定確認モード中であることを示す画像をメイン液晶表示装置1600に表示する(設定示唆演出にかかる画像と設定確認モードを示す画像とが重ならない、又は設定示唆演出にかかる画像と「設定確認モード中」のように設定確認モードを示す文字とが重ならないように表示する)。なお、この表示等については、後述するエラー発生時でも同様の処理とすることができる。なお、ここでいう「重ならない」とは、実際にRAMに設定されている画像データではなく、遊技者からの見た目が重ならないことを示す。
また、「設定示唆演出がいつ表示されたのか」、「高設定を示唆する設定示唆演出が表示されたかもしれない」、という期待感を遊技者に提供するために、設定示唆演出の全てを隠すようにして、設定確認モード中であることを示す画像をメイン液晶表示装置1600に表示してもよい。
(4-2)設定示唆演出を中止する(フィールド1714の値が0かつフィールド1715の値が1)。例えば、設定値を遊技者が確認した場合において、設定示唆演出による設定示唆と実際の設定とが相違すると(例えば、設定値が1であるときに「高設定かも?」のような高設定を示唆する演出が発生すると)、遊技者が遊技機に対して不信感を抱く可能性があり、設定示唆演出を実行しないことにより、このような事態を回避することができる。
(4’)設定示唆変動中かつ設定示唆演出の開始後に設定確認モードが開始し、かつ設定確認モード中にも遊技が進行する場合における、設定確認モード中の始動口への入賞に対応する新たな設定示唆変動の設定示唆演出について。
(4’-1)設定示唆演出を実行する(フィールド1716の値が1かつフィールド1717の値が0)。設定示唆演出が実行されることで、設定変更モードではなく設定確認モードが実行されたことを遊技者に知らせることができ、遊技の結果に影響がないという安心感を与えることができる。
(4’-2)設定示唆演出を実行しない(フィールド1716の値が0かつフィールド1717の値が1)。例えば、ホールが設定値に疑問を感じているために設定確認モードに移行させた場合には、その後設定値を変更する可能性がある。このような場合において当該設定示唆演出が実行されると、当該設定示唆演出と実際の設定とが異なる(例えば、当該設定示唆演出において偶数設定が確定する表示がされながら、異なる設定に変更された後の設定示唆演出において奇数設定が確定する表示がされる)ため、ホールと遊技者との間でトラブルが発生しかねない。設定示唆演出を実行しないことにより、このような事態の発生を回避することができる。
なお、設定確認モードにおいても遊技が進行する場合において、設定確認モードが複数の変動に跨った場合、例えば、周辺制御MPUは、例えば、主制御MPU1311からの通知に基づいて、設定確認モード開始後の最初の図柄確定時又は次の変動開始時に、設定確認モードか否かの判定を行う。周辺制御MPUは、設定確認モードである判定した場合、新たに入賞した保留が設定示唆変動であれば当該保留に対応する変動とともに設定示唆演出を行う。設定示唆演出が実行されることで、設定変更処理が実行される設定変更モードではなく設定確認モードが実行されたことを遊技者に知らせることができ、遊技の結果に影響がないという安心感を与えることができる。
また、周辺制御MPUは、この場合に設定示唆演出を実行しないようにしてもよい。設定値を遊技者が確認した場合において、設定示唆演出による設定示唆と実際の設定とが相違すると(例えば、設定値が1であるときに「高設定かも?」のような高設定を示唆する演出が発生すると)、遊技者が遊技機に対して不信感を抱く可能性があり、設定示唆演出を実行しないことにより、このような事態を回避することができる。
このように、設定示唆演出を行う場合、及び設定示唆演出を行わない場合において、双方に効果が発揮されるため、設定示唆演出に対する演出制限等をホール等が設定可能にすることで、ホール等の営業スタイルのニーズに合わせた遊技機を提供することができる。
[12-15-1-2.エラー発生時における設定示唆演出の制限]
続いて、図171(B)を用いて、エラー発生時演出制限テーブルについて説明する。エラー発生時演出制限テーブルは、設定示唆演出を実行すると決定された変動(以下、本章において設定示唆変動と呼ぶ)の実行中又は保留中に、エラーが発生した場合における、当該変動の設定示唆演出を制限するか否かを示す制限フラグを格納する。
エラー発生時演出制限テーブルは、設定示唆演出の開始前にエラーが発生した場合における制限フラグを格納するレコード1801と、設定示唆変動の変動中かつ設定示唆変動における設定示唆演出の開始後にエラーが発生した場合における制限フラグを格納するレコード1802と、を含む。
なお、エラーには、遊技を停止させて報知される強エラーと、遊技が進行したまま報知される弱エラーと、がある。発射球センサ1020及び遊技領域5a内における不正な磁気を検知したエラーは、強エラーの一例である。満タンエラー(満タン検知センサ535からの検出信号に基づいてファールカバーユニット520内に貯留された遊技球で満タンであることを示すエラー)は、弱エラーの一例である。
従って、エラー発生時演出制限テーブル、遊技が停止して報知されるエラーに対応する制限フラグを格納するカラム1803と、遊技が進行したまま報知されるエラーに対応する制限フラグを格納するカラム1804と、を含む。
また、エラー発生中にも遊技が進行する場合には、エラー発生中に始動口に遊技球が入賞することにより、新たな設定示唆変動を保留する可能性がある。従って、カラム1804は、エラー発生中の始動口への入賞に対応する新たな設定示唆変動における制限フラグを格納するカラム1805を含む。
なお、エラー発生時演出制限テーブル中の制限フラグは、例えば、パチンコ機1の製造時又はホール等において、パチンコ機1に備え付けられた操作媒体(遊技者が操作できない操作媒体でも遊技者が操作できる操作媒体でも構わない)によって、設定可能である。
なお、エラー発生時演出制限テーブルにおいて、フィールド1806及びフィールド1807の一方の値が1かつ他方の値が0であり、フィールド1808及びフィールド1809の一方の値が1かつ他方の値が0であり、フィールド1810及びフィールド1811の一方の値が1かつ他方の値が0であり、フィールド1812及びフィールド1813の一方の値が1かつ他方の値が0であり、フィールド1814及びフィールド1815の一方の値が1かつ他方の値が0であり、フィールド1816及びフィールド1817の一方の値が1かつ他方の値が0である。
周辺制御MPUは、エラー発生時演出制限テーブルに定義された各ケースの制限フラグに従って、設定示唆演出の制限パターンを実行する。以下、これらの制限パターンについて説明する。
(1)設定示唆演出の開始前にエラーが開始し、かつ当該エラー発生時に遊技が停止する(強エラー)場合について。
(1-1)遊技再開後に設定示唆演出を実行する(フィールド1806の値が1かつフィールド1807の値が0)。設定示唆演出が実行されることで、ホール店員によってエラーが解除された際に設定が変更されていないことを遊技者に知らせることができ、遊技の結果に影響がないという安心感を与えることができる。
(1-2)遊技再開後に設定示唆演出を実行しない(フィールド1806の値が0かつフィールド1807の値が1)。これにより、エラーが発生した場合には、設定示唆演出が実行されなくなるという遊技者にとって不利となる事態が発生し得るため、遊技者はエラーを発生させないように遊技を進行させるようになり、遊技が円滑に進行し、かつホールの負担を軽減することができる。
(2)設定示唆演出の開始前にエラーが発生し、かつ当該エラー発生始後も遊技が進行する(弱エラー)場合における、当該設定示唆変動の設定示唆演出について。
(2-1)設定示唆演出を実行する(フィールド1808の値が1かつフィールド1809の値が0)。これにより、エラー発生中にも遊技が進行するため、遊技機の稼働を落とすことがない。また、エラー発生中にも設定示唆演出が発生するため、遊技者の興趣を向上させることができる。なお、エラー発生中であることを示す音声及び画像が、各種スピーカ及びメイン液晶表示装置1600に出力される場合には、これらの音声及び画像を、設定示唆演出における音声及び画像に優先して出力する。このとき、遊技者に対して不快感を与えないために、設定示唆演出の一部又は全部が表示されるように、エラー発生中であることを示す画像をメイン液晶表示装置1600に表示する。また、「設定示唆演出がいつ表示されたのか」、「高設定を示唆する設定示唆演出が表示されたかもしれない」、という期待感を遊技者に提供するために、設定示唆演出の全てを隠すようにして、エラー発生中であることを示す画像をメイン液晶表示装置1600に表示してもよい。
(2-2)設定示唆演出を実行しない(フィールド1808の値が0かつフィールド1809の値が1)。これにより、エラーが発生した場合には、設定示唆演出が実行されなくなるという遊技者にとって不利となる事態が発生し得るため、遊技者はエラーを発生させないように遊技を進行させるようになり、遊技が円滑に進行し、かつホールの負担を軽減することができる。
(2’)設定示唆演出の開始前にエラーが発生し、かつ当該エラー発生中も遊技が進行する(弱エラー)場合における、当該エラー発生中の始動口への入賞に対応する新たな設定示唆変動の設定示唆演出について。
(2’-1)設定示唆演出を実行する(フィールド1810の値が1かつフィールド1811の値が0)。これにより、エラー発生中にも遊技が進行するため、遊技機の稼働を落とすことがない。また、エラー発生中にも設定示唆演出が発生するため、遊技者の興趣を向上させることができる。
(2’-2)設定示唆演出を実行しない(フィールド1810の値が0かつフィールド1811の値が1)。これにより、エラー発生中の入賞については設定示唆演出が実行されないため、遊技者は遊技球の打ち出しを中止して、早期にエラー解除をするようになる。
(3)設定示唆変動中かつ設定示唆演出の開始後にエラーが発生し、かつ当該エラー発生時に遊技が停止する(強エラー)場合について。
(3-1)遊技再開後に設定示唆演出を再開する(フィールド1812の値が1かつフィールド1813の値が0)。開始済みの設定示唆演出が中止されると、遊技者は設定が変更されたのではないかと不信感を抱いてしまう可能性があり、遊技再開後に設定示唆演出を再開することにより、このような事態の発生を回避することができる。
(3-2)遊技再開後に設定示唆演出を再開しない(フィールド1812の値が0かつフィールド1813の値が1)。これにより、エラーが発生した場合には、設定示唆演出が中止されるという遊技者にとって不利となる事態が発生し得るため、遊技者はエラーを発生させないように遊技を進行させるようになり、遊技が円滑に進行し、かつホールの負担を軽減することができる。
(4)設定示唆変動中かつ設定示唆演出の開始後にエラーが発生し、かつ当該エラー発生中にも遊技が進行する(弱エラー)場合における、当該設定示唆変動の設定示唆演出について。
(4-1)設定示唆演出を継続する(フィールド1814の値が1かつフィールド1815の値が0)。これにより、エラー発生中にも遊技が進行するため、遊技機の稼働を落とすことがない。また、エラー発生中にも設定示唆演出が発生するため、遊技者の興趣を向上させることができる。なお、エラー発生中であることを示す音声及び画像が、各種スピーカ及びメイン液晶表示装置1600に出力される場合には、これらの音声及び画像を、設定示唆演出における音声及び画像に優先して出力する。このとき、遊技者に対して不快感を与えないために、設定示唆演出の一部又は全部が表示されるように、エラー発生中であることを示す画像をメイン液晶表示装置1600に表示する。また、「設定示唆演出がいつ表示されたのか」、「高設定を示唆する設定示唆演出が表示されたのか」、という期待感を遊技者に提供するために、設定示唆演出の全てを隠すようにして、エラー発生中であることを示す画像をメイン液晶表示装置1600に表示してもよい。
(4-2)設定示唆演出を中止する(フィールド1814の値が0かつフィールド1815の値が1)。これにより、エラーが発生した場合には、設定示唆演出が中止するという遊技者にとって不利となる事態が発生し得るため、遊技者はエラーを発生させないように遊技を進行させるようになり、遊技が円滑に進行し、かつホールの負担を軽減することができる。
(4’)設定示唆変動中かつ設定示唆演出の開始後にエラーが発生し、かつ当該エラー発生中も遊技が進行する(弱エラー)場合における、エラー発生中の始動口への入賞に対応する新たな設定示唆変動の設定示唆演出について。
(4’-1)設定示唆演出を実行する(フィールド1816の値が1かつフィールド1817の値が0)。これにより、エラー発生中にも遊技が進行するため、遊技機の稼働を落とすことがない。また、エラー発生中にも設定示唆演出が発生するため、遊技者の興趣を向上させることができる。
(4’-2)設定示唆演出を実行しない(フィールド1816の値が0かつフィールド1817の値が1)。これにより、エラー発生中の入賞については設定示唆演出が実行されないため、遊技者は遊技球の打ち出しを中止して、早期にエラー解除をするようになる。
このように、設定示唆演出を行う場合、及び設定示唆演出を行わない場合において、双方に効果が発揮されるため、設定示唆演出に対する演出制限等をホール等が設定可能にすることで、ホール等の営業スタイルのニーズに合わせた遊技機を提供することができる。
[12-15-2.新たな始動入賞における演出の制限]
以下、特別図柄変動中かつ新たな変動を保留可能な状態での新たな始動入賞、に対応する変動における演出の制限について説明する。図172は、新始動入賞演出制限テーブルの一例である。新始動入賞演出制限テーブルは、例えば、周辺制御ROMに格納されている。
新始動入賞演出制限テーブルは、例えば、条件欄と、参照処理テーブル欄と、フラグ欄と、を含む。条件欄の条件は、前変動の演出についての仮定と、当該仮定における新たな始動入賞における演出における演出制限と、によって定義されている。なお、本章における前変動とは、新たな始動入賞に対応する変動の直前の変動である。前変動の演出の条件として、当該変動に対応する特別抽選結果が大当りであるかの期待示唆演出のみが行われる場合と、期待示唆演出及び設定示唆演出が行われる場合と、がある。
また、新たな始動入賞における先読み演出の演出制限として、先読み演出における設定示唆演出のみを制限(つまり設定示唆演出を実行しない)、先読み演出における設定示唆演出と期待示唆演出の両方を制限(つまり設定示唆演出及び期待示唆演出を実行しない)、及び先読み演出における設定示唆演出及び期待示唆演出のいずれも制限しない(つまり設定示唆演出及び先読み演出を実行する)、がある。
参照処理テーブル欄は、対応する条件に含まれる、新たな始動入賞における先読み演出制限を実行する場合に参照する処理テーブルの識別子を格納する。フラグ欄は、どの条件を実行し、かつどの処理テーブルを用いて新たな始動入賞における先読み演出に対する処理を決定するかを示すフラグを格納する。
なお、処理テーブル1~3のいずれか1つに対応するフラグ欄に1が格納され、処理テーブル1~3の他の2つに対応するフラグ欄には0が格納される。また、処理テーブル4~6のいずれか1つに対応するフラグ欄に1が格納され、処理テーブル4~6の他の2つに対応するフラグ欄には0が格納される。新始動入賞演出制限テーブル中のフラグは、例えば、パチンコ機1の製造時又はホール等において、パチンコ機1に備え付けられた操作媒体(遊技者が操作できない操作媒体でも遊技者が操作できる操作媒体でも構わない)によって、設定可能である。
周辺制御MPUは、特別図柄変動中かつ新たな変動を保留可能な状態での新たな始動入賞があり、かつ前変動において期待示唆演出のみが実行されると判定した場合、新始動入賞演出制限テーブルの「前変動の演出」欄の値が「期待示唆のみ」に対応するフラグ欄であって、値として1を格納するフラグ欄、に対応する、条件欄が示す条件を実行する。さらに、周辺制御MPUは、当該フラグ欄に対応する処理テーブルを参照して、新たな始動入賞に対応する変動における先読み演出の内容を決定する。
同様に、周辺制御MPUは、特別図柄変動中かつ新たな変動を保留可能な状態での新たな始動入賞があり、かつ前変動において期待示唆演出及び設定示唆演出が実行される場合、新始動入賞演出制限テーブルの「前変動の演出」欄の値が「期待示唆+設定示唆」に対応するフラグ欄であって、値として1を格納するフラグ欄、に対応する処理テーブルを参照して、新たな始動入賞に対応する変動における先読み演出の内容を決定する。
以下、条件欄が示す各条件について説明する。第1の条件(処理テーブル1が選択される条件)は、前変動において期待示唆演出のみが実行される場合に、新たな始動入賞に対応する変動の先読み演出制限として、設定示唆演出のみが制限されることである。第1の条件において、前変動において期待示唆演出が行われるため、遊技者は大当りに対する期待による高揚感が高まっている。このような状態で当該新たな始動入賞に対応する変動の先読み演出として設定示唆演出が実行されると、遊技者の意識が当該設定示唆演出に対しても向けられることにより、前変動の演出における高揚感が低下するおそれがある。また、遊技者が当該設定示唆演出を当該期待示唆演出と混同して、遊技者をぬか喜びさせてしまうおそれがある。従って、第1の条件が実行されることにより、これらの事態の発生を抑制することができる。
また、第1の条件において、前変動において期待示唆演出が行われるが、この状態でさらに当該新たな始動入賞に対応する変動の先読み演出として設定示唆演出が実行された場合には、遊技者は、前変動ではずれることを想定した場合であっても、まだ当該新たな始動入賞に対応する変動にも期待ができるため、遊技者に安心感を提供することができる。
例えば、例えば図165の予告演出テーブルによって演出を選択する場合、周辺制御MPUは、当該テーブルによって演出を決定し、その後に設定示唆演出を制限することを示す条件欄のフラグが1であるか否か(制限するか否か)を判定し、1(制限する)であればset有りが選択されたとしてもset無しに書き換えて表示するような処理を行うことで、設定示唆演出の制限を実施する。つまり、周辺制御MPUは、演出を決定した後に、判定処理を実施することで、図165に示した予告演出テーブルを用いて、設定示唆演出の制限を実行することができる。即ち、パチンコ機1は演出の制限種別ごとの演出テーブルを保持する必要がないため、データ量を削減することができる。なお、後述する期待示唆演出も同様に、周辺制御MPUは、図161の最終保留色テーブルを用いて先読み保留表示が白以外を選択した場合であっても、期待示唆演出を制限した場合には選択した保留表示を白に書き換えて表示する。
第2の条件(処理テーブル2が選択される条件)は、前変動において期待示唆演出のみが実行される場合に、新たな始動入賞に対応する変動の先読み演出制限として、設定示唆演出及び期待示唆演出の双方を制限することである。第2の条件において、前変動において期待示唆演出が行われるため、遊技者は大当りに対する期待による高揚感が高まっている。このような状態で当該新たな始動入賞に対応する変動の先読み演出として、設定示唆演出及び期態度示唆演出が実行されると、遊技者の意識がこれらの演出に対しても向けられることにより、前変動の演出における高揚感が低下するおそれがある。従って、第2の条件が実行されることにより、これらの事態の発生を抑制することができる。
第3の条件(処理テーブル3が選択される条件)は、前変動において期待示唆演出のみが実行される場合に、新たな始動入賞に対応する変動の先読み演出制限として、設定示唆演出及び期待示唆演出のいずれも制限しないことである。第3の条件において、前変動において期待示唆演出が行われるため、遊技者は大当りに対する期待による高揚感が高まっている。このような状態で、当該新たな始動入賞に対応する変動の先読み演出として設定示唆演出が実行されることにより、大当りに対する高揚感に加え、設定示唆演出に対する高揚感(特に、高設定確定示唆演出又は高設定確定演出等が実行された場合)を遊技者に与えることができる。
第4の条件(処理テーブル4が選択される条件)は、前変動において期待示唆演出及び設定示唆演出が実行される場合に、新たな始動入賞に対応する変動の先読み演出制限として、設定示唆演出のみが制限されることである。第4の条件において、前変動において期待示唆演出及び設定示唆演出が行われるため、遊技者は前変動で大当りに当選するかもしれないという高揚感と、(特に高設定示唆演出又は高設定確定演出が実行された場合)設定示唆による高揚感と、を感じている。このような状態で、当該新たな始動入賞に対応する変動の先読み演出として設定示唆演出が実行されると、前変動の保留における大当りに対する期待への高揚感が低下する事態が発生するおそれがある。
具体的には、例えば、前変動の設定示唆演出において設定4以上が確定し、当該新たな始動入賞に対応する変動の先読み演出としての設定示唆演出で設定5以上が確定する場合、前変動における設定示唆演出は不正確な情報を多く含んでいる(本来は設定5以上であるにも関わらず、設定4である可能性も示唆している)。このような場合には、遊技者は、前変動における設定示唆演出だけでなく期待示唆演出についても、不正確な情報を多く含んでいると推測する(具体的には、例えば、表示態様が赤色である保留についても大当り期待度が高くないと推測する)可能性があり、当該期待示唆演出に対する高揚感が低下するおそれがある。第4の条件が実行されることにより、このような事態の発生を抑制することができる。
第5の条件(処理テーブル5が選択される条件)は、前変動において期待示唆演出及び設定示唆演出が実行される場合に、新たな始動入賞に対応する変動の先読み演出制限として、設定示唆演出及び期待示唆演出の双方を制限することである。第5の条件において、前変動において期待示唆演出及び設定示唆演出が行われるため、当該新たな始動入賞に対応する先読み演出で設定示唆演出が行われると、短期間で複数回の設定示唆演出が行われることになり、遊技者が設定値を高精度に推測してしまうおそれがある(例えば、奇数設定示唆演出と高設定示唆演出が行われた場合、設定5である可能性が高い)。このような状態で遊技者に低設定だと判断された場合には、当該パチンコ機1での遊技を中止するおそれがあり、高設定だと判断された場合には、ホール内の他のパチンコ機1の稼働が低下するおそれがある。第5の条件が実行されることにより、このような事態の発生を抑制することができる。
また特に、前変動において期待示唆演出及び設定示唆演出が行われ、かつ新たな始動入賞に対応する変動でも先読み演出として期待示唆演出及び設定示唆演出が行われると、短期間に多くの演出が発生し、遊技者が混乱するおそれがある。第5の条件が実行されることにより、このような事態の発生を抑制することができる。
第6の条件(処理テーブル6が選択される条件)は、前変動において期待示唆演出及び設定示唆演出が実行される場合に、新たな始動入賞に対応する変動の先読み演出制限として、設定示唆演出及び期待示唆演出のいずれも制限しないことである。第6の条件において、前変動において期待示唆演出及び設定示唆演出が行われるため、遊技者は当該設定示唆演出で示唆された設定における、当該期待示唆演出の期待度を想定している。この状態で、当該新たな始動入賞に対応する変動において、設定示唆演出及び期待示唆演出が行われることにより、これら2つの期待示唆演出による期待度が挙がる可能性がある。
具体的には、例えば、前変動において設定4以上を示唆する設定示唆演出が実行され、かつ新たな始動入賞における先読み演出として設定5以上を示唆する設定示唆演出が実行された場合、遊技者は前変動における期待示唆演出について設定4以上における期待度を想定している。しかし、その後、新たな始動入賞における先読み演出としての設定示唆演出によって設定5以上が示唆されるため、当該期待示唆演出についての期待度が設定5以上の期待度を想定するようになり、遊技者の高揚感が増す。
このように、新たな始動入賞に対応する先読み演出制限内容それぞれについて、効果が発揮されるため、このような先読み演出制限内容をホール等が設定可能にすることで、ホール等の営業スタイルのニーズに合わせた遊技機を提供することができる。
以下、各処理テーブル、及び各処理テーブルを参照して実行される先読み演出について説明する。なお、各処理テーブルは、例えば、周辺制御ROMに格納されている。
図173は、処理テーブル1の一例である。まず、各処理テーブルについて共通の内容について説明する。各処理テーブルは、前変動の特別抽選結果における当選種別と、当該当選種別に対応する新たな始動入賞に係る処理内容と、当該処理内容の識別子である処理番号と、を格納する。
なお、各処理テーブルが保持する処理内容は、制限対象でない先読み演出についての処理内容が定義されている。具体的には、例えば、新たな始動入賞に対応する変動の先読み演出制限として、設定示唆演出のみを制限する場合に参照されるテーブルである処理テーブル1の処理内容には、期待示唆演出についての処理内容が定義されている。同様に、新たな始動入賞に対応する変動の先読み演出制限として、期待示唆演出及び設定示唆演出の双方を制限する場合に参照されるテーブルである処理テーブル3の処理内容には、期待示唆演出及び設定示唆演出についての処理内容が定義されている。
従って、周辺制御MPUは、新始動入賞演出制限テーブルのフラグに基づいて、新たな始動入賞における制限対象の先読み演出、及び参照する処理テーブルを決定し、当該処理テーブルに基づいて、制限対象ではない先読み演出に対する処理を決定する。
なお、後述する処理テーブル3及び処理テーブル6は、新たな始動入賞に係る処理内容を複数の処理内容から選択するためのフラグを格納する。なお、処理テーブル中のフラグは、例えば、パチンコ機1の製造時又はホール等において、パチンコ機1に備え付けられた操作媒体(遊技者が操作できない操作媒体でも遊技者が操作できる操作媒体でも構わない)によって、設定可能である。
以下、処理テーブル1が定義する新たな始動入賞に係る処理内容について説明する。処理テーブル1は、前変動において期待示唆演出のみが実行され、かつ新たな始動入賞に対応する変動の先読み演出制限として、設定示唆演出のみを制限する場合に参照されるテーブルである。以下、期待示唆を行う先読み演出として保留先読みが行われる例について記載する。
処理番号1の処理は、前変動の当選種別が時短ありの大当りである場合の、新たな始動入賞に係る処理である。処理番号1の処理において、周辺制御MPUは、新たな始動入賞の保留表示の態様が、大当り期待度が高い特定の態様(例えば、青、緑、赤等の保留表示態様)である場合、例えば、前変動で当選した大当りのオープニング画面の開始時に、新たな始動入賞の保留表示の態様をデフォルト(図161の最終保留色テーブルにおける白色の表示態様)に戻す。但し、大当りのオープニング画面の開始時に、保留表示領域において保留が表示されなくなる場合には、当該特定の態様の保留表示を、他の保留表示と同様に消去する。また、周辺制御MPUは、当該大当り終了後の時短移行時に、当該新たな始動入賞の保留表示の態様を、当該特定の表示態様に戻さない(即ちデフォルト表示のままにする)。なお、周辺制御MPUは、当該時短終了時に当該新たな入賞の保留が消化されていない場合であっても、当該新たな始動入賞の保留表示の態様を、当該特定の表示態様に戻さない(即ちデフォルト表示のままにする)。
処理番号2の処理は、前変動の当選種別が時短なしの大当りである場合の、新たな始動入賞に係る処理である。処理番号2の処理において、周辺制御MPUは、新たな始動入賞の保留表示の態様が、大当り期待度が高い特定の態様である場合、例えば、前変動で当選した大当りのオープニング画面の開始時に、新たな始動入賞の保留表示の態様をデフォルトに戻す。但し、大当りのオープニング画面の開始時に、保留表示領域において保留が表示されなくなる場合には、当該特定の態様の保留表示を、他の保留表示と同様に消去する。また、当該大当り遊技が終了した後に制御される通常状態移行時も、当該新たな始動入賞の保留表示の態様を、当該特定の表示態様に戻さない(即ちデフォルト表示のままにする)。
処理番号3の処理は、前変動の当選種別が小当りである場合の、新たな始動入賞に係る処理である。処理番号3の処理において、周辺制御MPUは、新たな始動入賞の保留表示の態様を変更しない(つまり、当該保留表示を継続、具体的には、例えば、青色の保留表示態様であれば、青色の保留表示態様を継続して表示する)。また、周辺制御MPUは、前変動で当選した小当りのオープニング画面の開始時に、新たな始動入賞の保留表示の態様をデフォルトに戻してもよい。但し、小当りのオープニング画面の開始時に、保留表示領域において保留が表示されなくなる場合には、当該特定の態様の保留表示を、他の保留表示と同様に消去する。
処理番号4の処理は、前変動の当選種別がはずれである場合の、新たな始動入賞に係る処理である。処理番号4の処理において、周辺制御MPUは、新たな始動入賞の保留表示の態様を変更しない(つまり、当該保留表示を継続、具体的には、例えば、青色の保留表示態様であれば、青色の保留表示態様を継続して表示する)。
図174は、処理テーブル2の一例である。処理テーブル2は、前変動において期待示唆演出のみが実行され、かつ新たな始動入賞に対応する変動の先読み演出制限として、設定示唆演出及び期待示唆演出の双方を制限する場合に参照されるテーブルである。処理テーブル2は、新たな始動入賞に対応する変動の先読み演出制限として、設定示唆演出及び期待示唆演出の双方を制限する場合に参照されるテーブルであるため、前変動の大当り種別に関わらず、新たな始動入賞に対応する変動における先読み演出に対して特別な処理が実行されないことが定義されている。
図175は、処理テーブル3の一例である。処理テーブル3は、前変動において期待示唆演出のみが実行され、かつ新たな始動入賞に対応する変動の先読み演出制限として、設定示唆演出及び期待示唆演出のいずれも制限しない場合に参照されるテーブルである。
処理番号5~6の処理は、前変動の当選種別が時短ありの大当りである場合の、新たな始動入賞に係る処理である。処理番号5~6の処理のうちの1つをフラグによって選択可能である。処理番号5~6の処理における、新たな始動入賞に対応する先読み演出としての期待示唆演出についての処理は、処理番号1の処理と同様である。
処理番号5の処理において、周辺制御MPUは、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出を実行する。当該新たな始動入賞に対応する変動の開始前とは、具体的には、例えば、前変動の変動中、前変動で当選した大当り遊技中、又は前変動で当選した大当りに付随する時短中の第二特別図柄の保留の消化中等である。処理番号5の処理により、前変動の開始前等に設定示唆演出が開始したことを遊技者が認識している場合に、設定示唆演出が行われることを遊技者が忘れないようにすることができる。
処理番号6の処理において、周辺制御MPUは、当該新たな始動入賞に対応する変動中に設定示唆演出を実行する。なお、前変動において時短付きの大当りに当選しているため、当該新たな入賞に対応する変動は当該時短の終了後に開始する可能性が高い(時短中には第二始動口2004に遊技球が高頻度で入賞し、かつ第一特別図柄変動及び第二特別図柄変動の保留がある場合には、第一特別図柄変動に優先して第二特別図柄変動が実行されるため)。従って、処理番号6の処理により、時短終了後に設定示唆演出が実行されるため、時短が終了してしまったことによる遊技者の落胆を軽減することができる。
処理番号7~8の処理は、前変動の当選種別が時短無しの大当りである場合の、新たな始動入賞に係る処理である。処理番号7~8の処理のうちの1つをフラグによって選択可能である。処理番号7~8の処理における、新たな始動入賞に対応する先読み演出としての期待示唆演出についての処理は、処理番号2の処理と同様である。
処理番号7の処理において、周辺制御MPUは、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出を実行する。当該新たな始動入賞に対応する変動の開始前とは、具体的には、例えば、前変動の変動中、前変動で当選した大当り遊技中等である。遊技者は、大当りに当選したものの時短に当選しなかったことに対して落胆を感じるものの、処理番号7の処理により、遅くとも大当り遊技中には設定示唆演出が開始する場合には、当該落胆を軽減した状態で大当り遊技を楽しむことができる。
処理番号8の処理において、周辺制御MPUは、当該新たな始動入賞に対応する変動中に設定示唆演出を実行する。処理番号8の処理により、大当り終了後にすぐに設定示唆演出が開始するため、時短が付与されなかったことに対する遊技者の落胆を軽減することができる。
処理番号9~10の処理は、前変動の当選種別が小当りである場合の、新たな始動入賞に係る処理である。処理番号9~10の処理のうちの1つをフラグによって選択可能である。処理番号9~10の処理における、新たな始動入賞に対応する先読み演出としての期待示唆演出についての処理は、処理番号3の処理と同様である。
処理番号9の処理において、周辺制御MPUは、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出を実行する。当該新たな始動入賞に対応する変動の開始前とは、具体的には、例えば、前変動の変動中、前変動で当選した小当りのオープニング中、又は当該小当り中等である。小当りでは、遊技者に対して小さな特典が付与されるだけであるため、遊技者は落胆する可能性があるが、処理番号9の処理により、早いタイミングで設定示唆演出が開始することで落胆を軽減することができる。
処理番号10の処理において、周辺制御MPUは、当該新たな始動入賞に対応する変動中に設定示唆演出を実行する。小当りに係る一連の消化時間は大当りに係る一連の消化時間よりも短いため、前変動の開始前等に設定示唆演出が開始したことを遊技者が認識している場合に、当該設定示唆演出を実行しないと遊技者は不信感を感じる可能性がある。処理番号10の処理により、遊技者に対してこのような不信感を与えないようにすることができる。
処理番号11~13の処理は、前変動の当選種別がはずれである場合の、新たな始動入賞に係る処理である。処理番号11~13の処理のうちの1つをフラグによって選択可能である。処理番号11~13の処理における、新たな始動入賞に対応する先読み演出としての期待示唆演出についての処理は、処理番号4の処理と同様である。
処理番号11の処理において、周辺制御MPUは、当該新たな始動入賞に対応する変動中に設定示唆演出を実行する。
処理番号12の処理において、周辺制御MPUは、前変動の保留先読み演出における保留表示の態様が大当たり期待度の高い特定の態様(例えば、緑又は赤)である場合に限って、当該新たな始動入賞に対応する変動中に、当該新たな始動入賞における先読み演出としての設定示唆演出を実行する。なお、当該設定示唆演出の実行タイミングについては、変更しない、即ち特別な処理を行わないが、設定示唆演出の実行タイミングを異なるように制御(例えば、キャラBによる設定を示唆する台詞が現出するタイミングを通常よりも所定秒数(例えば2秒)遅らせたり、所定秒数(例えば2秒)早めたりなど)してもよい。処理番号12の処理により、前変動において大当り期待度が高い保留表示の態様が出現したにも関わらずはずれたことに対する落胆を感じている遊技者に対して、このような落胆を軽減することができる。なお、図175及び後述する図178における、旧保留とは前変動に対応する保留であり、新保留とは当該新たな始動入賞に対応する保留である。
処理番号13の処理において、周辺制御MPUは、保留表示の態様が大当たり期待度の高い特定の態様(例えば、緑又は赤)である場合には、当該新たな始動入賞における先読み演出としての設定示唆演出を実行しない。処理番号13の処理により、前変動において大当り期待度が高い保留表示の態様が出現したにも関わらずはずれ、さらに当該新たな始動入賞に対応する変動でも先読み演出としての設定示唆演出も出現しないため、遊技者の遊技に対するのめりこみを抑止することができる。
図176は、処理テーブル4の一例である。処理テーブル4は、前変動において期待示唆演出及び設定示唆演出が実行され、かつ新たな始動入賞に対応する変動の先読み演出制限として、設定示唆演出のみが制限される場合に参照されるテーブルである。
処理番号14の処理は、前変動の当選種別が時短有りの大当りである場合の、新たな始動入賞に係る処理である。処理番号14の処理における、新たな始動入賞に対応する先読み演出としての期待示唆演出についての処理は、処理番号1の処理と同様である。
処理番号15の処理は、前変動の当選種別が時短無しの大当りである場合の、新たな始動入賞に係る処理である。処理番号15の処理における、新たな始動入賞に対応する先読み演出としての期待示唆演出についての処理は、処理番号2の処理と同様である。
処理番号16の処理は、前変動の当選種別が小当りである場合の、新たな始動入賞に係る処理である。処理番号16の処理における、新たな始動入賞に対応する先読み演出としての期待示唆演出についての処理は、処理番号3の処理と同様である。
処理番号17の処理は、前変動の当選種別がはずれである場合の、新たな始動入賞に係る処理である。処理番号16の処理における、新たな始動入賞に対応する先読み演出としての期待示唆演出についての処理は、処理番号4の処理と同様である。
なお、処理テーブル4は、新たな始動入賞に対応する変動の先読み演出制限として、設定示唆演出のみを制限する場合に参照されるテーブルであるため、前変動の大当り種別に関わらず、新たな始動入賞に対応する変動における設定示唆演出に対して特別な処理が実行されないことが定義されている。
図177は、処理テーブル5の一例である。処理テーブル5は、前変動において期待示唆演出及び設定示唆演出が実行され、かつ新たな始動入賞に対応する変動の先読み演出制限として、設定示唆演出及び期待示唆演出の双方が制限される場合に参照されるテーブルである。処理テーブル5は、新たな始動入賞に対応する変動の先読み演出制限として、設定示唆演出及び期待示唆演出の双方を制限する場合に参照されるテーブルであるため、前変動の大当り種別に関わらず、新たな始動入賞に対応する変動における先読み演出に対して特別な処理が実行されないことが定義されている。
図178は、処理テーブル6の一例である。処理テーブル6は、前変動において期待示唆演出及び設定示唆演出が実行され、かつ新たな始動入賞に対応する変動の先読み演出制限として、設定示唆演出及び期待示唆演出のいずれも制限されない場合に参照されるテーブルである。
処理番号18~21の処理は、前変動の当選種別が時短ありの大当りである場合の、新たな始動入賞に係る処理である。処理番号18~21の処理のうちの1つをフラグによって選択可能である。処理番号18~21の処理における、新たな始動入賞に対応する先読み演出としての期待示唆演出についての処理は、処理番号1の処理と同様である。
処理番号18の処理において、周辺制御MPUは、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出を実行する。当該新たな始動入賞に対応する変動の開始前とは、具体的には、例えば、前変動の変動中、前変動で当選した大当り遊技中、又は前変動で当選した大当りに付随する時短中の第二特別図柄の保留の消化中等である。処理番号18の処理により、前変動の開始前等に設定示唆演出が開始したことを遊技者が認識している場合に、設定示唆演出が行われることを遊技者が忘れないようにすることができる。
処理番号19の処理において、周辺制御MPUは、前変動の設定示唆演出において示唆される設定より、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出において示唆される設定の方が良好な場合(具体的には、例えば、前変動の設定示唆演出において設定4以上が確定することが報知され、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出において設定5以上が確定することが報知される場合)にのみ、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出を実行する。当該新たな始動入賞に対応する変動の開始前とは、具体的には、例えば、前変動の変動中、前変動で当選した大当り遊技中、又は前変動で当選した大当りに付随する時短中の第二特別図柄の保留の消化中等である。
処理番号19の処理により、遊技者は、遅くとも時短付き大当り中には高設定示唆演出を見ることができるため、時短付き大当りと高設定示唆とによる二重の高揚感を得ることができる。また、例えば、前変動の設定示唆演出において設定5以上が確定することが報知され、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出において設定4以上が確定することが報知されるような場合は、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出は遊技者に対して新たな情報を提供していない無駄な演出であり、処理番号19の処理によりこのような無駄な演出を省略することができる。逆に、例えば、前変動の設定示唆演出において設定4以上が確定することが報知された場合には、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出において設定5以上が確定することが報知されなくても遊技者は遊技を続行する可能性が高いため、当該設定示唆演出は無駄な演出になる可能性が高く、処理番号19の処理によりこのような無駄な演出を省略することができる。
処理番号20の処理において、周辺制御MPUは、当該新たな始動入賞に対応する変動中に設定示唆演出を実行する。処理番号20の処理により、時短終了後にすぐに設定示唆演出が開始することが多いため、時短状態が終了したことに対する遊技者の落胆を軽減することができる。
処理番号21の処理において、周辺制御MPUは、前変動の設定示唆演出において示唆される設定より、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出において示唆される設定の方が良好な場合にのみ、当該新たな始動入賞に対応する変動中に設定示唆演出を実行する。処理番号21の処理により、処理番号19の処理において説明したような無駄な設定示唆演出を省略したり、時短状態が終了したことに対する遊技者の落胆を軽減したりすることができる。
処理番号22~25の処理は、前変動の当選種別が時短なしの大当りである場合の、新たな始動入賞に係る処理である。処理番号22~25の処理のうちの1つをフラグによって選択可能である。処理番号22~25の処理における、新たな始動入賞に対応する先読み演出としての期待示唆演出についての処理は、処理番号2の処理と同様である。
処理番号22の処理において、周辺制御MPUは、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出を実行する。当該新たな始動入賞に対応する変動の開始前とは、具体的には、例えば、前変動の変動中、前変動で当選した大当り遊技中等である。遊技者は、大当りに当選したものの時短に当選しなかったことに対して落胆を感じるものの、処理番号22の処理により、遅くとも大当り遊技中には設定示唆演出が開始する場合には、当該落胆を軽減した状態で大当り遊技を楽しむことができる。
処理番号23の処理において、周辺制御MPUは、前変動の設定示唆演出において示唆される設定より、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出において示唆される設定の方が良好な場合にのみ、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出を実行する。当該新たな始動入賞に対応する変動の開始前とは、具体的には、例えば、前変動の変動中、前変動で当選した大当り遊技中等である。処理番号23の処理により、遅くとも大当り遊技中には設定示唆演出が開始する場合には、当該落胆を軽減した状態で大当り遊技を楽しむことができる。
処理番号24の処理において、周辺制御MPUは、当該新たな始動入賞に対応する変動中に設定示唆演出を実行する。処理番号24の処理により、大当り終了後にすぐに設定示唆演出が開始するため、時短に突入しなかったことに対する遊技者の落胆を軽減することができる。
処理番号25の処理において、周辺制御MPUは、前変動の設定示唆演出において示唆される設定より、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出において示唆される設定の方が良好な場合にのみ、当該新たな始動入賞に対応する変動中に設定示唆演出を実行する。処理番号21の処理により、処理番号19の処理において説明したような無駄な設定示唆演出を省略したり、時短に突入しなかったことに対する遊技者の落胆を軽減したりすることができる。また、仮に、前変動の設定示唆演出において示唆される設定より、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出において示唆される設定の方が良好でない場合に、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出を実行すると、時短に突入しないことに落胆している遊技者にさらに無駄な設定示唆演出を見せることになり、遊技者を逆なでするおそれがある。
処理番号26~29の処理は、前変動の当選種別が小当りである場合の、新たな始動入賞に係る処理である。処理番号26~29の処理のうちの1つをフラグによって選択可能である。処理番号26~29の処理における、新たな始動入賞に対応する先読み演出としての期待示唆演出についての処理は、処理番号3の処理と同様である。
処理番号26の処理において、周辺制御MPUは、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出を実行する。当該新たな始動入賞に対応する変動の開始前とは、具体的には、例えば、前変動の変動中、前変動で当選した小当りのオープニング中、又は当該小当り中等である。小当りでは、遊技者に対して小さな特典が付与されるだけであるため、遊技者は落胆する可能性があるが、処理番号26の処理により、早いタイミングで設定示唆演出が開始することで落胆を軽減することができる。
処理番号27の処理において、周辺制御MPUは、前変動の設定示唆演出において示唆される設定より、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出において示唆される設定の方が良好な場合にのみ、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出を実行する。当該新たな始動入賞に対応する変動の開始前とは、具体的には、例えば、前変動の変動中、前変動で当選した小当りのオープニング中、又は当該小当り中等である。処理番号27の処理により、処理番号19の処理において説明したような無駄な設定示唆演出を省略したり、小当りにおいて小さなメリットしか付与されないことによる遊技者の落胆を軽減したりすることができる。
処理番号28の処理において、周辺制御MPUは、当該新たな始動入賞に対応する変動中に設定示唆演出を実行する。小当りに係る一連の消化時間は大当りに係る一連の消化時間よりも短いため、前変動の開始前等に設定示唆演出が開始したことを遊技者が認識している場合に、当該設定示唆演出を実行しないと遊技者は不信感を感じる可能性がある。処理番号28の処理により、遊技者に対してこのような不信感を与えないようにすることができる。
処理番号29の処理において、周辺制御MPUは、前変動の設定示唆演出において示唆される設定より、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出において示唆される設定の方が良好な場合にのみ、当該新たな始動入賞に対応する変動中に設定示唆演出を実行する。処理番号29の処理により、処理番号19の処理において説明したような無駄な設定示唆演出を省略したり、小当りにおいて小さなメリットしか付与されないことに対する遊技者の落胆を軽減したりすることができる。また、仮に、前変動の設定示唆演出において示唆される設定より、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出において示唆される設定の方が良好でない場合に、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出を実行すると、小当りにおいて小さなメリットしか付与されないことに対して落胆している遊技者にさらに無駄な設定示唆演出を見せることになり、遊技者を逆なでするおそれがある。
処理番号30~34の処理は、前変動の当選種別がはずれである場合の、新たな始動入賞に係る処理である。処理番号30~34の処理のうちの1つをフラグによって選択可能である。処理番号30~34の処理における、新たな始動入賞に対応する先読み演出としての期待示唆演出についての処理は、処理番号4の処理と同様である。
処理番号30の処理において、周辺制御MPUは、当該新たな始動入賞に対応する変動中に設定示唆演出を実行する。処理番号30の処理により、前変動がはずれたことによる遊技者の落胆を軽減することができる。
処理番号31の処理において、周辺制御MPUは、前変動の保留先読み演出における保留表示の態様が大当たり期待度の高い特定の態様(例えば、緑又は赤)である場合に限って、当該新たな始動入賞に対応する変動中に、当該新たな始動入賞における先読み演出としての設定示唆演出を実行する。なお、当該設定示唆演出の実行タイミングについては、変更しない、即ち特別な処理を行わないが、設定示唆演出の実行タイミングを異なるように制御(例えば、キャラBによる設定を示唆する台詞が現出するタイミングを通常よりも所定秒数(例えば2秒)遅らせたり、所定秒数(例えば2秒)早めたりなど)してもよい。処理番号31の処理により、前変動において大当り期待度が高い保留表示の態様が出現したにも関わらずはずれたことに対する落胆を感じている遊技者に対して、このような落胆を軽減することができる。
処理番号32の処理において、周辺制御MPUは、前変動の保留先読み演出における保留表示の態様が大当たり期待度の高い特定の態様(例えば、緑又は赤)である場合であって、前変動の設定示唆演出において示唆される設定より、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出において示唆される設定の方が良好な場合、に限って、当該新たな始動入賞に対応する変動中に、当該新たな始動入賞における先読み演出としての設定示唆演出を実行する。処理番号32の処理により、大当り期待度の高い保留表示の態様であった前変動がはずれであったことに対する遊技者の落胆を、設定示唆演出によって軽減することができる。
処理番号33の処理において、周辺制御MPUは、前変動の保留先読み演出における保留表示の態様が大当たり期待度の高い特定の態様(例えば、緑又は赤)でない場合に限って、当該新たな始動入賞に対応する変動中に、当該新たな始動入賞における先読み演出としての設定示唆演出を実行する。処理番号33の処理によって、前変動の保留先読み演出では大当りに対する期待度を得られず落胆が続いていた遊技者に対して、設定示唆演出によってこのような落胆を軽減することができる。
処理番号34の処理において、周辺制御MPUは、保留表示の態様が大当たり期待度の高い特定の態様(例えば、緑又は赤)ではない場合であって、前変動の設定示唆演出において示唆される設定より、当該新たな始動入賞に対応する変動の開始前に先読み演出としての設定示唆演出において示唆される設定の方が良好な場合、に限って、当該新たな始動入賞に対応する変動中に、当該新たな始動入賞における先読み演出としての設定示唆演出を実行する。処理番号34の処理により、前変動の保留表示の態様が低期待度かつ当該新たな始動入賞に対応する変動における設定示唆演出において低設定を示唆する、という遊技者の苛立ちを増幅させるような事態の発生を抑制することができる。
なお、上述した処理において、新たな始動入賞に対応する変動の先読み演出制限として、設定示唆演出が制限されない状況下であっても、以下のような場合には、周辺制御MPUは、当該設定示唆演出を実行しなくてもよい。例えば、当該新たな始動入賞が大当り中に行われた場合には、周辺制御MPUは、当該設定示唆演出を実行しなくてもよい。大当り遊技の直後においては、設定示唆演出によるインセンティブを与えなくても遊技者は遊技を続行する可能性が高いためである。
処理テーブル3及び処理テーブル6の例のように、各処理番号が定める新たな始動入賞に係る処理それぞれにおいて効果が発揮されるため、新たな始動入賞に係る処理をホール等が設定可能にすることで、ホール等の営業スタイルのニーズに合わせた遊技機を提供することができる。
また、例えば、当該新たな始動入賞がST状態(大当りに当選する又は所定回数の特別図柄変動が実行するまで継続する確変状態)の終了間際(具体的には、例えば、ST状態終了までの特別図柄の残り変動数が、特別図柄の最大保留数である4以下である状態、又はST状態終了までの特別図柄の残り変動数が、メイン液晶表示装置1600に表示されている状態等)に行われた場合には、周辺制御MPUは、当該設定示唆演出を実行しなくてもよい。ST状態終了直前においては、遊技者の最大の関心事は当該STにおいて大当りに当選するか否かである。このような状態で新たな始動入賞に係る先読み演出として設定示唆演出が開始すると、遊技者は当該設定示唆演出を咄嗟に大当り期待度の高い演出と勘違いし、遊技者をぬか喜びさせる事態が発生するおそれがある。上述した処理により、このような事態の発生を抑制することができる。
また、例えば、ST状態が終了して通常状態に移行してから所定回数の特別図柄変動(具体的には、例えば、特別図柄の最大保留数である4回の特別図柄変動、又はST状態から通常状態に移行した直後には第二始動口2004が開放している場合もあり、それを考慮して所定回数(例えば5回)の特別図柄変動)が行われるまでの間に、当該新たな始動入賞が行われた場合には、周辺制御MPUは、当該設定示唆演出を実行しなくてもよい。ST状態終了直後においては、遊技者の最大の関心事はすぐに大当りに当選するか否かである。特にST状態終了直後には、遊技者にとってメリットの大きい種別の大当りに当選しやすい第二特別図柄の保留に対応する変動が実行される可能性が高い。このような状態で新たな始動入賞に係る先読み演出として設定示唆演出が開始すると、遊技者は当該設定示唆演出を咄嗟に大当り期待度の高い演出と勘違いし、遊技者をぬか喜びさせる事態が発生するおそれがある。上述した処理により、このような事態の発生を抑制することができる。
また、複数の保留において、それぞれ単独で完結する設定示唆演出が実行されると決定された場合、当該複数の保留に対応する変動に跨る1つの設定示唆演出が実行されるように、前変動における設定示唆演出を変更してもよい。
[12-16.設定変更・確認処理の別例1]
以下、設定変更機能を有するパチンコ機の別な実施例について説明する。以下に説明する実施例では、設定変更スイッチ972を設けずに、RAMクリアスイッチ954の操作によって設定値が選択できるものであるが、RAMクリアスイッチ954の本来の主制御RAM1312の初期化機能と、設定変更機能とを区別して記載するために、設定値の変更にかかる操作については設定変更スイッチ972として説明することがある。
図179、図180は、電源投入時に主制御MPU1311が実行する電源投入時処理のフローチャートである。図179、図180に示す電源投入時処理は、図21のステップS10から図22のステップS34の別例である。
まず、主制御MPU1311は、RAMクリアスイッチ954の信号のレベル及び設定キー971の信号のレベルを入力ポートから取り込み、取り込んだレベルのデータをレジスタに格納する(ステップS201)。なお、RAMクリアスイッチ954と設定キー971が操作されているか否かの判定は、周辺制御基板1510が確実に起動した後のステップS212、S214で主制御MPU1311が行う。このため、周辺制御基板1510が起動するまでの待機中に、ホールの従業員がRAMクリアスイッチ954や設定キー971の操作を誤って中断すると、ホールの従業員が意図していない状態でRAMクリアスイッチ954と設定キー971が判定されてしまう。このため、電源投入時処理開始後の早い段階でRAMクリアスイッチ954と設定キー971の入力状態(レベル)をレジスタ等の一時的な記憶手段に格納し、周辺制御基板1510の待機状態の終了後にレジスタ等の一時的な記憶手段に格納したRAMクリアスイッチ954と設定キー971の状態を判定することによって、ホールの従業員が電源投入後の早い段階でキー操作を誤って中断しても、電源投入操作時のRAMクリアスイッチ954や設定キー971の操作を確実に検出する。
なお、RAMクリアスイッチ954のONレベルと設定キー971のONレベルとを異ならせてもよい。例えば、RAMクリアスイッチ954と設定キー971とで論理の正負を変えて、RAMクリアスイッチ954はHighレベルでON、設定キー971はLowレベルのときONとしてもよい。また、RAMクリアスイッチ954と設定キー971とでONと判定する電圧を変えてもよい。このようにすることによって、パチンコ機1への電波の照射によって信号レベルを変化させて、設定変更モードを起動する不正行為を困難にできる。また、後述するように、設定変更モードや設定確認モードにおいて、不正検出用のセンサの信号のレベルを監視する必要がなくなる。
そして、設定値が所定の範囲内であるかを判定する(ステップS202)。例えば、設定が1~6までの段階で選択可能なパチンコ機1において、設定値が格納されるワークの値が0~5に対応している(設定1のとき=0、設定6のとき=5)場合には、5以下の値が格納されていれば、所定の範囲内であると判定される。
設定値が所定の範囲内でなければ、設定状態管理エリアにRAM異常を示す値(08H)を記録し、パチンコ機1のリセット信号による初期化を待つ(ステップS203)。設定値は、チェックサムが計算される範囲ではなく、RAMクリア操作によって消去されないので、異常な設定値は修正されない。このため、電源投入時に設定値に異常がないかを判定して、異常があれば特図や普図等の通常遊技に関する処理を実行しないようにしている。
なお、設定値は、電源投入時に判定するだけでなく、始動口への入賞時や、変動表示ゲームの開始時や、遊技状態が切り替わるとき(通常状態から大当り状態、低確率状態から高確率状態、非時短状態から時短状態など)等の所定の条件が成立したときにも判定する。これによって、設定値に誤って異常な値となっても、誤った設定値に基づいて、抽選が行われることを防止している。
設定値が異常と判定された場合には、遊技が停止し、電源を再投入するか、又は、設定値の変更操作がされるまでは、設定値異常(RAM異常)の状態が維持される。設定値が異常と判定された場合には、予め定められた値を設定するとよい。予め定められた値としては、最高設定を示す設定6に対応した値や、最低設定を示す設定1に対応した値を用いて、設定値の格納エリアを更新するとよい。
本実施例のパチンコ機1では、設定変更モードを経由してのみRAM異常を解消でき、電源の再投入のみではRAM異常が解消しないようになっている。これは、RAM異常は不具合の他、不正によって発生する場合があり、不正により発生したRAM異常を電源再投入操作で解消できると、RAM異常を簡単に解消できることになる。これに対して、設定変更モードを経由しないとRAM異常を解消できないようにすれば、電源スイッチ932、設定キー971、RAMクリアスイッチ954の三つを操作しないとRAM異常を解消できず、さらに、鍵を有するホールの従業員しか操作し得ない設定キー971の操作を含むので、不正行為に対するセキュリティ性能を高めることができる。
なお、不正に設定値を不定な値に変更するゴト行為に対応するため、設定値が異常と判定された場合には、最低設定を示す設定1に対応した値に更新すると、遊技機のセキュリティ性を向上できて、有効である。
設定状態管理エリアは、図201(B)に示すように、パチンコ機1の動作モードが記録される記憶領域であり、例えば、通常遊技状態(遊技開始可能状態)、設定確認モード、設定変更モード、主制御RAM1312の異常が記録される。
一方、設定値が所定の範囲内であれば、周辺制御基板1510の起動を待つ(ステップS204)。
そして、前回の電源遮断時に主制御RAM1312にバックアップされているデータから算出したチェックサムと、前回の電源遮断時に計算されてステップS48で記憶されたチェックサムとを比較(検証)する。なお、チェックサムではなく、固定値のチェックコードを用いてもよい。さらに、バックアップフラグエリアの値が正常であるかを判定する。正常にバックアップされたことを示す停電フラグの値がバックアップフラグエリアに格納されていれば、停電発生時にRAMのデータが正常にバックアップされている(ステップS205)。
判定の結果、チェックサム又はバックアップフラグエリアの値のいずれかが異常であれば、設定状態管理エリアにRAM異常を示す値(08H)を記録し(ステップS206)、主制御RAM1312の全領域(設定値が格納されている領域も含む)を初期化して(ステップS207)、ステップS216に進む。なお、主制御RAM1312の全領域又は所定の領域に格納されたデータの消去を「初期化」と称するが、「RAMクリア」も同じ意味で使用される。
一方、チェックサム及びバックアップフラグエリアの値が正常であれば、レジスタに格納された設定キーの値(内容)に基づいて設定変更操作(RAMクリアスイッチ954がON、設定キー971がON)がされているかを判定する。設定変更操作ではない(RAMクリアスイッチ954と設定キー971の両方もしくは、いずれかがOFF)場合には、電源投入前に状態が設定変更中であったかを判定するために、設定状態管理エリアに設定変更中を示す値(02H)が記録されているかを判定する(ステップS208)。
その結果、設定変更操作がされていることがレジスタに格納されていれば、電源投入時にRAMクリアスイッチ954及び設定キー971で設定変更モードにする操作がされており、設定変更動作を開始すべき状態であると判定できる。また、設定状態管理エリアに設定変更中を示す値(02H)が記録されていれば、設定変更動作中に停電した後の電源投入であると判定できる。レジスタに格納された値又は設定状態管理エリアに記憶された値に基づいて、設定変更モードに移行すると判定されたときには、設定状態管理エリアに設定変更状態を示す値(02H)を記録し(ステップS209)、RAM正常時に初期化すべき主制御RAM1312のクリア領域を初期化して(ステップS210)、ステップS216に進む。
なお、ステップS208において、設定状態管理エリアに記憶された値に基づいて設定変更モードに移行するときに、ステップS209において設定状態管理エリアに設定変更状態(02H)を示す値を記録するが、この際、同じ値(設定変更状態(02H))を再度設定する必要はないため、設定状態管理エリアに記憶された値に基づいて設定変更モードに移行すると判定したときには、設定状態管理エリアに設定変更状態を示す値(02H)を記録しなくてもよい。
一方、レジスタに設定変更操作が設定されておらず、かつ、設定状態管理エリアに設定変更中を示す値(02H)が記録されていなければ、設定変更動作を開始すべきでないため、電源投入前の状態がRAM異常中であったかを判定するために、設定状態管理エリアにRAM異常を示す値(08H)が記録されているかを判定する(ステップS211)。
その結果、設定状態管理エリアにRAM異常を示す値が記録されていれば、電源投入前の状態がRAM異常中(主制御RAM1312が異常)と判定し、ステップS216に進む。一方、設定状態管理エリアにRAM異常を示す値が記録されていなければ、電源投入前の状態がRAM異常中(主制御RAM1312が異常)ではないため、レジスタにRAMクリアスイッチ954のONレベルが格納されているかを判定する(ステップS212)。
その結果、レジスタにRAMクリアスイッチ954のONレベルが格納されていれば、電源投入時にRAMクリアスイッチ954がONに操作されているので、設定値や設定状態管理エリアを除く遊技制御領域内のRAM領域(RAM正常時のクリア領域)を初期化するために、ステップS210に進む。
一方、レジスタにRAMクリアスイッチ954のON操作のレベルが格納されていなければ、電源投入時にRAMクリアスイッチ954が操作されていないので、電源投入時状態バッファを設定する(ステップS213)。電源投入時状態バッファに設定された内容は、電源復帰時に主制御MPU1311で管理している遊技状態を通知するための電源投入時状態コマンドとして主制御基板1310から周辺制御基板1510に送信される。
その後、レジスタに設定キー971のONレベルが格納されているかを判定する(ステップS214)。その結果、レジスタに設定キー971のONレベルが格納されていれば、電源投入時に設定キー971が操作されており設定確認動作を開始すべきであるため、設定状態管理エリアに設定確認モードを示す値(01H)を記録する(ステップS215)。
その後、主制御MPU1311に内蔵されているデバイスの初期設定を行い(ステップS216)、電源投入時の各部の動作を通知する電源投入時動作コマンドを周辺制御基板1510に送信する(ステップS217)。電源投入時動作コマンドは、図22のステップS32で説明した電源投入時コマンドの一つである。そして、主制御RAM1312を電源投入時の状態に初期設定する(ステップS218)。
その後、設定状態管理エリアに遊技開始可能状態を示す値(00H)が記録されているかを判定する(ステップS219)。設定状態管理エリアに遊技開始可能状態を示す値が記録されていれば、通常遊技が開始可能なので、ステップS220に進み、初期設定を続ける。一方、設定状態管理エリアに遊技開始可能状態を示す値が記録されていなければ、通常遊技が開始できないので、初期設定を終了し、ステップS224に進む。
ステップS220では、遊技開始時の初期設定又は停電復帰時の初期設定を行う。その後、電源投入時の各部の状態を通知する電源投入時状態コマンドを周辺制御基板1510に送信する(ステップS221)。そして、停電復帰時に特別図柄の状態を通知する電源投入時復帰先コマンドを周辺制御基板1510に送信するためにバッファに格納する(ステップS222)。電源投入時状態コマンドや電源投入時復帰先コマンドは、図22のステップS32で説明した電源投入時コマンドの一つである。なお、バッファに格納された各種コマンドは、タイマ割込み処理において送信される。
さらに、設定値を通知する設定値コマンドを周辺制御基板1510に送信し(ステップS223)、割り込みを許可して(ステップS224)、通常のメインループ(例えば、図22のステップS36)に進む。
図181、図182は、主制御MPU1311が実行するタイマ割込み処理のフローチャートである。図181、図182に示すタイマ割込み処理は、図24、図75、図80、図104、図155で示すタイマ割込み処理とは異なり、タイマ割込み処理内で設定変更の処理を実行する。
まず、主制御MPU1311は、LEDコモンカウンタ(LED_CT)を更新する(ステップS230)。LEDコモンカウンタは、ベース表示器1317のどのコモン端子をオンにするか、すなわち表示する桁を定めるカウンタである。なお、本実施例では、ベース表示器1317と設定表示器974を兼用する例を説明するが、ベース表示器1317と設定表示器974とは、別に設けてもよい。この場合、表示器の数だけLEDコモンカウンタが設けられるとよい。
その後、スイッチ入力処理を実行する(ステップS231)。スイッチ入力処理は、図23のステップS74と同じである。
次に、設定状態管理エリアに初期値(遊技開始可能状態を示す値)が記録されているかを判定する(ステップS232)。設定状態管理エリアに初期値(遊技開始可能状態を示す値)が記録されていれば、タイマ割込み処理で設定変更/確認処理(ステップS234以後)を実行する必要がないので、通常のタイマ割込み処理(例えば、図23のステップS76以後)を実行する(ステップS233)。ステップS233の通常のタイマ割込み処理では、後述する性能表示処理(図183)が実行される。一方、設定状態管理エリアに初期値(遊技開始可能状態を示す値)が記録されていなければ、タイマ割込み処理で通常の遊技処理を実行せず、設定変更/確認処理を実行する。
設定変更/確認処理では、まず、LEDコモンポートからOFFを出力し、外部端子板784からセキュリティ信号を出力し、遊技中断信号をONに設定する(ステップS234)。タイマ割込み処理の早い段階でLEDコモン信号をOFFにすることによって、LEDコモン信号がオンになるまでの時間、すなわちLEDの消灯時間を確保し、LEDの表示切替前後の表示が混ざって見えるゴースト現象を抑制し、LEDのちらつきを防止している。
その後、設定状態管理エリアにRAM異常を示す値(08H)が記録されているかを判定する(ステップS235)。設定状態管理エリアにRAM異常を示す値が記録されていれば、設定値を変更/確認する処理を実行することなく、ステップS245に進む。一方、設定状態管理エリアにRAM異常を示す値が記録されていなければ、設定値を変更/確認する操作がされているかを判定する(ステップS236、S237)。具体的には、設定状態管理エリアに設定変更を示す値(02H)が記録されているかを判定する(ステップS236)。
そして、設定変更スイッチ972が操作されていれば、設定値を1加算して(ステップS238)、ステップS245に進む。なお、設定値を加算した結果上限値を超えていれば初期値に戻す。一方、設定状態管理エリアに設定変更を示す値が記録されていない(設定状態管理エリアに設定確認を示す値が記録されている)、又は、設定変更スイッチ972が操作されていなければ、設定キー971の出力レベルのOFFエッジが検出されたかを判定する(ステップS239)。設定キー971の出力レベルのOFFエッジが検出されると、設定キー971が通常位置へ操作されたので、設定変更/確認モード終了処理を実行する(ステップS240~S244)。一方、設定キー971の出力レベルのOFFエッジが検出されていなければ、設定変更/確認モードを終了せず、ステップS245に進む。
設定変更/確認モード終了処理では、図182に示すように、設定状態管理エリアに初期値(遊技開始可能状態を示す値)を記録し(ステップS240)、遊技開始時の初期設定又は停電復帰時の初期設定を行い(ステップS241)、電源投入時の各部の状態(低確率/高確率、時短/非時短等の遊技状態)を通知する電源投入時状態コマンドを周辺制御基板1510に送信するためにバッファに格納する(ステップS242)。そして、停電後の復帰時に特別図柄の状態を通知する電源投入時復帰先コマンドを周辺制御基板1510に送信するためにバッファに格納する(ステップS243)。具体的には、特別図柄/特別電動役物に関する処理状態(特別図柄/特別電動役物に関する各処理(待機中、変動中、判定、大当り中等)の状態)を示すカウンタ値をコマンドとして送信する。これにより、周辺制御基板1510は、電源復帰時に特別図柄に関する遊技状態や特別電動役物の動作状態を判定できる。そして、設定値を通知する設定値コマンドを周辺制御基板1510に送信するためにバッファに格納して(ステップS244)、ステップS245に進む。
なお、設定値を通知するコマンドは、電源投入時の設定変更/確認モード終了処理だけでなく、変動開始時や遊技状態の切り替わり時にも送信するとよい。そのとき、電源投入時に送信する設定値のコマンドと変動開始時等の通常遊技中で送信するコマンドとは同じコマンドでも、異なるコマンド(例えば、上位バイトの値が異なる等)でもよい。
電源投入時と通常遊技時とで設定値コマンドを異ならせた場合、周辺制御基板1510は、特別図柄変動表示ゲームの開始時に、設定値を含む一連のコマンド(変動パターンコマンド、図柄コマンド等)を受信すると、コマンドが欠落していないかを判定する。コマンドが送信されるタイミング(電源投入時、通常遊技中など)でコマンドの内容を異ならせることによって、周辺制御基板1510は、電源投入時に正しく受信した設定値なのか、変動開始時に設定値以外の変動パターンコマンドや図柄コマンドが欠落したのかを判定できる。
ステップS245では、設定状態管理エリアにRAM異常を示す値(08H)が記憶されているかを判定する。設定状態管理エリアにRAM異常を示す値が記録されていれば、ベース表示器1317(別体の場合は設定表示器974)にエラー表示をするための設定を行う(ステップS246)。一方、設定状態管理エリアにRAM異常を示す値が記録されていなければ、現在の設定値をベース表示器1317(別体の場合は設定表示器974)に表示をするための設定を行う(ステップS247)。
その後、ベース表示器1317のLEDのコモン端子にONを出力し、ステップS246又はS247における設定に従って出力されるセグメント信号によってベース表示器1317を点灯させる(ステップS248)。このように、タイマ割込み処理の開始後に、設定値変更操作を判定し(ステップS237)、その後、タイマ割り込み毎にLEDのコモン端子にONを出力して、設定値を表示する(設定値の表示を切り替える)。設定操作をトリガとしないで、設定値が表示されることになる。具体的には、設定変更/確認に関する処理を電源投入時の処理として行うのではなく、通常の遊技が開始されたときと同じタイマ割込み処理内で行うことによって、設定変更/確認処理の実行中に停電し、設定キー971が元の状態に戻された後に電源が復帰した場合でも、設定キー971や設定変更スイッチ972を停電発生時と同じ位置に操作しなくても、停電発生時の設定変更/確認処理の状態に戻すことができるようにしている。さらに、設定変更/確認処理において、コマンド送信処理、LEDのダイナミック点灯の制御等、通常の遊技処理でも実行される処理を共通化できる。
そして、周辺制御基板1510にコマンドを送信し(ステップS249)、タイマ割込み処理を終了する。すなわち、ステップS249では、ステップS242、S243、S244等においてバッファに格納されたコマンドが、実際に主制御基板1310からシリアルデータとして出力される。
以上で説明したタイマ割込み処理では、通常遊技を実行するか、設定変更モード(又は設定確認モード)を実行するかで処理を分岐しているが(図181のステップS232)、複数のタイマ割込み処理を設け、通常遊技状態と設定変更モード及び/設定変更モードとで、異なるタイマ割込み処理を起動してもよい。この複数のタイマ割込み処理は、一部に共通の処理を含んでも(例えば、各タイマ割込み処理で共通のサブルーチンが呼び出されても)、すべてが異なるルーチンで構成されてもよい。つまり、設定変更モード及び設定確認モードではタイマ割込み処理1(設定変更/確認用)が呼び出され、通常遊技状態ではタイマ割込み2(通常遊技用)が呼び出され、この二つのタイマ割込み処理で共通に実行される処理(モジュール)と、一方のタイマ割込み処理のみで実行される専用の処理(モジュール)とを有することになる。共通に実行される処理には、例えば、入賞口センサなど各種検出スイッチの出力を取り込むスイッチ入力処理や周辺制御基板1510にコマンドを送信する周辺基板コマンド処理などがある。
また、通常遊技で実行される処理と設定変更モードで実行される処理とでレジスタバンクを共通してもよい。主制御側メイン処理でバンク0を使用する場合には、二つのタイマ割込み処理では共にバンク1を使用する。二つのタイマ割込み処理は同時に起動することがないため、一つのレジスタバンクを共用できる。すなわち、本実施例のパチンコ機では、主制御MPU1311は、バンクによって切り替え可能な2以上のレジスタを有しており、繰り返し実行される主制御側メイン処理と、周期的に実行されるタイマ割込み処理1(通常遊技中)と周期的に実行されるタイマ割込み処理2(設定変更モード)とを有し、主制御側メイン処理とタイマ割込み処理1とタイマ割込み処理2のうち少なくとも二つの処理では共通のバンクのレジスタを使用する。
通常遊技で実行されるタイマ割込み処理と設定変更モードで実行されるタイマ割込み処理とでは、その実行周期は同じにするとよいが、異なる周期で実行してもよい。設定変更時モードで実行されるタイマ割込み処理におけるスイッチのサンプリングはRAMクリアスイッチ954と設定キー971だけなので、通常遊技状態のタイマ割込み処理の実行周期が4msであるところ、設定変更モードで実行されるタイマ割込み処理の実行周期が早かったり(例えば2ms)、遅かったり(例8ms)してもよい。なお、設定変更モードで実行されるタイマ割込み処理の実行周期を遅くすると、設定値を表示するLEDのダイナミック点灯制御の周期が遅くなり、設定値の表示態様が通常遊技中のベース表示と異なることになる。LEDのコモンが8本ある場合、タイマ割込み処理の実行周期が8msであると、表示周期は64ms(表示ONが8ms、OFFが56ms)となり、タイマ割込み処理の実行周期が4msであると、表示周期は32ms(表示ONが4ms、OFFが20ms)となり、タイマ割込み処理の実行周期に比例してOFF時間が長くなり、LEDの点灯ちらつきが大きくなることにより通常遊技中のベース表示との表示態様とが異なって認識することが可能となる。
また、電源起動時に設定変更モード又は設定確認モードを起動するときには、設定変更/確認用のタイマ割込み処理1を許可し、通常遊技用のタイマ割込み処理2を禁止する。一方、電源起動時に通常遊技状態で起動する(設定変更/確認モードに移行しない)ときには、設定変更/確認用のタイマ割込み処理1を禁止、通常遊技用のタイマ割込み処理2を許可する。そして、設定変更モード又は設定確認モードの終了時には、設定変更/確認用のタイマ割込み処理1を禁止し、通常遊技用のタイマ割込み処理2を許可する。
図183は、主制御MPU1311が実行する性能表示処理のフローチャートである。性能表示処理では、ベース表示器1317にパチンコ機1の性能(例えばベース値)を表示する。
性能表示処理は、前述した通常遊技状態のタイマ割込みにおいて実行される。具体的には、図181に示すタイマ割込み処理のステップS233の通常の割り込み処理や、図191に示すタイマ割込み処理のステップS2087のベース表示器出力処理で実行される。
まず、主制御MPU1311は、遊技制御領域内のスタックアドレスを退避し、遊技制御領域外スタックアドレスを設定し(ステップS260)、レジスタ退避用バッファに遊技制御領域内で使用するレジスタを退避する(ステップS261)。ステップS261における、遊技制御領域内で使用されるレジスタの退避先は、主制御RAM1312の遊技制御領域外のワークエリアであるとよい。なお、遊技制御領域内で使用されるレジスタの退避先は、主制御RAM1312の遊技制御領域外のスタックエリアでもよい。
その後、初回電源投入フラグが正常かを判定する(ステップS262)。初回電源投入フラグは、主制御RAM1312の遊技制御領域外の領域が初期化されているか(すなわち、最初の電源投入か)を示すフラグであり、遊技制御領域外の領域を初期化すると5AHが設定される。すなわち、初回電源投入フラグの値が5AHであれば、初回の電源投入時における主制御RAM1312が初期化(すなわち、遊技制御領域外の領域も初期化)されていると判定できる。
そして、ベース値の表示に使用されるパラメータの値は所定の範囲内であるかを判定する(ステップS263)。例えば、ベース表示器1317の表示桁を切り替えるためのLEDコモンカウンタの値が0~3以外であると、パラメータの値が異常であると判定し、ステップS264で遊技制御領域外の主制御RAM1312を初期化する。
停電フラグが正常ではなく、又は、各パラメータの値は所定の範囲内でなければ、遊技制御領域外の主制御RAM1312を初期化し、停電フラグ5AHに設定し(ステップS264)、ステップS265に進む。一方、停電フラグが正常であり、かつ、各パラメータの値は所定の範囲内であれば、各種入賞口センサ3015、2114、2554、2557及び排出球センサ3060を検出し、ベース値を計算する(ステップS265)。
そして、ベース値計算の区間の切替時間であるかを判定し(ステップS266)、切替時間が到来していれば、表示モードを切り替える(ステップS267)。そして、表示モードに従って表示データを作成し、バッファに格納する(ステップS268)。そして、区間毎に表示を制御する。例えば、区間毎の表示制御には、アウト球数500個未満のテスト区間の表示や、低確率・非時短アウト球数が所定数(例えば、6000個)未満の場合の点滅表示などがある(ステップS269)。
その後、レジスタ退避用バッファからレジスタの値を元に戻し(ステップS270)、遊技制御領域内のスタックアドレスを元に戻して(ステップS271)、性能表示処理を終了する。
次に、図184を参照して、本実施例のパチンコ機1の報知態様について説明する。前述したように、本実施例のパチンコ機では、電源投入時に主制御RAM1312が異常である場合や、設定変更モード中や、設定確認モード中に報知をして、ホールの従業員にパチンコ機の状態を分かりやすく知らせる。
なお、以下に説明する報知態様(例えば、機能表示ユニット1400の表示態様)は、設定変更モードや設定確認モードの中で選択された態様で出力される。これらの報知は、タイマ割込み処理(図181)のステップS246、S247でベース表示器1317への表示設定と合わせて、報知パターンを選択して報知を制御する。具体的には、図190に示すタイマ割込み処理のステップS2069の設定表示処理で実行される。なお、パチンコ機1の動作モードを表示するための専用モジュールを設けて処理を実行してもよい。
まず、主制御RAM1312が異常である場合、タイマ割込み処理(図181)のステップS249で周辺制御基板1510に送信されるコマンドで制御される。なお、主制御RAM1312の異常は、他の異常や状態の報知より優先して報知される。
機能表示ユニット1400 全消灯、又は、全LEDを同一周期で高速点滅
メイン液晶表示装置1600 「RAMエラー」の文字を表示
音(効果音) RAM異常報知音を出力(RAM異常報知音は、設定変更モードや設定確認モード以外の報知音と同じでもよい)
音(音声) 「RAMエラーです」の音声を出力
音量 周辺制御基板ボックス1520のボリュームや遊技者による音量設定に依存しない最大音量
枠装飾LED 扉枠3に設けられた所定の枠ランプ(トップランプを含み、球切れやストック報知LEDを除く)を赤色で点滅表示
パネル装飾LED 全消灯
外部出力(セキュリティ信号) 出力
試験信号(遊技機エラー信号) 出力
再報知 する
解除条件 主制御基板1310で設定変更によりRAMクリアされた、又は、周辺制御基板1510に電源が再投入された
次に、主制御RAM1312が設定変更モードで起動した場合の設定変更報知を説明する。設定変更報知は、タイマ割込み処理(図181)のステップS249で周辺制御基板1510に送信されるコマンドで制御される。
機能表示ユニット1400 全点灯、又は、全LEDを同一周期で中速点滅
メイン液晶表示装置1600 「設定変更中」の文字を表示
音(効果音) 設定変更モードの報知音を出力
音(音声) 「設定変更中です」の音声を所定回数(例えば16回)出力
音量 周辺制御基板ボックス1520のボリュームや遊技者による音量設定に依存しない最大音量
枠装飾LED 扉枠3に設けられた所定の枠ランプ(トップランプを含み、球切れやストック報知LEDを除く)を白色で点滅表示
パネル装飾LED 全消灯
外部出力(セキュリティ信号) 出力
試験信号(遊技機エラー信号) 出力
再報知 する
解除条件 周辺制御基板1510が電源投入時動作コマンドとして「A001H」を受信した
次に、主制御RAM1312が設定確認モードで起動した場合の設定確認報知を説明する。設定確認報知は、タイマ割込み処理(図181)のステップS249で周辺制御基板1510に送信されるコマンドで制御される。
機能表示ユニット1400 全点灯、又は、全LEDを同一周期で低速点滅
メイン液晶表示装置1600 「設定確認中」の文字を表示
音(効果音) 設定確認モードの報知音を出力(設定確認モードの報知音は、設定変更モードの報知音と同じでもよい)
音(音声) 「設定確認中です」の音声を所定回数(例えば16回)出力
音量 周辺制御基板ボックス1520のボリュームや遊技者による音量設定に依存しない最大音量
枠装飾LED 扉枠3に設けられた所定の枠ランプ(トップランプを含み、球切れやストック報知LEDを除く)を白色で点滅表示
パネル装飾LED 全消灯
外部出力(セキュリティ信号) 出力
試験信号(遊技機エラー信号) 出力
再報知 する
解除条件 周辺制御基板1510が電源投入時動作コマンドとして「A001H」を受信して所定時間(例えば30秒)が経過
前述した三つの状態の報知は、主制御RAM1312の異常が最優先で報知され、設定変更モード、設定確認モードの順に優先して報知が行われるとよい。より具体的には、図185に示す順序で優先度を定めるとよい。なお、優先度1が報知の優先度が高く、優先度9が報知の優先度が低い。すなわち、複数の報知をすべき場合には、優先度が高い(数字が小さい)報知が行われる。また、優先度が同じ複数の報知の条件が成立したて、報知が競合する場合、競合する複数の報知を切り替えて報知しても、先に成立した報知を行い、当該報知が解除された後に競合する報知が条件を満たしていれば当該競合する報知を行ってもよい。具体的には、優先度3において、RAMクリア報知と設定確認報知とは同時に発生しないので報知は競合しない。優先度4において、賞球過多異常報知と普通電動役物入賞異常報知は同時に発生して、二つの報知が競合することがある。
優先度1:RAMの異常が検出された場合のRAMエラー報知
優先度2:設定変更モードにおける設定変更報知
優先度3:RAMクリアスイッチ954の操作により主制御RAMが初期化された場合のRAMクリア報知(設定変更によるRAMクリアは除く)
優先度3:設定確認モードにおける設定確認報知
優先度4:賞球が所定数以上多く払いだされた場合の賞球過多異常報知
優先度4:普通電動役物非作動時に所定数以上連続して入賞を検出した場合、又は、一回の普通電動焼役物作動時に所定以上の入賞を検出した場合の普通電動役物入賞異常報知
優先度5:大入賞口の入賞数と排出数との差が所定数以上となった場合の排出異常報知
優先度6:振動を検知した場合の振動センサ異常報知
優先度7:扉枠3又は本体枠4の開放を検出した場合の扉開放異常報知
優先度8:磁気センサが磁気を検知した場合の磁気センサ異常報知
優先度9:大入賞口の非作動時に所定数以上連続して入賞を検出した場合、又は、一回の大当り時に所定以上の入賞を検出した場合の大入賞口入賞異常報知
次に、前述した電源投入時処理(図179、図180)の詳細を説明する。図186、図187は、電源投入時に主制御MPU1311が実行する電源投入時処理のフローチャートである。
まず、主制御MPU1311は、電源の投入により、リセット信号が解除されるとプログラムコードの開始番地である8000番地の処理から開始する。主制御RAM1312のプロテクト無効及び禁止領域無効をRAMプロテクトレジスタに設定する(ステップS2000)。主制御MPU1311は、主制御RAM1312の使用領域を指定することによって、指定領域以外の禁止領域へアクセスがあった場合には、異常と判定してリセットする機能を有する。主制御RAM1312の禁止領域へのアクセスによるリセット機能を解除するために、禁止領域を無効に設定することで主制御RAM1312の全領域へのアクセスを可能とする。なお、主制御RAM1312のうち未使用領域を禁止領域に指定して、禁止領域を有効にして、指定された禁止領域にアクセスを検出した場合には、主制御MPU1311がリセットされるようにしてもよい。
次に、所定時間の単純クリアモードタイマをウォッチドッグタイマに設定し(ステップS2001)、ウォッチドッグタイマをクリアする(ステップS2002)。その後、停電クリア信号をONに設定し(ステップS2003)、停電クリア信号をOFFに設定する(ステップS2004)。一旦、停電クリア信号をONに設定してから、OFFに設定することによって、ラッチに記憶された停電信号を正常な値に設定できる。
次に、設定キー971とRAMクリアスイッチ954の信号のレベルをPFポートから読み出し、レジスタに記憶する(ステップS2005)。RAMクリアスイッチ954と設定キー971が操作されているか否かの判定は、周辺制御基板1510が確実に起動した後に主制御MPU1311が行うため、周辺制御基板1510が起動するまでの待機中に、ホールの従業員がRAMクリアスイッチ954や設定キー971の操作を誤って中断すると、ホールの従業員が意図していない状態でRAMクリアスイッチ954と設定キー971が判定されてしまう。このため、電源投入時処理開始後の早い段階でRAMクリアスイッチ954と設定キー971の入力状態(レベル)を一時的な記憶手段であるレジスタ等に格納し、周辺制御基板1510の待機状態の終了後に一時的な記憶手段であるレジスタ等に格納したRAMクリアスイッチ954と設定キー971の状態を判定することによって、ホールの従業員が電源投入後の早い段階でキー操作を誤って中断しても、電源投入操作時のRAMクリアスイッチ954や設定キー971の操作を確実に検出する。
その後、停電予告信号が停電中であるかを判定する(ステップS2006)。停電予告信号が検出されていれば、パチンコ機の電源電圧が正常ではないので、ステップS2006で電源電圧が安定するまで待機する。
その後、設定値が所定の範囲内であるかを判定する(ステップS2007)。例えば、設定が1~6までの段階で選択可能なパチンコ機1において、設定値が格納されるワークの値が0~5に対応している(設定1のとき=0、設定6のとき=5)場合には、5以下の値が格納されていれば、所定の範囲内であると判定される。
設定値が所定の範囲内でなければ、設定値を0に初期化し(ステップS2023)、設定状態管理エリアにRAM異常を示す値(08H)を記録し(ステップS2024)、パチンコ機1のリセット信号による初期化を待つ。設定値は、チェックサムが計算される範囲ではなく、RAMクリア操作によって消去されないので、設定値が異常な値となっていても修正されない。このため、電源投入時に設定値に異常がないかを判定して、異常があれば通常遊技を起動しないようにしている。パチンコ機が設置されているホールでは、設定値を維持したまま遊技状態を初期化したい(例えば、潜伏確変(高確率非時短)をクリアして、低確率時短である通常の状態に戻したい)場合に、RAMクリア操作をすることがある。営業中のRAMクリア操作によって設定値が初期化されると、設定値を再設定して営業を継続するために電源を遮断して設定変更モードを起動して、元の設定値を設定し直す必要がある。このような手間を発生させないために、RAMクリア操作によって、設定値をクリアせずに維持している。
一方、設定値が所定の範囲内であれば、サブ起動待ちタイマ(例えば約2秒)を開始し、当該タイマがタイムアップするまでの間ウォッチドッグタイマを継続的にクリアし、周辺制御基板1510の起動を待つ(ステップS2008)。周辺制御基板1510の起動待ちは、設定値を判定した後でなくても、電源投入後から周辺制御基板1510に最初にコマンドを送信するまでの期間であればいつでもよい。
その後、停電予告信号が停電中であるかを再度判定する(ステップS2009)。停電予告信号が検出されていれば、パチンコ機1の電源電圧が異常なので、ステップS2009で待機する。
また、主制御RAM1312の遊技制御領域に異常があるかを判定し、判定結果をレジスタに格納する(ステップS2010)。具体的には、前回の電源遮断時に内蔵RAM1312にバックアップされている領域のうち遊技制御領域として使用されているデータ(スタックに退避されたデータは除く)から算出して記憶されたチェックサムと、同じ領域を使用して算出されたチェックサムとを比較し、両者が異なれば、主制御RAM1312に異常があると判定する。また、正常にバックアップされた(電源断時処理が正常に実行された)ことを示す停電フラグの値がバックアップフラグエリアに格納されていなければ、停電発生時に主制御RAM1312のデータが正常にバックアップされておらず(電源断時処理が正常に実行されておらず)、主制御RAM1312に異常があると判定する。
そして、主制御RAM1312の遊技制御領域に異常があれば、設定状態管理エリアの情報を退避し(ステップS2011)、設定状態管理エリアにRAM異常を示す値(08H)を仮に記録する(ステップS2012)。
そして、PFポートの値が記録されたレジスタ値のうち、設定キー971とRAMクリアスイッチ954のビットをマスクする(ステップS2013)。その後、電源投入時に設定キー971がONに操作されており、かつ、RAMクリアスイッチ954がONに操作されていたかを、レジスタに記憶された値を用いて判定する(ステップS2014)。そして、設定キー971がONに操作されており、かつ、RAMクリアスイッチ954がONに操作されていれば、設定変更操作がされていると判定し、図187のステップS2030に進む。
一方、設定キー971が操作されておらず、かつ、RAMクリアスイッチ954が操作されていなければ、停電発生時に設定変更モードであったかを判定する(ステップS2015)。例えば、S2011で退避した設定状態管理エリアの値が設定変更モード(02H)のときに、設定変更モード中に停電が発生したと判定する。
そして、設定変更モード中に停電が発生したと判定したときには図187のステップS2030に進む。
一方、設定変更モード中に停電が発生していないと判定したときには、主制御RAM1312の遊技制御領域に異常があるかを判定する(ステップS2016)。具体的には、前述したステップS2010でレジスタに格納された判定結果を用いて判定できる。その結果、主制御RAM1312の遊技制御領域に異常があれば、図187のステップS2031に進む。
一方、主制御RAM1312の遊技制御領域に異常がなければ、RAM異常処理中に停電が発生したかを判定する(ステップS2017)。例えば、退避した設定状態管理エリアの値がRAM異常を示す値(08H)のときに、RAM異常処理中に停電が発生したと判定する。
そして、RAM異常処理中に停電が発生したと判定したときには、図187のステップS2036に進む。一方、RAM異常処理中に停電が発生していないと判定したときには、設定状態管理エリアに通常遊技状態を示す値(00H)を記録する(ステップS2018)。ステップS2018で設定状態管理エリアに00Hを記録することによって、ステップS2012で設定状態管理エリアに仮に記録されたRAM異常を示す値(08H)を、正常な状態に戻している。また、ステップS2018で設定状態管理エリアに00Hを記録することによって、ステップS2016とS2019とからステップS2031にジャンプした際の設定状態管理エリアの値が異なることから、両者でプログラムを共通にでき、プログラムサイズを小さくできる。
その後、電源投入時にRAMクリアスイッチ954がONに操作されていたかを、レジスタに記憶された値を用いて判定する(ステップS2019)。そして、RAMクリアスイッチ954がONに操作されていれば、RAMクリア操作がされていると判定し、図187のステップS2031に進む。
本実施例のパチンコ機では、RAMクリアスイッチ954と設定キー971の操作と、設定状態管理エリアに記録された値とに基づいて、処理を振り分ける。例えば、主制御RAM1312が異常であると判定されると、設定状態管理エリアには08Hが記録され、電源が遮断されるまでに08Hが維持されるため、通常遊技処理を実行できない。このとき、一旦電源を遮断した後に設定変更操作をして電源を投入すると、RAM異常を解除できる。すなわち、ステップS2014で設定キー971とRAMクリアスイッチ954の両方が操作されている(設定変更操作)と判定されると、設定状態管理エリアがRAM異常を示す値(08H)から設定変更を示す値(02H)に更新され(ステップS2030)、RAM異常状態が終了する。このように、RAM異常からの復帰は、必ず設定変更を経由することになっている。換言すると、停電発生時の状態がRAM異常かを判定する前に、設定変更操作がされているかを判定するので、RAM異常は設定値の変更を契機としてのみ解消できる。
一方、RAMクリアスイッチ954が操作されていなければ、停電発生前の状態に復旧するために、停電発生時点での遊技状態の情報を電源投入時状態バッファに記憶する(ステップS2020)。
その後、電源投入時に設定キー971がONに操作されていたかを、レジスタに記憶された値を用いて判定する(ステップS2021)。そして、設定キー971がONに操作されていれば、設定確認操作がされていると判定し、設定状態管理エリアに設定確認モードを示す値(01H)を記録し(ステップS2022)、図187のステップS2036に進む。すなわち、停電発生時の状態が設定確認中かにかかわらず、設定キー971のみが操作されていれば(RAMクリアスイッチ954が操作されていなければ)、設定確認モードに移行する。
ステップS2018からS2022は、RAMクリアスイッチ954か設定キー971の少なくとも一つが操作されていない場合に実行される処理であることから、RAMクリアスイッチ954の操作の判定(ステップS2019)と、設定キー971の操作の判定(ステップS2021)とのいずれを先に行ってもよい。すなわち、図示したように、RAMクリアスイッチ954の操作を判定(ステップS2019)した後に設定キー971の操作を判定(ステップS2021)してもよく、設定キー971の操作を判定(ステップS2021)した後にRAMクリアスイッチ954の操作を判定(ステップS2019)してもよい。
次に、電源投入時処理(図186)の続きである図187を説明する。
ステップS2014または、ステップS2015でYESと判定されると、設定状態管理エリアに設定変更モードを示す値(02H)を記録する(ステップS2030)。そして、主制御RAM1312の遊技制御領域内の設定値及び設定状態管理エリア以外の領域と遊技制御領域内のスタック領域とを初期化する(ステップS2031)。その後、主制御RAM1312の遊技制御領域に異常があるかを判定する(ステップS2032)。具体的には、前述したステップS2010での判定結果がレジスタに記憶されているので、ステップS2032では、レジスタに格納された判定結果を用いてに基づいて判定できる。
主制御RAM1312の遊技制御領域に異常があると判定されたときには、フラグレジスタを遊技制御領域内スタック領域に退避し(ステップS2033)、RAM異常時初期化処理によって、主制御RAM1312のうち遊技制御領域外で使用されるRAM(ワークエリアとスタック領域)を初期化する(ステップS2034)。RAM異常時初期化処理の詳細は図189で後述する。そして、遊技制御領域内スタック領域に退避したフラグレジスタを復帰する(ステップS2035)。
その後、主制御MPU1311に内蔵されたデバイス(CTC、SIO等)の機能を初期設定し(ステップS2036)、主制御MPU1311に内蔵されたハードウェア乱数(例えば当落乱数)を起動する(ステップS2037)。そして、電源投入時設定処理を実行する(ステップS2038)。電源投入時設定処理の詳細は図194で後述する。
最後にタイマ割込みを許可に設定し(ステップS2039)、主制御側メイン処理(図188)に進む。
図188は、主制御MPU1311が実行する主制御側メイン処理のフローチャートである。主制御側メイン処理は、電源投入時処理(図187)のステップS2039の後に実行される。
まず、主制御MPU1311は、停電予告信号を取得し、停電予告信号がONであるかによって停電が発生しているかを判定する(ステップS2040)。停電予告信号がONでない場合、正常に電源が供給されているので、乱数更新処理2を実行する(ステップ2041)。乱数更新処理2の詳細は図195で後述する。乱数更新処理2では、主として特別抽選や普通抽選において当選判定を行うための乱数以外の乱数を更新する。
一方、停電予告信号を検出した場合、電源断時処理(ステップS2042~S2046)を実行する。電源断時処理では、停電発生前の状態に復帰させるためのデータをバックアップする処理を実行する。具体的には、まず、割込みを禁止する(ステップS2042)。これにより後述するタイマ割込み処理が行われなくなり、主制御内蔵RAM1312へのデータの書き込みを禁止し、遊技情報の書き換えを保護する。さらに、主制御MPU1311は、出力ポートをクリアして、各ポートからの出力によって制御される機器の動作を停止する(ステップS2043)。具体的には、ソレノイド・停電クリア・ACK出力ポートに停電クリア信号OFFビットデータを出力する。なお、全ての出力ポートがクリアされなくてもよく、例えば、電力消費が大きいソレノイドやモータを制御するための出力ポートをクリアしてもよい。これらの出力ポートをクリアすることによって、主基板側電源断時処理が終了するまでの消費電力を低減し、主基板側電源断時処理を確実に終了できるようにする。
続いて、主制御MPU1311は、バックアップされるワークエリアに格納されたデータが正常に保持されたか否かを判定するためのチェックサムを計算し、主制御RAM1312の所定のチェックサム格納エリアに記憶する(ステップS2044)。このチェックサムはワークエリアにバックアップされたデータが正常かの判定に使用される。なお、チェックサムが算出される対象の領域は、遊技制御領域内のワークエリアのうち、電源投入後主制御側メイン処理の実行までの間に変更される可能性がある設定状態管理(設定値と設定状態管理エリアの値)や、バックアップフラグや、チェックサムエリアの値を除外するとよい。
さらに、停電フラグとしてバックアップフラグエリアに正常に電源断時処理が実行されたことを示す値(5AH)を格納する(ステップS2045)。これにより、遊技バックアップ情報の記憶が完了する。最後に、RAMプロテクト有効(書き込み禁止)、禁止領域の無効をRAMプロテクトレジスタに書き込み、主制御RAM1312の所定の領域への書き込みを禁止し(ステップS2046)、停電から復旧するまでの間、待機する(無限ループ)。主制御MPU1311は、主制御RAM1312の使用領域を指定することによって、指定領域以外の禁止領域へアクセスがあった場合には、異常と判定してリセットする機能を有する。主制御RAM1312の禁止領域へのアクセスによるリセット機能を解除するために、禁止領域をとして無効に設定することで主制御RAM1312の全領域へのアクセスを可能としている。なお、主制御RAM1312のうち未使用領域を禁止領域に指定して、禁止領域を有効にして、指定された禁止領域にアクセスを検出した場合には、主制御MPU1311がリセットされるようにしてもよい。
図189は、主制御MPU1311が実行するRAM異常時初期化処理のフローチャートである。RAM異常時初期化処理は、電源投入時処理(図187)のステップS2034において実行される。
まず、主制御MPU1311は、スタックポインタの値を遊技制御領域外のSP退避用バッファに格納し(ステップS2050)、遊技制御領域外スタックポインタ値をスタックポインタに設定し(ステップS2051)、全てのレジスタ値を遊技制御領域外のレジスタ退避用バッファに格納する(ステップS2052)。
その後、最初の電源投入時における初期化かを電源投入時の初回電源投入フラグの値にもとづいて判定する(ステップS2053)。最初の電源投入時とは、パチンコ機として最初に電源が投入されるとき、及び、バックアップ電源が途絶して主制御RAM1312にバックアップされたデータが消去した状態からの電源投入時を意味する。例えば、主制御基板1310とバックアップ電源(例えば、本体枠4に設置)との接続線を外すと、主制御RAM1312へのバックアップ電源の供給が絶たれ、主制御RAM1312のデータが保持できなくなる。
最初の電源投入時における初期化であれば、ステップS2056に進む。一方、最初の電源投入時における初期化でなければ、ベース算出対象の排出球が所定の範囲外かを判定する(ステップS2054)。ベース算出対象の排出球が所定の範囲外であれば、ステップS2056に進む。一方、ベース算出対象の排出球が所定の範囲内であれば、性能表示モニタの表示用パラメータが正常範囲内かを判定する(ステップS2055)。そして、性能表示モニタの表示用パラメータが正常範囲内であれば、RAM異常時初期化処理を終了し、呼出元の処理に戻る。
一方、性能表示モニタの表示モードが正常範囲外であれば、主制御RAM1312の使用領域外の全てのワークエリアに00Hを書き込んで初期化し(ステップS2056)、使用領域外の全てのスタック領域に00Hを書き込んで初期化し(ステップS2057)、電源投入時の初期化フラグに所定値(例えば、5AH)を設定して(ステップS2058)、呼出元の処理に戻る。
図190、図191は、主制御MPU1311が実行するタイマ割込み処理のフローチャートである。
まず、主制御MPU1311は、レジスタバンク選択フラグを1に設定し、レジスタのバンクを切り替える(ステップS2060)。なお、主制御MPU1311は、演算に使用するレジスタ群を二つ有し、一つはバンク0のレジスタ群として使用し、他はバンク1のレジスタ群として使用可能とされており、バンク切換を行わずに、両方のバンクのレジスタを使用できないように構成されている。主制御側メイン処理ではレジスタバンク0が使用され、タイマ割込み処理ではレジスタバンク1が使用される。このため、タイマ割込み処理の開始時にはバンクを1に切り替える命令を実行するが、タイマ割込み処理の終了時にはバンクを0切り替える命令を実行する必要がない。これは、主制御MPU1311は、バンクの状態をフラグレジスタ(例えば、Zフラグ、Cフラグがセットされているレジスタ)に記憶しており、フラグレジスタは、割込開始時にスタック領域に退避され、RET命令の実行によってスタック領域から復帰する。このため、RET命令を実行することでフラグレジスタに記憶したレジスタのバンクフラグも元に戻る。なお、バンクの状態をフラグレジスタに記憶しない構成を採用した場合、タイマ割込み処理の終了時にバンク切替命令を実行して、バンク0に戻す。
なお、フラグレジスタには、割込可否を制御するフラグも記憶されているため、割り込み許可に設定してからRET命令を実行しなくてもよい。なお、割込可否を制御するフラグは、タイマ割込み処理の開始時に、フラグレジスタをスタックした後に割込禁止状態に設定される。このため、タイマ割込処理中に割込を許可(EI命令など)するか、RETI命令を実行しない限り、割込み許可状態にはならない。
次に、LEDコモンカウンタを+1更新する。なお、LEDコモンカウンタ値が上限を超える場合は0にする(ステップS2061)。
次に、スイッチ入力処理1を実行する(ステップS2062)。スイッチ入力処理1では、主制御MPU1311の各種入力ポートの入力端子に入力されている各種信号を読み取り、ONエッジを作成し、入力情報として主制御RAM1312の入力情報記憶領域に記憶する。
なお、ステップS2062のスイッチ入力処理1は入賞信号に関する処理であり、後述するステップS2080のスイッチ入力処理2は不正検出センサ(磁石センサ、電波センサ、振動センサ等)の入力に関する処理である。このため、設定変更モードや設定確認モードで実行されるタイマ割込み処理では、ステップS2604においてNOと判定されるので、入賞検出は行われるが、不正は検出されない。なお、入賞が検出されても、賞球の払出しや変動表示等は実行されない。設定変更操作や設定確認操作はホールの従業員が行うものであり、設定変更モードや設定確認モードでは不正が行われず、不正を検出しない方が望ましいと考えられるからである。
なお、設定変更モードや設定確認モードでも、一部の不正検出センサ(例えば電波センサ)はスイッチ入力処理1で検出し、特定の種類の不正を監視してもよい。このようにすると、不正行為を行おうとする者(ゴト師)が電波を照射する等によって強制的に設定変更モードを起動する不正を検出できる。
続いて、乱数更新処理1を実行する(ステップS2063)。乱数更新処理1では、大当り判定用乱数、大当り図柄用乱数、及び小当り図柄用乱数を更新する。またこれらの乱数に加えて、図188に示した主制御側メイン処理の乱数更新処理2で更新される大当り図柄決定用乱数及び小当り図柄決定用乱数の初期値を変更するための、それぞれの初期値決定用乱数を更新する。
その後、設定状態管理エリアに遊技開始を示す値(00H)が記録されているかを判定する(ステップS2064)。設定状態管理エリアに遊技開始を示す値が記録されていれば、図191のステップS2080に進む。一方、設定状態管理エリアに遊技開始を示す値が記録されていなければ、LEDコモンポートをOFFにする(ステップS2065)。タイマ割込み処理の早い段階でLEDコモン信号をOFFにすることによって、LEDコモン信号がオンになるまでの時間、すなわちLEDの消灯時間を確保し、LEDの表示切替前後の表示が混ざって見えるゴースト現象を抑制し、LEDのちらつきを防止している。
その後、外部端子板784からセキュリティ信号を出力し(ステップS2066)、試験信号を出力する(ステップS2067)。ステップS2067では、遊技状態エラー信号のみONし、それ以外はOFFにするとよい。
そして、設定処理を実行する(ステップS2068)。設定処理の詳細は図192で後述する。
その後、設定表示処理を実行する(ステップS2069)。設定表示処理の詳細は図193で後述する。
さらに、送信情報記憶領域の値をシリアル通信回路に出力する周辺基板コマンド送信処理を実行する(ステップS2070)。送信情報記憶領域は、生成された送信コマンドを一時的に格納する記憶領域である。送信情報記憶領域に格納された値(コマンド)は、ステップ2070で読み出されてシリアル通信回路(SIO)の送信情報記憶領域に格納される。シリアル通信回路は、複数バイトのFIFO形式の送信バッファである送信情報記憶領域を有し、送信情報記憶領域に格納された値を、順次、周辺制御基板1510に送信する。
その後、ウォッチドッグタイマクリアレジスタWCLに所定値(18H)をセットして、ウォッチドッグタイマをクリアする(ステップS2071)。なお、ウォッチドッグタイマは、単純クリアモードを使用しているので、1ワードをセットすることによってウォッチドッグタイマがクリアされる。その後、復帰命令(例えばRETI)によって、レジスタのバンクを切り替え(ステップS2072)、割り込み前の処理に復帰する。
続いて図191を説明する。図190のステップS2064において設定状態管理エリアに遊技開始を示す値が記録されていると判定されると、主制御MPU1311は、不正検出のためのセンサ(スイッチ)の状態を検出するスイッチ入力処理2を実行する(ステップS2080)。具体的には、磁石を用いた不正行為を検出する磁気検出スイッチ3024からの検出信号などを読み取り、所定のレベル(ONレベル又はOFFレベル)が所定時間継続している場合、入力情報記憶領域に記憶する。スイッチ入力処理2で生成された各不正検出センサの検出状態に基づいて、ステップS2084の不正行為検出処理で不正が検出されたか否かを判定する。なお、不正行為検出処理(ステップS2084)では、不正検出センサによる不正検出の他に、大入賞口、普通電動役物の入賞過多等の入賞異常も判定する。
その後、タイマ更新処理を実行する(ステップS2081)。タイマ更新処理では、例えば、特別図柄及び特別電動役物制御処理で決定される変動表示パターンに従って特別図柄表示器1185が点灯する時間、普通図柄及び普通電動役物制御処理で決定される普通図柄変動表示パターンに従って普通図柄表示器1189が点灯する時間のほかに、主制御基板1310(主制御MPU1311)が送信した各種コマンドを払出制御基板951が正常に受信した旨を伝える払主ACK信号が入力されているか否かを判定する際にその判定条件として設定されているACK信号入力判定時間等の時間管理を行う。具体的には、変動表示パターン又は普通図柄変動表示パターンの変動時間が5秒間であるときには、タイマ割り込み周期が4msに設定されているので、このタイマ減算処理を行うごとに変動時間を4msずつ減算し、その減算結果が値0になることで変動表示パターン又は普通図柄変動表示パターンの変動時間を正確に計測している。
続いて、賞球制御処理を実行する(ステップS2082)。賞球制御処理では、入力情報記憶領域から入力情報を読み出し、読み出した入力情報に基づいて払い出される遊技球(賞球)の数を計算し、主制御RAM1312に書き込む。また、賞球数の計算結果に基づいて、遊技球を払い出すための賞球コマンドを作成したり、主制御基板1310と払出制御基板951との基板間の接続状態を確認するためのセルフチェックコマンドを作成したりする。主制御MPU1311は、作成した賞球コマンドやセルフチェックコマンドを主払シリアルデータとして払出制御基板951に送信する。
続いて、枠コマンド受信処理を実行する(ステップS2083)。払出制御基板951では、払出制御プログラムによって、状態表示に区分される1バイト(8ビット)の各種コマンド(例えば、枠状態1コマンド、エラー解除ナビコマンド、及び枠状態2コマンド)を送信する。一方、後述するように、払出制御プログラムによって、払出動作にエラーが発生した場合にエラー発生コマンドを出力したり、操作スイッチの検出信号に基づいてエラー解除報知コマンドを出力する。枠コマンド受信処理では、各種コマンドを払主シリアルデータとして正常に受信すると、その旨を払出制御基板951に伝える情報を主制御内蔵RAM1312の出力情報記憶領域に記憶する。また、主制御MPU1311は、払主シリアルデータとして正常に受信したコマンドを2バイト(16ビット)のコマンドに整形し(例えば、枠状態表示コマンド、エラー解除報知コマンドなど)、上述した送信情報記憶領域に記憶する。具体的には、枠コマンド受信処理では、払出制御基板951から受信したコマンドに対応した報知を行うために、払出制御基板951から受信したコマンドを周辺制御基板1510に送信するコマンドの体系に適合するように修正して、他の生成したコマンドと同様にシリアル通信回路(SIO)の送信情報記憶領域に格納する。また、払出制御基板951からのコマンドを正常に受信した場合には、主ACK信号の出力を制御するための信号を生成する。主ACK信号は、シリアル通信回路ではなく、出力ポートから払出制御基板951に直接出力される。
続いて、不正行為検出処理を実行する(ステップS2084)。不正行為検出処理では、不正に関連した異常状態(磁気、振動、入賞異常等)を確認する。例えば、上述した入力情報記憶領域から入力情報を読み出し、大当り遊技状態でない場合にカウントスイッチによって大入賞口2005、2006に遊技球が入球していると検知されたとき等には、主制御プログラムは、異常状態として報知表示に区分される入賞異常表示コマンドを作成し、送信情報として上述した送信情報記憶領域に記憶する。
続いて、入賞スイッチや始動口スイッチに関する各種スイッチの通過検出時に対応するコマンドを作成し送信情報記憶領域にセットするスイッチ通過時コマンド出力処理を実行する(ステップS2085)。
そして、フラグレジスタを遊技制御領域内のスタック領域に退避し(ステップS2086)、ベース表示器出力処理を実行する(ステップS2087)。ベース表示器出力処理は、他の処理と異なり、遊技制御領域外の第2領域を使用して実行される処理であり、パチンコ機1の仕様に影響を受けない共通の処理である。このため、ベース表示器出力処理の独立性を担保するために、ベース表示器出力処理の実行前後に、フラグレジスタなどの所定のデータを遊技制御領域内のスタック領域に退避して、ベース表示器出力処理で更新されないようにしている。その後、遊技制御領域内のスタック領域に退避したフラグレジスタを復帰する(ステップS2088)。
続いて、特別図柄及び特別電動役物制御処理を実行する(ステップS2089)。特別図柄及び特別電動役物制御処理では、大当り用乱数値が主制御内蔵ROMに予め記憶されている当り判定値と一致するか否かを判定し、大当り図柄乱数値に基づいて確率変動状態に移行するか否かを判定する。そして、大当り用乱数値が当り判定値と一致している場合には、大入賞口2005、2006を開閉動作させるか否かを決定する。この決定により大入賞口2005、2006を開閉動作させる場合、大入賞口2005、2006が開放(又は、拡大)状態となることで大入賞口2005、2006に遊技球が受け入れ可能となる遊技状態となって遊技者にとって有利な遊技状態に移行する。また、確変移行条件が成立している場合には、その後、確率変動状態に移行する一方、確変移行条件が成立していない場合には当該確率変動状態以外の遊技状態に移行する。ここで、「確率変動状態」とは、上述した特別抽選の当選確率が通常遊技状態(低確率状態)と比較して相対的に高く設定された状態(高確率状態)をいう。
続いて、普通図柄及び普通電動役物制御処理を実行する(ステップS2090)。普通図柄及び普通電動役物制御処理では、上述した入力情報記憶領域から入力情報を読み出し、ゲートスイッチ2352からの検出信号が入力端子に入力されていたか否かを判定する。検出信号が入力端子に入力されていた場合には、普通図柄当り判定用乱数を抽出し、主制御内蔵ROMに予め記憶されている普通図柄当り判定値と一致するか否かを判定する(「普通抽選」という)。そして、普通抽選による抽選結果に応じて第二始動口扉部材2549を開閉動作させるか否かを決定する。この決定により開閉動作をさせる場合、第二始動口扉部材2549が開放(又は、拡大)状態となることで始動口2004に遊技球が受け入れ可能となる遊技状態となって遊技者にとって有利な遊技状態に移行する。
続いて、出力データ設定処理を実行する(ステップS2091)。出力データ設定処理では、主制御MPU1311の各種出力ポートの出力端子から各種信号を出力する。例えば、出力情報に基づいて主制御MPU1311の所定の出力ポートの出力端子から、払出制御基板951からの各種コマンドを正常に受信したときには主払ACK信号を払出制御基板951に出力したり、大当り遊技状態であるときには大入賞口2005、2006の開閉部材2107の開閉動作を行うアタッカソレノイド(第一アタッカソレノイド2113、第二上アタッカソレノイド2553、第二下アタッカソレノイド2556)に駆動信号を出力したり、始動口(第二始動口扉部材2549)の開閉動作を行う始動口ソレノイド2550に駆動信号を出力したりするほかに、ホールコンピュータへの出力情報として、確率変動中情報出力信号、特別図柄表示情報出力信号、普通図柄表示情報出力信号、時短中情報出力情報、始動口入賞情報出力信号等の遊技に関する各種情報(遊技情報)信号及びセキュリティ信号を外部端子板784に出力する。
また、出力データ設定処理では、スイッチ入力処理2(ステップS2080)で計数されたアウト球数に対応する信号を外部端子板784から出力する。例えば、所定のアウト球数(10個など)毎に外部端子板784から所定長のパルス信号を出力してもよい。
また、出力データ設定処理では、パチンコ機1に接続された検査装置に出力するための試験信号を設定する。試験信号には、例えば、遊技状態を示す信号や普通図柄、特別図柄の停止図柄を示す信号が含まれる。
その後、図190のステップS2070に進む。
図192は、設定処理のフローチャートである。設定処理は、設定状態管理エリアが通常遊技状態を示す値(00H)ではない場合に、タイマ割込み処理のステップS2068において実行され、主に設定値を変更する処理を実行する。
まず、主制御MPU1311は、設定状態管理エリアにRAM異常を示す値(08H)が記録されているかを判定する(ステップS2100)。設定状態管理エリアにRAM異常を示す値が記録されていれば、設定処理を実行することなく、呼出元の処理に戻る。
RAM異常と判定されると設定処理を繰り返し実行することになるため、特別図柄や普通図柄に関する処理が実行されず、遊技が全くできない状態になる。このRAM異常は、一旦電源を遮断して停電処理を実行後、電源を再投入する際に、設定キー971とRAMクリアスイッチ954とで設定変更モードを起動する操作をすることによって、設定変更状態となりRAM異常が解消される。そして、設定キー971を元に戻す操作によって設定変更モードが終了して通常遊技が開始可能となる。
また、電源を再投入する際に、設定キー971とRAMクリアスイッチ954とで設定変更モードを起動する以外の操作をした場合、設定状態管理エリアのRAM異常を示す値(08H)は維持され、RAM異常状態が継続し、通常遊技を開始できない。つまり、RAM異常を解消して通常遊技状態にするためには、必ず、設定変更モードを経由する必要がある。
一方、設定状態管理エリアにRAM異常を示す値が記録されていなければ、設定キー971がOFF位置に戻ったかを判定する(ステップS2101)。具体的には、設定キー971のONからOFFへのエッジ、又は、ONからOFFへ変化してから所定期間経過したかを検出する。
設定キー971がOFF位置に戻ったと判定されると、セキュリティ信号出力タイマに出力時間を設定し(ステップS2102)、設定状態管理エリアを初期化して(ステップS2103)、電源投入時設定処理を実行し(ステップS2104)、呼出元の処理に戻る。
設定変更モードを終了する操作(設定キー971をOFF)がされた場合、セキュリティ信号出力タイマに出力時間値を設定することによって、設定変更モードの終了後セキュリティ信号がOFFになるまでの遅延時間を設ける。このため、設定変更モードや設定確認モードが短時間(例えば、一度のタイマ割込み処理内)で終了しても、セキュリティ信号の最短の出力信号をセキュリティ信号出力タイマに出力時間値として設定した分だけ確保でき、ホールコンピュータが確実にセキュリティ信号を検出できる。
また、セキュリティ信号がOFFになるまでの遅延時間中に不正を検出した場合、セキュリティ信号を維持したまま、新たに検出した不正に対応した期間又は時間分、セキュリティ信号を出力するとよい。
さらに、セキュリティ信号がOFFになるまでの遅延時間中に停電が発生した場合、電源復帰時に通常遊技状態でホットスタートすると、残時間分のセキュリティ信号を出力し、RAMクリアスイッチの操作によるRAMクリア時又はRAM異常によるRAMクリア時には、残時間分のセキュリティ信号を出力しない。これは、主制御RAM1312の初期化によって、セキュリティ信号出力タイマ値がリセットされ、セキュリティ信号の出力が停止するためである。
セキュリティ信号出力中に停電が発生した後に電源が投入されたときには、ホットスタート、RAMクリア、設定変更モード、設定確認モード、RAM異常状態継続の5パターンのいずれかになる。
設定変更モード及び設定確認モードに移行した場合、起動されたモードが終了し、遅延時間が経過するまでセキュリティ信号が出力される。RAM異常状態が継続する場合、電源が復帰しても設定変更操作がされていないので、継続するRAM異常によるセキュリティ信号が出力される。ホットスタートの場合、残余時間分だけセキュリティ信号が出力される。
セキュリティ信号を継続して出力する場合でも、電源投入時のパワーオンリセット信号によってセキュリティ信号の出力が停止し、所定時間(例えば、周辺制御基板1510の起動待ち時間中)の経過後にタイマ割込み処理に移行してからセキュリティ信号の出力が再開する。つまり、以下の場合においてセキュリティ信号出力中に停電が発生した後にセキュリティ信号を継続して出力するときでも、電源復帰後の所定の期間はセキュリティ信号の出力を停止する期間を設けている。
・不正検出などによるセキュリティ信号出力中に停電が発生した後、ホットスタートで電源が復帰する場合
・RAM異常によるセキュリティ信号出力中に停電が発生した後、電源が復帰して、RAM異常が継続する場合
・設定変更モードによるセキュリティ信号出力中に停電が発生した後、電源が復帰して、設定変更モードが継続する場合
・設定確認モードによるセキュリティ信号出力中に停電が発生した後、電源が復帰して、設定確認モードが継続する場合
このように、セキュリティ信号出力中に停電が発生した後にセキュリティ信号を継続して出力するときでも、電源復帰後の所定の期間はセキュリティ信号の出力を停止することによって、ホールコンピュータ側でセキュリティ信号に異常があったのか、セキュリティ信号の出力に伴う状態が解除されたのかを判別できる。
また、設定キー971のみが操作された設定確認モードでは、セキュリティ信号が出力される残時間にかかわらず、設定確認モードが終了するまでセキュリティ信号を出力し、設定確認モードが終了して遅延時間が経過した後にセキュリティ信号の出力を停止する。また、設定キー971及びRAMクリアスイッチ954が操作された設定変更モードでも設定確認モードと同様の処理を行うとよい。
一方、設定キー971がOFF位置に戻っていないと判定されると、設定状態管理エリアに設定変更を示す値(02H)が記録されているかを判定し(ステップS2105)、設定変更スイッチ972が操作されたかを判定する(ステップS2106)。なお、設定変更スイッチ972は、RAMクリアスイッチ954と兼用される構成でもよい。その結果、設定状態管理エリアに設定変更を示す値が記録されており、かつ、設定変更スイッチ972が操作されたと判定されると、設定値を+1更新する。なお、設定値が上限6を超える場合は1にする(ステップS2107)。その後、呼出元の処理に戻る。
一方、設定状態管理エリアに設定変更を示す値が記録されておらず(つまり、設定確認モードであり)、又は、設定変更スイッチ972が操作されていないと判定されると、設定値を更新せずに、呼出元の処理に戻る。
なお、設定変更スイッチ972の操作を判定する際(直前又は直後に)、設定キー971がONに操作されているかを判定してもよい。このように、設定変更スイッチ972の操作時に設定キー971の操作を判定すると、停電発生時に設定変更モードであり、停電復帰時に設定キー971がONに操作されていなくても、設定変更スイッチ972の操作によって設定変更が可能となることを防止できる。
図193は、設定表示処理のフローチャートである。設定表示処理は、タイマ割込み処理のステップS2069において実行される。
まず、主制御MPU1311は、設定状態管理エリアにRAM異常を示す値(08H)が記録されているかを判定する(ステップS2110)。設定状態管理エリアにRAM異常を示す値が記録されていなければ、現在の設定値がベース表示器1317に表示されるようにLEDのセグメント端子の出力を設定する(ステップS2111)。一方、設定状態管理エリアにRAM異常を示す値が記録されていれば、エラーがベース表示器1317に表示されるように、LEDのセグメント端子の出力を設定する(ステップS2112)。
その後、LEDコモンカウンタに対応したLEDコモン信号を出力し(ステップS2113)、設定値又はエラー表示に対応する表示データ(セグメント信号)をベース表示器1317に出力するようドライバを駆動し(ステップS2114)、呼出元の処理に戻る。
図194は、電源投入時設定処理のフローチャートである。電源投入時設定処理は、サブルーチン化されており、電源投入時処理(図187)のステップS2038と設定処理のS2104で呼び出されて実行される。
まず、主制御MPU1311は、電源投入時動作コマンドを作成し、作成したコマンドを送信情報記憶領域にセットする(ステップS2120)。電源投入時動作コマンドは、図202(A)に示すように、設定状態管理エリアの記録内容を通知するコマンドである。
次に、入力レベルデータ2領域の設定キー971に対応するビットと設定変更スイッチ972に対応するビットとを初期値である1に設定する。なお、他のビットは0を設定するとよい(ステップS2121)。入力レベルデータ2エリアの設定キー971に対応するビットと設定変更スイッチ972に対応するビットを1に設定するのは、次のタイマ割込み時に当該スイッチのビットを1で検知して、ONエッジが誤って作られないようにするためである。
その後、設定状態管理エリアに遊技開始可能状態を示す値(00H)が記録されているかを判定する(ステップS2122)。設定状態管理エリアに遊技開始可能状態を示す値が記録されていなければ、設定変更モードであるか設定確認モードであるかRAM異常のいずれかなので、電源投入時設定処理を終了し、呼出元の処理に戻る。
一方、設定状態管理エリアに遊技開始可能状態を示す値(00H)が記録されていれば、通常遊技を開始できる状態なので、主制御RAM1312を初期化したか否かに応じて遊技制御領域内ワークエリアを初期設定する(ステップS2123)。
その後、電源投入時状態コマンドを作成し、作成したコマンドを送信情報記憶領域に格納する(ステップS2124)。電源投入時状態コマンドは、図202(B)に示すように、設定状態管理エリアの記録内容に基づいて、通常遊技開始可能状態であるかを通知するコマンドである。
そして、電源投入時復帰先コマンドを作成し、作成したコマンドを送信情報記憶領域にセットする(ステップS2125)。電源投入時復帰先コマンドは、図202(C)に示すように、特別図柄に関する遊技状態を通知するコマンドである。
さらに、設定値コマンドを作成し、作成したコマンドを送信情報記憶領域にセットする(ステップS2126)。設定値コマンドは、図202(D)に示すように、設定値を通知するコマンドである。
なお、電源投入時状態コマンド、電源投入時復帰先コマンド、設定値コマンドと共に、特別図柄変動表示ゲームの保留数を示す特別図柄保留数コマンドを送信して、機能表示ユニット1400やメイン液晶表示装置1600において保留数表示を停電発生前の状態に復旧させてもよい。なお、特別図柄保留数コマンドを送信順序は、電源投入時状態コマンド、電源投入時復帰先コマンド及び設定値コマンドの送信後でも、これらのコマンドの送信前でも、これらのコマンドの送信途中に送信してもよい。
その後、呼出元の処理に戻る。
電源投入時設定処理は、停電復帰時に設定変更モードでも設定確認モードでもない場合や、設定変更モードの終了時や設定確認モードの終了時に実行されるので、前述した各コマンド(電源投入時動作コマンド、電源投入時状態コマンド、電源投入時復帰先コマンド、設定値コマンド)は、設定変更モードでも設定確認モードでもない停電復帰時や設定変更モードの終了時や設定確認モードの終了時に送信される。
図195は、乱数更新処理2のフローチャートである。乱数更新処理2は、メイン処理(図188)のステップS2041において実行され、主として特別抽選や普通抽選において当選判定を行うための乱数以外の乱数を更新する。
まず、主制御MPU1311は、割込み禁止を設定し(ステップS2131)、初期値乱数を更新し(ステップS2132)、割込み許可を設定する(ステップS2133)。初期値乱数は、タイマ割込み処理のステップS2063の乱数更新処理1でも更新されるため、タイマ割込み処理によって初期値乱数更新処理が中断しないように、初期値乱数更新処理の前に割込みを禁止し、初期値乱数更新処理の後に割込みを許可している。初期値乱数は、特別図柄の大当りを抽選するための大当り判定用乱数、普通図柄の当りを抽選する当り乱数、特別図柄の大当り時の図柄の種別(低確率/高確率/時短/非時短等)を決定する乱数などの一周期ごとの初期値を変更するための乱数である。
その後、当落乱数以外の乱数(初期値乱数を除く)を更新し(ステップS2134)、呼出元の処理に戻る。
図196は、主制御MPU1311が実行するタイマ割込み処理の別例のフローチャートである。なお、図181、図182で前述したタイマ割込み処理と同じ処理ステップには同じ符号を付し、その詳細の説明は省略する。
以下に説明する別例1においては、設定確認モードにおいても設定変更モードと同様に、主制御RAM1312が初期化されるとよい。この別例1において、電源復帰時に設定キー971の操作が検出されると、設定変更モードでも設定確認モードでも主制御RAM1312が初期化されることから、RAMクリアスイッチ954は、設定変更モードか設定確認モードかを切り替えるものではなく、設定値を変更する操作としての機能のみを有することになる。
まず、主制御MPU1311は、レジスタバンク選択フラグを1に設定し、レジスタのバンクを切り替え(ステップS2060)、スイッチ入力処理3を実行し(ステップS2141)、スイッチ入力処理3の詳細は図197で後述する。なお、ステップS2141では、図197で説明するスイッチ入力処理3ではなく、S2062のスイッチ入力処理1を適用してもよい。
そして、乱数更新処理1を実行し(ステップS2063)、設定変更/確認処理を実行する(ステップS2142)。設定変更/確認処理の詳細は図200で後述する。
続いて、スイッチ入力処理2を実行し(ステップS2080)、タイマ更新処理を実行し(ステップS2081)、賞球制御処理を実行する(ステップS2082)。続いて、枠コマンド受信処理を実行し(ステップS2083)、不正行為検出処理を実行し(ステップS2084)、スイッチ通過時コマンド出力処理を実行する(ステップS2085)。
そして、フラグレジスタを遊技制御領域内のスタック領域に退避し(ステップS2086)、ベース表示器出力処理を実行し(ステップS2087)、遊技制御領域内のスタック領域に退避したフラグレジスタを復帰する(ステップS2088)。続いて、特別図柄及び特別電動役物制御処理を実行し(ステップS2089)、普通図柄及び普通電動役物制御処理を実行し(ステップS2090)、出力データ設定処理を実行する(ステップS2091)。さらに、周辺基板コマンド送信処理を実行し(ステップS2070)、ウォッチドッグタイマをクリアし(ステップS2071)、復帰命令(例えばRETI)によって、レジスタのバンクを切り替え(ステップS2072)、割り込み前の処理に復帰する。
図197は、スイッチ入力処理3のフローチャートである。スイッチ入力処理3は、タイマ割込み処理のステップS2141において実行され、主制御MPU1311の各種入力ポートの入力端子に入力されている各種信号を読み取り、ONエッジを作成し、入力情報として主制御RAM1312の入力情報記憶領域に記憶する。
まず、主制御MPU1311は、スイッチ入賞情報データの先頭アドレスを設定し(ステップS2160)、スイッチ入賞情報データから処理の繰り返し回数を取得する(ステップS2161)。処理の繰り返し回数は、スイッチ入賞情報データテーブルのブロックの数nである。そして、スイッチ入賞情報データで指定された入力ポートアドレスを取得し(ステップS2162)、スイッチ入賞情報データで指定された入力レベルデータエリアアドレスを取得する(ステップS2163)。さらに、取得した入力ポートアドレスから入力情報を読み込み(ステップS2164)、読み込んだ入力情報をスイッチ入賞情報データで指定された論理補正値を用いて補正する(ステップS2165)。
その後、設定状態管理エリアに記録された値を参照して、設定変更モードである又は設定確認モードであるかを判定する(ステップS2166)。そして、設定変更モード又は設定確認モードでなければ、補正値をスイッチ入賞情報データに指定された通常遊技中のマスク値でマスクする(ステップS2167)。このマスクによって、入力ポートのうち通常遊技中に使用するビットを取得できる。
一方、設定変更モード又は設定確認モードであれば、補正値をスイッチ入賞情報データに指定された設定変更/確認中のマスク値でマスクする(ステップS2168)。このマスクによって、入力ポートのうち設定変更モード又は設定確認モードにおいて使用するビットのみを取得できる。
その後、マスク処理で取得したビットから入力レベルデータを生成し、スイッチ入賞情報データで指定された入力レベルデータエリアを更新する(ステップS2169)。
そして、OFFからONへの変化のエッジデータを入力レベルデータから生成して、スイッチ入賞情報データで指定された入力エッジデータエリアを更新する(ステップS2170)。
その後、スイッチ入賞情報データとして次のブロックに設定し(ステップS2171)、全スイッチ入力ポートの処理が終了しているかを判定する(ステップS2172)。全スイッチ入力ポートの処理が終了していないと判定したときには、ステップS2162に戻り、次の入力ポートを処理する。一方、全スイッチ入力ポートの処理が終了したと判定したときには、スイッチ入力処理3を終了し、割り込み前の処理に復帰する。
図198(A)は、スイッチ入賞情報データテーブルの構成例を示す図である。
図198(A)に示すスイッチ入賞情報データテーブルはn個のブロック毎に分かれて構成されており(nは処理の繰り返し回数)、各ブロックには入力ポートアドレス、論理補正値、通常遊技中マスク値、設定変更/確認中マスク値、及び入力レベルデータエリアのアドレスが含まれる。
図198(B)は、スイッチ入力レベル/エッジデータエリアの構成例を示す図である。
スイッチ入力レベル/エッジデータエリアは、入力レベルデータエリアのアドレスと入力エッジデータエリアのアドレスとの組がn個含まれる。
入力エッジデータエリアのアドレスは、図示するように、入力レベルデータエリアの次のアドレスに設定されているので、スイッチ入賞情報データには指定されない。入力レベルデータエリアと入力エッジデータエリアとを連続して配置しない場合には、同テーブルに入力レベルデータエリアとともに入力エッジデータエリアのアドレスを設定することになる。なお、入力レベルデータエリアや入力エッジデータエリアのアドレスは、16ビット(2バイト)の値であるが、スイッチ入賞情報データテーブルに設定される入力レベルデータエリアや入力エッジデータエリアのアドレスとして設定される値は、下位の8ビット(1バイト)の値であってもよい。すなわち、アドレスの上位バイトは入力レベルデータエリアや入力エッジデータエリアの値で変化しない固定値なので、上位バイトはRAM領域のアドレスの上位バイトであり、下位バイトだけ設定すればよいことから、データ容量を削減できる。
図199は、スイッチ入賞情報データテーブルの別な構成例を示す図であり、図199(A)は、通常遊技状態で使用されるスイッチ入賞情報データテーブルの構成例を示し、図199(B)は、設定変更モード及び設定確認モードで使用されるスイッチ入賞情報データテーブルの構成例を示す。
図199に示すスイッチ入賞情報データテーブルは、いずれも、n個のブロック毎に分かれて構成されており(nは処理の繰り返し回数)、各ブロックには入力ポートアドレス、論理補正値、マスク値、及び入力レベルデータエリアのアドレスを含む。通常遊技状態で使用されるスイッチ入賞情報データテーブルと、設定変更モード及び設定確認モードで使用されるスイッチ入賞情報データテーブルとでは、論理補正値とマスク値とが異なるポートが含まれる。つまり、図198(A)に示すスイッチ入賞情報データテーブルでは、設定変更モード(及び設定確認モード)と通常遊技状態とでマスク値を異なる値にしているが、図199に示すスイッチ入賞情報データテーブルでは、設定変更モード(及び設定確認モード)と通常遊技状態とで異なるスイッチ入賞情報データテーブルを使用し、異なるスイッチ入賞情報データを取得可能としている。
このような構成に対応するため、スイッチ入力処理3(図197)を以下のように変更する。例えば、ステップS2160において、設定変更モード(又は設定確認モード)であるか通常遊技状態であるかを判定し、該判定結果に応じたスイッチ入賞情報データの先頭アドレスを設定する。そして、ステップS2166で、設定変更モードである又は設定確認モードであるかを判定することなく、ステップS2167において、補正値をスイッチ入賞情報データに指定されたマスク値でマスクする。
図200は、設定変更/確認処理のフローチャートである。設定変更/確認処理は、タイマ割込み処理のステップS2142において実行される。図200に示す設定変更/確認処理において、図181、図182で前述したタイマ割込み処理と同じ処理ステップには同じ符号を付し、その詳細の説明は省略する。
まず、主制御MPU1311は、設定状態管理エリアに遊技開始を示す値(00H)が記録されているかを判定する(ステップS2064)。設定状態管理エリアに遊技開始を示す値が記録されていれば、設定変更/確認処理を終了し、割り込み前の処理に復帰する。一方、設定状態管理エリアに遊技開始を示す値が記録されていなければ、LEDコモンポートをOFFにし(ステップS2065)、外部端子板784からセキュリティ信号を出力し(ステップS2066)、試験信号を出力する(ステップS2067)。そして、設定処理(図192)を実行し(ステップS2068)、設定表示処理(図193)を実行する(ステップS2069)。
図201(A)は、スイッチ入力ポート2の構成例を示す図である。
スイッチ入力ポート2は、各種スイッチやセンサの出力が入力されるポート群の一つであり、8ビットで構成される。図示する例では、ビット7では、レベル1で払出制御基板951からの受信確認信号(ACK)が検出される。ビット6では、レベル0で停電監視回路からの停電予告信号が検出される。ビット5では、RAMクリアスイッチ954が操作されると、信号レベルが1になる。ビット4では、設定キー971がONに操作されると、信号レベルが0になる。ビット3では、扉開放センサが扉枠3の開を検出すると、信号レベルが1になる。ビット2では、磁気検出スイッチ(磁気検出センサ)が磁気を検出するとレベルが0になる。ビット1、0は使用されていない。
図201(B)は、設定状態管理エリアの構成例を示す図である。
設定状態管理エリアは、図201(B)に示すように、パチンコ機1の動作モードが記録される1バイトの記憶領域であり、例えば下位の4ビットが使用され、上位の4ビットは定義されていない。具体的には、通常遊技状態では00H、設定確認モードでは01H、設定変更モードでは02H、主制御RAM1312に異常があれば08Hが記録される。
設定状態管理エリアは、RAMクリアスイッチ954のみの操作によるRAMクリア処理では00Hに更新されず、現在の値が維持される。また、設定確認モードの終了時には01Hから00Hに更新され、設定変更モードの終了時には02Hから00Hに更新される。さらに、主制御RAM1312が異常である場合、次の電源投入時の設定変更操作によって設定変更モードになると08Hから02Hに更新され、設定変更モードの終了時に02Hから00Hに更新される。
図202(A)は、電源投入時動作コマンドの構成例を示す図である。電源投入時動作コマンドは、設定状態管理エリアの記録内容を通知するコマンドである。例えば、電源投入時動作コマンドは2バイトで構成され、上位バイトがA0Hで、下位バイトが設定状態管理エリアの記録内容を示す。下位バイトの値は設定状態管理エリアの値に1を加算した値を格納している。これは、通常遊技中のときに設定状態管理エリアの値は00Hとなるため、コマンドとして送信される値が00Hであると、出力が0となるハードウェア異常と区別できないので、いずれかのビットが1にセットされるようにしている。
なお、電源投入時動作コマンドは、電源投入時処理で少なくとも1度作られる。具体的には、ホットスタート、RAMクリア及びRAM異常のときには1度作られ、設定変更モード及び設定確認モードでは、電源投入時処理と設定変更/確認終了時との2度作られる。
周辺制御基板1510は、電源投入時動作コマンドを受信すると、設定確認モード、設定変更モード、RAM異常の状態に応じて、前述した態様で報知を行う(図184参照)。
周辺制御基板1510が、電源投入時動作コマンドでA001Hを受信することなく、通常遊技中の遊技コマンドを受信した場合、遊技状態が不整合となっている可能性があるため、受信した遊技コマンドを無効と判定し、当該遊技コマンドに対する遊技動作(演出など)を開始しない。但し、所定条件を満たした(例えば、通常遊技中の遊技コマンドが連続して所定回数送信された)場合、周辺制御基板1510が電源投入時動作コマンド(A001H)を取りこぼした可能性があるため、受信した遊技コマンドの無効化を解除し、遊技コマンドに対応する演出を行うとよい。
なお、遊技コマンドが無効化されている状態で、受信した遊技コマンドのうち、所定条件を満たす演出を行い(例えば、図柄の動作、ランプ、可動体、音声等については受信したコマンドに対応する演出を行い)、表示装置の背景や所定のランプを用いて、遊技状態の不整合が発生している旨を報知してもよい。また、遊技状態の不整合が発生している旨を小さな音量で報知してもよい。これは、所定条件となるまで、何の演出も行わないと、遊技状態の不整合が発生していることを理解できない遊技者は、始動口に入賞しても特別図柄変動表示ゲームが開始しないようなパチンコ機1の故障だと思い、ホールで発生する可能性があるトラブルを防止するためである。なお、周辺制御基板1510が遊技コマンドを無効化していても、主制御基板1310は通常の遊技処理を実行しているので、機能表示ユニット1400における特別図柄や普通図柄などの機能表示は正常に表示される。
図202(B)は、電源投入時状態コマンドの構成例を示す図である。電源投入時状態コマンドは、設定状態管理エリアの記録内容に基づいて、通常遊技開始可能状態であるかを通知するコマンドである。例えば、電源投入時状態コマンドは2バイトで構成され、上位バイトが30Hで、下位バイトが01Hであれば、通常遊技開始可能状態であることを示す。電源投入時状態コマンドの下位バイトを用いて、パチンコ機の機種毎のシリーズコードを通知してもよい。例えば、ビット6~4を使用すると8種類のシリーズを識別できる。なお、電源投入時状態コマンドは、図220(C)に示す別例でもよい。図220(C)に示す電源投入時状態コマンドを使用すると、電源投入時バッファに記録された情報(停電前の遊技状態)を周辺制御基板1510に通知できる。
図202(C)は、電源投入時復帰先コマンドの構成例を示す図である。電源投入時復帰先コマンドは、特別図柄に関する遊技状態を通知するコマンドであり、例えば、電源投入時復帰先コマンドは2バイトで構成され、上位バイトが31Hで、下位バイトが特別図柄に関する遊技状態を示す。電源投入時復帰先コマンドは、停電発生時の特別図柄の状態及び特別電動役物の動作状態を通知する。電源投入時復帰先コマンドは、電源投入時に1回送信される。
図202(D)は、設定値コマンドの構成例を示す図である。設定値コマンドは、設定値を通知するコマンドであり、例えば、設定値コマンドは2バイトで構成され、上位バイトがA1Hで、下位バイトが設定値を示す。設定値コマンドは、設定変更モードでも設定確認モードでもない停電復帰時や設定変更モードの終了時や設定確認モードの終了時に送信される。また、特別図柄変動開始時や、遊技状態の変化時(大当り、確変、時短などの開始及び終了時)に送信する。これにより、周辺制御基板1510は、電源投入時に送信される設定値コマンドを取りこぼしても、その後の遊技において(例えば、特別図柄の変動開始)により、正しい設定値に変更されるため、誤った設定値に基づいて演出が行われないようになっている。設定値に基づく演出とは、表示器、ランプ、音声、可動体等の演出装置を用いて設定値を示唆する演出であり、通常時には発生し難い(又は発生しない)演出態様を所定の確率で発生させることによって設定値を示唆するものである。この設定値示唆演出は、以下に例示する演出の他の態様の演出も考えられ、ガセも含んでもよい。設定値示唆演出として、表示器の一例であるメイン液晶表示装置1600では、設定値に対応した予告等の演出を表示したり、図柄の変動態様を通常時と変える(例えば、左右中図柄の変動開始や確定のタイミングが通常時と違うタイミングになる(通常時は各図柄が同時に変動を開始し、高設定の場合には、左、中、右の順で変動を開始する等))、音声を用いると、始動口入賞時に設定値に対応した報知音が所定の確率で発生させたり、演出中の音声を通常時とは異なる音声を発生する(通常時が男性の声、高設定時には女性の声など)、などを行う。
図203は、様々な状態において、主制御基板1310から周辺制御基板1510へ送信されるコマンドを示す図である。以下の説明において、nは特別図柄/特別電動役物に関する処理状態を示すカウンタ値、mは設定値に応じた値である。
図示するように、通常遊技状態が起動するホットスタートでは、電源投入時動作コマンド(A001H)→電源投入時状態コマンド(3001H)→電源投入時復帰先コマンド(310nH)→設定値コマンド(A10mH)の順に送信される。
また、RAMクリアスイッチ954のみの操作による主制御RAM1312の初期化時には、電源投入時動作コマンド(A001H)→電源投入時状態コマンド(3001H)→電源投入時復帰先コマンド(3101H)→設定値コマンド(A10mH)の順に送信される。
また、設定変更モードでは、まず、電源投入時動作コマンド(A003H)が送信された後、設定変更モードで設定値が変更されて、設定キー971を通常位置に戻す操作の後、電源投入時動作コマンド(A001H)→電源投入時状態コマンド(3001H)→電源投入時復帰先コマンド(3101H)→設定値コマンド(A10mH)の順に送信される。
また、設定確認モードでは、まず、電源投入時動作コマンド(A002H)が送信された後、設定値を確認して、設定キー971を通常位置に戻す操作の後、電源投入時動作コマンド(A001H)→電源投入時状態コマンド(3001H)→電源投入時復帰先コマンド(310nH)→設定値コマンド(A10mH)の順に送信される。
また、RAM異常時には、まず、電源投入時動作コマンド(A009H)が送信され、電源遮断後の電源復帰時に設定変更操作(設定キー971及びRAMクリアスイッチ954がオン)によって設定変更モードが起動し、電源投入時動作コマンド(A003H)が送信される。その後、設定キー971を通常位置に戻す操作の後、電源投入時動作コマンド(A001H)→電源投入時状態コマンド(3001H)→電源投入時復帰先コマンド(3101H)→設定値コマンド(A10mH)の順に送信される。
なお、RAM異常時には、まず、電源投入時動作コマンド(A009H)が送信され、電源遮断後の電源復帰時に設定変更操作がされていなければ、RAM異常状態が継続し、電源投入時動作コマンド(A009H)が送信される。その後、設定キー971を通常位置に戻す操作の後、電源投入時動作コマンド(A001H)→電源投入時状態コマンド(3001H)→電源投入時復帰先コマンド(3101H)→設定値コマンド(A10mH)の順に送信される。
以上に説明したように、通常の遊技状態で主制御基板1310が起動する場合には、複数のコマンドが電源の復帰を示すコマンド群(所定順序の複数のコマンドの組み合わせ)が所定のタイミングで周辺制御基板1510に送信される。このため、A001H~A10mHまでの一連のコマンドの全ての受信が完了した後に通常遊技状態を開始可能であると判定し、当該一連のコマンドの一部のコマンドの受信ができない(取りこぼした)ときには、通常遊技状態を開始できないと判定して、通常遊技状態の開始不可を報知する。
すなわち、前述した遊技コマンドが無効化されている状態の演出と同様に、受信した遊技コマンドのうち、所定条件を満たす演出を行い(例えば、図柄の動作、ランプ、可動体、音声等については受信したコマンドに対応する演出を行い)、表示装置の背景や所定のランプを用いて、遊技状態の不整合が発生している旨を報知してもよい。
なお、周辺制御基板1510は、設定値コマンドを受信しなかった場合、特別図柄変動表示ゲームの開始時に送信される設定値コマンドによって、電源投入時に取りこぼした設定値コマンドを補って、通常遊技を開始してもよい。
また、周辺制御基板1510は、設定値コマンドを受信しなかった場合、周辺制御基板1510の電源投入時に所定の初期値(例えば、設定1)を設定値として、設定値コマンドを受信すると、受信したコマンドに対応する設定値に更新してもよい。
なお、電源投入時動作コマンド(A0001H)と電源投入時状態コマンド(3001H)とは、共に通常遊技開始可能状態を通知するものであり、通常は続けて送信されることから、いずれかを主制御基板に送信すれば足りる。
図204は、設定状態管理エリアの電源遮断前の状態から電源復旧後に設定される値の状態遷移を示す図である。
設定機能を有するパチンコ機の電源投入時の動作は、RAMクリアスイッチ954が操作されているか、また、設定キー971が操作されているかによって異なり、不正防止対策と利用者(ホールの従業員)の利便性を考慮した複数のパターンがある。
<パターン1>
図204(A)に示す、直前の電源遮断時に通常遊技状態(VALID_PLAY=00H)であり、かつ、停電復帰時に主制御RAM1312が正常である場合の動作例を説明する。まず、電源投入時にRAMクリアスイッチ954がONに操作されており、かつ、設定キー971がONに操作されている場合、主制御RAM1312は設定値とベース値以外の全領域スタック領域を含む遊技制御領域として使用される領域を初期化する。また、主制御MPU1311は、設定変更モードで起動し、設定状態管理エリアの値は02Hに更新される。また、ベース表示器1317は、設定変更に伴う設定値を表示する。
電源投入時にRAMクリアスイッチ954が操作されておらず(OFF)、かつ、設定キー971がONに操作されている場合、主制御RAM1312の記憶内容は初期化されない。また、主制御MPU1311は、設定確認モードで起動し、設定状態管理エリアの値は01Hに更新される。また、ベース表示器1317は、設定確認のために現在の設定値を表示する。
電源投入時にRAMクリアスイッチ954がONに操作されており、かつ、設定キー971が操作されていない(OFF)場合、主制御RAM1312は設定値とベース値以外の全領域スタック領域を含む遊技制御領域として使用される領域を初期化する。また、主制御MPU1311は、通常遊技状態で起動し、設定状態管理エリアの値は00Hに維持される。また、ベース表示器1317は、電源投入時の初期表示として性能表示に切り替えられたことを示す表示(例えば、5秒の全点滅)をした後にパチンコ機の性能を表すベース値を表示する。
電源投入時にRAMクリアスイッチ954が操作されておらず(OFF)、かつ、設定キー971が操作されていない(OFF)場合、主制御RAM1312の記憶内容は停電前の状態が維持される。なお、主制御RAM1312の遊技制御領域内の全ての記憶内容が維持されなくても、少なくとも、停電前の遊技状態に戻すための情報が記憶されている領域(遊技に関する情報が格納されている記憶領域(特別図柄、普通図柄に関する領域、賞球に関する領域、プログラムで生成される乱数(変動パターン乱数、初期値乱数など)))が維持されればよく、停電前の遊技状態に戻すために必要でない情報が記憶されている領域は電源復帰後に停電前と異なる状態となってもよい。また、主制御MPU1311は、通常遊技状態で起動し、設定状態管理エリアの値は00Hが維持される。なお、元の値にかかわらず、同じ値(00H)を設定してもよい。また、ベース表示器1317は、電源投入時の初期表示として性能表示に切り替えられたことを示す表示(例えば、5秒の全点滅)をした後にパチンコ機の性能を表すベース値を表示する。
<パターン2-1>
図204(B)に示すように、直前の電源遮断時に設定変更モードであり、かつ、停電復帰時に主制御RAM1312が正常である場合の動作例1では、電源投入時にRAMクリアスイッチ954の操作の有無や、設定キー971の操作の有無にかかわらず、主制御RAM1312は設定値とベース値以外のスタック領域を含む遊技制御領域として使用される領域を初期化する。また、主制御MPU1311は、設定変更モードで起動し、設定状態管理エリアの値は02Hが維持される。なお、元の値にかかわらず、同じ値(02H)を設定してもよい。また、ベース表示器1317は、設定変更に伴う設定値を表示する。
パターン2-1における主制御RAM1312の初期化は、停電発生時に既に実行された初期化処理で初期化された記憶領域とあわせてスタック領域を含む遊技制御領域として使用される領域を初期化すればよい。例えば、主制御RAM1312の初期化処理中に電源が遮断した場合、初期化処理が終わっていない残りの記憶領域を初期化すればよい。一方、停電時における初期化処理の進捗にかかわらず、電源復帰後に主制御RAM1312のスタック領域を含む遊技制御領域として使用される領域を初期化してもよい。
初期化処理中に停電が発生した場合、主制御RAM1312の初期化処理中であるかを記憶する領域(例えば、RAMクリア処理中フラグ)を設け、RAMクリア処理中フラグが設定されている間は初期化処理の対象となる記憶領域へのデータの書き込みを禁止するとよい。
また、設定変更モードや設定確認モードで停電を監視する処理を繰り返し実行してもよい。このため、メインループ(図22のステップS36からS40)の他、例えば、タイマ割り込みで停電予告信号を監視してもよい。
停電監視処理及び電源断時処理は、設定変更モードと設定確認モードと通常遊技状態との何れにおいても共通の処理で実行しても、別個の処理で実行しても、設定変更モードと設定確認モードでは共通の処理で実行し、通常遊技状態では別の処理で実行してもよい。すなわち、パチンコ機の動作における三つ以上の状態(動作モード)のうち、少なくとも二つの状態で停電監視処理及び電源断時処理を共通にしてもよい。
以上に説明したように、設定変更モードにおいて電源が遮断し、停電復帰時に主制御RAM1312が正常である場合のパターン2-1では、設定キー971やRAMクリアスイッチ954の操作にかかわらず、常に設定変更モードで起動する。例えば、ホールで設定変更作業中に停電が発生すると、電源復帰時にも設定変更モードが起動するとよい。しかし、電源復帰時に設定変更モードを起動するための設定キー971やRAMクリアスイッチ954の操作がされていないことがある。このため、パターン2-1のように制御することによって、電源復帰時に意図しない(設定変更モードとは異なる)状態になることを防止できる。
例えば、電源復帰時に設定キー971のみが操作されている(RAMクリアスイッチ954が操作されていない)と、設定変更モードではなく設定確認モードで起動したり、RAMクリアスイッチ954のみが操作されている(設定キー971が操作されていない)と、主制御RAM1312を初期化して通常の遊技状態が起動したり、何れのスイッチも操作されていないと、通常の遊技状態が起動することになる。しかし、パターン2-1のように制御すると、設定キー971やRAMクリアスイッチ954の操作にかかわらず、常に設定変更モードで起動する。
<パターン2-2>
直前の電源遮断時に設定変更モードであり、かつ、停電復帰時に主制御RAM1312が正常である場合には、パターン2-1とは異なり、図204(C)に示す別のパターンで動作してもよい。電源投入時にRAMクリアスイッチ954がONに操作されており、かつ、設定キー971がONに操作されている場合、主制御RAM1312は設定値とベース値以外のスタック領域を含む遊技制御領域として使用される領域を初期化する。また、主制御MPU1311は、設定変更モードで起動し、設定状態管理エリアの値は02Hが維持される。なお、元の値にかかわらず、同じ値(02H)を設定してもよい。また、ベース表示器1317は、設定変更に伴う設定値を表示する。
電源投入時のRAMクリアスイッチ954及び設定キー971の操作が上記以外の場合、電源投入時に、少なくともRAMクリアスイッチ954と設定キー971のいずれかが操作されていない(OFF)場合では、主制御RAM1312の記憶内容は変化しない。また、主制御MPU1311は、遊技停止状態で起動し、設定状態管理エリアの値は主制御RAM1312の異常を示す08Hに更新される。また、ベース表示器1317は、エラー(例えば、エラーコード)を表示する。遊技停止状態は、主制御MPU1311に無限ループを実行することによる遊技停止でも、通常遊技処理を実行しないことによる遊技停止でもよい。
すなわち、パターン2-1では、電源復旧後に設定キーとRAMクリアスイッチが何れの状態であったとしても無条件に設定変更モードに移行するものであるが、パターン2-2では、電源復帰時に設定キー971及びRAMクリアスイッチ954で設定変更モードを起動する操作がされているときには設定変更モードを起動し、設定キー971及びRAMクリアスイッチ954が他の状態では、遊技を実行できない状態(RAM異常)とする。すなわち、パターン2-2では、電源復帰時の設定キー971及びRAMクリアスイッチ954の少なくとも一つが操作されていたとしても、RAM異常状態として通常遊技を開始せず、設定変更モードを経由した後に通常遊技を開始する。このため、設定変更モードを起動する操作がされていないとき、RAM異常などの設定変更モードや設定確認モードとは別の状態で通常遊技を実行せず、遊技中止状態を報知することによって、ホールの従業員に設定変更モードを起動する操作を促してもよい。
設定状態管理エリアにRAM異常を示す値(08H)が記録されている場合、主制御RAM1312の遊技制御領域と遊技制御領域内スタック領域を初期化することなく、次に設定変更操作がされるまで遊技停止状態で待機する。遊技停止状態は、主制御MPU1311に無限ループを実行することによる遊技停止でも、通常遊技処理を実行しないことによる遊技停止でもよい。その後、一旦電源を遮断し、設定キーとRAMクリアスイッチとを設定変更モードに操作し、電源を投入することで、設定状態管理エリアの値は02Hに更新され、主制御RAM1312の遊技制御領域と遊技制御領域内スタック領域をクリアし、設定変更モードを開始する。
<パターン3-1、3-2>
図204(D)に示す、直前の電源遮断時に設定確認モードであり、かつ、停電復帰時に主制御RAM1312が正常である場合の動作例を説明する。まず、電源投入時にRAMクリアスイッチ954がONに操作されており、かつ、設定キー971がONに操作されている場合、主制御RAM1312は設定値とベース値以外のスタック領域を含む遊技制御領域として使用される領域を初期化する。また、主制御MPU1311は、設定変更モードで起動し、設定状態管理エリアの値は02Hに更新される。また、ベース表示器1317は、設定変更に伴う設定値を表示する。
電源投入時にRAMクリアスイッチ954が操作されておらず(OFF)、かつ、設定キー971がONに操作されている場合、主制御RAM1312の記憶内容は変化しない。また、主制御MPU1311は、設定確認モードで起動し、設定状態管理エリアの値は01Hに維持される。なお、元の値にかかわらず、同じ値(01H)を設定してもよい。また、ベース表示器1317は、設定確認のために現在の設定値を表示する。
電源投入時にRAMクリアスイッチ954がONに操作されており、かつ、設定キー971が操作されていない(OFF)場合、主制御RAM1312は設定値とベース値以外のスタック領域を含む遊技制御領域として使用される領域を初期化する。また、主制御MPU1311は、通常遊技状態で起動し、設定状態管理エリアの値は00Hに更新される。また、ベース表示器1317は、電源投入時の初期表示として性能表示に切り替えられたことを示す表示(例えば、5秒の全点滅)をした後にパチンコ機の性能を表すベース値を表示する。
電源投入時にRAMクリアスイッチ954が操作されておらず(OFF)、かつ、設定キー971が操作されていない(OFF)場合、主制御RAM1312の記憶内容は変化しない。また、主制御MPU1311は、通常遊技状態で起動し、設定状態管理エリアの値は00Hに更新される。また、ベース表示器1317は、電源投入時の初期表示として性能表示に切り替えられたことを示す表示(例えば、5秒の全点滅)をした後にパチンコ機の性能を表すベース値を表示する。なお、この場合、図204(E)に示すパターン3-2のように、主制御MPU1311は、設定確認モードで起動してもよく、設定状態管理エリアの値は01Hに維持され(元の値にかかわらず同じ値(01H)を設定してもよい)、ベース表示器1317は、設定確認のために現在の設定値を表示してもよい。
<パターン4>
図204(F)に示すように、停電復帰時に主制御RAM1312に異常がある場合の動作例を説明する。まず、電源投入時にRAMクリアスイッチ954がONに操作されており、かつ、設定キー971がONに操作されている場合、主制御RAM1312は設定値とベース値以外の全領域スタック領域を含む遊技制御領域として使用される領域を初期化する。また、主制御MPU1311は、設定変更モードで起動し、設定状態管理エリアの値は02Hとなる。また、ベース表示器1317は、設定変更のための表示をする。
電源投入時のRAMクリアスイッチ954及び設定キー971の操作が上記以外の場合、すなわち、電源投入時に、少なくともRAMクリアスイッチ954と設定キー971のいずれかが操作されていない(OFF)場合では、主制御RAM1312の記憶内容は変化しない。また、主制御MPU1311は、遊技停止状態で起動し、設定状態管理エリアの値は08Hが維持される。なお、元の値にかかわらず、同じ値(08H)を設定してもよい。また、ベース表示器1317は、エラー(例えば、エラーコード)を表示する。
なお、直前の電源遮断時に主制御RAM1312に異常がある場合には、電源遮断前に主制御RAM1312が初期化されていれば、停電復帰時に主制御RAM1312を再度初期化せずに、(1)主制御MPU1311に内蔵されているデバイスの初期設定を行う。(2)ハードウェア乱数を再起動する。(3)割り込み許可を設定するの少なくとも一つを実行後にメインループを実行するとよい。
また、直前の電源遮断時に主制御RAM1312に異常があっても、電源投入時には、停電前の状態がRAM異常かの判定(図179のステップS211)の前に、RAMクリアスイッチ954及び設定キー971の操作の有無を判定する。そして、電源投入時に設定変更操作(RAMクリアスイッチ954及び設定キー971がオン)が検出されると設定変更モードを起動するが、電源投入時に設定変更操作がされていない場合でも(設定確認モードを起動する操作がされている、RAMクリアスイッチ954のみが操作されている、何れも操作されていないの何れの場合でも)、RAM異常の状態を維持する。すなわち、通常は、設定変更モードの起動時と設定確認モードの起動時とは、タイマ割り込み処理内で設定変更モードの処理や設定確認モードの処理を実行するが、RAM異常状態から電源が再投入された場合には、設定変更モードと設定確認モードでは異なる処理を実行する。換言すると、RAM異常状態から電源が再投入されて復帰する場合、設定変更モードで起動するときは、通常と同様にタイマ割り込み処理内で設定変更モードの処理を実行するが、設定確認モードで起動するときは、タイマ割り込み処理内では通常と異なる処理を実行する。
このように、設定状態管理エリアにRAM異常を示す値(08H)が記録されると、電源を再投入しても遊技が開始できない状態となる。ただし、主制御RAM1312は既に初期化されているので、再度主制御RAM1312を初期化しなくてもよい。
次に、タイムチャートを用いてパチンコ機1の動作及びそのバリエーションを説明する。以下に説明するタイムチャートの概要は以下のとおりである。
・通常の設定変更に関するタイムチャート(図205)
・通常の設定確認に関するタイムチャート(図206)
・停電時に設定変更モードで、電源復帰後に設定キー971がOFFかつRAMクリアスイッチ954がOFFの状態で設定変更モードに移行する場合のタイムチャート(図207)
・停電時に設定変更モードで、電源復帰後に設定キー971がONかつRAMクリアスイッチ954がOFFの状態で設定変更モードに移行する場合のタイムチャート(図208)
・停電時に設定確認モードで、電源復帰後に設定キー971がOFFかつRAMクリアスイッチ954がOFFの状態で設定確認モードに移行する場合のタイムチャート(図209)
図205は、設定変更モードの開始から終了のタイムチャートである。
図205に示すタイムチャートでは、電源投入時にRAMクリアスイッチ954がONに操作されており、かつ、設定キー971がONに操作されているので、主制御MPU1311は設定変更モードで起動する。
まず、主制御基板1310に電源が供給され、5V電源が立ち上がると(T1)、リセット回路1335からリセット信号が出力され、主制御MPU1311が起動する(T2)。
主制御MPU1311は、リセット信号によってプログラムコードの先頭アドレスからプログラムを実行する。具体的には、主制御MPU1311はセキュリティチェック実行し、タイミングT3で主制御プログラムを開始する。その後、タイミングT4で設定キー971の信号のレベルとRAMクリアスイッチ954の信号のレベルをレジスタに記憶し、タイミングT5まで周辺制御基板1510の起動を待つ。
周辺制御基板1510は、通電の開始によって起動すると、客待ち演出を開始する。なお、周辺制御基板1510は、主制御基板1310からのコマンドを受信した後に客待ち演出を開始してもよい。
主制御MPU1311は、周辺制御基板起動待ち時間が経過したタイミングT5において、設定キー971の信号のレベルとRAMクリアスイッチ954の信号のレベルをレジスタから読み出し、設定状態管理エリアに02Hを記録して設定変更モードに移行する。また、主制御MPU1311は、機能表示ユニット1400の全LEDを点灯させる。さらに、主制御MPU1311は、セキュリティ信号の出力を開始する。なお、機能表示ユニットの表示態様については前述の図184に記載した通りである。
また、主制御MPU1311は、設定変更モードに移行することを示す電源投入時動作コマンド(A003H)を作成し、所定のタイミングで周辺制御基板1510に送信する。
周辺制御基板1510は、受信した電源投入時コマンドに従って、前述の図184に示した設定変更モードにおける演出(報知)を実行する。
設定変更モード中において、RAMクリアスイッチ954(設定変更スイッチ972兼用)が操作されると、主制御MPU1311はRAMクリアスイッチ954のONを検出し、設定値をNからN+1に更新し、ベース表示器1317は更新後の設定値N+1を表示する(T6)。さらに、RAMクリアスイッチ954(設定変更スイッチ972兼用)の2回目の操作によって、主制御MPU1311はRAMクリアスイッチ954のONを検出し、設定値をN+1からN+2に更新し、ベース表示器1317は更新後の設定値N+2を表示する(T7)。すなわち、設定変更モードでは、RAMクリアスイッチ954(設定変更スイッチ972兼用)が操作される毎に設定値が1~6の範囲で変更され、設定値が6を超えた場合には1に更新される。
ホールの従業員は、設定値の変更が終わると設定キー971をOFF位置に操作する。主制御MPU1311は、設定キー971のOFFエッジを検出すると、設定変更モードを終了し、設定状態管理エリアに00Hを記録し、電源投入時動作コマンド(A0001H)を作成して、通常遊技状態に移行する(T8)。作成された電源投入時動作コマンド(A0001H)は、所定のタイミングで周辺制御基板1510に送信される。設定状態管理エリアに00Hが記録されることによって、タイマ割込み処理において通常遊技中の処理を実行可能となる。また、主制御MPU1311は、機能表示ユニット1400の全点灯を終了し、通常遊技状態における表示を開始する。さらに、ベース表示器1317は、所定時間(例えば5秒)全LEDを点滅表示した後、通常遊技状態におけるベース値を表示する。このように、通常遊技状態の開始時にベース表示器1317を所定の態様で表示することによって、設定変更モードの終了が明確に分かり、設定変更モード終了時の操作ミスを低減できる。さらに、主制御MPU1311は、電源投入時状態コマンド(3001H)と電源投入時復帰先コマンド(3101H)と設定値コマンド(A10mH)を周辺制御基板1510に送信する。設定変更モードでは主制御RAM1312が初期化されるため、電源投入時復帰先コマンドの下位バイトは01Hになる。設定値コマンド(A10mH)のmは、図202(D)に示すように設定値に応じた1から6の数値である。なお、電源投入時動作コマンド(A0001H)と電源投入時状態コマンド(3001H)とは共に通常遊技開始可能状態を通知するものであり、通常は続けて送信されることから、いずれかを主制御基板に送信すれば足りる。
周辺制御基板1510は、受信した電源投入時状態コマンドで通常遊技開始可能状態であることを知り、通常遊技状態における演出(例えば、客待ち演出)を実行する。なお、周辺制御基板1510は、電源投入時状態コマンドで通常遊技開始可能状態であることを知ってから所定の遅延時間が経過した後に、設定変更中の報知演出を中止し通常遊技状態における演出(例えば、客待ち演出)を開始するように演出を切り替えてもよい。なお、所定の遅延時間中は、一部の演出装置によって設定変更中の報知演出を行うとよい、例えば、メイン液晶表示装置1600や音は通常遊技状態の演出に戻り、装飾ランプは設定変更中の報知演出を継続する。また、装飾ランプによる報知演出の継続は、一部の装飾ランプ(例えば、枠側)は報知演出を継続し、他の装飾ランプ(例えば、パネル側)はは通常遊技状態の演出に戻ってもよい。
また、主制御MPU1311は、設定変更モードの終了から所定時間(例えば、50ミリ秒)遅延した後、セキュリティ信号の出力を停止する(T9)。これは、設定変更モードが極めて短時間で終了して、セキュリティ信号が全く又は短時間しか出力されないと、ホールコンピュータで設定変更モードへの移行を把握できないため、セキュリティ信号の最低限の出力時間を確保するためである。
図206は、設定確認モードの開始から終了のタイムチャートである。
図206に示すタイムチャートでは、直前の電源遮断時に通常遊技状態又は設定確認モードであり、電源投入時にRAMクリアスイッチ954が操作されておらず、かつ、設定キー971がONに操作されているので、主制御MPU1311は設定確認モードで起動する。
まず、主制御基板1310に電源が供給され、5V電源が立ち上がると(T1)、リセット回路1335からリセット信号が出力され、主制御MPU1311が起動する(T2)。
主制御MPU1311は、リセット信号によってプログラムコードの先頭アドレスからプログラムを実行する。具体的には、主制御MPU1311はセキュリティチェック実行し、タイミングT3で主制御プログラムを開始する。その後、タイミングT4で設定キー971の信号のレベルとRAMクリアスイッチ954の信号のレベルをレジスタに記憶し、タイミングT5まで周辺制御基板1510の起動を待つ。
周辺制御基板1510は、通電の開始によって起動すると、客待ち演出を開始する。なお、周辺制御基板1510は、主制御基板1310からのコマンドを受信した後に客待ち演出を開始してもよい。
主制御MPU1311は、周辺制御基板起動待ち時間が経過したタイミングT5において、設定キー971の信号のレベルとRAMクリアスイッチ954の信号のレベルをレジスタから読み出し、設定状態管理エリアに01Hを記録して設定確認モードに移行する。また、主制御MPU1311は、機能表示ユニット1400の全LEDを点灯させる。さらに、主制御MPU1311は、セキュリティ信号の出力を開始する。
また、主制御MPU1311は、設定確認モードに移行することを示す電源投入時動作コマンド(A002H)を作成し、所定のタイミングで周辺制御基板1510に送信する。
周辺制御基板1510は、受信した電源投入時コマンドに従って、設定確認モードにおける演出を実行する。
ホールの従業員は、設定値の確認が終わると設定キー971をOFF位置に操作する。主制御MPU1311は、設定キー971のOFFエッジを検出すると、設定変更モードを終了し、設定状態管理エリアに00Hを記録し、通常遊技状態に移行する(T6)。設定状態管理エリアの値が00Hとなることによって、タイマ割込み処理において通常遊技中の処理を実行可能となる。また、ベース表示器1317は、所定時間(例えば5秒)全LEDを点滅表示した後、通常遊技状態におけるベース値を表示する。
さらに、主制御MPU1311は、電源投入時状態コマンド(3001H)と電源投入時復帰先コマンド(310nH)と設定値コマンド(A10mH)を周辺制御基板1510に送信する。設定値コマンド(A10mH)のmは、図202(D)に示すように設定値に応じた1から6の数値である。設定確認モードでは、原則として主制御RAM1312は初期化されないため、電源投入時復帰先コマンドの下位バイトとしては、停電前の状態が送信される。
周辺制御基板1510は、受信した電源投入時状態コマンドで通常遊技開始可能状態であることを知り、通常遊技状態における演出(例えば、客待ち演出)を実行する。なお、周辺制御基板1510は、電源投入時状態コマンドで通常遊技開始可能状態であることを知ってから所定の遅延時間が経過した後に、設定変更中の報知演出を中止し通常遊技状態における演出(例えば、客待ち演出)を開始するように演出を切り替えてもよい。なお、所定の遅延時間中は、一部の演出装置によって設定変更中の報知演出を行うとよい、例えば、メイン液晶表示装置1600や音は通常遊技状態の演出に戻り、装飾ランプは設定変更中の報知演出を継続する。また、装飾ランプによる報知演出の継続は、一部の装飾ランプ(例えば、枠側)は報知演出を継続し、他の装飾ランプ(例えば、パネル側)はは通常遊技状態の演出に戻ってもよい。
また、主制御MPU1311は、設定確認モードの終了から所定時間(例えば、50ミリ秒)遅延した後、セキュリティ信号の出力を停止する(T7)。
図207は、設定変更モードの開始から終了の別なタイムチャートである。
図207に示すタイムチャートでは、直前の電源遮断時に設定変更モードであるので、主制御MPU1311は設定変更モードで起動する。なお、図204(B)に示すように、直前の電源遮断時に設定変更モードであれば、電源投入時のRAMクリアスイッチ954や設定キー971の操作によらず、主制御MPU1311は設定変更モードで起動する場合を示している。
まず、主制御基板1310に電源が供給され、5V電源が立ち上がると(T1)、リセット回路1335からリセット信号が出力され、主制御MPU1311が起動する(T2)。
主制御MPU1311は、リセット信号によってプログラムコードの先頭アドレスからプログラムを実行する。具体的には、主制御MPU1311はセキュリティチェック実行し、タイミングT3で主制御プログラムを開始する。その後、タイミングT4で設定キー971の信号のレベルとRAMクリアスイッチ954の信号のレベルをレジスタに記憶し、タイミングT5まで周辺制御基板1510の起動を待つ。
周辺制御基板1510は、通電の開始によって起動すると、客待ち演出を開始する。なお、周辺制御基板1510は、主制御基板1310からのコマンドを受信した後に客待ち演出を開始してもよい。
主制御MPU1311は、周辺制御基板起動待ち時間が経過したタイミングT5において、設定キー971の信号のレベルとRAMクリアスイッチ954の信号のレベルをレジスタから読み出し、設定状態管理エリアに02Hを記録して設定変更モードに移行する。また、主制御MPU1311は、機能表示ユニット1400の全LEDを点灯させる。さらに、主制御MPU1311は、セキュリティ信号の出力を開始する。
また、主制御MPU1311は、設定変更モードに移行することを示す電源投入時動作コマンド(A003H)を作成し、所定のタイミングで周辺制御基板1510に送信する。
周辺制御基板1510は、受信した電源投入時コマンドに従って、設定変更モードにおける演出を実行する。周辺制御基板1510は、電源の遮断によって動作状態がリセットされ初期状態に戻るので、電源復帰時に主制御基板1310送信した電源投入時動作コマンドを受信して、設定変更状態を継続する。
設定変更モード中において、RAMクリアスイッチ954(設定変更スイッチ972兼用)が操作されると、主制御MPU1311はRAMクリアスイッチ954のONを検出し、設定値をNからN+1に更新し、ベース表示器1317は更新後の設定値N+1を表示する(T6)。
その後、主制御基板への電源供給が停止すると、主制御MPU1311は停電を検出し電源断時処理を実行する(T7)。そして、リセット回路1335からリセット信号の出力が停止し、ベース表示器1317による設定値の表示が消え、セキュリティ信号の出力が停止する(T8)。なお、電源断時処理において、セキュリティ信号の出力を停止し、ベース表示器1317を消灯してもよい。例えば、電源断時処理のプログラムによってセキュリティ信号の出力ポートやベース表示器1317への出力ポートをOFFすることによって、セキュリティ信号の出力を停止し、ベース表示器1317を消灯できる。
電源断時処理で出力ポートをOFFすることによって、電源断時処理中の消費電力低減し、電源断時処理の完了前に電源(5V)が低下することによるリセットを防止できる。例えば、電源断時処理におけるチェックサムの算出前に、出力ポートをOFFすると効果的である。なお、大入賞口2005、2006や第二始動口2004等の開閉を制御するソレノイドへの信号の出力ポートもOFFしてソレノイドの駆動信号を停止するとよい。
その後、主制御基板1310に電源が供給され、5V電源が立ち上がると(T9)、リセット回路1335からリセット信号が出力され、主制御MPU1311が起動する(T10)。
主制御MPU1311は、リセット信号によってプログラムコードの先頭アドレスからプログラムを実行する。具体的には、主制御MPU1311はセキュリティチェック実行し、タイミングT11で主制御プログラムを開始し、その後、タイミングT12で設定キー971の信号のレベルとRAMクリアスイッチ954の信号のレベルをレジスタに記憶し、タイミングT13まで周辺制御基板1510の起動を待つ。
主制御MPU1311は、設定状態管理エリアの値を参照する。図207に示す例では、設定状態管理エリアに02Hが記録されているので、設定キー971やRAMクリアスイッチ954の操作にかかわらず、周辺制御基板起動待ち時間が経過したタイミングT13において、設定変更モードに移行する。設定変更モードに移行する際、通常の設定変更モードへの移行と同様に、主制御RAM1312の遊技制御領域と遊技制御領域内のスタック領域を再度初期化する。なお、主制御RAM1312の初期化が完了してから停電を監視し、その後停電処理を実行するため、RAMクリア処理が電源断時処理により中断されることはないため、停電時に設定変更モードである場合には、主制御RAM1312の遊技制御領域は既に初期化されているので、停電復帰時にRAMクリア処理を実行して遊技制御領域を初期化しないようにしてもよい。再度初期化した後に、主制御MPU1311は、機能表示ユニット1400の全LEDを点灯させ、セキュリティ信号の出力を開始する。
また、主制御MPU1311は、設定変更モードに移行することを示す電源投入時動作コマンド(A003H)を作成し、所定のタイミングで周辺制御基板1510に送信する。
周辺制御基板1510は、受信した電源投入時コマンドに従って、設定変更モードにおける演出を実行する。周辺制御基板1510は、電源の遮断によって動作状態がリセットされ初期状態に戻るので、電源復帰時に主制御基板1310から送信される電源投入時動作コマンドを受信して、設定変更状態を継続する。
設定変更モード中において、RAMクリアスイッチ954(設定変更スイッチ972兼用)が操作されると、主制御MPU1311はRAMクリアスイッチ954のONを検出し、設定値を更新し、更新後の設定値をベース表示器1317に表示する。
ホールの従業員は、設定値の変更が終わると設定キー971をOFF位置に操作する。主制御MPU1311は、設定キー971のOFFエッジを検出すると、設定変更モードを終了し、設定状態管理エリアに00Hを記録し、通常遊技状態に移行する(T14)。設定状態管理エリアに00Hが記録されることによって、タイマ割込み処理において処理が通常遊技中の処理を実行可能となる。また、ベース表示器1317は、所定時間(例えば5秒)全LEDを点滅表示した後、通常遊技状態におけるベース値を表示する。さらに、主制御MPU1311は、電源投入時状態コマンド(3001H)と電源投入時復帰先コマンド(3101H)と設定値コマンド(A10mH)を周辺制御基板1510に送信する。設定値コマンド(A10mH)のmは、図202(D)に示すように設定値に応じた1から6の数値である。
周辺制御基板1510は、受信した電源投入時状態コマンドで通常遊技開始可能状態であることを知り、通常遊技状態における演出(例えば、客待ち演出)を実行する。なお、周辺制御基板1510は、電源投入時状態コマンドで通常遊技開始可能状態であることを知ってから所定の遅延時間が経過した後に、設定変更中の報知演出を中止し通常遊技状態における演出(例えば、客待ち演出)を開始するように演出を切り替えてもよい。なお、所定の遅延時間中は、一部の演出装置によって設定変更中の報知演出を行うとよい、例えば、メイン液晶表示装置1600や音は通常遊技状態の演出に戻り、装飾ランプは設定変更中の報知演出を継続する。また、装飾ランプによる報知演出の継続は、一部の装飾ランプ(例えば、枠側)は報知演出を継続し、他の装飾ランプ(例えば、パネル側)はは通常遊技状態の演出に戻ってもよい。
また、主制御MPU1311は、設定変更モードの終了から所定時間(例えば、50ミリ秒)遅延した後、セキュリティ信号の出力を停止する(T15)。これは、設定変更モードが極めて短時間で終了して、セキュリティ信号が全く又は短時間しか出力されないことが生じると、設定変更モードへの移行をホールコンピュータで把握できないため、セキュリティ信号の最低限の出力時間を確保するためである。
図208は、設定変更モードの開始から終了の別なタイムチャートである。
図208に示すタイムチャートでは、直前の電源遮断時に設定変更モードである場合でも、主制御MPU1311は、電源投入時のRAMクリアスイッチ954や設定キー971の操作によって異なる動作モードで起動する。
まず、主制御基板1310に電源が供給され、5V電源が立ち上がると(T1)、リセット回路1335からリセット信号が出力され、主制御MPU1311が起動する(T2)。
主制御MPU1311は、リセット信号によってプログラムコードの先頭アドレスからプログラムを実行する。具体的には、主制御MPU1311はセキュリティチェック実行し、タイミングT3で主制御プログラムを開始する。その後、タイミングT4で設定キー971の信号のレベルとRAMクリアスイッチ954の信号のレベルをレジスタに記憶し、タイミングT5まで周辺制御基板1510の起動を待つ。
周辺制御基板1510は、通電の開始によって起動すると、客待ち演出を開始する。なお、周辺制御基板1510は、主制御基板1310からのコマンドを受信した後に客待ち演出を開始してもよい。
主制御MPU1311は、周辺制御基板起動待ち時間が経過したタイミングT5において、設定キー971の信号のレベルとRAMクリアスイッチ954の信号のレベルをレジスタから読み出し、設定状態管理エリアに02Hを記録して設定変更モードに移行する。また、主制御MPU1311は、セキュリティ信号の出力を開始する。
また、主制御MPU1311は、設定変更モードに移行することを示す電源投入時動作コマンド(A003H)を作成し、所定のタイミングで周辺制御基板1510に送信する。
周辺制御基板1510は、受信した電源投入時コマンドに従って、設定変更モードにおける演出を実行する。周辺制御基板1510は、電源の遮断によって動作状態がリセットされ初期状態に戻るので、電源復帰時に主制御基板1310送信した電源投入時動作コマンドを受信して、設定変更状態を継続する。
設定変更モード中において、RAMクリアスイッチ954(設定変更スイッチ972兼用)が操作されると、主制御MPU1311はRAMクリアスイッチ954のONを検出し、設定値をNからN+1に更新し、ベース表示器1317は更新後の設定値N+1を表示する(T6)。
その後、主制御基板への電源供給が停止すると、主制御MPU1311は停電を検出し電源断時処理を実行する(T7)。そして、リセット回路1335からリセット信号の出力が停止し、ベース表示器1317による設定値の表示が消え、セキュリティ信号の出力が停止する(T8)。なお、電源断時処理において、セキュリティ信号の出力を停止し、ベース表示器1317を消灯してもよい。例えば、電源断時処理のプログラムによってセキュリティ信号の出力ポートやベース表示器1317への出力ポートをOFFすることによって、セキュリティ信号の出力を停止し、ベース表示器1317を消灯できる。
電源断時処理で出力ポートをOFFすることによって、電源断時処理中の消費電力低減し、電源断時処理の完了前に電源(5V)が低下することによるリセットを防止できる。例えば、電源断時処理におけるチェックサムの算出前に、出力ポートをOFFすると効果的である。なお、大入賞口2005、2006や第二始動口2004等の開閉を制御するソレノイドへの信号の出力ポートもOFFしてソレノイドの駆動信号を停止するとよい。
その後、主制御基板1310に電源が供給され、5V電源が立ち上がると(T9)、リセット回路1335からリセット信号が出力され、主制御MPU1311が起動する(T10)。
主制御MPU1311は、リセット信号によってプログラムコードの先頭アドレスからプログラムを実行する。具体的には、主制御MPU1311はセキュリティチェック実行し、タイミングT11で主制御プログラムを開始し、その後、タイミングT12で設定キー971の信号のレベルとRAMクリアスイッチ954の信号のレベルをレジスタに記憶し、タイミングT13まで周辺制御基板1510の起動を待つ。
主制御MPU1311は、周辺制御基板起動待ち時間が経過したタイミングT13において、設定キー971の信号のレベルとRAMクリアスイッチ954の信号のレベルをレジスタから読み出し、設定キー971の信号のレベルとRAMクリアスイッチ954の信号のレベルとによって動作モードを変える。図208に示す例では、電源再投入時に設定確認モードとなるようにRAMクリアスイッチ954がOFFで設定キー971がONに操作されているが、設定状態管理エリアに記録された停電前の状態が設定変更を示す値(02H)となっているために、周辺制御基板起動待ち時間が経過したタイミングT13において、主制御MPU1311は設定変更モードで再起動し、設定状態管理エリアの値は02Hが維持される。なお、元の値にかかわらず、同じ値(02H)を設定してもよい。設定変更モードに移行する際、通常の設定変更モードへの移行と同様に、主制御RAM1312の遊技制御領域と遊技制御領域内のスタック領域を再度初期化する。なお、主制御RAM1312の初期化が完了してから停電を監視し、その後停電処理を実行するため、RAMクリア処理が電源断時処理により中断されることはないため、停電時に設定変更モードである場合には、主制御RAM1312の遊技制御領域は既に初期化されているので、停電復帰時にRAMクリア処理を実行して遊技制御領域を初期化しないようにしてもよい。例えば、前述した図186では、停電前の状態が設定変更中であればステップS2015でYESとなり、RESET_P_5A(図187のステップS2030)に分岐してRAM異常時初期化処理(ステップS2034)を実行するが、RESET_P_7(図187のS2036)に分岐すれば、RAM異常時初期化処理ステップS2034を実行することなく、電源遮断前の状態を継続することになる。再度初期化した後に、主制御MPU1311は、機能表示ユニット1400の全LEDを点灯させ、セキュリティ信号の出力を開始する。つまり、図208に示すタイムチャートでは、設定キー971がONに操作されていなくても設定変更モードが起動可能となっている。換言すると、設定変更モードについては、電源投入時に設定キー971及びRAMクリアスイッチ954がONに操作されていることによって設定変更モードが起動し、さらに、電源投入時に設定キー971やRAMクリアスイッチ954がONでなくても設定変更モードの起動が可能となっている。
なお、タイミングT12の箇所に破線で示すが、電源再投入時にRAMクリアスイッチ954がOFFで設定キー971がOFFに操作されている場合は、図207に示すタイムチャートと異なり、設定状態管理エリアに00Hを記録して、設定変更モードに戻すことなく通常遊技が実行できない状態(例えばRAM異常)で再起動してもよい。つまり、図208に示す動作パターンでは、停電時に設定変更モードであっても、電源復帰時に設定変更操作がされていなければ、RAM異常の状態で再起動する。つまり、設定変更モード中に電源が遮断されると、いずれかの時点で設定変更モードを正常に終了しないと通常遊技を開始できない。
また、主制御MPU1311は、設定変更モードに移行することを示す電源投入時動作コマンド(A003H)を作成し、所定のタイミングで周辺制御基板1510に送信する。
周辺制御基板1510は、受信した電源投入時コマンドに従って、設定変更モードにおける演出を実行する。周辺制御基板1510は、電源の遮断によって動作状態がリセットされ初期状態に戻るので、電源復帰時に主制御基板1310送信した電源投入時動作コマンドを受信して、設定変更状態を継続する。
設定変更モード中において、RAMクリアスイッチ954(設定変更スイッチ972兼用)が操作されると、主制御MPU1311はRAMクリアスイッチ954のONを検出し、設定値を更新し、更新後の設定値をベース表示器1317に表示する(T14)。
ホールの従業員は、設定値の変更が終わると設定キー971をOFF位置に操作する。主制御MPU1311は、設定キー971のOFFエッジを検出すると、設定変更モードを終了し、設定状態管理エリアに00Hを記録し、通常遊技状態に移行する(T15)。設定状態管理エリアに00Hが記録されることによって、タイマ割込み処理において処理が通常遊技中の処理を実行可能となる。また、ベース表示器1317は、所定時間(例えば5秒)全LEDを点滅表示した後、通常遊技状態におけるベース値を表示する。さらに、主制御MPU1311は、電源投入時状態コマンド(3001H)と電源投入時復帰先コマンド(3101H)と設定値コマンド(A10mH)を周辺制御基板1510に送信する。設定変更モードでは主制御RAM1312が初期化されるため、電源投入時復帰先コマンドの下位バイトは01Hになる。設定値コマンド(A10mH)のmは、図202(D)に示すように設定値に応じた1から6の数値である。なお、電源投入時動作コマンド(A0001H)と電源投入時状態コマンド(3001H)とは、共に通常遊技開始可能状態を通知するものであり、通常は続けて送信されることから、いずれかを主制御基板に送信すれば足りる。
周辺制御基板1510は、受信した電源投入時状態コマンドで通常遊技開始可能状態であることを知り、通常遊技状態における演出(例えば、客待ち演出)を実行する。なお、周辺制御基板1510は、電源投入時状態コマンドで通常遊技開始可能状態であることを知ってから所定の遅延時間が経過した後に、設定変更中の報知演出を中止し通常遊技状態における演出(例えば、客待ち演出)を開始するように演出を切り替えてもよい。なお、所定の遅延時間中は、一部の演出装置によって設定変更中の報知演出を行うとよい、例えば、メイン液晶表示装置1600や音は通常遊技状態の演出に戻り、装飾ランプは設定変更中の報知演出を継続する。また、装飾ランプによる報知演出の継続は、一部の装飾ランプ(例えば、枠側)は報知演出を継続し、他の装飾ランプ(例えば、パネル側)はは通常遊技状態の演出に戻ってもよい。
また、主制御MPU1311は、設定変更モードの終了から所定時間(例えば、50ミリ秒)遅延した後、セキュリティ信号の出力を停止する(T16)。これは、設定変更モードが極めて短時間で終了して、セキュリティ信号が全く又は短時間しか出力されないことが生じると、設定変更モードへの移行をホールコンピュータで把握できないため、セキュリティ信号の最低限の出力時間を確保するためである。
図209は、設定確認モードの開始から終了の別なタイムチャートである。
図209に示すタイムチャートでは、直前の電源遮断時に設定確認モードであれば、電源投入時のRAMクリアスイッチ954や設定キー971の操作によらず、主制御MPU1311は設定確認モードで起動する。
まず、主制御基板1310に電源が供給され、5V電源が立ち上がると(T1)、リセット回路1335からリセット信号が出力され、主制御MPU1311が起動する(T2)。
主制御MPU1311は、リセット信号によってプログラムコードの先頭アドレスからプログラムを実行する。具体的には、主制御MPU1311はセキュリティチェック実行し、タイミングT3で主制御プログラムを開始する。その後、タイミングT4で設定キー971の信号のレベルとRAMクリアスイッチ954の信号のレベルをレジスタに記憶し、タイミングT5まで周辺制御基板1510の起動を待つ。
周辺制御基板1510は、通電の開始によって起動すると、客待ち演出を開始する。なお、周辺制御基板1510は、主制御基板1310からのコマンドを受信した後に客待ち演出を開始してもよい。
主制御MPU1311は、周辺制御基板起動待ち時間が経過したタイミングT5において、設定キー971の信号のレベルとRAMクリアスイッチ954の信号のレベルをレジスタから読み出し、設定状態管理エリアに02Hを記録して設定変更モードに移行する。また、主制御MPU1311は、セキュリティ信号の出力を開始する。
また、主制御MPU1311は、設定確認モードに移行することを示す電源投入時動作コマンド(A002H)を作成し、所定のタイミングで周辺制御基板1510に送信する。
周辺制御基板1510は、受信した電源投入時動作コマンドに従って、設定確認モードにおける演出を実行する。
その後、主制御基板への電源供給が停止すると、主制御MPU1311は停電を検出し電源断時処理を実行し、主制御MPU1311は動作を停止する(T7)。そして、リセット回路1335からリセット信号の出力が停止し、ベース表示器1317による設定値の表示が消え、セキュリティ信号の出力が停止する(T8)。なお、電源断時処理において、セキュリティ信号の出力を停止し、ベース表示器1317を消灯してもよい。例えば、電源断時処理のプログラムによってセキュリティ信号の出力ポートやベース表示器1317への出力ポートをOFFすることによって、セキュリティ信号の出力を停止し、ベース表示器1317を消灯できる。
電源断時処理で出力ポートをOFFすることによって、電源断時処理中の消費電力低減し、電源断時処理の完了前に電源(5V)が低下することによるリセットを防止できる。例えば、電源断時処理におけるチェックサムの算出前に、出力ポートをOFFすると効果的である。なお、大入賞口2005、2006や第二始動口2004等の開閉を制御するソレノイドへの信号の出力ポートもOFFしてソレノイドの駆動信号を停止するとよい。
その後、主制御基板1310に電源が供給され、5V電源が立ち上がると(T9)、リセット回路1335からリセット信号が出力され、主制御MPU1311が起動する(T10)。
主制御MPU1311は、リセット信号によってプログラムコードの先頭アドレスからプログラムを実行する。具体的には、主制御MPU1311はセキュリティチェック実行し、タイミングT11で主制御プログラムを開始し、その後、タイミングT12で設定キー971の信号のレベルとRAMクリアスイッチ954の信号のレベルをレジスタに記憶し、タイミングT13まで周辺制御基板1510の起動を待つ。
主制御MPU1311は、設定状態管理エリアの値を参照する。図209に示す例では、電源再投入時に設定確認モードとなるようにRAMクリアスイッチ954がOFFで設定キー971がONに操作されているが、設定状態管理エリアに記録された停電前の状態が設定確認を示す値(01H)となっているために、周辺制御基板起動待ち時間が経過したタイミングT13において、設定確認モードで再起動し、設定状態管理エリアの値は01Hが維持される。なお、元の値にかかわらず、同じ値(01H)を設定してもよい。その後、主制御MPU1311は、セキュリティ信号の出力を開始する。つまり、図209に示すタイムチャートでは、設定キー971がONに操作されていなくても設定確認モードが起動可能となっている。換言すると、電源投入時に設定キー971がONに操作されており及びRAMクリアスイッチ954がOFFに操作されていることによって設定確認モードが起動し、さらに、電源投入時に設定キー971がONでなくても設定確認モードの起動が可能となっている。
また、主制御MPU1311は、設定確認モードに移行することを示す電源投入時動作コマンド(A002H)を作成し、所定のタイミングで周辺制御基板1510に送信する。
周辺制御基板1510は、受信した電源投入時コマンドに従って、設定確認モードにおける演出を実行する。
設定確認モード中において、RAMクリアスイッチ954(設定変更スイッチ972兼用)が操作され、主制御MPU1311はRAMクリアスイッチ954のONを検出しても、設定値を更新することなく設定値をベース表示器1317に継続して表示する。
ホールの従業員は、設定値の確認が終わると設定キー971をOFF位置に操作する。主制御MPU1311は、設定キー971のOFFエッジを検出すると、設定確認モードを終了し、設定状態管理エリアに00Hを記録し、通常遊技状態に移行する(T15)。設定状態管理エリアに00Hが記録されることによって、タイマ割込み処理において処理が通常遊技中の処理を実行可能となる。また、ベース表示器1317は、所定時間(例えば5秒)全LEDを点滅表示した後、通常遊技状態におけるベース値を表示する。さらに、主制御MPU1311は、電源投入時状態コマンド(3001H)と電源投入時復帰先コマンド(310nH)と設定値コマンド(A10mH)を周辺制御基板1510に送信する。
周辺制御基板1510は、受信した電源投入時状態コマンドで通常遊技開始可能状態であることを知り、通常遊技状態における演出(例えば、客待ち演出)を実行する。なお、周辺制御基板1510は、電源投入時状態コマンドで通常遊技開始可能状態であることを知ってから所定の遅延時間が経過した後に、通常遊技状態における演出(例えば、客待ち演出)を開始してもよい。また、周辺制御基板1510は、電源投入時状態コマンドで通常遊技開始可能状態であることを知ってから所定の遅延時間が経過した後に、設定変更中の報知演出を中止し通常遊技状態における演出(例えば、客待ち演出)を開始するように演出を切り替えてもよい。なお、所定の遅延時間中は、一部の演出装置によって設定変更中の報知演出を行うとよい、例えば、メイン液晶表示装置1600や音は通常遊技状態の演出に戻り、装飾ランプは設定変更中の報知演出を継続する。また、装飾ランプによる報知演出の継続は、一部の装飾ランプ(例えば、枠側)は報知演出を継続し、他の装飾ランプ(例えば、パネル側)はは通常遊技状態の演出に戻ってもよい。
また、主制御MPU1311は、設定確認モードの終了から所定時間(例えば、50ミリ秒)遅延した後、セキュリティ信号の出力を停止する(T16)。これは、設定変更モードが極めて短時間で終了して、セキュリティ信号が全く又は短時間しか出力されないことが生じると、設定変更モードへの移行をホールコンピュータで把握できないため、セキュリティ信号の最低限の出力時間を確保するためである。
図210から図212は、大当り判定閾値テーブルの構成例を示す図である。大当り判定閾値テーブルは、特別図柄の大当りを抽選するための大当り判定用乱数値の当たり判定用閾値が格納される。
図210に示す大当り閾値判定テーブルは、設定値テーブル選択用アドレステーブル及び各設定値用判定閾値テーブルで構成される。図210に示す大当り判定閾値テーブルは、大当り判定用乱数値がテーブルに定義される閾値より大きい場合に大当りと判定する例である。
設定値テーブル選択用アドレステーブルには、各設定値において選択される判定閾値テーブルのポインタアドレスが定義されており、各データは2バイトの値として構成するとよい。なお、上位バイトが固定値であれば、下位バイトのみを定義してもよい。各設定値用判定閾値テーブルは、低確率(通常状態)時の閾値と高確率(確変状態)時の閾値を格納する。
大当り判定時に、設定値テーブル選択用のアドレステーブルに定義されているポインタアドレスを取得し、この値をオフセットとして現在の設定値の閾値判定用テーブルを選択する。そして、確変状態フラグ(0:低確率、1:高確率)をオフセットとして、選択された閾値判定用テーブルから大当り判定用の閾値を取得する。そして、始動口の入賞時に取得した大当り判定用乱数値が、取得した閾値以上である場合に大当りと判定し、閾値未満である場合にはずれと判定する。
図211に示す大当り判定閾値テーブルは、設定値テーブル選択用アドレステーブル及び各設定値用判定閾値テーブルで構成される。図211に示す大当り判定閾値テーブルは、大当り判定用乱数値が、テーブルに定義される下限から上限までの範囲である場合に大当りと判定する例である。
設定値テーブル選択用アドレステーブルには、各設定値において選択される判定閾値テーブルのポインタアドレスが定義されており、各データは2バイトの値として構成するとよい。なお、上位バイトが固定値であれば、下位バイトのみを定義してもよい。各設定値用判定閾値テーブルは、低確率(通常状態)時の下限閾値と低確率(通常状態)時の上限閾値と高確率(確変状態)時の下限閾値と高確率(確変状態)時の上限閾値を格納する。
大当り判定時に、設定値テーブル選択用のアドレステーブルに定義されているポインタアドレスを取得し、この値をオフセットとして現在の設定値の閾値判定用テーブルを選択する。そして、確変状態フラグ(0:低確率、1:高確率)をオフセットとして、選択された閾値判定用テーブルの低確率のブロックか高確率のブロックかを決定し、大当り判定用の下限閾値と上限閾値を取得する。そして、始動口の入賞時に取得した大当り判定用乱数値が、取得した下限閾値以上かつ上限閾値以下の場合に大当りと判定し、下限閾値から上限閾値の範囲外の場合にはずれと判定する。
図212に示す大当り判定閾値テーブルは、低確率用設定値テーブル選択用アドレステーブル、低確率用の各設定値用判定閾値テーブル、高確率用設定値テーブル選択用アドレステーブル及び高確率用の各設定値用判定閾値テーブルで構成される。図211に示す大当り判定閾値テーブルは、低確率用のテーブルと高確率のテーブルが一体に構成されているが、図212に示す大当り判定閾値テーブルは、低確率用のテーブルと高確率のテーブルが別に構成されている。
低確率用設定値テーブル選択用アドレステーブルには、低確率(通常状態)の各設定値において選択される判定閾値テーブルのポインタアドレスが定義されており、高確率用設定値テーブル選択用アドレステーブルには、高確率(確変状態)の各設定値において選択される判定閾値テーブルのポインタアドレスが定義されている。各設定値テーブル選択用アドレステーブルに定義されるデータは2バイトの値として構成するとよい。なお、上位バイトが固定値であれば、下位バイトのみを定義してもよい。低確率用の各設定値用判定閾値テーブルは、低確率(通常状態)時の下限閾値と低確率(通常状態)時の上限閾値を格納する。高確率用の各設定値用判定閾値テーブルは、高確率(通常状態)時の下限閾値と高確率(通常状態)時の上限閾値を格納する。
大当り判定時に、確変状態フラグ(0:低確率、1:高確率)により低確率用設定値テーブル選択用のアドレステーブルか高確率用設定値テーブル選択用のアドレステーブルかを決定し、決定された設定値テーブル選択用のアドレステーブルから設定値をオフセットとして取得し、取得したオフセットによって現在の設定値に対応した判定閾値テーブルを選択する。そして、始動口の入賞時に取得した大当り判定用乱数値が、取得した下限閾値以上かつ上限閾値以下の場合に大当りと判定し、下限閾値から上限閾値の範囲外の場合にはずれと判定する。
[12-17.設定変更・確認処理の別例2]
次に、設定変更機能を有するパチンコ機の別な実施例について説明する。以下に説明する実施例では、設定変更スイッチ972を設けずに、RAMクリアスイッチ954の操作によって設定値が選択できるものであるが、RAMクリアスイッチ954の本来の主制御RAM1312の初期化機能と、設定変更機能とを区別して記載するために、設定値の変更にかかる操作については設定変更スイッチ972として説明することがある。
図213、図214は、電源投入時に主制御MPU1311が実行する電源投入時処理のフローチャートである。
まず、主制御MPU1311は、電源の投入により、リセット信号が解除されるとプログラムコードの開始番地である8000番地の処理から開始する。主制御RAM1312のプロテクト無効及び禁止領域無効をRAMプロテクトレジスタに設定する(ステップS2200)。主制御MPU1311は、主制御RAM1312の使用領域を指定することによって、指定領域以外の禁止領域へアクセスがあった場合には、異常と判定してリセットする機能を有する。主制御RAM1312の禁止領域へのアクセスによるリセット機能を解除するために、禁止領域を無効に設定することで主制御RAM1312の全領域へのアクセスを可能としている。なお、主制御RAM1312のうち未使用領域を禁止領域に指定して、禁止領域を有効にして、指定された禁止領域にアクセスを検出した場合には、主制御MPU1311がリセットされるようにしてもよい。
次に、所定時間の単純クリアモードタイマをウォッチドッグタイマに設定し(ステップS2201)、ウォッチドッグタイマをクリアする(ステップS2202)。その後、停電クリア信号をONに設定し(ステップS2203)、停電クリア信号をOFFに設定する(ステップS2204)。一旦、停電クリア信号をONに設定してから、OFFに設定することによって、ラッチに記憶された停電信号を正常な値に設定できる。
次に、設定キー971とRAMクリアスイッチ954の信号のレベルをPFポートから読み出し、レジスタに記憶する(ステップS2205)。レジスタは、主制御MPU1311に予め設けられた複数の汎用レジスタ(処理の演算で演算に係る情報を一時的に記憶する記憶手段)の何れかを利用すればよい。汎用レジスタは、バンク0とバンク1とに分かれており、ステップS2205ではバンク0のレジスタが使用される。レジスタは、主制御RAM1312に設けられ、停電時に情報が保持されることなく消去されるものであり、停電時に情報がバックアップされるRAMの領域とは異なる。RAMクリアスイッチ954と設定キー971が操作されているか否かの判定は、周辺制御基板1510が確実に起動した後に主制御MPU1311が行うため、周辺制御基板1510が起動するまでの待機中に、ホールの従業員がRAMクリアスイッチ954や設定キー971の操作を誤って中断すると、ホールの従業員が意図していない状態でRAMクリアスイッチ954と設定キー971が判定されてしまう。このため、電源投入時処理開始後の早い段階でRAMクリアスイッチ954と設定キー971の入力状態(レベル)を一時的な記憶手段であるレジスタ等に格納し、周辺制御基板1510の待機状態の終了後に一時的な記憶手段であるレジスタ等に格納したRAMクリアスイッチ954と設定キー971の状態を判定することによって、ホールの従業員が電源投入後の早い段階でキー操作を誤って中断しても、電源投入操作時のRAMクリアスイッチ954や設定キー971の操作を確実に検出する。
その後、停電予告信号が停電中であるかを判定する(ステップS2206)。停電予告信号が検出されていれば、パチンコ機の電源電圧が正常ではないので、ステップS2206で電源電圧が安定するまで待機する。
その後、サブ起動待ちタイマ(例えば約2秒)を開始し、当該タイマがタイムアップするまでの間ウォッチドッグタイマを継続的にクリアし、周辺制御基板1510の起動を待つ(ステップS2207)。周辺制御基板1510の起動待ちは、電源投入後から周辺制御基板1510に最初にコマンドを送信するまでの期間であればいつでもよい。
その後、停電予告信号が停電中であるかを再度判定する(ステップS2208)。停電予告信号が検出されていれば、パチンコ機1の電源電圧が異常なので、ステップS2208で待機する。
その後、設定値確認処理を実行して、設定値が正常範囲内かを判定し、設定状態管理エリアの値が正常範囲内かを判定する(ステップS2209)。設定値確認処理の詳細は図215で後述する。
その後、フラグレジスタを遊技制御領域内スタックエリアに退避する(ステップS2210)。これは、遊技制御領域外の処理と遊技制御領域内の処理との独立性を確保するために、一方の処理で使用した情報を他方の処理に影響させないためである。その後、電源投入時遊技領域外RAM確認処理を実行して、主制御RAM1312の遊技制御領域外の異常を判定する(ステップS2211)。電源投入時遊技領域外RAM確認処理の詳細は図216で後述する。そして、遊技制御領域内スタックエリアに退避したフラグレジスタを復帰する(ステップS2212)。
その後、RAM異常判定結果値をCレジスタに仮設定し(ステップS2213)、設定状態管理エリアにおけるRAM異常値(03H)をBレジスタに仮設定する(ステップS2214)。ステップS2213及びS2214で使用されるBレジスタ及びCレジスタは汎用レジスタである。なお、電源投入時の処理ではバンク0の汎用レジスタが使用される。
別例2において設定状態管理エリアに設定される値は、前述した実施例において図201(B)に示したものと異なり、図220(A)に示すように、主制御RAM1312に異常があれば03Hが記録される。すなわち、別例2の設定状態管理エリアは、パチンコ機1の動作モードが記録される1バイトの記憶領域であり、例えば下位の4ビットが使用され、上位の4ビットは定義されていない。具体的には、通常遊技状態では00H、設定確認モードでは01H、設定変更モードでは02H、主制御RAM1312に異常があれば03Hが記録される。
設定状態管理エリアは、RAMクリアスイッチ954のみの操作によるRAMクリア処理では00Hに更新されず、現在の値が維持される。また、設定確認モードの終了時には01Hから00Hに更新され、設定変更モードの終了時には02Hから00Hに更新される。さらに、主制御RAM1312が異常である場合、次の電源投入時の設定変更操作によって設定変更モードになると03Hから02Hに更新され、設定変更モードの終了時に02Hから00Hに更新される。
さらに、主制御RAM1312の遊技制御領域に異常があるかを判定し、判定結果をCレジスタに格納し(ステップS2215、S2216)、ステップ2219に進む。具体的には、前回の電源遮断時に内蔵RAM1312にバックアップされている領域のうち遊技制御領域として使用されているデータ(スタックに退避されたデータは除く)から算出して記憶されたチェックサムと、同じ領域を使用して算出されたチェックサムとを比較し、両者が異なれば、主制御RAM1312に異常があると判定する。また、正常にバックアップされた(電源断時処理が正常に実行された)ことを示す停電フラグの値がバックアップフラグエリアに格納されていなければ、停電発生時に主制御RAM1312のデータが正常にバックアップされておらず(電源断時処理が正常に実行されておらず)、主制御RAM1312に異常があると判定する。
そして、主制御RAM1312の遊技制御領域内及び遊技制御領域外のいずれにも異常がなければ、RAM正常判定結果値をCレジスタに仮設定し(ステップS2217)、設定状態管理エリアの情報をBレジスタに設定して(ステップS2218)、ステップ2219に進む。
その後、設定状態管理エリアにRAM異常を示す値(03H)を仮に記録する(ステップS2219)。
そして、PFポートの値が記録されたレジスタ値のうち、設定キー971とRAMクリアスイッチ954のビットをマスクする(ステップS2220)。PFポートの値が記憶されるレジスタは汎用レジスタのうちS2213、S2214で仮設定されるレジスタとは異なるものを使用する。その後、電源投入時に設定キー971がONに操作されており、かつ、RAMクリアスイッチ954がONに操作されていたかを、レジスタに記憶された値を用いて判定する(ステップS2221)。そして、設定キー971がONに操作されており、かつ、RAMクリアスイッチ954がONに操作されていれば、設定変更操作がされていると判定し、ステップS2230に進む。
一方、設定キー971が操作されておらず、かつ、RAMクリアスイッチ954が操作されていなければ、停電発生時に設定変更モードであったかを判定する(ステップS2222)。例えば、設定状態管理エリアの値が設定変更モード(02H)のときに、設定変更モード中に停電が発生したと判定する。
そして、設定変更モード中に停電が発生したと判定したときには、ステップS2230に進む。
一方、設定変更モード中に停電が発生していないと判定したときは、主制御RAM1312の遊技制御領域内及び遊技制御領域外に異常があるかを判定する(ステップS2223)。例えば、前述したステップS2213、S2217でCレジスタに格納された判定結果を用いて、遊技制御領域内の異常を判定できる。その結果、主制御RAM1312の遊技制御領域内及び遊技制御領域外のいずれかに異常があれば、ステップS2236に進む。
一方、主制御RAM1312の遊技制御領域内及び遊技制御領域外のいずれにも異常がなければ、RAM異常処理中に停電が発生したかを判定する(ステップS2224)。例えば、退避した設定状態管理エリアの値がRAM異常を示す値(03H)であれば、RAM異常処理中に停電が発生したと判定する。
そして、RAM異常処理中に停電が発生したと判定したときには、ステップS2236に進む。一方、RAM異常処理中に停電が発生していないと判定したときには、設定状態管理エリアに通常遊技状態を示す値(00H)を記録する(ステップS2225)。ステップS2225で設定状態管理エリアに00Hを記録することによって、ステップS2214で設定状態管理エリアに仮に記録されたRAM異常を示す値(03H)を、正常な状態に戻している。また、ステップS2225で設定状態管理エリアに00Hを記録することによって、ステップS2226とS2231とからステップS2235にジャンプした際の設定状態管理エリアの値が異なる。このように、通常のRAMクリア処理と設定変更処理に伴うRAMクリア処理とで設定状態管理エリアの値が異なることから、両方のRAMクリア処理のためのプログラムを共通にしても呼出元を区別でき、別個にプログラムを設ける必要がなく、プログラムサイズのサイズを小さくできる。
その後、電源投入時にRAMクリアスイッチ954がONに操作されていたかを、レジスタに記憶された値を用いて判定する(ステップS2226)。そして、RAMクリアスイッチ954がONに操作されていれば、ステップS2235に進む。
本実施例のパチンコ機では、RAMクリアスイッチ954の操作と設定キー971の操作と設定状態管理エリアに記録された値とに基づいて、処理を振り分ける。例えば、主制御RAM1312が異常であると判定されると、設定状態管理エリアには03Hが記録され、電源が遮断されるまで03Hが維持されるため、通常遊技処理を実行できない。このとき、一旦電源を遮断した後に設定変更操作をして電源を投入すると、RAM異常を解除できる。すなわち、ステップS2221で設定キー971とRAMクリアスイッチ954の両方が操作されている(設定変更操作)と判定されると、設定状態管理エリアがRAM異常を示す値(03H)から設定変更を示す値(02H)に更新され(ステップS2230)、RAM異常状態が終了する。このように、RAM異常からの復帰は、必ず設定変更を経由することになっている。換言すると、停電発生時の状態がRAM異常かを判定する前に、設定変更操作がされているかを判定するので、設定値の変更を契機としてのみRAM異常を解消できる。
一方、RAMクリアスイッチ954が操作されていなければ、停電発生前の状態に復旧すために、停電発生時点での遊技状態の情報を電源投入時状態バッファに記憶する(ステップS2227)。
その後、電源投入時に設定キー971がONに操作されていたかを、レジスタに記憶された値を用いて判定する(ステップS2228)。そして、設定キー971がONに操作されていれば、設定確認操作がされていると判定し、設定状態管理エリアに設定確認モードを示す値(01H)を記録し(ステップS2229)、S2236に進む。すなわち、停電発生時の状態が設定確認モードであっても、電源投入時に設定キー971が操作されていない場合には通常遊技状態となる。なお、停電発生時の状態が設定確認モードで、電源投入時に設定キー971が操作されていない場合に、通常遊技状態ではなく、停電発生前と同じ停電確認モードに移行してもよい。
ステップS2225からS2229は、RAMクリアスイッチ954か設定キー971の少なくとも一つが操作されていない場合に実行される処理であることから、RAMクリアスイッチ954の操作の判定(ステップS2226)と、設定キー971の操作の判定(ステップS2228)とのいずれを先に行ってもよい。すなわち、図示したように、RAMクリアスイッチ954の操作を判定(ステップS2226)した後に設定キー971の操作を判定(ステップS2228)してもよく、設定キー971の操作を判定(ステップS2228)した後にRAMクリアスイッチ954の操作を判定(ステップS2226)してもよい。
ステップS2221又はステップS2222でYESと判定されると、設定状態管理エリアに設定変更モードを示す値(02H)を記録する(ステップS2230)。そして、主制御RAM1312の遊技制御領域外に異常があるかを判定する(ステップS2231)。例えば、前述したステップS2266で遊技領域外RAM異常判別エリアに設定されたRAM異常判定結果に基づいて、遊技制御領域外の異常を判定できる。その結果、主制御RAM1312の遊技制御領域外に異常がなければ、ステップS2235に進む。
一方、主制御RAM1312の遊技制御領域外に異常があれば、遊技制御領域外のRAMクリア処理を実行する。すなわち、フラグレジスタを遊技領域内スタックエリアに退避し(ステップS2232)、遊技領域外RAM異常時処理を実行する(ステップS2233)。遊技領域外RAM異常時処理の詳細は図217で後述する。その後、ステップS2232で遊技領域内スタックエリアに退避したフラグレジスタを復帰する(ステップS2234)。
そして、主制御RAM1312の遊技制御領域内の設定値と設定状態管理エリア以外の領域と遊技制御領域内のスタックエリアとを初期化する(ステップS2235)。つまり、遊技制御領域外のRAMクリア処理は、設定変更を経由しないと実行されないことになる。遊技制御領域外のRAM異常時には、遊技制御領域内のRAM異常時と同様に、設定状態管理エリアに03Hが記録されており、遊技が停止するため、設定変更を経由しないとRAM異常状態から復帰できないようになっている。但し、遊技制御領域外のRAMクリアの条件は設定変更のみであるのに対し、遊技制御領域内のRAMクリアの条件は設定変更及びRAMクリアスイッチ954操作(RAM異常が発生していないにも場合に従業員の操作によって強制的にRAMクリアする場合)の二つになる。
ステップS2235の遊技領域内のRAMクリア処理において、設定値と設定状態管理エリアを除外するのは、遊技者による不正なRAMクリア操作によって設定値が高設定になる場合にホール側に損害が発生すること、高設定で遊技中に不具合(RAM異常)が生じて遊技が停止すると、RAMクリア操作によって高設定から低設定となり、遊技者に損害が発生するためである。
その後、全コマンドバッファを初期化する(ステップS2236)。これは、コマンドバッファにコマンドが記憶された状態で電源が遮断された後にRAMクリアせずに電源を復帰すると、コマンドバッファに格納された未送信のコマンドが送信される。例えば、変動コマンドの送信中に電源が遮断されることによって、図柄コマンドは送信したが、後続する変動パターンコマンドが未送信となることがある。そして、電源投入時に、変動パターンコマンドだけが送信されると、周辺制御基板1510が異常と判定することがある。さらに、設定変更に関する処理における未送信のコマンドがコマンドバッファに格納されている場合、電源復帰後に設定処理中に未送信となったコマンドが送信されることによって、周辺制御基板1510が当該コマンドに基づいて遊技状態を設定して、誤動作する可能性がある。このような異常の発生を防止するために、ステップS2236において、コマンドバッファを初期化している。
なお、ステップS2236でコマンドバッファを初期化しているが、設定変更処理を開始するとき及び設定確認処理を開始するときにのみ、コマンドバッファをクリアしてもよい。なお、設定変更処理においては、主制御RAM1312の初期化に伴ってコマンドバッファがクリアされるので、別途コマンドバッファをクリアしなくてもよいが、設定確認モードにおいては、主制御RAM1312が初期化されないことから、設定確認モードに移行するときに、コマンドバッファをクリアするとよい。
その後、主制御MPU1311に内蔵されたデバイス(CTC、SIO等)の機能を初期設定し(ステップS2237)、主制御MPU1311に内蔵されたハードウェア乱数(例えば当落乱数)を起動する(ステップS2238)。ステップS2238でハードウェア乱数を起動することによって、設定変更モードや設定確認モードにおいてもハードウェア乱数が更新されるようにしているが、設定変更モードや設定確認モードの終了時にハードウェア乱数を起動してもよい。そして、電源投入時設定処理を実行する(ステップS2239)。電源投入時設定処理の詳細は図219で後述する。
最後にタイマ割込みを許可に設定し(ステップS2240)、主制御側メイン処理(図221)に進む。
図215は、設定値確認処理のフローチャートである。設定値確認処理は、電源投入時処理(図213)のステップS2209において実行され、設定状態管理エリアの設定値が正常範囲内かを判定し、設定状態管理エリアの値が正常範囲内かを判定する。なお、設定値確認処理は、電源投入時の他、設定変更モードの終了時や設定確認モードの終了時に実行してもよい。また、特別図柄変動開始時や、遊技状態の変化時(大当り、確変、時短などの開始及び終了時)に実行してもよい。
設定値確認処理では、まず、主制御MPU1311は、設定状態管理エリアに本来記録される値以外の値が設定されているかを判定する(ステップS2250)。設定状態管理エリアは、図220(A)に示すように、00H~03Hが記録されるので、04H以上の値が設定されていれば異常であり、ステップS2252に進む。
一方、設定状態管理エリアに正常な値(03H以下)が設定されていれば、設定値が所定の範囲内であるかを判定する(ステップS2251)。例えば、設定が1~6までの段階で選択可能なパチンコ機1において、設定値が格納されるワークの値が0~5に対応している(設定1のとき=0、設定6のとき=5)場合には、6以上の値が格納されていれば、所定の範囲外であると判定される。
設定値が所定の範囲外であれば、設定状態管理エリアにRAM異常を示す値(03H)を記録し(ステップS2252)、設定値を0に初期化し(ステップS2253)、電源投入時処理に戻る。一方、設定値が所定の範囲内であれば、電源投入時処理に戻る。
設定状態管理エリアに記録される値及び設定値に関しては、主制御RAM1312が異常であるかが遊技の進行中(変動開始毎、遊技状態の切り替え時など)にも判定される。このため、遊技中に設定状態管理エリア及び設定値に関するRAM異常と判定される条件と、電源投入時にRAM異常(設定状態管理エリア及び設定値を除く遊技領域内のワークエリアと、遊技領域外のワークRAMの異常)と判定される条件の二つの条件は異なっている。なお、この二つのRAM異常判定条件は、一部が同じでもよい。例えば、電源投入時も設定状態管理エリア及び設定値が異常であるかを判定すると、二つの判定条件は一部が同じであるといえる。
このように、RAM異常の判定条件が異なるのは、設定値に関するRAM異常の判定を電源投入時のみに行うとすると、不正行為やノイズ等による誤動作によって設定値が変更された場合、ホールや遊技者に不利益が生じることから、早期に異常を検出して、不利益が生じる期間を短くすることが望ましいからである。
また、遊技中に設定状態管理エリアと設定値に関するRAM異常判定処理をサブルーチン化することによって、遊技の進行中に必要に応じて当該サブルーチンを呼び出してRAM異常を判定することによって、同じプログラムを複数箇所に設けることなく、プログラムのサイズを小さくできる。
また、設定状態管理エリアは、電源投入時のRAM異常判定対象外としているが、RAM異常判定対象として、主制御RAM1312の他の領域と同様に取り扱ってもよい。設定状態管理エリアを電源投入時のRAM異常判定対象とすることによって、停電前に設定変更モードであり、電源復帰時にRAM異常と判定された場合には、RAM異常が優先される。このため、設定状態管理エリアの値に異常(すなわち、RAM異常)が生じれば、設定状態管理エリアに記録された値を初期化することが望ましいからである。なお、この場合、主制御RAM1312のうち設定値が格納された記憶領域は、電源投入時のRAM異常判定対象としても、RAM異常判定対象外としてもよい。
なお、電源投入時の判定における優先順は、RAM異常が最も優先度が高く、通常遊技状態になることが最も優先度が低くなっている。さらに、設定変更モードになることは、設定確認モードになることやRAMクリア操作によってRAMクリア処理を実行することより優先度が高くなっている。このように、導出される状態の優先度の順に判定処理を実行することによって、電源復帰後に複数の条件が成立している場合にも、優先度が高い状態を的確に導出することができる。
図216は、電源投入時遊技領域外RAM確認処理のフローチャートである。電源投入時遊技領域外RAM確認処理は、電源投入時処理(図213)のステップS2211において実行され、主制御RAM1312の遊技制御領域外の異常を判定する。
まず、主制御MPU1311は、主制御RAM1312の遊技制御領域外のSP退避用バッファにスタックポインタの値を格納し(ステップS2260)、遊技領域値外スタックポインタ値をスタックポインタに設定し(ステップS2261)、呼出元の処理で使用されているバンク(バンク0又はバンク1)の全てのレジスタ値を遊技領域外のレジスタ退避用バッファに格納する(ステップS2262)。なお、遊技制御領域外で実行される処理において全レジスタを格納する退避用バッファとして遊技制御領域外のスタックエリアを使用してもよい。
そして、既に初回の電源投入等で主制御RAM1312の遊技制御領域外が初期化されているか否かを判定する(ステップS2263)。具体的には、パワーダウンチェックエリア(EX_PDIND)の値が5AHであれば、初回の電源投入等で主制御RAM1312の遊技制御領域外が初期化されていると判定できる。
初回の電源投入等で主制御RAM1312が初期化されていなければ、ステップS2264~S2265を実行することなく、ステップS2266に進む。一方、初回の電源投入等で主制御RAM1312の遊技制御領域外が初期化済みであれば、主制御RAM1312の遊技制御領域外のチェックサムを算出し(ステップS2264)、算出したチェックサムが正常かを判定する(ステップS2265)。
算出したチェックサムが正常であれば、ステップS2267に進む。一方、算出したチェックサムが異常であれば、遊技領域外RAM異常判別エリアにRAM異常判定結果値(01H)を設定し(ステップS2266)、ステップS2271に進む。なお、S2266で遊技領域外RAM異常判別エリアに設定した値に基づいて、S2231で遊技制御領域外のRAM異常が判定される。
一方、ステップS2265で算出したチェックサムが正常であると判定されると、LEDチェックタイマに5秒を設定し、LEDチェックタイマを起動し(ステップS2267)、LED点滅周期タイマに点滅周期値(600ミリ秒)を設定し(ステップS2268)、モード切替時間タイマにモード切替時間(5秒)を設定する(ステップS2269)。LED点滅周期タイマは、ベース表示器1317の上2桁(又は4桁全て)を点滅表示するためのタイマであり、LED点滅周期タイマのタイムアップで一つの点滅周期になる。モード切替時間タイマは、ベース表示器1317におけるモード切り替えを制御するためのタイマであり、モード切替時間タイマがタイムアップすることで、ベース表示のモードに切り替わる。
その後、性能表示モニタ表示管理エリアに0を設定して初期化し(ステップS2270)、ステップS2271に進む。
その後、パワーダウンチェックエリアを00Hに初期化する(ステップS2271)。
そして、遊技領域外のレジスタ退避用バッファに退避した、呼出元の処理で使用するバンク(バンク0又はバンク1)の全レジスタ値を復帰し(ステップS2272)、遊技領域外のSP退避用バッファに退避したスタックポインタ値を復帰し(ステップS2273)、電源投入時処理に戻る。
図217は、遊技領域外RAM異常時処理のフローチャートである。遊技領域外RAM異常時処理は、電源投入時処理(図214)のステップS2233において実行され、主制御RAM1312の遊技制御領域外の領域を初期化する。
まず、主制御MPU1311は、主制御RAM1312の遊技制御領域外のSP退避用バッファにスタックポインタの値を格納し(ステップS2280)、遊技領域外スタックポインタ値をスタックポインタに設定し(ステップS2281)、呼出元の処理で使用されているバンク(バンク0又はバンク1)の全てのレジスタ値を遊技領域外のレジスタ退避用バッファに格納する(ステップS2282)。なお、遊技制御領域外で実行される処理において全レジスタを格納する退避用バッファとして遊技制御領域外のスタックエリアを使用してもよい。
そして、使用領域外RWM初期化処理を実行して、主制御RAM1312の遊技制御領域外の領域を初期化する(ステップS2283)。使用領域外RWM初期化処理の詳細は図218で後述する。
その後、主制御RAM1312の遊技領域外RAM異常判別エリア(EX_RWMERROR)にRAM正常判別値(00H)を設定する(ステップS2284)。ステップS2284で遊技領域外RAM異常判別エリアに設定した値に基づいて、次の電源投入時にステップS2231で主制御RAM1312の遊技制御領域外が異常か否かが判定される。
そして、LEDチェックタイマに5秒を設定し、LEDチェックタイマを起動し(ステップS2285)、LED点滅周期タイマに点滅周期値(600ミリ秒)を設定し(ステップS2286)、モード切替時間タイマにモード切替時間(5秒)を設定する(ステップS2287)。これらのタイマ値は、ベース表示器1317にベース値を表示するための初期設定である。
そして、遊技領域外のレジスタ退避用バッファに退避した全レジスタ値(ステップS2262で退避した呼出元の処理で使用されていたバンク(バンク0又はバンク1)のレジスタ値)を復帰し(ステップS2288)、遊技領域外のSP退避用バッファに退避したスタックポインタ値を復帰し(ステップS2289)、呼び出し元の電源投入時処理に戻る。
図218は、使用領域外RWM初期化処理のフローチャートである。使用領域外RWM初期化処理は、遊技領域外RAM異常時処理のステップS2283において実行され、主制御RAM1312の遊技制御領域外の領域を初期化する。
まず、主制御MPU1311は、主制御RAM1312の遊技制御領域外のワークエリアに00Hを書き込んで初期化する(ステップS2290)。そして、主制御RAM1312の遊技制御領域外のスタックエリアに00Hを書き込んで初期化する(ステップS2291)。その後、遊技領域外RAM異常時処理に戻る。
図219は、電源投入時設定処理のフローチャートである。電源投入時設定処理は、サブルーチン化されており、電源投入時処理(図214)のステップS2239で実行され、電源投入時の初期設定を実行する。
まず、主制御MPU1311は、電源投入時動作コマンドを作成し、作成したコマンドを送信情報記憶領域にセットする(ステップS2300)。電源投入時動作コマンドは、図220(B)で後述するように、設定状態管理エリアの記録内容を通知する、2バイトで構成されるコマンドであり、上位バイトがA0Hで下位バイトが設定状態管理エリアの値に1を加算した値となっている。
次に、入力レベルデータ2領域の設定キー971に対応するビットと設定変更スイッチ972に対応するビットとを初期値である1に設定する。なお、他のビットは0を設定するとよい(ステップS2301)。入力レベルデータ2エリアの設定キー971に対応するビットと設定変更スイッチ972に対応するビットを1に設定するのは、次のタイマ割込み時に当該スイッチのビットを1で検知して、ONエッジが誤って作られないようにするためである。
次に、バックアップフラグをクリアする(ステップS2302)。
その後、設定状態管理エリアに遊技開始可能状態を示す値(00H)が記録されているかを判定する(ステップS2303)。設定状態管理エリアに遊技開始可能状態を示す値が記録されていなければ、設定変更モードであるか設定確認モードであるかRAM異常のいずれかなので、電源投入時設定処理を終了し、呼出元の処理に戻る。
一方、設定状態管理エリアに遊技開始可能状態を示す値(00H)が記録されていれば、通常遊技を開始できる状態なので、主制御RAM1312を初期化したか否かに応じて遊技制御領域内ワークエリアを初期設定する(ステップS2304)。
その後、電源投入時状態コマンドを作成し、作成したコマンドを送信情報記憶領域に格納する(ステップS2305)。電源投入時状態コマンドは、図220(C)に示すように、、2バイトで構成されるコマンドであり、上位バイトが30Hで下位バイトが停電前の状態を示す。
そして、電源投入時復帰先コマンドを作成し、作成したコマンドを送信情報記憶領域にセットする(ステップS2306)。電源投入時復帰先コマンドは、図202(C)に示すように、特別図柄に関する遊技状態を通知する、2バイトで構成されるコマンドであり、上位バイトが31Hで下位バイトが停電発生時の特別図柄の状態及び特別電動役物の動作状態を示す。電源投入時復帰先コマンドは、電源投入時に1回送信される。
さらに、設定値コマンドを作成し、作成したコマンドを送信情報記憶領域にセットする(ステップS2307)。設定値コマンドは、図202(D)に示すように、設定値を通知する、2バイトで構成されるコマンドであり、上位バイトがA1Hで、下位バイトが設定値を示す。
なお、電源投入時状態コマンド、電源投入時復帰先コマンド、設定値コマンドと共に、特別図柄変動表示ゲームの保留数を示す特別図柄保留数コマンドを送信して、メイン液晶表示装置1600において保留数表示を停電発生前の状態に復旧させてもよい。なお、特別図柄保留数コマンドの送信順序は、電源投入時状態コマンド、電源投入時復帰先コマンド及び設定値コマンドの送信後でも、これらのコマンドの送信前でも、これらのコマンドの送信途中に送信してもよい。
その後、呼出元の処理に戻る。
電源投入時設定処理は、設定変更モードであるかにかかわらず必ず実行される。また、電源投入時設定処理は、設定キー971のOFFを検出して、設定変更/確認処理を終了する際に設定処理(図224)から呼び出される。このとき、設定状態管理エリアには00Hが記録されているので、S2300~S2307までの全ての処理が実行される。
なお、設定変更/確認処理を実行する場合、電源投入時設定処理が電源投入処理のステップS2239及び設定処理のステップS2355から呼び出されるので、電源投入時動作コマンドが2回送信される。一方、設定変更/確認処理を実行しない場合、電源投入処理のステップS2239から呼び出された電源投入時設定処理のみで、電源投入時動作コマンドが1回送信される。電源投入時動作コマンドは、主制御基板1310の状態(設定変更モード、設定確認モード、RAM異常など)を周辺制御基板1510で識別するために送信される。周辺制御基板1510は、当該コマンドを受信することによって、設定変更モード、設定確認モード、RAM異常時などの状態に対応した報知を行なう。
なお、設定/確認変更モードでは、遊技者による設定調整機能(例えば、扉枠3に設けられたボタンの操作による音量や輝度の調整)を停止し、ホールの従業員による調整(周辺基板ボックス1520に設けられたボリュームによる音量や輝度の調整)は有効としてもよい。具体的には、通常遊技状態を示す電源投入時動作コマンドを受信するまでは、遊技者による設定調整機能を停止するとよい。
また、設定変更モード及び設定確認モードのいずれにおいても、メイン液晶表示装置1600の全画面を用いて、設定変更モードであるか設定確認モードであるかRAM異常状態であるかを表示してもよい。この場合、設定変更モードであるか設定確認モードであるかの音声メッセージを出力してもよい。さらに、一部又のランプ又は全てのランプ(扉枠3に設けられたランプを含めてもよい)を使用して報知してもよい。
図220(B)は、電源投入時動作コマンドの構成例を示す図である。電源投入時動作コマンドは、設定状態管理エリアの記録内容を通知するコマンドであり、下位バイトの値は設定状態管理エリアの値に1を加算した値を格納しているため、前述した実施例において図202(A)に示したものと異なり、別例2ではRAM異常発生時は下位バイトが04Hとなる。
具体的には、電源投入時動作コマンドは2バイトで構成され、上位バイトがA0Hで、下位バイトが設定状態管理エリアの記録内容を示す。下位バイトの値は設定状態管理エリアの値に1を加算した値を格納している。これは、通常遊技中のときに設定状態管理エリアの値は00Hとなるため、コマンドとして送信される値が00Hであると、出力が0となるハードウェア異常と区別できないので、いずれかのビットが1にセットされるようにしている。
なお、電源投入時動作コマンドは、電源投入時処理で少なくとも1度作られる。具体的には、ホットスタート、RAMクリア及びRAM異常のときに対応してA001H又はA004Hのコマンドが一度作られ、設定変更モード及び設定確認モードでは、電源投入時処理でA002H又はA003Hのコマンドが作られ、その後、設定変更/確認終了時とでA001Hのコマンドとして2度作られる。
周辺制御基板1510は、電源投入時動作コマンドを受信すると、通常遊技開始可能状態(A001H)、設定確認モード(A002H)、設定変更モード(A003H)、RAM異常の状態(A004H)に応じて、前述した態様で報知を行う(図184参照)。なお、通常遊技開始可能状態の報知は、図184に示していないが、デモ画面を表示したり、遊技内容を説明する待機状態の演出を行う。
周辺制御基板1510が、電源投入時動作コマンドでA001Hを受信することなく、通常遊技中の遊技コマンドを受信した場合、遊技状態が不整合となっている可能性があるため、受信した遊技コマンドを無効と判定し、当該遊技コマンドに対する遊技動作(演出など)を開始しない。但し、所定条件を満たした(例えば、通常遊技中の遊技コマンドが連続して所定回数送信された)場合、周辺制御基板1510が電源投入時動作コマンド(A001H)を取りこぼした可能性があるため、受信した遊技コマンドの無効化を解除し、遊技コマンドに対応する演出を行うとよい。
なお、遊技コマンドが無効化されている状態で、受信した遊技コマンドのうち、所定条件を満たす演出を行い(例えば、図柄の動作、ランプ、可動体、音声等については受信したコマンドに対応する演出を行い)、表示装置の背景や所定のランプを用いて、遊技状態の不整合が発生している旨を報知してもよい。また、遊技状態の不整合が発生している旨を小さな音量で報知してもよい。これは、所定条件となるまで、何の演出も行わないと、遊技状態の不整合が発生していることを理解できない遊技者は、始動口に入賞しても特別図柄変動表示ゲームが開始しないようなパチンコ機1の故障だと思い、ホールで発生する可能性があるトラブルを防止するためである。なお、周辺制御基板1510が遊技コマンドを無効化していても、主制御基板1310は通常の遊技処理を実行しているので、機能表示ユニット1400における特別図柄や普通図柄などの機能表示は正常に表示される。
図220(C)は、電源投入時状態コマンドの構成例を示す図である。前述した実施例において図202(B)に示したものと異なり、別例2の電源投入時状態コマンドは、01H、02H、03H、04Hの4状態が定義される。すなわち、電源投入時状態コマンドは、電源投入時状態バッファの記録内容に基づいて、通常遊技開始可能状態であるかを通知し、さらに、停電前の状態を通知するコマンドである。例えば、電源投入時状態コマンドは2バイトで構成され、上位バイトが30Hで、下位バイトが01Hであれば、RAMクリアを報知するために主制御RAM1312が初期化された状態であることを示す。また、下位バイトが02Hであれば、停電前の状態が低確率・非時短状態であり、主制御RAM1312が初期化されずに復帰し、通常遊技開始可能状態であることを示す。また、下位バイトが03Hであれば、停電前の状態が高確率・時短状態であり、主制御RAM1312が初期化されずに復帰し、通常遊技開始可能状態であることを示す。また、下位バイトが04Hであれば、停電前の状態が低確率・時短状態であり、主制御RAM1312が初期化されずに復帰し、通常遊技開始可能状態であることを示す。
また、電源投入時状態バッファは、前述したように、停電発生前の状態に復旧するために、停電発生時点での遊技状態の情報を記憶する記憶領域であるが、電源投入時状態コマンドには、電源投入時状態バッファの値に1を加算した値が格納される。例えば、低確率非時短では、電源投入時状態バッファには1が記憶されており、この値に1を加算した2が電源投入時状態コマンドに格納される。また、主制御RAM1312が初期化された場合、電源投入時状態バッファが0となっているので、電源投入時状態コマンドには1が格納され、主制御RAM1312が初期化されたことを通知できる。
図221は、主制御MPU1311が実行する主制御側メイン処理のフローチャートである。主制御側メイン処理は、電源投入時処理(図214)のステップS2240の後に実行される。
まず、主制御MPU1311は、停電予告信号を取得し、停電予告信号がONであるかによって停電が発生しているかを判定する(ステップS2310)。別例2では、メイン処理において停電を監視しているが、タイマ割込み処理で停電を監視して、停電発生が検出された場合に停電処理を実行してもよい。例えば、タイマ割込みの開始及び終了時の少なくとも一方で停電予告信号がONであるかを判定し、停電予告信号が継続的に出力されている期間をカウントし、カウント結果が所定値となった場合に停電が発生していると判定してもよい。
停電予告信号がONでない場合、正常に電源が供給されているので、乱数更新処理2を実行する(ステップS2311)。乱数更新処理2は、図195で説明したものと同じでよく、主として特別抽選や普通抽選において当選判定を行うための乱数以外の乱数を更新する。
一方、停電予告信号を検出した場合、電源断時処理(ステップS2312~S2319)を実行する。電源断時処理では、停電発生前の状態に復帰させるためのデータをバックアップする処理を実行する。具体的には、まず、割込みを禁止する(ステップS2312)。これにより後述するタイマ割込み処理が行われなくなる。さらに、主制御MPU1311は、出力ポートをクリアして、各ポートからの出力によって制御される機器の動作を停止する(ステップS2313)。具体的には、ソレノイド・停電クリア・ACK出力ポートに停電クリア信号OFFビットデータを出力する。なお、全ての出力ポートがクリアされなくてもよく、例えば、電力消費が大きいソレノイドやモータを制御するための出力ポートをクリアしてもよい。これらの出力ポートをクリアすることによって、主基板側電源断時処理が終了するまでの消費電力を低減し、主基板側電源断時処理を確実に終了できるようにする。
その後、フラグレジスタを遊技領域内スタックエリアに退避し(ステップS2314)、電源OFF時処理を実行して、電源が遮断される前に必要な処理を実行する(ステップS2315)。電源OFF時処理の詳細は図222で後述する。そして、遊技領域内スタックエリアに退避したフラグレジスタを復帰する(ステップS2316)。
続いて、主制御MPU1311は、バックアップされるワークエリアに格納されたデータが正常に保持されたか否かを判定するための、主制御RAM1312の遊技制御領域内のワークエリアのチェックサムを計算し、主制御RAM1312の所定のチェックサム格納エリアに記憶する(ステップS2317)。このチェックサムはワークエリアにバックアップされたデータが正常かの判定に使用される。なお、チェックサムが算出される対象の領域は、遊技制御領域内のワークエリアのうち、電源投入後主制御側メイン処理の実行までの間に変更される可能性がある設定状態管理(設定値と設定状態管理エリアの値)や、バックアップフラグや、チェックサムエリアの値を除外するとよい。
さらに、停電フラグとしてバックアップフラグエリアに正常に電源断時処理が実行されたことを示す値(5AH)を格納する(ステップS2318)。これにより、遊技バックアップ情報の記憶が完了する。最後に、RAMプロテクト有効(書き込み禁止)、禁止領域の無効をRAMプロテクトレジスタに書き込み、主制御RAM1312の所定の領域への書き込みを禁止し(ステップS2319)、停電から復旧するまでの間、待機する(無限ループ)。主制御MPU1311は、主制御RAM1312の使用領域を指定することによって、指定領域以外の禁止領域へアクセスがあった場合には、異常と判定してリセットする機能を有する。このため、RAMプロテクトレジスタの禁止領域を無効に設定することで主制御RAM1312へのアクセスによるリセット機能が解除される(リセットされない)ようにして、全領域へのアクセスを可能とする。なお、主制御RAM1312のうち未使用領域を禁止領域に指定して、禁止領域を有効にして、指定された禁止領域にアクセスを検出した場合には、主制御MPU1311がリセットされるようにしてもよい。
図222は、電源OFF時処理のフローチャートである。電源OFF時処理は、主制御側メイン処理(図221)のステップS2315において実行され、電源が遮断される前に必要な処理を実行する。
まず、主制御MPU1311は、主制御RAM1312の遊技制御領域外のSP退避用バッファにスタックポインタの値を格納し(ステップS2320)、遊技領域外スタックポインタ値をスタックポインタに設定し(ステップS2321)、全てのレジスタ値を遊技領域外のレジスタ退避用バッファに格納する(ステップS2322)。
続いて、主制御RAM1312の遊技制御領域外のチェックサムを算出し、主制御RAM1312の遊技領域外チェックサム格納エリアに格納する(ステップS2323)。その後、パワーダウンチェックエリア(EX_PDIND)に5AHを設定し、主制御RAM1312のうち遊技領域外のRAMエリアが初期化済みであることを記録する(ステップS2324)。パワーダウンチェックエリアに5AHが記録されている場合、停電処理が正常に実行されている。この意味において、パワーダウンチェックエリアと遊技制御領域内のRAMのバックアップフラグとは実質的に同じである。停電処理が正常に実行されているので、既に主制御RAM1312の遊技制御領域外の領域については正常であると判定されており、結果としてパワーダウンチェックエリアに5AHが設定されていれば、主制御RAM1312の遊技制御領域外の領域の初期化が完了している。
このように、本実施例のパチンコ機1では、停電処理が正常に実行されたことを示す二種類のフラグが、主制御RAM1312の遊技制御領域内と遊技制御領域外の各々に設けられている。これは、遊技制御領域内と遊技制御領域外とで二重に判定するためであり、また、遊技制御領域内と遊技制御領域外とで一つの記憶領域を共有していないことから、独立に処理することが望ましいからである。例えば、停電処理が正常に実行されたことを示すフラグが一つであると、誤って当該フラグに5AHがセットされて、停電処理を行なうことなく復帰すると、停電処理が正常に実行されたと誤って判定される。このように二重で判定することによって、誤判定の可能性を低減している。
さらに、二つのフラグは、領域として離れた領域(例えば、アドレスの下位バイト(**00H~**FFH)又は上位バイト(00**H又は01**H)が重ならない領域)に設けることによって、ノイズなどの不具合によってデータが書き換えられても正しく復帰できるようになっている。
そして、遊技領域外のレジスタ退避用バッファに退避した、呼出元の処理で使用するバンク(バンク0又はバンク1)の全レジスタ値を復帰し(ステップS2325)、遊技領域外のSP退避用バッファに退避したスタックポインタ値を復帰し(ステップS2326)、呼び出し元に戻る。
図223は、主制御MPU1311が実行するタイマ割込み処理のフローチャートである。
まず、主制御MPU1311は、レジスタバンク選択フラグを1に設定し、レジスタのバンクを切り替える(ステップS2330)。なお、主制御MPU1311は、演算に使用するレジスタ群を二つ有し、一つはバンク0のレジスタ群として使用し、他はバンク1のレジスタ群として使用可能とされており、バンク切換を行わずに、両方のバンクのレジスタを使用できないように構成されている。主制御側メイン処理ではレジスタバンク0が使用され、タイマ割込み処理ではレジスタバンク1が使用される。このため、タイマ割込み処理の開始時にはバンクを1に切り替える命令を実行するが、タイマ割込み処理の終了時にはバンクを0切り替える命令を実行する必要がない。これは、主制御MPU1311は、バンクの状態をフラグレジスタ(例えば、Zフラグ、Cフラグがセットされているレジスタ)に記憶しており、フラグレジスタは、割込開始時にスタックエリアに退避され、RET命令の実行によってスタックエリアから復帰する。このため、RET命令を実行することでフラグレジスタに記憶したレジスタのバンクフラグも元に戻る。なお、バンクの状態をフラグレジスタに記憶しない構成を採用した場合、タイマ割込み処理の終了時にバンク切替命令を実行して、バンク0に戻す。
なお、フラグレジスタには、割込可否を制御するフラグも記憶されているため、割り込み許可に設定してからRET命令を実行しなくてもよい。なお、割込可否を制御するフラグは、タイマ割込み処理の開始時に、フラグレジスタをスタックした後に割込禁止状態に設定される。このため、タイマ割込処理中に割込を許可(EI命令など)するか、RETI命令を実行しない限り、割込み許可状態にはならない。
次に、LEDコモンカウンタを+1更新する。なお、LEDコモンカウンタ値が上限を超える場合は0にする(ステップS2331)。
次に、スイッチ入力処理1を実行する(ステップS2332)。スイッチ入力処理1では、主制御MPU1311の各種入力ポートの入力端子に入力されている各種信号を読み取り、ONエッジを作成し、入力情報として主制御RAM1312の入力情報記憶領域に記憶する。
なお、ステップS2332のスイッチ入力処理1は入賞信号に関する処理であり、図191のステップS2080のスイッチ入力処理2は不正検出センサ(磁石センサ、電波センサ、振動センサ等)の入力に関する処理である。このため、設定変更モードや設定確認モードで実行されるタイマ割込み処理では、ステップS2335においてNOと判定されるので、入賞検出は行われるが、不正検出センサによる不正は検出されない。なお、入賞が検出されても、賞球の払出しや変動表示等は実行されない。設定変更操作や設定確認操作はホールの従業員が行うものであり、設定変更モードや設定確認モードでは不正が行われず、不正を検出しない方が望ましいと考えられるからである。例えば、設定変更や設定確認の操作は扉が開放された状態で行われるため、ヒンジ部材によって外枠2と接続された扉枠3及び本体枠4が揺れやすい状態となることから、振動センサが振動を誤検知する可能性がある。このため、設定変更モードや設定確認モードにおいて不正検出センサによる不正の検出を止めることによって、このような誤報知を防止できる。また、ホールの従業員が床に落ちている球を回収するための磁石を所持しており、設定変更や設定確認の操作時の従業員が保持している磁石の誤報知を防止できる。すなわち、本実施例のパチンコ機1は、不正検出を無効化(又は、制限、規制、抑制など)する手段を有し、通常の遊技処理に移行した後(例えば、電源投入時の初期設定処理の終了後)に、不正検出を有効化し、特定の遊技状態(例えば、設定処理中)においては、前記手段により不正検出を無効化(又は、制限、規制、抑制など)する。
なお、設定変更モードや設定確認モードでも、一部の不正検出センサ(例えば電波センサ)はスイッチ入力処理1で検出し、特定の種類の不正を監視してもよい。このようにすると、不正行為を行おうとする者(ゴト師)が電波を照射する等によって強制的に設定変更モードを起動する不正を検出できる。
続いて、乱数更新処理1を実行する(ステップS2333)。乱数更新処理1では、大当り判定用乱数、大当り図柄用乱数、及び小当り図柄用乱数を更新する。またこれらの乱数に加えて、図221に示した主制御側メイン処理の乱数更新処理2で更新される大当り図柄決定用乱数及び小当り図柄決定用乱数の初期値を変更するための、それぞれの初期値決定用乱数を更新する。図223に示すタイマ割込み処理では、設定値を変更するための設定処理を実行する場合でも乱数を更新する。これは、当落を判定するハードウェア乱数は、設定変更や設定確認の処理中かにかかわらず更新されるため、ソフトウェアで生成する乱数も、ハードウェア乱数の起動と同じタイミングで更新する、すなわち、設定変更や設定確認の処理中も更新することによって、ハードウェア乱数とソフトウェア乱数との不整合が生じにくく、遊技における演出の期待値や、特定の演出時に大当りが導出される期待値の設計値からの乖離を抑制できる。
その後、設定値確認処理(図215)を実行して、設定値が正常範囲内かを判定する(ステップS2334)。なお、設定値確認処理は、タイマ割込み処理において定期的に実行されるが、タイマ割込み処理において設定値確認処理を実行しなくても、変動開始時、遊技状態の切替時(例えば、大当り確率の切替時、大当り遊技の開始時や終了時、時短状態の開始時や終了時)、不正検出時(例えば、扉開放時、磁気検知時)などの特定の条件の成立を契機に行なうとよい。タイマ割込み処理の実行時のように短周期で定期的に判定しなくても、特定条件の成立時に判定すれば、主制御MPU1311のリソースの消費を抑制できる。
そして、設定状態管理エリアに遊技開始を示す値(00H)が記録されているかを判定する(ステップS2335)。設定値確認処理(ステップS2334、図215)の後に設定状態管理エリアの値を確認することによって、設定値が異常と判定されたときに、直後の設定状態管理エリアの値を確認(S2335)で通常遊技処理が実行されないように制御している。設定状態管理エリアに遊技開始を示す値が記録されていれば、図191のステップS2080に進む。一方、設定状態管理エリアに遊技開始を示す値が記録されていなければ、LEDコモンポートをOFFにする(ステップS2336)。タイマ割込み処理の早い段階でLEDコモン信号をOFFにすることによって、LEDコモン信号がオンになるまでの時間、すなわちLEDの消灯時間を確保し、LEDの表示切替前後の表示が混ざって見えるゴースト現象を抑制し、LEDのちらつきを防止している。
その後、外部端子板784からセキュリティ信号を出力し(ステップS2337)、フラグレジスタを遊技領域内スタックエリアに退避する(ステップS2338)。そして、試験信号出力処理を実行して、試験信号を出力する(ステップS2339)。そして、フラグレジスタを遊技領域内スタックエリアに退避する(ステップS2340)。試験信号を出力するための処理の実行の開始前後において、他の遊技領域外処理と同様にスタックポインタ、レジスタを退避し、処理終了後に復帰している。試験信号処理は、遊技の進行を制御するものではないことから、遊技制御領域外の処理として実行している。なお、試験信号処理を、遊技制御領域内の処理として実行しても遊技に影響を及ぼさなければ、遊技制御領域内の処理として実行してもよい。試験信号処理を遊技制御領域内の処理として実行する場合、試験信号出力処理(ステップS2339)の前後で実行されるフラグレジスタの退避及び復帰(ステップS2337、S2340)が不要となる。
そして、設定処理を実行する(ステップS2341)。設定処理の詳細は図224で後述する。
その後、設定表示処理を実行する(ステップS2342)。設定表示処理の詳細は図225で後述する。
さらに、送信情報記憶領域の値をシリアル通信回路に出力する周辺基板コマンド送信処理を実行する(ステップS2343)。送信情報記憶領域は、生成された送信コマンドを一時的に格納する記憶領域である。送信情報記憶領域に格納された値(コマンド)は、ステップ2070で読み出されてシリアル通信回路(SIO)の送信情報記憶領域に格納される。シリアル通信回路は、複数バイトのFIFO形式の送信情報記憶領域を有する。この送信情報記憶領域には、コマンド生成毎に生成されたコマンドが格納され、送信情報記憶領域に格納された値(コマンド)を、順次、周辺制御基板1510に送信する。なお、コマンド生成毎に、シリアル通信回路のFIFO形式の送信情報記憶領域に、生成されたコマンドを直接格納してもよい。
その後、ウォッチドッグタイマクリアレジスタWCLに所定値(18H)をセットして、ウォッチドッグタイマをクリアする(ステップS2344)。なお、ウォッチドッグタイマは、単純クリアモードを使用しているので、1ワードをセットすることによってウォッチドッグタイマがクリアされる。その後、復帰命令(例えばRETI)によって、レジスタのバンクを切り替え(ステップS2345)、割り込み前の処理に復帰する。
ステップS2335で設定状態管理エリアに遊技開始を示す値が記録されていると判定された後の処理は、図191で前述した処理と同じである。ステップS2091で、出力データ設定処理を実行した後、図223のステップS2343に進む。
図224は、設定処理のフローチャートである。設定処理は、設定状態管理エリアが通常遊技状態を示す値(00H)ではない場合に、タイマ割込み処理(図223)のステップS2341において実行され、主に設定値を変更する処理を実行する。
まず、主制御MPU1311は、設定状態管理エリアにRAM異常を示す値(03H)が記録されているかを判定する(ステップS2350)。設定状態管理エリアにRAM異常を示す値が記録されていれば、電源投入時コマンドを作成し(ステップS2351)、呼出元の処理に戻る。
これにより、RAM異常の場合、RAM異常が解除されるまでRAM異常を示す電源投入時動作コマンド(A004H)がタイマ割込み毎に送信される。これは、RAM異常を示す電源投入時動作コマンドを1回しか送らないと、コマンドが欠落した場合にRAM異常再通知がされないことから、周辺制御基板1510が遊技機の状態を知ることができないためである。また、機能表示ユニット1400が全消灯なので、周辺制御基板1510が遊技機の状態を知らないと、異常報知が行われなくなるため、遊技機の状態を外部から確認できなくなることを防ぐためである。また、RAM異常時には、遊技が行われないために、当該電源投入時動作コマンド以外のコマンドが周辺制御基板1510に送信されないために、RAM異常状態が継続する限り、電源投入時動作コマンドを繰り返し送信している。
すなわち、本実施例のパチンコ機は、同一系統のコマンド(例えば、電源投入時動作コマンド)において、所定の周期毎に実行される定期処理(タイマ割込み処理)の実行を契機として、所定回数(例えば、1回、2、3回などの少ない回数の複数回)だけ送信する第1のケースと、パチンコ機の動作中において、回数を制限することなく、所定の周期毎に繰り返し送信される第2のケースとを含み、前記第2のケースでは、周辺制御基板1510が正しく受信したか否かに関わらず、同一のコマンドが繰り返し送信され、通常遊技の停止時に他の遊技関連コマンドが送信されない状態でも送信されるコマンドである。
周辺制御基板1510は、RAM異常に関するコマンドを受信すると、RAM異常に関する報知を行なう。なお、RAM異常報知中に再度同じコマンドを受信しても、受信したRAM異常に関するコマンドを無効として、現在行われている報知を継続するとよい。後続するコマンドを無効とすることによって、例えば、音声による報知を最初から繰り返すことを防止でき、正常な報知ができる。
RAM異常に関するコマンドは、常に同じでもよいが、送信されるタイミングによって異なってもよい。送信されるタイミングによってRAM異常に関するコマンドを変えることによって、コマンドの整合性を判定してもよい。例えば、電源投入時にRAM異常であるときに送信される電源投入時動作コマンド(A004H)と、通常のタイマ割込み時にRAM異常であるときに送信される電源投入時動作コマンド(A005H)とすることによって、周辺制御基板1510は、電源投入時コマンド(A004H)の後に電源投入時コマンド(A005H)を受信すると、電源投入時のRAM異常が継続していると判定できる。一方、電源投入時コマンド(A004H)を受信せずに電源投入時コマンド(A005H)を受信すると、電源復帰後(例えば、通常遊技中)に主制御RAM1312に記録された設定値や設定状態管理エリアが異常になったと判定できる。このようにすると、判定される二つの状態の各々で、報知態様を異ならせることができる。例えば、電源投入時のRAM異常が継続している場合はRAM異常と報知し、電源復帰後にRAM異常が発生した場合は設定値異常と報知する等が可能となる。
なお、RAM異常報知中では、遊技者による設定調整機能(例えば、扉枠3に設けられたボタンの操作による音量や輝度の調整)を停止してもよい。これは、RAM異常報知中の遊技者による設定調整操作は、誤操作だと考えられるからである。具体的には、通常遊技状態を示す電源投入時動作コマンドを受信するまでは、遊技者による設定調整機能を停止するとよい。
RAM異常と判定されると設定処理を繰り返し実行することになるため、特別図柄や普通図柄に関する処理が実行されず、遊技が全くできない状態になる。このRAM異常は、一旦電源を遮断して停電処理を実行後、電源を再投入する際に、設定キー971とRAMクリアスイッチ954とで設定変更モードを起動する操作をすることによって、設定変更状態となりRAM異常が解消される。そして、設定キー971を元に戻す操作によって設定変更モードが終了して通常遊技が開始可能となる。
また、電源を再投入する際に、設定キー971とRAMクリアスイッチ954とで設定変更モードを起動する以外の操作をした場合、設定状態管理エリアのRAM異常を示す値(03H)は維持され、RAM異常状態が継続し、通常遊技を開始できない。つまり、RAM異常を解消して通常遊技状態にするためには、必ず、設定変更モードを経由する必要がある。
一方、設定状態管理エリアにRAM異常を示す値が記録されていなければ、設定キー971がOFF位置に戻ったかを判定する(ステップS2352)。具体的には、設定キー971のONからOFFへのエッジ、又は、ONからOFFへ変化してから所定期間経過したかを検出する。
設定キー971がOFF位置に戻ったと判定(設定変更又は設定確認の終了と判定)されると、セキュリティ信号出力タイマに出力時間を設定し(ステップS2353)、設定状態管理エリアを初期化して(ステップS2354)、図219に示す電源投入時設定処理を実行し(ステップS2355)、呼出元の処理に戻る。
設定変更モードを終了する操作(設定キー971をOFF)がされた場合、セキュリティ信号出力タイマに出力時間値を設定することによって、設定変更モードの終了後セキュリティ信号がOFFになるまでの遅延時間を設ける。このため、設定変更モードや設定確認モードが短時間(例えば、一度のタイマ割込み処理内)で終了しても、セキュリティ信号の最短の出力信号をセキュリティ信号出力タイマに出力時間値として設定した分だけ確保でき、ホールコンピュータが確実にセキュリティ信号を検出できる。
また、セキュリティ信号がOFFになるまでの遅延時間中に不正を検出した場合、セキュリティ信号を維持したまま、新たに検出した不正に対応した期間又は時間分、セキュリティ信号を出力するとよい。
さらに、セキュリティ信号がOFFになるまでの遅延時間中に停電が発生した場合、電源復帰時に通常遊技状態でホットスタートすると、残時間分のセキュリティ信号を出力し、RAMクリアスイッチの操作によるRAMクリア時又は設定変更によるRAMクリア時には、残時間分のセキュリティ信号を出力しない。これは、主制御RAM1312の初期化によって、セキュリティ信号出力タイマ値がリセットされ、当該主制御RAM1312の初期化に伴うセキュリティ信号の出力が開始するためである。
セキュリティ信号出力中に停電が発生した後に電源が投入されたときには、ホットスタート、RAMクリア、設定変更モード、設定確認モード、RAM異常状態継続の5パターンのいずれかになる。
設定変更モード及び設定確認モードに移行した場合、起動されたモードが終了し、遅延時間が経過するまでセキュリティ信号が出力される。RAM異常状態が継続する場合、電源が復帰しても設定変更操作がされていないので、継続するRAM異常によるセキュリティ信号が出力される。設定変更モードまたは設定確認モードが終了し、遅延時間が経過する前に停電した場合、電源の復旧後にホットスタートの場合、残余時間分だけセキュリティ信号が出力される。
セキュリティ信号を継続して出力する場合でも、電源投入時のパワーオンリセット信号によってセキュリティ信号の出力が停止し、所定時間(例えば、周辺制御基板1510の起動待ち時間中)の経過後にタイマ割込み処理に移行してからセキュリティ信号の出力が再開する。つまり、以下の場合においてセキュリティ信号出力中に停電が発生した後にセキュリティ信号を継続して出力するときでも、電源復帰後の所定の期間はセキュリティ信号の出力を停止する期間を設けている。
・不正検出などによるセキュリティ信号出力中に停電が発生した後、ホットスタートで電源が復帰する場合
・RAM異常によるセキュリティ信号出力中に停電が発生した後、電源が復帰して、RAM異常が継続する場合
・設定変更モードによるセキュリティ信号出力中に停電が発生した後、電源が復帰して、設定変更モードが継続する場合
・設定確認モードによるセキュリティ信号出力中に停電が発生した後、電源が復帰して、設定確認モードが継続する場合
このように、セキュリティ信号出力中に停電が発生した後にセキュリティ信号を継続して出力するときでも、電源復帰後の所定の期間はセキュリティ信号の出力を停止することによって、ホールコンピュータ側でセキュリティ信号に異常があったのか、セキュリティ信号の出力に伴う状態が解除されたのかを判別できる。
また、設定キー971のみが操作された設定確認モードでは、セキュリティ信号が出力される残時間にかかわらず、設定確認モードが終了するまでセキュリティ信号を出力し、設定確認モードが終了して遅延時間が経過した後にセキュリティ信号の出力を停止する。また、設定キー971及びRAMクリアスイッチ954が操作された設定変更モードでも設定確認モードと同様の処理を行うとよい。
一方、ステップS2352で、設定キー971がOFF位置に戻っていないと判定されると、設定状態管理エリアに設定変更を示す値(02H)が記録されているかを判定し(ステップS2356)、設定変更モードであると判定された場合には、設定変更スイッチ972が操作されたかを判定する(ステップS2357)。なお、設定変更スイッチ972は、RAMクリアスイッチ954と兼用される構成でもよい。その結果、設定状態管理エリアに設定変更を示す値が記録されており、かつ、設定変更スイッチ972が操作されたと判定されると、設定値を+1更新する(ステップS2358)。なお、設定値が上限6を超える場合は0にする(ステップS2359、S2360)。その後、呼出元の処理に戻る。
一方、設定状態管理エリアに設定変更を示す値が記録されておらず(つまり、設定確認モードであり)、又は、設定変更スイッチ972が操作されていないと判定されると、設定値を更新せずに、呼出元の処理に戻る。
なお、設定変更スイッチ972の操作を判定する際(直前又は直後に)、設定キー971がONに操作されているかを判定してもよい。このように、設定変更スイッチ972の操作時に設定キー971の操作を判定すると、停電発生時に設定変更モードであり、停電復帰時に設定キー971がONに操作されていなくても、設定変更スイッチ972の操作によって設定変更が可能となることを防止できる。
図225は、主制御MPU1311が実行する設定表示処理のフローチャートである。設定表示処理は、設定状態管理エリアが通常遊技状態を示す値(00H)ではない場合に、タイマ割込み処理(図223)のステップS2342において実行され、設定値を表示する処理を実行する。
まず、主制御MPU1311は、LEDセグメントポートをクリアする(ステップS2370)。
そして設定状態管理エリアにRAM異常を示す値(03H)が記録されているかを判定する(ステップS2371)。設定状態管理エリアにRAM異常を示す値が記録されていなければ、現在の設定値がベース表示器1317に表示されるようにLEDのセグメント端子の出力を設定する(ステップS2372)。一方、設定状態管理エリアにRAM異常を示す値が記録されていれば、エラーがベース表示器1317に表示されるように、LEDのセグメント端子の出力を設定する(ステップS2373)。
その後、LEDコモンカウンタに対応したLEDコモン信号を出力し(ステップS2374)、設定値又はエラー表示に対応する表示データ(セグメント信号)をベース表示器1317に出力するようドライバを駆動し(ステップS2375)、呼出元の処理に戻る。
[12-18.設定変更・確認処理の別例3]
次に、設定変更機能を有するパチンコ機の別な実施例について説明する。以下に説明する別例3では、設定変更処理用のタイマ割込み処理が通常遊技用のタイマ割込み処理と別に設けられている点が、前述した別例2との主な相違点である。以下に説明する以外の処理は、前述した別例2と同じである。
なお、別例3では、別例2と同様に、設定変更スイッチ972を設けずに、RAMクリアスイッチ954の操作によって設定値が選択できるものであるが、RAMクリアスイッチ954の本来の主制御RAM1312の初期化機能と、設定変更機能とを区別して記載するために、設定値の変更にかかる操作については設定変更スイッチ972として説明することがある。
図226、図227は、電源投入時に主制御MPU1311が実行する電源投入時処理のフローチャートである。
まず、主制御MPU1311は、電源の投入により、リセット信号が解除されるとプログラムコードの開始番地である8000番地から処理を開始する。主制御RAM1312のプロテクト無効及び禁止領域無効をRAMプロテクトレジスタに設定する(ステップS2400)。主制御MPU1311は、主制御RAM1312の使用領域を指定することによって、指定領域以外の禁止領域へアクセスがあった場合には、異常と判定してリセットする機能を有する。本別例3においては、主制御RAM1312の禁止領域へのアクセスによるリセット機能を解除するために、禁止領域を無効に設定することで主制御RAM1312の全領域へのアクセスを可能としている。なお、主制御RAM1312のうち未使用領域を禁止領域に指定して、禁止領域を有効にして、指定された禁止領域にアクセスを検出した場合には、主制御MPU1311がリセットされるようにしてもよい。
すなわち、本実施例のパチンコ機1では、RAMクリアスイッチ954が操作された状態で電源が投入された場合には、直ちに主制御RAM1312の所定の領域を初期化している。しかし、チェックサムが不一致の場合や、バックアップフラグが正常に設定されていない場合には、RAM異常として遊技機の機能を停止して、遊技ができない状態にした後に、設定変更操作が行なわれないと、主制御RAM1312は初期化されず、遊技も実行されないように制御している。
このため、RAMプロテクトレジスタの禁止領域を有効に設定した場合、誤動作や不具合などによるRAMの禁止領域への誤ったアクセスによってリセットが発生し、主制御MPU1311が電源投入時処理を実行した際に、停電処理が実行されておらず、チェックサムが計算されず、バックアップフラグが設定されていないために、RAM異常と判定される。RAM異常と判定されるとRAMクリア処理によって遊技が初期化されるだけでなく、ホールの従業員によるRAM異常解除操作(設定変更操作)がされない限り、遊技を再開できないため、RAMプロテクトレジスタの禁止領域の設定としては「無効」とするのが望ましい。
なお、禁止領域を有効に設定してもよい。禁止領域を有効に設定することによって、不正等で主制御RAM1312の禁止領域へのアクセスがあった場合に、ホールの店員によるRAM異常解除操作(設定変更操作)がされない限り、遊技を再開できないことから、不正行為に対する耐性を向上できる。
次に、所定時間の単純クリアモードタイマをウォッチドッグタイマに設定し(ステップS2401)、ウォッチドッグタイマをクリアする(ステップS2402)。その後、停電クリア信号をONに設定し(ステップS2403)、停電クリア信号をOFFに設定する(ステップS2404)。これは、停電クリア信号をONに設定してから、OFFに設定することによって、ラッチに記憶された停電予告信号を正常な状態(停電ではない状態)に設定できる。
次に、設定キー971とRAMクリアスイッチ954の信号のレベルをPFポートから読み出し、レジスタに記憶する(ステップS2405)。RAMクリアスイッチ954と設定キー971が操作されているか否かの判定は、周辺制御基板1510が確実に起動した後に主制御MPU1311が行うため、周辺制御基板1510が起動するまでの待機中に、ホールの従業員がRAMクリアスイッチ954や設定キー971の操作を誤って中断すると、ホールの従業員が意図していない状態でRAMクリアスイッチ954と設定キー971が判定されてしまう。このため、電源投入時処理開始後の早い段階でRAMクリアスイッチ954と設定キー971の入力状態(レベル)を一時的な記憶手段であるレジスタ等に格納し、周辺制御基板1510の待機状態の終了後に一時的な記憶手段であるレジスタ等に格納したRAMクリアスイッチ954と設定キー971の状態を判定することによって、ホールの従業員が電源投入後の早い段階でキー操作を誤って中断しても、電源投入操作時のRAMクリアスイッチ954や設定キー971の操作を確実に検出する。
その後、停電予告信号が停電中であるかを判定する(ステップS2406)。停電予告信号が検出されていれば、パチンコ機の電源電圧が正常ではないので、ステップS2406で電源電圧が安定するまで待機する。ステップS2406のループでは、ウォッチドッグタイマをクリアしないため、停電が解除されなければウォッチドッグタイマがリセットを発生する。このウォッチドッグタイマによるリセットでは、システムリセットのようにセキュリティチェックを実行することなく直ちにスタートアドレスからプログラムを開始し、電源投入時処理が実行される。このため、ステップS2406のループにおいて停電予告信号が解除されない限り、ループから抜け出さない。
このように、停電予告信号を検出する停電判定処理が、一つ目は電源投入時処理中のステップS2406、S2408で、二つ目は通常遊技中の主制御側メイン処理のステップS2450で、2箇所で実行している。後者(ステップS2450)では、停電を検出することでステップS2462以後の停電処理を実行するが、前者(ステップS2406、2408)では、停電を検出しても停電処理を実行しない。なお、ループの期間は、チェックサムの値とバックアップフラグの値が維持されるために、停電処理を実行しなくても、停電発生時の状態に正しく復帰できる。
なお、本実施例のパチンコ機1におけるリセットは、リセット回路によって発生するシステムリセットと、ウォッチドッグタイマや遊技制御RAM1312の指定領域外のアクセスによって発生するユーザリセットがある。システムリセットでは、数百ミリ秒のセキュリティチェックが実行された後にプログラムが起動するが、ユーザリセットでは、リセットの解除時にセキュリティチェックを実行することなく直ちにプログラムを起動する。
このため、例えば、通常の遊技処理中にウォッチドッグタイマによりリセットが発生すると、停電処理が実行されず、チェックサムが計算されず、かつバックアップフラグが設定されていないために、RAM異常と判定される。RAM異常と判定されるとRAMクリア処理によって遊技状態が初期化され、ホールの店員によるRAM異常解除操作(設定変更操作)が行われない限り遊技を再開できない。一方、電源投入時処理中のステップS2406、S2408において、ウォッチドッグタイマによってリセットが発生しても、ホールの店員によるRAM異常解除操作(設定変更操作)が行われずに、停電発生時の状態に正しく復帰できる。
このように、ウォッチドッグタイマにより発生したリセットについて、パチンコ機1を再起動するためにRAM異常を解除するための設定変更操作を必要とする場合と必要とない場合とを設けたのは、通常時遊技中にウォッチドッグタイマによるリセットの発生は、ソフト的な不具合が発生したときであり、主制御RAM1312に格納されたデータが破壊されており、停電発生時の遊技状態と違う内容が記憶されている可能性が高いため、主制御RAM1312を初期化することが望ましい。一方、電源投入時処理でウォッチドッグタイマによるリセットの発生は、ハード的な不具合が発生したときであり、主制御RAM1312に格納されたデータが破壊される可能性は低いため、主制御RAM1312を初期化する必要性が低いからである。
以上にウォッチドッグタイマにより発生するリセットについて説明したが、ウォッチドッグタイマにより発生するリセットの他の種類のユーザリセットでも同様な処理が行われる。すなわち、本実施例のパチンコ機1では、複数のリセットの要因があり、そのうちの一つのリセット要因に伴って発生するリセット(例えば、ウォッチドッグタイマによるユーザーリセット)によって前述した処理が実行され得る。
その後、サブ起動待ちタイマ(例えば約2秒)を開始し、当該タイマがタイムアップするまでの間ウォッチドッグタイマを継続的にクリアし、周辺制御基板1510の起動を待つ(ステップS2407)。周辺制御基板1510の起動待ちは、設定値を判定した後でなくても、電源投入後から周辺制御基板1510に最初にコマンドを送信するまでの期間であればいつでもよい。
その後、停電予告信号が停電中であるかを再度判定する(ステップS2408)。停電予告信号が検出されていれば、パチンコ機1の電源電圧が異常なので、ステップS2408で待機する。なお、停電予告信号が停電中であるかの判定は、ステップS2406とS2408の両方で判定しなくても、いずれか一方で判定してもよい。
その後、図215に示す設定値確認処理を実行して、設定値が正常範囲内かを判定する(ステップS2409)。
その後、フラグレジスタを遊技制御領域内スタックエリアに退避し(ステップS2410)、図216に示す電源投入時遊技領域外RAM確認処理を実行して、主制御RAM1312の遊技制御領域外の異常を判定する(ステップS2411)。そして、遊技制御領域内スタックエリアに退避したフラグレジスタを復帰する(ステップS2412)。
その後、RAM異常判定結果値をCレジスタに仮設定し(ステップS2413)、設定状態管理エリアにおけるRAM異常値(03H)をBレジスタに仮設定する(ステップS2414)。
別例3において設定状態管理エリアに設定される値は、前述した実施例において図201(B)に示したものと異なり、図220(A)に示すように、主制御RAM1312に異常があれば03Hが記録される。すなわち、別例3の設定状態管理エリアは、パチンコ機1の動作モードが記録される1バイトの記憶領域であり、例えば下位の4ビットが使用され、上位の4ビットは定義されていない。具体的には、通常遊技状態では00H、設定確認モードでは01H、設定変更モードでは02H、主制御RAM1312に異常があれば03Hが記録される。
設定状態管理エリアは、RAMクリアスイッチ954のみの操作によるRAMクリア処理では00Hに更新されず、現在の値が維持される。また、設定確認モードの終了時には01Hから00Hに更新され、設定変更モードの終了時には02Hから00Hに更新される。さらに、主制御RAM1312が異常である場合、次の電源投入時の設定変更操作によって設定変更モードになると03Hから02Hに更新され、設定変更モードの終了時に02Hから00Hに更新される。
さらに、主制御RAM1312に異常があるかを判定する(ステップS2415、S2416)。具体的には、前回の電源遮断時に内蔵RAM1312にバックアップされている領域のうち遊技制御領域として使用されているデータ(スタックに退避されたデータは除く)から算出して記憶されたチェックサムと、同じ領域を使用して算出されたチェックサムとを比較し、両者が異なれば、主制御RAM1312に異常があると判定する。また、正常にバックアップされた(電源断時処理が正常に実行された)ことを示す停電フラグの値がバックアップフラグエリアに格納されていなければ、停電発生時に主制御RAM1312のデータが正常にバックアップされておらず(電源断時処理が正常に実行されておらず)、主制御RAM1312に異常があると判定する。
そして、主制御RAM1312の遊技制御領域内及び遊技制御領域外のいずれかに異常があれば、ステップS2419に進む。一方、主制御RAM1312の遊技制御領域内及び遊技制御領域外のいずれにも異常がなければ、RAM正常判定結果値をCレジスタに仮設定し(ステップS2417)、設定状態管理エリアの情報をBレジスタに設定して(ステップS2418)、ステップ2219に進む。これにより、Cレジスタには、主制御RAM1312が異常か否かの判定結果が設定されるため、以降の処理で「RAM異常」「電断前の遊技状態」の判定として、RAM異常を判定する処理(チェックサム、バックアップフラグの一致を判定する処理)を再度実行する必要がなく、プログラムのサイズを小さくできる。
また、Bレジスタには、停電発生時の設定状態管理エリアの値又は電源復帰時の主制御RAM1312の判定結果(RAM異常値)が設定され、ステップS2419で設定状態管理エリアにRAM異常値を仮設定することで、不要な処理を削除でき、プログラムのサイズを小さくできる。例えば、ステップS2419で設定状態管理エリアにRAM異常値を仮設定しなければ、ステップS2423やS2424の各判定でYESと判定されたとき、設定状態管理エリアにRAM異常値を設定して、ステップS2436へのJUMP命令を実行する必要がある。しかし、ステップS2419で既に設定状態管理エリアにRAM異常値が仮設定されているため、ステップS2423の判定時にJUMP先としてS2436を指定することによって、以下に例示するソースコード例に示すように、JUMP命令を減少できる。
ステップS2419でRAM異常値を仮設定しない場合のソースコード例
AND A,30H ;S2420
CP A,30H ;S2421(bit5:設定キー,bit4:RAMクリアSWとした場合)
JR Z,RESET_P_6 ;
CP B,02H ;S2422
JR Z,RESET_P_6 ;
CP C,00H ;S2423
JR Z,$111 ;
$000:
LD W,03H ;S2419相当
LD (VALID_PALY),W ;
JR S2436 ;S2436へのジャンプ命令
$111:
CP B,03H ;S2424
JR Z,$000 ;
XOR W,W ;S2425
LD (VALID_PALY),W ;
ステップS2419でRAM異常値を仮設定する場合のソースコード例
LD W,03H ;S2419
LD (VALID_PALY),W ;
AND A,30H ;S2420
CP A,30H ;S2421
JR Z,RESET_P_6 ;
CP B,02H ;S2422
JR Z,RESET_P_6 ;
CP C,00H ;S2423
JR NZ,S2436 ;
CP B,03H ;S2424
JR Z,S2436 ;
XOR W,W ;S2425
LD (VALID_PALY),W ;
その後、ステップS2419では、設定状態管理エリアにRAM異常を示す値(03H)を仮に記録する(ステップS2419)。
そして、PFポートの値が記録されたレジスタ値のうち、設定キー971とRAMクリアスイッチ954のビットをマスクする(ステップS2420)。その後、電源投入時に設定キー971がONに操作されており、かつ、RAMクリアスイッチ954がONに操作されていたかを、レジスタに記憶された値を用いて判定する(ステップS2421)。そして、設定キー971がONに操作されており、かつ、RAMクリアスイッチ954がONに操作されていれば、設定変更操作がされていると判定し、ステップS2430に進む。
一方、設定キー971が操作されておらず、かつ、RAMクリアスイッチ954が操作されていなければ、停電発生時に設定変更モードであったかを判定する(ステップS2422)。例えば、ステップS2418で設定されたBレジスタの値が設定変更モード(02H)であるときに、設定変更モード中に停電が発生したと判定する。
そして、設定変更モード中に停電が発生したと判定したときには、ステップS2430に進む。
一方、設定変更モード中に停電が発生していないと判定したときは、主制御RAM1312の遊技制御領域内及び遊技制御領域外に異常があるかを判定する(ステップS2423)。例えば、前述したステップS2413でCレジスタに格納された判定結果を用いて、遊技制御領域内の異常を判定できる。その結果、主制御RAM1312の遊技制御領域内及び遊技制御領域外のいずれかに異常があれば、ステップS2436に進む。
一方、主制御RAM1312の遊技制御領域内及び遊技制御領域外のいずれにも異常がなければ、RAM異常処理中に停電が発生したかを判定する(ステップS2424)。例えば、S2418でBレジスタに設定された設定状態管理エリアの値がRAM異常を示す値(03H)であれば、RAM異常処理中に停電が発生したと判定する。
そして、RAM異常処理中に停電が発生したと判定したときには、ステップS2436に進む。一方、RAM異常処理中に停電が発生していないと判定したときには、設定状態管理エリアに通常遊技状態を示す値(00H)を記録する(ステップS2425)。ステップS2425で設定状態管理エリアに00Hを記録することによって、ステップS2419で設定状態管理エリアに仮に記録されたRAM異常を示す値(03H)から、仮設定値として00Hに再設定される。また、ステップS2425で設定状態管理エリアに00Hを記録することによって、ステップS2426とS2431とからステップS2435にジャンプした際の設定状態管理エリアの値が異なる。このため、通常のRAMクリア処理と設定変更処理に伴うRAMクリア処理とで設定状態管理エリアの値が異なることから、両方のRAMクリア処理のためのプログラムを共通にしても、呼出元を区別でき、別個にプログラムを設ける必要がなく、プログラムサイズを小さくできる。
以下に例示するソースコード例に示すように、ステップS2425のタイミングでは、設定状態管理エリアに01H又は00Hのいずれが記録されるかが決定していない。設定状態管理エリアには、決定時点で、決定した値を設定すべきだが、そうすると、RAMクリアスイッチ954がONに操作されていると判定されたときのRAMクリア処理後に設定状態管理エリアに00Hを記録する処理が必要になる。このため、電源投入時処理と設定変更時のRAMクリア処理とで処理内容が異なるため、主制御RAM1312を初期化する処理以外の部分で、それぞれで専用の処理が必要になる。このため、主制御RAM1312を初期化する処理を設定変更時とRAMクリアスイッチ954のみが操作された時とで共通化するため、ステップS2425にて00Hを仮設定している。
ステップS2425で設定状態管理エリアに00Hを仮設定しない場合のソースコード例
CP A,10H ;S2426(AレジスタにPFポートの情報が記憶されている)
JR NZ,$000 ;(bit5:設定キー bit4:RAMクリアSW)
LD A,(JOTAI_BF) ;S2427
LD (POWER_BF),A ;
CP A,20H ;S2428
JR NZ,$111 ;
LD W,01H ;S2429
LD (VALID_PALY),W ;
JR S2436 ;
$000:
XOR W,W ;S2425に相当
LD (VALID_PALY),W ;
JR S2435 ;増加分
$111:
XOR W,W ;増加分
LD (VALID_PALY),W ;増加分
JR S2436 ;増加分
S2430:
LD W,02H ;S2430
LD (VALID_PALY),W ;
・・・・・
S2435:
[RAMクリア処理] ;S2435
S2436:
[全コマンドバッファ初期化] ;S2436
ステップS2425で設定状態管理エリアに00Hを仮設定する場合のソースコード例
XOR W,W ;S2425
LD (VALID_PALY),W ;
CP A,10H ;S2426
JR NZ,S2435 ;
LD A,(JOTAI_BF) ;S2427
LD (POWER_BF),A ;
CP A,20H ;S2428
JR Z,S2436 ;
LD W,01H ;
LD (VALID_PALY),W ;
JR S2436 ;
S2430:
LD W,02H ;S2430
LD (VALID_PALY),W ;
・・・・・
S2435:
[RAMクリア処理] ;S2435
S2436:
[全コマンドバッファ初期化] ;S2436
その後、電源投入時にRAMクリアスイッチ954がONに操作されていたかを、レジスタに記憶された値を用いて判定する(ステップS2426)。そして、RAMクリアスイッチ954がONに操作されていれば、ステップS2435に進む。
本実施例のパチンコ機では、RAMクリアスイッチ954の操作と設定キー971の操作と設定状態管理エリアに記録された値とに基づいて、処理を振り分ける。例えば、主制御RAM1312が異常であると判定されると、設定状態管理エリアには03Hが記録され、電源が遮断されるまで03Hが維持されるため、通常遊技処理を実行できない。このとき、一旦電源を遮断した後に設定変更操作をして電源を投入すると、RAM異常を解除できる。すなわち、ステップS2421で設定キー971とRAMクリアスイッチ954の両方が操作されている(設定変更操作)と判定されると、設定状態管理エリアがRAM異常を示す値(03H)から設定変更を示す値(02H)に更新され(ステップS2430)、RAM異常状態が終了する。このように、RAM異常からの復帰は、必ず設定変更を経由することになっている。換言すると、停電発生時の状態がRAM異常かを判定する前に、設定変更操作がされているかを判定するので、設定値の変更を契機としてのみRAM異常を解消できる。
なお、RAM異常と判定された場合に、遊技制御領域内の領域及び遊技制御領域外の領域のワークエリアとスタックエリアを初期化して遊技処理を開始してもよい。このようにすると、主制御RAM1312が異常であると判定されても自動的に通常遊技状態に復帰できる。
また、RAM異常と判定された場合に、遊技を停止し、電源遮断後、電源復帰時に遊技制御領域内の領域及び遊技制御領域外の領域のワークエリアが正常であると判定されたときに、遊技制御領域内の領域及び遊技制御領域外の領域のワークエリアとスタックエリアを初期化して遊技処理を開始してもよい。このようにすると、電源スイッチのON/OFFの操作によって通常遊技状態に復帰できる。
また、RAM異常と判定された場合に遊技を停止し、電源遮断後、電源復帰時に遊技制御領域内の領域及び遊技制御領域外の領域のワークエリアが正常であると判定され、かつ、RAMクリアスイッチが操作されているときに、遊技制御領域内の領域及び遊技制御領域外の領域のワークエリアとスタックエリアを初期化して遊技処理を開始してもよい。このようにすると、電源遮断後のRAMクリアスイッチ954の操作によって通常遊技状態に復帰できる。
また、RAM異常と判定された場合に、遊技を停止し、電源遮断後、電源復帰時に遊技制御領域内の領域及び遊技制御領域外の領域のワークエリアが正常であると判定され、かつ、設定キー971が操作されているときに、遊技制御領域内の領域及び遊技制御領域外の領域のワークエリアとスタックエリアを初期化して遊技処理を開始してもよい。このようにすると、電源遮断後の設定キー971の操作によって通常遊技状態に復帰できる。
一方、RAMクリアスイッチ954が操作されていなければ、停電発生前の遊技状態に復旧するために、停電発生時点での遊技状態の情報を電源投入時状態バッファに記憶する(ステップS2427)。このようにすると、周辺制御基板1510側の、各遊技状態(例えば、低確率状態か高確率状態か、時短状態か非時短状態か)に対応した演出(背景、装飾図柄の態様(低確率時と高確率時とで異なる態様の装飾図柄を使用する)を元に戻すための準備が行われる。ステップS2439で実行される電源投入時設定処理(INITIAL_SET)のステップS2300において、電源投入時動作コマンドを作成する際に使用される。
その後、電源投入時に設定キー971がONに操作されていたかを、レジスタに記憶された値を用いて判定する(ステップS2428)。そして、設定キー971がONに操作されていれば、設定確認操作がされていると判定し、設定状態管理エリアに設定確認モードを示す値(01H)を記録し(ステップS2429)、S2436に進む。すなわち、停電発生時の状態が設定確認モードかにかかわらず、設定キー971のみが操作されていれば(RAMクリアスイッチ954が操作されていなければ)、設定確認モードに移行する。
ステップS2425からS2429は、RAMクリアスイッチ954か設定キー971の少なくとも一つが操作されていない場合に実行される処理であることから、RAMクリアスイッチ954の操作の判定(ステップS2426)と、設定キー971の操作の判定(ステップS2428)とのいずれを先に行ってもよい。すなわち、図示したように、RAMクリアスイッチ954の操作を判定(ステップS2426)した後に設定キー971の操作を判定(ステップS2428)してもよく、設定キー971の操作を判定(ステップS2428)した後にRAMクリアスイッチ954の操作を判定(ステップS2426)してもよい。
ステップS2421又はステップS2422でYESと判定されると、設定状態管理エリアに設定変更モードを示す値(02H)を記録する(ステップS2430)。そして、主制御RAM1312の遊技制御領域外のワークエリアに異常があるかを判定する(ステップS2431)。例えば、前述したステップS2413でCレジスタに格納された判定結果を用いて、遊技制御領域外の異常を判定できる。その結果、主制御RAM1312の遊技制御領域外に異常がなければ、ステップS2435に進む。
一方、主制御RAM1312の遊技制御領域外に異常があれば、フラグレジスタを遊技領域内スタックエリアに退避し(ステップS2432)、図217に示す遊技領域外RAM異常時処理を実行する(S2433)。その後、ステップS2432で遊技領域内スタックエリアに退避したフラグレジスタを復帰する(ステップS2434)。
そして、主制御RAM1312の遊技制御領域内の設定値及び設定状態管理エリア以外のワークエリアと遊技制御領域内のスタックエリアとを初期化する(ステップS2435)。なお、ワークエリアとスタックエリアの間に設けられる未使用領域をあわせて初期化してもよい。
その後、全コマンドバッファを初期化する(ステップS2436)。これは、コマンドバッファアにコマンドが記憶された状態で電源が遮断された後にRAMクリアをせずに電源を復帰すると、コマンドバッファに格納された未送信のコマンドが送信される。例えば、変動コマンドの送信中に電源が遮断されることによって、図柄コマンドは送信したが、後続する変動パターンコマンドが未送信となることがある。そして、電源投入時に、変動パターンコマンドだけが送信されると、周辺制御基板1510が異常と判定することがある。さらに、設定変更に関する処理における未送信のコマンドがコマンドバッファに格納されている場合、電源復帰後に設定処理中に未送信となったコマンドが送信されることによって、周辺制御基板1510が当該コマンドに基づいて遊技状態を設定して、誤動作する可能性がある。このような異常の発生を防止するために、ステップS2436において、コマンドバッファを初期化している。
なお、ステップS2436でコマンドバッファを初期化しているが、設定変更処理を開始するとき又は設定確認処理を開始するときに、コマンドバッファをクリアしてもよい。なお、設定変更処理においては、主制御RAM1312の初期化に伴ってコマンドバッファがクリアされるので、別途コマンドバッファをクリアする必要はないが、設定確認時処理においては、主制御RAM1312が初期化されないことから、設定確認に移行するときに、コマンドバッファをクリアするとよい。
その後、主制御MPU1311に内蔵されたデバイス(CTC、SIO等)の機能を初期設定する(ステップS2437)。具体的には、設定変更処理用のCTC0にタイマ割込み周期時間を設定し、CTC0を割込み許可に設定する。なお、通常遊技状態におけるタイマ割込み処理を制御するCTC1の時間は設定せず、通常遊技用のCTC1の割込みは禁止に設定されたままとなっている。
そして、主制御MPU1311に内蔵されたハードウェア乱数(例えば当落乱数)を起動し(ステップS2438)てハード乱数の更新を開始し、図219に示す電源投入時設定処理を実行する(ステップS2439)。
最後にタイマ割込みを許可に設定し(ステップS2440)、主制御側メイン処理(図228)に進む。
図228は、主制御MPU1311が実行する主制御側メイン処理のフローチャートである。主制御側メイン処理は、電源投入時処理(図227)のステップS2440の後に実行される。
まず、主制御MPU1311は、設定変更処理用の第1メインループ処理(ステップS2450~S2453)を実行する。第1メインループ処理では、まず、主制御MPU1311は、停電予告信号を取得し、停電予告信号がONであるかによって停電が発生しているかを判定する(ステップS2450)。別例3では、メイン処理において停電を監視しているが、タイマ割込み処理で停電を監視して、停電発生が検出された場合に停電処理を実行してもよい。例えば、タイマ割込みの開始及び終了時の少なくとも一方で停電予告信号がONであるかを判定し、停電予告信号が継続的に出力されている期間をカウントし、カウント結果が所定値となった場合に停電が発生していると判定してもよい。別例3では、設定処理用のタイマ割込み処理と通常遊技処理用のタイマ割込み処理とが別に設けられているため、何れのタイマ割込み処理で停電を監視してもよく、両方のタイマ割込み処理で停電を監視してもよい。このため、停電監視処理と停電処理をサブルーチン化して、二つのタイマ割込み処理の各々でこれらのサブルーチン(停電監視処理、停電処理)を実行することによって、停電監視処理と停電処理の同じプログラム(コード)を各タイマ割込み処理に組み込む必要がなく、プログラムのサイズを小さくできる。
停電予告信号を検出した場合、電源断時処理(ステップS2462~S2469)を実行する。
一方、停電予告信号がONでない場合、正常に電源が供給されているので、割込みを禁止に設定し(ステップS2451)、設定状態管理エリアに遊技開始を示す値(00H)が記録されているかを判定する(ステップS2452)。設定状態管理エリアに遊技開始を示す値が記録されていれば、通常遊技を開始するためにステップS2454に進む。一方、設定状態管理エリアに遊技開始を示す値が記録されていなければ、割込を許可に設定し(ステップS2453)、ステップS2450に戻る、設定変更処理用の第1メインループ処理を繰り返し実行する。
ステップS2452で設定状態管理エリアに遊技開始を示す値が記録されていると判定されると、割込みタイマを通常遊技用に切り替えた後、通常遊技用の第2メインループ処理(ステップS2457~S2458)を実行する。第2メインループ処理を実行する前に、まず、通常遊技用のCTC1にタイマ割込み周期時間を設定し(ステップS2454)、CTC0の割込み(設定処理用のタイマ割込み)を停止し、CTC1の割込み(通常遊技処理用のタイマ割込み)を起動して(ステップS2455)、割込み許可に設定する(ステップS2456)。
その後、停電予告信号を取得し、停電予告信号がONであるかによって停電が発生しているかを判定する(ステップS2457)。停電予告信号を検出した場合、電源断時処理(ステップS2462~S2469)を実行する。一方、停電予告信号がONでない場合、正常に電源が供給されているので、乱数更新処理2を実行する(ステップS2458)。乱数更新処理2は、図195で説明したものと同じでよく、主として特別抽選や普通抽選において当選判定を行うための乱数以外の乱数を更新する。その後、ステップS2457に戻り、通常遊技用の第2メインループ処理を繰り返し実行する。
ステップS2450、S2457で停電予告信号を検出した場合、電源断時処理(ステップS2462~S2469)を実行する。図228に示す主制御側メイン処理における電源断時処理では、停電発生前の状態に復帰させるためのデータをバックアップする処理を実行する。具体的には、まず、割込みを禁止する(ステップS2462)。これにより後述するタイマ割込み処理が行われなくなる。さらに、主制御MPU1311は、出力ポートをクリアして、各ポートからの出力によって制御される機器の動作を停止する(ステップS2463)。具体的には、ソレノイド・停電クリア・ACK出力ポートに停電クリア信号OFFビットデータを出力する。なお、全ての出力ポートがクリアされなくてもよく、例えば、電力消費が大きいソレノイドやモータを制御するための出力ポートをクリアしてもよい。これらの出力ポートをクリアすることによって、主基板側電源断時処理が終了するまでの消費電力を低減し、主基板側電源断時処理を確実に終了できるようにする。
その後、フラグレジスタを遊技領域内スタックエリアに退避し(ステップS2464)、電源OFF時処理を実行して、遊技領域外のワークエリアについて電源が遮断される前に必要な処理を実行する(ステップS2465)。電源OFF時処理の詳細は図222の通りである。そして、遊技領域内スタックエリアに退避したフラグレジスタを復帰する(ステップS2466)。
続いて、主制御MPU1311は、バックアップされるワークエリアに格納されたデータが正常に保持されたか否かを判定するための、主制御RAM1312の遊技制御領域内のワークエリアのチェックサムを計算し、主制御RAM1312の所定のチェックサム格納エリアに記憶する(ステップS2467)。このチェックサムはワークエリアにバックアップされたデータが正常かの判定に使用される。なお、チェックサムが算出される対象の領域は、遊技制御領域内のワークエリアのうち、電源投入後主制御側メイン処理の実行までの間に変更される可能性がある設定状態管理(設定値と設定状態管理エリアの値)や、バックアップフラグや、チェックサムエリアの値を除外するとよい。
さらに、停電フラグとしてバックアップフラグエリアに正常に電源断時処理が実行されたことを示す値(5AH)を格納する(ステップS2468)。これにより、遊技バックアップ情報の記憶が完了する。最後に、RAMプロテクト有効(書き込み禁止)、禁止領域の無効とする設定値をRAMプロテクトレジスタに書き込み、主制御RAM1312の書き込みを禁止し(ステップS2469)、停電から復旧するまでの間、待機する(無限ループ)。主制御MPU1311は、主制御RAM1312の使用領域を指定することによって、指定領域以外の禁止領域へアクセスがあった場合には、異常と判定してリセットする機能を有する。本実施例では、この禁止領域へのアクセスによるリセット機能を解除して、全領域へのアクセスを可能としている。なお、主制御RAM1312のうち未使用領域を禁止領域に指定して、RAMプロテクトレジスタに禁止領域を有効として設定することで、指定された禁止領域にアクセスを検出した場合には、主制御MPU1311がリセットされるようにしてもよい。
なお、前述した処理では、出力ポートのクリア(ステップS2463)、電源OFF時処理(ステップS2465)、チェックサムの算出(ステップS2467)、バックアップフラグの設定(ステップS2468)の順に処理を実行しているが、この四つの処理の実行順は、図示したものに限定されず、他の順序でもよい。
なお、別例3では、主制御側メイン処理で停電の発生を監視しているが、タイマ割込み処理で停電の発生を監視し、監視結果に基づいて停電処理を実行してもよい。例えば、二つのメインループの各々において、開始時及び終了時の少なくとも一方で停電信号を確認し、停電信号が継続的に出力されている期間を測定し、測定結果が所定値となった場合に停電の発生を検知するとよい。
図228に示す主制御側メイン処理では、設定変更処理用のタイマ割込み処理と通常遊技用タイマ割込みとの各々に対応して二つのメインループが設けられており、必ず一回は設定変更処理用のタイマ割込み処理の実行契機がある。また、この実行契機において、設定変更処理用のタイマ割込み処理が実行されないこともある(例えば、ステップS2454でYESに分岐する場合)。このようにメインループを二つ設けることによって、通常遊技用のメインループ(タイマ割込み処理)でベース値を計算する処理を実行し、設定変更処理用のタイマ割込み処理では不要なベース値を計算する処理を実行しないように、ベース値を計算する処理を実行するかを切り替えることができる。別例3では、設定処理用のタイマ割込み処理と通常遊技処理用のタイマ割込み処理とが別に設けられているため、何れのタイマ割込み処理で停電を監視してもよく、両方のタイマ割込み処理で停電を監視してもよい。このため、停電監視処理と停電処理をサブルーチン化して、二つのタイマ割込み処理の各々でこれらのサブルーチン(停電監視処理、停電処理)を実行することによって、停電監視処理と停電処理の同じプログラム(コード)を各タイマ割込み処理に組み込む必要がなく、プログラムのサイズを小さくできる。
図229は、主制御MPU1311が実行する設定処理用のタイマ割込み処理のフローチャートである。
まず、主制御MPU1311は、レジスタバンク選択フラグを1に設定し、レジスタのバンクを切り替える(ステップS2470)。なお、主制御MPU1311は、演算に使用するレジスタ群を二つ有し、一つはバンク0のレジスタ群として使用し、他はバンク1のレジスタ群として使用可能とされており、バンクを切り換えることによって、いずれかのバンクが使用できるように構成されている。本実施例では、主制御側メイン処理ではレジスタバンク0が使用され、設定処理用または通常遊技用のタイマ割込み処理ではレジスタバンク1が使用される。このため、タイマ割込み処理の開始時にはバンク1に切り替える命令を実行するが、タイマ割込み処理の終了時にはバンク0に切り替える命令を実行する必要がない。これは、主制御MPU1311は、バンクの状態をフラグレジスタ(例えば、Zフラグ、Cフラグがセットされているレジスタ)に記憶しており、フラグレジスタは、割込開始時にスタックエリアに退避され、RET命令の実行によってスタックエリアから復帰する。このため、RET命令を実行することでフラグレジスタに記憶したレジスタのバンクフラグも元に戻るように構成しているためである。なお、バンクの状態をフラグレジスタに記憶しない構成を採用した場合、タイマ割込み処理の終了時にバンク切替命令を実行して、バンク0に戻す必要がある。
なお、フラグレジスタには、割込可否を制御するフラグも記憶されているため、割り込み許可に設定してからRET命令を実行しなくてもよい。なお、割込可否を制御するフラグは、タイマ割込み処理の開始時に、フラグレジスタをスタックした後に割込禁止状態に設定される。このため、タイマ割込処理中に割込を許可(EI命令など)するか、RETI命令を実行しない限り、割込み許可状態にはならない。
次に、LEDコモンカウンタを+1更新する。なお、LEDコモンカウンタ値が上限を超える場合は0にする(ステップS2471)。
次に、スイッチ入力処理1を実行する(ステップS2472)。スイッチ入力処理1では、主制御MPU1311の各種入力ポートの入力端子に入力されている各種信号を読み取り、ONエッジを作成し、入力情報として主制御RAM1312の入力情報記憶領域に記憶する。
なお、ステップS2472のスイッチ入力処理1は入賞信号に関する処理であるため、設定変更モードや設定確認モードで実行されるタイマ割込み処理では、ステップS2473においてNOと判定されるので、入賞検出は行われるが、不正は検出されない。なお、入賞が検出されても、賞球の払出しや変動表示等は実行されない。設定変更操作や設定確認操作はホールの従業員が行うものであり、設定変更モードや設定確認モードでは不正が行われず、不正を検出しない方が望ましいと考えられるからである。
なお、設定変更モードや設定確認モードでも、一部の不正検出センサ(例えば電波センサ)はスイッチ入力処理1で検出し、特定の種類の不正を監視してもよい。このようにすると、不正行為を行おうとする者(ゴト師)が電波を照射する等によって強制的に設定変更モードを起動する不正を検出できる。例えば、ホールの従業員が設定変更や設定確認の操作をしている間は、扉が開放されており、扉に取り付けられたセンサが隣のパチンコ機に近づく位置になる。このため、設定変更操作や設定確認を行っている間は、隣のパチンコ機における電波等によるゴト行為を検出できるようになっている。
そして、設定状態管理エリアに遊技開始を示す値(00H)が記録されているかを判定する(ステップS2473)。なお、設定変更処理用のタイマ割込み処理において、通常であれば遊技状態管理エリアの値は、00H以外(01H~03H)となっているため、設定状態管理エリアに遊技開始を示す値(00H)が記録されているかを判定しなくてもよいが、通常遊技中に、不正に設定変更モードに移行するような不正行為防止するために、あえて判定を行なっている。
設定状態管理エリアに遊技開始を示す値が記録されていれば、設定値の変更、設定表示に関する処理(ステップS2474~S2478)を実行せず、ステップS2479に進む。一方、設定状態管理エリアに遊技開始を示す値が記録されていなければ、特定の出力ポートをクリアする(ステップS2474)、例えば、ステップ2474で特定の出力ポートとしてクリアされる信号は、停電クリア信号、大入賞口・電チュー等のソレノイド信号、払出制御基板951へのコマンド受信時の応答信号(ACK)がある。その後、LEDコモンポートをOFFにする(ステップS2475)。タイマ割込み処理の早い段階でLEDコモン信号をOFFにすることによって、LEDコモン信号がオンになるまでの時間、すなわちLEDの消灯時間を確保し、LEDの表示切替前後の表示が混ざって見えるゴースト現象を抑制し、LEDのちらつきを防止している。
その後、外部端子板784からセキュリティ信号を出力し(ステップS2476)、図224に示した設定処理を実行する(ステップS2477)。その後、図225に示した設定表示処理を実行する(ステップS2478)。
さらに、送信情報記憶領域の値をシリアル通信回路に出力する周辺基板コマンド送信処理を実行する(ステップS2479)。送信情報記憶領域は、生成された送信コマンドを一時的に格納する記憶領域である。送信情報記憶領域に格納された値(コマンド)が読み出されてシリアル通信回路(SIO)の送信情報記憶領域に格納される。シリアル通信回路は、複数バイトのFIFO形式の送信バッファである送信情報記憶領域を有し、シリアル通信回路の送信情報記憶領域に格納された値を、順次、周辺制御基板1510に送信する。なお、シリアル通信回路の送信情報記憶領域の容量は有限であるため、シリアル通信回路の送信情報記憶領域に未送信のコマンドが残っており、シリアル通信回路の送信情報記憶領域が満状態又は満状態に近い場合には、シリアル通信回路の送信情報記憶領域の空き状態に応じて、コマンドをシリアル通信回路の送信情報記憶領域に格納するかを制御するとよい。例えば、シリアル通信回路の送信情報記憶領域に格納するコマンドの大きさ(バイト数)よりもシリアル通信回路の送信情報記憶領域の空き容量が大きいかを判定し、空き容量の方が大きければコマンドをシリアル通信回路の送信情報記憶領域に格納してもよい。また、1回の周辺制御基板1510へのコマンド送信処理の実行毎に、シリアル通信回路の送信情報記憶領域に格納するコマンドの大きさに所定の上限を設け、シリアル通信回路の送信情報記憶領域の空き容量を判定することなく、シリアル通信回路の送信情報記憶領域に格納するコマンドの大きさが所定の上限を超える場合には、全てのコマンドをシリアル通信回路の送信情報記憶領域に格納できなくても、次のタイマ割込み処理で実行される周辺基板コマンド送信処理において、残りのコマンドをシリアル通信回路の送信情報記憶領域に格納して、周辺制御基板1510に送信するとよい。
なお、上限数は、1回のタイマ割込み周期でシリアル通信回路(SIO)が送信可能なデータ量と同じか、少ない量に設定するとよい。例えば、シリアル通信回路の通信速度20kbpsであり、タイマ割込み周期が4m秒である場合、一回のタイマ割込み周期で約80ビットのシリアル通信が可能となる。一つのコマンドが20ビットで構成されている場合、80÷20=4となるので4コマンドを上限とするとよい。なお、実質的には、一つ多い5コマンドを上限に設定してもよい。これは、コマンドの最大長を20ビットと仮定したが、最大長より短いコマンドも多くあるからである。
なお、1回のコマンド送信処理において送信情報記憶領域に格納されるコマンドのデータ量に所定の上限を設けるかにかかわらず、送信情報記憶領域が満状態にならないように、送信情報記憶領域に格納前のコマンドが格納される記憶領域の容量を送信情報記憶領域の容量より小さいか、同じにするとよい。
その後、ウォッチドッグタイマクリアレジスタWCLに所定値(18H)をセットして、ウォッチドッグタイマをクリアする(ステップS2480)。なお、ウォッチドッグタイマは、単純クリアモードを使用しているので、1ワードをセットすることによってウォッチドッグタイマがクリアされる。その後、復帰命令(例えばRETI)によって、レジスタのバンクを切り替え(ステップS2481)、割り込み前の処理に復帰する。
図229に示す設定変更処理用のタイマ割込み処理では、他のタイマ割込み処理と異なり、乱数更新処理(R_ATART_K)を実行しないようにしているが、S2438でハード乱数を起動済みであるために、ハード乱数と同様に設定変更処理用のタイマ割込み処理において乱数更新処理を実行してもよい。
なお、別例3では、試験信号出力処理は、通常遊技用のタイマ割込み処理(例えば、図230の出力データ設定処理S2505)で実行しても、設定変更処理用のタイマ割込み処理内で呼び出してもよい。
図230は、主制御MPU1311が実行する通常遊技用のタイマ割込み処理のフローチャートである。
まず、主制御MPU1311は、レジスタバンク選択フラグを1に設定し、レジスタのバンクを切り替える(ステップS2490)。なお、主制御MPU1311は、演算に使用する二つのレジスタ群を有し、一つはバンク0のレジスタ群として使用し、他はバンク1のレジスタ群として使用可能とされており、バンクを切り換えることにより、いずれかのバンクが使用できるように構成されている。本実施例では、主制御側メイン処理ではレジスタバンク0が使用され、設定処理又は通常遊技用のタイマ割込み処理ではレジスタバンク1が使用される。このため、タイマ割込み処理の開始時にはバンク1に切り替える命令を実行するが、タイマ割込み処理の終了時にはバンク0に切り替える命令を実行する必要がない。これは、主制御MPU1311は、バンクの状態をフラグレジスタ(例えば、Zフラグ、Cフラグがセットされているレジスタ)に記憶しており、フラグレジスタは、割込開始時にスタックエリアに退避され、RET命令の実行によってスタックエリアから復帰する。このため、RET命令を実行することでフラグレジスタに記憶したレジスタのバンクフラグも元に戻るように構成しているためである。なお、バンクの状態をフラグレジスタに記憶しない構成を採用した場合、タイマ割込み処理の終了時にバンク切替命令を実行して、バンク0に戻す必要がある。
なお、フラグレジスタには、割込可否を制御するフラグも記憶されているため、割り込み許可に設定してからRET命令を実行しなくてもよい。なお、割込可否を制御するフラグは、タイマ割込み処理の開始時に、フラグレジスタをスタックした後に割込禁止状態に設定される。このため、タイマ割込処理中に割込を許可(EI命令など)するか、RETI命令を実行しない限り、割込み許可状態にはならない。
次に、LEDコモンカウンタを+1更新する。なお、LEDコモンカウンタ値が上限を超える場合は0にする(ステップS2491)。
次に、スイッチ入力処理1を実行する(ステップS2492)。スイッチ入力処理1では、主制御MPU1311の各種入力ポートの入力端子に入力されている各種信号を読み取り、ONエッジを作成し、入力情報として主制御RAM1312の入力情報記憶領域に記憶する。
続いて、乱数更新処理1を実行する(ステップS2493)。乱数更新処理1では、大当り判定用乱数、大当り図柄用乱数、及び小当り図柄用乱数を更新する。またこれらの乱数に加えて、図221に示した主制御側メイン処理の乱数更新処理2で更新される大当り図柄決定用乱数及び小当り図柄決定用乱数の初期値を変更するための、それぞれの初期値決定用乱数を更新する。
その後、スイッチ入力特殊処理を実行する(ステップS2494)。
その後、タイマ更新処理を実行する(ステップS2495)。タイマ更新処理では、例えば、特別図柄及び特別電動役物制御処理で決定される変動表示パターンに従って特別図柄表示器1185が点灯する時間、普通図柄及び普通電動役物制御処理で決定される普通図柄変動表示パターンに従って普通図柄表示器1189が点灯する時間のほかに、主制御基板1310(主制御MPU1311)が送信した各種コマンドを払出制御基板951が正常に受信した旨を伝える払主ACK信号が入力されているか否かを判定する際にその判定条件として設定されているACK信号入力判定時間等の時間管理を行う。具体的には、変動表示パターン又は普通図柄変動表示パターンの変動時間が5秒間であるときには、タイマ割り込み周期が4msに設定されているので、このタイマ減算処理を行うごとに変動時間を4msずつ減算し、その減算結果が値0になることで変動表示パターン又は普通図柄変動表示パターンの変動時間を正確に計測している。
続いて、賞球制御処理を実行する(ステップS2496)。賞球制御処理では、入力情報記憶領域から入力情報を読み出し、読み出した入力情報に基づいて払い出される遊技球(賞球)の数を計算し、主制御RAM1312に書き込む。また、賞球数の計算結果に基づいて、遊技球を払い出すための賞球コマンドを作成したり、主制御基板1310と払出制御基板951との基板間の接続状態を確認するためのセルフチェックコマンドを作成したりする。主制御MPU1311は、作成した賞球コマンドやセルフチェックコマンドを主払シリアルデータとして払出制御基板951に送信する。主制御MPU1311は、2チャネルの出力用のシリアル通信回路を有しており、1チャネルで周辺制御基板1510へコマンドを送信し、他の1チャネルで払出制御基板951へコマンドを送信している。シリアル通信の転送レート(ボーレート)は、チャネルごとに設定可能となっており、例えば、ステップS2437において、シリアル通信回路の転送レートを設定する。例えば、転送レートは、払出制御基板951側の転送レートを、周辺制御基板1510側の転送データより低く設定するとよい。これは、払出制御基板951が制御する賞球は遊技価値を伴うために、ノイズ等の影響を受けづらく、コマンド化けや欠落等により、異常な賞球コマンドにならないように低速で転送するが、周辺制御基板1510側では、遊技価値を伴わない演出用のコマンドが送信されるため、次のコマンドで演出が復帰すればよく、さらに、多数のコマンドが送信され、レスポンスよく演出を行って、遊技者に違和感を与えないために、周辺制御基板1510に早くコマンドを送信することが望ましい。なお、演出のレスポンスが悪い(例えば、始動入賞口に遊技球が入賞し、機能表示ユニット1400の特別図柄表示が変動を開始しても、メイン液晶表示装置1600において装飾図柄が変動を開始しない)と、遊技者は、故障ではないかと不安を感じるためである。
続いて、枠コマンド受信処理を実行する(ステップS2497)。払出制御基板951では、払出制御プログラムによって、状態表示に区分される1バイト(8ビット)の各種コマンド(例えば、枠状態1コマンド、エラー解除ナビコマンド、及び枠状態2コマンド)を送信する。一方、後述するように、払出制御プログラムによって、払出動作にエラーが発生した場合にエラー発生コマンドを出力したり、操作スイッチの検出信号に基づいてエラー解除報知コマンドを出力する。枠コマンド受信処理では、各種コマンドを払主シリアルデータとして正常に受信すると、その旨を払出制御基板951に伝える情報を主制御内蔵RAM1312の出力情報記憶領域に記憶する。また、主制御MPU1311は、払主シリアルデータとして正常に受信したコマンドを2バイト(16ビット)のコマンドに整形し(例えば、枠状態表示コマンド、エラー解除報知コマンドなど)、上述した送信情報記憶領域に記憶する。具体的には、枠コマンド受信処理では、払出制御基板951から受信したコマンドに対応した報知を行うために、払出制御基板951から受信したコマンドを周辺制御基板1510に送信するコマンドの体系に適合するように修正して、他の生成したコマンドと同様にシリアル通信回路(SIO)の送信情報記憶領域に格納する。また、払出制御基板951からのコマンドを正常に受信した場合には、主ACK信号の出力を制御するための信号を生成する。主ACK信号は、シリアル通信回路ではなく、出力ポートから払出制御基板951に直接出力される。なお、主ACK信号は、シリアル通信回路からコマンドとして出力してもよい。
続いて、不正行為検出処理を実行する(ステップS2498)。不正行為検出処理では、不正に関連した異常状態(磁気、振動、入賞異常等)を確認する。例えば、上述した入力情報記憶領域から入力情報を読み出し、大当り遊技状態でない場合にカウントスイッチによって大入賞口2005、2006に遊技球が入球していると検知されたとき等には、主制御プログラムは、異常状態として報知表示に区分される入賞異常表示コマンドを作成し、送信情報として上述した送信情報記憶領域に記憶する。
続いて、入賞スイッチや始動口スイッチに関する各種スイッチの通過検出時に対応するコマンドを作成し送信情報記憶領域にセットするスイッチ通過時コマンド出力処理を実行する(ステップS2499)。
そして、フラグレジスタを遊技制御領域内のスタックエリアに退避し(ステップS2500)、ベース表示器出力処理を実行する(ステップS2501)。ベース表示器出力処理は、他の処理と異なり、遊技制御領域外の第2領域を使用して実行される処理であり、パチンコ機1の仕様に影響を受けない共通の処理である。このため、ベース表示器出力処理の独立性を担保するために、ベース表示器出力処理の実行前後に、フラグレジスタなどの所定のデータを遊技制御領域内のスタックエリアに退避して、ベース表示器出力処理で更新されないようにしている。その後、遊技制御領域内のスタックエリアに退避したフラグレジスタを復帰する(ステップS2502)。
続いて、特別図柄及び特別電動役物制御処理を実行する(ステップS2503)。特別図柄及び特別電動役物制御処理では、大当り用乱数値が主制御内蔵ROMに予め記憶されている当り判定値と一致するか否かを判定し、大当り図柄乱数値に基づいて確率変動状態に移行するか否かを判定する。そして、大当り用乱数値が当り判定値と一致している場合には、大入賞口2005、2006を開閉動作させるか否かを決定する。この決定により大入賞口2005、2006を開閉動作させる場合、大入賞口2005、2006が開放(又は、拡大)状態となることで大入賞口2005、2006に遊技球が受け入れ可能となる遊技状態となって遊技者にとって有利な遊技状態に移行する。また、確変移行条件が成立している場合には、その後、確率変動状態に移行する一方、確変移行条件が成立していない場合には当該確率変動状態以外の遊技状態に移行する。ここで、「確率変動状態」とは、上述した特別抽選の当選確率が通常遊技状態(低確率状態)と比較して相対的に高く設定された状態(高確率状態)をいう。
続いて、普通図柄及び普通電動役物制御処理を実行する(ステップS504)。普通図柄及び普通電動役物制御処理では、上述した入力情報記憶領域から入力情報を読み出し、ゲートスイッチ2352からの検出信号が入力端子に入力されていたか否かを判定する。検出信号が入力端子に入力されていた場合には、普通図柄当り判定用乱数を抽出し、主制御内蔵ROMに予め記憶されている普通図柄当り判定値と一致するか否かを判定する(「普通抽選」という)。そして、普通抽選による抽選結果に応じて第二始動口扉部材2549を開閉動作させるか否かを決定する。この決定により開閉動作をさせる場合、第二始動口扉部材2549が開放(又は、拡大)状態となることで始動口2004に遊技球が受け入れ可能となる遊技状態となって遊技者にとって有利な遊技状態に移行する。
続いて、出力データ設定処理を実行する(ステップS2505)。出力データ設定処理では、主制御MPU1311の各種出力ポートの出力端子から各種信号を出力する。例えば、出力情報に基づいて主制御MPU1311の所定の出力ポートの出力端子から、払出制御基板951からの各種コマンドを正常に受信したときには主払ACK信号を払出制御基板951に出力したり、大当り遊技状態であるときには大入賞口2005、2006の開閉部材2107の開閉動作を行うアタッカソレノイド(第一アタッカソレノイド2113、第二上アタッカソレノイド2553、第二下アタッカソレノイド2556)に駆動信号を出力したり、始動口(第二始動口扉部材2549)の開閉動作を行う始動口ソレノイド2550に駆動信号を出力したりするほかに、ホールコンピュータへの出力情報として、確率変動中情報出力信号、特別図柄表示情報出力信号、普通図柄表示情報出力信号、時短中情報出力情報、始動口入賞情報出力信号等の遊技に関する各種情報(遊技情報)信号及びセキュリティ信号を外部端子板784に出力する。また、出力データ設定処理では、試験信号出力処理を実行して、試験信号を出力してもよい。
また、出力データ設定処理では、スイッチ入力特殊処理(ステップS2494)で計数されたアウト球数に対応する信号を外部端子板784から出力する。例えば、所定のアウト球数(10個など)毎に外部端子板784から所定長のパルス信号を出力してもよい。
また、出力データ設定処理では、パチンコ機1に接続された検査装置に出力するための試験信号を設定する。試験信号には、例えば、遊技状態を示す信号や普通図柄、特別図柄の停止図柄を示す信号が含まれる。
さらに、送信情報記憶領域の値をシリアル通信回路に出力する周辺基板コマンド送信処理を実行する(ステップS2506)。送信情報記憶領域は、生成された送信コマンドを一時的に格納する記憶領域である。送信情報記憶領域に格納された値(コマンド)は、ステップ2070で読み出されてシリアル通信回路(SIO)の送信情報記憶領域に格納される。シリアル通信回路は、複数バイトのFIFO形式の送信バッファである送信情報記憶領域を有し、シリアル通信回路の送信情報記憶領域に格納された値を、順次、周辺制御基板1510に送信する。
その後、ウォッチドッグタイマクリアレジスタWCLに所定値(18H)をセットして、ウォッチドッグタイマをクリアする(ステップS2507)。なお、ウォッチドッグタイマは、単純クリアモードを使用しているので、1ワードをセットすることによってウォッチドッグタイマがクリアされる。その後、復帰命令(例えばRETI)によって、レジスタのバンクを切り替え(ステップS2508)、割り込み前の処理に復帰する。
[12-18.設定変更・確認処理の別例4]
次に、設定変更機能を有するパチンコ機の別な実施例について説明する。以下に説明する別例4では、タイマ割込み処理ではなく主制御側メイン処理で設定変更に関する処理を実行する。以下に説明する以外の処理は、前述した別例3と同じである。
なお、別例4では、別例2と同様に、設定変更スイッチ972を設けずに、RAMクリアスイッチ954の操作によって設定値が選択できるものであるが、RAMクリアスイッチ954の本来の主制御RAM1312の初期化機能と、設定変更機能とを区別して記載するために、設定値の変更にかかる操作については設定変更スイッチ972として説明することがある。
図231は、主制御MPU1311が実行する主制御側メイン処理のフローチャートである。主制御側メイン処理は、電源投入時処理(図227)のステップS2440の後に実行される。別例4の主制御側メイン処理は、別例3の主制御側メイン処理(図228)のステップS2452に代えて、ステップS2481~S2484を実行する。主制御側メイン処理で設定変更や設定確認の処理を実行するのは、別例4のように設定処理用のタイマ割込み処理と通常遊技処理用のタイマ割込み処理とを別に設ける場合だけでなく、別例1や別例2にも適用可能である。例えば、図231に示す主制御メイン処理は、設定処理用の第1メインループ処理(ステップS2450~S2453)と通常遊技用の第2メインループ処理(ステップS2457~S2458)とを含むところ、いずれのメインループ処理でも、一つのタイマ割込み処理(別例1の図196、別例2の図223)が実行される、タイマ割込み処理の中で設定処理(図190のステップ2068、図223のステップS2341)と通常遊技処理とが実行される。この場合、メインループで実行されるタイマ割込み処理が一つであるため、後述するステップS2454、S2455のCTCの切り替えは不要となる。
図231に示す主制御側メイン処理では、別例3の主制御側メイン処理(図228)と同じ処理には同じ符号を付す。
まず、主制御MPU1311は、設定処理用の第1メインループ処理(ステップS2450~S2453)を実行する。第1メインループ処理では、まず、主制御MPU1311は、停電予告信号を取得し、停電予告信号がONであるかによって停電が発生しているかを判定する(ステップS2450)。別例4では、メイン処理において停電を監視しているが、タイマ割込み処理で停電を監視して、停電発生が検出された場合に停電処理を実行してもよい。例えば、タイマ割込みの開始及び終了時の少なくとも一方で停電予告信号がONであるかを判定し、停電予告信号が継続的に出力されている期間をカウントし、カウント結果が所定値となった場合に停電が発生していると判定してもよい。別例4では、設定処理用のタイマ割込み処理と通常遊技処理用のタイマ割込み処理とが別に設けられているため、何れのタイマ割込み処理で停電を監視してもよく、両方のタイマ割込み処理で停電を監視してもよい。このため、停電監視処理と停電処理をサブルーチン化して、二つのタイマ割込み処理の各々でこれらのサブルーチン(停電監視処理、停電処理)を実行することによって、停電監視処理と停電処理の同じプログラム(コード)を各タイマ割込み処理に組み込む必要がなく、プログラムのサイズを小さくできる。
停電予告信号を検出した場合、電源断時処理(ステップS2462~S2469)を実行する。
一方、停電予告信号がONでない場合、正常に電源が供給されているので、割込みを禁止に設定し(ステップS2451)、図224に示した設定処理を実行する(ステップS2482)。その後、図225に示した設定表示処理を実行する(ステップS2483)。
その後、設定キー971がOFF位置に戻ったかによって、設定変更・設定確認の処理が終了したかを判定する(ステップS2484)。具体的には、設定キー971のONからOFFへのエッジ、又は、ONからOFFへ変化してから所定期間経過したかを検出する。設定変更・設定確認の処理を終了する操作がされていれば、通常遊技を開始するためにステップS2454に進む。一方、設定変更・設定確認の処理が終了していなければ、RAMクリアスイッチ954と設定キー971のエッジ情報をクリアする(ステップS2485)。エッジ情報のクリアによって、1回の操作で複数回の設定値の変更を防止する。これは、RAMクリアスイッチ954や設定キー971のエッジを検出するタイマ割込み処理が1回実行される間に、第1のメインループ処理が複数回実行されることがあるため、1回設定変更した後に実行される第1のメインループ処理において、前回と同じエッジ情報を使って設定変更しないようにするためである。なお、設定キー971のエッジ情報をクリアせず、RAMクリアスイッチ954のエッジ情報だけをクリアしてもよい。その後、割込を許可に設定し(ステップS2453)、ステップS2450に戻る、設定変更処理用の第1メインループ処理を繰り返し実行する。S2482~S2485までの処理において割込み禁止に設定しているのは、設定変更処理や設定確認処理がタイマ割込みで中断されることを防止するためである。
なお、設定処理用の第1メインループ処理(ステップS2450~S2453)では、RAMクリアスイッチ954と設定キー971のエッジ情報をクリアし続けており、通常遊技に移行すると(第2メインループ処理の実行中は)、RAMクリアスイッチ954と設定キー971のエッジ情報を参照されないようになっている。
ステップS2484で設定変更・設定確認の処理が終了したと判定されると、通常遊技用の第2メインループ処理(ステップS2457~S2458)を実行する。第2メインループ処理を実行する際は、まず、通常遊技用のCTC1にタイマ割込み周期時間を設定し(ステップS2454)、CTC0の割込みを停止し、CTC1の割込みを起動して(ステップS2455)、CTC1を割込み許可に設定する(ステップS2456)。
その後、停電予告信号を取得し、停電予告信号がONであるかによって停電が発生しているかを判定する(ステップS2457)。停電予告信号を検出した場合、電源断時処理(ステップS2462~S2469)を実行する。一方、停電予告信号がONでない場合、正常に電源が供給されているので、乱数更新処理2を実行する(ステップS2458)。乱数更新処理2は、図195で説明したものと同じでよく、主として特別抽選や普通抽選において当選判定を行うための乱数以外の乱数を更新する。その後、ステップS2457に戻り、通常遊技用の第2メインループ処理を繰り返し実行する。なお、通常遊技中(第2メインループに入った後)に設定キー971がONに操作されていることを検出した場合、主制御MPU1311は、その旨を報知するコマンドを生成して、周辺制御基板1510が表示装置に報知演出を行なってもよい。この報知演出は通常遊技中に行われるものであることから、通常遊技の進行に邪魔にならない程度の態様が望ましく、例えば、特定のLEDのみ点灯表示したり、メイン液晶表示装置1600の狭い領域に文字や特定の記号などを表示したり、設定キー971がONに操作されていることを示す特定のキャラクタを遊技の進行に合わせて表示してもよい。
ステップS2450、S2457で停電予告信号を検出した場合、電源断時処理(ステップS2462~S2469)を実行する。
電源断時処理では、停電発生前の状態に復帰させるためのデータをバックアップする処理を実行する。具体的には、まず、割込みを禁止する(ステップS2462)。これにより後述するタイマ割込み処理が行われなくなる。さらに、主制御MPU1311は、出力ポートをクリアして、各ポートからの出力によって制御される機器の動作を停止する(ステップS2463)。具体的には、ソレノイド・停電クリア・ACK出力ポートに停電クリア信号OFFビットデータを出力する。なお、全ての出力ポートがクリアされなくてもよく、例えば、電力消費が大きいソレノイドやモータを制御するための出力ポートをクリアしてもよい。これらの出力ポートをクリアすることによって、主基板側電源断時処理が終了するまでの消費電力を低減し、主基板側電源断時処理を確実に終了できるようにする。
その後、フラグレジスタを遊技領域内スタックエリアに退避し(ステップS2464)、電源OFF時処理を実行して、遊技領域外のワークエリアについて電源が遮断される前に必要な処理を実行する(ステップS2465)。電源OFF時処理の詳細は図222の通りである。そして、遊技領域内スタックエリアに退避したフラグレジスタを復帰する(ステップS2466)。
続いて、主制御MPU1311は、バックアップされるワークエリアに格納されたデータが正常に保持されたか否かを判定するための、主制御RAM1312の遊技制御領域内のワークエリアのチェックサムを計算し、主制御RAM1312の所定のチェックサム格納エリアに記憶する(ステップS2467)。このチェックサムはワークエリアにバックアップされたデータが正常かの判定に使用される。なお、チェックサムが算出される対象の領域は、遊技制御領域内のワークエリアのうち、電源投入後主制御側メイン処理の実行までの間に変更される可能性がある設定状態管理(設定値と設定状態管理エリアの値)や、バックアップフラグや、チェックサムエリアの値を除外するとよい。
さらに、停電フラグとしてバックアップフラグエリアに正常に電源断時処理が実行されたことを示す値(5AH)を格納する(ステップS2468)。これにより、遊技バックアップ情報の記憶が完了する。最後に、RAMプロテクト有効(書き込み禁止)、禁止領域の無効とする設定値をRAMプロテクトレジスタに書き込み、主制御RAM1312の書き込みを禁止し(ステップS2469)、停電から復旧するまでの間、待機する(無限ループ)。主制御MPU1311は、主制御RAM1312の使用領域を指定することによって、指定領域以外の禁止領域へアクセスがあった場合には、異常と判定してリセットする機能を有する。本実施例では、この禁止領域へのアクセスによるリセット機能を解除して、全領域へのアクセスを可能としている。なお、主制御RAM1312のうち未使用領域を禁止領域に指定して、RAMプロテクトレジスタに禁止領域を有効として設定することで、指定された禁止領域にアクセスを検出した場合には、主制御MPU1311がリセットされるようにしてもよい。
なお、前述した処理では、出力ポートのクリア(ステップS2463)、電源OFF時処理(ステップS2465)、チェックサムの算出(ステップS2467)、バックアップフラグの設定(ステップS2468)の順に処理を実行しているが、この四つの処理の実行順は、図示したものに限定されず、他の順序でもよい。
なお、別例4では、主制御側メイン処理で停電の発生を監視しているが、タイマ割込み処理で停電の発生を監視し、監視結果に基づいて停電処理を実行してもよい。例えば、二つのメインループの各々において、開始時及び終了時の少なくとも一方で停電信号を確認し、停電信号が継続的に出力されている期間を測定し、測定結果が所定値となった場合に停電の発生を検知するとよい。別例4では、設定処理用のタイマ割込み処理と通常遊技処理用のタイマ割込み処理とが別に設けられているため、何れのタイマ割込み処理で停電を監視してもよく、両方のタイマ割込み処理で停電を監視してもよい。このため、停電監視処理と停電処理をサブルーチン化して、二つのタイマ割込み処理の各々でこれらのサブルーチン(停電監視処理、停電処理)を実行することによって、停電監視処理と停電処理の同じプログラム(コード)を各タイマ割込み処理に組み込む必要がなく、プログラムのサイズを小さくできる。
図231に示す主制御側メイン処理では、設定変更処理用のタイマ割込み処理と通常遊技用タイマ割込みとの各々に対応して二つのメインループが設けられており、必ず一回は設定変更処理用のタイマ割込み処理の実行契機がある。また、この実行契機において、設定変更処理用のタイマ割込み処理が実行されないこともある(例えば、ステップS2454でYESに分岐する場合)。このようにメインループを二つ設けることによって、通常遊技用のメインループ(タイマ割込み処理)でベース値を計算する処理を実行し、設定変更処理用のタイマ割込み処理では不要なベース値を計算する処理を実行しないように、ベース値を計算する処理を実行するかを切り替えることができる。
図232は、主制御MPU1311が実行する設定変更処理用のタイマ割込み処理のフローチャートである。別例4では、設定変更・設定確認の処理は、設定処理用のメインループで繰り返し実行される。このため、別例4における設定変更処理用のタイマ割込み処理は、別例3における設定変更処理用のタイマ割込み処理(図229)の設定変更・設定確認の処理(ステップS2477~S2478)が削除されたものである。
まず、主制御MPU1311は、レジスタバンク選択フラグを1に設定し、レジスタのバンクを切り替える(ステップS2470)。なお、主制御MPU1311は、演算に使用するレジスタ群を二つ有し、一つはバンク0のレジスタ群として使用し、他はバンク1のレジスタ群として使用可能とされており、バンク切換を行わずに、両方のバンクのレジスタを使用できないように構成されている。主制御側メイン処理ではレジスタバンク0が使用され、タイマ割込み処理ではレジスタバンク1が使用される。このため、タイマ割込み処理の開始時にはバンクを1に切り替える命令を実行するが、タイマ割込み処理の終了時にはバンクを0切り替える命令を実行する必要がない。これは、主制御MPU1311は、バンクの状態をフラグレジスタ(例えば、Zフラグ、Cフラグがセットされているレジスタ)に記憶しており、フラグレジスタは、割込開始時にスタックエリアに退避され、RET命令の実行によってスタックエリアから復帰する。このため、RET命令を実行することでフラグレジスタに記憶したレジスタのバンクフラグも元に戻る。なお、バンクの状態をフラグレジスタに記憶しない構成を採用した場合、タイマ割込み処理の終了時にバンク切替命令を実行して、バンク0に戻す。
なお、フラグレジスタには、割込可否を制御するフラグも記憶されているため、割り込み許可に設定してからRET命令を実行しなくてもよい。なお、割込可否を制御するフラグは、タイマ割込み処理の開始時に、フラグレジスタをスタックした後に割込禁止状態に設定される。このため、タイマ割込処理中に割込を許可(EI命令など)するか、RETI命令を実行しない限り、割込み許可状態にはならない。
次に、LEDコモンカウンタを+1更新する。なお、LEDコモンカウンタ値が上限を超える場合は0にする(ステップS2471)。
次に、スイッチ入力処理1を実行する(ステップS2472)。スイッチ入力処理1では、主制御MPU1311の各種入力ポートの入力端子に入力されている各種信号を読み取り、ONエッジを作成し、入力情報として主制御RAM1312の入力情報記憶領域に記憶する。
なお、ステップS2472のスイッチ入力処理1は入賞信号に関する処理であるため、設定変更モードや設定確認モードで実行されるタイマ割込み処理では、入賞が検出されても、賞球の払出しや特別図柄、普通図柄の変動表示等の遊技の進行にかかる処理が実行されない。また、遊技の進行に関する入賞検出は行われるが、磁石や衝撃(振動)等の不正に関する検出は実行しないようになっている。これは、設定変更操作や設定確認操作はホールの従業員が行なうものであり、設定変更モードや設定確認モードでは、磁石や衝撃(振動)等の不正が行われず、磁気や振動等による不正を検出しない方が望ましいと考えられるためである。
なお、設定変更モードや設定確認モードでも、一部の不正検出センサ(例えば電波センサ)はスイッチ入力処理1で検出し、特定の種類の不正を監視してもよい。このようにすると、不正行為を行おうとする者(ゴト師)が電波を照射する等によって強制的に設定変更モードを起動する不正を検出できる。
そして、設定状態管理エリアに遊技開始を示す値(00H)が記録されているかを判定する(ステップS2473)。なお、設定変更処理用のタイマ割込み処理において、遊技状態管理エリアの値を判定しなくてもよい。これは、不正に設定変更処理に移行する不正行為へ対応するためである。また、設定状態管理エリアに遊技開始を示す値(00H)が記録されているかの判定はスイッチ入力処理1(ステップS2472)の前に判定し、設定状態管理エリアに遊技開始を示す値が記録されていれば、周辺基板コマンド送信処理(ステップS2479)の後に進んでもよい。
設定状態管理エリアに遊技開始を示す値が記録されていれば、設定値の変更、表示に関する処理(ステップS2474~S2476)を実行せず、ステップS2479に進む。なお、設定状態管理エリアに遊技開始を示す値が記録されている場合、異常なタイマ割込み処理が実行されていることを報知する異常報知用コマンドを生成してもよい。設定状態管理エリアに遊技開始を示す値が記録されている場合、図232に示す設定変更処理用のタイマ割込み処理が実行されることはなく、何らかの異常が発生しているからである。この異常報知の態様は、磁石、電波、振動等の報知のように液晶やランプや音を使う報知や、外部端子板784からセキュリティ信号を出力してもよい。これらの報知態様の一つ以上を採用して、一つ又は組合せで報知してもよい。
一方、設定状態管理エリアに遊技開始を示す値が記録されていなければ、特定の出力ポートをクリアする(ステップS2474)、例えば、ステップ2474で特定の出力ポートとしてクリアされる信号は、停電クリア信号、大入賞口・電チュー等のソレノイド信号、払出制御基板951へのコマンド受信時の応答信号(ACK)がある。その後、LEDコモンポートをOFFにする(ステップS2475)。タイマ割込み処理の早い段階でLEDコモン信号をOFFにすることによって、LEDコモン信号がオンになるまでの時間、すなわちLEDの消灯時間を確保し、LEDの表示切替前後の表示が混ざって見えるゴースト現象を抑制し、LEDのちらつきを防止している。
その後、外部端子板784からセキュリティ信号を出力する(ステップS2476)。なお、セキュリティ信号を出力する処理も、設定変更・設定確認の処理と同様に、図231に示す主制御側メイン処理の設定変更処理用のメインループで実行してもよい。
さらに、送信情報記憶領域の値をシリアル通信回路に出力する周辺基板コマンド送信処理を実行する(ステップS2479)。送信情報記憶領域は、生成された送信コマンドを一時的に格納する記憶領域である。送信情報記憶領域に格納された値(コマンド)は、ステップ2070で読み出されてシリアル通信回路(SIO)の送信情報記憶領域に格納される。シリアル通信回路は、複数バイトのFIFO形式の送信バッファである送信情報記憶領域を有し、シリアル通信回路の送信情報記憶領域に格納された値を、順次、周辺制御基板1510に送信する。周辺基板コマンド送信処理を、タイマ割込み処理ではなく、メイン処理のS2480又はS2481の処理の終了後に実行してもよい。
その後、ウォッチドッグタイマクリアレジスタWCLに所定値(18H)をセットして、ウォッチドッグタイマをクリアする(ステップS2480)。なお、ウォッチドッグタイマは、単純クリアモードを使用しているので、1ワードをセットすることによってウォッチドッグタイマがクリアされる。その後、復帰命令(例えばRETI)によって、レジスタのバンクを切り替え(ステップS2481)、割り込み前の処理に復帰する。
図232に示す設定変更処理用のタイマ割込み処理では、他のタイマ割込み処理と異なり、乱数更新処理(R_ATART_K)を実行しない。これは、RAM異常時にソフトウェアで生成される乱数を更新する必要がないためであるが、乱数更新処理を実行してもよい。
[13.導光板を備えるパチンコ機]
次に、導光板を備えるパチンコ機の実施例を説明する。近年のパチンコ機は、照光によって発光する導光板をメイン液晶表示装置1600の前面側に備え、メイン液晶表示装置1600と共に特別図柄変動表示ゲームの演出を行っている。この種のパチンコ機では、液晶表示装置と導光板を用いて、例えば画像を重畳させることによって、複雑な演出が可能である。また、導光板は、液晶表示装置の前面に設けられているので、液晶表示装置に表示される画像と合わせて、立体感がある演出を表示している。また、左右眼の視差を利用した立体視が可能な導光板があり、さらに大きな立体感がある演出を表示している。
しかし、導光板を用いた演出がマンネリ化しており、新たな発光演出による興趣の向上が必要となっている。さらに、1枚で複数の絵柄を表示できる導光板があり、さらに多様な絵柄を表示して、興趣の高い演出が求められている。
[13-1.構造]
図233は、遊技盤5の表ユニット2000のセンター役物2500と表演出ユニット2600とを分解して前から見た分解斜視図である。図234は、表演出ユニットにおいて第一絵柄を発光表示した状態を示す正面図である。図235は、表演出ユニットにおいて第二絵柄を発光表示した状態を示す正面図である。
表ユニット2000の表演出ユニット2600は、枠状のセンター役物2500の枠内を閉鎖するように、センター役物2500に取付けられている。表演出ユニット2600は、センター役物2500の後側に取付けられている。表演出ユニット2600は、センター役物2500の枠内を閉鎖する透明な平板状の導光板2610と、センター役物2500の後側に取付けられている第一絵柄用基板2611及び第二絵柄用基板2612とを有する。第一絵柄用基板2611には、導光板2610の右側面に光を照射可能な複数の導光板用LED2613が実装されており、第二絵柄用基板2612には、導光板2610の上側面に光を照射可能な複数の導光板用LED2614が実装されている。
第一絵柄用基板2611及び第二絵柄用基板2612は、導光板2610の側面に光を照射可能なように、導光板2610と垂直に配置されている。このため、パチンコ機1の正面側からは、第一絵柄用基板2611及び第二絵柄用基板2612の側面しか見えず、第一絵柄用基板2611及び第二絵柄用基板2612が遊技者側から見え辛くなっており、遊技領域5a内の見栄えを良くしている。
なお、本実施例では、導光板(表導光板)2610について説明するが、導光板2610と液晶表示装置1600との間に他の裏導光板を設けてもよい。
導光板2610は、上方向からの光を前面側へ反射させる凹凸状の無数の第一反射部により形成されている第一絵柄2621(図234を参照)と、横方向からの光を前面側へ反射させる凹凸状の無数の第二反射部により形成されている第二絵柄2622(図235を参照)とを有している。つまり、表演出ユニット2600は、第一絵柄用基板2611の導光板用LEDを2613発光させると、導光板2610に第一絵柄2621を発光表示でき、第二絵柄用基板2612の導光板用LED2614を発光させると、導光板2610に第二絵柄2622を発光表示する。第一絵柄用基板2611及び第二絵柄用基板2612に実装されている複数のLED2613、2614は、望ましくはフルカラーLEDであり、狭い範囲に光を照射する指向性が強い発光源(レンズ付きLED)が望ましい。フルカラーLEDを用いることによって、任意の単一色や複数色(例えば、7色のレインボーカラー)によって第一絵柄2621や第二絵柄2622を導光板2610に写すことができる。
導光板2610には、第一絵柄2621を写すための複数の第一反射部を構成する凹凸、第二絵柄2622を写すための複数の第二反射部を構成する凹凸が微細に形成されており、第一絵柄用基板2611の導光板用LED2613や第二絵柄用基板2612の導光板用LED2614が発光していない状態では、導光板2610が光を透過して、後側に配置されている裏ユニット3000の各種の装飾体や演出表示装置1600に表示されている演出画像等を良好に視認できる。導光板2610には、導光板用LED2613、2614が発光状態でも、裏面側に設けられた液晶表示装置1600が透過して見える透過領域と、導光板2610に照射された光を反射せず、磨りガラス状の加工がされたマット領域と、導光板2610内の光の進行方向によらずに、透過する光を反射する反射パターンが形成されているラメ領域と、導光板用LED2613の発光箇所(すなわち、導光板2610内の光の進行方向)によって発光するかが変わるように反射パターンが形成されているムービング領域とが設けられる。
図234に示すように、第一絵柄2621は、後述するように液晶表示装置1600に表示される画像と共に特別図柄変動表示ゲームの演出の一部となる。第一絵柄2621は、ムービング領域2621a、2621cと、ラメ領域2621b、2621dと、マット領域2621eとによって構成される。第一絵柄2621の外側は透過領域2621fとなっている。ムービング領域2621a、2621cは、第一絵柄用基板2611の導光板用LED2613の一部を点灯させ、点灯箇所を切り替えることによって、ムービング領域2621aが発光したり、ムービング領域2621cが発光したりする。このため、導光板用LED2613を点滅させることによって、第一絵柄2621の大きさが変わるように見せることができる。
図234に示す第一絵柄2621では、ムービング領域とラメ領域とが2回繰り返されて配置されているが、繰り返しは何回でもよい。ムービング領域とラメ領域とが複数回繰り返されて第一絵柄2621を構成することによって、第一絵柄2621によって複雑な動きを表すことができる。また、図234に示す第一絵柄2621では、ムービング領域とラメ領域とが交互に繰り返されているが、ムービング領域の間にラメ領域を挟まずに、特性(すなわち、当該ムービング領域が発光するための光の入射位置)が異なるムービング領域を隣接して配置してもよい。
導光板用LED2613によって発光色が変わるように導光板用LED2613を発光させることによって、ムービング領域2621a毎に色を変えて光らせることができる。そして、導光板用LED2613の発光色を順次変える(例えば、赤→橙→黄→緑→青→藍→紫→赤、と繰り返す)ことによって、色の変化に伴って絵柄が移動するように見せることができる。
図235に示すように、第二絵柄2622は、複数の光の筋が斜め下方へ延びている絵柄である。第二絵柄2622は、斜めに延びた光の筋が、第二絵柄用基板2612に実装されている導光板用LED2614の位置と対応するように、形成されている。つまり、一つの導光板用LED2614を発光させると、導光板2610の上辺の、発光した導光板用LED2614の部位を起点として、導光板2610の下方向へ斜めに延びた光の筋が発光する。
この第二絵柄2622は、導光板2610の下方向へ向かうほど、導光板用LED2614から遠くなるため、光の筋の明るさは、導光板2610の下方向へ向かうに従って暗くなる。これにより、第二絵柄2622を前方(遊技者側)から見ると、導光板2610の下方向へ向かうほど、光の筋が後方へ延びているように見え、光が立体的に放射されているように錯覚させることができ、導光板2610による発光演出を楽しませることができる。
さらに、左右眼の視差による立体視が可能なように反射部を配置するとよい。例えば、第二絵柄2622を構成する1本の光の筋に着目すると、当該光の筋を遊技者の網膜に結像させる光を発する第二反射部を、左右眼で、導光板2610の異なる位置に配置することによって、遊技者の左右眼の視差を生じさせることができ、奥行きを持った第二絵柄を見せることができる。
本実施例の導光板2610は、図234に示すように、一方向からの光の照射によって映し出される第一絵柄2621を、照射された光を反射しないマット領域2621eや、光の進行方向によらずに、透過する光を反射する反射パターンが形成されているラメ領域2621b、2621dや、特定の進行方向の光を反射する反射パターンが形成されているムービング領域2621a、2621c、2622aによって構成するので、第一絵柄を動いて見えるムービング絵柄領域(動的な絵柄)と静止して見える静止絵柄領域(静的な絵柄)とで構成できる。
また、1枚の導光板2610で、照光方向の違いによって、図234に示す第一絵柄2621と、図235に示す第二絵柄2622とを映し出すことができる。このため、横方向から単一色(例えば、単一波長の赤色や複数波長の光が混在している白色)の光を照射し、上方向から複数色の光を照射(例えば、隣接するLED群2614が異なる波長で発光)することによって、1枚の導光板2610で、7色に輝くレインボー絵柄(レインボービーム)と単一色の絵柄とによる演出を行うことができる。
本実施例の導光板2610において、横方向からの光の照射によって、第一絵柄2621のマット領域2621eやラメ領域2621b、2621dで静止絵柄、及びムービング領域2621a、2621c、2622aで動いて見えるムービング絵柄を映している。すなわち、横方向からの光の照射による第一絵柄2621によって、静止絵柄とムービング絵柄の両方による導光板演出が行われる。この場合、第一絵柄2621による静止絵柄とムービング絵柄とは同時に映し出されることになる。
前述とは異なり、第一絵柄2621をマット領域及びラメ領域によって構成し、第一絵柄2621にはムービング絵柄を含めなくてもよい。この場合、横方向からの光の照射による第一絵柄2621による静止絵柄と、上方向からの光の照射による第二絵柄2622とで導光板演出が行われる。この場合、第一絵柄2621による静止絵柄と第二絵柄2622によるムービング絵柄とは異なるタイミングで映し出すことができる。すなわち、静止絵柄を映した後にムービング絵柄を映してもよく、ムービング絵柄を映した後に静止絵柄を映してもよい。このように、静止絵柄とムービング絵柄とを異なるタイミングで映すことによって、多様な演出を行うことができる。特に、レインボー絵柄をムービング絵柄として表示した後に静止絵柄で特定のキャラクタを表示することによって、当該キャラクタが降臨するような演出を行うことができる。一方、静止絵柄で背景を表示した後にムービング絵柄でキャラクタを表示することによって、特定の場所でキャラクタが移動するような演出を行うことができる。
本実施例の導光板2610において、第一絵柄2621と第二絵柄2622とを重畳させて配置してもよい。横方向と上方向とから光を照射した場合、導光板2610上で二つの絵柄が重畳している領域では、二つの絵柄の反射パターンが混在して設けられるので、二つの絵柄が共に認識できる。しかし、第一絵柄2621が平面視される絵柄であり、第二絵柄2622が立体視される絵柄である場合、二つの絵柄が混在する領域では立体視が困難になる場合がある、このため、第一絵柄2621の反射パターンが設けられず、裏面側(液晶表示装置1600)が透過して見える透過領域2621fを設け、第二絵柄2622の反射パターンによる絵柄を映し出すと、第二絵柄2622を遊技者に容易に立体視させることができる。
本実施例の導光板2610において、第一絵柄2621と第二絵柄2622とを重畳させずに、別領域に配置してもよい。第一絵柄2621が平面視される絵柄であり、第二絵柄2622が立体視される絵柄である場合、二つの絵柄が混在する領域では立体視が困難になる場合がある、このため、第一絵柄2621の反射パターンが設けられる領域と、第二絵柄2622の反射パターンが設けられる領域とを分けて、第二絵柄2622の反射パターンによる絵柄を映し出すと、第二絵柄を遊技者に容易に立体視させることができる。
[13-2.導光板の構成]
次に、反射部の具体的な構成を説明する。図236は、導光板2610の構造(特に、反射部の配置)を示す図である。
前述したように、導光板2610には、裏面側(液晶表示装置1600)が透過して見える透過領域2621fと、照射された光を反射しないマット領域2621eと、光の進行方向によらずに、透過する光を反射する反射パターンが形成されているラメ領域2621b、2621dと、特定の進行方向の光を反射する反射パターンが形成されているムービング領域2621a、2621c、2622aとが設けられる。
図237は、反射部の構造を示す図である。
反射部は導光板2610の裏面側に設けられた凹部で形成され、境界面(反射面2651)における光の反射によって、導光板2610の内部を進行する光を、導光板2610の前面側に反射して、導光板2610の絵柄部分を発光させ、遊技者に絵柄を視認させる。導光板2610の内部では導光板用LED2614から入射した光は、ある程度の広がり(例えば±30度)で導光板2610の内部を進行する。第二絵柄2622を構成する光の筋は、当該光の筋の方向に進行する光が、以下に説明する反射部2650で反射することによって見える。
図237(A)に示すムービング領域2622aの反射部は、光の筋に沿って複数の反射部2650が配置されている。なお、反射部2650の大きさは、望ましくは数百マイクロメートルから数ミリメートルであり、導光板2610上に表れる光の筋より極めて小さい大きさであるが、図では大きく図示している。
反射部2650は、光を反射する反射面2651と、反射面2651の裏側の傾斜面2652と、曲面によって形成された側面2653とによって構成される。反射面2651は、導光板2610の表面に対して略45度の角度で、かつ、反射面2651の垂線と反射する光の入射方向とが略45度になるように配置される。このため、導光板2610の内部を進行し、反射部2650の反射面2651に当たった光は、図237(B)に示すように、導光板2610の前面側に反射する。
また、ムービング領域2622aに表れる光の筋に垂直な方向、すなわち、反射面2651に沿って反射面2651と平行に進行する光は反射面2651に当たらず、反射部2650で反射して導光板2610の表面から出射しない。同様に、ムービング領域2622aに表れる光の筋と角度を持った(特に、鋭角となる)方向に進行する光は反射面2651に当たる量が少なく、反射部2650では少しの光しか反射せず、導光板2610の表面からは弱い光しか出射しない。このため、多く到達する波長の光が遊技者の目には見え、特定位置で発光する導光板用LED2614の色で絵柄を見せることができる。
このとき、反射面2651を少し傾けることによって、反射光の出射方向を導光板2610に垂直方向から左右に少しずらしてもよい。本実施例の導光板2601を照射する光源は指向性が強い光を照射するので、反射部2650からの反射光も指向性を持った光のビームとして遊技者に到達する。このため、遊技者の左右眼の視差を生じさせることができ、奥行きを持った第二絵柄を見せることができる。すなわち、右眼へ到達する光を反射する反射部2650と左眼へ到達する光を反射する反射部2650とが異なる位置にあるため、右眼へ到達する光と左眼へ到達する光との仮想的な交点は導光板2610上にはない。つまり、右眼へ到達する光と左眼へ到達する光との仮想的な交点が導光板2610より後方にあれば、絵柄が奥まった位置に見え、右眼へ到達する光と左眼へ到達する光との仮想的な交点が導光板2610より前方にあれば、絵柄が手前の位置に見える。
反射面2651の反対側に設けられる傾斜面2652は、反射面2651と同様に導光板2610の表面に対して略45度の角度で設けられてもよいし、導光板2610の内部を進行する光を導光板2610の前面側に反射しない角度で(例えば、導光板2610の表面と垂直に)形成してもよい。
側面2653は、曲面に加工されている。側面2653を、平面ではなく、曲面に加工することによって、一方向から入射した光を強く反射することなく、特定の方向以外から到来する光によって絵柄が表示されることを防止できる。
図238に示すラメ領域2621b、2621dの反射部2660は、導光板2610の裏面側に設けられた球面状の凹部によって構成されており、導光板2610内を進行し、複数の方向から(すなわち、複数の経路で)反射部2660に到来する光を反射し、導光板2610の前面側に出射する。ラメ領域の反射部2660は、複数の導光板用LED2614からの光を反射するので、導光板用LED2614の各々が異なるタイミングで点滅すると、ラメ領域2621bは、キラキラ光ることになる。また、導光板用LED2614が異なる色で発光すると、ラメ領域2621bは、複数色が混ざって光ることになる。さらに、導光板用LED2614が異なる色で点滅すると、ラメ領域2621bは、複数色が混ざってキラキラ光ることになる。
なお、マット領域2621eには、反射部が設けられておらず、すりガラス状に不定形の凹凸に加工されており、導光板2610内を進行する光を前面側に反射しない。
ここまで第一絵柄と第二絵柄とを表す導光板2610を説明したが、次に、異なる絵柄を表す導光板の実施例を説明する。図239は、図240から図242に示す絵柄を構成する導光板におけるLEDと反射部との関係を模式的に示す図である。
図239に示す導光板2610は、その裏面に形成されており、導光板2610の上側面の複数の特定入光部2630の何れかから入射した光を反射し、導光板2610の前面側へ出射する微細な複数の反射部2670を有している。導光板2610の複数の特定入光部2630は、複数の位置から導光板2610内を光が進行するように、光を導入するものである。複数の特定入光部2630は、第一特定入光部2630a、第二特定入光部2630b、第三特定入光部2630c、第四特定入光部2630dの四つを図示したが、第一特定入光部2630aから第七特定入光部までが設けられている。これは、導光板を七色に発光させるレインボー演出のために七つの特定入光部2630(LED群2614)を繰り返し設けるものであり、発光色の種類によって特定入光部の数を決めるとよい。第一特定入光部2630aから第七特定入光部(図示省略)は、導光板2610の上側面を長手方向(図において左右方向)で左から右へ順番に繰り返し(第七特定入光部の次は初めに戻って第一特定入光部2630aとなる順で)配置されている。
反射部2670は、対応している特定入光部2630と結んだ直線(特定入光部2630から入射した光が導光板2610内を進行する方向)に対して、直角方向へ延びていると共に導光板2610の後面に対して45度傾斜している境界面を有している。反射部2670は、ペントルーフ状の三角形に凹んでいる。反射部2670は、対応している特定入光部2630から入射した光を反射して、導光板2610の前面に対して略垂直な方向へ出射する。また、反射部2670は、対応していない特定入光部2630から入射した光を反射し、導光板2610の前面の垂直線に対して傾斜している方向へ出射する。
これにより、図239において破線で示すように、対応している特定入光部2630から入射した光はと、反射部2670により導光板2610の前面側の正面(紙面に対して垂直方向)へ反射し、パチンコ機1の正面に着座している遊技者からは当該反射部2670が発光して見える。これに対して、図239において一点鎖線で示すように、対応していない特定入光部2630から入射した光は、反射部2670により導光板2610の前方正面以外の方向へ反射し、パチンコ機1の正面に着座している遊技者からは当該反射部2670が発光していないように見える。
なお、本実施例では、反射部2670として、三角形に凹んだ状態で、対応している特定入光部2630と結んだ直線に対して直角方向へ延びている形態のものを示したが、これに限定するものではなく、対応する特定入光部2630と結んだ直線に対して直角方向へ延びているものであればよい。
複数の反射部2670は、複数の特定入光部2630の何れかに対応しており、第一特定入光部2630aに対応している複数の第一反射部2670a、第二特定入光部2630bに対応している複数の第二反射部2670b、第三特定入光部2630cに対応している複数の第三反射部2670c、第四特定入光部2630dに対応している複数の第四反射部2670dなどを含む。
また、導光板2610は、複数の反射部2670のうちの特定の反射部2670が前方へ光を反射させることにより、互いに異なる態様に発光表示可能な複数の絵柄2623を表示可能となっている。複数の絵柄2623は、複数の第一反射部2670aからなる絵柄2623aと、複数の第二反射部2670bからなる絵柄2623bと、複数の第三反射部2670cからなる絵柄2623cと、複数の第四反射部2670dからなる絵柄2623dなどを含む。
絵柄は、図240から図242に示すように、中心から外側へ順番に且つ巡回するように配置されている。
第二絵柄用基板2612は、左右に延びた帯板状で、各特定入光部2630に対応する位置にLED2614が実装されている。複数のLED2614は、第一特定入光部2630aと対応している第一LED群2614aと、第二特定入光部2630bと対応している第二LED群2614bと、第三特定入光部2630cと対応している第三LED群2614cと、第四特定入光部2630dと対応している第四LED群2614dと、第五特定入光部(図示省略)と対応している第五LED群(図示省略)と、第六特定入光部(図示省略)と対応している第六LED群(図示省略)と、第七特定入光部(図示省略)と対応している第七LED群(図示省略)とから構成されている。なお、図239には、第一LED群2614aから第四LED群2614dを図示し、第五LED群から第七LED群の図示は省略した。各LED群は、第二絵柄用基板2612上で長手方向(図において左右方向)に列設されている複数のLED2614を、第二絵柄用基板2612の左右方向で分割し、左から右へ順番に繰り返し(第七LED群の次は初めに戻って第一LED群2614aとなる順で)配置されている。本実施例では、各LED群は、夫々6個ずつLED2614を有している。
次に、本実施形態の表演出ユニット2600による発光演出について、詳細に説明する。第二絵柄用基板2612の第一LED群2614aを発光させると、導光板2610内に第一特定入光部2630aから光が入射し、第一反射部2670aでは導光板2610の正面へ反射し、他の第二反射部2670b、第三反射部2670c、第四反射部2670d等では正面以外へ反射するため、パチンコ機1の正面に着座した遊技者からは第一反射部2670aのみが光って見えることとなり、複数の第一反射部2670aから構成されている絵柄を発光させることができる。
第二絵柄用基板2612の第二LED群2614bを発光させると、導光板2610内に第二特定入光部2630bから光が入射し、第二反射部2670bでは導光板2610の正面へ反射し、他の第一反射部2670a、第三反射部2670c、第四反射部2670d等では正面以外へ反射するため、パチンコ機1の正面に着座した遊技者からは第二反射部2670bのみが光って見えることとなり、複数の第二反射部2670bから構成されている絵柄を発光させることができる。
第二絵柄用基板2612の第三LED群2614cを発光させると、導光板2610内に第三特定入光部2630cから光が入射し、第三反射部2670cでは導光板2610の正面へ反射し、他の第一反射部2670a、第二反射部2670b、第四反射部2670d等では正面以外へ反射するため、パチンコ機1の正面に着座した遊技者からは第三反射部2670cのみが光って見えることとなり、複数の第三反射部2670cから構成されている絵柄を発光させることができる。
第二絵柄用基板2612の第四LED群2614dを発光させると、導光板2610内に第四特定入光部2630dから光が入射し、第四反射部2670dでは導光板2610の正面へ反射し、他の第一反射部2670a、第二反射部2670b、第三反射部2670c等では正面以外へ反射するため、パチンコ機1の正面に着座した遊技者からは第四反射部2670dのみが光って見えることとなり、複数の第四反射部2670dから構成されている絵柄を発光させることができる。
第五LED群から第七LED群2614も同様に、各LED群を発光させると、対応する特定入光部2630から導光板2610内に光が入射し、対応する反射部2670で導光板2610の正面へ反射し、他の反射部2670では正面以外へ反射し、パチンコ機1の正面に着座した遊技者からは対応する反射部2670のみが光って見えることとなり、対応する反射部2670から構成されている絵柄を発光させることができる。
前述したように、本実施例のパチンコ機1では、LED群を切り替えて発光させることによって、複数の絵柄2623を夫々発光させることができ、複数の絵柄を順に発光させて、動きのあるアニメーションのような発光演出を行うことができる。特に、図240に示すように、相似形の絵柄を重畳させた導光板2610においては、中心から外側へ広がる、又は外側から中心へ縮むような動きがあるアニメーションのように絵柄を発光させるムービング演出ができる。
図240は、導光板によるムービング演出で表示される絵柄の例を示す図である。図240に示す例では、発光するLED群の位置を時間の経過と共に切り替えることによって、絵柄の大きさが変化するムービング演出を行う。
前述したように、導光板2610には、第一特定入光部2630aから第七特定入光部2630gが設けられており、各特定入光部2630a~2630gに対応して第一LED群2614aから第七LED群2614gが配置されている。なお、図240では、各特定入光部に対応する位置を符号の最後の一文字のアルファベットによって表す。
図240(A)に示すように、第六LED群2614f及び第七LED群2614gが点灯し、第六特定入光部2630f及び第七特定入光部2630gから光が入射すると、導光板2610に入射した光を第六反射部2670f及び第七反射部2670gが反射し、第六反射部2670f及び第七反射部2670gが配置された絵柄が発光し、遊技者が認識できる。
その後、第五LED群2614e及び第六LED群2614fが点灯し、第五特定入光部2630e及び第六特定入光部2630fから光が入射すると、導光板2610に入射した光を第五反射部2670e及び第六反射部2670fが反射し、第五反射部2670e及び第六反射部2670fが配置された絵柄が発光し、遊技者が認識できる。
さらに、図240(B)に示すように、第四LED群2614d及び第五LED群2614eが点灯し、第四特定入光部2630d及び第五特定入光部2630eから光が入射すると、導光板2610に入射した光を第四反射部2670d及び第五反射部2670eが反射し、第四反射部2670d及び第五反射部2670eが配置された絵柄が発光し、遊技者が認識できる。
その後、第三LED群2614c及び第四LED群2614dが点灯し、第三特定入光部2630c及び第四特定入光部2630dから光が入射すると、導光板2610に入射した光を第三反射部2670c及び第四反射部2670dが反射し、第三反射部2670cd及び第四反射部2670dが配置された絵柄が発光し、遊技者が認識できる。
さらに、図240(C)に示すように、第二LED群2614b及び第三LED群2614cが点灯し、第二特定入光部2630b及び第三特定入光部2630cから光が入射すると、導光板2610に入射した光を第二反射部2670b及び第三反射部2670cが反射し、第二反射部2670b及び第三反射部2670cが配置された絵柄が発光し、遊技者が認識できる。
このように、発光させるLED群(LED素子)の数を変えずに、位置を変えることによって、絵柄の大きさを変化させ、中心から外側へ動くように絵柄を発光させるムービング演出ができる。このとき、LED群は単一色で発光しても、各群で(すなわち、位置によって)異なる色で発光してもよい。
図241は、導光板による別のムービング演出で表示される絵柄の例を示す図である。図241に示す例では、発光するLED群の数を時間の経過と共に変えることによって、絵柄の大きさが変化するムービング演出を行う。
前述したように、導光板2610には、第一特定入光部2630aから第七特定入光部2630gが設けられており、各特定入光部2630a~2630gに対応して第一LED群2614aから第七LED群2614gが配置されている。なお、図241では、各特定入光部に対応する位置を符号の最後の一文字のアルファベットによって表す。
図241(A)に示すように、第二LED群2614b~第七LED群2614gが点灯し、第二特定入光部2630b~第七特定入光部2630gから入射した光を第二反射部2670b~第七反射部2670gが反射し、第二反射部2670b~第七反射部2670gが配置された絵柄が発光し、遊技者が認識できる。
その後、第三LED群2614c~第七LED群2614gが点灯し、第三特定入光部2630c~第七特定入光部2630gから入射した光を第三反射部2670c~第七反射部2670gが反射し、第三反射部2670c~第七反射部2670gが配置された絵柄が発光し、遊技者が認識できる。
さらに、図241(B)に示すように、第四LED群2614d~第七LED群2614gが点灯し、第四特定入光部2630d~第七特定入光部2630gから入射した光を第四反射部2670d~第七反射部2670gが反射し、第四反射部2670d~第七反射部2670gが配置された絵柄が発光し、遊技者が認識できる。
その後、第五LED群2614e~第七LED群2614gが点灯し、第五特定入光部2630e~第七特定入光部2630gから入射した光を第五反射部2670e~第七反射部2670gが反射し、第五反射部2670e~第七反射部2670gが配置された絵柄が発光し、遊技者が認識できる。
さらに、図241(C)に示すように、第六LED群2614f~第七LED群2614gが点灯し、第六特定入光部2630f~第七特定入光部2630gから入射した光を第六反射部2670f~第七反射部2670gが反射し、第六反射部2670f~第七反射部2670gが配置された絵柄が発光し、遊技者が認識できる。
このように、発光させるLED群(LED素子)の数を変えることによって、絵柄の大きさ(発光範囲)を変化させ、縮むように絵柄を発光させるムービング演出ができる。このとき、LED群は単一色で発光しても、各群で(すなわち、位置によって)異なる色で発光してもよい。
図242は、導光板による別のムービング演出で表示される絵柄の例を示す図である。図242に示す例では、LED群の発光色を時間の経過と共に変えることによって、絵柄の色が変化するムービング演出を行う。
前述したように、導光板2610には、第一特定入光部2630aから第七特定入光部2630gが設けられており、各特定入光部2630a~2630gに対応して第一LED群2614aから第七LED群2614gが配置されている。第一LED群2614aから第七LED群2614gは、フルカラーLEDによって構成されており、多色で発光できる。なお、図242では、各特定入光部に対応する位置を符号の最後の一文字のアルファベットによって表す。
図242(A)に示すように、第一LED群2614aが赤色で点灯し、第一特定入光部2630aから入射した赤色光が第一反射部2670aで反射し、第一反射部2670aが配置された絵柄が赤色で発光し、遊技者は赤色の絵柄を認識する。同様に、第二LED群2614bが橙色で点灯し、第二特定入光部2630bから入射した橙色光が第二反射部2670bで反射して絵柄が橙色で発光する。また、第三LED群2614cが黄色で点灯し、第三特定入光部2630cから入射した黄色光が第三反射部2670cで反射して絵柄が黄色で発光する。また、第四LED群2614dが緑色で点灯し、第四特定入光部2630dから入射した緑色光が第四反射部2670dで反射して絵柄が緑色で発光する。また、第五LED群2614eが青色で点灯し、第五特定入光部2630eから入射した青色光が第五反射部2670eで反射して絵柄が青色で発光する。また、第六LED群2614fが藍色で点灯し、第六特定入光部2630fから入射した藍色光が第六反射部2670fで反射して絵柄が藍色で発光する。また、第七LED群2614gが紫色で点灯し、第七特定入光部2630gから入射した紫色光を第七反射部2670gが反射して絵柄が紫色で発光する。
その後、図242(B)に示すように、第一LED群2614a~第七LED群2614gが、それぞれ紫色、赤色、橙色、黄色、緑色、青色、藍色で点灯し、絵柄の色が変わる。さらに時間が経過すると、図242(C)に示すように、第一LED群2614a~第七LED群2614gが、それぞれ藍色、紫色、赤色、橙色、黄色、緑色、青色で点灯し、絵柄の色が変わる。
このように、LED群を構成するLEDの発光色を変化させ、絵柄の色を順次(例えば0.5秒ごとに)変えていく。人間の目は、同じ色で発光する絵柄を注視するので、内側に動くように絵柄を発光させるムービング演出ができる。
図243は、導光板2610上の絵柄の配置とLED群2614の配置を示す図である。
本実施例では、複数のLED群2614が一つの絵柄を構成する反射部2670に対応しており、当該複数のLED群2614が所定のパターンで発光して一つの絵柄の表示している。具体的には、7個のLED群を繰り返し単位として、LED群2614(特定入光部2630)の発光パターンが繰り返されるように制御している。また、LEDは指向性を持って発光し、LEDの正面から所定の角度範囲を照光するように構成されている。
つまり、図243に示すように、同じパターンで発光する(一つの絵柄を構成する光の発光源である)LEDの照光範囲は、図中の扇形で示す範囲となり、第二絵柄用基板2612の近傍では、LEDからの光が到達しない範囲が生じる。
このため、導光板2610に光が入射する端部から所定の距離だけ離した位置に絵柄を設ける。例えば、LEDの照光範囲が60度(半値全角θ=±30度)である場合、LEDからの光が到達しない範囲は正三角形となることから、LED群の繰り返し単位の長さ(同じパターンで発光するLEDの間隔)αの0.87倍の長さだけ導光板2610の端部から絵柄を離して設ける。
一般化すると、LED群の繰り返し単位の長さα、LEDの照光角度をθ、導光板2610の端部から絵柄を離す距離をLとすると、以下の関係となる。
L=tanθ×α/2
このように、動いて見えるムービング絵柄が複数のLED群からの光で構成される場合、導光板2610の端部から所定の距離だけ離れた位置にムービング絵柄を配置しなければならない。すなわち、動いて見える絵柄を映し出すムービング絵柄領域は、静止している絵柄を映し出す静止絵柄領域より小さくなる。導光板2610を液晶表示装置1600の表示領域と同じ大きさとした場合、液晶表示装置1600の表示領域より狭い領域で導光板2610によるムービング演出が可能となる。このため、変動表示ゲームの演出において、通常は液晶表示装置1600の表示領域の端部近くに表示される特別図柄の視認を阻害せず、変動表示ゲームの進行を遊技者に認識させることができる。また、遊技者が注視する液晶表示装置1600の中央部でムービング演出を行うことによって、ムービング演出による遊技者のワクワク感によって、興趣の低下を抑制できる。
前述した実施例では、表ユニット2000のセンター役物2500導光板2610が取り付けられている例を説明したが、この場合、センター役物2500の内枠(パチンコ機1の前側に位置する遊技者から視認可能な開口窓部)の中に、導光板2610の端部から所定の距離以内のムービング演出が不可能な領域ができてしまい、ムービング演出が不可能な領域が遊技者に視認できる。また、ムービング演出が可能な領域が狭くなり、演出効果が減少する。
このため、前述とは異なり、導光板2610を裏ユニット3000に取り付けてもよい。この場合、導光板2610をセンター役物2500の内枠より大きくできるので、ムービング演出が不可能な領域をセンター役物2500で隠し、ムービング演出が不可能な領域をメイン液晶表示装置1600の表示領域の外側に配置し、センター役物2500の内枠の全て(又は、大部分)の領域でムービング演出が可能となる。つまり、パチンコ機1を正面から見た場合、導光板2610の端部はメイン液晶表示装置1600の周縁やセンター役物2500の外周から外側に離れたところに位置することとなる。
裏ユニット3000は各種装飾体(装飾ユニット3050、可動演出ユニット3100、3200、3300、3400、3500等)を備えているため、これらの装飾体の背後に導光板2610の端部が位置するように導光板2610を配置し、装飾体の後方に発光装置(第一絵柄用基板2611、第二絵柄用基板2612)を位置させることができる。これにより、光源となる基板を遊技者が見えない位置に配置でき、装飾性を担保できる。
さらに、導光板2610用のLED(導光板用LED2613、2614)と装飾体を発光させるLEDとを一つの基板に実装してもよい。
このように、導光板2610を裏ユニット3000に取り付けると、メイン液晶表示装置1600の表示領域の全部をムービング演出が可能な領域にでき、ムービング演出領域の制限による不自然さを遊技者に気付かせないようにできる。
図244は、導光板による別のムービング演出で表示される絵柄の例を示す図である。図244に示す例では、LED群の発光色を時間の経過と共に変えることによって、絵柄の色が変化するムービング演出を行う。
前述したように、導光板2610には、第一特定入光部2630aから第七特定入光部2630gが設けられており、各特定入光部に対応して第一LED群2614aから第七LED群2614gが配置されている。第一LED群2614aから第七LED群2614gは、フルカラーLEDによって構成されており、多色で発光できる。なお、図244では、各特定入光部に対応する位置を符号の最後の一文字のアルファベットによって表す。
図示するように、第一LED群2614aが赤色で点灯し、第一特定入光部2630aから入射した赤色光を第一反射部2670aが反射し、第一反射部2670aが配置された絵柄が赤色で発光し、遊技者は赤色の絵柄を認識する。同様に、第二LED群2614bが橙色で点灯し、第二特定入光部2630bから入射した橙色光を第二反射部2670bが反射して絵柄が橙色で発光する。また、第三LED群2614cが黄色で点灯し、第三特定入光部2630cから入射した黄色光を第三反射部2670cが反射して絵柄が黄色で発光する。また、第四LED群2614dが緑色で点灯し、第四特定入光部2630dから入射した緑色光を第四反射部2670dが反射して絵柄が緑色で発光する。また、第五LED群2614eが青色で点灯し、第五特定入光部2630eから入射した青色光を第五反射部2670eが反射して絵柄が青色で発光する。また、第六LED群2614fが藍色で点灯し、第六特定入光部2630fから入射した藍色光を第六反射部2670fが反射して絵柄が藍色で発光する。また、第七LED群2614gが紫色で点灯し、第七特定入光部2630gから入射した紫色光を第七反射部2670gが反射して絵柄が紫色で発光する。
その後、第一LED群2614a~第七LED群2614gのそれぞれが、紫色、赤色、橙色、黄色、緑色、青色、藍色で点灯し、絵柄の色が変わる。さらに時間が経過すると、第一LED群2614a~第七LED群2614gのそれぞれが、藍色、紫色、赤色、橙色、黄色、緑色、青色で点灯し、絵柄の色が変わる。
このように、LED群を構成するLEDの発光色を変化させ、絵柄の色を順次(例えば0.5秒ごとに)変えていく。人間の目は、同じ色で発光する絵柄を注視するので、七色の光の筋が流れるように絵柄を発光させるムービング演出ができる。
詳しい説明は省略するが、図235に示す2本の光の筋が交差するような絵柄を有する導光板2610でも、図244で説明したと同様に各LED群2614の発光色を変えることによって、絵柄(光の筋)の色が変わり、七色の光の筋が流れるように絵柄を発光させるムービング演出ができる。また、左右眼視差を用いて、光の筋が光源から離れるに従って奥まって又は手前側に見えるようにすると、立体感がある絵柄を表示できる。
次に、導光板2610による立体視絵柄と平面視絵柄とを説明する。
図245は、導光板2610によって平面視される絵柄が表示される様子を表す図である。
図245(B)に示すように、導光板2610の裏面に設けられた反射部2660は、反射面が曲面となっているので、導光板2610内を進行する光は、複数の方向に反射し、遊技者の右眼10R及び左眼10Lに到達する。また、反射部2660は、導光板2610内を進行し、複数の方向から(すなわち、複数の経路で)反射部2660に到来する光を反射し、導光板2610の前面側に出射する。このため、図245(A)に示すように、反射部2660によって構成される絵柄2621には左右眼の視差が生じないため、遊技者は絵柄2621を導光板2610の位置にある平面的な絵柄として見ることとなる。
図246は、導光板2610によって平面視される絵柄が表示される様子を表す図である。
図246(B)に示すように、導光板2610の裏面に設けられた反射部2650Lは、導光板2610内を進行する光を遊技者の左眼10Lの方向に反射し、反射部2650Rは、導光板2610内を進行する光を遊技者の右眼10Rの方向に反射する。しかし、反射部2650Lと反射部2650Rとは近接して(例えば、1mm以下で)配置されているので、図246(A)に示すように、反射部2650L、Rによって構成される絵柄2621の左右眼の視差は小さく、反射部2650Lによって構成される左眼用絵柄と、反射部2650Rによって構成される右眼用絵柄とは同じ位置に配置されていると言える。このため、遊技者は絵柄2621を導光板2610の位置にある平面的な絵柄として見ることとなる。
図247は、導光板2610によって立体視可能な絵柄が表示される様子を表す図である。
図247(B)に示すように、導光板2610の裏面に設けられた反射部2650Lの反射面2651は導光板2610内を進行する光を遊技者の左眼10Lの方向に反射する角度に設定されており、反射部2650Rの反射面2651は導光板2610内を進行する光を遊技者の右眼10Rの方向に反射する角度に設定されている。このため、図247(A)に示すように、導光板2610上では反射部2650Lと反射部2650Rとの距離だけ左眼画像2621Lと右眼画像2621Rとがズレた位置となり、遊技者は左右眼視差がある右眼画像と左眼画像とを認識する。図247に示す状態では、遊技者の左眼10Lへ到達する光と右眼10Rへ到達する光とは導光板2610の裏面側の点2621Cで交差する。このため、遊技者は反射部2650L、Rによって構成される絵柄2621を導光板2610の後方位置にある立体的な絵柄として見ることとなる。
図248は、導光板2610によって立体視可能な絵柄が表示される様子を表す図である。
図248(B)に示すように、導光板2610の裏面に設けられた反射部2650Lの反射面2651は導光板2610内を進行する光を遊技者の左眼10Lの方向に反射する角度に設定されており、反射部2650Rの反射面2651は導光板2610内を進行する光を遊技者の右眼10Rの方向に反射する角度に設定されている。このため、図248(A)に示すように、導光板2610上では反射部2650Lと反射部2650Rとの距離だけ左眼画像2621Lと右眼画像2621Rとがズレた位置となり、遊技者は左右眼視差がある右眼画像と左眼画像とを認識する。図248に示す状態では、遊技者の左眼10Lへ到達する光と右眼10Rへ到達する光とは導光板2610の表面側の点2621Cで交差する。このため、遊技者は反射部2650L、Rによって構成される絵柄2621を導光板2610の手前にある立体的な絵柄として見ることとなる。
このように、表演出ユニット2600によれば、一枚の導光板2610により、複数の異なる絵柄を発光させることができるため、アニメーション表示等をさせるために絵柄毎に複数の導光板を備える必要がなく、表演出ユニット2600の前後方向の厚さを可及的に薄くできる。また、導光板2610をセンター役物2500に取付けているため、導光板2610を遊技者側へ可及的に近付けた位置とすることができ、導光板2610の後側に広いスペースを確保し易くできる。従って、導光板2610の後側に広いスペースを確保できるため、導光板2610の後側に、下部可動演出ユニット3100、上部後可動演出ユニット3200、及び上部前可動演出ユニット3300等を配置でき、それらにより遊技領域5a内の見栄えを良くして遊技者に対する訴求力の高いパチンコ機1にできると共に、絵柄2623の発光表示による演出に加えて、下部可動演出ユニット3100、上部後可動演出ユニット3200、及び上部前可動演出ユニット3300等による可動演出を行うことで遊技者に多彩な演出を提供することができ、遊技者を楽しませて興趣の低下を抑制できる。
また、演出ユニットや装飾体、演出表示装置1600の前方に導光板2610を配置することによって、複数の反射部2670の発光による半透明な複数の絵柄が浮かびあがってアニメーションのよう動く発光装飾を見せることができるため、従来の導光板を用いた発光演出に見慣れた遊技者に対して強いインパクトを与えることができ、遊技者を驚かせて楽しませることができると共に、遊技者に対して何か良いことがあるのではないかと思わせることができ、遊技者の遊技に対する期待感を高めさせて興趣の低下を抑制できる。
また、パチンコ機1の前方正面に着座している遊技者のみが導光板2610による絵柄の発光表示を良好に見ることができるため、正面から離れている他の遊技者からは絵柄2623の発光表示が見辛くなり、他の遊技者に対して、導光板2610を用いた演出が行われていることを気付かせ難くでき、他の遊技者が注目するのを抑制することができると共に、他の遊技者に気兼ねすことなく遊技ができ、遊技を楽しませて興趣の低下を抑制できる。
更に、正面視遊技領域5a内の中央にセンター役物2500を取り付けられているセンター役物2500の枠内に導光板2610を取付けているため、LED2613、2614により絵柄2621、2622を発光表示しても、発光表示されている絵柄が遊技領域5a内での遊技の妨げとなることはなく、実際に遊技が行われる領域を遊技者側から良好な状態で視認でき、遊技が見え辛くなることで遊技者に不信感を与えるのを防止して良好な状態で遊技を楽しませることができる。
また、枠状のセンター役物2500に導光板2610を取り付けていることから、導光板2610の周縁とセンター役物2500の枠とを一致させることで、導光板2610の周縁(第一絵柄用基板2611、第二絵柄用基板2612)を遊技者側から見え難くでき、遊技者に対して導光板2610の存在に気付かせ難くできるため、絵柄を発光表示させた時に、導光板2610が存在していないと思っていた遊技者に対して強いインパクトを与えて驚かせることができ、導光板2610による複数の絵柄の発光表示を楽しませて興趣の低下を抑制できる。
更に、導光板2610の後方に演出画像を表示可能な演出表示装置1600を備えていることから、導光板2610による互いに異なる複数の絵柄の発光表示と、演出表示装置1600による演出画像とを合わせた演出を遊技者に見せることができるため、それらを適宜組み合わせることで多様な演出ができ、遊技者を飽きさせ難くできると共に、導光板2610と演出表示装置1600とによる演出によって遊技者を楽しませることができ、遊技者の遊技に対する興趣の低下を抑制できる。
また、導光板2610の後方に演出表示装置1600を配置していることから、パチンコ機1の前方に着座した遊技者からの導光板2610までの距離と、演出表示装置1600までの距離とが異なっているため、導光板2610で発光表示される複数の絵柄2623と関連した演出画像を表示して、発光表示されている絵柄2623に奥行き感や立体感を付与させることが可能となり、遊技者の関心を強く引付けさせることが可能な演出(表示演出)を遊技者に見せることができ、遊技者を楽しませて遊技に対する興趣の低下を抑制できる。
また、LED2613、2614は、単色LEDでもよいし、フルカラーLEDでもよい。また、絵柄の数、形状、大きさに合わせて、特定入光部、反射部、及びLED群の数を適宜選択できる。
[13-3.演出例]
次に、特別図柄変動表示ゲームにおける導光板を用いた演出表示の例を説明する。図249から図254は、導光板を用いた演出例を示す図である。
図249に示す演出表示では、導光板2610に所定の絵柄が映るように導光板2610を発光させ、該所定の画像に向かって画像を移動させる移動演出を液晶表示装置1600に表示する。この演出表示は、特定の特別図柄変動表示ゲーム(例えば、特定のリーチ演出や予告演出として)で実行されてもよい。
具体的には、まず、図249(A)に示すように、液晶表示装置1600に何も表示されず、画面が全て黒色に暗転(ブラックアウト)する。このブラックアウトによって、遊技者を液晶表示装置1600に注視させる。
その後、図249(B)に示すように、第一絵柄用基板2611に実装されているLED2613を点灯し、導光板2610に第一絵柄2621を映す。これによって、遊技者を第一絵柄2621に注視させる。そして、図249(C)に示すように、第一絵柄2621に向かって移動する画像を液晶表示装置1600に表示する移動演出を行う。また、図249(D)に示すように、移動演出は、液晶表示装置1600の複数箇所(すなわち複数方向)から第一絵柄2621に向かって画像1611を移動させてもよい。液晶表示装置1600に移動して表示される画像1611は、第一絵柄2621と同じ色でも異なる色でもよい。また、液晶表示装置1600に移動して表示される画像1611は、図249に示すように、第一絵柄2621と同じ形状(相似形)でも、図250に示すように、異なる形状でもよい。また、移動して表示される画像1611と第一絵柄2621とは、同じキャラクタの画像(ポーズや顔が同じでも異なってもよい)や、同じ文字(例えば、キャラクタの称呼)で字体や色が同じでも異なってもよい。本実施例のパチンコ機1では、液晶表示装置1600の前面側に導光板2610が配置されているので、図249(D)に示すように導光板2610上に映された第一絵柄2621の裏にも液晶表示装置1600によって画像が表示されるとよい。
その後、図249(E)に示すように、移動演出において、第一絵柄2621に向かって移動する画像1611の数や、当該移動画像1611が液晶表示装置1600の表示領域において占める割合を時間の経過に伴って変化させてもよい。
移動演出の間、導光板2610に映される第一絵柄2621の態様を変えてもよい。例えば、図251に示すように、導光板2610に映される第一絵柄2621の色や明るさを、移動演出の間に変更してもよい。第一絵柄2621の色や明るさは、連続的に(徐々に)変えても、段階的に(ステップ的に)変えてもよい。
また、図252に示すように、導光板2610に映される第一絵柄2621の大きさを、移動演出の間、変えてもよい。この場合、複数の導光板を設け、他の導光板を用いて大きさが違う絵柄を映すとよい。また、導光板2610は、異なる方向からの光の照射によって複数の異なる絵柄を映すことができるので、初期の大きさの第一絵柄2621を映すための照射方向(横方向)と異なる方向(例えば、斜め方向)からの光の照射によって、異なる大きさの(大きな又は小さな)第一絵柄2621を映してもよい。
所定の時間、移動演出を行った後、図249(F)に示すように、第一絵柄用基板2611に実装されているLED2613を消灯し、導光板2610から第一絵柄2621を消す。さらに、液晶表示装置1600に表示されている画像も消して、画面が全て黒色に暗転(ブラックアウト)する。このブラックアウトによって、遊技者を液晶表示装置1600に注視させ、次の演出への期待感を向上させるための間を作る。
その後、図249(G)に示すように、第一絵柄2621や移動表示された画像と異なる画像1612(例えば、当りの信頼度が高いキャラクタ)を液晶表示装置1600に表示する。さらに、図249(H)に示すように、キャラクタ画像1612の大きさを変更する。例えば、キャラクタ画像1612の大きさを大きくすると、遊技者の当りへの期待感が高まるが、キャラクタ画像1612の大きさを小さくすると、遊技者の当りへの期待感が低くなる。なお、キャラクタ画像1612の色や表情を変えてもよい。また、キャラクタ画像1612は第一絵柄2621の表示領域と重なる領域に表示するとよい。さらに、キャラクタ画像1612の表示と共に、導光板2610を上方向から照射して、レインボー絵柄を映してもよい(図235参照)。
なお、このキャラクタ画像を導光板2610に映してもよい。前述したように、導光板2610は、異なる方向からの光の照射によって複数の異なる絵柄を映すことができるので、第一絵柄2621を映すための照射方向(横方向)と異なる方向(例えば、斜め方向)からの光の照射によって、キャラクタ画像を映してもよい。また、複数の導光板を設け、他の導光板でキャラクタ画像を映してもよい。導光板2610の他に設けた導光板で、大きさや表情が異なるキャラクタ画像を映すと、平面的な液晶表示装置1600と異なり、奥行き感がある演出表示が可能となる。
以上説明した、第一絵柄2621に向かって画像が移動する移動演出は、第一絵柄2621が映された後に、液晶表示装置1600上の画像が移動するが、液晶表示装置1600上の画像が移動を開始した後、第一絵柄2621が映されてもよい。具体的には、図253に示すように、ブラックアウト(図253(A))の後、図253(B)に示すように、第一絵柄2621が映される前に、第一絵柄2621が映される位置に向かって移動する画像を液晶表示装置1600に表示する移動演出を開始する。その後、図253(C)に示すように、第一絵柄用基板2611に実装されているLED2613を点灯し、導光板2610に第一絵柄2621を映す。その後、図253(D)に示すように、第一絵柄2621に向かって画像が移動する移動演出を継続する。
このように、第一絵柄2621が映される時間(導光板演出の時間)と、画像1611が移動する演出時間(液晶表示装置1600に移動画像が表示される時間)とは、第一絵柄2621が映される導光板演出が、画像1611が移動する演出より先に開始しても、後に開始してもよい。また、第一絵柄2621が映される導光板演出の時間が、画像1611が移動する演出時間より長くても、短くてもよい。
また、図254に示すように、画像が集まる先の絵柄が動いて見えるムービング絵柄と動かないように見える静止絵柄とを切り替えて変動表示ゲームの演出を行ってもよい。
図254に示す導光板演出では、ムービング絵柄が登場すると大当りへの期待が高く、静止絵柄が登場しただけだと大当りへの期待が低い演出を行う。具体的には、図254(A)に示すように、変動表示ゲームの進行に応じて、導光板2610に静止絵柄2621を表示し、図254(B)に示すように、表示された静止絵柄2621に向かって移動する画像1611を液晶表示装置1600に表示する移動演出を行う。また、変動表示ゲームの進行に伴って、図254(C)に示すように、静止絵柄2621をムービング絵柄に切り替える。さらに、図254(D)に示すように、液晶表示装置1600の複数箇所(すなわち複数方向)から第一絵柄2621に向かって画像1611を移動させる移動演出を行ってもよい。
一方、図254(E)に示すように、変動表示ゲームの進行に応じて、導光板2610に静止絵柄2621を表示し、図254(F)に示すように、表示された静止絵柄2621に向かって移動する画像1611を液晶表示装置1600に表示する移動演出を行う。また、変動表示ゲームの進行に伴って、図254(G)に示すように、液晶表示装置1600の複数箇所(すなわち複数方向)から絵柄1613に向かって画像1611を移動させる移動演出を行ってもよい。その後、図254(H)に示すように、静止絵柄2621をムービング絵柄に切り替えることなく、変動表示ゲームがハズレで終了する。
図254に示す演出では、特別図柄変動表示ゲームにおいて特定の表示演出(例えば、特定のリーチ演出、擬似連演出、特定の先読み演出)が選択された場合に、上記特定の表示演出において表示される特定の画像1611が第一絵柄2621によるムービング演出と一体に演出を行い、その他の場合には第一絵柄はムービング演出を行わなくてもよい。
このように、図254に示す変動表示ゲームの演出において、導光板2610による静止絵柄とムービング絵柄とが選択的に表示される演出を行うので、変動表示ゲームの発展に遊技者が期待感を持ち、遊技興趣の低下を抑制できる。
次に、特別図柄変動表示ゲームにおける導光板を用いた演出表示に、稼動体による演出を加えた演出の例を説明する。
図255、図256は、導光板2610と可動体3601を用いた演出例を示す図である。
図255に示す演出では、導光板2610に表示される絵柄と、液晶表示装置1600の前面に登場する可動体3601とで一つの絵柄を構成する。具体的には、図255(A)に示すように、変動表示ゲームの進行に応じて、液晶表示装置1600の表示画面の上部から可動体3601の一部が現れたり、隠れたりを短周期で繰り返し、遊技者に大当りへの期待を高める。そして、図255(B)に示すように、可動体3601の全部が液晶表示装置1600の表示画面の前面に出現する。
その後、図255(C)に示すように、可動体に重畳する絵柄2621を導光板2610の発光によって表示し、可動体3601に向かって移動する画像1611を液晶表示装置1600に表示する移動演出を行う。また、変動表示ゲームの進行に伴って、図255(D)に示すように、液晶表示装置1600の複数箇所(すなわち複数方向)から絵柄2621に向かって画像を移動させる移動演出を行ってもよい。
この移動演出が開始するタイミング、又は移動演出の途中で、可動体3601を発光させてもよい。可動体3601の発光態様(発光色や発光タイミング)は、導光板2610の発光態様と同じでも、異なってもよい。
図249に示す可動体3601が登場しない演出表示と、図255に示す可動体3601が登場する演出表示とのいずれかを選択的に行うことによって、変動表示ゲームの発展についての遊技者の期待を高めることができ、興趣が高いパチンコ機とすることができる。
前述した例では、画像が集まる先の絵柄に代えて可動体3601を出現させたが、一つのキャラクタを導光板2610と可動体3601とによって構成してもよい。例えば、可動体3601で胴体を表し、導光板2610によって顔を表すと、導光板2610に表示される絵柄を切り替えることによって、顔の表情を変えることができる。このように、液晶表示装置1600による演出に加えて、導光板2610による多様な演出を実現できる。
図256に示す演出では、可動体3601の出現を示唆する演出として導光板2610を用いる。具体的には、図256(A)に示すように、変動表示ゲームの進行に応じて、導光板2610の発光によって絵柄2621を表示し、図256(B)に示すように、導光板2610によって表示された絵柄に向かって移動する画像1611を液晶表示装置1600に表示する移動演出を行う。また、変動表示ゲームの進行に伴って、図256(C)に示すように、液晶表示装置1600の複数箇所(すなわち複数方向)から第一絵柄2621に向かって画像1611を移動させる移動演出を行ってもよい。その後、図256(D)に示すように、液晶表示装置1600の表示画面の上部から可動体3601が現れ、導光板2610の絵柄2621と重なる位置で停止する。
一方、図256(E)に示すように、変動表示ゲームの進行に応じて、液晶表示装置1600に絵柄1613を表示し、図256(F)に示すように、表示された絵柄1613に向かって移動する画像1611を液晶表示装置1600に表示する移動演出を行う。また、変動表示ゲームの進行に伴って、図256(G)に示すように、液晶表示装置1600の複数箇所(すなわち複数方向)から絵柄1613に向かって画像1611を移動させる移動演出を行ってもよい。その後、図256(H)に示すように、可動体は表れずに変動表示ゲームがハズレで終了する。
このように、図256に示す演出では、可動体が出てくることを示唆する演出を、導光板を用いて行うことができる。
[14.シリアル通信機能を有する主制御MPUを用いたパチンコ機]
本実施例のパチンコ機1の主制御MPU1311は、従来の8ビットのパラレルバスによる通信機能の他に同期シリアル通信機能を有する。
従来のパチンコ機では、主制御基板1310内における主制御MPU1311の入出力信号は、一つの信号が1本の信号線で伝送されるパラレルポートや、8ビットバスを用いて伝送されていることから、主制御MPU1311から出力されるデータを読み取ったり、主制御MPU1311に不正な信号を入力して不正行為が行われることがあった。このため、主制御MPU1311の入出力信号を外部から検出困難な構成が求められており、1本の信号線で所定のタイミングで連続しでデータを伝送するシリアル通信機能を用いると、当該シリアル通信線のタイミングに合わせてデータを読み取ったり、データを入力することは困難となる。
また、主制御基板1310は、検査機関がパチンコ機を検査する際に信号をモニタする目的で試験用信号出力回路を搭載している。例えば、特別電動役物の動作を検査する場合、特別電動役物を開閉動作させるソレノイドの出力信号をモニタするため、ソレノイド駆動用ドライバ(トランジスタ)へ入力される信号(例えば、5Vのオン・オフ信号)を分岐して、検査用の信号としていた。前述した主制御基板1310内で伝送されるシリアル信号を検査用信号として出力すると、検査機関はシリアル信号を解析する装置が必要になることから、該シリアル信号を検査用の信号に用いることは困難である。このため、主制御基板1310内でシリアル通信で信号を伝送するパチンコ機においては、検査用信号の出力に工夫が必要である。このため、本実施例のパチンコ機では、並列に接続された二つのシリアル・パラレル変換回路に一つのシリアル信号を入力することによって、ソレノイド駆動用の信号と同じタイミングでレベルを変化させる検査用信号を生成するものとした。シリアル・パラレル変換回路の出力トランジスタオープンコレクタ(又は、オープンドレイン)で構成すると、並列に接続された二つのシリアル・パラレル変換回路に印加する電圧(5Vと12V)を変えることによって、電圧レベルが異なる二つの同期した信号を生成できる。
さらに、シリアル通信による入力を検出するためのプログラムのステップ数を減らしソフト的な負荷を低減する必要がある。本実施例のパチンコ機では、主制御MPU1311へ入力される信号の一部をパラレル・シリアル変換回路に入力し、一部を主制御MPU1311の汎用ポートに直接入力する構成としたので、どのポートで入力信号を受け入れるかに工夫が必要である。例えば、電源投入直後に入力レベルを判定する必要がある信号はパラレル・シリアル変換回路に入力せず、主制御MPU1311の汎用ポートに直接入力するとよい。これは、割り込み処理を実行する前でも、主制御MPU1311の汎用ポートに入力された信号のレベルを検出できることから、電源投入直後などのタイマ割り込み処理以外でも信号レベルを検出できるからである。
特に、本実施例のパチンコ機1では、主制御MPU1311に直接入力される信号の数によっては、チップセレクトを使用した拡張I/Oを使用しなくてよく、主制御MPU1311の汎用ポートに入力された信号のレベルをクロック毎にbit単位で取り込むことができ、シリアル信号の受信を待たずに信号レベルをリアルタイムで検出できる。
図257は、主制御基板1310の同期シリアルインターフェイスの周辺のブロック図であり、図258は、シリアル・パラレル変換回路とLEDとの接続を示す回路図であり、図259は、主制御MPU1311及び周辺部品の主制御基板1310上の配置を示す図である。なお、図257、図258及び図259において、太線はパラレル信号の伝送ラインを示し、細線はシリアル信号の伝送ラインを示す。
本実施例の主制御MPU1311は、他の基板(周辺制御基板1510、払出制御基板951など)との間で通信するための非同期シリアル通信ポート(非同期シリアル通信機能)と、主制御基板1310内のインターフェイス回路と通信するための同期シリアル通信ポート(同期シリアル通信機能)と、他の装置(ソレノイドなど)の制御信号を出力したり、振動検出センサ、磁気検出センサなどの異常検出センサから出力される信号が入力される汎用ポートを有する。
主制御MPU1311の同期シリアル通信機能は、複数の送受信ポートと、複数の送信ポートとを有する。送受信ポートの通信相手は、主制御MPU1311から出力されるチップセレクト信号によって選択される。
送受信ポートは、シリアル信号送信端子(SERTX)、受信信号入力端子(SERRX)、チップセレクト出力端子(SERS0~SERS3)、同期信号出力端子(SERCK)から構成される。また、送信ポートは、シリアル信号送信端子(SERTXT)、チップセレクト出力端子(SERST)、同期信号出力端子(SERCKT)から構成される。
図257に示すように、送受信ポートには一つのパラレル・シリアル変換回路1341と、二つのシリアル・パラレル変換回路1342、1343が接続される。送受信ポートに接続されるパラレル・シリアル変換回路の数は、図示したものに限られない。
なお、チップセレクト端子を使用せずに、パラレル・シリアル変換回路1341のような接続をすることによって、更に多くのシリアル・パラレル変換回路を接続してもよい。この場合、シリアル・パラレル変換回路から出力される信号の種類は増加しない。
送受信ポートに接続されるパラレル・シリアル変換回路1341は、CLEAR/LOAD(負論理)が0レベルの時に入力されたパラレルデータを取り込み、CLEAR/LOAD(負論理)が1に立ち上がった後に所定のクロックのタイミングでシリアルポートからデータを出力する。パラレル・シリアル変換回路1341には、遊技球検出スイッチ(始動入賞口、大入賞口カウントスイッチ、普通入賞口、特定領域スイッチ、普通図柄ゲートスイッチ、遊技板排出スイッチ)やフォトセンサなどの信号が入力されており、主に遊技領域5aを流下する遊技球を検出する。パラレル・シリアル変換回路1341は、16ビットの入力ポートを有する構成であるが、8ビットの入力ポートを有する集積回路を並列に接続して、16ビット構成としてもよい。
具体的には、パラレル・シリアル変換回路1341のCLEAR/LOAD(負論理)には、シリアル信号送信端子(SERTX)が接続されているので、主制御MPU1311が出力するシリアル送信信号が0レベルの時に入力された遊技球検出スイッチの出力信号を取り込み、シリアル送信信号(SERTX)が1に立ち上がった後に所定のクロックのタイミングでシリアルポートから、遊技球検出スイッチのレベルに応じたシリアルデータを出力する。このように、パラレル・シリアル変換回路1341は、SERTX信号をトリガにして遊技球検出スイッチの出力信号を取り込むので、任意のタイミングで球検出センサのデータを取り込むことができる。
また、送受信ポートに接続されるシリアル・パラレル変換回路1342及びシリアル・パラレル変換回路1343は、いずれも、LED(機能表示ユニット1400、ベース表示器1317)を点灯するための信号を出力するものであり、主制御MPU1311からのチップセレクト信号によって、データの送信先が選択される。シリアル・パラレル変換回路1342、1343は、チップセレクト(CS)信号が0レベルの時に入力されたシリアルデータを所定のクロック信号に従って取り込み、チップセレクト信号が1に立ち上がったタイミングでパラレルポートから信号を出力する。パラレルポートからの出力レベルは、シリアル・パラレル変換回路1342、1343内でラッチされており、チップセレクト信号が次回に1に立ち上がるタイミングまで維持される。
具体的には、図258に示すように、シリアル・パラレル変換回路1342はLEDのセグメント側に接続され、シリアル・パラレル変換回路1343はLEDのコモン側に接続される、シリアル・パラレル変換回路1342及びシリアル・パラレル変換回路1343が所定のタイミングで信号を出力することによって、LEDをダイナミック点灯する。シリアル・パラレル変換回路1342、1343は、16ビットの出力ポートを有する構成であるが、8ビットの出力ポートを有する集積回路を並列に接続して、16ビット構成としてもよい。
主制御MPU1311は、チップセレクト端子(SERS0)から0を出力するタイミングでコモン信号を出力し、ベース表示器1317の7セグメントLEDの表示桁を設定し、チップセレクト端子(SERS1)から0を出力するタイミングでセグメント信号を出力して、LEDを点灯させる。
なお、本実施例では、LEDのアノード側がコモン端子となっている7セグメントLEDをベース表示器1317に使用しており、LEDの点灯時にはアノード側のコモン端子からカソード側のセグメント端子に駆動電流が流れる。しかし、シリアル・パラレル変換回路1342及びシリアル・パラレル変換回路1343に同じ構成の集積回路を用いているので、各変換回路1342、1343内のドライバ回路が出力する電流の向き(ドライバ回路の出力トランジスタの極性)は同じになる。このため、シリアル・パラレル変換回路1343の後段にドライバ回路1344を設け、アノード側のコモン端子に電流を供給できるようにしている。すなわち、ドライバ回路1344はLEDを点灯するための駆動電流を出力する機能を有し、シリアル・パラレル変換回路1343はLEDを点灯するための駆動電流を吸い込む機能を有する。
パラレル・シリアル変換回路と1341とシリアル・パラレル変換回路1342、1343とは、それぞれ、パラレル・シリアル変換機能のみを有する集積回路と、シリアル・パラレル変換機能のみを有する集積回路を使用してもよく、また、シリアル信号とパラレル信号とを相互に変換可能な集積回路でパラレル・シリアル変換機能とシリアル・パラレル変換機能とを切り替えて使用してもよい。
また、主制御MPU1311の送信ポートには、二つのシリアル・パラレル変換回路1345及び1346が接続されている。シリアル・パラレル変換回路1345、1346は、前述したシリアル・パラレル変換回路1342、1343と同様に、チップセレクト(CS)が0レベルの時に入力されたシリアルデータを所定のクロック信号に従って取り込み、CSが1に立ち上がったタイミングでパラレルポートから出力する。パラレルポートの出力にはドライバ用のトランジスタが備わっており、ドライバ用トランジスタに印加された電圧をスイッチングして、出力信号を生成する。すなわち、ドライバ用トランジスタに印加する電圧によって、様々な電圧の出力信号を生成できる。
シリアル・パラレル変換回路1345のチャネルAの出力ポート(PA0~PA7)には、外部端子板784が接続されており、外部端子板784から出力する信号(例えば、セキュリティ信号や、球払出信号など)が出力される。また、シリアル・パラレル変換回路1345のチャネルBの出力ポート(PB0~PB7)には、各種ソレノイドが接続されており、各種ソレノイドの駆動信号が出力される。また、シリアル・パラレル変換回路1346のチャネルBの出力ポート(PB0~PB7)には、検査用端子1348が接続されており、検査用端子1348から出力する信号(例えば、特別電動役物開放信号、普通電動役物開放信号など)が出力される。また、シリアル・パラレル変換回路1346のチャネルAの出力ポートには、何も接続されていない。
主制御MPU1311の送信ポートは、1チャネル(16ビット)しか制御できず、シリアル・パラレル変換回路1345及びシリアル・パラレル変換回路1346には、チップセレクトも含めて分岐された同じ信号が入力されているので、パラレル側には同じ信号が出力される。このため、シリアル・パラレル変換回路1345及びシリアル・パラレル変換回路1346は、一つのシリアル信号から同じタイミングで変化するパラレル信号の組を生成している。つまり、シリアル・パラレル変換回路1345のチャネルBの出力ポート(PB0~PB7)から出力されるソレノイド駆動信号と、シリアル・パラレル変換回路1346のチャネルBの出力ポート(PB0~PB7)出力される検査用信号とは、同じタイミングで変化する。このため、ソレノイドの動きを正確に検査用端子1348から出力できる。なお、シリアル・パラレル変換回路1345には+12Vを印加して、12Vでソレノイドを駆動し、シリアル・パラレル変換回路1346には+5Vを印加して、5Vの検査用信号を出力する。このように、異なる電圧が印加された二つのシリアル・パラレル変換回路を用いることによって、電圧レベルが異なる同期した信号を生成できる。
シリアル・パラレル変換回路1345及びシリアル・パラレル変換回路1346から出力のうち、比較的大きな電流が流れるソレノイド駆動信号の出力側のパターンは太くし、比較的小さな電流しか流れない検査用信号の出力側のパターンは細くてもよい。なお、パターンを太くしなくても、パターンの抵抗を減少すればよく、表裏の両面にパターンを形成して実質的な断面積を増加したり、内層パターンを形成して実質的な断面積を増加してもよい。
また、二つのシリアル・パラレル変換回路1345及び1346は独立して動作するので、一方の変換回路の負荷が大きくなっても、他方の変換回路の出力信号の波形が乱れることなく、出力信号に影響が生じない。すなわち、シリアル・パラレル変換回路1346は、シリアル・パラレル変換回路1345に接続されたソレノイドの動作によらず、ソレノイドの駆動信号の本来の波形と同じ波形の検査信号を出力でき、正確な検査に役立つ。
次に、図259を参照して、主制御MPU1311及び周辺部品の主制御基板1310上での配置を説明する。
図259に示すように、主制御基板1310上には主制御MPU1311が搭載されており、その周辺に各種インターフェイス回路が配置されている。また、主制御基板1310上には、検査用回路配置エリアが設けられており、該検査用回路配置エリアには、シリアル・パラレル変換回路1346とインターフェイス回路1347と検査用端子1348が設けられる。検査用回路配置エリアに設けられる回路部品(シリアル・パラレル変換回路1346、インターフェイス回路1347、検査用端子1348など)は、検査機関による検査を受けるパチンコ機1にのみ搭載され、一般に市販されるパチンコ機1には搭載されない(部品搭載用のパターンは設けられている)。すなわち、一般に市販されるパチンコ機1には、シリアル・パラレル変換回路1345からソレノイドに出力される信号を中継するコネクタは実装されているが、シリアル・パラレル変換回路1346から出力される検査用信号を中継する検査用端子1348は実装されていない。このため、市販されるパチンコ機1では、検査用信号が不正行為者に検出されて不正行為に利用されることがない構成となっている。
前述したように、市販用のパチンコ機1では、検査用回路配置エリアには部品が搭載されないがプリントパターン(例えば、インターフェース回路1347に繋がるデータバス)が設けられている。このため、ノイズがデータバスに誘起し誤動作を引き起こす可能性があることから、検査用回路配置エリアの配線(プリントパターン)を抵抗を介して電源(+5V)へプルアップして(又は、GNDへプルダウンして)、ノイズの影響を低減するとよい。
さらに、不正改造防止の観点から、市販されるパチンコ機1には表面実装部品は使用していないが、検査用回路配置エリアに設けられる回路部品は市販されるパチンコ機1には搭載されないので、表面実装部品を使用できる。このため、検査用回路の部品を小型化でき、検査用回路配置エリアを小さくでき、ひいては、主制御基板1310を小型化できる。同様に不正改造防止の観点から、市販されるパチンコ機1には主制御基板1310の裏面側には部品を搭載していないが、検査用回路配置エリアに設けられる回路部品は市販されるパチンコ機1には搭載されないので、主制御基板1310の裏面側には部品を搭載できる。
なお、検査用回路の部品のうち、シリアル・パラレル変換回路1346及び検査用端子1348を、主制御基板1310の近傍に配置される別基板に設けてもよい。この別基板は、検査機関による検査を受けるパチンコ機1にのみ実装され、一般に市販されるパチンコ機1には実装されない。この場合も、一般に市販されるパチンコ機1からは、検査用信号が出力されない。
このように、パチンコ機1の検査に用いる回路部品を検査用回路配置エリアに集約して配置することによって、市販用のパチンコ機1における部品の欠落を発見しやすく、不正のための付加部品の取り付けを発見しやすい。また、シリアル・パラレル変換回路1346及びインターフェイス回路1347を検査用端子1348の近くに配置でき、ノイズ耐性が高い主制御基板1310を構成できる。
さらに、図259に示すように、検査用回路配置エリアに配置される回路部品は、主制御基板1310の他の場所に配置される同種の回路部品と異なる向き(例えば、図示するように180度回転した方向)に配置するとよい。このように、検査用回路配置エリアと主制御基板1310の他の場所とで回路部品を異なる向きに配置することによって、通常遊技に用いる部品と検査用の部品を容易に区別できるようになり、市販されるパチンコ機1の製造工程において、検査用回路配置エリアに誤って部品を配置する誤実装を防止できる。
また、主制御基板1310上には、搭載されている回路部品の記号や番号(又はその組み合わせ)が例えばシルク印刷で表示されているが、検査用回路配置エリアに配置される回路部品の記号や番号は、遊技制御に使用される回路部品の記号や番号に後続する記号や番号で纏めて付けるとよい。例えば、遊技制御用の集積回路はIC1~IC11とし、検査用回路配置エリアに配置される集積回路はIC12以後の記号を付す。このようにすると、市販されるパチンコ機1に実装される遊技制御用の回路部品に飛びがない記号や番号を付すことができ、回路部品を主制御基板1310に搭載した後のチェックを簡易にできる。
さらに、検査用端子の記号や番号は、遊技制御用の部品と接続されるコネクタの記号や番号とは別系統にすると、遊技制御用の部品と接続されるコネクタと検査用端子とを容易に区別でき、ケーブルを誤って接続する誤配線を防止できる。特に、検査用端子の記号や番号を相手方の検査用装置の接続先の記号や番号と同じにすると、検査時のケーブルの接続に便利であり、接続ミスを低減できる。
また、主制御MPU1311の汎用ポートの一部は使用されていない空きポートとなっており、主制御MPU1311の隣接した端子に集約するように空きポートを配置するとよい。すなわち、未使用ポートのポート番号が連続かにかかわらず、空きポートの端子が集約した位置に配置されるとよい。空き端子を集約して配置することによって、主制御基板1310上のプリントパターンが設けられていない領域が集約されており、部品の欠落を発見しやすく、不正のための付加部品の取り付けを発見しやすくなっている。
また、空きポートの端子は、コネクタとの位置関係において、比較的大きな電流が流れる(例えば、ソレノイドが接続される)コネクタに近い位置に配置している。すなわち、主制御MPU1311の長手方向において、空きポートの端子がある側の左右(図では上下)に遊技制御用の信号を入出力するコネクタを配置している。このため、パチンコ機1に追加の機能を付加する場合に、長いパターンを引き回すことなく、主制御基板1310を容易に設計変更できる。
以上に説明したように、主制御基板1310内の信号伝送にシリアル通信を使用することによって、データバスの配線を減らすことができ、不正のための付加部品の取り付けを発見しやすくなる。すなわち、複数のパラレルインターフェイス回路に接続される多数本のデータバスがなくなり、制御線も含めて何本かの信号線になることによって、多数本のデータバスの回路パターンが複雑に配置された配線から、すっきりした回路パターンとなる。また、データ線の引き回し距離が短くなることによって、ノイズに強い主制御基板1310を構成できる。
また、データ線の数が減るので、データ線の引き回しに影響されずに回路を配置できることから、I/O用IC(パラレルインターフェイス回路、シリアルインターフェイス回路)を主制御MPU1311の近くに配置できる。
また、回路パターンが減少することによって、主制御基板1310の面積を変えずにグランドパターンを増やすことができ、よりノイズに強い主制御基板1310を構成できる。
図260は、主制御MPU1311におけるポートの配置を示す図である。
アドレスD2(チップセレクトSERS0)のパラレル出力ポートはシリアル・パラレル変換回路1343であり、図258に示すように、チャネルAの出力ポートPA0~PA3が機能表示ユニット1400のコモン側(LEDのアノード端子)に接続されており、出力ポートPA4~PA7がベース表示器1317のコモン側(7セグメントLEDのアノード端子)に接続されている。シリアル・パラレル変換回路1343のチャネルBの出力ポートPB0~PB7は使用されていない。
また、アドレスD3(チップセレクトSERS1)のパラレル出力ポートはシリアル・パラレル変換回路1342であり、図258に示すように、チャネルAの出力ポートPA0~PA7が機能表示ユニット1400のセグメント側(LEDのカソード端子)に接続されており、チャネルBの出力ポートPB0~PB7がベース表示器1317のセグメント側(7セグメントLEDのカソード端子)に接続されている。
LEDのコモン側(LEDのアノード端子)は一定周期(例えば、4ms毎の割り込み)でONにする出力ポートを切り替えている。チャネルAの出力ポートに注目した場合、タイマ割込み処理でPA0だけをON、次のタイマ割込み処理(4ms後)でPA1だけをON、・・・、次のタイマ割込み処理(4ms後)でPA7だけをONを一定周期(4ms×ポートの数)で繰り返している。すなわち、8ポートを繰り返して切り替える場合、各ポートは32ms毎にONになる。もしくは、チャネルAの出力ポートPA0~PA3とPA4~PA7をそれぞれグループとして、チャネルAの出力ポートに注目した場合、タイマ割込み処理でPA0とPA4だけをON、次のタイマ割り込み処理(4ms後)でPA1とPA5だけをON、・・・、次のタイマ割込み処理(4ms後)でPA3とPA7だけをONを一定周期(4ms×ポートの数)で繰り返してもよい。この一定周期の動作をシリアル通信とすることで、主制御MPU1311の動作タイミングの察知を困難にできる。
また、アドレスD5のパラレル入力ポートはパラレル・シリアル変換回路1341であり、入力PA1~PA7及びPB0~PB7に遊技球を検出するためのスイッチ(球検出センサ)が接続されている。これらの球検出センサの出力はシリアル信号として主制御MPU1311に入力され、アドレスD5の信号として読み取られる。
さらに、主制御MPU1311に備わる汎用入力ポートINP0~INP4には、設定キー971の操作情報、RAMクリアスイッチ954の操作情報、停電予告信号、主払ACK信号、枠開放検出スイッチの検出信号が入力されている。これらの信号はリアルタイム(プログラムが要求した時点)での監視が必要であったり、タイマ割込み処理外(例えば、電源投入直後)に監視が必要なため、パラレル・シリアル変換回路を介さずに主制御MPU1311に直接入力される。
さらに、主制御MPU1311に備わる汎用入出力ポート(入出力兼用)IOP0~IOP3には、電波検出センサの検出信号、振動検出センサの検出信号、磁気検出スイッチの検出信号、近接エラースイッチの検出信号が入力されている。これらの信号はパチンコ機1に異常(不正行為や故障など)が生じている時に出力される信号であり、リアルタイム(プログラムが要求した時点)での監視が必要なため、パラレル・シリアル変換回路を介さずに主制御MPU1311に直接入力されている。また、これらのセンサやスイッチの検出信号によって、メイン液晶表示装置1600や音声で異常が報知される。この異常報知によって、ホールの従業員がパチンコ機の状態を確認に来るので、実質的に遊技が停止することになる。この異常報知が誤報知であれば、遊技者に不快な思いをさせることから、誤検出を抑制する必要がある。このため、これらの信号を汎用入出力ポートに入力して、短時間で複数回検出して(いわゆる2度読みをして)ノイズの影響による誤検出を抑制するとよい。
この2度読みの処理は、1回のタイマ割込み処理において、読み込み命令を連続して実行して汎用入出力ポート(又は汎用入力ポート)に入力される信号レベルを短い時間間隔で判定したり、数個の命令を挟んだ複数の読み込み命令を実行して汎用入出力ポート(又は汎用入力ポート)に入力される信号レベルを短い時間間隔で判定したり、数クロックのウェイトを挟んだ複数の読み込み命令を実行して汎用入出力ポート(又は汎用入力ポート)に入力される信号レベルを短い時間間隔で判定することによって行われる。このため、パラレル・シリアル変換回路を介してポートのレベルを続けて判定する場合は数十マイクロ秒間隔でしかレベルを検出できないのに対し、汎用ポートのレベルを続けて判定する場合は1マイクロ秒以下の間隔でレベルを検出でき、信号レベルを短い周期で検出できる。
このように、本実施例のパチンコ機1では、チップセレクトを使用した拡張I/Oを使用せずに、リアルタイム性が必要な各種スイッチやセンサの信号を汎用入力ポート及び汎用出力ポートに直接入力でき、汎用入出力ポート(入出力兼用)に入力された信号のレベルをクロック毎にbit単位で取り込むので、シリアル信号の受信を待たずに信号レベルをリアルタイムで検出できる。
なお、汎用入出力ポート(入出力兼用)IOP4~IOP7は使用されていないが、パラレル・シリアル変換回路1341を介して入力される信号の一部を汎用入出力ポート(入出力兼用)IOP4~IOP7に入力してもよい。
また、図示を省略したが、主制御MPU1311は、汎用出力ポートを有してもよい。
なお、汎用入力ポートが空き端子である場合、抵抗を介して5Vへプルアップするか、GNDへプルダウンして、端子が中間電位になることを防止し、電源ラインに誘起されるノイズの影響を低減するとよい。また、汎用出力ポートが空き端子である場合、オープンとしてもよいが、ダミー抵抗を介して5Vへプルアップするか、GNDへプルダウンして、出力ポートのレベル変化がノイズとならないようにするとよい。
以上に説明したように、本実施例のパチンコ機1では、検査用信号は主制御MPU1311の汎用ポートから出力し、遊技制御に用いる信号はシリアル・パラレル変換回路を介して出力する。このため、入賞球検出信号は一つのポートに集約されて入力され、遊技制御プログラムで取り扱いやすくなる。
また、主制御MPU1311に入力される信号のうち、短時間で複数回検出する(いわゆる2度読みをする)必要がある信号を汎用ポートに入力し、2度読みする必要がない信号をシリアル・パラレル変換回路を介して主制御MPU1311に入力する。汎用ポートはリアルタイムに信号レベルを確認できるので、信号レベルを短時間に複数回検出して、ノイズによる影響を排除して判定ができる。汎用入力ポートが空いていれば、2度読みする必要がない信号が汎用ポートに入力されるように、ポートを割り当ててもよい。
汎用入力ポートには主制御MPU1311に入力される信号を割り当て可能であるが、汎用入出力ポート(入出力兼用)には主制御MPU1311に入力される信号と主制御MPU1311から出力される信号とのいずれも割り当て可能であるので、汎用入出力ポートは、仕様の変更に対する汎用性が高い。このため、新機能の追加のために予備として残しておくポートは汎用入出力ポート(入出力兼用)が望ましく、汎用入力ポートを優先して割り当てることが望ましい。
次に、図261を用いて、同期シリアル信号によるデータの出力と取り込みのタイミングを説明する。
主制御MPU1311が、チップセレクト端子SERS0から0(LOW)を出力すると、シリアル・パラレル変換回路1343が選択され、主制御MPU1311が、ベース表示器1317のコモン側の選択信号を出力する。図では、PA7~PA4においてPA7(COM4)が選択されている。その後、主制御MPU1311が、シリアル信号送信端子SERTXから機能表示ユニット1400のコモン側の選択信号を出力する。図では、PA3~PA0においてPA3(LED-C4)が選択されている。
シリアル・パラレル変換回路1343のBチャネルポートには出力が割り当てられていないので、本来PB7~PB0のデータ取り込みタイミングには何も出力せず、1(HIGH)を維持する。しかし、本実施例のパチンコ機では、主制御MPU1311から出力されるシリアル送信信号SERTXは、パラレル・シリアル変換回路1341のデータ取り込みタイミングを定めるCLR/LOAD端子に接続されており、この信号が0(LOW)のときにPA0からPB7からデータが取り込まれる。このため、PB7~PB0のいずれかのタイミングでシリアル送信信号SERTXを0(LOW)にして、パラレル・シリアル変換回路1341のPA0~PB7からデータを取り込む。
パラレル・シリアル変換回路1341は、データを取り込み、シリアル送信信号SERTXが1(HIGH)に立ち上がった後、クロック信号に従ってシリアル信号出力端子(Q8C)からシリアルデータを出力する。なお、この間、シリアル送信信号SERTXが1(HIGH)を維持して、新たなデータを取り込まないように制御する。
このように、本実施例のパチンコ機では、遊技球検出センサの出力を取り込むトリガに空いている出力ポートの送信信号を使用するので、任意のタイミングで球検出センサのデータを取り込むことができる。
次に、図262、図263を用いて、主制御基板ボックス1320における主制御基板1310の別の配置を説明する。
主制御基板1310は、再設計をせずに複数の機種で共通に使用することが望ましい。しかし、主制御基板1310の入出力信号は機種や仕様によって異なることがある。このため、本実施例では、機種によって異なる主制御基板1310の入出力インターフェイスを別基板(入出力基板1351)に実装し、各機種で共通となる主制御MPU1311の周辺は主制御基板1310に実装する構成とする。主制御基板1310を複数機種で共通にする、すなわち、基板サイズ、回路設計、プリント基板のアートワーク、部品配置などを同じにすることによって、性能(例えば、耐ノイズ性能)が評価されており設計品質が安定している主制御基板1310を再設計をせずに複数の機種で共通に使用できる。
また、主制御基板1310の入出力インターフェイスを別の入出力基板1351に実装する場合に、どこで回路を分けるかが問題となる。一つは、シリアル信号線で別ける方法であり、二つ目はシリアル信号を変換したパラレル信号で別ける方法である。前者の場合、後者より基板間の配線の数を減少でき望ましい。また、シリアル信号は、信号自体が取得されても、データが送信される順序を知ることが困難であり、どのタイミングでどのデータが送信されているかが不明である。さらに、シリアル信号用のクロックに同期した速度で出力され、この同期クロックは、主制御MPU1311の動作クロックと異なってもよく、変更可能である。このため、外部からデータレートを推測され難く、シリアル信号を取得しても、伝送されているデータの内容を知ることは困難である。このため、主制御基板1310と入出力基板1351との間はシリアル信号線で接続すると好ましい。
図262に示すように、主制御基板1310に附属する入出力基板1351が設けられ、主制御基板1310及び入出力基板1351は、主制御基板ボックス1320内に取り付けられる。主制御基板ボックス1320は、一度閉めたら破壊せずに開けることができない構造で封印可能に主制御基板1310及び入出力基板1351を収容する透明の樹脂によって構成される。入出力基板1351には、パラレル・シリアル変換回路1341及びシリアル・パラレル変換回路1345が設けられる。主制御基板1310と入出力基板1351(主制御MPU1311とパラレル・シリアル変換回路1341及びシリアル・パラレル変換回路1345)との間は、シリアル通信線で接続されており、パラレルバスや汎用ポートで接続するより少ない本数で基板間を接続できる。シリアル信号線は、電線で接続しても、基板間コネクタで接続してもよい。
また、基板間をシリアル通信にすれば、その信号を取得されても、データの解析が困難であることから、伝送されているデータの内容を不正行為者に知られる可能性を低減できる。また、遊技制御のための信号を入出力する入出力基板1351を主制御基板1310から分離して構成し、機種によって変わる入出力信号を入出力基板1351に設定するので、主制御基板1310を改造することなく適用できる機種が増え、主制御基板1310の汎用性を向上できる。
さらに、主制御基板1310及び入出力基板1351を一つの主制御基板ボックス1320内に収容することによってシリアル通信の信号線を短くできる。
また、他の機種に主制御基板1310を使用するときには、入出力基板1351を設計変更すればよく、主制御基板1310のコネクタと主制御MPU1311との関係は機種によって変わることがないので、パチンコ機の設計が容易になり、性能(例えば、耐ノイズ性能)が評価されており設計品質が安定している主制御基板1310を使用できる。また、入出力基板1351の大きさや取付穴の位置を変えなければ主制御基板ボックス1320を設計し直さなくても、従来の主制御基板ボックス1320を流用できる。また、機種毎に変化するノイズ対策は、主制御基板1310ではなく、入出力基板1351で行えばよい。
ベース表示器1317の駆動信号を出力するシリアル・パラレル変換回路1342、1343は、主制御基板1310上に配置するとよい。なお、ベース表示器1317を入出力基板1351上に配置する場合は、シリアル・パラレル変換回路1342、1343を入出力基板1351上に配置し、機能表示ユニット1400を駆動するための信号を入出力基板1351から出力するとよい。
また、検査用信号を生成するシリアル・パラレル変換回路1346は、主制御基板1310上に配置するとよい。すなわち、検査用回路配置エリア及び検査用端子1348は主制御基板1310に設けるちとよい。これは、検査用端子1348から出力される信号の一部は、主制御MPU1311からパラレルバスによって出力されることから、入出力基板1351上に検査用端子1348を配置すると主制御基板1310と入出力基板1351との間の接続線が増えるからである。
また、図263に示すように、主制御基板1310を主制御基板ボックス1320内に収容し、入出力基板1351を主制御基板ボックス1320の外に取り付けてもよい。
図263に示す形態では、主制御基板ボックス1320の外に入出力基板1351を設けるので、主制御基板ボックス1320の大きさが変わっても、主制御基板ボックス1320を共通で使用できる。また、入出力基板1351と主制御基板1310とを別な基板ボックスに収容するので、基板の配置の自由度が向上する。また、主制御基板1310が収容される主制御基板ボックス1320と入出力基板1351が収容される入出力基板ボックス1350を別体に設けると、各基板ボックスが小さくなり、基板設置位置が自由になる。さらに、主制御基板1310はベース表示器1317やエラーコードを表示するLEDや設定キー971が設けられているので、パチンコ機1の裏面側に表れている必要があるが、入出力基板1351はパチンコ機1の裏面側から視認できなくてもよいので、基板設置位置が自由になる。このように、図263に示す形態では、設計の自由度を向上できる。
なお、図263に示す形態では、主制御MPU1311から出力されるシリアル信号が主制御基板ボックス1320の外部に出力されることになる。主制御MPU1311は、シリアル信号の他にデータバスからデータを出力する。パチンコ機においては、不正行為者にパチンコ機の動作を察知されないようにするために、封印されている主制御基板ボックス1320の外部には主制御MPU1311から出力されるデータバスを出力しないのが望ましい。しかし、主制御MPU1311から出力されるシリアル信号は主制御基板ボックス1320の外部に出力されても、不正行為者にパチンコ機の動作状況を察知される可能性は低い。これは、データバスは主制御MPU1311の動作クロックに従ってデータが出力されて、データレートが一定であることから、外部からデータレートを推測されやすく、その結果、データバスで伝送される信号を取得されることがある。しかし、シリアル信号は、シリアル信号用のクロックに同期した速度で出力され、この同期クロックの速度は、主制御MPU1311の動作クロックと異なってもよく、変更可能である。このため、外部からデータレートを推測され難く、シリアル信号を取得しても、伝送されているデータの内容を知ることは困難である。
以上に、主制御基板1310と別体に入出力基板1351を設け、機種依存性がある信号の入出力機能を入出力基板1351に搭載する例を説明したが、他に主制御基板1310外に配置しても不正やノイズへの耐性が低下しない部分があれば、入出力基板1351に搭載してもよい。例えば、遊技盤5に取り付けられるソレノイドやモータなどの駆動電流を必要する信号の出力や、機能表示ユニット1400の駆動信号の出力や、各種センサ(入賞球検出、電波センサ、磁気センサ、振動センサ)の信号の入力は、入出力基板1351に搭載してもよい機能である。また、払出制御基板951との通信、外部端子板784から出力する信号の出力、停電検知、設定キー971の入力(設定キー971自体は主制御基板1310外に設けてもよい)、ベース表示器1317への出力は、主制御基板に1310に搭載するとよい機能である。
また、入出力基板1351に搭載されるパラレル・シリアル変換回路1341及びシリアル・パラレル変換回路1345は、空き入力端子にダミー信号(0V又は5V)を入力するか、空き出力端子にダミー抵抗を接続するとよい。これは、空き端子に何も接続しないと、ノイズを取り込んで、回路が誤動作することがあるからである。
特に、不正行為者が取得しようとする複数の信号のうち一部の信号をパラレルバスや汎用ポートで伝送し、他の信号をシリアル信号で伝送すると、シリアル信号の解析が困難であることから、不正行為者は主制御基板1310と入出力基板1351とを含む複数箇所から信号を取得する必要があり、不正に対する抑止力を高められる。
[15.スロットマシン]
ここまでパチンコ機のROMに記憶されるプログラム及びデータの配置について説明したが、続いて、スロットマシン(回胴式遊技機)のRAM及びROMに記憶されるプログラム及びデータの配置について説明する。なお、パチンコ機については、図26にて概略を説明したが、以降説明するスロットマシン4000の場合と同様にRAM及びROMにプログラム及びデータが配置されている。
[15-1.構造]
まず、本実施形態におけるスロットマシン4000の構造について説明する。図264は、スロットマシン4000の斜視図であり、図265は、前面部材4200を開いた状態のスロットマシン4000の斜視図である。
図264及び図265に示すように、本実施形態のスロットマシン4000は、前面が開放した箱形の筐体4100の内部に各種の機器が設けられるとともに、この筐体4100の前面に、前面部材4200が片開き形式に開閉可能に設けられている。前面部材4200の上部には、遊技の進行状況に応じて表示による演出や情報表示を行う画像表示体4500、音による演出を行うスピーカ等が設けられている。画像表示体4500は、例えば液晶表示パネルで構成され、遊技に関する演出表示のほか、様々な情報を表示する。そして、画像表示体4500における各種演出表示や履歴情報表示は、演出制御基板4700によって制御される。すなわち、画像表示体4500が、ゲームの進行に応じた演出を表示することが可能な演出表示手段をなし、演出制御基板4700が、演出表示手段の表示制御を行うことが可能な表示制御手段をなす。
前面部材4200の中央部には、後方を視認できないようにするとともに装飾のための絵柄等が描かれた前面パネルが配され、前面パネルの中央部には後方を視認可能な(例えば、透明の)図柄表示窓4401が形成されている。なお、前面パネルを表示装置で構成しても良く、図柄表示窓4401の部分に画像を表示しない状態ではリール4301を視認可能とし、主に図柄表示窓4401の周囲において遊技を演出する画像を表示する。この場合、図柄表示窓4401の部分に遊技を演出する画像を表示することも可能である。
図柄表示窓4401(窓部)を透して、筐体内に配設されたリール4301の回転により変動表示される図柄を視認可能となっている。リール4301は、円筒形の左リール4301a、中リール4301b、右リール4301cが水平方向に並設されて構成されている。これらのリール4301a,4301b,4301cの外周面には、長手方向に沿って複数の図柄が描画された短冊状のシートが巻き付けられることで、所定の配列に従って複数の図柄が配されている。
各リール4301a,4301b,4301cには、それぞれステッピングモータであるリール駆動モータ4341a,4341b,4341c(図266参照)が設けられており、各リール4301a,4301b,4301cを独立して回転駆動及び回転停止することが可能となっている。すなわち、リール駆動モータ4341a,4341b,4341cが各リール4301a,4301b,4301cの駆動源をなしている。さらに、リール駆動モータ4341a,4341b,4341cは、前述したパチンコ機1の払出モータ839と同様に、2相励磁方式によって制御することにより、駆動トルクと静止トルクとを大きくしている。これにより、駆動源に小型のモータを採用することが可能となり、コストを削減することができる。
なお、以下では必要に応じて、リール4301a,4301b,4301cをそれぞれ左リール4301a,中リール4301b,右リール4301cとする。そして、これに対応するそれぞれのリール停止ボタン4211a,4211b,4211cを左リール停止ボタン4211a,中リール停止ボタン4211b,右リール停止ボタン4211cとする。さらに、各リールに対応するリール駆動モータ4341を左リール駆動モータ4341a,中リール駆動モータ4341b,右リール駆動モータ4341cとする。
また、リール駆動モータ4341によりリール4301を回転させることによって、図柄表示窓4401から視認される複数種類の図柄を、例えば上から下へと循環するように変動させる(変動表示)。一方、リール4301が停止している状態では、各リール4301a,4301b,4301cについて、連続する所定数(例えば、3つ)の図柄、つまり3×3の計9つの図柄が図柄表示窓4401を介して視認可能となっている。すなわち、図柄表示窓4401を透して、ゲームの停止結果を導出表示するためのリール4301a,4301b,4301cの有効表示部を視認可能となっている。
図柄表示窓4401から視認される3×3の図柄行列に対しては、所定の有効化可能ラインが設定される。本実施形態では各リール4301a,4301b,4301c中段の図柄を横切るライン(中段ライン)、左リール4301a下段-中リール4301b中段-右リール4301c上段にかけて各リール4301a,4301b,4301cを斜めに横切るライン(右上がりライン)、左リール4301a上段-中リール4301b中段-右リール4301c下段にかけて各リール4301a,4301b,4301cを斜めに横切るライン(右下がりライン)が有効化可能ラインとなっている。そして、遊技者によるメダルの投入又はクレジットからの入力(以下「賭操作」という。)によって有効化可能ラインが有効化され、この有効ライン上に形成された図柄組合せ態様(出目)に基づいて入賞(役)の成立/不成立が判断される。
入賞が成立する場合には、有効ライン上に所定の図柄が3つ並ぶ場合の他、見た目上で他のラインで所定の図柄が3つ並ぶ場合もある。このようなラインとしては、各リール4301a,4301b,4301c上段の図柄を横切るライン(上段ライン)がある。なお、各リール4301a,4301b,4301c下段の図柄を横切るライン(下段ライン)や、上記以外の各リール4301a,4301b,4301cの図柄表示窓4401に臨む前面部(視認可能な部分)を横切るように位置する仮想的なラインに見た目上図柄が並ぶようにしても良い。以下、有効化可能ライン(中段、右上がり、右下がりライン)や、入賞時に見た目上図柄が整列可能なライン(上段ライン)、その他のライン(下段ライン等)をまとめて図柄停止ライン(図柄整列ライン)と称する。
上段、中段、下段、右上がり及び右下がりラインを有効化可能ラインとして、賭数に応じて所定の有効化可能ラインを有効化し、この有効ライン上に形成された図柄組合せ態様に基づいて入賞(役)の成立/不成立を判断する。例えば、賭数1では中段ラインを有効ラインとし、賭数2では中段ラインに加え、上下段ラインを有効ラインとし、賭数3では上中下段ラインに加え、右上がり、右下がりラインを有効ラインとする。また、賭数には無関係に(賭数が1または2であっても)すべてのラインを有効としてもよいし、3枚がけ専用としてもよい。
図柄表示窓4401の周辺(例えば、下方)には、ゲームによって払い出されるメダルの枚数を表示する払出枚数表示LED4562が設けられる。スロットマシン4000内に貯留されたメダルの枚数を表示するクレジット表示器や、特賞中の残りのゲーム数を表示するカウント表示器が設けられてもよい。
図柄表示窓4401の下方には、前側に突出する段部が形成されており、この段部の上面は前面側下方に向かって傾斜する操作部4202となっている。操作部4202には、メダル投入口4203と、ゲームを進行させるための進行操作部としての1枚投入ボタン4205、マックスベットボタン4206が設けられている。
メダル投入口4203は、操作部4202における当該スロットマシン4000の前面側から見て右側に配設されている。遊技者がこのメダル投入口4203にメダルを投入して賭操作を行うことにより、ゲームが実行可能となる。メダル投入口4203から投入されたメダルが通過する経路には、メダルの通過を検出する投入センサ4207bが設けられており、投入センサ4207bによる検出情報をもとにメダルの投入枚数がカウントされる。
1枚投入ボタン4205及びマックスベットボタン4206は、操作部4202における当該スロットマシン4000の前面側から見て左側に配設されている。1枚投入ボタン4205は、押圧操作を一度行うことでクレジットから1枚ずつ入力できる。マックスベットボタン4206は、押圧操作を一度行うことでクレジットから賭数の上限数(例えば、3枚)まで入力できるが、クレジット数が上限数に満たない場合にはクレジット数を賭数として入力するようになっている。
操作部4202の下方には、払戻ボタン4209、始動レバー4210、返却ボタン4208、リール停止ボタン4211、鍵装置4215等が設けられている。払戻ボタン4209は、メダル投入口4203から投入されたメダルや1枚投入ボタン4205、マックスベットボタン4206により賭数として入力されたメダル(賭メダル)又は入賞が成立することにより払い出されクレジットとして記憶されているメダル(貯留メダル)をメダル用受け皿4201に返却させる指令を与える際に用いられる。なお、再遊技入賞(リプレイ入賞)の成立に基づく自動賭操作の後にメダル投入口4203からメダルが投入された場合や、クレジットとして記憶可能な所定数を超えるメダルもメダルセレクタ4207を介してメダル用受け皿4201に返却される。
始動レバー4210は、一区切りのゲームを開始させるための操作レバーである。鍵装置4215は、前面部材4200を開く際、或いは当該スロットマシン4000のエラー(例えば、ホッパーエラー)状態をリセットする際に鍵を差し込むためのものである。返却ボタン4208は、メダル投入口4203から投入されてメダルセレクタ4207の内部に詰まったメダルをメダル用受け皿4201に返却させる際に用いられる。
リール停止ボタン4211は、左リール4301a、中リール4301b及び右リール4301cとそれぞれ1対1で対応付けられて設けられた、左リール停止ボタン4211a、中リール停止ボタン4211b及び右リール停止ボタン4211cで構成され、停止操作に応じて対応するリール4301a,4301b,4301cの回転をそれぞれ停止させるためのものである。
また、これらの操作ボタン類が設けられた部分の下方には、前面部材4200の下部領域を構成する装飾板(化粧パネル)が設けられている。さらに、装飾板の下方であって前面部材4200の最下部には、メダルを貯留するためのメダル用受け皿4201、メダル払出口、音声を出力するためのスピーカ4512等が設けられている。
筐体内部の上部には、スロットマシン4000全体を制御するメイン基板(遊技制御装置)4600(図266参照)が配設されている。メイン基板4600上には役物比率表示器1317及び表示スイッチ1318が設けられる。役物比率表示器1317は、前述したパチンコ機と同様に、例えば、4桁の7セグメントLEDによって構成される。メイン基板4600上に設けられた液晶表示装置によって役物比率表示器1317を構成してもよい。
役物比率表示器1317を、メイン基板4600上に設けず、スロットマシン4000の正面に設けられた他の表示器(例えば、払出枚数表示LED4562や画像表示体4500)と兼用し、払出枚数表示LED4562や画像表示体4500に役物比率を表示してもよい。
表示スイッチ1318を操作すると、役物比率表示器1317に役物比率を表示する。表示スイッチ1318の近傍のプリント基板上又は筐体4100に、役物比率の表示を操作するためのスイッチであることを表示(印刷、刻印、シールなど)するとよい。なお、表示スイッチ1318は、役物比率表示器1317の付近に設けることが望ましいが、主制御ユニット1300ではなくても、操作が容易な場所であれば、他の基板(例えば、演出制御基板4700、電源装置4112)や筐体4100や前面部材4200に設けられてもよい。また、後述するように、表示スイッチ1318はRAMクリアスイッチと兼用してもよい。表示スイッチ1318を遊技者が操作できない位置に設けることで、遊技者が誤って操作することを防止できる。
また、筐体内部のほぼ中央には、図柄変動表示装置4300が設けられ、回転可能なリール4301a,4301b,4301cが載置されている。また、当該スロットマシン4000の筐体内部にはメイン基板4600から外部の装置へ信号を出力するための外部中継端子板4131が設けられている。
さらに、筐体内部の下部には、メダル払出装置(ホッパー)4110が配設されている。メダル払出装置4110は、メダル投入口4203から投入されてメダルセレクタ4207により誘導されたメダルを受け入れて貯留するとともに、有効ライン上に所定の図柄組合せ態様が形成され入賞が成立した場合に、この入賞に対応する枚数のメダル(払出メダル)又は入賞成立に伴う加算によりクレジットの上限を超えた分のメダルをメダル用受け皿4201に払い出す。クレジット分のメダルは払戻ボタン4209を操作することによりメダル払出装置4110によってメダル用受け皿4201に払い出される。また、メダル払出装置4110の右方には、メダル払出装置4110からオーバーフローして流入してくるメダルを貯留したり、流入してきたメダルを当該スロットマシン4000が設置される設置島のメダル回収機構へ誘導したりするためのオーバーフロータンクが設けられている。
[15-2.スロットマシンの内部構成]
図266は、スロットマシン4000に備えられた各種の機構要素や電子機器類、操作部材等の構成を示すブロック図である。スロットマシン4000は遊技の進行を統括的に制御するためのメイン基板4600を有しており、メイン基板4600にはCPU4601をはじめ、ROM4602、RAM4603、入出力インターフェイス4604等が実装されている。
また、前述したように、メイン基板4600には、CPU4601が計算した役物比率を表示する役物比率表示器1317及び役物比率表示器1317の表示を切り替える表示スイッチ1318が設けられる。表示スイッチ1318は、モーメンタリ動作をする押ボタンスイッチで構成するとよいが、他の形式のスイッチでもよい。表示スイッチ1318を操作すると、役物比率表示器1317に役物比率を表示してもよい。
前述した1枚投入ボタン4205、マックスベットボタン4206、始動レバー4210、リール停止ボタン4211a,4211b,4211c、払戻ボタン4209等はいずれもメイン基板4600に接続されており、これら操作ボタン類は図示しないセンサを用いて遊技者による操作をし、検出された操作信号をメイン基板4600に出力する。具体的には、始動レバー4210が操作されると前述した図柄変動表示装置4300を始動させる(リール4301a,4301b,4301cの回転を開始させる)操作信号がメイン基板4600に出力され、リール停止ボタン4211a,4211b,4211cが操作されると、リール4301a,4301b,4301cをそれぞれ停止させる操作信号がメイン基板4600に出力される。
また、スロットマシン4000にはメイン基板4600とともにその他の機器類が収容されており、これら機器類からメイン基板4600に各種の信号が入力されている。機器類には、図柄変動表示装置4300のほか、メダル払出装置4110等がある。
図柄変動表示装置4300は、前述のように、リール4301a,4301b,4301cをそれぞれ回転させるためのリール駆動モータ4341a,4341b,4341cを備えている(左リール駆動モータ4341a、中リール駆動モータ4341b、右リール駆動モータ4341c)。リール駆動モータ4341はステッピングモータからなり、それぞれのリール4301a,4301b,4301cは独立して回転、停止することが可能となっており、その回転時には図柄表示窓4401にて複数種類の図柄が上から下へ連続的に変化しつつ表示される。
また、各リール4301a,4301b,4301cの回転に関する基準位置を検出するための位置センサ4331a,4331b,4331cを有しており、各リール4301a,4301b,4301cにはそれぞれ位置センサ4331a,4331b,4331cがリール内に対応して設けられている(左リール位置センサ4331a、中リール位置センサ4331b、右リール位置センサ4331c)。これら位置センサからの検出信号(インデックス信号)がメイン基板4600に入力されることで、メイン基板4600では各リールの停止位置情報を得ることができる。
メダルセレクタ4207内には、前述したソレノイド4207aや投入センサ4207bが設置されている。投入センサ4207bは、メダル投入口4203から投入されたメダルを検出し、メダルの検出信号をメイン基板4600に出力する。ソレノイド4207aがOFFの状態のとき、投入されたメダルは投入センサ4207bで検出される。逆にソレノイド4207aがONの状態のときは、メダルセレクタ4207内で投入センサ4207bに到達する通路がロックアウトされてメダルの投入が受け付けられなくなり、遊技者がメダルを投入しても、メダルセレクタ4207を通って返却樋に流れたメダルはメダル用受け皿4201に戻る。このとき合わせて投入センサ4207bの機能が無効化されるので、メダル投入によるベット又はメダルの貯留のいずれも行われなくなる。
メダル払出装置4110は、払い出されたメダルを1枚ずつ検出する払出センサ4110eを放出口内に有しており、払出センサ4110eからメダル1枚ごとの払出メダル信号がメイン基板4600に入力されている。また、遊技メダル用補助収納箱にはメダル満タンセンサ4111aが設けられており、内部に貯留されたメダルの貯留数が所定数量を超えた場合、メダルが所定数量を超えた検出信号をメイン基板4600に出力する。このとき、画像表示体4500、エラーランプ4554等によりメダル貯留の異常を知らせるエラー表示が行われ、遊技者やホール従業員等に異常が発生したことが報知される。
一方、メイン基板4600からは、図柄変動表示装置4300やメダル払出装置4110に対して制御信号が出力される。すなわち、前述した各リール駆動モータ4341a,4341b,4341cの起動及び停止を制御するための駆動パルス信号がメイン基板4600から出力される。また、メダル払出装置4110には、有効ライン上に停止した図柄の組合せの種類に応じてメイン基板4600から駆動信号が入力され、これを受けてメダル払出装置4110はメダルの払い出し動作を行う。このとき、メダル払出装置4110内に払い出しに必要な枚数のメダルが不足しているか、あるいはメダルが全く無い状態であった場合、払出センサ4110eによる枚数検出が滞ることとなる。そして所定時間(例えば3秒間)が経過すると、払出センサ4110eより払い出しメダルの異常信号がメイン基板4600へ出力され、これを受けてメイン基板4600は、メダルの払い出しに異常が発生したことを知らせる内容をエラーランプ4554や画像表示体4500等に表示させて遊技者やホール従業員等に異常が発生したことを報知する。
スロットマシン4000は、メイン基板4600の他に演出制御基板4700を備えており、この演出制御基板4700にはCPU4701やROM4702、RAM4703、入出力インターフェイス4707、VDP(Video Display Processor)4704、AMP(オーディオアンプ)4705、音源IC4706等が実装されている。演出制御基板4700はメイン基板4600から各種の指令信号を受け、画像表示体4500の表示や照明装置4502等の発光(または点灯、点滅、消灯等)及びスピーカ4512の作動を制御している。
さらに、外部中継端子板4131を設け、スロットマシン4000は外部中継端子板4131を介して遊技場のホールコンピュータ4800に接続される。外部中継端子板4131はメイン基板4600から送信される各種信号(投入メダル信号や払出メダル信号、遊技ステータス等)をホールコンピュータ4800に中継する役割を担っている。
電源装置4112は、島設備から供給される交流24ボルト(AC24V)の電源から、複数種類の直流電源を作成する。例えば、直流+5V(以下、「+5V」)、直流+12V(以下、「+12V」)、及び直流+24V(以下、「+24V」)の3種類の電源が作成される。電源装置4112で作成された+5V、+12V、及び+24Vの3種類の電源は、スロットマシン4000に含まれる各構成に供給され、例えば、+5V及び+12Vの2種類の電源がリール4301及びリール駆動モータ4341を備える図柄変動表示装置4300に供給される。
その他、電源装置4112には、設定変更キースイッチ4112tやリセットスイッチ4112u、電源スイッチ4112v等が付属している。これらスイッチ類はいずれもスロットマシン4000の外側に露出しておらず、前面部材4200を開けることではじめて操作可能となる。電源スイッチ4112vは、スロットマシン4000への電力供給をON-OFFするためのものであり、設定変更キースイッチ4112tはスロットマシン4000の設定(例えば設定1~6)を変更するためのものである。また、リセットスイッチ4112uはスロットマシン4000で発生したエラーを解除するためのものであり、更には設定変更キースイッチ4112tとともに設定を変更する際にも操作される。
また、メイン基板4600には、リール駆動モータ電圧切替回路4605を設けられている。リール駆動モータ4341の出力軸を回転駆動してリール4301を回転させるための駆動トルクを得る場合には、CPU4601が電圧切替信号の論理(例えば、HI)に設定してリール駆動モータ電圧切替回路4605に出力することでモータ駆動電圧として+12Vをリール駆動モータ4341に供給する制御を行う。一方、リール駆動モータ4341の出力軸を停止させた状態を維持するための静止トルクを得る場合には、CPU4601が電圧切替信号の論理(例えば、LOW)に設定してリール駆動モータ電圧切替回路4605に出力することでモータ駆動電圧として+5Vをリール駆動モータ4341に供給する制御を行うようになっている。
以上がスロットマシン4000の構成例である。スロットマシン4000によるゲームは、遊技者がメダルの掛け数を決定した状態で始動レバー4210を操作すると各リール4301a,4301b,4301cが回転し、この後、遊技者がリール停止ボタン4211a,4211b,4211cを操作すると、対応する各リール4301a,4301b,4301cが停止制御され、そして、全てのリール4301a,4301b,4301cが停止すると、有効ライン上での図柄の組合せ態様からゲーム結果を判断し、必要に応じて該当する当選役に対応する規定数のメダルが付与される。
前述したとおり、各リール4301a,4301b,4301cには、それぞれ図柄が描かれたリール帯が付されている。そして、全てのリール4301a,4301b,4301cを停止させた際に図柄表示窓4401内に表示される表示内容(有効ライン上に表示された図柄の組合せ態様)から所定の当選役に対応する図柄の組合せ態様(図柄組合せ)が表示されたか否かが判断される。具体的には、図柄表示窓4401内で前述の有効ラインに所定の当選役に対応する図柄の組合せ態様が表示されているか否かが判断される。なお、複数の有効ラインの各々で当選役に対応する図柄組合せが表示されているか否かが判断される。その結果、複数の当選役の図柄組合せが表示されていると判断された場合には、表示された各当選役に対応する払出数を合算した数量のメダルの払い出しが行われる。
[15-3.記憶領域の構成]
続いて、メイン基板4600に備えられたROM4602及びRAM4603などによって提供される記憶領域について説明する。なお、パチンコ機の記憶領域については、図24にて概略を説明したが、図267から図270に示したスロットマシン4000の場合と同様に構成されている。図267は、本実施形態におけるスロットマシン4000の遊技制御におけるアクセス領域と、ROM4602に対応する記憶領域であるROM領域4910の詳細を示す図である。
本実施形態における記憶領域は、ROM4602、RAM4603などの媒体によって提供されており、”0000H”から”FFFFH”までのアドレスが付与された一のアクセス領域として提供されている。また、本実施形態のアクセス領域は、当該アクセス領域を提供する媒体に対応した所定の領域に分割されており、ROM領域4910、RAM領域4920、I/O領域4930、パラメータ情報設定領域4940が含まれている。なお、各領域は、必ずしもアクセス領域を提供する媒体に対応する必要はなく、複数の媒体で一の領域を提供してもよいし、一の媒体で複数の領域を提供してもよい。
本実施形態のアクセス領域が以上のように構成されていることによって、CPU4601がアドレスを指定することで実際にアクセス領域を提供する媒体を意識せずにプログラムやデータにアクセスすることができる。以下、アクセス領域の詳細について説明する。
[15-3-1.ROM領域]
まず、ROM領域4910の構成について説明する。ROM領域4910は、ROM4602によって提供される記憶領域に対応する。ROM4602はパチンコ機1の電源が切断された場合であっても記憶内容が保持される不揮発性の記憶媒体であり、記憶されたデータを読み出すことは可能であるが、更新したり削除したりすることはできないようになっている。なお、ROM4602は不揮発性の記憶媒体であれば良く、ROM領域4910に記憶されるデータを更新可能としてもよい。
ROM領域4910は、”0000H”から”1FFFH”までのアドレスが付与されている。CPU4601がアドレス”0000H”から”1FFFH”を指定することでROM4602に記憶されたデータにアクセスすることができる。
ROM領域4910は、第一制御領域、第一隔離領域、第一データ領域、第二制御領域、第二隔離領域、第二データ領域、第三制御領域、第三隔離領域及び第四隔離領域が含まれる。各領域には、開始アドレスと終了アドレスが設定されている。
第一制御領域は、遊技制御領域であり、遊技制御を行うためのプログラムなどが記憶されている。また、第一データ領域は、遊技制御を行うために必要なデータが記憶されている遊技データ領域である。すなわち、第一制御領域に記憶されたプログラムを実行し、第一データ領域に記憶されたデータを参照しながら遊技制御を行う。なお、遊技制御に使用される領域(第一制御領域、第一データ領域)を遊技制御用領域(第一記憶領域)とする。
第二制御領域は、制御プログラムのデバッグ(機能検査)を行うためのプログラムなどが記憶されている。また、第二データ領域は、デバッグ(機能検査)を行うためのデータを記憶するための領域である。なお、第二データ領域は必ずしも必要ではなく、第二制御領域にデバッグ用のデータを格納するようにしてもよい。なお、遊技制御に使用されずに遊技制御プログラムのデバッグ(機能検査)を行うためのプログラムやデータが格納される領域(第二制御領域、第二データ領域)をデバッグ(検査機能)用領域(第二記憶領域)とする。
第三制御領域は、役物比率を算出及び表示するためのプログラムなどが記憶されている。第三制御領域には、役物比率算出用のデータも格納される。役物比率算出用のデータを格納する第三データ領域を設けてもよい。なお、遊技制御に使用されずに役物比率を算出するためのプログラムやデータが格納される領域(第三制御領域)を役物比率算出用領域(第三記憶領域)とする。このように、役物比率算出・表示用コード13135を遊技制御用コード13131と別に設計し、別の領域に格納することによって、役物比率算出・表示用コード13135の検査と遊技制御用コード13131の検査とを別に行うことができ、スロットマシン4000の検査の手間を減少できる。また、役物比率算出・表示用コード13135を、機種に依存せず、複数の機種で共通に使用できる。
第一隔離領域、第二隔離領域、第三隔離領域及び第四隔離領域は、制御領域及びデータ領域の間に割り当てられた領域であり、アクセスが禁止された領域である。CPU4601による処理において、隔離領域にアクセスされた場合には、強制的にリセット処理を実行するように構成されている。第一隔離領域、第二隔離領域第三隔離領域及び第四隔離領域は、前後の領域と連続する領域であり、例えば、第一隔離領域の開始アドレスは、第一制御領域の終了アドレスの次のアドレス(”0A00H”)となり、第一隔離領域の終了アドレスは、第一データ領域の一つ前のアドレス(”0AFFH”)となる。また、第三隔離領域は、遊技制御用領域及びデバッグ(機能検査)用領域の間に配置されており、図30では遊技制御用領域として扱うようにしているが、デバッグ(機能検査)用領域として扱うようにしてもよい。同様に、第四隔離領域は、デバッグ(機能検査)用領域及び役物比率算出用領域の間に配置されており、図267ではデバッグ(機能検査)用領域として扱うようにしているが、役物比率算出用領域として扱うようにしてもよい。
[15-3-2.RAM領域]
続いて、RAM領域4920の構成について説明する。図268は、本実施形態におけるRAM領域4920の詳細を示す図である。RAM領域4920は、RAM4603によって提供される記憶領域に対応する。RAM4603はパチンコ機1の電源を切断すると、記憶内容が消去される揮発性の記憶媒体であり、記憶されたデータの読み書きが可能となっている。RAM領域4920は、ROM領域4910に記憶されたプログラムやデータを一時的に記憶したり、プログラムの実行によって導出されたデータを記憶する。なお、RAM4603はデータが読み書き可能であればよく、不揮発性の記憶媒体であってもよい。また、停電発生時には、バックアップ電源によってRAM4603に記憶されたデータは所定期間保持することが可能となっている。
RAM領域4920は、”3000H”から”31FFH”までのアドレスが付与されている。CPU4601がアドレス”3000H”から”31FFH”を指定することでRAM4603に記憶されたデータにアクセスすることができる。
RAM領域4920は、遊技制御用ワーク領域、デバッグ(検査機能)用ワーク領域、退避領域及び隔離領域を含む。各領域には、開始アドレスと終了アドレスが設定されている。
遊技制御用ワーク領域は、遊技制御(第一制御)を実行する際に使用するワークエリア(一時領域)である。デバッグ(検査機能)用ワーク領域は、プログラムのデバッグ制御(第二制御)を実行する際に使用するワークエリアである。役物比率算出用ワーク領域は、役物比率を算出するためのデータや算出された役物比率(役物比率、連続役物比率、有利区間役物比率など)を格納する領域である。なお、デバッグ(検査機能)用ワーク領域や役物比率算出用ワーク領域は、必ずしも専用のワークエリアを確保する必要はなく、遊技制御用ワーク領域を使用するようにしてもよいし、遊技制御用ワーク領域に、デバッグ(検査機能)用ワーク領域や役物比率算出用ワーク領域を割り当ててもよい。この場合、遊技制御領域とデバッグ(検査機能)用制御領域と役物比率算出用ワーク領域との独立性は低下することになる。ただし、デバッグ(検査機能)用ワーク領域や役物比率算出用ワーク領域を使用しないようなプログラム構成とすれば必ずしもデバッグ(検査機能)用ワーク領域や役物比率算出用ワーク領域を使用しなくてもよい。
退避領域は、遊技制御またはデバック(検査機能)制御または役物比率算出において使用されるデータを退避させるために一時的に記憶する領域である。例えば、割り込みが発生して所定の処理を実行する場合に、当該所定の処理を実行する前にCPUの各種レジスタ(演算用レジスタ、フラグレジスタ、スタックポインタ等)の値を退避領域にコピーし、処理終了後にコピーされた値をCPUの各種レジスタに戻す。なお、退避領域は、遊技制御とデバック(検査機能)と役物比率算出とで共通に使用してもよいが、ワーク領域と同様に、遊技制御用とデバック(検査機能)用と役物比率算出とで個別に分けてもよい。それにより、遊技制御とデバック(検査機能)制御と役物比率算出とで、より独立性を保つことができる。
隔離領域は、遊技制御用ワーク領域とデバッグ(検査機能)用ワーク領域と役物比率算出用ワーク領域との間、デバッグ(検査機能)用ワーク領域と退避領域と役物比率算出用退避領域との間に割り当てられており、各領域(前後の領域)と連続する領域となっている。例えば、遊技制御用ワーク領域とデバッグ(検査機能)用ワーク領域との間の隔離領域の開始アドレスは、遊技制御用ワーク領域の終了アドレスの次のアドレス(”3076H”)となり、終了アドレスは、デバッグ(検査機能)用ワーク領域の一つ前のアドレス(”307FH”)となる。また、隔離領域は、アクセスが禁止された領域となっており、CPU4601による処理においてアクセスされた場合には、強制的にリセット処理を実行するように構成されている。
図268は、その右側に役物比率算出用ワーク領域の詳細を示す。役物比率算出用ワーク領域は、役物比率の算出結果が格納されるメイン領域の他、メイン領域に格納されたデータの複製が格納されるバックアップ領域1及びバックアップ領域2とを設けてもよい。バックアップ領域は一つでも複数でもよい。各領域には、データの誤りを検出するためのチェックコードが付加される。チェックコードは、各領域のデータのチェックサムでも予め定めた値でもよい。チェックコードは、スロットマシン4000の電源投入時に初期化処理で設定したり、役物比率算出・表示処理においてメイン領域のデータが更新される毎に設定したり、初期化処理(図271のステップS1020)において設定してもよい。特に、チェックコードが固定値である場合、初期化処理で正常と判定した又はデータを消去した際にチェックコードを初期化し、初期化処理(図271のステップS1020)において固定値をセットしてもよい。チェックコードは、電断フラグと兼用してもよい。すなわち、メイン領域のチェックコードに所定値が設定されていれば、電断フラグが設定されていると判定してもよい。また、電断フラグに所定値が設定されていれば、各領域のチェックコードが正しい値である(すなわち、各領域のデータが正常である)と判定してもよい。
なお、初期化処理(図271のステップS1020)において、バックアップ領域のデータが正常か否かが判定され、正常であると判定されたバックアップ領域のデータをメイン領域に複製するとよい。また、電源遮断時に実行される電源断時処理において、メイン領域の値を各バックアップ領域に複製してもよい。
メイン領域とバックアップ領域1との間、及びバックアップ領域1とバックアップ領域2との間には、未使用空間が設けられる。各領域の間に未使用空間を設けることによって、各領域のアドレスを遠ざけることができ、アドレスの上位桁で各領域を区別できる。
図269は、役物比率算出用ワーク領域における各データを格納するためのワークエリアの具体的な構造を示す図である。
図269(A)は、最も簡単な方法のワークエリアの構造を示す。図269(A)に示すワークエリアの構造では、役物払出数、連続役物払出数、総払出数、役物比率、連続役物比率、有利区間遊技数、非有利区間遊技数及び有利区間割合を格納する。役物払出数は、役物作動中(例えば、レギュラーボーナス中)に払い出されるメダルの数である。連続役物獲得球数は、連続役物作動中(例えば、ビッグボーナス中)に払い出されるメダルの数である。総払出数は、ゲームによって払い出された全てのメダルの数である。役物比率は、役物払出数÷総払出数で計算できる。連続役物比率は、連続役物払出数÷総獲払出数で計算できる。有利区間遊技数は、遊技者に有利な遊技状態(例えば、ART(アシスト・リプレイ・タイム)などの手持ちのメダルが減りにくい遊技状態)で実行されたゲーム数であり、非有利区間遊技数は、有利区間以外の遊技状態で実行されたゲーム数である。有利区間割合は、有利区間遊技数÷(有利区間遊技数+非有利区間遊技数)で計算できる。
図269(A)に示すワークエリアの構造のうち、役物払出数、連続役物払出数、総払出数、有利区間遊技数及び非有利区間遊技数は、後述する図269(B)の総累計に相当し、各々3又は4バイトの記憶領域であり、10進数で16777215又は4294967295までの数値を記憶できる。これらのデータはデータに異常が生じない限り消去されないことから、長期間のデータを格納できるように大きな記憶領域を用意している。また、役物比率、連続役物比率及び有利区間割合は、1バイトの記憶領域であり、10進数で255までの数値を記憶できる。
役物払出数、連続役物払出数、総払出数、有利区間遊技数、及び非有利区間遊技数は、役物比率算出用領域更新処理(図271のステップS1038)で更新され、役物比率、連続役物比率、及び有利区間割合は、役物比率算出・表示処理(図272のステップS1119)で計算され、格納される。
図269(B)は、リングバッファを用いたワークエリアの構造を示す。図269(B)に示すワークエリアの構造では、再遊技回数、入賞払出数、役物払出数、連続役物払出数、遊技回数、役物比率、連続役物比率、有利区間遊技数、非有利区間遊技数及び有利区間割合を格納する。また、各データの記憶領域は、所定数のゲーム毎にn個の記憶領域(例えば、400ゲーム毎に15個の記憶領域)を持つリングバッファによって構成されており、実行されたゲーム数が所定数(400回)になると全てのデータの書き込みポインタが移動して、データが更新される記憶領域が変わる。そして、n番目の記憶領域に所定数の遊技回数のデータが格納された後、書き込みポインタは1番目の記憶領域に移動し、1番目の記憶領域にデータを格納する。
なお、リングバッファの書き込みポインタ及び読み出しポインタは全てのデータに共通であり、所定の賞球数毎に全てのデータの書き込みポインタが移動する。また、書き込みポインタの移動に伴い、読み出しポインタも移動する。読み出しポインタは、書き込みポインタより一つ遅れた記憶領域を指す。これは400ゲーム分のデータを用いて役物比率を計算するためである。
各データの累計は、リングバッファのn個の記憶領域に格納されているデータの累計値であり、役物比率、連続役物比率の累計の値は各データの累計値から算出された値であり、リングバッファが一巡して、新たなデータを書き込むためにリングバッファの一つの記憶領域にクリアされると、当該クリアされた領域のデータを除外して累計値が計算される。各データの総累計は、過去に収集したデータの累計値であり、役物比率、連続役物比率の累計の値は各データの累計値から算出された値であり、リングバッファが一巡して、新たなデータを書き込むためにリングバッファの一つの記憶領域にクリアされても、当該クリアされた領域のデータを含めて総累計値が計算される。
図269(B)に示すワークエリアの構造のうち、リングバッファ内の再遊技回数、入賞払出数、役物払出数、連続役物払出数及び遊技回数は、各々2バイトの記憶領域であり、10進数で65535までの数値を記憶できる。再遊技回数、入賞払出数、役物払出数、連続役物払出数及び遊技回数の累計は、各々3バイトの記憶領域であり、10進数で16777215までの数値を記憶できる。累計は例えば400ゲーム×n(n=15の場合は6000ゲーム)分のデータの合計であることから、大きな記憶領域を用意している。再遊技回数、入賞払出数、役物払出数、連続役物払出数及び遊技回数の総累計は、各々3又は4バイトの記憶領域であり、10進数で16777215又は4294967295までの数値を記憶できる。総累計はデータに異常が生じない限り消去されないことから、長期間のデータを格納できるように、さらに大きな記憶領域を用意している。また、役物比率及び連続役物比率の累計及び総累計は、各々1バイトの記憶領域であり、10進数で255までの数値を記憶できる。有利区間遊技数及び非有利区間遊技数は、各々3バイトの記憶領域であり、10進数で16777215までの数値を記憶できる。有利区間割合は、1バイトの記憶領域であり、10進数で255までの数値を記憶できる。
なお、リングバッファを構成する各記憶領域に格納されるデータに対応するゲーム数を多くする(例えば、600ゲーム)にすることによって、時系列のデータを格納するための連続する記憶領域の数(n)を10に減らしても、累計で同じ6000ゲーム分のデータを格納できる。このため、リングバッファとして使用する記憶領域のサイズを小さくできる。
図269(B)に示すワークエリアの構造のうち、役物払出数、連続役物払出数、役物比率、連続役物比率、有利区間遊技数、非有利区間遊技数、有利区間割合は、図269(A)における説明と同じである。再遊技回数は、リプレイとなったゲームの数である。入賞払出数は、ゲームによって払い出された全てのメダルの数である。遊技回数は、実行されたゲームの回数であり、この値が所定数になると書き込みポインタが移動する。
再遊技回数、入賞払出数、役物払出数、連続役物払出数、総払出数、有利区間遊技数、及び非有利区間遊技数は、役物比率算出用領域更新処理(図271のステップS1038)で更新され、役物比率、連続役物比率、及び有利区間割合は、役物比率算出・表示処理(図272のステップS1119)で計算され、格納される。
図269(A)に示すデータ構造では、格納されている値が異常であると判定された場合に、初期化処理(図271のステップS1020)で役物比率算出用ワーク領域のデータが消去されるが、他の契機でデータは消去されない。このため、所定期間(例えば、1日、1週間、1月など)毎に役物比率算出用ワーク領域のデータを消去してもよい。同様に、図269(B)の総累計を所定期間毎に消去してもよい。
また、役物比率算出用ワーク領域のデータや、算出された役物比率が異常値である(例えば、役物比率が100%超、役物比率の算出結果が前回の算出値から大きく変化した、役物払出数>総払出数など)場合、当該異常値を消去してもよい。当該異常値だけでなく、役物比率算出用ワーク領域の全データを消去してもよい。また、役物比率算出用ワーク領域のデータや、算出された役物比率が異常値である場合、異常であることを報知してもよい。また、チェックコードを用いてバックアップ領域のデータを検査し、正常なバックアップ領域のデータをメイン領域に複製後に、再度役物比率を計算してもよい。
[15-3-3.I/O領域の構成]
続いて、I/O領域4930について説明する。I/O領域4930には入出力ポートが対応しており、CPU4601がI/O領域4930にアクセスすることによって各入出力ポートにアクセスすることができる。入出力ポートは、例えば、スイッチ等の入力に関するポートや、大入賞口ソレノイド、LED駆動信号等の出力に関するポートが該当する。入出力ポートの設定(入力設定や出力設定等の使用/未使用に関する設定)は、パラメータ情報設定領域4940の設定値に基づいて設定される。
[15-3-4.パラメータ情報設定領域]
続いて、パラメータ情報設定領域4940について説明する。図270は、本実施形態のパラメータ情報設定領域4940の詳細を示す図である。パラメータ情報設定領域4940は各種設定が可能な領域である。例えば、各種設定には、図270に示すように、各制御領域、データ領域の開始/終了アドレスが含まれる。なお、図270では、第三制御領域、役物比率算出用ワーク領域、役物比率算出用退避領域の各領域の開始アドレス及び終了アドレスの定義について図示を省略したが、第三制御領域開始設定及び第三制御領域終了設定は他の制御領域の開始及び終了設定と同様に定義され、役物比率算出用ワーク領域開始設定及び役物比率算出用ワーク領域終了設定は他のワーク領域の開始及び終了設定と同様に定義され、役物比率算出用退避領域開始設定及び役物比率算出用退避領域終了設定は他の退避領域の開始及び終了設定と同様に定義さる。ここで設定された領域以外の領域が未使用(未設定)領域とされる。これにより、未使用領域にCPU4601がアクセスした場合には、強制的にリセット信号がCPU4601に入力されるように構成している。なお、図270には連続した領域に設定しているが、設定領域として連続している必要はなく、例えば、パラメータをグループ化して所定間隔で配置してもよい。
また、本実施形態では、設定領域以外の領域(ROM4910の第一~四隔離領域、RAM4920の隔離領域)にアクセスした場合には、強制的にリセットを発生させる構成となっている。そこで、意図的に隔離領域にアクセスすることによってリセットが発生することでプログラムの初期起動を行うことが可能となる。スロットマシンではシーケンシャルに処理を実行するため、最後のゲーム処理が完了した後に隔離領域にアクセスすることによって起動処理からプログラムを実行させて再度初期設定を実行することができる。これにより、遊技中に初期設定の機能がノイズ等で設定値とは異なる値に設定されたとしても初期設定が再度実行されることで正常な値を再設定することが可能となる。さらに、初期設定処理では、電断フラグによりRAMクリアを判定するようになっているが、電断フラグをセットすることなく隔離領域にアクセスさせることで強制的にRAMクリアを発生させることが可能となる。一方、前述したパチンコ機では並行して遊技が行われるため、遊技自体が初期化されてしまうと遊技を継続することができなくなってしまうが、スロットマシンの場合にはゲーム終了後に不要となったRAMの情報を初期化する必要があるため、隔離領域にアクセスさせることによってRAMの情報を初期化するための処理を不要にすることができる。
パラメータ情報設定領域4940に設定される値は、CPU4601の初期設定などのユーザープログラム処理で順次設定するものではなく、ROM4602にパラメータ領域のアドレスと設定値とをプログラムとは別に設定しておくことによって、CPU4601が起動時に制御プログラムを開始する前に、ROM4602に設定されたパラメータ情報をCPUの各機能設定レジスタに順次設定するようになっている。これにより、パチンコ機1の電源投入とともに各種パラメータを設定することができる。各種パラメータの設定値はユーザー側で管理(決定)する情報のため、遊技制御プログラムが記憶されたROM4602に設定されている。
[15-4.遊技制御]
[15-4-1.システムリセット起動処理]
続いて、本実施形態のスロットマシンの制御について説明する。図271は、スロットマシン4000がリセットされた場合に実行されるシステムリセット起動処理の手順を説明するフローチャートである。システムリセット起動処理は、スロットマシン4000の電源投入時や停電発生時などに実行される処理であり、CPU4601にリセット信号が入力された場合に起動する処理である。
CPU4601は、システムリセット起動処理が開始されると、まず、遊技の実行に必要な各種パラメータを設定するパラメータ設定処理を実行する(ステップS1010)。具体的には、記憶領域に含まれるパラメータ情報設定領域4940に格納された設定値をCPU4601の各機能設定レジスタに設定したり、アクセス領域に割り当てられた各領域のアドレスを設定値として設定する。各領域のアドレスを設定値として設定することにより、例えば、RAM領域4920にワーク領域や退避領域を使用領域として割り当て、使用領域として割り当てられていない領域(図268の隔離領域)は未使用領域として割り当てられる。また、ワーク領域及び退避領域は、それぞれ遊技制御用とデバッグ(検査機能)用(又はその他の用途)に切り分けられている。また、ROM領域4910は、RAM領域4920と同様に、プログラムやデータを格納する領域を使用領域として割り当て、使用領域として割り当てられていない領域は未使用領域として割り当てられる。
次に、CPU4601は、セキュリティチェック処理を実行する(ステップS1012)。セキュリティチェック処理は、ROM4602に記憶されたデータが正常なデータであるか否かを判定する処理である。ROM4602に記憶されたデータが正常なデータでない場合には、例えば、ROM4602が不正なROMに交換されているおそれがあるので、スロットマシン4000の起動を中止する。さらに、CPU4601は、セキュリティチェックに要する時間が経過するまで待機する(ステップS1014)。
なお、スロットマシンの電源投入からセキュリティチェックが終了するまでの処理(ステップS1014までの処理)は、ユーザープログラムによって定義された処理ではなく、開発者が変更できないCPU内のハードウェアで構成される処理となっている。
続いて、CPU4601は、初期化を行うためのデバイス初期化設定処理を実行する(ステップS1016)。デバイス初期化設定処理では、定期的に所定の処理を実行する定期処理(図272、タイマ割込み処理)の起動設定などの処理を実行する。本実施形態では、乱数機能の設定など遊技の抽選に関する設定をセキュリティチェック後にユーザープログラムによって書き換えることができないようにする機能などをパラメータ設定処理で実行し、これらの機能以外についてはデバイス初期化設定処理で実行している。このようにCPU4601の初期化をパラメータ設定処理とデバイス初期化設定処理とに分けることによって、遊技制御の自由度を高めるとともに遊技において不正が行われにくくしている。
さらに、CPU4601は、RAM4603の初期化を実行するか否かを判定する(ステップS1018)。ステップS1018の処理では、RAM4603を初期化するコールドスタートを行うか、バックアップされたRAM4603の内容で遊技に復帰するホットスタートを行うかを判定する。
CPU4601は、RAM4603を初期化するコールドスタートを行う場合には(ステップS1018の結果が「Yes」)、RAM4603の初期化を実行する初期化処理を実行する(ステップS1020)。コールドスタートは、パチンコ機1の設定変更操作した場合、RAM4603の内容に異常が発生した場合、電断フラグが設定されていない場合などに行われる。
一方、CPU4601は、RAM4603の内容に基づいて遊技に復帰させるホットスタートを行う場合には(ステップS1018の結果が「No」)、バックアップされたRAM4603の内容に基づいて遊技を復帰させる処理を実行する(ステップS1022)。このとき、復帰処理によって、電断時に中断した処理に復帰する。具体的には、後述するシステムリセット起動処理のステップS1024からステップS1042又は定期処理(図272)のステップS1110からステップS1130までのいずれかの処理で、電断時に中断した処理に復帰させる。
なお、本実施形態におけるスロットマシン4000では、停電発生時及び復帰処理実行時にRAM4603に記憶された情報に基づいてチェックサムを算出する。このとき、チェックサムの算出対象をワークとして使用(遊技制御用ワーク領域とデバッグ(検査機能)用ワーク領域)する全領域のうちデバッグ(検査機能)用ワーク領域を除いた遊技制御用ワーク領域のみとしてもよい。遊技制御用ワーク領域のみでチェックサムを算出するのは、デバッグ(検査機能)処理は遊技制御処理とは独立性を維持するように作られており、かつ、遊技の結果に影響を与えることのない処理であることから、不十分な検証により多少バグが残ることも考えられ、この場合、そのような処理を実行することで得られた情報が保持されるデバッグ(検査機能)用ワーク領域をチェックサムの算出対象とすることは、電断から正常に復帰する信頼性を損ねる可能性がある。一方、遊技制御処理は遊技に直接関わるため、バグ等が残ったまま製品に搭載されると、市場で大きなトラブルとなる。場合によっては、販売が中止され、製品の回収が必要とする可能性が考えられ、この場合には製造メーカ及びホールに対して費用面等で甚大な損害をもたらす可能性が極めて高いことから徹底的に検証が行われるために、遊技制御用ワーク領域はデバッグ(検査機能)用ワーク領域と比較して信頼性が高いためである。
CPU4601は、初期化処理が終了すると、又は、一連のゲームが終了すると、新たにゲームを開始するために、遊技初期設定処理を実行する(ステップS1024)。遊技初期設定処理では、一連の遊技制御を行う上で不要となったRAM4603の情報を一旦初期設定状態に戻す処理を実行する。
CPU4601は、遊技初期設定処理が終了すると、遊技開始時におけるデバック(検査機能)信号を出力するための情報信号1出力処理を実行する(ステップS1026)。情報信号1出力処理では、デバック用(検査機能)信号を初期状態に設定するなどの処理を行っている。なお、情報信号出力処理は、情報信号1~N出力処理が定義されており、情報信号を出力するタイミングで必要なモジュールが呼び出される。例えば、ゲーム開始時処理内でゲーム開始にともなうデバック(検査機能)信号(リールの回転開始、スタートレバーのON、当選役に関する情報)の出力時、図柄停止処理内で各リールの停止に関するデバック(検査機能)信号(停止操作信号、停止した図柄情報等)の出力時、入賞判定処理内で確定役に関するデバック(検査機能)信号(各リール上で停止表示された確定役、確定役に伴う払出枚数情報、払出時の払出数に関する出力信号の情報(払出メダル数)等)の出力時に、当該処理に必要な「情報信号N出力処理」モジュールが適宜呼び出されて実行される。
続いて、CPU4601は、遊技者が始動レバー4210を操作する前段階の処理を行う待機処理を実行する(ステップS1028)。始動レバー4210を操作する前段階には、例えば、再遊技(リプレイ)の実行指示がなされたか否か、メダルが投入されたか否か、メダル清算が行われたか否かなどを判定し、さらに、ゲームの設定値の確認等が行われる。
始動レバー4210が操作されると、CPU4601は、ゲームを開始させるゲーム開始処理を実行する(ステップS1030)。ゲーム開始処理では、遊技の抽選を行うための乱数値を取得し、入賞役等の判定を行うとともに、リール4301の回転を開始させる。その後、CPU4601は、リール4301が正常な回転速度に到達するまで待機するためのWait処理を実行する(ステップS1032)。
CPU4601は、リール4301が正常な回転速度に到達すると、リール停止ボタン4211の入力を受付可能とし、すべてのリール4301が停止するまでの処理を行う図柄停止処理を実行する(ステップS1034)。
さらに、すべてのリール4301が停止すると、CPU4601は、停止した図柄に基づく入賞役を判定する入賞判定処理を実行する(ステップS1036)。入賞判定処理では、入賞役を判定するとともに、入賞と判定された場合には入賞役に対応した設定を行い、入賞役に対応した払出処理を実行するための設定を行う。
続いて、CPU4601は、現在の遊技状態を判定し、遊技価値として払い出される賞メダルの数を現在の遊技状態に対応した領域に加算して、RAM領域4920の役物比率算出用ワーク領域(図268、図269参照)を更新する(ステップS1038)。ステップS1038の処理は、ステップS1036で払い出されるべき賞メダルがない場合にはスキップでき、CPU4601の負荷を軽減できる。
なお、スロットマシン4000が不正を検出して遊技を中止した場合でも、役物比率算出用領域更新処理(ステップS1038)を実行する。不正が検出されたか否かにかかわらず、これらの処理を実行することによって、不正報知中でも役物比率計算用のデータを収集できる。
最後に、CPU4601は、ゲーム終了時の処理を行うゲーム終了処理を実行する(ステップS1042)。ゲーム終了処理では、入賞役に対応した払出処理を実行し、入賞していない場合、又は、払い出しのない入賞の場合には、当該処理をスキップする。ゲーム終了処理が終了すると、遊技初期設定処理に戻り、ステップS1024からステップS1038までのメインループ処理を実行する。
[15-4-2.定期処理]
続いて、システムリセット初期起動処理のメインループ処理が実行されている間に、あらかじめ定められた周期で起動される割り込み処理である定期処理について説明する。図272は、定期処理の手順を示すフローチャートである。
CPU4601は、定期処理が実行されると、まず、全レジスタに格納されている値を退避する(ステップS1110)。このとき、退避されるデータは、図268に示した遊技制御用退避領域に格納される。前述のように、定期処理はメインループ処理が実行されている間に起動される割り込み処理であるため、メインループ処理で使用しているCPUのレジスタを退避することによって復帰後に処理を継続できるようにする必要がある。
続いて、CPU4601は、CPUに内蔵されたウォッチドッグタイマをリセットする(ステップS1112)。これにより、ウォッチドッグタイマを定期的にクリアすることができる。
次に、CPU4601は、各種スイッチからの入力信号をサンプリングするスイッチ入力処理を実行する(ステップS1114)。さらに、遊技状態チェック処理を実行する(ステップS1116)。遊技状態チェック処理では、リール4301を回転させる駆動体(ステッピングモータ)の駆動制御に関する処理を行う。具体的には、ステッピングモータのパルス出力、原点位置の検出等を行う。
続いて、CPU4601は、遊技制御で使用される各種タイマの更新を行うタイマ計測処理を実行する(ステップS1118)。定期処理は周期的に実行されるため、設定時間は定期処理の実行間隔×設定回数となる。
続いて、CPU4601は、表示スイッチ1318が操作されているかを判定し、表示スイッチ1318が操作されていれば、役物比率算出・表示処理を呼び出し、役物比率算出用ワーク領域に格納されたメダルの払出数を参照して役物比率を算出する。そして、算出された役物比率を役物比率表示器1317に表示する(ステップS1119)。役物比率算出・表示処理は、パチンコ機1の実施例で説明した役物比率算出・表示処理(図24、図25)と同じである。また、役物比率の具体的な計算方法、及び役物比率の具体的な表示方法は、パチンコ機1の実施例で説明した方法と同じである。このように、タイマ割込み処理において役物比率算出・表示処理を呼び出して、役物比率を算出することによって、直近のデータによる役物比率(スロットマシン4000の射幸性)を確認できる。
なお、表示スイッチ1318が操作されている場合に、全ての種類の値(役物比率、連続役物比率、累計、総累計)を計算してもよいが、表示スイッチ1318の操作毎に、表示される値のみを計算してもよい。また、表示スイッチ1318が操作されているかにかかわらず役物比率を計算し、算出された役物比率を表示スイッチ1318の操作を契機に役物比率表示器1317に表示してもよい。
続いて、CPU4601は、LEDの制御を行うためのLED出力処理を実行する(ステップS1120)。制御対象のLEDはメイン基板4600で制御されるものが対象であり、例えば、払出枚数表示LED4562である。また、役物比率をLEDに表示するためのデータを出力する。
CPU4601は、外部中継端子板4131に信号を出力する情報出力処理を実行する(ステップS1122)。出力された信号は、外部中継端子板4131を介してホールコンピュータ4800に送信される。さらに、CPU4601は、コマンドバッファに記憶されたコマンドを演出制御基板4700に出力する(ステップS1124)。
CPU4601は、遊技に用いられる乱数を更新する乱数更新処理を実行する(ステップS1126)。乱数更新処理では、ソフト処理で生成するための乱数の更新を実行する。ここでは、ソフトウェアのみで生成する乱数の他に、CPUに内蔵されたソフト乱数の更新処理を実行する。CPU内蔵のソフト乱数では、カウント自体はハードウェアで実行するものの、更新の契機を本処理で決定する。このように構成することによって、乱数更新に係るプログラム処理を削減することが可能となる。
乱数更新処理が終了すると、CPU4601は、割り込まれた処理(メインループ処理)に復帰するための処理を行う。具体的には、ステップS1110の処理で退避したレジスタの値を復帰させる(ステップS1128)。さらに、割り込みの実行を許可する(ステップS1130)。定期処理(タイマ割込み処理)の実行中は、新たなタイマ割込みが発生したとしても、新たなタイマ割込みはペンディングされ、直前に実行されたタイマ割込み処理が正常に終了して割り込みが許可されてから実行されるようになっている。このため、定期処理(タイマ割込み処理)が多重に実行されることがないように構成されている。
[15-4-3.情報信号出力処理]
続いて、システムリセット起動処理などで実行される情報信号出力処理について説明する。情報信号出力処理は、出力信号の機能毎(1~N)に応じて設けられており、複数のモジュールによって構成されている。例えば、「条件装置出力信号用(条件装置作動に係る信号出力)」「抽選判定処理(抽選に係る信号出力)」などがある。出力する信号は異なるものの、各情報出力処理の構成は基本的には同じであるため、それぞれのフローについては説明を割愛する。図273は、本実施形態の情報信号出力処理の手順を示すフローチャートである。
CPU4601は、情報信号出力処理が開始されると、まず、CPUの全レジスタの値を退避させる(ステップS1210)。これは、情報信号出力処理を実行することによってレジスタに設定された値が破壊されることを防止するため(破壊しても確実に復帰させるため)であり、全レジスタの値をスタック領域に退避させるようになっている。また、このとき使用されるスタック領域は、デバッグ(検査機能)用退避領域に割り当てられており、遊技制御用退避領域とは切り分けられた異なる領域に割り当てられる。
続いて、CPU4601は、出力する情報信号(デバック用(検査機能)信号)を選択(ON/OFF)するために参照する情報をRAM4603から取得する(ステップS1212)。各情報信号出力処理では、RAM4603に記憶された情報を参照するのみで、当該処理内でRAM4603にデータを書き込むことはなく、書き込みが必要な場合にはデバッグ(検査機能)用ワーク領域に情報出力専用のワークを設け、当該ワークは、情報信号出力処理以外の処理で使用(参照含む)しないように構成する。これにより、情報信号出力処理を実行するプログラムを他の遊技制御プログラムと別の場所に配置しても共通の領域を使用せずに、他の遊技制御プログラムとの独立性を担保することができる。
次に、CPU4601は、ステップS1212の処理で取得された情報に基づいて、出力する情報信号を生成し(ステップS1214)、生成した信号を対応するポートに出力する(ステップS1216)。さらに、出力した信号を維持するための時間である情報信号出力時間が経過するまで待機する(ステップS1218)。情報信号出力時間は、あらかじめ決められており、十分な時間を設定することでデバック用(検査機能)信号を送信先に確実に伝達することができる。その後、ステップS1210の処理で退避した全レジスタの値を復帰させ(ステップS1220)、本処理を終了する。
以上のように、ステップS1210からステップS1220までの処理で情報信号(デバック用(検査機能)信号)を生成及び出力する。そして、出力するデバック用(検査機能)信号の分だけ、ステップS1210からステップS1220までの処理を実行する。出力信号の機能毎(1~N)に異なる種類及び数の信号を出力する。なお、本実施形態では、機能ごとに複数種類の情報信号出力処理が定義されているように構成されているが、機能に対応する出力信号を定義したテーブルをデバッグ(検査機能)用領域の第二データ領域に用意し、呼び出し元から指定された機能に対応する信号を選択し、出力するように構成することによって、情報信号出力処理を共通化するようにしてもよい。
以上のように、本実施形態では、遊技制御プログラムを格納する領域(遊技制御用領域)とは明確に区別された領域に、情報信号出力処理などを実行するプログラム(信号出力プログラム)を格納する領域(デバッグ(検査機能)用領域)を設けることによって、パチンコ機1のデバッグ(検査機能)を目的とするプログラムを独立して配置することができる。信号出力プログラムは、パチンコ機1のデバッグ(検査機能)を目的として使用され、遊技の結果に影響を与えることのない処理であって、遊技の公正を害さないものとなっている。また、これ以外の目的(例えば、遊技制御用のプログラムや汎用的なプログラムを配置し、遊技制御用領域の容量の不足を補うため)では、デバッグ(検査機能)用領域にプログラムが配置されないようになっている。
信号出力プログラムは、遊技制御プログラムから静的に呼び出された上で実行され、この際、呼び出し先のアドレスが明示されている。さらに、信号出力プログラムは、機能ごとにモジュール化されており、呼び出された際には遊技制御用領域で利用している全レジスタを保護する。また、前述したように、遊技制御用領域のプログラム処理を実行している場合にはデバック(検査機能)用ワーク領域へのアクセスを禁止し、デバッグ(検査機能)用領域のプログラム処理を実行している場合には、遊技制御用ワーク領域の参照のみを許可し、書込を禁止するように構成されている。さらに、デバッグ(検査機能)用領域から遊技制御用領域に配置されたモジュール(サブルーチンを含む)を呼び出すことも禁止するように構成されている。信号出力プログラムを含むデバッグ(検査機能)用領域に配置されたプログラムは、必ずサブルーチン形式で呼び出され、サブルーチン終了後は復帰命令により呼び出し直後に戻る。なお、デバッグ(検査機能)用領域に格納されるモジュールは目的ごとに構成されている。このように構成することによって、信号出力プログラム(デバッグ(検査機能)用領域に配置されたプログラム)の実行により、遊技制御プログラムの実行が影響されないように構成されている。
スロットマシン4000の実施例において、RAM(遊技制御用ワーク領域、役物比率算出用ワーク領域)の消去タイミングは、パチンコ機1の実施例の図21のステップS18~S26と同様でよい。なお、スロットマシン4000は、RAMクリアスイッチを有さず、設定変更キースイッチ4112tが操作されていると、遊技状態のバックアップデータを消去する。
以上のように、本実施形態によれば、前述したパチンコ機の実施例で説明した効果の他、稼働中のスロットマシンの役物比率を正確に計算でき、稼働中の遊技機の射幸性を確認できる。
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
本明細書に開示された発明のうち、特許請求の範囲に記載した以外の発明の観点の代表的なものとして、次のものがあげられる。
(0)遊技者に遊技価値を付与する遊技機であって、
遊技の進行を制御するプログラムを実行する主制御装置と、
付与された遊技価値に関する情報を表示する役物比率表示器とを備え、
前記役物比率表示器は、表示デバイスと、前記表示デバイスを駆動するドライバ回路とを有し、
前記主制御装置は、
前記役物比率表示器に表示するためのデータをシリアル通信によって前記ドライバ回路に送信し、
電源投入後に、前記ドライバ回路とのシリアル通信のために、同期方法、通信レート、パリティを使用するか、及びストップビットを使用するかを設定することを特徴とする、前各項に記載の遊技機。
(1)前記主制御装置と前記ドライバ回路との通信は、前記主制御装置と周辺制御装置との通信より低速であることを特徴とする、前各項に記載の遊技機。
これによって、通信中のデータ化けによる役物比率の不正確な表示を抑制できる。
(2)前記主制御装置は、
遊技の進行に関するデータや役物比率計算用のデータを電源遮断中も保持するワークRAMを有し、
前記ワークRAMをクリアした後に前記シリアル通信のための設定を実行することを特徴とする、前各項に記載の遊技機。
これによって、誤った内容のRAMのデータを用いて、誤った役物比率の表示を防止できる。
(3)前記主制御装置は、
FIFOバッファに蓄積されたデータをシリアル通信によって送信する機能を有し、
電源投入後に、前記FIFOバッファからデータを送出するタイミングを決定するデータ蓄積量を設定することを特徴とする、前各項に記載の遊技機。
これによって、FIFOバッファから任意のビット数でデータを送信できる。
(4)遊技者に遊技価値を付与する遊技機であって、
遊技の進行を制御するプログラムを実行する主制御装置と、
付与された遊技価値に関する情報を表示する役物比率表示器とを備え、
前記役物比率表示器は、表示デバイスと、前記表示デバイスを駆動するドライバ回路とを有し、
前記主制御装置と前記ドライバ回路とを接続する信号線の長さは、前記ドライバ回路と前記表示デバイスを接続する信号線の長さより長くなるように、前記主制御装置、前記表示デバイス及び前記ドライバ回路を配置することを特徴とする、前各項に記載の遊技機。
主制御装置とドライバ回路とを接続する信号線を長くすることによって、主制御装置の周囲に部品を配置しないで、不正な改造を発見容易とし、さらに、ドライバ回路と表示デバイスを接続する信号線を主制御装置とドライバ回路とを接続する信号線より短くすることによって、ノイズの影響を低減し、より正確に役物比率を表示できる。
(5)前記主制御装置と前記役物比率表示器とは、一つのケース内に収容されている、前各項に記載の遊技機。
これによって、主制御装置の周囲に他の部品を配置しないで、不正な改造を発見容易とし、さらに、ノイズの影響を低減できる。
(6)前記主制御装置と前記役物比率表示器とは、一つのプリント基板上に配置されている、前各項に記載の遊技機。
これによって、主制御装置の周囲のプリント基板上に他の部品を配置しないで、不正な改造を発見容易とし、さらに、ノイズの影響を低減できる。
(7)前記役物比率表示器は、前記表示デバイスと前記ドライバ回路とを一つのパッケージに収容して構成されている、前各項に記載の遊技機。
これによって、前記ドライバ回路と前記表示デバイスを接続する信号線に対するノイズの影響を低減できる。また、前記ドライバ回路と前記表示デバイスを接続する信号線を短くできる。
(8)前記主制御装置と前記ドライバ回路とを接続する信号線に沿って、ガードパターン(グランドパターン又は電源パターン)を設ける、前各項に記載の遊技機。
これによって、前記主制御装置と前記ドライバ回路とを接続する信号線に対するノイズの影響を低減できる。
(9)前記役物比率表示器の表示向きは、前記主制御装置の表面の型番の表示向きと同じ方向である、前各項に記載の遊技機。
これによって、主制御装置の交換の有無と、表示された役物比率を、無理な姿勢を取ることなく容易に確認できる。
(10)前記ドライバ回路は、前記表示デバイスに文字及び数字を表示せず、消費電力を低減する待機モードを有し、
前記主制御装置は、遊技機の設置状態において、前記役物比率表示器が視認できない閉鎖状態である場合、前記ドライバ回路を待機状態に設定することを特徴とする、前各項に記載の遊技機。
これによって、役物比率の表示が不要な場合に、遊技機の無駄な電力消費を防止できる。
(11)遊技領域に向けて発射された遊技球の所定の入賞口への入賞によって、遊技者に遊技価値として賞球を付与する遊技機であって、
遊技の進行を制御する主制御装置と、
賞球に関する情報を表示する役物比率表示器とを備え、
前記入賞口は、遊技状態によって入口の形状が変化しない一般入賞口と、遊技状態によって入口が開き又は拡大する電動入賞口とがあり、
前記主制御装置は、遊技者に払い出される賞球の数を、少なくとも、前記一般入賞口への入賞を契機として払い出される第1の賞球の数と、前記電動入賞口への入賞を契機として払い出される第2の賞球の数とを分けて計数し、
前記役物比率表示器は、前記第1の賞球の数と前記第2の賞球の数との比率に関する情報を表示することを特徴とする、前各項に記載の遊技機。
(12)前記主制御装置は、前記計数された賞球の数をメモリに記憶し、
前記メモリは、前記記憶された賞球の数を検証するためのチェックコードを記憶し、
前記主制御装置は、前記チェックコードが正常でない場合、前記メモリに記憶された賞球の数を消去する、前各項に記載の遊技機。
これによって、メモリに記憶された賞球の数の異常を検出でき、誤った役物比率(第1の賞球の数と第2の賞球の数との比率)の表示を抑制できる。
(13)前記主制御装置は、
メモリに、電源遮断時にも記憶内容が保持される第1バックアップ領域及び第2バックアップ領域を有し、
遊技制御用のデータを前記第1バックアップ領域に記憶し、
役物比率計算用の賞球の数のデータを前記第2のバックアップ領域に記憶し、
前記第1のバックアップ領域に記憶されたデータと、前記第2のバックアップ領域に記憶されたデータとは、異なる条件で消去される、前各項に記載の遊技機。
これによって、遊技制御用のデータと役物比率計算用の賞球数のデータとの少なくとも一方が正常である場合、異常であるデータのみを消去し、正常であるデータは残すことができる。
(14)前記主制御装置は、
メモリに、電源遮断時にも記憶内容が保持される第1バックアップ領域及び第2バックアップ領域を有し、
遊技制御用のデータを前記第1バックアップ領域に記憶し、
役物比率計算用の賞球の数のデータを前記第2のバックアップ領域に記憶し、
遊技機の電源等投入時にRAMクリアスイッチが操作されていれば、前記第1のバックアップ領域に記憶されたデータを消去するが、前記第2のバックアップ領域に記憶されたデータは消去しない、前各項に記載の遊技機。
RAMクリアスイッチの操作によって役物比率算出・表示用データ13136が消去できると、遊技機が算出した役物比率を任意のタイミングで消去できる。このため、RAMクリアスイッチの操作によって、バックアップされた役物比率算出・表示用データ13136は消去されないようにして、遊技場の係員の操作による役物比率算出・表示用データ13136の消去を防止し、役物比率が高い状態の隠蔽蔽を防止できる。このため、役物比率が高い状態へ改造された遊技機を容易に検出でき、役物比率が高い状態の隠蔽を防止できる。
(15A)遊技者に遊技価値を付与する遊技機であって、
遊技の進行を制御するプログラムを実行する制御手段と、
付与された遊技価値に関する情報を表示する表示手段とを備え、
前記制御手段は、所定の信号の入出力を契機として、前記表示手段に表示するための遊技価値に関する情報を更新することを特徴とする、前各項に記載の遊技機。
(15B)前記遊技価値に関する情報はベースであり、
前記制御手段は、
遊技者が多くの遊技価値を獲得可能な特別遊技状態と、前記特別遊技状態以外の通常遊技状態とを切り替えて遊技の進行を制御し、
前記通常遊技状態において遊技者に払い出された賞球数を、前記通常遊技状態において遊技者が消費した消費球数(例えば、遊技領域に打ち出された遊技球数、遊技機から排出された遊技球数、アウト口を通過した遊技球数と入賞球数との和)で除することによって、前記ベースを算出することを特徴とする、前各項に記載の遊技機。
(15C)前記制御手段は、前記所定の信号として、入賞口への入賞を検出した入賞検出信号、賞球払出コマンドの受信確認信号若しくは賞球払出完了信号を受信したタイミング、又は、賞球の払い出しを指示する賞球払出コマンドを送信したタイミングで前記表示手段に表示するためのベースの算出に使用する賞球数を更新することを特徴とする、前各項に記載の遊技機。
(15D)前記制御手段は、
前記ベースの算出に使用する総賞球数を記憶しており、
前記通常遊技状態において、遊技領域に設けられた入賞口へ遊技球の入賞を検出した信号を受信すると、前記入賞口に対応して定められた賞球数を計算し、
前記計算された賞球数を用いて前記総賞球数を更新し、
前記更新された総賞球数を前記通常遊技状態における消費球数で除することによって、前記ベースを算出することを特徴とする、前各項に記載の遊技機。
(15E)遊技者への賞球の払い出しを制御する払出制御手段を備え、
前記制御手段は、
前記ベースの算出に使用する総賞球数を記憶しており、
前記通常遊技状態において、遊技領域に設けられた入賞口へ遊技球の入賞が検出されると、前記入賞口に対応して定められた賞球数を計算し、
前記計算された賞球数の遊技者への払い出しを前記払出制御手段に指示し、
前記払出制御手段に指示した賞球数を用いて前記総賞球数を更新し、
前記更新された総賞球数を前記通常遊技状態における消費球数で除することによって、前記ベースを算出することを特徴とする、前各項に記載の遊技機。
(15F)遊技者への賞球の払い出しを制御する払出制御手段を備え、
前記制御手段は、
前記ベースの算出に使用する総賞球数を記憶しており、
前記通常遊技状態において、遊技領域に設けられた入賞口へ遊技球の入賞が検出されると、前記入賞口に対応して定められた賞球数を計算し、
前記計算された賞球数の遊技者への払い出しを前記払出制御手段に指示し、
前記指示の受信確認を前記払出制御手段から受信し、
前記受信確認を受信した指示に対応する賞球数を用いて前記総賞球数を更新し、
前記更新された総賞球数を前記通常遊技状態における消費球数で除することによって、前記ベースを算出することを特徴とする、前各項に記載の遊技機。
(15G)遊技者への賞球の払い出しを制御する払出制御手段を備え、
前記制御手段は、
前記ベースの算出に使用する総賞球数を記憶しており、
前記通常遊技状態において、遊技領域に設けられた入賞口へ遊技球の入賞が検出されると、前記入賞口に対応して定められた賞球数を計算し、
前記計算された賞球数の遊技者への払い出しを前記払出制御手段に指示し、
前記指示にかかる賞球の払い出しの完了を前記払出制御手段から受信し、
前記払い出しの完了を受信した指示に対応する賞球数を用いて前記総賞球数を更新し、
前記更新された総賞球数を前記通常遊技状態における消費球数で除することによって、前記ベースを算出することを特徴とする、前各項に記載の遊技機。
(15H)前記制御手段は、所定の信号の入出力を契機として、前記表示手段に表示するための遊技価値に関する情報を更新する情報更新手段と、前記更新された遊技価値に関する情報を前記表示手段に表示するにあたり、前記情報を更新する際に行った演算処理の結果を加工(統計処理)して表示しうる加工表示手段とを有することを特徴とする、前各項に記載の遊技機。
15Aから15Hの発明によれば、遊技媒体の獲得に関する処理を正確に実行できる。
(16A)遊技者に遊技価値を付与する遊技機であって、
遊技の進行を制御するプログラムを実行する制御手段と、
付与された遊技価値に関する情報を表示する表示手段とを備え、
前記制御手段は、遊技の状況が所定の条件を満たすことに関連して、前記表示手段に表示するための遊技価値に関する情報を更新することを特徴とする、前各項に記載の遊技機。
(16B)前記遊技価値に関する情報はベースであり、
前記制御手段は、
遊技者が多くの遊技価値を獲得可能な特別遊技状態と、前記特別遊技状態以外の通常遊技状態とを切り替えて遊技の進行を制御し、
前記通常遊技状態において遊技者に払い出された賞球数が所定数に到達したタイミングで、前記ベースを算出することを特徴とする、前各項に記載の遊技機。
(16C)前記制御手段は、
前記ベースの算出に使用する総賞球数を記憶しており、
前記通常遊技状態において、遊技領域に設けられた入賞口へ遊技球の入賞が検出されると、入賞口に対応して定められた賞球数を計算して、バッファに格納し、
所定のタイミングで前記バッファから総賞球数に前記所定数を移動し、前記総賞球数を前記通常遊技状態において遊技者が消費した消費球数(例えば、遊技領域に打ち出された遊技球数、遊技機から排出された遊技球数、アウト口通過球数と入賞球数との和)で除することによって、前記ベースを算出することを特徴とする、前各項に記載の遊技機。
(16D)前記所定のタイミングは、前記バッファの賞球数が前記所定数を超えたタイミングであって、
前記制御手段は、前記バッファの賞球数が前記所定数を超えると、前記バッファから前記所定数を減算し、前記所定数を前記総賞球数に加算することによって、前記バッファから総賞球数に前記所定数を移動することを特徴とする、前各項に記載の遊技機。
(16E)前記制御手段は、所定の信号の入出力を契機として、前記表示手段に表示するための遊技価値に関する情報を更新する情報更新手段と、前記更新された遊技価値に関する情報を前記表示手段に表示するにあたり、前記情報を更新する際に行った演算処理の結果を加工(統計処理)して表示しうる加工表示手段とを有することを特徴とする、前各項に記載の遊技機。
16Aから16Eの発明によれば、規則上の主制御装置の制約の中で、ゲーム性を維持しつつ、ゲーム性と異なる処理を正確に実行できる。
(17A)遊技者に遊技価値を付与する遊技機であって、
遊技の進行を制御するプログラムを実行する制御手段と、
付与された遊技価値に関する情報を表示する表示手段とを備え、
前記制御手段は、
遊技者が消費した消費球数を計数し、
前記計数された消費球数が所定の条件を満たすことに関連して、前記表示手段に表示するための遊技価値に関する情報を更新することを特徴とする、前各項に記載の遊技機。
(17B)前記制御手段は、
遊技者が多くの遊技価値を獲得可能な特別遊技状態と、前記特別遊技状態以外の通常遊技状態とを切り替えて遊技の進行を制御し、
前記通常遊技状態における消費球数が所定数に到達したタイミングで、前記遊技価値に関する情報を算出することを特徴とする、前各項に記載の遊技機。
(17C)制御手段は、遊技領域に打ち出された遊技球数、遊技機から排出された遊技球数、または、アウト口を通過した遊技球数と入賞球数との和によって、前記消費球数を計数することを特徴とする、前各項に記載の遊技機。
(17D)前記遊技価値に関する情報はベースであり、
前記制御手段は、
前記ベースの算出に使用する総アウト球数を記憶しており、
前記通常遊技状態における消費球数を計算して、バッファに格納し、
所定のタイミングで前記バッファから総アウト球数に所定数を移動し、前記通常遊技状態において遊技者に払い出された賞球数を前記総アウト球数で除することによって、前記ベースを算出することを特徴とする、前各項に記載の遊技機。
(17E)前記所定のタイミングは、前記バッファの消費球数が前記所定数を超えたタイミングであって、
前記制御手段は、前記バッファの消費球数が前記所定数を超えると、前記バッファから前記所定数を減算し、前記総アウト球数に前記所定数を加算することによって、前記バッファから総アウト球数に所定数を移動することを特徴とする、前各項に記載の遊技機。
(17F)前記制御手段は、
始動入賞口への入賞を契機として、前記特別遊技状態を導出する特別図柄変動表示ゲームを実行し、
前記特別図柄変動表示ゲームの保留記憶が上限値である場合、前記始動入賞口への入賞を記憶せず、前記賞球数を計数することを特徴とする、前各項に記載の遊技機。
(17G)前記制御手段は、所定の信号の入出力を契機として、前記表示手段に表示するための遊技価値に関する情報を更新する情報更新手段と、前記更新された遊技価値に関する情報を前記表示手段に表示するにあたり、前記情報を更新する際に行った演算処理の結果を加工(統計処理)して表示しうる加工表示手段とを有することを特徴とする、前各項に記載の遊技機。
17Aから17Gの発明によれば、ゲーム性を維持しつつ、ゲーム性と異なる処理を正確に実行できる。
(18A)遊技者に遊技価値を付与する遊技機であって、
遊技の進行を制御するプログラムを実行する制御手段と、
付与された遊技価値に関する情報を表示する表示手段と、
前記遊技が行われる遊技領域を有する遊技盤が着脱可能に取り付けられる本体枠とを備え、
前記表示手段は、前記本体枠が閉鎖状態でも、前記遊技価値に関する情報を表示することを特徴とする、前各項に記載の遊技機。
(18B)前記本体枠は、遊技場の島設備に取り付けられる外枠に対して回動可能に取り付けられており、
前記表示手段は、前記本体枠を開放した場合に視認可能な前記遊技機の裏面側に設けられていることを特徴とする、前各項に記載の遊技機。
(18C)前記制御手段は、前記本体枠に取り付けられており、
前記表示手段は、前記制御手段のケース内に、前記遊技機の裏面側から視認可能に設けられることを特徴とする、前各項に記載の遊技機。
18Aから18Cの発明によれば、ホールの売り上げの減少を抑制できる。
(19A)
遊技者に遊技価値を付与する遊技機であって、
遊技の進行を制御するプログラムを実行する制御手段と、
付与された遊技価値に関する情報を表示する表示手段とを備え、
前記制御手段は、
遊技における所定の条件を満たすことに関連して、前記表示手段に表示するための遊技価値に関する情報を更新する情報更新手段と、
始動入賞口への入賞を契機として特別図柄変動表示ゲームを行うゲーム実行手段とを有し、
前記ゲーム実行手段によって前記特別図柄変動表示ゲームが行われているときに前記所定の条件が満たされたときであっても、前記遊技価値に関する情報を更新することを特徴とする、前各項に記載の遊技機。
(19B)前記遊技価値に関する情報はベースであり、
前記制御手段は、前記所定の条件として、入賞口への入賞の検出、賞球払出コマンドの送信、賞球払出コマンドの受信確認の受信及び賞球払出完了信号の受信のいずれかのタイミングで前記表示手段に表示するためのベースの算出に使用する賞球数を更新することを特徴とする、前各項に記載の遊技機。
19Aから19Bの発明によれば、変動表示ゲーム中でも不正に対する十分な対策がされた遊技機を提供できる。
(20A)遊技者に遊技価値を付与する遊技機であって、
遊技の進行を制御するプログラムを実行する主制御手段と、
始動口への入賞を契機として行われる特別図柄変動表示ゲームの演出を制御する演出制御手段と、
付与された遊技価値に関する情報を表示する遊技価値情報表示手段とを備え、
前記演出制御手段は、
通常モードより前記遊技機の消費電力が低減する低電力モードへの遷移を制御し、
前記低電力モードの間、前記遊技価値情報表示手段の消費電力が低減するような表示態様の変更をしないことを特徴とする、前各項に記載の遊技機。
(20B)前記特別図柄変動表示ゲームの演出を表示し、バックライトを有する液晶表示手段で構成される演出表示手段を備え、
前記演出表示手段は、前記低電力モードの間はバックライトの輝度を低減し、
前記遊技価値情報表示手段は、発光ダイオードで構成され、前記低電力モードの間でも輝度を低減しないことを特徴とする、前各項に記載の遊技機。
(20C)前記特別図柄変動表示ゲームの演出を表示する演出表示手段を備え、
前記演出表示手段は、前記特別図柄変動表示ゲームの保留記憶が消化された後、所定時間が経過すると、前記低電力モードに表示態様を制御し、
前記遊技価値情報表示手段は、前記特別図柄変動表示ゲームの保留記憶が消化された後、所定時間が経過しても、消費電力が低減するような表示態様の変更をしないことを特徴とする、前各項に記載の遊技機。
20Aから20Cの発明によれば、省エネモードが充実した遊技機を提供できる。
(21A)遊技者に遊技価値を付与する遊技機であって、
遊技の進行を制御するプログラムを実行する制御手段と、
付与された遊技価値に関する情報を表示する表示手段とを備え、
前記制御手段は、
通常遊技状態と、前記通常遊技状態より遊技者に有利な複数の有利遊技状態の中でいずれかの遊技状態に制御する遊技状態制御手段を有し、
前記通常遊技状態における賞球数を前記通常遊技状態に遊技者が消費した消費球数で除することによって、前記遊技価値に関する情報を算出し、更新することを特徴とする、前各項に記載の遊技機。
(21B)前記制御手段は、遊技領域に打ち出された遊技球数、遊技機から排出された遊技球数、および、アウト口を通過した遊技球数と入賞球数との和のいずれかによって、前記通常遊技状態の消費球数を計数することを特徴とする、前各項に記載の遊技機。
(21C)前記制御手段は、
特別図柄変動表示ゲームが大当たりとなった場合、前記有利遊技状態を導出し、遊技者が多くの遊技価値を取得可能な入賞口を開放するように制御し、
前記特別図柄変動表示ゲームによる大当たり確定から次の特別図柄変動表示ゲームの開始までの間を前記有利遊技状態として、この間における賞球数および消費球数を前記遊技価値に関する情報の計算から除外することを特徴とする、前各項に記載の遊技機。
(21D)前記制御手段は、
前記有利遊技状態では、遊技者が多くの遊技価値を取得可能な入賞口を開放するように制御し、
当該入賞口に入賞した遊技球数を遊技領域に打ち出された遊技球数から除外して、前記通常遊技状態の消費球数を計数することを特徴とする、前各項に記載の遊技機。
21Aから21Dの発明によれば、正確な情報を遊技機外部に出力できる。
(22A)所定の条件を満たした場合に遊技球を付与する遊技機であって、
遊技の進行を制御するプログラムを実行する制御手段と、
付与された遊技球に関する情報を表示する表示手段とを備え、
発射された遊技球が転動する遊技領域には、多量の遊技球の獲得を容易にする特別遊技状態を導出する契機となる始動口と、当該始動口の閉状態から開状態を導出する契機となる通過口が少なくとも設けられており、
前記制御手段は、
前記始動口の開状態を導出しやすい特殊遊技状態にも制御可能とされており、
前記特別遊技状態または前記特殊遊技状態のいずれかに制御されているときにおいて付与された賞球数と遊技者が消費した消費球数を除外して、遊技者に付与された賞球数を遊技者が消費した消費球数で除することによって、前記遊技球に関する情報を算出し、更新することを特徴とする、前各項に記載の遊技機。
(22B)前記制御手段は、遊技領域に打ち出された遊技球数、遊技機から排出された遊技球数、および、アウト口を通過した遊技球数と入賞球数との和のいずれかによって、前記通常状態の消費球数を計数することを特徴とする、前各項に記載の遊技機。
(22C)前記制御手段は、普通図柄変動表示ゲームによる当たり確定から次の普通図柄変動表示ゲームの開始までの間を前記拡開状態として、この間における賞球数及び消費球数を前記遊技球に関する情報の計算から除外することを特徴とする、前各項に記載の遊技機。
(22D)前記制御手段は、遊技領域に打ち出された遊技球数から前記始動口に入賞した遊技球の数を除外して、前記通常状態の消費球数を計数することを特徴とする、前各項に記載の遊技機。
22Aから22Dの発明によれば、正確な情報を遊技機外部に出力できる。
(23A)遊技者が操作可能であり、遊技領域に向けて遊技球を発射する発射装置と、
前記遊技領域に設けられた入賞口で前記遊技球が検出されると所定数の賞球を付与する賞球付与手段と、
前記入賞口のうち所定の入賞口で前記遊技球が検出された場合、遊技者に有利な有利遊技状態を付与するか否かの抽選を実行する主制御手段と、
前記主制御手段から送信された情報に基づいて、現出させる演出を決定する周辺制御手段と、を備えた遊技機であって、
前記主制御手段は、付与した遊技球に関する情報を増減いずれにも更新可能な情報更新手段を有しており、
前記情報更新手段によって前記付与した遊技球に関する情報を増減いずれにも更新可能な第1状態と、前記情報更新手段によって前記付与した遊技球に関する情報を増減いずれにも更新可能でありながらも当該第1状態に比して前記付与した遊技球に関する情報が増加へと更新される割合が抑制された第2状態とが少なくともあり、
前記周辺制御手段は、前記第1状態から前記第2状態へと移行したことが示される特別演出の現出を決定することを特徴とする、前各項に記載の遊技機。
(23B)前記遊技価値に関する情報はベースであり、
前記主制御手段は、
遊技者が多くの遊技価値を獲得可能な特別遊技状態と、前記特別遊技状態以外の通常遊技状態とを切り替えて遊技の進行を制御し、
前記通常遊技状態における賞球数を前記通常遊技状態において遊技者が消費した消費球数で除することによって、前記ベースを計算し、
前記周辺制御手段は、前記ベースが低下する可能性が高いタイミングを前記第2状態として、前記逆境演出の現出を決定することを特徴とする、前各項に記載の遊技機。
(23C)前記主制御手段は、
所定の時間毎、所定数の賞球毎または所定の消費球数毎のいずれかのタイミングで遊技球に関する情報を記憶領域に書き込み、
前記記憶領域に書き込まれた遊技球に関する情報と、当該書き込み前に前記記憶領域に記憶されていた遊技球に関する情報とを比較して、前記遊技球に関する情報の増減を判定し、
前記周辺制御手段は、前記判定された増減に応じて、前記逆境演出の現出を決定することを特徴とする、前各項に記載の遊技機。
23Aから23Cの発明によれば、変動表示ゲームが途切れた状態が長く続いても興趣の低下を抑制できる。
(24A)遊技者に遊技価値を付与する遊技機であって、
遊技の進行を制御するプログラムを繰り返し実行する制御手段と、
付与された遊技価値に関する情報を表示する表示手段と、
所定のタイミングで遊技者が獲得する賞球数を取得する賞球数取得手段と、
遊技者が消費した消費球を検出する消費球検出手段とを備え、
前記制御手段は、
前記所定のタイミングと前記消費球数検出手段による消費球の検出とが同じ繰り返し内で発生した場合、当該所定のタイミングに取得された賞球数と前記検出された消費球数とを同じ繰り返し内で計数し、
前記計数された賞球数と消費球数とを用いて、前記遊技価値に関する情報を算出することを特徴とする、前各項に記載の遊技機。
(24B)前記遊技価値に関する情報はベースであって、
前記制御手段は、
遊技者が多くの遊技価値を獲得可能な特別遊技状態と、前記特別遊技状態以外の通常遊技状態とを切り替えて遊技の進行を制御し、
前記通常遊技状態の総賞球数と前記通常遊技状態において遊技者が消費した遊技球数とを同じ繰り返し内で計数し、
前記通常遊技状態の総賞球数を前記通常遊技状態において遊技者が消費した遊技球数で除することによって、前記遊技価値に関する情報を算出することを特徴とする、前各項に記載の遊技機。
24Aから24Bの発明によれば、遊技者が取得した遊技媒体数の情報を迅速に表示できる。
(25A)遊技者に遊技価値を付与する遊技機であって、
遊技の進行を制御するプログラムを実行する制御手段と、
付与された遊技価値に関する情報を表示する表示手段と、
遊技領域の下部に設けられたアウト口を通過した遊技球を検出するアウト口検出手段と、
所定の入賞口への入賞球を検出する入賞球検出手段とを備え、
前記制御手段は、
通常遊技状態と、前記通常遊技状態よりも遊技者が多くの遊技価値を獲得可能な特別遊技状態とが少なくともある中でいずれかの遊技状態に制御する遊技状態制御手段を有し、
前記アウト口検出手段の出力から前記アウト口を通過した遊技球数を計数し、
前記入賞球検出手段の出力から入賞球数を計数し、
計数された前記アウト口を通過した遊技球数と前記入賞球数との和によって、遊技者が消費した消費球数を計数し、
所定のタイミングで、前記通常遊技状態において遊技者に払い出された賞球数を、前記通常遊技状態における前記消費球数で除することによって、前記遊技価値に関する情報を算出することを特徴とする、前各項に記載の遊技機。
(25B)遊技者に遊技価値を付与する遊技機であって、
遊技の進行を制御するプログラムを実行する制御手段と、
付与された遊技価値に関する情報を表示する表示手段と、
遊技領域に打ち出された遊技球の数を計数する検出手段とを備え、
前記制御手段は、
通常遊技状態と、前記通常遊技状態よりも遊技者が多くの遊技価値を獲得可能な特別遊技状態とが少なくともある中でいずれかの遊技状態に制御する遊技状態制御手段を有し、
前記検出手段の出力から遊技領域に打ち出された遊技球の数を計数して、遊技者が消費した消費技球を計数し、
所定のタイミングで、前記通常遊技状態において遊技者に払い出された賞球数を、前記通常遊技状態における前記消費球数で除することによって、前記遊技価値に関する情報を算出することを特徴とする、前各項に記載の遊技機。
(25C)遊技者に遊技価値を付与する遊技機であって、
遊技の進行を制御するプログラムを実行する制御手段と、
付与された遊技価値に関する情報を表示する表示手段と、
遊技機から排出された遊技球の数を計数する検出手段とを備え、
前記制御手段は、
通常遊技状態と、前記通常遊技状態よりも遊技者が多くの遊技価値を獲得可能な特別遊技状態とが少なくともある中でいずれかの遊技状態に制御する遊技状態制御手段を有し、
前記検出手段の出力から遊技機から排出された遊技球の数を計数して、遊技者が消費した消費球数を計数し、
所定のタイミングで、前記通常遊技状態において遊技者に払い出された賞球数を、前記通常遊技状態における前記消費球数で除することによって、前記遊技価値に関する情報を算出することを特徴とする、前各項に記載の遊技機。
25Aから25Cの発明によれば、遊技媒体の獲得に関する処理を正確に実行できる。
(26A)遊技者に遊技価値を付与する遊技機であって、
遊技の進行を制御するプログラムを実行する制御手段と、
付与された遊技価値に関する情報を表示する表示手段とを備え、
前記制御手段は、
通常遊技状態と、前記通常遊技状態よりも遊技者が多くの遊技価値を獲得可能な特別遊技状態とが少なくともある中でいずれかの遊技状態に制御する遊技状態制御手段と、
遊技領域の右側に向かって打ち出された遊技球が入賞可能とされている入賞口に入賞したときに付与される賞球数を除外して賞球数を計数する賞球数計数手段と、
遊技領域の右側に向かって打ち出された遊技球数を除外して遊技者が消費した消費球数を計数する消費球数計数手段とを有し、
前記制御手段は、前記計数された賞球数および消費球数を用いて、前記遊技価値に関する情報を更新することを特徴とする、前各項に記載の遊技機。
(26B)前記遊技価値に関する情報はベースであって、
遊技領域の右側に向かって打ち出された遊技球が入賞可能とされている入賞口に入賞したときに付与される賞球数を除外して、前記通常遊技状態の賞球数を計数し、
遊技領域の右側に向かって打ち出された遊技球数を除外して前記通常遊技状態の消費球数を計数し、
前記制御手段は、計数された前記通常遊技状態の賞球数を前記通常遊技状態の消費球数で除することによって、前記遊技価値に関する情報を算出することを特徴とする、前各項に記載の遊技機。
(26C)前記制御手段は、前記遊技領域の右側に設けられたゲート部の遊技球の通過または前記遊技領域の右側に設けられた入賞口への入賞を検出してから所定の期間は、前記賞球数および前記消費球数の計数から除外することを特徴とする、前各項に記載の遊技機。
(26D)前記制御手段は、最後の検出から所定時間の経過、所定数の遊技球を消費する時間、または、所定数の賞球が払い出される時間のいずれかによって、前記所定の期間を定めることを特徴とする、前各項に記載の遊技機。
(26E)前記制御手段は、前記遊技領域の右側に設けられたゲート部の通過球数および前記遊技領域の右側に設けられた入賞口への入賞球数を除外して、前記賞球数および前記消費球数を計数することを特徴とする、前各項に記載の遊技機。
26Aから26Eの発明によれば、正確な情報を遊技機外部に出力できる。
(27A)遊技者に遊技価値を付与する遊技機であって、
遊技における当落抽選の結果によって遊技者に有利な遊技状態を導出する主制御手段と、
遊技の結果によって第1データを設定する第1データ設定手段と、
遊技の結果によらない第2データを設定する第2データ設定手段と、
遊技の結果によって第3データを設定する第3データ設定手段と、
第1データ設定手段によって設定された第1データ及び前記第2データ設定手段によって設定された第2データから第1変換データを得る第1変換手段と、
前記第1変換手段によって得られた第1変換データ及び前記第3データ設定手段によって設定された第3データから第2変換データを得る第2変換手段と、
前記第1変換データを表示せず、前記第2変換データを表示する表示手段と、を有することを特徴とする遊技機。
(27B)前記表示手段器は、前記第2変換データが所定の範囲の数値である場合、当該第2変換データを表示しないことを特徴とする、前各項に記載の遊技機。
(27C)前記第1変換手段は、乗算手段であって、所定の条件が成立したタイミングで、前記第1データと前記第2データとを乗じて第1変換データを得ることを特徴とする、前各項に記載の遊技機。
(27D)前記第2変換手段は、除算手段であって、所定の条件が成立したタイミングで、前記第1変換データを前記第3データで除して第2変換データを得ることを特徴とする、前各項に記載の遊技機。
(27E)前記第1データは、遊技者に付与された遊技価値(例えば賞球数)であり、
前記第3データは、遊技者が消費した遊技価値(例えばアウト球数)であり、
前記第2変換手段は、前記第1変換データを前記第3データで除して第2変換データとして、付与された遊技価値に関する情報を得て、
前記表示器は、前記第2変換手段によって得られた遊技価値に関する情報(例えばベース)を表示することを特徴とする、前各項に記載の遊技機。
27Aから27Eの発明によると、遊技の結果に関する情報を正確かつ迅速に表示できる。特に、遊技機の評価に必要なベース値をリアルタイムで正確に表示できる。また、第2変換手段(除算手段)を用いることによって、制御手段の処理負荷の増加を抑制しつつ、遊技価値に関する情報(例えばベース値)をリアルタイムで正確に表示できる。
(28A)遊技者に遊技価値を付与する遊技機であって、
遊技の進行を制御する定期処理を実行する制御手段と、
付与された遊技価値に関する情報を表示する表示手段と、
前記遊技価値に関する情報を算出する変換手段と、を有し、
前記制御手段は、
所定のタイミングで前記変換手段に引数を渡し、前記変換手段によって当該引数に基づいて変換された結果を前記変換手段から取得し、
前記引数を渡す処理と前記変換の結果を取得する処理とを1回の定期処理内で実行可能であることを特徴とする遊技機。
(28B)前記変換手段は、
除算演算をする演算回路であり、
除数が入力される除数レジスタと、被除数が入力される被除数レジスタと、除算演算の商を出力するための結果レジスタとを有し、
前記制御手段は、
前記除数レジスタ及び前記被除数レジスタに引数を書き込み、
引数の書き込みから所定時間経過後に、前記結果レジスタから商を読み出し、
前記除数レジスタ及び前記被除数レジスタに引数を書き込む処理を、前記繰り返し実行されるプログラムの終了から前記所定時間より前に実行することを特徴とする、前各項に記載の遊技機。
(28C)所定の遊技状態において遊技者に付与される遊技媒体を計数する賞遊技媒体数計数手段と、
前記所定の遊技状態において遊技者が消費した遊技媒体を計数する消費遊技媒体数計数手段とを有し、
前記制御手段は、
前記賞遊技媒体数計数手段が計数した賞遊技媒体数を100倍した値を前記被除数レジスタに書き込み、
前記消費遊技媒体数計数手段が計数した消費遊技媒体数を前記除数ジスタに書き込み、
前記結果レジスタから、ベース値を読み出すことを特徴とする、前各項に記載の遊技機。
28Aから28Cの発明によると、遊技の結果に関する情報を正確かつ迅速に表示できる。特に、変換回路に引数を渡す処理と変換回路から変換の結果を取得する処理とを1回の繰り返し処理(タイマ割込み処理)内で実行するので、制御の複雑化を抑制できる。
(29A)遊技者に遊技価値を付与する遊技機であって、
遊技球が入賞可能な入賞口と、
遊技の進行を制御する制御手段と、
付与された遊技価値に関する情報を表示する表示手段と、
遊技者が消費した消費球を計数する消費球計数手段と、
遊技者に付与する賞球を計数する賞球計数手段と、を有し、
前記入賞口の少なくとも一つは、遊技球の入賞が容易な開状態と入賞が困難な閉状態とに切り替え可能な特定入賞口であり、
前記制御手段は、
前記計数された消費球数及び賞球数に基づいて、前記表示手段に表示するための遊技価値に関する情報を更新し、
前記特定入賞口が前記閉状態であるにもかかわらず該特定入賞口への入賞が検出された場合には入賞異常であると判定し、該判定がなされると当該入賞異常にかかる入賞球数を消費球数から除外して、前記表示手段に表示するための遊技価値に関する情報を更新することを特徴とする遊技機。
(29B)前記入賞口の少なくとも一つは、多量の遊技球の獲得を容易にする特別遊技状態を導出する契機となる始動入賞口、
前記制御手段は、前記始動入賞口が閉状態において当該始動入賞口への入賞が検出された場合、入賞異常であると判定して、当該入賞にかかる入賞球数を消費球数から除外して、前記表示手段に表示するための遊技価値に関する情報を更新することを特徴とする、前各項に記載の遊技機。
(29C)前記入賞口の少なくとも一つは、特別遊技状態において開放される大入賞口であり、
前記制御手段は、前記大入賞口が閉状態において当該大入賞口への入賞が検出された場合、入賞異常であると判定して、当該入賞にかかる入賞球数を消費球数から除外して、前記表示手段に表示するための遊技価値に関する情報を更新することを特徴とする、前各項に記載の遊技機。
(29D)遊技者が消費した消費球を検出する消費球検出手段を有し、
前記消費球計数手段は、前記消費球数検出手段が検出した消費球数から前記入賞異常にかかる入賞球数を減じて、遊技者が消費した消費球を計数することを特徴とする、前各項に記載の遊技機。
(29E)前記制御手段は、前記遊技価値に関する情報の算出に使用する総消費球数を記憶しており、
前記消費球計数手段は、前記消費球数検出手段が検出した消費球数を前記総消費球数に加算し、前記総消費球数から前記入賞異常にかかる入賞球数を減じて、消費球を計数することを特徴とする、前各項に記載の遊技機。
(29F)前記制御手段は、前記遊技価値に関する情報の算出に使用する総消費球数を記憶しており、
前記消費球計数手段は、前記消費球数検出手段が検出した消費球数から前記入賞異常にかかる消費球数を減じた値を前記総消費球数に加算して、消費球を計数することを特徴とする、前各項に記載の遊技機。
(29G)前記入賞口は、遊技球の入賞が容易な開状態と入賞が困難な閉状態とに切り替え可能であって、
前記制御手段は、閉状態において前記入賞口への入賞が検出され、かつ、当該入賞に関連して賞球を払い出さない場合、入賞異常であると判定して、当該入賞にかかる入賞球数を消費球数から除外して、前記表示手段に表示するための遊技価値に関する情報を更新することを特徴とする、前各項に記載の遊技機。
(29H)前記制御手段は、前記入賞口への入賞異常が所定の期間内に複数回検出された場合、当該入賞異常にかかる入賞球数を消費球数から除外して、前記表示手段に表示するための遊技価値に関する情報を更新することを特徴とする、前各項に記載の遊技機。
29Aから29Hの発明によると、遊技の結果に関する情報を正確かつ迅速に表示できる。特に、入賞異常にかかる入賞球数をアウト球数から除外して、遊技価値に関する情報(例えばベース値)をリアルタイムで正確に表示できる。
(30)遊技者に賞として遊技媒体を付与する遊技機であって、
複数の入賞口が配設された遊技領域と、
前記各入賞口において遊技媒体が検出された場合に、複数ある賞のいずれかうち予め定められている特定の賞を付与する賞付与手段と、
前記遊技領域に流入する遊技媒体の数と、前記賞付与手段によって付与された賞として付与される遊技媒体の数とを用いて所定の演算処理を実行する演算処理手段と、
前記演算処理手段により実行された演算処理の結果を加工する加工手段と、
前記加工手段によって加工された演算処理の結果を所定の表示装置に表示する表示手段と、を備え、
遊技において前記複数ある賞のうち特定の賞が発生した場合、前記賞付与手段は当該特定の賞を付与し、前記表示手段は前記演算処理の結果が変化しないように表示することを特徴とする遊技機。
30の発明によると、遊技の結果に関する情報を正確かつ迅速に表示できる。特に、特定の賞の発生に伴って賞(例えば、高価値の賞が付与される入賞口(賞球数が多い一般入賞口や大入賞口など)への入賞に伴い払い出される賞球)が付与されても、演算処理の結果(計算されたベース値)が変化しないように表示でき、遊技機が所定の性能を発揮しているか(例えば、設定した出玉率通りか)を容易に判断できる。
(31A)特定の条件を満たした場合に当落に関する抽選を実行する抽選手段を含む主制御手段と、前記主制御手段からの信号に基づいて所定の演出を制御する周辺制御手段と、を備える遊技機であって、
前記周辺制御手段は、
前記主制御手段から受信した信号に基づいて情報を記憶する一時記憶手段と、
前記一時記憶手段に記憶されている情報によって更新される情報記憶手段と、
所定の条件を満たした場合に、前記情報記憶手段に記憶されている情報の少なくとも一部を外部に出力する第1情報出力手段とを備えることで、
前記遊技機の状況履歴を把握可能にしたことを特徴とする遊技機。
(31B)特別な遊技状態でなくても、遊技領域に打ち出された遊技球が入賞可能な一般入賞口を備え、
前記主制御手段から前記周辺制御手段へ送信される信号は、前記一般入賞口への入賞を示す信号を含み、
前記第1情報出力手段は、所定の条件を満たした場合に、前記一般入賞口への入賞に関する情報を外部に出力することを特徴とする前各項に記載の遊技機。
(31C)所定の条件を満たした場合、当該所定の条件に基づいた情報を外部端子板に向けて出力する外部出力手段と、
前記所定の条件を満たした場合、前記外部端子板に向けて出力される情報より詳細な情報を記憶する情報記憶手段と、
前記情報記憶手段によって記憶された情報を提示する情報提示手段と、を備えることを特徴とする前各項に記載の遊技機。
(31D)遊技機の状態を初期化する第1初期化手段を備え、
前記周辺制御手段は、
前記主制御手段から受信した信号に基づいて情報を記憶する記憶手段と、
前記第1初期化手段によって初期化された場合でも、前記記憶手段に記憶されている情報の一部を初期化しない限定初期化手段と、を有することを特徴とする前各項に記載の遊技機。
(31E)遊技機の状態を初期化する第1初期化手段と、
前記情報記憶手段の記憶内容を初期化する第2初期化手段と、を備え、
前記情報記憶手段は、遊技機の電源遮断時にも記憶内容を保持可能であって、
前記第1初期化手段は、前記情報記憶手段の記憶内容を初期化せず、前記一時記憶手段の記憶内容を初期化することを特徴とする前各項に記載の遊技機。
(31F)前記周辺制御手段は、前記主制御手段から受信した信号の種別及び当該信号を受信した時刻を前記情報記憶手段に記憶することを特徴とする前各項に記載の遊技機。
(31G)前記主制御手段から前記周辺制御手段に送信される信号は、遊技の進行に応じて計数される計数イベントに関する信号と、遊技機の状態の変化の契機となる状態変化イベントに関する信号とを含み、
前記周辺制御手段は、
前記主制御手段から受信した信号に基づいて情報を記憶する一時記憶手段と、
前記一時記憶手段に記憶されている情報によって更新される情報記憶手段と、
所定の条件を満たした場合に、前記情報記憶手段に記憶されている情報の少なくとも一部を外部に出力する第1情報出力手段と、を有し、
前記周辺制御手段は、
前記主制御手段から受信した信号に基づいて前記計数イベントを計数して、計数結果を前記一時記憶手段に記憶し、
前記主制御手段から前記状態変化イベントに関する信号を受信すると、前記状態変化イベントを前記情報記憶手段に記憶し、前記一時記憶手段に記憶された前記計数イベントの計数結果を前記情報記憶手段に記憶することを特徴とする前各項に記載の遊技機。
(31H)前記主制御手段から送信される信号は、遊技機の管理のために計数される計数イベントに関する信号と、遊技機の状態の変化の契機となる状態変化イベントに関する信号とを含み、
前記情報記憶手段は、遊技機の状態毎に前記計数イベントの計数結果を記憶するものであり、
前記周辺制御手段は、
前記主制御手段から受信した前記計数イベントに関する信号を計数して、前記一時記憶手段に記憶し、
前記主制御手段から前記状態変化イベントに関する信号を受信すると、前記状態変化イベントに関する信号の種別及び当該信号を受信した時刻と前記情報記憶手段に記憶し、前記一時記憶手段に記憶された前記計数イベントの計数結果を前記情報記憶手段に記憶された計数イベントの計数結果を加算することを特徴とする前各項に記載の遊技機。
(31I)前記主制御手段から送信される信号は、遊技機の管理のために計数される計数イベントに関する信号と、遊技機の状態の変化の契機となる状態変化イベントに関する信号とを含み、
前記情報記憶手段は、遊技機の状態毎に前記計数イベントの計数結果を記憶するものであり、
前記周辺制御手段は、
前記主制御手段から受信した前記計数イベントに関する信号を計数して、前記一時記憶手段に記憶し、
前記主制御手段から前記状態変化イベントに関する信号を受信すると、前記一時記憶手段に記憶された前記計数イベントの計数結果を前記情報記憶手段に記憶された計数イベントの計数結果を加算することを特徴とする前各項に記載の遊技機。
31Aから31Iの発明によると、出玉が推移した経緯を知ることができる。特に、31D、31Eの発明によると、遊技に関する情報を適正に記憶できる。
(32)遊技者に遊技価値として賞遊技媒体を付与する遊技機であって、
遊技の進行にかかる定期処理を実行する制御手段と、
遊技者が消費した消費遊技媒体を計数する消費遊技媒体計数手段と、
遊技者に付与する賞遊技媒体を計数する賞遊技媒体計数手段と、
前記計数された消費遊技媒体数と賞遊技媒体数とを用いて、付与された遊技価値に関する情報を算出する算出手段と、
図柄の変動表示を含む遊技に関する情報を表示する複数の発光素子を含む第1の発光素子群と、
前記付与された遊技価値に関する情報を表示する複数の発光素子を含む第2の発光素子群とを有し、
前記第1の発光素子群は、その複数の発光素子の一方の端子が共通に接続される第1の端子と、当該複数の発光素子の他方の端子がそれぞれ接続される複数の第2の端子とを有し、
前記第2の発光素子群は、その複数の発光素子の一方の端子が共通に接続される第3の端子と、当該複数の発光素子の他方の端子がそれぞれ接続される複数の第4の端子とを有し、
前記第1の発光素子群の第1の端子と前記第2の発光素子群の第3の端子とは、一つの出力駆動手段に接続されており、
前記制御手段は、前記第1の端子と前記第3の端子とに共通のタイミングで選択信号を出力するものの、前記選択信号を出力している期間において、前記第1の発光素子群の少なくとも一つの発光素子を点灯させるために前記複数の第2の端子に出力する信号と前記第2の発光素子群の少なくとも一つの発光素子を点灯させるために前記複数の第4の端子に出力する信号とを異なるタイミングで出力することで、前記第1の発光素子群と前記第2の発光素子群とを1回の定期処理内で表示制御することを特徴とする遊技機。
32の発明によると、付与される遊技価値に関する情報(例えば、ベース値や役物比率)を表示するための回路をシンプルに構成でき、遊技価値に関する情報を迅速かつ正確に表示できる。
(33)遊技者に遊技価値として賞遊技媒体を付与する遊技機であって、
遊技の進行にかかる定期処理を実行する制御手段と、
遊技者が消費した消費遊技媒体を計数する消費遊技媒体計数手段と、
遊技者に付与する賞遊技媒体を計数する賞遊技媒体計数手段と、
前記計数された消費遊技媒体数と賞遊技媒体数とを用いて、付与された遊技価値に関する情報を算出する算出手段と、
図柄の変動表示を含む遊技に関する情報を表示する複数の発光素子を含む第1の発光素子群と、
前記付与された遊技価値に関する情報を表示する複数の発光素子を含む第2の発光素子群とを有し、
前記第1の発光素子群は、その複数の発光素子の一方の端子が共通に接続される第1の端子と、当該複数の発光素子の他方の端子がそれぞれ接続される複数の第2の端子とを有し、
前記第2の発光素子群は、その複数の発光素子の一方の端子が共通に接続される第3の端子と、当該複数の発光素子の他方の端子がそれぞれ接続される複数の第4の端子とを有し、
前記第1の発光素子群の前記第1の端子に出力される選択信号と、前記第1の端子に出力される選択信号に対応して前記第1の発光素子群の少なくとも一つの発光素子を点灯させるために前記複数の第2の端子に出力される信号と、前記第2の発光素子群の前記第3の端子に出力される選択信号と、前記第3の端子に出力される選択信号に対応して前記第2の発光素子群の少なくとも一つの発光素子を点灯させるために前記複数の第4の端子に出力される信号とは、同一の定期処理内で出力されるものの、前記第1の端子に出力される選択信号及び該選択信号に対応する前記複数の第2の端子に出力される信号を出力する処理と、前記第3の端子に出力される選択信号及び該選択信号に対応する前記複数の第4の端子に出力される信号を出力する処理とは、同一の定期処理内の異なる処理によって、前記定期処理内で異なるタイミングで信号を出力することを特徴とする遊技機。
33の発明によると、付与される遊技価値に関する情報を表示するための回路をシンプルに構成できる。このため、遊技価値に関する情報を迅速かつ正確に表示できる。
(34A)遊技者に遊技価値として賞遊技媒体を付与する遊技機であって、
遊技の進行を制御する制御手段と、
遊技者が消費した消費遊技媒体を計数する消費遊技媒体計数手段と、
遊技者に付与する賞遊技媒体を計数する賞遊技媒体計数手段と、
前記計数された消費遊技媒体数と賞遊技媒体数とを用いて、付与された遊技価値に関する情報を算出する算出手段と、
前記算出手段によって算出された遊技価値に関する情報を表示する算出結果表示手段とを有し、
前記制御手段は、
遊技制御のための処理を実行する制御装置と、
前記制御装置の動作タイミングを定める信号(例えば、クロック信号やリセット信号)を生成するタイミング手段と、
前記制御装置に制御され、少なくとも、前記算出結果表示手段で表示をするための制御信号を出力する出力駆動手段とを有し、
前記制御装置が実装される基板において、前記タイミング手段を前記制御装置からみて一の方向に配置し、前記出力駆動手段及び前記算出結果表示手段を前記一の方向とは異なる他の方向に、前記タイミング手段と離れて配置することを特徴とする遊技機。
(34B)前記制御装置と前記タイミング手段との間の接続線と、前記制御装置と前記出力駆動手段との間の接続線とは、互いに交差しないように前記基板上に配置されることを特徴とする前各項に記載の遊技機。
(34C)前記タイミング手段は、前記制御装置に入力されるリセット信号を生成するリセット回路と、前記制御装置に入力されるクロック信号を生成する発振回路とを有し、
前記制御手段が実現されるプリント基板上において、前記リセット回路は前記プロセッサから前記発振回路と同じ方向に配置され、前記ドライバ回路及び前記表示デバイスは前記リセット回路及び前記発振回路と離れて配置されることを特徴とする前各項に記載の遊技機。
34Aから34Cの発明によれば、遊技制御に関する信号と遊技に関する情報を表示するための信号との干渉を抑制できる。このため、遊技制御への影響を抑制し、遊技価値に関する情報を迅速かつ正確に表示できる。
(35A)遊技者に遊技価値として賞遊技媒体を付与する遊技機であって、
遊技の進行を制御する制御手段と、
遊技者が消費した消費遊技媒体を計数する消費遊技媒体計数手段と、
遊技者に付与する賞遊技媒体を計数する賞遊技媒体計数手段と、
前記計数された消費遊技媒体数と賞遊技媒体数とを用いて、付与された遊技価値に関する情報を算出する算出手段と、
前記制御手段に制御され、前記遊技価値に関する情報を表示する表示手段とを有し、
前記制御手段は、
遊技制御のための処理を実行する制御装置と、
前記処理の実行時に前記制御装置がアクセスし、少なくとも前記遊技価値に関する情報を記憶するメモリとを有し、
前記遊技機には、前記メモリの初期化を指示するための入力手段が設けられ、
前記制御手段は、
所定のタイミングで、前記メモリに格納されたデータが正常か否かを判定し、異常であると判定された場合、前記メモリの所定の第1の領域を初期化する第1の初期化手段と、
電源投入時において、前記入力手段が操作されているか否かを判定し、操作されていると判定された場合、前記メモリの所定の第2の領域を初期化する第2の初期化手段とを有し、
前記第1の初期化手段により初期化される第1の領域と前記第2の初期化手段により初期化される第2の領域とは、前記第1の初期化手段によっても前記第2の初期化手段によっても共通して初期化される重複領域を含み、
少なくとも前記第1の領域は、前記第2の領域と重複しない領域を含み、
前記遊技価値に関する情報は、前記重複領域以外の前記第1の領域に格納されることを特徴とする遊技機。
(35B)前記第1の領域には、前記遊技価値に関する情報の算出に使用するデータが格納され、
前記第2の領域には、遊技の進行の制御に使用するデータが格納され、
前記制御手段は、
前記第1の領域に格納されたデータが異常であると判定された場合、前記第1の領域を初期化し、
前記第2の領域に格納されたデータが異常であると判定された場合、前記第2の領域を初期化し、
前記入力手段が操作されていると判定された場合、前記第1の領域を初期化せずに、前記第2の領域を初期化することを特徴とする前各項に記載の遊技機。
(35C)前記第1の領域には、前記遊技価値に関する情報の算出に使用するデータが格納され、
前記第2の領域には、遊技の進行の制御に使用するデータが格納され、
前記制御手段は、
前記第1の領域に格納されたデータが異常であると判定された場合、前記第1の領域及び前記第2の領域を初期化し、
前記第2の領域に格納されたデータが異常であると判定された場合、前記第1の領域及び前記第2の領域を初期化し、
前記入力手段が操作されていると判定された場合、前記第1の領域を初期化せずに、前記第2の領域を初期化することを特徴とする前各項に記載の遊技機。
(35D)前記制御手段は、所定の時間間隔で繰り返し実行される定期処理の実行毎に、前記第1の領域に格納されたデータが異常であるかを判定することを特徴とする前各項に記載の遊技機。
(35E)前記制御手段は、前記遊技価値に関する情報を算出する毎に、前記第1の領域に格納されたデータが異常であるかを判定することを特徴とする前各項に記載の遊技機。
(35F)前記制御手段は、遊技機の電源投入時に、前記第1の領域に格納されたデータが異常であるかを判定することを特徴とする前各項に記載の遊技機。
35Aから35Fの発明によると、付与される遊技価値に関する情報(ベース値や役物比率)を格納するメモリを適切に制御できる。このため、遊技に関する情報を正確かつ迅速に表示できる。
(36A)遊技者に遊技価値として賞遊技媒体を付与する遊技機であって、
遊技の進行を制御する制御手段と、
遊技者が消費した消費遊技媒体を計数する消費遊技媒体計数手段と、
遊技者に付与する賞遊技媒体を計数する賞遊技媒体計数手段と、
前記計数された消費遊技媒体数と賞遊技媒体数とを用いて、付与された遊技価値に関する情報を算出する算出手段と、
前記遊技価値に関する情報を表示する表示手段と、
前記制御手段によって作動する電動役物とを有し、
特定の条件において、1回の当たりを契機とした電動役物の作動中に複数の遊技媒体が入賞した場合に、入賞した遊技媒体のうち、一部の遊技媒体については前記遊技価値に関する情報の算出に使用され、他の遊技媒体については前記遊技価値に関する情報の算出に使用されないものの、いずれの遊技媒体についても変動表示ゲームの契機となりうることを特徴とする遊技機。
(36B)前記制御手段は、
所定の始動条件を満たした場合に変動表示ゲームを実行し、
前記変動表示ゲームの結果によって、遊技者に有利な第1の遊技状態(時短、高確率状態、大当りなど)と、前記第1の遊技状態より有利度が低い第2の遊技状態(通常状態)とのいずれかに制御し、
前記電動役物の1回の作動中に複数の遊技媒体が入賞した場合に、前記第2の遊技状態で入賞した遊技媒体については前記遊技価値に関する情報の算出に使用され、前記第1の遊技状態で入賞した遊技媒体については前記遊技価値に関する情報の算出に使用されないものの、いずれの遊技媒体についても変動表示ゲームの契機となりうることを特徴とする前各項に記載の遊技機。
(36C)前記制御手段は、
遊技機に生じる複数種類のエラーを検出し、
前記電動役物の1回の作動中に複数の遊技媒体が入賞した場合に、所定の種類の前記エラーが検出されている状態で入賞した遊技媒体については前記遊技価値に関する情報の算出に使用せず、所定の種類の前記エラーが検出されていない状態で入賞した遊技媒体については前記遊技価値に関する情報の算出に使用するものの、いずれの遊技媒体についても変動表示ゲームの契機となりうることを特徴とする前各項に記載の遊技機。
36Aから36Cの発明によると、遊技機の状態に応じて、遊技媒体を遊技価値に関する情報の算出に使用するかを切り替えるので、遊技価値に関する情報を迅速かつ正確に表示できる。
(37A)外枠と、前記外枠に対して開閉可能に支持されるとともに遊技盤が設けられる本体枠と、遊技に関する設定状態を変更するための設定変更操作部とを備えた遊技機であって、
前記外枠に対して前記本体枠が閉状態にあるときに、前記外枠に対して前記本体枠が開状態にあるときに比べて、前記設定変更操作部に対する操作を困難にする設定変更困難化手段を有することを特徴とする遊技機。
(37B)外枠と、前記外枠に対して開閉可能に支持されるとともに遊技盤が設けられる本体枠と、遊技に関する設定状態を変更する設定変更操作を行うときに、変更後の設定状態を表示する設定状態表示部と、を備えた遊技機であって、
前記外枠に対して前記本体枠が閉状態にあるときに、前記設定状態表示部による表示内容を視認困難にする視認困難化手段を有することを特徴とする遊技機。
(37C)外枠と、前記外枠に対して開閉可能に支持されるとともに遊技盤が設けられる本体枠と、遊技に関する設定状態を決定する設定決定操作が行われる設定決定操作部と、を備えた遊技機であって、
前記外枠に対して前記本体枠が閉状態にあるときに、前記設定決定操作部に対する操作を困難にする決定困難化手段を有することを特徴とする遊技機。
(37D)外枠と、前記外枠に対して開閉可能に支持されるとともに遊技盤が設けられる本体枠と、遊技に関する設定状態を変更するための設定変更操作部とを備えた遊技機であって、
前記設定変更操作部は、設定鍵が挿入される設定キー挿入部を有し、
前記外枠に対して前記本体枠が閉状態にあるときに、前記外枠の特定部位によって前記設定キー挿入部に前記設定鍵を挿入することを阻害するように構成されてなることを特徴とする遊技機。
37Aから37Dの発明によると、不正行為者による不正な設定状態の変更を困難にし、遊技機の信頼性を高めることができる。
(37E)始動条件の成立に基づいて図柄の変動表示を行い、該図柄の変動表示結果として当り結果を導出する場合に、所定の遊技利益を付与する遊技機であって、
前記図柄の変動時間を決定する変動時間決定手段と、
特定操作部に対する操作に基づいて、遊技に関する所定の設定情報を複数のうちのいずれかに決定する設定情報決定部と、を備え、
前記変動時間決定手段は、前記特定操作部に対する操作に基づいて前記設定情報が特定情報に決定されている場合に、特定の変動時間を決定可能であることを特徴とする遊技機。
(37F)始動条件の成立に基づいて図柄の変動表示を行い、該図柄の変動表示結果として当り結果を導出する場合に、所定の遊技利益を付与する遊技機であって、
前記図柄の変動時間を決定する変動時間決定手段と、
特定操作部に対する操作に基づいて、前記当り結果が導出される確率を複数の確率うちのいずれかに決定する確率決定部と、を備え、
前記変動時間決定手段は、前記特定操作部に対する操作に基づいて決定された確率が特定の確率である場合に、特定の変動時間を決定可能であることを特徴とする遊技機。
(37G)始動条件の成立に基づいて図柄の変動表示を行い、該図柄の変動表示結果として当り結果を導出する場合に、所定の遊技利益を付与する遊技機であって、
前記図柄の変動時間を決定する変動時間決定手段と、
特定操作部に対する操作に基づいて、遊技に関する所定の設定情報を複数のうちのいずれかに決定する設定情報決定部と、を備え、
前記変動時間決定手段は、前記設定情報を問わず共通の変動時間を決定する場合と、前記設定情報に応じて異なる変動時間を決定する場合とがあり、
前記設定情報に応じて異なる変動時間が決定される確率は、前記共通の変動時間が決定される確率よりも低く設定されることを特徴とする遊技機。
(37H)始動条件の成立に基づいて図柄の変動表示を行い、該図柄の変動表示結果として当り結果を導出する場合に、所定の遊技利益を付与する遊技機であって、
前記図柄の変動時間を決定する変動時間決定手段と、
特定操作部に対する操作に基づいて、遊技に関する所定の設定情報を複数のうちのいずれかに決定する設定情報決定部と、
所定の演出を行う演出制御部と、を備え、
前記変動時間決定手段は、前記設定情報に応じて異なる変動時間を決定可能であり、
前記演出制御部は、前記設定情報のうちの特定の設定情報に対応して特定の変動時間が前記変動時間決定手段によって決定された場合、該特定の変動時間内で、前記図柄の変動表示の結果を示唆する結果示唆演出と、前記設定情報決定部が決定した設定情報の内容を示唆する設定示唆演出とを順次に行うことを特徴とする遊技機。
37Eから37Hの発明によると、新たな態様で遊技者に対して設定状態を察知させて、遊技興趣の向上を図ることができる。
(37I)遊技に関する制御を行う遊技制御部が設けられた主制御基板と、前記主制御基板に接続され、前記遊技制御部とは別の制御部が設けられた別制御基板と、前記遊技制御部が行う遊技に関する設定状態を変更するための設定関連操作部と、を備えた遊技機であって、
前記遊技制御部は、前記設定関連操作部に対する前記設定状態の変更に係る操作を許容する設定変更許容状態発生手段を有し、
前記設定変更許容状態発生手段は、前記別制御基板から前記主制御基板に伝達される情報が特定の情報である場合に、前記設定状態の変更に係る操作を許容することを特徴とする遊技機。
37Iの発明によると、不正行為者による不正な設定状態の変更を困難にし、遊技機の信頼性を高めることができる。
(37J)遊技に関する制御を行う遊技制御部と、前記遊技制御部が行う制御に関する設定状態を変更するための設定変更操作部とを具備し、遊技者による所定の発射操作部の操作により遊技領域に向けて発射された遊技球が所定の入賞口に入賞することで、遊技利益を付与する遊技機であって、
前記設定変更操作部が操作されて前記設定状態が変更される場合に、所定期間に亘って前記発射操作部の操作による遊技球の発射を不能にする発射不能化手段を有することを特徴とする遊技機。
37Jの発明によると、不正に設定状態を変更する行為を抑制することができる。
(38A)遊技に関する制御を行う遊技制御部と、前記遊技制御部が行う制御に関する設定を変更するための設定操作部とを備える遊技機であって、
前記遊技制御部を構成する遊技制御基板と前記設定操作部構成する設定基板とは一つのケース内に収容されていることを特徴とする遊技機。
(38B)前記ケースは、前記設定操作部に代えて、設定を変更するための操作を行えないダミーユニットが、前記遊技制御部と共に収容可能であることを特徴とする、前各項に記載の遊技機。
(38C)前記設定操作部は、
前記設定を変更可能な設定状態を開始するための第1操作部と、
前記設定を確定し、前記設定状態を終了するための第2操作部と、
設定の内容を表示する設定表示器とを有することを特徴とする、前各項に記載の遊技機。
(38D)前記ダミーユニットは、前記第1操作部、前記第2操作部、及び前記設定表示器のいずれも有さないことを特徴とする、前各項に記載の遊技機。
38Aから38Dの発明によれば、設定機能を有する遊技機と、設定機能を有さない遊技機との仕様を共通化し、効率的に設計、生産できる。
(39A)遊技に関する制御を行うためのプログラムを実行するプロセッサと、前記プロセッサがアクセスするメモリとを有する遊技制御部と、
前記メモリの所定領域を初期化するためのクリアスイッチと、
前記遊技制御部が行う制御に関する設定を変更するための設定操作部とを備える遊技機であって、
前記設定操作部は、前記設定を変更可能な設定状態を開始するための設定変更操作部を有し、
前記遊技制御部は、
遊技機の電源が投入された場合、前記クリアスイッチの操作及び前記設定変更操作部の操作を検出し、
前記クリアスイッチが操作されており、かつ、前記設定変更操作部が操作されている場合、前記設定状態を開始することを特徴とする遊技機。
(39B)前記遊技制御部は、前記設定状態の終了後に、前記メモリの第1の領域を初期化することを特徴とする、前各項に記載の遊技機。
(39C)前記遊技制御部は、前記クリアスイッチが操作されており、かつ、前記設定変更操作部が操作されていない場合、前記第1の領域と少なくとも一部が異なる第2の領域において、前記メモリを初期化することを特徴とする、前各項に記載の遊技機。
39Aから39Cの発明によると、設定変更の誤操作を防止できる。
(40A)遊技に関する制御を行う遊技制御部と、前記遊技制御部が行う制御に関する設定を変更するための設定操作部とを備える遊技機であって、
前記遊技制御部は、付与された遊技価値に関する情報を表示する遊技価値表示手段を有し、
前記設定操作部は、前記設定を変更可能な設定状態を開始するための設定変更操作部と、前記設定の内容を表示する設定表示手段とを有し、
前記遊技制御部は、前記設定状態において、前記遊技価値表示手段と前記設定表示手段とで紛らわしくないように表示することを特徴とする遊技機。
(40B)前記遊技制御部と前記設定操作部とは一つのケース内に収容されていることを特徴とする、前各項に記載の遊技機。
(40C)前記遊技価値表示手段と前記設定表示手段とは、一つの表示器で構成されることを特徴とする、前各項に記載の遊技機。
(40D)前記遊技価値表示手段は、付与された遊技価値に関する情報を遊技の進行に従って遅滞なく前記表示器に表示し、
前記設定表示手段は、前記設定状態において、前記付与された遊技価値に関する情報に代えて、前記設定に関する情報を前記表示器に表示することを特徴とする、前各項に記載の遊技機。
(40E)前記遊技価値表示手段と前記設定表示手段とは、別の表示器で構成されることを特徴とする、前各項に記載の遊技機。
(40F)前記遊技価値表示手段は、
前記設定状態以外では、付与された遊技価値に関する情報を遊技の進行に従って遅滞なく表示し、
前記設定状態において、前記設定状態において表示されない文字、数字、図形のいずれかを表示し、
前記設定表示手段は、前記設定状態において、前記設定に関する情報を表示することを特徴とする、前各項に記載の遊技機。
(40G)前記遊技価値表示手段は、
前記設定状態以外では、付与された遊技価値に関する情報を遊技の進行に従って遅滞なく表示し、
前記設定状態において、消灯又は全点灯し、
前記設定表示手段は、前記設定状態において、前記設定に関する情報を表示することを特徴とする、前各項に記載の遊技機。
40Aから40Gの発明によると、基板上に配置される複数の表示の混同を防止できる。
(41A)遊技媒体が始動口を通過したことに基づいて当りに関する抽選を行う抽選手段と、
前記抽選の結果に基づいて複数の演出からいずれかの演出を決定する演出決定手段と、
前記演出決定手段によって決定された演出を実行する演出実行手段と、
所定の操作部に対して所定の操作が行われると、遊技に関する所定の設定情報を複数のうちのいずれかに決定する設定情報決定手段と、
前記所定の操作とは異なる操作が行われると、前記設定情報決定手段によって決定されている前記設定情報を所定の表示部に表示する設定情報確認手段と、を備え、
前記複数の演出には、前記設定情報決定手段によって決定されている前記設定情報を示唆可能な設定示唆演出が含まれており、
前記演出決定手段によって前記設定示唆演出を行うと決定されているときに前記異なる操作が行われたとしても当該設定示唆演出を実行することを可能とすることを特徴とする遊技機。
(41B)遊技媒体が始動口を通過したことに基づいて当りに関する抽選を行う抽選手段と、
所定の操作部に対して所定の操作が行われると、遊技に関する所定の設定情報を複数のうちのいずれかに決定する設定情報決定手段と、
前記抽選の結果に基づいて複数の演出からいずれかの演出を決定する演出決定手段と、
前記演出決定手段によって決定された演出を実行する演出実行手段と、
エラーを検知するエラー検知手段と、
前記エラー検知手段が検知したエラーを報知するエラー報知手段と、を備え、
前記複数の演出には、前記設定情報決定手段によって決定されている前記設定情報を示唆可能な設定示唆演出が含まれており、
前記演出実行手段は、所定条件を満たすエラーを前記エラー報知手段が報知している期間において、前記設定示唆演出を実行可能であることを特徴とする遊技機。
(41C)始動条件の成立に基づいて、抽選情報を取得する抽選情報取得手段と、
前記抽選情報取得手段が取得した抽選情報に基づいて、当りであるかを判定する判定手段と、
開始条件の成立に基づいて特別図柄変動を実行する特別図柄変動実行手段と、
前記始動条件の成立は満たされたものの前記開始条件の成立が満たされなかった場合には、所定数を上限として前記抽選情報を記憶して保留する保留手段と、
所定の操作部に対する操作に基づいて、遊技に関する所定の設定情報を複数のうちのいずれかに決定する設定情報決定手段と、
所定の演出が表示される表示手段と、を備え、
前記演出は、前記判定手段による判定結果に対する期待示唆演出、及び前記設定情報決定手段によって決定された前記設定情報を示唆可能な設定示唆演出を含み、
前記期待示唆演出が実行されることが決定されている特別図柄変動の変動期間中、又は該特別図柄変動に対応する抽選情報の保留中に前記始動条件が新たに成立した場合、該新たに成立した始動条件に対応した特別図柄変動における前記設定示唆演出の実行を制限することを特徴とする遊技機。
(41D)始動条件の成立に基づいて、抽選情報を取得する抽選情報取得手段と、
前記抽選情報取得手段が取得した抽選情報に基づいて、当りであるかを判定する判定手段と、
開始条件の成立に基づいて特別図柄変動を実行する特別図柄変動実行手段と、
前記始動条件の成立は満たされたものの前記開始条件の成立が満たされなかった場合には、所定数を上限として前記抽選情報を記憶して保留する保留手段と、
所定の操作部に対する操作に基づいて、遊技に関する所定の設定情報を複数のうちのいずれかに決定する設定情報決定手段と、
所定の演出が表示される表示手段と、を備え、
前記演出は、前記判定手段による判定結果に対する期待示唆演出、及び前記設定情報決定手段によって決定された前記設定情報を示唆可能な設定示唆演出を含み、
前記期待示唆演出が実行されることが決定されている特別図柄変動の変動期間中、又は該特別図柄変動に対応する抽選情報の保留中に前記始動条件が新たに成立した場合、該新たに成立した始動条件に対応した特別図柄変動において前記期待示唆演出及び前記設定示唆演出を実行可能であることを特徴とする遊技機。
(41E)始動条件の成立に基づいて、抽選情報を取得する抽選情報取得手段と、
前記抽選情報取得手段が取得した抽選情報に基づいて、当りであるかを判定する判定手段と、
開始条件の成立に基づいて特別図柄変動を実行する特別図柄変動実行手段と、
前記始動条件の成立は満たされたものの前記開始条件の成立が満たされなかった場合には、所定数を上限として前記抽選情報を記憶して保留する保留手段と、
所定の操作部に対する操作に基づいて、遊技に関する所定の設定情報を複数のうちのいずれかに決定する設定情報決定手段と、
所定の演出が表示される表示手段と、を備え、
前記演出は、前記判定手段による判定結果に対する期待示唆演出、及び前記設定情報決定手段によって決定された前記設定情報を示唆可能な設定示唆演出を含み、
前記期待示唆演出及び前記設定示唆演出が実行されることが決定されている特別図柄変動の変動期間中、又は該特別図柄変動に対応する抽選情報の保留中に前記始動条件が新たに成立した場合、該新たに成立した始動条件に対応した特別図柄変動における前記設定示唆演出の実行を制限することを特徴とする遊技機。
(41F)始動条件の成立に基づいて、抽選情報を取得する抽選情報取得手段と、
前記抽選情報取得手段が取得した抽選情報に基づいて、当りであるかを判定する判定手段と、
開始条件の成立に基づいて特別図柄変動を実行する特別図柄変動実行手段と、
前記始動条件の成立は満たされたものの前記開始条件の成立が満たされなかった場合には、所定数を上限として前記抽選情報を記憶して保留する保留手段と、
所定の操作部に対する操作に基づいて、遊技に関する所定の設定情報を複数のうちのいずれかに決定する設定情報決定手段と、
所定の演出が表示される表示手段と、を備え、
前記演出は、前記判定手段による判定結果に対する期待示唆演出、及び前記設定情報決定手段によって決定された前記設定情報を示唆可能な設定示唆演出を含み、
前記期待示唆演出及び前記設定示唆演出が実行されることが決定されている特別図柄変動の変動期間中、又は該特別図柄変動に対応する抽選情報の保留中に前記始動条件が新たに成立した場合、該新たに成立した始動条件に対応した特別図柄変動において前記期待示唆演出及び前記設定示唆演出の実行を制限することを特徴とする遊技機。
(41G)始動条件の成立に基づいて、抽選情報を取得する抽選情報取得手段と、
前記抽選情報取得手段が取得した抽選情報に基づいて、当りであるかを判定する判定手段と、
開始条件の成立に基づいて特別図柄変動を実行する特別図柄変動実行手段と、
前記始動条件の成立は満たされたものの前記開始条件の成立が満たされなかった場合には、所定数を上限として前記抽選情報を記憶して保留する保留手段と、
所定の操作部に対する操作に基づいて、遊技に関する所定の設定情報を複数のうちのいずれかに決定する設定情報決定手段と、
所定の演出が表示される表示手段と、を備え、
前記演出は、前記判定手段による判定結果に対する期待示唆演出、及び前記設定情報決定手段によって決定された前記設定情報を示唆可能な設定示唆演出を含み、
前記期待示唆演出及び前記設定示唆演出が実行されることが決定されている特別図柄変動の変動期間中、又は該特別図柄変動に対応する抽選情報の保留中に前記始動条件が新たに成立した場合、該新たに成立した始動条件に対応した特別図柄変動において前記期待示唆演出及び前記設定示唆演出を実行可能であることを特徴とする遊技機。
41A~41Gの発明によれば、遊技興趣を向上することができる。
(42A)遊技における当落抽選の結果によって遊技者に有利な遊技状態を導出する主制御手段を備える遊技機であって、
前記主制御手段は、
第1プログラム及び第2プログラムを記憶するプログラム記憶手段と、
前記第1プログラム及び前記第2プログラムにより所要の演算処理を行う演算手段と、
前記演算処理においてデータを一時的に格納する複数の記憶領域を有する第1記憶手段と、
前記第1記憶手段と同一の構成の記憶領域を有する第2記憶手段と、を有し、
前記第1記憶手段及び前記第2記憶手段は、いずれかがアクセス可能となるように、アクセス可否が切り替えられるものであって、
前記演算手段は、
前記第1プログラムの実行時に前記第1記憶手段を使用し、
前記第2プログラムの実行時に前記第2記憶手段を使用することを特徴とする遊技機。
(42B)前記第1記憶手段及び前記第2記憶手段は、前記演算手段に入力された一つの命令によって、アクセス可否が切り替えられることを特徴とする遊技機。
(42C)前記第1記憶手段をアクセス可能に切り替える命令と、前記第2記憶手段をアクセス可能に切り替える命令とは、命令(オペコード)及び引数(オペランド)の少なくともいずれかが異なることを特徴とする遊技機。
(42D)前記第1プログラムは、遊技における当落抽選を行う(遊技制御領域内の)プログラムであり、
前記第2プログラムは、遊技において付与された遊技価値に関する情報を算出する(遊技制御領域外の)プログラムであり、前記第1プログラムから呼び出されて実行されることを特徴とする遊技機。
(42E)遊技における当落抽選の結果によって遊技者に有利な遊技状態を導出する主制御手段を備える遊技機であって、
前記主制御手段は、
第1プログラム及び第2プログラムを記憶するプログラム記憶手段と、
前記第1プログラム及び前記第2プログラムにより所要の演算処理を行う演算手段と、
前記演算処理においてデータを一時的に格納する複数の記憶領域を有する第1記憶手段と、
前記第1記憶手段と同一の構成の記憶領域を有する第2記憶手段と、を有し、
前記第1記憶手段及び前記第2記憶手段は、いずれかがアクセス可能となるように、アクセス可否が切り替えられるものであって、
前記演算手段は、
前記第1プログラムの実行時には、前記第1記憶手段を使用し、
前記第2プログラムの開始時に、前記第2プログラムにおいて、前記第1記憶手段へアクセス不能に、前記第2記憶手段へアクセス可能に切り替え、
前記第2プログラムの実行時には、前記第2記憶手段を使用することを特徴とする遊技機。
(42F)前記演算手段は、前記第2プログラムの終了時に、前記第2プログラムにおいて、前記第2記憶手段へアクセス不能に、前記第1記憶手段へアクセス可能に切り替えることを特徴とする遊技機。
(42G)遊技における当落抽選の結果によって遊技者に有利な遊技状態を導出する主制御手段を備える遊技機であって、
前記主制御手段は、
第1プログラム及び第2プログラムを記憶するプログラム記憶手段と、
前記第1プログラム及び前記第2プログラムにより所要の演算処理を行う演算手段と、
前記演算処理においてデータを一時的に格納する複数の記憶領域を有する第1記憶手段と、
前記第1記憶手段と同一の構成の記憶領域を有する第2記憶手段と、を有し、
前記第1記憶手段及び前記第2記憶手段は、いずれかがアクセス可能となるように、アクセス可否が切り替えられるものであって、
前記演算手段は、
前記第1プログラムの実行時には、前記第1記憶手段を使用し、
前記第2プログラムを開始する場合に、前記第1プログラムにおいて、前記第1記憶手段へアクセス不能に、前記第2記憶手段へアクセス可能に切り替え、
前記第2プログラムの実行時には、前記第2記憶手段を使用することを特徴とする遊技機。
(42H)前記演算手段は、前記第2プログラムの終了後に、前記第2プログラムから復帰した前記第1プログラムにおいて、前記第2記憶手段へアクセス不能に、前記第1記憶手段へアクセス可能に切り替えることを特徴とする遊技機。
42A~42Hの発明によれば、プログラム間で処理を移行する際に、簡素な命令で高速にデータを退避でき、プログラム作成時の注意事項を低減できる。
(43A)遊技者に遊技価値を付与する遊技機であって、
遊技における当落抽選の結果によって遊技者に有利な遊技状態を導出する主制御手段と、
前記主制御手段からの指示に基づいて遊技における演出を制御する周辺制御手段と、
前記周辺制御手段に制御されて演出表示が行われる表示装置と、
演出絵柄を表示する表示パネルと、
前記周辺制御手段に制御されて、前記表示パネルの側方の複数の位置から、前記表示パネル内を進行するように光を照射する発光装置とを備え、
前記表示パネルは、前記表示パネル内を特定の経路で進行する光を前記遊技機の前面側に反射する複数の第1の反射部と、前記表示パネル内を複数の経路で進行する光を前記遊技機の前面側に反射する複数の第2の反射部とを有し、
前記周辺制御手段は、
前記発光装置を所定のパターンで発光させて前記第1の反射部が反射する光を変化させることによって、動的な絵柄を前記表示パネルに表示し、
前記発光装置からの光を前記第2の反射部が反射することによって、静的な絵柄を前記表示パネルに表示することを特徴とする遊技機。
(43B)前記発光装置は、複数の位置から前記表示パネルの側方に光を照射する複数の発光素子を有し、
前記周辺制御手段は、前記複数の発光素子の発光色を時間の経過に応じて変更し、前記表示パネル内を異なる色の光が異なる経路で進行するようにして、前記複数の第1の反射部から異なる色の光を出射させることによって、前記複数の第1の反射部により映し出される絵柄の色を時間の経過に応じて変化させることを特徴とする、前各項に記載の遊技機。
(43C)前記発光装置は、複数の位置から前記表示パネルの側方に光を照射する複数の発光素子を有し、
前記周辺制御手段は、前記複数の発光素子の点灯を時間の経過に応じて切り替え、前記表示パネル内の光の経路を制御し、前記複数の第1の反射部の少なくとも一部から光を出射させることによって、前記複数の第1の反射部により映し出される絵柄の色を時間の経過に応じて変化させることを特徴とする、前各項に記載の遊技機。
(43D)前記発光装置は、複数の位置から前記表示パネルの側方に光を照射する複数の発光素子を有し、
前記周辺制御手段は、前記複数の発光素子のうち、発光する発光素子の数を時間の経過に応じて切り替え、前記表示パネル内の光の経路を制御し、前記複数の第1の反射部の少なくとも一部から光を出射させることによって、前記複数の第1の反射部により映し出される絵柄の色を時間の経過に応じて変化させることを特徴とする、前各項に記載の遊技機。
43Aから43Dの発明によると、動いて見える絵柄と静止して見える絵柄を一枚の導光板で表示でき、遊技興趣の低下を抑制できる。
(44A)遊技者に遊技価値を付与する遊技機であって、
遊技における当落抽選の結果によって遊技者に有利な遊技状態を導出する主制御手段と、
前記主制御手段からの指示に基づいて遊技における演出を制御する周辺制御手段と、
前記周辺制御手段に制御されて演出表示が行われる表示装置と、
演出絵柄を表示する表示パネルと、
前記周辺制御手段に制御されて、前記表示パネルの側方の複数の位置から、前記表示パネル内を進行するように光を照射する発光装置と備え、
前記表示パネルは、前記表示パネル内を特定の経路で進行する光を前記遊技機の前面側に反射する複数の第1の反射部と、前記表示パネル内を複数の経路で進行する光を前記遊技機の前面側に反射する複数の第2の反射部とを有し、
前記第1の反射部は、前記表示パネル内を特定の経路で進行する光を、遊技者の右眼に到達する方向に反射する複数の第1右眼用反射部と、遊技者の左眼に到達する方向に反射する複数の第1左眼用反射部とを含み、
前記複数の第1右眼用反射部は、右眼用絵柄を形成するように、前記表示パネルに配置され、
前記複数の第1左眼用反射部は、前記右眼用絵柄と異なる位置に左眼用絵柄を形成するように、前記表示パネルに配置され、
前記周辺制御手段は、
前記第1右眼用反射部と前記第1左眼用反射部とに同じパターンで発光する光が到達するように前記発光装置を発光させることによって、前記右眼用絵柄と前記左眼用絵柄とを前記表示パネルに表示させて、左右眼の視差が生じる立体絵柄を遊技者に認識させ、
前記発光装置からの光を前記第2の反射部で反射することによって、左右眼の視差が生じない平面絵柄を前記表示パネルに表示することを特徴とする遊技機。
(44B)前記第2の反射部は、前記表示パネル内を複数の経路で進行する光を前記遊技機の前面側であって、遊技者の右眼に到達する方向及び左眼に到達する方向に反射することによって、前記表示パネルに前記平面絵柄を表示することを特徴とする、前各項に記載の遊技機。
(44C)前記第2の反射部は、前記表示パネル内を特定の経路で進行する光を遊技者の右眼に到達する方向に反射する複数の第2右眼用反射部と、遊技者の左眼に到達する方向に反射する複数の第2左眼用反射部とを含み、
前記複数の第2右眼用反射部は、右眼用絵柄を形成するように、前記表示パネルに配置され、
前記複数の第2左眼用反射部は、前記右眼用絵柄と同じ位置に左眼用絵柄を形成するように、前記表示パネルに配置され、
前記第2の反射部が反射する光によって、前記表示パネルに前記平面絵柄を表示することを特徴とする、前各項に記載の遊技機。
44Aから44Cの発明によると、立体的な絵柄と平面的な絵柄を一枚の導光板で表示でき、遊技興趣の低下を抑制できる。
(45A)遊技者に遊技価値を付与する遊技機であって、
遊技における当落抽選の結果によって遊技者に有利な遊技状態を導出する主制御手段と、
前記主制御手段からの指示に基づいて遊技における演出を制御する周辺制御手段と、
前記周辺制御手段に制御されて演出表示が行われる表示装置と、
演出絵柄を表示する表示パネルと、
前記周辺制御手段に制御されて、前記表示パネルの側方の複数の位置から、前記表示パネル内を進行するように光を照射する発光装置と備え、
前記周辺制御手段は、
前記発光装置を発光させることによって動的な絵柄と静的な絵柄とを前記表示パネルに表示可能であり、
前記動的な絵柄の表示、及び、前記静的な絵柄の表示を組み合わせることによって、前記当落抽選の結果を示唆する演出を行うことを特徴とする遊技機。
(45B)前記表示パネルは、前記表示パネル内を特定の経路で進行する光を反射し前記遊技機の前面側に出射する複数の第1の反射部と、前記表示パネル内を複数の経路で進行する光を反射し前記遊技機の前面側に出射する複数の第2の反射部とを有し、
前記周辺制御手段は、
前記発光装置を所定のパターンで発光させることによって、前記表示パネル内を進行する光の経路を変えて、前記第1の反射部が反射する光を変化させることによって、変化する絵柄を前記表示パネルに表示し、
前記発光装置からの光を前記第2の反射部が反射することによって、静止している絵柄を前記表示パネルに表示し、
前記変化する絵柄の表示、及び、前記静止している絵柄の表示を組み合わせることによって、前記当落抽選の結果を示唆する演出を行うことを特徴とする、前各項に記載の遊技機。
45Aから45Bの発明によると、動いて見える絵柄と静止して見える絵柄を一枚の導光板で表示でき、遊技興趣の低下を抑制できる。
(46A)遊技者に遊技価値を付与する遊技機であって、
遊技における当落抽選の結果によって遊技者に有利な遊技状態を導出する主制御手段と、
前記主制御手段からの指示に基づいて遊技における演出を制御する周辺制御手段と、
前記周辺制御手段に制御されて演出画像を表示する表示装置と、
演出絵柄を表示する表示パネルと、
前記周辺制御手段に制御されて、前記表示パネルの側方の複数の位置から、前記表示パネル内を進行するように光を照射する発光装置と備え、
前記表示パネルは、前記表示パネル内を進行する光を前記遊技機の前面側に反射する複数の反射部を有し、
前記周辺制御手段は、
前記発光装置を発光させることによって、ターゲット絵柄を前記表示パネルに表示し、
前記ターゲット絵柄に向かって移動する画像を前記表示装置に表示することを特徴とする遊技機。
(46B)前記表示パネルに表示される絵柄と前記表示装置に表示される画像とは、同じキャラクタ又は文字を表すものであることを特徴とする、前各項に記載の遊技機。
(46C)前記周辺制御手段は、前記ターゲット絵柄を前記表示パネルに表示した後に、前記ターゲット絵柄に向かって移動する画像を前記表示装置に表示することを特徴とする、前各項に記載の遊技機。
(46D)前記周辺制御手段は、前記ターゲット絵柄に向かって移動する画像を前記表示装置に表示した後に、前記ターゲット絵柄を前記表示パネルに表示させることを特徴とする、前各項に記載の遊技機。
46Aから46Dの発明によると、一枚の導光板で複数の絵柄や異なる態様の絵柄を表示でき、遊技興趣の低下を抑制できる。
(47A)所定条件が成立したことに伴い、遊技者に有益となる特別遊技の抽選を行う遊技制御手段と、
前記遊技制御手段が行う制御に関する設定値を変更または確認するために操作される設定操作手段と、を備える遊技機であって、
前記遊技制御手段は、
前記遊技機への電源投入時に実行される電源投入時処理と、所定の周期毎に実行される定期処理とを実行し、
前記設定操作手段が操作された状態で前記遊技機への電源が投入された場合に、前記電源投入時処理において、前記設定操作手段の操作状態に応じて、前記設定値を変更可能な設定変更状態または前記設定値を変更不能な設定確認状態に対応する設定を実行し、
前記設定変更状態または前記設定確認状態において、前記設定変更状態または前記設定確認状態に対応する設定を実行した後に、前記定期処理において、前記設定変更状態または前記設定確認状態に対応する処理を実行可能とすることを特徴とする遊技機。
(47B)前記定期処理は、前記設定値の変更に関連する処理と、前記設定値の確認に関連する処理と、通常の遊技に関連する処理と、前記複数の処理のうち少なくとも二つにおいて共通に実行される処理とを含むことを特徴とする前各項に記載の遊技機。
(47C)前記定期処理は、少なくとも、前記通常の遊技に関連する処理を実行する第1の繰り返し処理と、前記設定の変更に関連する処理を実行する第2の繰り返し処理とによって構成され、
前記遊技制御手段は、遊技機の動作モードによって、前記第1の繰り返し処理と前記第2の繰り返し処理とを選択的に実行することを特徴とする前各項に記載の遊技機。
(47D)前記メモリは、電源遮断時に記憶内容がバックアップされる領域に、遊技機の動作状態を記録する設定状態管理領域を含み、
前記遊技制御手段は、
前記設定変更モードにおいて、前記所定の条件として、前記設定変更モードである旨を前記設定状態管理領域に設定し、
前記設定確認モードにおいて、前記所定の条件として、前記設定確認モードである旨を前記設定状態管理領域に設定することを特徴とする遊技機。
(48)所定条件が成立したことに伴い、遊技者に有益となる特別遊技の抽選を行う遊技制御手段と、
前記遊技制御手段が行う制御に関する設定値を変更または確認するために操作される設定操作手段と、を備える遊技機であって、
前記遊技制御手段は、
前記遊技機への電源投入時に実行される電源投入時処理と、所定の周期毎に実行される定期処理とを実行し、
前記設定操作手段が操作された状態で前記遊技機への電源が投入された場合に、前記電源投入時処理において、前記設定操作手段の操作状態に応じて、前記設定値を変更可能な設定変更状態または前記設定値を変更不能な設定確認状態に対応する設定を実行し、
前記定期処理は、通常遊技に関する通常遊技処理と、設定変更または設定確認に関する設定処理と、を実行可能とし、
前記通常遊技処理は、複数の処理によって構成され、前記複数の処理のうち特定の処理は、前記通常遊技と前記設定処理とで共通に実行されうる処理であることを特徴とする遊技機。
(49A)所定条件が成立したことに伴い、遊技者に有益となる特別遊技の抽選を行う遊技制御手段と、
前記遊技制御手段が行う制御に関する設定値を変更または確認するために操作される設定操作手段と、
を備える遊技機であって、
前記設定操作手段は、少なくとも第1の設定操作手段と第2の設定操作手段とで構成され、
前記遊技制御手段は、
遊技に関連する情報を記憶可能な記憶手段を備え、
前記遊技機への電源投入時に実行される電源投入時処理において、前記設定操作手段の出力信号を前記記憶手段のうちの特定の記憶手段に記憶保持し、
前記電源投入時処理において、前記設定操作手段が操作されているか否かを判定するときに、前記設定操作手段の出力信号を読み込むことなく、前記特定の記憶手段に記憶保持した情報にもとづいて判定し、
前記第2の設定操作手段は、前記電源投入時処理において、前記第1の設定操作手段が操作されておらず、かつ前記第2の設定操作手段のみが操作されている場合に、前記記憶手段を初期化するための手段であって、
前記電源投入時処理において、前記第1の設定操作手段が操作されておらず、かつ前記第2の設定操作手段のみが操作されている場合に、前記記憶手段を初期化するときには、前記特定の記憶手段を初期化しないことを特徴とする遊技機。
(49B)表示装置における演出を制御する周辺制御手段を備え、
前記遊技制御手段は、前記周辺制御手段の起動後に、前記メモリに格納された出力信号によって、遊技機を起動するモードを判定することを特徴とする前各項に記載の遊技機。
(50A)所定条件が成立したことに伴い、遊技者に有益となる特別遊技の抽選を行う遊技制御手段と、
前記遊技制御手段が行う制御に関する設定値を変更または確認するために操作される設定操作手段と、
を備える遊技機であって、
前記設定操作手段は、少なくとも第1の設定操作手段と第2の設定操作手段とで構成され、
前記遊技制御手段は、
遊技に関連する情報を記憶可能な第1の記憶領域と、前記第1の記憶領域とは異なる第2の記憶領域とを少なくとも有する記憶手段を備え、
前記第1の記憶領域は、前記設定値を格納する領域であり、
前記第2の記憶領域は、遊技によって使用される各種パラメータを格納する領域であって、
前記遊技制御手段は、
前記設定値が正常な値でないと判定した場合に、前記第1の記憶領域及び前記第2の記憶領域を初期化し、
前記設定操作手段のうち前記第1の設定操作手段が操作されておらず、かつ前記第2の設定操作手段が操作されていると判定した場合に、前記第1の記憶領域を初期化せず、前記第2の記憶領域を初期化することを特徴とする遊技機。
(50B)前記メモリは、さらに第3の記憶領域を含み、
前記遊技制御手段は、前記第3の条件が成立した場合に、前記第1の記憶領域、前記第2の記憶領域及び前記第3の記憶領域を初期化することを特徴とする前各項に記載の遊技機。
(50C)前記第3の記憶領域は、通常遊技によって使用される各種パラメータを格納する領域以外の記憶領域であり、
前記遊技制御手段は、停電発生時に前記メモリにバックアップされたデータが消去した場合、前記第3の条件が成立したと判定し、前記第1の記憶領域、前記第2の記憶領域及び前記第3の記憶領域を初期化することを特徴とする前各項に記載の遊技機。
(51A)所定条件が成立したことに伴い、遊技者に有益となる特別遊技の抽選を行う遊技制御手段と、
前記遊技制御手段が行う制御に関する設定値を変更または確認するために操作される設定操作手段と、
を備える遊技機であって、
前記遊技制御手段は、
遊技に関連する情報を電源遮断中でも保持可能な記憶手段を備え、
前記遊技機への電源投入時に実行される電源投入時処理と、所定の周期毎に実行される定期処理とを実行し、
前記設定操作手段が操作された状態で前記遊技機への電源が投入された場合に、前記電源投入時処理において、前記設定操作手段の操作状態に応じて、前記設定値を変更可能な設定変更状態または前記設定値を変更不能な設定確認状態に対応する設定を実行し、
前記記憶手段は、少なくとも前記電源投入時処理において、前記設定操作手段の操作状態に応じて、前記設定変更状態または前記設定確認状態に対応して設定される値が記憶される設定状態管理領域を含むことを特徴とする遊技機。
(51B)前記遊技制御手段が行う制御に関する設定値を変更する設定変更モードで起動するために操作される設定操作手段を備え、
前記遊技制御手段は、
前記設定状態管理領域にRAM異常が格納されている状態で前記遊技機が前記設定変更モードで起動するための操作がされると、前記設定状態管理領域に設定変更モードを記録し、前記メモリの所定の領域を初期化し、前記設定操作手段によって前記設定変更モードを終了する操作がされると、前記設定状態管理領域に通常遊技状態を記録し、遊技球の発射が可能な通常遊技状態で遊技機を起動し、
前記設定状態管理領域にRAM異常が格納されている状態で前記遊技機が前記設定確認モードで起動するための操作がされると、前記設定状態管理領域に記録されたRAM異常を継続し、前記設定操作手段によって前記設定確認モードを終了する操作がされても、前記設定状態管理領域に通常遊技状態を記録しないことを特徴とする前各項に記載の遊技機。
(52)所定条件が成立したことに伴い、遊技者に有益となる特別遊技の抽選を行う遊技制御手段と、
前記遊技制御手段が行う制御に関する設定値を変更または確認するために操作される設定操作手段と、
を備える遊技機であって、
前記遊技制御手段は、
前記遊技機への電源投入時に実行される電源投入時処理と、所定の第1周期毎に実行される第1定期処理と、所定の第2周期毎に実行される第2定期処理とを実行可能とし、
前記電源投入時処理において、前記設定操作手段において設定操作に伴う操作が行われているか否かを判定し、
前記設定操作手段において設定操作に伴う操作が行われていると判定した場合には、当該操作状態に応じて、前記設定値を変更可能な設定変更状態または前記設定値を変更不能な設定確認状態に対応する設定を実行し、
前記設定操作手段において設定操作に伴う操作が行われていないと判定した場合には、前記設定値を変更可能な設定変更状態または前記設定値を変更不能な設定確認状態に対応する設定を行うことなく、通常の遊技開始処理を実行可能とし、
前記第1定期処理は、前記電源投入時処理において、前記設定変更状態または前記設定確認状態に対応する設定を実行した後に実行され、
前記第2定期処理は、前記電源投入時処理において、通常の遊技開始処理を実行可能とした後に実行されることを特徴とする遊技機。
(53A)遊技の進行を制御する遊技制御手段と、
前記遊技制御手段から出力される制御信号に従って制御される役物と、
前記役物を駆動するための駆動信号を出力する第1のドライバ回路と、を備え、
遊技機の検査に使用される検査用信号を出力するための検査用信号生成回路を搭載可能な遊技機であって、
前記検査用信号生成回路は、
前記第1のドライバ回路と同じ制御信号が入力され、該制御信号から検査用信号を生成する第2のドライバ回路と、
前記生成された検査用信号を出力する検査用コネクタとを含み、
前記第1のドライバ回路は、前記遊技制御手段からシリアル信号として出力される制御信号を、前記役物を駆動するための駆動信号に変換し、
前記第2のドライバ回路は、前記遊技制御手段からシリアル信号として出力される制御信号を、前記検査用信号に変換することを特徴とする遊技機。
(53B)前記第1のドライバ回路及び前記第2のドライバ回路は、入力された電源をスイッチングして出力信号を生成する出力トランジスタを有し、
前記第1のドライバ回路及び前記第2のドライバ回路は、異なる電圧が入力され、同じタイミングで変化する異なる電圧の信号を独立して生成することを特徴とする前各項に記載の遊技機。
(53C)前記第1のドライバ回路と接続されるコネクタが実装されており、前記第2のドライバ回路と接続されるコネクタが実装されていないことを特徴とする前各項に記載の遊技機。
(53D)第1のドライバ回路と接続されるコネクタはデスクリート部品であり、前記第2のドライバ回路と接続されるコネクタは面実装部品であることを特徴とする前各項に記載の遊技機。
(53E)遊技の進行を制御するために、所定の周期毎に定期処理を実行する遊技制御手段と、
前記遊技の進行に関する事象のうち、前記定期処理において前記遊技制御手段が取り込む事象を検出する第1の検出手段と、
前記遊技の進行に関する事象のうち、前記定期処理以外の処理において前記遊技制御手段が取り込む事象を検出する第2の検出手段とを備える遊技機であって、
前記遊技制御手段は、
前記第1の検出手段からの信号をシリアル信号に変換する変換手段と、
シリアル信号が入力されるシリアル入力ポートと、
前記第1の検出手段又は前記第2の検出手段の信号が個別に入力される汎用入力ポートとを有し、
前記第1の検出手段の信号は、前記汎用入力ポートへ、又は前記変換手段を介して前記シリアル入力ポートへのいずれかに入力され、
前記第2の検出手段の信号は、前記汎用入力ポートへ入力されることを特徴とする遊技機。
(53F)前記第1の検出手段は、遊技領域に向けて発射された遊技球を検出する球検出手段であり、
前記第2の検出手段は、前記遊技制御手段が行う制御に関する設定値を変更又は確認するために操作される設定操作手段であることを特徴とする前各項に記載の遊技機。
(53G)前記遊技制御手段から出力される制御信号に従って駆動される役物と、
前記役物を駆動するための駆動信号を出力する第1のドライバ回路とを備え、
前記シリアル入力ポートは、シリアル信号の入力及びシリアル信号の出力が可能なシリアル入出力ポートであって、
前記遊技制御手段は、前記役物を駆動するための制御信号を、前記シリアル入出力ポートから出力し、
前記第1のドライバ回路は、前記制御信号を前記駆動信号に変換することを特徴とする前各項に記載の遊技機。
(53H)遊技の進行を制御するために、所定の周期毎に定期処理を実行する遊技制御手段と、
前記遊技の進行に関する事象を検出する第1の検出手段及び第2の検出手段とを備える遊技機であって、
前記遊技制御手段は、
前記第1の検出手段からの信号をシリアル信号に変換する変換手段と、
シリアル信号が入力されるシリアル入力ポートと、
前記第1の検出手段又は前記第2の検出手段の信号が個別に入力される汎用入力ポートとを有し、
前記第1の検出手段は、一回の前記定期処理内で一回信号を検出した結果に基づいて信号レベルが判定されるものであって、
前記第2の検出手段は、一回の前記定期処理内で複数回信号を検出した結果に基づいて信号レベルが判定されるものであって、
前記第1の検出手段の信号は、前記汎用入力ポートへ、又は前記変換手段を介して前記シリアル入力ポートへのいずれかに入力され、
前記第2の検出手段の信号は、前記汎用入力ポートへ入力され、
前記遊技制御手段は、一回の前記定期処理内で、前記第2の検出手段の信号を複数回検出して信号レベルを判定することを特徴とする遊技機。
(53I)前記第1の検出手段は、遊技領域に向けて発射された遊技球を検出する球検出手段であり、
前記第2の検出手段は、前記遊技制御手段が行う制御に関する設定値を変更又は確認するために操作される設定操作手段であることを特徴とする前各項に記載の遊技機。
(53J)遊技の進行を制御する遊技制御手段と、
前記遊技制御手段から出力される制御信号に従って駆動される表示装置と、
前記役物を駆動するための駆動信号を出力する第1のドライバ回路とを備える遊技機であって、
前記遊技制御手段は、第1のプリント基板に搭載されており、
前記第1のドライバ回路は、前記遊技制御手段からシリアル信号として出力される制御信号を、前記表示装置を駆動するための駆動信号に変換するものであって、第2のプリント基板に搭載されており、
前記第1のプリント基板及び前記第2のプリント基板は、前記所定の周期で繰り返す信号が変換されたシリアル信号を第1のプリント基板側から伝送するシリアル通信線で接続されることを特徴とする遊技機。
(53K)遊技機の検査に使用される検査用信号を出力するための検査用信号生成回路を搭載可能であり、
前記検査用信号生成回路は、
前記第1のドライバ回路と同じ制御信号が入力され、該制御信号から検査用信号を生成する第2のドライバ回路と、
前記生成された検査用信号を出力する検査用コネクタとを含み、
前記第2のドライバ回路は、前記遊技制御手段からシリアル信号として出力される制御信号を、前記検査用信号に変換するものであって、前記第1のプリント基板に搭載されることを特徴とする遊技機。
(53L)前記第1のプリント基板及び前記第2のプリント基板は、一つの基板ボックスに収容されることを特徴とする前各項に記載の遊技機。
(53M)前記第1のプリント基板及び前記第2のプリント基板は、異なる基板ボックスに収容され、
前記第1のプリント基板はかしめ機構によって封印されていることを特徴とする前各項に記載の遊技機。
(53N)前記第1のドライバ回路及び前記第2のドライバ回路は、入力された電源をスイッチングして出力信号を生成する出力トランジスタを有し、
前記第1のドライバ回路及び前記第2のドライバ回路は、異なる電圧が入力され、同じタイミングで変化する異なる電圧の信号を独立して生成することを特徴とする前各項に記載の遊技機。
[16.設定機能実行時における各種基板との通信]
前述したように、設定機能を有する遊技機では、特定の操作部を操作した場合に設定機能(設定情報の確認(「設定確認」)及び変更(「設定変更」))を実行可能としている。設定機能の起動方法等については、前述したとおりであるが、電源投入時の主制御基板側の処理やタイマ割込み処理については別例を掲げて説明する。
本実施例では、遊技機の電源投入時及び設定情報を変更した場合に、主制御基板1310を認識するための情報である主制御認識情報を球情報制御基板(払出制御基板951)に送信する。主制御認識情報には、例えば、主制御MPU1311のチップID番号が含まれる。これにより、遊技機に設置されている主制御MPU1311(主制御基板1310)が正規なものであるのか球情報制御基板側で判断し、正規なものと判断されなかった場合には、球情報制御基板は賞球に関する動作を停止させることができ、主制御MPU1311(主制御基板1310)の改竄等の不正の防止を可能にするとともに、主制御基板1310での設定情報の変更を球情報制御基板に適切なタイミングで反映させることができる。
[16-1.初期化処理]
まず、本実施形態における初期化処理(別例5)について説明する。図274及び図275は、別例5の初期化処理を示すフローチャートである。別例5の初期化処理は、図21及び図22にて説明した初期化処理の他に設定機能に関連する処理を追加し、役物比率算出に関連する処理を省略したものであるが、役物比率算出に関連する処理を省略しなくてもよく、簡略化するために除いたものである。
遊技機1に電源が投入されると、主制御基板1310の主制御MPU1311は、電源投入時処理を行う。具体的には、まず、スタックポインタの設定を行う(ステップP10)。スタックポインタは、例えば、使用中の記憶素子(レジスタ)の内容を一時記憶するためにスタックに積んだアドレスを示したり、サブルーチンを終了して本ルーチンに復帰するときの本ルーチンの復帰アドレスを一時記憶するためにスタックに積んだアドレスを示したりするものであり、スタックが積まれるごとにスタックポインタが進む。ステップP10では、スタックポインタに初期アドレスをセットし、この初期アドレスから、レジスタの内容、復帰アドレス等をスタックに積んで行く。そして最後に積まれたスタックから最初に積まれたスタックまで、順に読み出すことによりスタックポインタが初期アドレスに戻る。電源投入時処理は、ステップP10~ステップP52の処理に相当する。
ステップP10に続いて、主制御MPU1311は、ウェイトタイマ処理1を行い(ステップP12)、停電予告信号が入力されているか否かを判定する(ステップP14)。なお、電源投入時から所定電圧となるまでの間では電圧がすぐに上がらない。一方、停電又は瞬停(突発的に電力の供給が一時停止する現象)となるときでは電圧が下がり、停電予告電圧より小さくなると、球情報制御基板の停電監視回路から停電予告として停電予告信号が出力されて主制御MPUに入力される。電源投入時から所定電圧に上がるまでの間では同様に電圧が停電予告電圧より小さくなると、球情報制御基板の停電監視回路から停電予告信号が入力される。
そこで、ステップP12のウェイトタイマ処理1は、電源投入後、電圧が停電予告電圧より大きくなって安定するまで待つための処理であり、本実施形態では、待ち時間(ウェイトタイマ)として200ミリ秒(ms)が設定されている。ステップP14の判定では、球情報制御基板の停電監視回路からの停電予告信号に基づいて行う。電源投入後、電圧が停電予告電圧より大きくなって安定すると、停電監視回路からの停電予告信号が出力なしとなり、ステップP16に進む。
ステップP16に進むと、主制御MPU1311は、RAMクリアスイッチ(図76)が操作されているか否かを判定する(ステップP16)。この判定は、主制御基板1310のRAMクリアスイッチが操作され、その操作信号(検出信号)が主制御MPUに入力されているか否かにより行う。検出信号が入力されているときにはRAMクリアスイッチが操作されていると判定する一方、検出信号が入力されていないときにはRAMクリアスイッチが操作されていないと判定する。
ステップP16でRAMクリアスイッチが操作されていると判定したときには、主制御MPU1311は、RAMクリア報知フラグRCL-FLGに値1をセットし(ステップP18)、ステップP30に移行する一方、ステップP16でRAMクリアスイッチが操作されていないと判定したときには、RAMクリア報知フラグRCL-FLGに値0をセットし(ステップP19)、ステップP20に移行する。
このRAMクリア報知フラグRCL-FLGは、主制御MPU1311に内蔵されたRAM(以下、「主制御内蔵RAM」と記載する。)に記憶されている、確率変動、未払い出し賞球等の遊技に関する遊技情報を消去するか否かを示すフラグであり、遊技情報を消去するとき値1、遊技情報を消去しないとき値0にそれぞれ設定される。なお、ステップP18及びステップP19でセットされたRAMクリア報知フラグRCL-FLGの値は、主制御MPUの汎用記憶素子(汎用レジスタ)に記憶される。
ステップP20に進むと、主制御MPU1311は、主制御MPU1311と球情報制御基板のMPUとの組み合わせが、適正なものであるか否かを判定する組合せ認証処理を実行する。球情報制御基板から出力される枠メーカー識別情報を主制御MPU1311の枠メーカー識別情報格納部に格納し、適正な枠メーカー識別情報が出力されたか否かを認証する。前記認証が適正に行われればステップP30に進む一方、適正なものでは無いと判定された場合は、スピーカーや液晶表示装置等を用いて異常報知を行う。
主制御MPUは、ステップP30に移行すると、ウェイトタイマ処理2を行う(ステップP30)。このウェイトタイマ処理2では、周辺制御基板1510の液晶制御部による液晶表示装置1600の描画制御を行うシステムが起動する(ブートする)まで待っている。本実施形態では、ブートするまでの時間(ブートタイマ)として2秒(s)が設定されている。
主制御MPU1311は、ウェイトタイマ処理2(ステップP30)が完了すると、本実施形態では、主制御MPU1311は、設定情報を変更する操作があったか否かを判定する(ステップP3031)。設定情報を変更する操作とは、設定情報を確認するための操作ではなく、設定情報を変更するための操作である。
主制御MPU1311は、設定情報を変更する操作があった場合には(ステップP3031の結果が「YES」)、新たな設定情報に基づいて電源投入後の遊技が進行されるため、記憶領域内の遊技情報をクリアするために、ステップP44以降の処理を実行する。
一方、主制御MPU1311は、設定情報を変更する操作がなかった場合には(ステップP3031の結果が「NO」)、RAMクリア報知フラグRCL-FLGが値0である否かを判定し、RAMクリア報知フラグRCL_FLGの値に基づいて処理を分岐させる(ステップP32)。上述したように、RAMクリア報知フラグRCL-FLGは、遊技情報を消去するとき値1、遊技情報を消去しないとき値0にそれぞれ設定される。ステップP32においてRAMクリア報知フラグRCL-FLGが値0であると判定した場合、つまり遊技情報を消去しないときには、チェックサムの算出を行う(ステップP34)。このチェックサムは、主制御内蔵RAMに記憶されている遊技情報を数値とみなしてその合計を算出するものである。
ステップP34に続いて、主制御MPU1311は、算出したチェックサムの値(サム値)が後述する電源断時処理(電源断時)において記憶されているチェックサムの値(サム値)と一致しているか否かを判定する(ステップP36)。一致しているときには、バックアップフラグBK-FLGが値1であるか否かを判定する(ステップP38)。このバックアップフラグBK-FLGは、遊技情報、チェックサムの値(サム値)及びバックアップフラグBK-FLGの値等のバックアップ情報を後述する電源断時処理において主制御内蔵RAMに記憶保持したか否かを示すフラグであり、電源断時処理を正常に終了したとき値1、電源断時処理を正常に終了していないとき値0にそれぞれ設定される。
バックアップフラグの判定処理(ステップP38)が終了すると、主制御MPU1311は、設定情報を確認する操作があったか否かを判定する(ステップP3038)。設定情報を確認する操作があった場合には(ステップP3038の結果が「YES」)、設定情報を確認中であることを示す設定確認中情報をセットする(ステップP3039)。設定情報を確認中の場合には遊技を継続できないようにするため、設定確認中情報をセットすることによって遊技や賞球に関わる処理を実行しないように制御することができる。設定情報を確認する操作がなかった場合(ステップP3039の結果が「NO」)、又は、設定確認中情報をセットした後には(ステップP3039)、復電時として主制御内蔵RAMの作業領域を設定する(ステップP40)。この設定は、バックアップフラグBK-FLGに値0をセットするほか、主制御MPUに内蔵されたROM(以下、「主制御内蔵ROM」と記載する。)から復電時情報を読み出し、この復電時情報を主制御内蔵RAMの作業領域にセットする。なお、「復電」とは、電源を遮断した状態から電源を投入した状態のほかに、停電又は瞬停からその後の電力の復旧した状態、高周波が照射されたことを検出してリセットし、その後に復帰した状態も含める。
ステップP40に続いて、主制御MPU1311は、電源投入時コマンド作成処理を行う(ステップP42)。この電源投入時コマンド作成処理では、バックアップ情報から遊技情報を読み出してこの遊技情報に応じた各種コマンドを主制御内蔵RAMの所定記憶領域に記憶する。
一方、ステップP32でRAMクリア報知フラグRCL-FLGが値0でない(値1である)と判定した場合、つまり遊技情報を消去するときには、又はステップP36でチェックサムの値(サム値)が一致していないときには、又はステップP38でバックアップフラグBK-FLGが値1でない(値0である)と判定した場合、つまり電源断時処理が正常に終了していないときには、主制御MPU1311は、主制御内蔵RAMの全領域をクリアする(ステップP44)。具体的には、値“00h”を主制御内蔵RAMに書き込むことよって行う(なお、初期値として主制御内蔵ROMから所定値を読み出して、セットしてもよい)。また、大当り判定用乱数の初期値の決定に用いるための大当り判定用初期値決定用乱数は、RAMクリアスイッチが操作されて遊技情報を消去するとき、サム値が一致していないとき、又は電源断時処理を正常に終了していないときには、主制御MPUの不揮発性のRAMに予め記憶された固有のIDコードを取り出し、この取り出したIDコードに基づいて大当り判定用乱数を更新するカウンタの固定数値範囲から常に同一の固定値を導出する初期値導出処理を実行し、この固定値が初期値としてセットされる。
一方、RAMクリアスイッチが操作された場合(RAMクリア操作、ステップP32の結果が「NO」)、正常にRAMに情報が記憶されていない場合(RAM異常、ステップP36の結果が「NO」、ステップP38の結果が「NO」)、設定変更時(ステップP3031の結果が「YES」)の場合には、主制御内蔵RAMの全領域をクリアする(ステップP44)。具体的には、値“00h”を主制御内蔵RAMに書き込むことよって行う(なお、初期値として主制御内蔵ROMから所定値を読み出して、セットしてもよい)。また、大当り判定用乱数の初期値の決定に用いるための大当り判定用初期値決定用乱数は、RAMクリアスイッチが操作されて遊技情報を消去するとき、サム値が一致していないとき、又は電源断時処理を正常に終了していないときには、主制御MPUの不揮発性のRAMに予め記憶された固有のIDコードを取り出し、この取り出したIDコードに基づいて大当り判定用乱数を更新するカウンタの固定数値範囲から常に同一の固定値を導出する初期値導出処理を実行し、この固定値が初期値としてセットされる。
なお、主制御内蔵RAMをクリアする領域を全領域ではなく、各状況に応じてクリアする領域を異ならせてもよい。例えば、RAMクリア操作時には、設定値及び設定に関するワーク領域以外(遊技処理に関わる一部のRAM領域を含む)をクリアし、RAM異常時にはRAM内のすべての領域をクリアし、設定変更時は、遊技処理に関わる一部のRAM領域のみをクリアするようにしてもよい。すなわち、RAM異常時にはすべての領域をクリアするが、その他の場合には操作内容に応じて対応する領域をクリアし、例えば、設定値、設定処理に関するワーク領域については、RAM異常と判定されない限りクリアしないようにする。
また、領域のクリアは各領域に“00h”を設定する以外にも、遊技者や遊技場(ホール)に不利益とならない初期値を設定するようにしてもよい。例えば、設定値が“00h”の場合に最も遊技者に有利な設定(高設定)となっていると、RAMクリア時に00hが設定されて高設定から遊技がスタートすることで遊技者にとっては有利となるがホールには不利益となるため、設定値のワーク領域をクリアする際には、最低設定(例えば、“05h”)をセットする。
ステップP42又はステップP48の処理が終了すると、主制御MPU1311は、設定処理があるか否か、すなわち、設定確認又は設定変更があるか否かを判定する(ステップP3048)。設定処理がない場合には(ステップP3048の結果が「NO」)には、主制御認識情報を球情報制御基板に通知する設定を行う(ステップP3049)。なお、設定処理がある場合には(ステップP3048の結果が「YES」)には、主制御認識情報を球情報制御基板に通知する設定を行わずに、ステップP50以降の処理を実行する。この場合、タイマ割込み処理において、設定確認又は設定変更が終了した後、主制御認識情報を球情報制御基板に通知する設定を行う。
また、主制御MPU1311は、主制御認識情報の通知設定時に、球情報制御基板に送信する情報を格納するための記憶領域をクリアする。例えば、未送信の情報を格納する領域がリングバッファ形式であれば、バッファ内の読み出し位置及び書き込み位置を示すリードカウンタ及びライトカウンタを初期化(ともに0を設定)し、さらに、SIO通信用のバッファもあわせてクリアする。これらのバッファに情報が残存していると電源復旧時に最初に残存した情報が送信されてしまうので、電源投入後必ず最初に主制御認識情報が球情報制御基板に送信されるようにするためにこのように構成している。球情報制御基板は、主制御基板1310から主制御認識情報を受信すると対応する処理を実行するとともに、主制御基板1310に応答信号を送信する。主制御認識情報の通知を設定してから応答信号を受信するまでの間、主制御基板1310は主制御認識情報応答信号受信待機状態となる。主制御認識情報の応答信号を受信すると、主制御認識情報応答信号受信待機状態は解除される。
続いて、主制御MPU1311は、割り込み関連の処理(ステップP50及びP52)を実行することによって、タイマ割込み処理の実行を許可する。なお、本実施形態では、主制御認識情報を球情報制御基板に通知する設定がなされた場合、球情報制御基板から応答信号を受信するまで通常遊技を行うための処理を実行しないように構成される。例えば、後述するタイマ割込み処理で応答信号を受信しているか否かを判定し、受信していない場合には処理をスキップする。このように構成することによって、球情報制御基板の起動を確実にしてから遊技を開始することが可能となる。
タイマ割込み処理の実行が許可されると、主制御MPU1311は、メインループ処理を実行する。具体的には、まず、ウォッチドックタイマクリアレジスタWCLに値Aをセットする(ステップP54)。このウォッチドックタイマクリアレジスタWCLに、値A、値Bそして値Cを順にセットすることによりウォッチドックタイマがクリア設定される。
続いて、主制御MPU1311は、停電予告信号が入力されているか否かを判定する(ステップP56)。上述したように、遊技機1の電源を遮断したり、停電又は瞬停したりするときには、電圧が停電予告電圧以下となると、停電予告として停電予告信号が球情報制御基板の停電監視回路から入力される。ステップP56の判定は、この停電予告信号に基づいて行う。
ステップP56で停電予告信号の入力がないときには、主制御MPU1311は、非当落乱数更新処理を行う(ステップP58)。この非当落乱数更新処理では、例えば、リーチ判定用乱数、変動表示パターン用乱数、大当り図柄用初期値決定用乱数、及び小当り図柄用初期値決定用乱数等を更新する。このように、非当落乱数更新処理では、当落判定(大当り判定)にかかわらない乱数を更新する。なお、普通図柄当り判定用乱数、普通図柄当り判定用初期値決定用乱数及び普通図柄変動表示パターン用乱数等もこの非当落乱数更新処理により更新される。
ステップP58に続いて、再びステップP54に戻り、ウォッチドックタイマクリアレジスタWCLに値Aをセットし、ステップP56で停電予告信号の入力があるか否かを判定し、この停電予告信号の入力がなければ、ステップP58で非当落乱数更新処理を行い、ステップP54~ステップP58を繰り返し行う。なお、このステップP54~ステップP58の処理が「メインループ処理」に相当する。
一方、ステップP56で停電予告信号の入力があったときには、主制御MPU1311は、割り込み禁止設定を行う(ステップP60)。この設定により後述するタイマ割り込み処理が行われなくなり、主制御内蔵RAMへの書き込みを防ぎ、遊技情報の書き換えを保護している。
ステップP60に続いて、主制御MPU1311は、始動口ソレノイド2550、大入賞口ソレノイド(アタッカソレノイド(第一アタッカソレノイド2113、第二上アタッカソレノイド2553、第二下アタッカソレノイド2556)、特別図柄表示器(第一特別図柄表示器、第二特別図柄表示器)1185、特別図柄記憶表示器、普通図柄表示器1189、普通図柄記憶表示器、遊技状態表示器、ラウンド表示器等に出力している駆動信号を停止する(ステップP62)。
ステップP62に続いて、主制御MPU1311は、チェックサムの算出を行ってこの算出した値を記憶する(ステップP64)。このチェックサムは、上述したチェックサムの値(サム値)及びバックアップフラグBK-FLGの値の記憶領域を除く、主制御内蔵RAMの作業領域の遊技情報を数値とみなしてその合計を算出する。
ステップP64に続いて、主制御MPU1311は、バックアップフラグBK-FLGに値1をセットする(ステップP66)。これにより、バックアップ情報の記憶が完了する。
ステップP66に続いて、主制御MPU1311は、ウォッチドックタイマのクリア設定を行う(ステップP68)。このクリア設定は、上述したように、ウォッチドックタイマクリアレジスタWCLに値A、値Bそして値Cを順にセットすることにより行われる。
ステップP68に続いて、主制御MPU1311は、何も実行しない状態を繰り返すというループ処理に入る。なお、ステップP60~ステップP68の処理及びループ処理を「電源断時処理」という。このループ処理では、ウォッチドックタイマクリアレジスタWCLに値A、値Bそして値Cを順にセットしないためウォッチドックタイマがクリア設定されなくなる。このため、ウォッチドックタイマがタイムアウトしてタイムアウト信号を出力し、タイムアウト信号によって主制御MPUにリセットがかかり、その後主制御MPUは、この電源投入時処理を再び最初から行う。
遊技機1(主制御MPU1311)は、停電したとき又は瞬停したときにはリセットがかかり、その後の電力の復旧により電源投入時処理を行う。
なお、ステップP36では主制御内蔵RAMに記憶されているバックアップ情報が正常なものであるか否かを検査し、続いてステップP38では電源断時処理が正常に終了された否かを検査している。このように、主制御内蔵RAMに記憶されているバックアップ情報を2重にチェックすることによりバックアップ情報が不正行為により記憶されたものであるか否かを検査している。
[16-2.タイマ割り込み処理]
次に、主制御基板1310におけるタイマ割り込み処理(別例5)について説明する。図276は、別例5のタイマ割り込み処理を示すフローチャートである。別例5のタイマ割り込み処理は、図274に示した電源投入時処理において設定された割り込み周期(本実施形態では、4ms)ごとに繰り返し行われる。本実施形態におけるタイマ割込み処理では、設定情報の確認及び変更するための処理が追加されている。
タイマ割り込み処理が開始されると、主制御基板1310の主制御MPU1311は、まず、主制御認識情報応答信号受信待機状態であるか否かを判定する(ステップP3070)。主制御認識情報応答信号受信待機状態は、前述したとおり、主制御認識情報の通知設定後、球情報制御基板から出力された応答信号を受信するまで待機している状態である。主制御MPU1311は、主制御認識情報応答信号受信待機状態である場合には(ステップP3070の結果が「YES」)、以降の処理をスキップし、タイマ割り込み処理を終了する。なお、ステップP3070の処理では、主制御認識情報応答信号受信待機状態であるか否かを判定するだけでなく、球情報制御基板との通信を行う処理を実行するようにしてもよい。例えば、ステップP3070の処理で球情報制御基板から送信された各種信号を受信し、主制御認識情報の応答信号が含まれている場合には主制御認識情報応答信号受信待機状態を解除し、その他の信号の場合には受信した信号に対応する処理を実行すればよい。主制御認識情報応答信号受信待機状態が解除されたときに球情報制御基板に発射許可信号が入力され、打球発射装置から遊技球の発射を可能となり遊技を開始することが可能な状態となる。
主制御MPU1311は、主制御認識情報応答信号受信待機状態でない場合には(ステップP3070の結果が「NO」)、ウォッチドックタイマクリアレジスタWCLに値Bをセットする(ステップP70)。このとき、ウォッチドックタイマクリアレジスタWCLには、メインループ処理のステップP54においてセットされた値Aに続いて値Bがセットされる。
ステップP70に続いて、主制御MPU1311は、割り込みフラグのクリアを行う(ステップP72)。この割り込みフラグがクリアされることにより割り込み周期が初期化され、次の割り込み周期がその初期値から計時される。
ステップP72に続いて、主制御MPU1311は、スイッチ入力処理を行う(ステップP74)。このスイッチ入力処理では、主制御I/Oポート1314の入力端子に入力されている各種信号を読み取り、入力情報として主制御内蔵RAMの入力情報記憶領域に記憶する。
ステップP74に続いて、主制御MPU1311は、タイマ減算処理を行う(ステップP76)。このタイマ減算処理では、例えば、後述する特別図柄及び特別電動役物制御処理で決定される変動表示パターンに従って特別図柄表示器(第一特別図柄表示器、第二特別図柄表示器)1185が点灯する時間、後述する普通図柄及び普通電動役物制御処理で決定される普通図柄変動表示パターンに従って普通図柄表示器1189が点灯する時間のほかに、主制御基板1310(主制御MPU)が送信した各種コマンドを球情報制御基板が正常に受信した旨を伝える球情報主ACK信号が入力されているか否かを判定する際にその判定条件として設定されているACK信号入力判定時間等の時間管理を行う。具体的には、変動表示パターン又は普通図柄変動表示パターンの変動時間が5秒間であるときには、タイマ割り込み周期が4msに設定されているので、このタイマ減算処理を行うごとに変動時間を4msずつ減算し、その減算結果が値0になることで変動表示パターン又は普通図柄変動表示パターンの変動時間を正確に計っている。
本実施形態では、ACK信号入力判定時間が100msに設定されている。このタイマ減算処理を行うごとにACK信号入力判定時間が4msずつ減算し、その減算結果が値0になることでACK信号入力判定時間を正確に計っている。なお、これらの各種時間及びACK信号入力判定時間は、時間管理情報として主制御内蔵RAMの時間管理情報記憶領域に記憶される。
ステップP76に続いて、主制御MPU1311は、当落乱数更新処理を行う(ステップP78)。この当落乱数更新処理では、上述した、大当り判定用乱数、大当り図柄用乱数、及び小当り図柄用乱数を更新する。またこれらの乱数に加えて、図274に示した初期化処理(メインループ処理)におけるステップP58の非当落乱数更新処理で更新される、大当り図柄用初期値決定用乱数、及び小当り図柄用初期値決定用乱数も更新する。これらの大当り図柄用初期値決定用乱数、及び小当り図柄用初期値決定用乱数は、メインループ処理及びこのタイマ割り込み処理においてそれぞれ更新されることでランダム性をより高めている。これに対して、大当り判定用乱数、大当り図柄用乱数、及び小当り図柄用乱数は、当落判定(大当り判定)にかかわる乱数であるためこの当落乱数更新処理が行われるごとにのみ、それぞれのカウンタがカウントアップする。例えば、大当り判定用乱数を更新するカウンタは、上述したように、初期値更新型のカウンタであり、最小値から最大値までに亘る予め定めた固定数値範囲(本実施形態では、最小値として値0~最大値として値32767)内において更新され、この最小値から最大値までに亘る範囲を、このタイマ割り込み処理が行われるごとに値1ずつ加算されることでカウントアップする。大当り判定用初期値決定用乱数から最大値(値32767)に向かってカウントアップし、続いて最小値(値0)から大当り判定用初期値決定用乱数に向かってカウントアップする。大当り判定用乱数の最小値から最大値までに亘る範囲を、大当り判定用乱数を更新するカウンタがカウントアップし終えると、この当落乱数更新処理により大当り判定用初期値決定用乱数は更新される。このとき、その更新される値は、主制御MPUがその内蔵する不揮発性のRAMからIDコードを取り出し、この取り出したIDコードに基づいて大当り判定用乱数を更新するカウンタの固定数値範囲から常に同一の固定値を導出する初期値導出処理を実行し、この導出した固定値が初期値としてセットされる仕組みとなっている。つまり、大当り判定用初期値決定用乱数は、初期値導出処理の実行によりIDコードに基づいて導出された同一の固定値が初期値として常に上書き更新されるようになっている。なお、上述した、普通図柄当り判定用乱数、普通図柄当り判定用初期値決定用乱数もこの当落乱数更新処理により更新される。普通図柄当り判定用乱数等は、上述した大当り判定用乱数の更新方法と同一であり、その説明を省略する。
ステップP78の当落乱数更新処理が終了すると、主制御MPU1311は、設定情報に関する処理(設定処理)が実行中であるか否かを判定する(ステップP3080)。具体的には、設定情報の変更中又は確認中であるか否を判定する。例えば、設定確認中情報がセットされている否かを判定すればよい。
主制御MPU1311は、設定情報に関する処理が実行中でない場合には(ステップP3080の結果が「NO」)、賞球制御処理を行う(ステップP80)。この賞球制御処理では、上述した入力情報記憶領域から入力情報を読み出してこの入力情報に基づいて球情報制御基板に送信するための賞球コマンドを作成したり、主制御基板1310と球情報制御基板との基板間の接続状態を確認するためのセルフチェックコマンドを作成したりする。そして作成した賞球コマンドやセルフチェックコマンドを主球情報シリアルデータとして球情報制御基板に送信する。例えば、大入賞口に遊技球が1球、入球すると、賞球数として15球を表す賞球コマンドを作成して球情報制御基板に送信したり、この賞球コマンドを球情報制御基板が正常に受信完了した旨を伝える球情報主ACK信号が所定時間内に入力されないときには主制御基板1310と球情報制御基板との基板間の接続状態を確認するセルフチェックコマンドを作成して球情報制御基板に送信したりする。
ステップP80に続いて、主制御MPU1311は、枠コマンド受信処理を行う(ステップP82)。球情報制御基板は、状態表示に区分される1バイト(8ビット)の各種コマンドを送信する。ステップP82の枠コマンド受信処理では、この各種コマンドを球情報主シリアルデータとして正常に受信すると、その旨を球情報制御基板に伝える情報を、出力情報として主制御内蔵RAMの出力情報記憶領域に記憶する。また、その正常に球情報主シリアルデータとして受信したコマンドを2バイト(16ビット)のコマンドに整形し、送信情報として上述した送信情報記憶領域に記憶する。
ステップP82に続いて、主制御MPU1311は、不正行為検出処理を行う(ステップP84)。この不正行為検出処理では、賞球に関する異常状態を確認する。例えば、上述した入力情報記憶領域から入力情報を読み出し、大当り遊技状態でない場合にカウントスイッチからの検出信号が入力されているとき(大入賞口に遊技球が入球するとき)等には、異常状態として報知表示に区分される入賞異常表示コマンドを作成し、送信情報として上述した送信情報記憶領域に記憶する。
ステップP84に続いて、主制御MPU1311は、特別図柄及び特別電動役物制御処理を行う(ステップP86)。この特別図柄及び特別電動役物制御処理では、上述した大当り判定用乱数を更新するカウンタの値を取り出して主制御内蔵ROMに予め記憶されている大当り判定値と一致するか否かを判定(大当り遊技状態を発生させるか否かを判定(「特別抽選」という。))したり、大当り図柄用乱数を更新するカウンタの値を取り出して主制御内蔵ROMに予め記憶されている確変当り判定値と一致するか否かを判定(確率変動を発生させるか否かの判定)したりする。ここで、「確率変動」とは、大当りする確率が通常時(低確率)にくらべて高く設定された高確率(確変時)に変化することである。本実施形態では、上述した大当り判定値の範囲(大当り判定範囲)として、低確率では値32668~値32767が設定されており、通常時判定テーブルから読み出されるのに対して、高確率では値32438~値32767が設定されており、確変時判定テーブルから読み出される。このように、ステップP86の特別図柄及び特別電動役物制御処理では、大当り判定用乱数を更新するカウンタの値と、主制御内蔵ROMに予め記憶されている大当り判定値と、が一致するか否かを判定するときには、大当り判定用乱数を更新するカウンタの値が大当り判定範囲に含まれているか否かにより行う。
これらの判定結果が第一始動口センサ2104によるものである場合には特図1同調演出関連の各種コマンドを作成する一方、その抽選結果が第二始動口センサ2511によるものである場合には特図2同調演出関連の各種コマンドを作成し、送信情報として送信情報記憶領域に記憶するとともに、その決定した特別図柄の変動表示パターンに従って特別図柄表示器1185を点灯させるよう特別図柄表示器1185への点灯信号の出力を設定し、出力情報として上述した出力情報記憶領域に記憶する。
また、発生させる遊技状態に応じて、例えば大当り遊技状態となるときには、大当り関連に区分される各種コマンドを作成し、送信情報として送信情報記憶領域に記憶したり、開閉部材を開閉動作させるよう大入賞口ソレノイドへの駆動信号の出力を設定し、出力情報として出力情報記憶領域に記憶したり、大入賞口が閉鎖状態から開放状態となる回数(ラウンド)が2回であるときには、ラウンド表示器の2ラウンド表示ランプを点灯させるよう2ラウンド表示ランプへの点灯信号の出力を設定し、出力情報として出力情報記憶領域に記憶したり、ラウンドが15回であるときには、ラウンド表示器の15ラウンド表示ランプを点灯させるよう15ラウンド表示ランプへの点灯信号の出力を設定し、出力情報として出力情報記憶領域に記憶したり、確率変動の発生の有無を所定の色で点灯させるよう遊技状態表示器への点灯信号の出力を設定し、出力情報として出力情報記憶領域に記憶したりする。
ステップP86に続いて、主制御MPU1311は、普通図柄及び普通電動役物制御処理を行う(ステップP88)。この普通図柄及び普通電動役物制御処理では、上述した入力情報記憶領域から入力情報を読み出してこの入力情報に基づいてゲート入賞処理を行う。このゲート入賞処理では、入力情報からゲートスイッチ2352からの検出信号が入力端子に入力されていたか否かを判定する。この判定結果に基づいて、検出信号が入力端子に入力されていたときには、上述した普通図柄当り判定用乱数を更新するカウンタの値等を抽出してゲート情報として主制御内蔵RAMのゲート情報記憶領域に記憶する。
一方、設定情報に関する処理が実行中である場合には(ステップP3080の結果が「YES」)、主制御MPU1311は、賞球制御処理(ステップP80)等の処理をスキップさせることで遊技の進行を停止させる。そして、設定情報を変更又は確認するための設定変更/確認処理を実行する(ステップP3082)。設定変更/確認処理では、設定情報をタッチパネルや液晶表示装置1600に表示させたり、タッチパネル等の入力装置から設定情報の変更を受け付けたりする。
続いて、主制御MPU1311は、設定処理(設定変更/確認処理)が完了したか否かを判定する(ステップP3083)。設定処理が完了していない場合には(ステップP3083の結果が「NO」)、以降の処理を実行する。一方、設定変更/確認処理が完了すると(ステップP3083の結果が「YES」)、主制御認識情報を球情報制御基板に送信し(ステップP3084)、ステップP92以降の処理を実行する。このとき、設定処理を実行するために一時的に使用した記憶領域(ワーク領域)を初期化し、以降、設定確認中情報などを解除するなど設定処理が実行されないように設定する。その後、球情報制御基板から主制御認識情報の応答信号を受信するまでの間、主制御基板1310は主制御認識情報応答信号受信待機状態となる。
以上のように、設定情報を変更又は確認する場合には、設定処理完了後に主制御認識情報を球情報制御基板に送信する一方、設定情報を変更又は確認しない場合には、電源投入時処理にて主制御認識情報を球情報制御基板に送信する(ステップP3039)。このように、本実施形態では、電源投入時に一度だけ主制御認識情報を球情報制御基板に送信するように構成されている。また、設定処理を実行した場合には、完了後に一度だけ主制御認識情報を球情報制御基板に送信するように構成されている。これにより、球情報制御基板において不必要に設定情報に関する処理が複数回実行されることを防止し、遊技機の起動時の負荷を低減することによって迅速に起動を完了させることができる。また、球情報制御基板から主制御認識情報の応答信号を受信するまでの間、主制御基板1310は主制御認識情報応答信号受信待機状態となるため(ステップP3070)、設定変更が確実に通知されてから主制御基板側の処理を実行することが可能となる。
ここで、図276に示したタイマ割り込み処理において、設定処理時にステップP80からステップP90までの処理をスキップしていたが、スイッチ入力処理(ステップP74)やタイマ減算処理(ステップP76)、当落乱数更新処理(ステップP78)をスキップするようにしてもよい。また、ポート出力処理(ステップP90)をスキップするようにしてもよい。設定処理の実行中には通常遊技を行うための処理は実行されないため、これらの処理を実行しなくてもその後の遊技に支障はない。そのため、乱数関連の処理をスキップすることによって設定処理中の遊技機の負荷を低減するようにしてもよいし、遊技場の従業員等によって設定処理が実行されている間にも乱数関連の処理を実行することによって乱数の更新を進行させて乱数のランダム性がより高くなるようにしてもよい。また、スイッチ入力処理やポート出力処理についても、設定変更中に処理をスキップさせることによって遊技機の負荷を低減させるようにしてもよいし、設定変更中にも処理を継続させることによって設定処理から設定変更中に受け付けたスイッチ入力の結果を復帰後に即座に反映させたり、ポート出力を継続的に行うことで出力先における処理が滞らないようにしてもよい。
ステップP88又はステップP3084の処理が終了すると、主制御MPU1311は、ポート出力処理を行う(ステップP90)。このポート出力処理では、主制御I/Oポート1314の出力端子から、上述した出力情報記憶領域から出力情報を読み出してこの出力情報に基づいて各種信号を出力する。例えば、出力情報に基づいて主制御I/Oポート1314の出力端子から、球情報制御基板からの各種コマンドを正常に受信完了したときには主球情報ACK信号を球情報制御基板に出力したり、大当り遊技状態であるときには大入賞口の開閉部材の開閉動作を行う大入賞口ソレノイドに駆動信号を出力したり、可動片の開閉動作を行う始動口ソレノイド2550に駆動信号を出力したりするほかに、15ラウンド大当り情報出力信号、2ラウンド大当り情報出力信号、確率変動中情報出力信号、特別図柄表示情報出力信号、普通図柄表示情報出力信号、時短中情報出力情報、始動口入賞情報出力信号等の遊技に関する各種情報(遊技情報)信号を球情報制御基板に出力したりする。
ステップP90に続いて、主制御MPU1311は、周辺制御基板コマンド送信処理を行う(ステップP92)。この周辺制御基板コマンド送信処理では、上述した送信情報記憶領域から送信情報を読み出してこの送信情報を主周シリアルデータとして周辺制御基板1510に送信する。この送信情報には、本ルーチンであるタイマ割り込み処理で作成した、特図1同調演出関連に区分される各種コマンド、特図2同調演出関連に区分される各種コマンド、大当り関連に区分される各種コマンド、電源投入に区分される各種コマンド、普図同調演出関連に区分される各種コマンド、普通電役演出関連に区分される各種コマンド、報知表示に区分される各種コマンド、状態表示に区分される各種コマンド、テスト関連に区分される各種コマンド及びその他に区分される各種コマンドが記憶されている。主周シリアルデータは、1パケットが3バイトに構成されている。
具体的には、主周シリアルデータは、1バイト(8ビット)の記憶容量を有するコマンドの種類を示すステータスと、1バイト(8ビット)の記憶容量を有する演出のバリエーションを示すモードと、ステータス及びモードを数値とみなしてその合計を算出したサム値と、から構成されており、このサム値は、送信時に作成されている。なお、ステップP74~ステップP92の処理を「遊技制御処理」ということにする。
ステップP92に続いて、主制御MPU1311は、ウォッチドックタイマクリアレジスタWCLに値Cをセットする(ステップP94)。ステップP94でウォッチドックタイマクリアレジスタWCLに値Cがセットされることにより、ウォッチドックタイマクリアレジスタWCLには、ステップP70においてセットされた値Bに続いて値Cがセットされる。これにより、ウォッチドックタイマクリアレジスタWCLには、値A、値Bそして値Cが順にセットされ、ウォッチドックタイマがクリア設定される。
ステップP94に続いて、主制御MPU1311は、レジスタの切替(復帰)を行い(ステップP96)、このルーチンを終了する。ここで、本ルーチンであるタイマ割り込み処理が開始されると、主制御MPU1311は、ハード的に汎用レジスタの内容をスタックに積んで退避する。これにより、初期化処理で使用していた汎用レジスタの内容の破壊を防いでいる。ステップP96では、スタックに積んで退避した内容を読み出し、もとのレジスタに書き込む。なお、主制御MPU1311は、ステップP96による復帰の後に割り込み許可の設定を行う。
[16-3.球情報制御基板へのデータ送信]
前述した遊技機では、主制御基板1310から球情報制御基板へのデータ(主球情報シリアルデータ)の送信は、タイマ割込み処理のポート出力処理によって実行されていた。主球情報シリアルデータには、前述のように、賞球に関する情報(賞球コマンド)や接続状態を確認するための情報(セルフチェックコマンド)が含まれ、本実施形態における主制御認識情報も含まれる。
タイマ割込み処理は4msごとに実行されるため、球情報制御基板に頻繁に主球情報シリアルデータが送信されていたが、賞球の総数が誤っておらず、かつ、遊技者が違和感を感じない程度であれば必ずしも入賞口の入賞発生順に沿って賞球を払い出す必要はない。短期間に複数種類の入賞口に入賞が発生した場合、例えば、賞球数「4」に設定されている入賞口に入賞が発生した後に、賞球数「15」に設定されている入賞口(大入賞口)に入賞が発生した場合であっても、賞球数「15」、賞球数「4」の順で処理しても問題はない。そのため、大当り遊技状態など頻繁に賞球コマンドが作成される状況が発生すると、一時的に負荷が増大するおそれがあった。
ここで、本実施形態では、主制御基板1310から球情報制御基板にデータを送信する間隔をタイマ割込み処理の実行間隔(4ms)よりも長くなるように設定し(例えば、100ms)、通信回数を削減することによって、主制御基板1310から球情報制御基板にデータを送信する負荷を低減する。また、1回の入賞ごとに賞球コマンドを発生させるのではなく、球情報制御基板への通信周期ごとに賞球情報を集約することによって通信するデータ量を削減することでさらに負荷の低減を図る。以下、球情報制御基板に送信する賞球データの構成例について説明する。
図277は、主制御基板1310から球情報制御基板に送信する入賞情報の一例を説明する図である。本実施形態では、図277に示すように、ゲートを含む入賞口ごとの入賞数をカウントし、入賞情報として記憶する。そして、通信周期が到来するたびに、記憶された入賞情報を球情報制御基板に送信する。このとき、入賞個数が0の場合には、送信しないようにしてもよい。
球情報制御基板は、主制御基板1310から入賞情報を受信すると、図278に示した賞球数テーブルとつき合わせて賞球数を計算する。図277及び図278に示した例では、ゲートの入賞個数が1、上始動口の入賞個数が2、一般入賞口1の入賞個数が1、一般入賞口2の入賞個数が1であるから、ゲートの賞球は1×0=1、上始動口の賞球は2×3=6、一般入賞口1の賞球は1×1=1、一般入賞口2の賞球は1×1=1となり、総賞球数は0+6+1+1=8個となる。
また、球情報制御基板が賞球数テーブルを保持せずに、入賞情報に賞球数を含めて送信するようにしてもよい。さらに、一般入賞口のように、複数遊技領域に配置されていても賞球数が同じであれば、集約してもよい。図279は、入賞情報に賞球数を含めた場合の例を示す図であり、(A)は一般入賞口ごとに入賞数を集計する場合、(B)は一般入賞口を集約して入賞数を集計する場合である。これにより、球情報制御基板に賞球数テーブルを保持する必要がなくなり、主制御基板1310で一元的に管理することが可能となる。
図277から図279で説明した例では、通信周期内での入賞順序を無視して入賞情報を作成していたが、従来は入賞時に逐次コマンドを生成することで入賞順序を把握できるようにしていた。ここで、通信周期ごとにまとめて入賞情報を送信する一方、入賞順序に関する情報を付加する例を図280に示す。図280は、入賞情報を入賞順に記憶した例を示す図である。
図280に示す例では、入賞口に遊技球が入賞するたびに順序カウンタに1加算し、順序、入賞種別(入賞口)、賞球数、入賞個数によって構成されるレコードを生成する。賞球数は球情報制御基板が保持している場合であれば省略してもよい。また、入賞個数は通常1個となるため省略してもよいが、連続して同じ入賞口で入賞が発生した場合には入賞個数を連続して入賞した数だけ加算してもよい。
図277から図279に示した例では、入賞ごとに入賞個数に1加算し、球情報制御基板に入賞情報を送信するタイミングで送信用の入賞情報を作成していたが、図280に示す例では、入賞ごとに入賞情報の各レコードを生成し、通信周期ごとに生成された入賞情報を送信する。いずれの場合も送信された入賞情報を破棄し、図277から図279に示した例では入賞個数を0にクリアする。また、図280に示す例では、送信済みのレコードを削除すればよい。
図277から図279に示した例のように、入賞順序を無視して入賞個数のみをカウントすることによって、入賞時の処理の負荷を削減することが可能となる。一方、図280に示す例のように、入賞時に入賞情報を作成することによって入賞順序を保持することを可能とするとともに、入賞情報の送信時には改めて入賞情報を作成する必要がなく生成されている入賞情報をそのまま送信すればよいため、入賞情報送信時の負荷を削減することができる。また、連続して同じ入賞口に入賞した場合に入賞個数を加算することによって、入賞情報のレコード数を削減することができる。通常、大当り遊技状態であれば大入賞口を狙って遊技球を発射し、特定の遊技状態(例えば、確変状態)にのみ入賞可能となる入賞口が配置されている場合には特定の遊技状態になればこの入賞口を狙って遊技球を発射するため、特に入賞数が多くなる状態において入賞情報の数が増大することを抑制することができる。
以上、主制御基板1310から球情報制御基板に入賞情報を送信する構成について説明した。主制御基板1310から球情報制御基板に送信する情報には、入賞情報(賞球情報、賞球コマンド)だけでなく、遊技状態信号や主制御基板1310と球情報制御基板との基板間の接続状態を確認するためのセルフチェックコマンドが送信され、さらに、本実施形態では電源投入時や設定処理(設定変更/確認)時には主制御認識情報が送信される。
ここで、遊技状態信号を少なくとも遊技状態が変化するたびに球情報制御基板に送信する必要がある。そこで、入賞情報を送信する通信周期で同様に送信し、入賞情報及び遊技状態信号、その他の球情報制御基板に送信する情報を共通のフォーマットで遊技情報として集約することによって送信処理を共通化し、制御を簡略化することができる。
図281は、主制御基板1310から球情報制御基板に送信する遊技情報の一例を示す図であり、(A)は入賞情報の一例、(B)は主制御認識情報の一例である。図281に示す例では、送信するデータの種類を区別するために、大分類としての「データ種別」、小分類としての「種別1」「種別2」を定義している。データの種類を区別するための項目は必要に応じて変更すればよく、例えば、データ種別を詳細に定義することによってその他の種別を除いてもよいし、さらに詳細な分類を設定可能とするために項目を増やしてもよい。なお、図281にはデータの種類を区別するための項目には、理解しやすいように名称をそのまま記載しているが、実際にはあらかじめコード化された情報が設定される。また、図281に示す例では、2種類のデータを格納可能とし、各データのサイズは1バイトとしている。
図281(A)は入賞情報に対応するデータであり、データ種別には入賞情報(賞球データ)であることを示す「入賞」(「賞球」としてもよい)が設定されている。また、種別1には入賞口の種類、種別2には入賞口を特定する情報が設定されている。このとき、入賞口を特定する情報のみ設定されていればよいのであれば、一方の項目を空欄としてもよい。図281に示す例では、2種類のデータを設定することが可能となっており、(A)に示す例では、賞球数と入賞個数を設定することができるようになっている。なお、賞球数及び入賞個数は現実的には100を超える数にはならないため、上位4ビットに賞球数、下位4ビットに入賞個数を設定し、一の項目で賞球数と入賞個数を設定するようにしてもよい。また、入賞がなかった場合には入賞がないこと、賞球数が0であることを示すデータを送信するようにしてもよい。
図281(A)では、一回のデータ(コマンド)送信周期で5種類の賞球情報(賞球コマンド)を送信している場合を示しているが、一回の周期でより多く(例えば、10種類)の賞球情報をまとめて送信してもよい。一方、賞球が大量に発生する場合など送信するデータ(コマンド)数が多くなりすぎると、データ(コマンド)の送信側(主制御基板1310)及び受信側(玉情報制御基板110)にとって単位時間当たりの負荷が高くなるため、一回の周期で送信される上限を設けてもよい。この場合には、一回の周期で送信できなかった分(上限を超えた分)のデータ(コマンド)については、次の周期で送信する。なお、大当り中などの大量に賞球が発生する場合には、実際の入賞と賞球の加算分にタイムラグが発生して遊技者に違和感を与える可能性があるが、実際には、発射周期が600msに対し、データ(コマンド)の送信周期が約100msのため、一時的に上限数を超えることが発生したとしても、直ちに上限数未満となるので遊技者が違和感を覚える可能性は少なくなっている。また、発射周期(600ms)は固定となっているが、コマンドの送信周期は任意に設定可能であるため、データ(コマンド)送信周期を発射周期よりも短く設定するほど送信するデータ(コマンド)の数が上限数を超えてタイムラグが発生してしまうことを抑制することができる。
図281(B)は主制御認識情報に含まれる主制御基板1310の主制御MPU1311を識別するチップIDを送信する場合の例である。ここでは、チップIDのデータ長が4バイトとし、2レコード分のデータで格納している。チップIDは、主制御MPU1311に記録されており、例えば、特定のレジスタで定義され、プログラムから読み出すことができる。本実施形態では、複数種類のデータ種別のデータ(コマンド)を一回の周期で送信することを可能とするが、一回の周期で送信可能なデータ(コマンド)の上限数を超える場合には、データ種別ごとに優先順位を設定し、優先順位の高いデータ(コマンド)を優先して送信してもよい。例えば、前述したように、賞球情報については他のデータよりも大量に送信するデータが発生しやすいが、前述のように多少のタイムラグが発生しても遊技者が違和感を覚える可能性が低いため、他のデータ種別のデータ(コマンド)を優先して送信するようにしてもよい。なお、データ種別によらずに、データ(コマンド)の生成順に上限数まで送信するようにしてもよい。
図281に示した例では、データのサイズが固定されているため、容量の大きいデータを送信する場合には、レコード数が大きくなってしまう問題がある。例えば、図281(B)に示した主制御認識情報に含まれるチップIDが9バイトであれば、5レコード分のデータを送信する必要があり、各レコードにデータ種別等の情報をすべて設定する必要がある。そこで、各レコードにデータ長を設定し、データを可変長とすることによって多くの種類の態様のデータにも対応できるように構成する。図282は、主制御基板1310から球情報制御基板に送信する遊技情報の別例を示す図である。
図282に示す例では、データ長を示す項目が追加され、データを示す項目には許容される範囲で任意のサイズのデータを格納することができる。図282に示す例では、データを分割する必要がないため、詳細な分類を示す項目を2から1に削減している。なお、送信されるデータが可変長となり、容量が大きくなる可能性があるため、チェックサムなどのチェック用の項目を追加してもよい。
続いて、主制御基板1310と球情報制御基板との間の通信について説明する。図283は、遊技機の起動時における主制御基板1310と球情報制御基板との通信について説明する図である。本実施形態における遊技機1では、電源が投入され、主制御基板1310が起動されると、初期化処理又はタイマ割込み処理によって球情報制御基板に主制御認識情報を通知する(主制御認識情報通知)。主制御認識情報は、前述のように、主制御基板1310を識別するための情報であり、球情報制御基板は受信した主制御認識情報が正常であるか否かを判定する。主制御認識情報通知が正常でない場合、例えば、主制御基板1310が正規なものでなく不正なMPUが搭載されている場合等であれば、主制御基板1310が異常であることを報知する。
また、電源投入から主制御認識情報通知を送信するまでの時間が所定時間(例えば、200秒)を超えた場合にも異常が発生したものと判定し、異常発生を報知する。このとき、主制御基板1310の起動をそのまま継続してもよく、異常発生報知中に起動処理が完了した場合にはその時点で警報出力を中止してもよいし、報知をそのまま継続してもよい。報知をそのまま継続する場合には、遊技場の従業員等が状況を確認し、当該遊技機をそのまま使用するか否かを判断すればよい。
球情報制御基板は、主制御基板1310から主制御認識情報通知を受信すると、応答信号(主制御認識情報応答通知)を主制御基板1310に送信する。主制御基板1310は、主制御認識情報応答通知を球情報制御基板から受信すると、通常遊技を開始可能な状態となる。
その後、主制御基板1310は、球情報制御基板に周期的に遊技情報を送信する(遊技情報通知)。遊技情報の送信間隔は、前述したように、100ミリ秒である。遊技情報の具体例としては、賞球情報(賞球コマンド)が挙げられる。球情報制御基板は、主制御基板1310から遊技情報を受信すると、応答信号(遊技情報応答通知)を主制御基板1310に送信する。このように、主制御基板1310からの遊技情報通知に対し、球情報制御基板から応答信号を送信することで正常に通信が行われていることを担保することができる。なお、球情報制御基板から主制御基板1310に通知する場合も同様に主制御基板1310から球情報制御基板に応答信号を送信する。
続いて、主制御基板1310からと球情報制御基板との間の通信に異常が発生した場合について説明する。図284は、遊技機の主制御基板1310と球情報制御基板との通信において、主制御基板1310からの通知に対し、球情報制御基板からの応答がない場合を示す図である。
図284に示す例では、主制御基板1310から球情報制御基板に所定の通信周期で遊技情報を通知しており、球情報制御基板からの応答が連続して所定回数なかった場合に異常が発生したものとして通信を遮断し、異常発生を報知する。ここでは、所定回数を8回に設定しており、最大8回同じ内容の遊技情報を通知する。なお、主制御基板1310からの通信が遮断された後であっても、球情報制御基板から応答信号を受信した場合には、正常な状態に復帰したものとして通信遮断を解除し、処理を再開する。なお、図に示す例では、1回の通信周期内に応答信号を受信できなかった場合に再度通知しているが、次の周期の通知を中止して応答を待機し、次の周期の終了後に応答信号を受信できなかった場合に1回の通信が失敗したと判定してもよい。このように構成することで応答信号の取りこぼしを避けることができる。
また、球情報制御基板からの応答がない場合には、主制御基板1310から球情報制御基板に遊技情報が到達していない場合の他に、主制御基板1310から球情報制御基板に遊技情報が到達しているにもかかわらず応答信号が球情報制御基板から主制御基板1310に到達していない場合がある。ここで、遊技情報が賞球情報(賞球コマンド)であるとき後者の場合では、同じ賞球情報に基づいて連続して賞球が払い出されてしまうおそれがあり、遊技の抽選結果と払い出された賞球数に齟齬が生じてしまうおそれがある。そこで、このような不具合を避けるために、応答信号を正常に受信できない場合であっても遊技情報を再送信せずに次の遊技情報を送信する例について説明する。
図285は、遊技機の主制御基板1310と球情報制御基板との通信において、主制御基板1310からの通知に対し、球情報制御基板からの応答がない場合の別例を示す図である。ここでは、図284に示す例と同様に、通信周期ごとに遊技情報を送信し、応答信号を受信できなかった場合であっても次の遊技情報を送信する。そして、連続して最大送信回数(例えば、8回)分の応答信号を受信できなかった場合には異常が発生したと判定して通信を遮断し、異常発生を報知する。このように構成することによって、遊技情報が賞球情報の場合に賞球数に齟齬が生じる可能性を低減することができる。
また、同じ遊技情報を再送することによって遊技の進行の過程で新たに生成された遊技情報がバッファに滞留して保持しきれなくなる可能性があるが、これを防止することが可能となる。なお、大量にデータが作成される可能性のある賞球情報の場合にのみ再送を行わずに次の情報を送信する一方、その他の作成されるデータが比較的少量の情報については図284に示したように再送するなどして、データ種別に応じて処理を異ならせてもよい。この場合、応答信号を連続して受信できない回数(送信の失敗回数)をカウントし、所定回数に到達した場合に通信を遮断し、異常発生を報知する。
[17.不正判定用エッジバッファ]
本実施形態における遊技機では、入賞装置に遊技媒体が入賞することによって、所定の遊技価値(賞球)を得られるように構成されている。遊技媒体の入賞は、入賞装置に備えられているセンサやスイッチによって検出され、検出結果は所定間隔で入力され、所定の記憶領域に記憶される。
また、遊技媒体の入賞には、入賞装置が受け入れ可能になっている期間などの有効期間が設けられている。一方、故障や不正行為を検出するために有効期間外の入賞についても計数し、有効期間外の入賞数が所定値以上に到達した場合には異常発生と判定し、セキュリティ信号を外部に出力したり、異常を報知したりしていた。
このように、賞球を払い出す場合等、有効期間内の入賞のみを検出する必要がある一方、異常を検出する場合には有効期間に関わらず遊技媒体の入賞を検出する必要があった。そのため、センサやスイッチなどによって入力された各種信号に対する入力判定処理が複雑化するおそれがあった。
本実施形態では、センサやスイッチなどによって入力された各種信号を常に計数して記憶するバッファ1(第1記憶領域)と、有効期間内(若しくは有効期間外)であるか否かなど状態に応じて入力された各種信号を計数して記憶するためのバッファ2(第2記憶領域、不正判定用エッジバッファ)とを備える。これにより、入力判定処理実行時に状態に応じて参照する領域を指定する箇所を切り替えるだけで入力判定に伴う処理の大部分を共通化することができ、入賞判定にともなう処理全体を簡素化することが可能となる。
[17-1.バッファ構造]
まず、各種処理を実行するために一時的に情報を記憶するバッファの構造について説明する。このバッファは、入力情報記憶領域として主制御MPU1311に内蔵されているRAM(主制御内蔵RAM)に割り当てられている。なお、入力情報記憶領域は、主制御MPU1311の外部に備えられたRAMに割り当てるようにしてもよい。入力情報記憶領域は、主制御MPU1311の各種入力ポートの入力端子に入力されている各種信号などを記憶する。主制御内蔵RAMには、入力情報記憶領域のほかに、電源投入時にRAMの内容が正常か否かを判定するためのバックアップフラグやチェックサムの情報、各種抽選のための乱数値、周辺制御基板1510や払出制御基板951等に送信するためのコマンドなどを記憶する領域が割り当てられている。
図286は、本実施形態の遊技機による遊技制御において主制御内蔵RAMに割り当てられる記憶領域の一例を示す図である。各記憶領域には、バックアップフラグエリア、チェックサムエリア、入力レベルデータエリア、入力エッジデータエリア、賞球判定エリア等が含まれており、これ以外にも抽選に用いる各種乱数値を記憶したり、送信するコマンドを格納したりする領域が含まれている。また、各エリアは、1バイト単位で区切られており、1バイト又は複数バイトの領域となっている。
続いて、入力情報記憶領域の構成について説明する。ここでは、入賞口への遊技球の入賞の検出を示す入力情報を記憶する入力情報記憶領域、具体的には、入力エッジデータ1エリア(INPUT_EDG1)及び賞球判定エリア(PAY_JDG_AR)の構成について説明する。図287は、本実施形態の入力情報記憶領域に含まれるデータエリアの一例を示す図であり、(A)は入力エッジデータ1エリア(INPUT_EDG1)、(B)は賞球判定エリア(PAY_JDG_AR)を示す。
入力エッジデータ1エリア(INPUT_EDG1)は、(A)に示すように、1バイト(8ビット)で構成されており、各Bitに対応するスイッチ(センサ)の入力情報が記憶される。具体的には、Bit0は第一始動口2002の入球を検出する第一始動口センサ2104、Bit1は第二始動口2004の入球を検出する第二始動口センサ2511、Bit2及びBit3は一般入賞口2001,2201の入球を検出する一般入賞口センサ3015、Bit4は大入賞口2005の入球を検出するカウントスイッチ(大入賞口センサ)、Bit5は未使用、Bit6は排出口への入球を検出するセンサによる入力情報となっている。なお、本実施形態における遊技機には、始動入賞口や大入賞口の他に確変領域(V-ATのV領域)を有しており、Bit7は遊技球の確変領域の通過を検出するセンサによる入力情報となっている。確変領域センサは、V領域への通過のみを検出するセンサであって、他のセンサとは異なり賞球を伴うセンサではない。また、ビットの配列は任意の配列でよく、例えば、ビット0に第二始動口2004、ビット1に大入賞口2005を対応させ、有効期間内か否かを判定する対象となるセンサを連続させるように配置してもよい。
また、(B)に示すように、賞球判定エリア(PAY_JDG_AR)は、入力エッジデータ1エリア(INPUT_EDG1)と同様に、1バイト(8ビット)で構成されており、各バイトに対応するスイッチ(センサ)の入力情報が記憶される。賞球判定エリアの各ビットは、入力エッジデータ1エリアの各ビットと対応しているが、第二始動口(Bit1)、大入賞口(Bit4)、確変領域(Bit7)については、有効期間中にセンサが検出した場合にのみ“1”(ON)に設定される。すなわち、入力エッジデータ1エリアの各ビットには各センサによる入力情報がそのまま設定されるが、賞球判定エリアの各ビットのうち、遊技球の受け入れに有効期間が設定されている入賞装置(入賞領域)に対応するビットには有効期間内にセンサによって検出された場合にのみ“1”が設定される。
なお、第二始動口2004の有効期間は、ゲート部2003に遊技球が通過することによって普通電動役物が開放して第二始動口2004が遊技球を受け入れ可能な状態になってから普通電動役物が閉鎖されるまでの期間(普通電動役物開放時間)に加え、普通電動役物が閉鎖された後、第二始動口2004の内部に遊技球が滞留する時間を考慮した有効判定期間(OFFディレイ、例えば1000m秒)が設定される。また、大入賞口2005の有効期間は、第二始動口2004と同様に、大入賞口2005を開放する時間(大入賞口開放時間)に加え、大入賞口2005の内部に滞留し、カウントセンサに検出されるまでのタイムラグを考慮した有効判定期間(OFFディレイ、例えば1994m秒)が設定される。一方、確変領域(V-ATのV領域)では、Vアタッカー(大入賞口)を開放するタイミングで確変領域有効期間が設定され、確変領域有効期間終了後の有効判定期間は設定されないようになっている。
[17-2.スイッチ入力処理]
続いて、前述したバッファにデータを設定する手順について説明する。図288は、本実施形態の遊技機に備えられたセンサ等によって検出された情報を取得するスイッチ入力処理の手順の一例を示すフローチャートである。スイッチ入力処理は、図23に示したタイマ割り込み処理におけるステップS74の処理で実行される。
図288に示した手順は、始動入賞口や大入賞口への入賞情報などを入力エッジデータ1エリア(INPUT_EDG1、バッファ1)及び賞球判定エリア(PAY_JDG_AR、バッファ2)に記憶する手順を抜粋したものであり、磁気検出センサ4024の検出信号や払出制御基板951からの払主ACK信号などの情報を記憶する場合についても同様に処理することが可能となっている。また、図288に示すスイッチ処理では、入力エッジデータ1エリア(INPUT_EDG1)及び賞球判定エリア(PAY_JDG_AR)の1ポート(1バイト)分のデータを処理する例について説明しているが、それに限定されず、スイッチの入力ポートが2バイト以上の場合には、対応するバイト数分の処理を実行する。
主制御基板1310の主制御MPU1311は、まず、スイッチ入力ポートから各スイッチに対応したOFFからONへの変化を判定してスイッチエッジ情報を生成する(ステップP6001)。さらに、生成したスイッチエッジ情報を入力エッジデータ1エリアに格納し(ステップP6002)、入賞有効判定回数をセットする(ステップP6003)。なお、スイッチエッジ情報は、各スイッチに対応する個別の入力情報(スイッチ入力情報)をバイト単位でまとめたデータである。また、入賞有効判定回数は、スイッチエッジ情報に含まれるスイッチ入力情報の数に対応させてもよいし、スイッチエッジ情報のbit数であってもよい。
続いて、主制御MPU1311は、入賞判定に対応するスイッチの有効期間内か否かを判定し(ステップP6004)、有効期間外のスイッチ入力情報の更新をクリアする。具体的には、入賞判定に対応するスイッチの有効期間内でない場合には(ステップP6004の結果が「no」)、入力エッジデータ1エリアの入賞判定に対応するスイッチエッジ情報をクリアする(ステップP6005)。
続いて、主制御MPU1311は、有効期間外のスイッチ入力情報の更新をクリア後、又は、有効期間内の場合には(ステップP6004の結果が「yes」)、判定対象となるスイッチ入力情報を変更するために、入賞有効判定回数を-1更新する(ステップP6006)。さらに、入賞判定に対応するスイッチの有効期間を-1更新する(ステップP6007)。なお、有効期間が設定されていないスイッチについては、スイッチ入力情報をクリアせずにステップP6006以降の処理を実行する。この場合の有効期間の判定は、有効期間が設定されていないスイッチ入力情報であれば無条件に処理をスキップするようにしてもよいし、例えば、有効期間として大きな値を設定することで常に有効期間内となるようにしてもよい。
続いて、主制御MPU1311は、入賞有効判定回数が0になったか否か、すなわち、スイッチエッジ情報に含まれるすべてのスイッチ入力情報の入賞有効判定が終了したか否かを判定する(ステップP6008)。すべてのスイッチ入力情報の入賞有効判定が終了していない場合には(ステップP6008の結果が「no」)、ステップP6004から処理を再度実行する。なお、本処理では、有効期間内か否かを判定した後に有効期間を判定するタイマを更新するようになっているが、タイマ割込み毎に実行される各種タイマ更新処理で他のタイマとともに更新するようにしてもよい。
主制御MPU1311は、スイッチエッジ情報に含まれるスイッチ入力情報のうち有効期間が設定されているスイッチ入力情報の入賞有効判定が完了し、入賞有効判定回数が0になった場合には(ステップP6008の結果が「yes」)、有効期間が設定されたスイッチ入力情報に対して有効期間内か否かを反映したスイッチエッジ情報を賞球判定エリアに格納する(ステップP6009)。
以上のように、スイッチ入力情報を入力エッジデータ1エリアにそのまま格納するとともに、有効期間を考慮して賞球判定エリアにスイッチ入力情報を格納することによって、処理に対応するエリアを参照することによって処理を簡素化することができる。例えば、賞球を払い出す場合に実行される賞球制御処理(タイマ割り込み処理(図23)のステップS80)において、賞球の有無を判定する場合に、有効期間内のみに賞球するセンサによる賞球か否かの判定や、有効期間か否かにより賞球を実行するか否かの判定等の処理を必要とせず、賞球を払い出す場合には賞球判定エリアの情報を参照することのみで賞球の払い出しを行うことができ、賞球払出処理を簡素化することが可能となる。また、不正行為検出処理(タイマ割り込み処理(図23)のステップS84)によって有効期間外に入賞することのないセンサについて有効期間外に入球した遊技球の数を計数する場合には、入力エッジデータ1エリアの情報を参照することで有効期間外に入賞した入賞数(不正入賞と思われる数)を計数することで不正入賞を検出することが可能となる。また、入力エッジデータ1エリアにより検出した入賞数と賞球判定エリアにより検出した入賞数との差分により不正入賞を計数することが可能となる。
[17-3.大入賞口開放処理]
続いて、抽選に当選することによって開放される大入賞口2005の制御を行う大入賞口開放処理について説明する。大入賞口開放処理では、大入賞口2005に遊技球が入賞するとカウントスイッチ(大入賞口センサ)によって検出され、前述したスイッチ入力処理によって大入賞口2005に入球した遊技球の数が計数される。図289は、本実施形態の大入賞口開放処理の手順を説明するフローチャートである。大入賞口開放処理は、タイマ割り込み処理における特別図柄・特別電動役物制御処理(ステップS86)から呼び出される。なお、特別図柄・特別電動役物制御処理は、各始動口通過処理実行後、大入賞口開放処理を含む特別図柄・電動役物動作番号に対応した処理が呼び出される。大入賞口開放処理では、前述したスイッチ入力処理で生成した大入賞口(カウント)スイッチの情報に基づいて大入賞口に入球した遊技球の数が計数される。
主制御基板1310の主制御MPU1311は、まず、賞球判定エリア(PAY_JDG_AR)から大入賞口入賞数を取得する(ステップP6011)。具体的には、大入賞口カウントスイッチ数をループ回数としてセットし、判定用ビット値として大入賞口カウントスイッチ1ビットをセットする。ループ回数分だけ賞球判定エリアの大入賞口カウントスイッチの値と判定用ビット値から入賞の有無を判定し、大入賞口入賞数を計数する。さらに、取得した大入賞口入賞数が大入賞口最大入賞数未満であるか否かを判定する(ステップP6012)。大入賞口最大入賞数は、1ラウンドにおいて大入賞口2005が開放してから閉鎖するための規定入賞数である。大入賞口最大入賞数分の遊技球が入賞しない場合であっても所定期間経過後には大入賞口2005は閉鎖する。
なお、ステップP6011の処理では、大入賞口2005のカウントスイッチの数分だけループさせて大入賞口入賞数を計数している。このとき、カウントスイッチが単一の場合にはループ回数として1をセットし、1回分だけ賞球判定エリアの大入賞口入賞数を計数する。また、複数の大入賞口を備える構成では、カウントスイッチの数分だけループ回数をセットし、ループ回分だけ賞球判定エリアの大入賞口入賞数を計数する。カウントスイッチが単一の場合には、ループ回数としてセットすることなく大入賞口入賞数の計数を一度だけ行なうようにしてもよいが、大入賞口2005のカウントスイッチの個数は、遊技機により異なることからカウントスイッチが1個用と複数用とで大入賞口開放処理を二種類設ける必要になるため、大入賞口開放処理を大入賞口スイッチの数に影響することなく共通して実行できるようにするために単一の場合でもループ回数を1としてセットしている。
また、大当り中のオーバー入賞(大入賞口最大入賞数を超えて大入賞口2005に遊技球が入賞すること)については、大入賞口2005が有効期間内であることため賞球判定エリアの値に基づいて判定する(なお、入力エッジデータ1エリアの値に基づいて判定しても同様に判定することが可能である)。一方、大当り以外の不正入賞(大入賞口2005への不正入賞)については、賞球判定エリアの値では計数することができないため、入力エッジデータ1エリアの値で不正入賞を判定する。
主制御MPU1311は、大入賞口入賞数が大入賞口最大入賞数以上の場合には(ステップP6012の結果が「no」)、大入賞口においてオーバー入賞となっているので、大入賞口オーバー入賞フラグに大入賞口オーバー入賞ありフラグを設定する(ステップP6013)。なお、バッファ2(賞球判定エリア)から大入賞口入賞数を取得してオーバー入賞を判定しているが、バッファ1(入力エッジデータ1エリア)で大入賞口入賞数を計数してオーバー入賞を判定してもよい。また、大入賞口2005が閉鎖されている間にも大入賞口入賞数を継続して計数し、大入賞口入賞数が大入賞口最大入賞数を超えると、大入賞口オーバー入賞フラグに大入賞口オーバー入賞ありフラグを設定する。その後、主制御MPU1311は、大入賞口開放状態番号に“00H”を設定し、その後、大入賞口2005を閉鎖する(ステップP6015)。
一方、主制御MPU1311は、大入賞口入賞数が大入賞口最大入賞数未満の場合には(ステップP6012の結果が「yes」)、大入賞口の開放時間を計測するタイマの値を参照し、大入賞口の開放時間が終了したか否かを判定する(ステップP6014)。大入賞口の開放時間が終了していない場合には(ステップP6014の結果が「no」)、本処理を終了し、大入賞口2005への遊技球の受け入れを継続する。
主制御MPU1311は、大入賞口2005の開放時間が終了した場合には(ステップP6014の結果が「yes」)、開放されている大入賞口2005を閉鎖するための設定を行う(ステップP6015)。ステップP6015の処理では大入賞口2005を閉鎖するために必要なデータを設定する。
ステップP6015の処理が終了すると、主制御MPU1311は、大入賞口2005の動作を設定する(ステップ6016)。具体的には、選択された大入賞口開放パターンから大入賞口開閉時間データを取得し、特電作動中信号出力タイマに設定する。特電作動中信号出力タイマには、大入賞口スイッチが有効か否かを判定するための時間(有効期間)が設定される。有効期間は、大入賞口開放間のインターバル時間(大入賞口閉鎖時間)-αである。なお、有効期間が大入賞口閉鎖時間より大きくなる場合には、閉鎖期間よりも長い時間が設定されることになるため、当該タイマが0になる前に大入賞口2005の開放により新たな値がセットされる。大入賞口2005の開放開始時に大入賞口開放パターンに対応した開放時間が特電作動中信号出力タイマに設定される。例えば、大入賞口2005の開放パターンが、1~7ラウンド、9~16ラウンドが29秒、8ラウンドが5秒とした場合に、特電作動中信号出力タイマは、1~7と9~16ラウンドの開始前に29秒が設定され、8ラウンドの開始前に5秒が設定されることになる。
続いて、主制御MPU1311は、大入賞口2005の開放を継続するか否か、すなわち、最終ラウンドであるか否かを判定する(ステップP6017)。大入賞口2005の開放を継続する(最終ラウンドでない)場合には(ステップP6017の結果が「yes」)、本処理を終了する。大入賞口2005の開放を継続しない(最終ラウンドである)場合には(ステップP6017の結果が「no」)、エンディング時の設定を行うためのエンディングコマンドをセットするなど大当り終了後の処理を実行する(ステップP6018)。大当り終了後の処理では、大入賞口2005を閉鎖した後にカウントスイッチによる遊技球の検出を有効とするエンディング時に対応した有効判定期間(OFFディレイ期間)が設定される。エンディング時に対応した有効判定期間は、大入賞口開放インターバルごとの時間と同じでよいが、異なる時間(例えば、エンディング期間に対応する時間等)であってもよい。
[17-4.タイミングチャート(大入賞口)]
続いて、大入賞口2005の遊技球の入賞を検出する処理を時系列に沿って説明する。図290は、本実施形態における遊技機で大入賞口2005に遊技球が入賞した場合の各構成の処理を説明するタイミングチャートである。なお、タイミングチャート上に記載した数値情報及び時間値等については一例であり、これらの値に限定されない。
図290に示す例では、前述のように、大当り開始時に、有効時間を設定する。有効時間は例えば、開放時は大入賞口開放時間、閉鎖時は閉鎖インターバル期間-4m秒とする。不正カウント値は初期値を大当りの種類に対応した値(L)を設定し、有効期間内外を問わず大入賞口2005への遊技球の入球を検出した場合に順次減算し、0に到達した場合には不正が発生したものとする。なお、不正カウント値の初期値は、例えば、16ラウンド10カウントの大当り1の場合には16×(10+3)=208、4ラウンド9カウントの大当り2の場合には4×(9+3)=48とする。また、12ラウンド(実質2ラウンド5カウント)の大当り3の場合には2×(5+3)とし、10ラウンドは最大でも1個入賞する(10×1)として合計26として決定する。以下、タイミングチャートについて説明する。
まず、時刻t1では有効期間中に大入賞口2005への入賞があり(入賞センサ(カウントスイッチ)OFF→ON)、バッファ1(入力エッジデータ1エリア(INPUT_EDG1))の対応するbit(大入賞口カウントスイッチ)に“1”を設定し、同様にバッファ2(賞球判定エリア(PAY_JDG_AR))の対応するbit(大入賞口カウントスイッチ)にも1を設定する。このとき、バッファ2の値に基づいて大入賞口入賞数Nに“1”加算する。さらに、バッファ1の値に基づいて不正カウントを“1”減算する(M-1)。さらに、周辺制御基板1510に大入賞口入賞コマンド等の大入賞口入賞に係る演出コマンドを送信し、払出制御基板951に大入賞口の入賞に対する賞球数コマンドを送信する。
時刻t2では、時刻t1と同様に、有効期間中に大入賞口への入賞が発生し、バッファ1及びバッファ2の対応するbit(大入賞口カウントスイッチ)に“1”を設定する。さらに、バッファ2の値に基づいて大入賞口入賞数に“1”加算し(N+2)、バッファ1の値に基づいて不正カウントを“1”減算する(M-2)。さらに、周辺制御基板1510及び払出制御基板951に対応するコマンドを送信する。
時刻t3では、大当り遊技が終了し、不正カウント値の初期値(15)を設定する。大入賞口2005の有効時間は、前述のように、大入賞口開放時間に加えて入賞検出を許容する時間となっている。なお、不正カウントの初期値は、大当りエンディングの終了タイミング、例えば、特別図柄及び特別電動役物制御処理における特別図柄変動待ち処理(図示せず)で設定するようにしてもよい。
その後、時刻t4~t6では、大当り以外の状態(大入賞口未作動)で遊技球が大入賞口2005に入球する不正入賞が発生し、入力エッジデータ1エリアに対応するバッファ1の対応するbit(大入賞口カウントスイッチ)には“1”(有効、ON)を設定する一方、賞球判定エリアに対応するバッファ2の対応するbit(大入賞口カウントスイッチ)に“0”(無効、OFF)を設定する。そして、バッファ1の値に基づいて不正カウントを“1”ずつ減算する。演出コマンドや賞球コマンドはバッファ2の値に基づいて送信されるが、このとき、バッファ2の値が“0”(無効、OFF)となっているため、このように適正な入賞でない場合にはこれらのコマンドは送信されないようになっている。
時刻t8になると、さらに不正入賞が発生し、不正カウントを1減算することで不正カウントが“0”に到達する。これにより、セキュリティ信号(外部出力信号)の出力を開始する(30秒出力)。さらに、不正報知を開始するために、周辺制御基板1510に報知コマンドを送信する。この場合についても賞球コマンドは送信しない。なお、不正報知とセキュリティ信号の出力はいずれか一方であってもよい。
さらに、時刻t9において不正カウント数を1に設定する。これにより、不正入賞が継続して発生する場合であっても、セキュリティ信号(外部出力信号)の出力及び不正報知を継続して行うことができる。なお、時刻t8と時刻t9は、同一のタイマ割込み内で実行される。
時刻t10では、さらに不正入賞が発生し、不正カウントを“1”減算する。時刻t9で不正カウントを“1”に設定したため、再び不正カウントが“0”となり、セキュリティ信号(外部出力信号)の再出力が開始される(30秒出力)。さらに、再度不正報知を開始するために、周辺制御基板1510に報知コマンドを送信する。なお、セキュリティ信号出力中に再度不正入賞を検出した場合には、セキュリティ信号の出力を継続したまま、出力時間を再設定(延長)する。続いて、時刻t11では、再度不正カウント数を“1”に設定する。時刻t10と時刻t11における処理は、同一のタイマ割込み内で実行される。
その後、時刻t12にて抽選の結果が大当りとなり、有効時間及び大当り中の不正カウント数を初期値(L)に設定する。時刻t13では、時刻t2と同様に、有効期間中に大入賞口への入賞が発生し、バッファ1及びバッファ2の対応するbit(大入賞口カウントスイッチ)に“1”を設定する。そして、バッファ2の値に基づいて大入賞口入賞数に“1”加算し(1)、バッファ1の値に基づいて不正カウントを“1”減算する(L-1)。さらに、周辺制御基板1510に賞球コマンド、払出制御基板951に演出コマンドを送信する。
以上のような遊技機では、始動口(始動領域)に遊技球(遊技媒体)が受け入れられた(通過した)ことに基づいて抽選による図柄の変動表示の結果によって賞球を払い出す大入賞口2005(遊技媒体受入手段)が遊技球を受入可能となる(遊技価値付与手段)。大入賞口2005に備えられたカウントスイッチ(大入賞口センサ、遊技媒体検出手段)によって受け入れられた遊技球が検出され、入力情報記憶領域(遊技媒体検出情報記憶手段)に記憶される。入力情報記憶領域には、大入賞口2005に遊技球を受け入れた場合に常時入力情報(遊技媒体検出情報)を記憶するバッファ1(第1記憶手段)と、図柄の変動表示の結果(抽選結果)に基づく有効期間(所定期間)に遊技球を受け入れた場合に入力情報(遊技媒体検出情報)を記憶するバッファ2(第2記憶手段)が割り当てられている。このように構成することによって、賞球の払い出し時にはバッファ2を参照し、バッファ1(及びバッファ2)を参照して不正入賞(異常発生)を検出し、不正入賞数などを計数することが可能となる。
[17-5.タイミングチャート(第二始動口)]
以上、大入賞口2005に遊技球が入賞した場合について説明した。続いて、普通電動役物を備える第二始動口2004の遊技球の入賞を検出する処理を時系列に沿って説明する。図291は、本実施形態における遊技機で普通電動役物を備える第二始動口2004に遊技球が入賞した場合の各構成の処理を説明するタイミングチャートである。なお、タイミングチャート上に記載した数値情報及び時間値等については一例であり、これらの値に限定されない。
まず、時刻t1では、普通電動役物の開放の開始にともない、有効時間を設定する。有効時間は、例えば、普通電動役物の作動時間(=開放時間)とする。また、不正カウントの初期値(例えば、“15”)を設定する。不正カウントの初期値は、例えば、普通電動役物作動時の最大入賞数+αとする。
時刻t2では、有効期間中に第二始動口2004への入賞が発生し、バッファ1(入力エッジデータ1エリア)及びバッファ2(賞球判定エリア)の対応するbit(第二始動口スイッチ)に“1”を設定する。さらに、バッファ2の値に基づいて保留記憶数Nに“1”を加算し、バッファ1の値に基づいて不正カウントを“1”減算する。そして、入賞の発生に基づく抽選が実行され、抽選結果や保留数増加に基づいて、各種演出コマンド(例えば、先読みコマンド、保留数増加コマンド)を周辺制御基板1510に送信する。さらに、第二始動口2004の入賞に対応する賞球コマンドを払出制御基板951に送信する。時刻t3についても有効期間中に第二始動口2004への入賞が発生するため、正常な入賞として時刻t2の場合と同様に処理する。
時刻t4では、第二始動口2004の遊技球の受け入れの有効時間が経過(終了)し、不正カウント値の初期値(不正判定数:“10”)を設定する。第二始動口2004の遊技球の受け入れの有効時間は、前述のように、普通電動役物の動作時間に加え、普通電動役物が閉鎖状態となってから入賞検出を許容する時間となっている。なお、不正判定数は、普通電動役物の開放時と閉鎖後とで異なる値に設定しているが、同じであってもよいし、普通電動役物の開放時には閉鎖後よりも大きな値を設定してもよい。また、普通電動役物の開放時間が複数種類ある場合には、その開放時間に合わせて不正入賞数を切り替えるようにしてもよい。例えば、短開放のときには3個、長開放(もしくは、複数回の開放)のときには15個のように不正入賞数を設定する。
その後、時刻t5~t8では、普通電動役物未作動時に遊技球が第二始動口2004に入賞する不正入賞により、入力エッジデータ1エリアに対応するバッファ1の対応するbit(第二始動口スイッチ)には“1”(有効、ON)を設定し、賞球判定エリアに対応するバッファ2の対応するbit(第二始動口スイッチ)に“0”(無効、OFF)を設定する。そして、バッファ1に基づいて不正カウントを“1”ずつ減算する。このとき、バッファ1の値に基づいて不正を判定しているため、このように適正な入賞でない場合には演出コマンドや賞球コマンドを送信しない。すなわち、第二始動口2004への入賞は有効を判定する場合にはバッファ2の値に基づいて処理を実行し、また、不正を判定する(不正カウントを計数する)場合にはバッファ1の値に基づいて処理を実行する。
以上のように、有効期間内に第二始動口2004への入賞(正常な入賞)が発生した場合、バッファ1及びバッファ2の対応するbit(第二始動口スイッチ)の値に“1”が設定され、各種コマンドが周辺制御基板1510や払出制御基板951に送信される。また、有効期間外に第二始動口2004への入賞が発生した場合には、バッファ1の対応するbitの値にのみ“1”が設定され、正常な場合に送信される各種コマンドを送信せずに不正カウントを更新する。なお、各バッファの値の設定時に不正カウントを更新するのではなく、各バッファの値を更新した後、各バッファの値に基づいて不正カウントを更新してもよい。これにより、各バッファの値を更新するモジュールと不正カウントの更新を行うモジュールとを独立させることが可能となり、スイッチ入力から対応するバッファの値の設定までの処理を共通化することができる。各バッファの値に基づく不正カウントの更新は、例えば、バッファ1及びバッファ2の対応するbitの値がいずれも“1”の場合以外に行ってもよいし、バッファ1の対応するbitの値が“1”、かつ、バッファ2の対応するbitの値が“0”の場合に行ってもよい。
時刻t9になると、さらに不正入賞が発生し、不正カウントを“1”減算することで不正カウントが“0”に到達する。これにより、セキュリティ信号(外部出力信号)の出力を開始する(30秒出力)。さらに、不正報知を開始するために、周辺制御基板1510に報知コマンドを送信する。この場合についても賞球コマンドは送信しない。なお、不正報知とセキュリティ信号の出力はいずれか一方であってもよい。
さらに、時刻t10において不正カウント数を“1”に設定する。これにより、不正入賞が継続して発生する場合であっても、セキュリティ信号(外部出力信号)の出力及び不正入賞が発生すると直ちに報知を行うことができる。なお、必ずしも不正カウント数を“1”に設定する必要はないが不正入賞が継続していることを認識できるように、初期値(“15”)よりも小さい値を設定することが望ましい。また、ノイズ等の誤検知により、不正でないにも関わらず不正報知が頻繁に行われることを防止するために“1”よりも大きい値を設定するようにしてもよい。時刻t9と時刻t10は、同一のタイマ割込み内で実行される。
時刻t11では、さらに不正入賞が発生し、不正カウントを“1”減算する。時刻t10で不正カウントを“1”に設定したため、再び不正カウントが“0”となり、セキュリティ信号(外部出力信号)の再出力が開始される(30秒出力)。さらに、再度不正報知を開始するために、周辺制御基板1510に報知コマンドを送信する。なお、セキュリティ信号出力中に再度不正入賞を検出した場合には、セキュリティ信号の出力を継続したまま、出力時間を再設定する。続いて、時刻t12では、再度不正カウント数を“1”に設定する。時刻t11と時刻t12における処理は、同一のタイマ割込み内で実行される。
その後、時刻t13にて、時刻t1と同様に、普通電動役物の開放にともない、有効時間を設定する。有効時間は、例えば、普通電動役物の作動時間(=開放時間)とする。また、不正カウントの初期値(例えば、“15”)を設定する。
時刻t14では、時刻t2と同様に、有効期間中に第二始動口2004への入賞が発生し、バッファ1及びバッファ2の対応するbit(第二始動口スイッチ)に“1”を設定する。バッファ2の値に基づいて保留記憶数Nに“1”加算するとともに、バッファ1の値に基づいて不正カウントを“1”減算する。そして、保留数増加に伴い、周辺制御基板1510に各種演出コマンドを送信する。さらに、第二始動口2004の入賞に対応する賞球コマンドを払出制御基板951に送信する。時刻t15では、時刻t4と同様に、第二始動口2004の遊技球の受け入れ可能な有効時間が経過し、不正カウント値の初期値(“10”)を設定する。
なお、第一始動口2003は遊技球を常時受け入れ可能となっているため、遊技球入賞時にはバッファ1(入力エッジデータ1エリア)及びバッファ2(賞球判定エリア)のbit0にそのまま“1”を設定すればよく、不正カウントを計数する必要はない。すなわち、始動口や大入賞口などのうち入賞可能な有効期間を有する入賞口については、不正入賞であるか否かを条件としてバッファ2にセットし、常時受け入れ可能な入賞口についてはバッファ1の内容をそのままバッファ2にセットするか、バッファ1を参照先として参照するようにしてもよい。
本実施形態の遊技機では、始動口に遊技球(遊技媒体)が入球すると、入賞の発生に基づく抽選を実行する。抽選の実行は、有効期間内に入賞が発生した場合(正常な入賞の場合)にのみ行えばよいが、入賞が有効期間内であるか有効期間外であるかに関わらず、バッファ1及びバッファ2の対応するbitの値に基づいて抽選を実行するか否かを判定してもよい。すなわち、各バッファの対応するbitの値を設定した後、入賞が有効期間内であるか否かを判定せずに、バッファ1及びバッファ2の対応するbitの値を参照して抽選を実行する。以下、各バッファに設定された値に基づいて抽選を実行する変形例について説明する。
まず、バッファ1及びバッファ2の対応するbitの値が異なっている場合には、何らかの異常が発生したことによる(異常が発生した可能性が高い)無効な入賞として抽選を実行せずに、周辺制御基板1510に専用コマンドを送信するようにしてもよい。周辺制御基板1510は、この専用コマンドを受信すると、入賞に異常が発生している可能性があることを報知可能とする。本実施形態では、前述したように、有効期間外に複数回の入賞が発生した場合に不正の発生を報知するため、不正カウントが“0”に到達した場合にはこの専用コマンドとは異なるコマンドを送信し、異常発生を明確に報知するようにしてもよい。また、専用コマンドに不正カウントの値を含めるようにしてもよく、この場合、不正カウントが“0”であるか否かを周辺制御基板1510が判定し、不正カウントが“0”の場合には異常発生を明確に報知すればよい。
さらに、いずれか一方のバッファを優先し、優先されたバッファの対応するbitの値に“1”が設定されている場合に抽選を実行可能としてもよい。例えば、入賞の有効性を重視し、バッファ2の値に基づいて(バッファ2の値を優先して)抽選を実行する。一方、遊技球が入賞口に入賞した事実を重視し、バッファ1の値に基づいて(バッファ1の値を優先して)抽選を実行してもよい。この際、バッファ1及びバッファ2の対応するbitの値が相違することを示す専用コマンドを周辺制御基板1510に送信するようにしてもよい。この専用コマンドを所定回数以上連続して受信した場合、又は、所定期間内に所定回数以上受信した場合に異常が発生したものとして異常報知を行うようにしてもよい。
また、優先するバッファは、パラメータ等によって抽選処理の実行時に決定するようにしてもよい。例えば、優先するバッファを指定する情報を含むテーブルをあらかじめ保持し、抽選処理の実行時にテーブルを参照し、優先するバッファを特定する。これにより、テーブルのデータ値を変更することによって、プログラムコードを修正することなく、優先するバッファを切り替えることができる。このように構成することによって、例えば、機種ごとに優先するバッファが異なる場合であっても共通のプログラムコードを利用することが可能となり、プログラムの汎用性を高め、開発効率を向上させることができる。
さらに、優先するバッファを指定する手順について説明すると、抽選処理の実行開始時に優先するバッファを示すデータ値を格納するテーブルの先頭アドレスを所定のレジスタに格納する。この所定のレジスタに格納されたアドレスからテーブルを特定して必要な情報を取り込み、優先するバッファを特定する。テーブルに格納される情報は、バッファ1の値に基づいて抽選を実行する場合にはバッファ1のアドレス、バッファ2の値に基づいて抽選を実行する場合にはバッファ2のアドレスが格納される。抽選処理の実行時には、テーブルに指定されたバッファのアドレスを参照することになるため、テーブルに格納されたデータ値を変更するだけで参照先を切り替えることが可能となり、共通の処理として構成することができる。また、遊技状態などによって参照先を切り替えることも可能となり、例えば、第二始動口2004へ遊技球が受入可能となる遊技状態では入賞が有効である可能性が高いために遊技球が入賞口に入賞した事実を重視してバッファ1を優先し、第二始動口2004へ遊技球が受入可能でない遊技状態では、入賞の有効性を重視してバッファ2を優先するようにしてもよい。
また、バッファ1及びバッファ2の対応するbitの値が異なっている状態で抽選を実行した場合には、抽選結果に基づくコマンド(変動パターンコマンド、図柄種別コマンド等、通常の変動開始時に送信されるコマンドと同じ)を送信するとともに、周辺制御基板1510に相違することを示す専用コマンドを送信する。抽選結果に基づくコマンドと専用コマンドの送信順序は、抽選結果に基づくコマンドを先に送信してもよいし、専用コマンドを先に送信してもよい。また、専用コマンドを送信する代わりに、抽選結果に基づくコマンドにバッファ1及びバッファ2の対応するbitの値が異なっていることを示す情報を付加してもよい。このとき、バッファ1及びバッファ2の対応するbitの値が異なっていることを示す情報を、抽選結果に基づくコマンドのすべてのコマンドに付加してもよいし、いずれか一つ(一部)のコマンド(例えば、最初に送信するコマンド)にのみ付加してもよい。バッファ1及びバッファ2の対応するbitの値が異なっていることを示す情報の付加は、例えば、通常(一致)時の変動パターンコマンドを“3001h”~“30FFh”としたとき、異常(相違)時の変動パターンコマンドを“B001h”~“B0FFh”とする。具体的には、変動パターンコマンドの先頭bitを変更することで、変動パターンコマンドの上位1バイトが“30h”(“00110000b”)から“B0h”(“10110000b”)に変更される。
また、バッファ1及びバッファ2の対応するbitの値にいずれも“1”(有効)が設定されている場合には、バッファ1に格納された(対応する)情報を用いることなく、有効期間内に入賞した場合に設定されるバッファ2に格納された(対応する)情報に基づいて抽選を実行する。これにより、有効性が担保された情報に基づいて抽選を実行することができる。一方、バッファ2に格納された(対応する)情報ではなく、バッファ1に格納された(対応する)情報に基づいて抽選を実行するようにしてもよい。この場合、バッファ2にはスイッチ入力に関連する最低限の情報のみを保持すればよいため、必要な記憶容量の削減等を図ることができる。
以上のような遊技機では、始動口(始動領域)に遊技球(遊技媒体)が受け入れられた(通過した)ことに基づいて抽選を実行するとともに図柄の変動表示を開始し(抽選実行手段)、抽選の結果によって賞球を払い出すなど遊技者に遊技価値を付与可能な状態(特別遊技状態)に移行する。始動口に備えられた始動口スイッチ(遊技媒体検出手段)によって受け入れられた遊技球が検出され、入力情報記憶領域(遊技媒体検出情報記憶手段)に記憶される。入力情報記憶領域には、始動口に遊技球を受け入れた場合に常時入力情報(遊技媒体検出情報)を記憶するバッファ1(入力エッジデータ1エリア、第1記憶手段)と、第二始動口2004のように普通電動役物の開放時(遊技球の受入条件成立時)にのみ遊技球の受入可能な期間(有効期間)内に入力情報(遊技媒体検出情報)を記憶するバッファ2(賞球判定エリア、第2記憶手段)が割り当てられている。このように構成することによって、バッファ2に記憶された入力情報に基づいて抽選を実行し、バッファ1(及びバッファ2)を参照して不正入賞(異常発生)を検出し、不正入賞数などを計数することが可能となる。
[17-6.タイミングチャート(確変領域スイッチ)]
以上、第二始動口2004に遊技球が入賞した場合について説明した。続いて、大当り遊技中の特定のタイミング(特定ラウンド)に入賞すると、当該大当り終了後に確変状態に移行する確変領域に対する遊技球の入賞を検出する処理を時系列に沿って説明する。図292は、本実施形態における遊技機で確変領域(V-AT領域)に遊技球が入賞した場合の各構成の処理を説明するタイミングチャートである。なお、タイミングチャート上に記載した数値情報及び時間値等については一例であり、これらの値に限定されない。
まず、時刻t1では、遊技球の確変領域スイッチの通過を検出する。これにより、確変領域スイッチがOFFからONとなる。このとき、特定ラウンド(V通過可能ラウンド)となっているため(有効期間)、バッファ1(入力エッジデータ1エリア(INPUT_EDG1))の対応するbit(確変領域スイッチ)に“1”を設定するとともに、バッファ2(賞球判定エリア(PAY_JDG_AR))の対応するbit(確変領域スイッチ)にも“1”を設定し、バッファ2の値に基づいて対応ビットに1が設定されている場合には確変判定用フラグをセットする。大当り終了後、確変判定用フラグがセットされている場合に確変状態に移行する。また、バッファ1の対応bitとバッファ2の対応bitに同じ値が設定されている場合に、確変判定用フラグをセットするようにしてもよい。このとき、バッファ1の対応bitとバッファ2の対応bitとでAND値(論理積)を算出し、値が1の場合に確変判定用フラグをセットするようにしてもよい。時刻t1では、正常と判定されるため、V通過演出に関する演出コマンドを周辺制御基板1510に送信する。特定ラウンド(V通過可能ラウンド)は、時刻t2にて終了するが、1回分の大当り遊技において複数回の特定ラウンドが発生するようにしてもよい。
続いて、時刻t3では、時刻t1と同様に、遊技球の確変領域スイッチの通過を検出する。このとき、特定ラウンド内(有効期間内)ではないので、入力エッジデータ1エリアに対応するバッファ1の対応するbit(確変領域スイッチ)には“1”を設定し、賞球判定エリアに対応するバッファ2の対応するbit(確変領域スイッチ)には“0”(無効、OFF)を設定する。バッファ1の対応bitとバッファ2の対応bitとが異なる値であるため、異常、すなわち、特定ラウンド以外でのV通過と判定して、大当り後に高確率(有利状態)に移行することはなく、V通過異常報知としてセキュリティ信号を時刻t4まで出力するとともに、V通過異常報知コマンドを周辺制御基板1510に送信する。なお、セキュリティ信号については、大入賞口2005や第二始動口2004における異常時の信号と同じであってもよいし、異なる外部出力であってもよい。また、出力時間は、予め定められた時間であればよく、大入賞口入賞異常等と同じ時間である必要はない。さらに、V通過異常報知とセキュリティ信号の出力はいずれか一方であってもよい。
なお、特定ラウンドにおいて確変領域スイッチの通過を検出後に、特定ラウンド以外においても確変領域スイッチの通過を検出した場合には、特定ラウンド以外の通過時に異常報知のみが実行(異常報知コマンドが送信)されるものの、大当り後に高確率(有利状態)に移行させてもよい(確変判定フラグの値が維持される)し、大当り後に高確率(有利状態)に移行させない(確変判定フラグの値がクリアされる)ようにしてもよい。また、特定ラウンド以外においても確変領域スイッチの通過を検出したときに、異常報知コマンドは送信されるものの、セキュリティ信号については出力させずに、ランプや音声等の周辺制御基板1510側での異常報知のみを行なってもよいし、報知コマンドは送信されるものの当該コマンドに対して周辺制御基板1510では異常報知を行わないようにしてもよい。
図292に示すタイミングチャートでは、バッファ1とバッファ2の対応するbitが一致するか否かを判定することで異常を判定しているが、大入賞口の入賞異常を判定する場合と同様に、カウント数をあらかじめ設定する方法であってもよい。例えば、特定ラウンドの開始時に不正判定カウンタに“2”を設定し、バッファ1の情報に基づいて不正判定カウンタを減算する。また、特定ラウンドの終了時に“1”に設定し、不正カウントを減算した結果0となった場合に不正と判定するようにしてもよい。なお、特定ラウンドの開始時に設定する不正カウントの初期値については、通常時では起こり得ない値に設定すればよいため“2”に限定する必要はなく、遊技球の2個以上の通過があり得ない場合には2を設定すればよい。また、特定ラウンド以外では1個でも遊技球が通過した場合に不正と判定する必要があるため、特定ラウンド終了時には“1”を設定し、減算した結果“0”となり不正報知した後に“1”に設定する。
ここで説明している遊技機では大当り遊技中の所定のタイミング(特定ラウンド中)で遊技球が確変領域に入賞する条件で確変状態に移行する。確変領域が遊技球を受入可能な状態でない場合には、遊技球が入賞困難(若しくは不可能)な状態になっており、このような状態で確変領域に遊技球が受け入れられた場合には不正入賞と判定される。そこで、上述のように、確変領域スイッチに対応するbitをバッファ1(入力エッジデータ1エリア)及びバッファ2(賞球判定エリア)を設け、バッファ1には有効/無効を問わずにセットし、バッファ2には有効な場合にのみセットする。これにより、確変状態に移行する処理において不正入賞を判定することなくバッファ2を参照すればよいため、処理を簡素化することができる。一方、バッファ1及びバッファ2を参照することで不正入賞の判定や不正入賞数を計数することが可能となる。
[17-7.まとめ・変形例]
以上より、本実施形態の遊技機は、大入賞口や始動口等に遊技球(遊技媒体)の受け入れを検出センサ(スイッチ)により検出する(所定の領域を遊技媒体が通過したことを検出する)遊技媒体検出手段と、これらの遊技球(遊技媒体)の検出情報(遊技媒体検出情報)を記憶可能な遊技媒体検出情報記憶手段(入力情報記憶領域)と、を備え、遊技媒体検出情報記憶手段は、遊技媒体検出情報を常時記憶可能なバッファ1(第1記憶手段、不正判定用エッジバッファ、入力エッジデータ1エリア)と、有効期間内(所定条件の成立時)に遊技媒体検出情報を記憶するバッファ2(第2記憶手段、賞球判定エリア)とを有しており、例えば、有効期間内に遊技球が入賞し、賞球を払い出す場合(所定条件の成立に基づく処理を実行する場合)には賞球判定エリア(第2記憶手段)に記憶された遊技媒体検出情報を参照して処理を実行する。
また、入賞口や確変領域などにおいて遊技球の受け入れに有効期間が設定されている場合には、バッファ1にのみスイッチ入力情報(遊技媒体検出情報)が記憶された回数(不正入賞数)を計数することで異常判定を行うことができる。不正入賞数の計数は、異常判定用の閾値を初期値として不正入賞が発生するごとに1ずつ減算し、0に到達したら異常と判定するようにしてもよいし、初期値を0として1ずつ加算し、異常判定用の閾値に到達したら異常と判定するようにしてもよい。
したがって、本実施形態によれば、入力判定処理実行時に参照する領域を切り替えることによって入力判定に伴う処理を共通化し、処理全体を簡素化することができる。前述のように、有効期間内に検出された情報に基づいて賞球を払い出したり、有効期間外に入賞した遊技球の数を計数することで異常判定を行ったりすることが可能となり、遊技機の開発効率を向上させることができる。例えば、大入賞口2005の入賞を判定する場合に、前述した実施形態では、賞球判定エリアの値に基づいて判定していたが、大当り状態における大入賞口2005への入賞の計数については、入力エッジデータエリア1の値で判定し、賞球に伴う入賞判定のみ賞球判定エリアの値を参照するようにしてもよい。
なお、本実施形態では、常時入力を記憶するバッファ1と、有効期間内に入力を記憶するバッファ2の2種類のバッファを有する構成について説明したが、遊技状態ごとにバッファを備えるなど2種類以上のバッファを有するように構成してもよい。
さらに、ここまで説明した実施形態では、入賞時に有効期間が設定されている入賞口について説明したが、常時遊技球を受け入れ可能な第一始動口2002は、遊技球が入賞すると、有効期間を判定することなく、バッファ1(入力エッジデータ1エリア)及びバッファ2(賞球判定エリア)の対応するbit(第一始動口スイッチ)に“1”(有効)を設定する。このため、第一始動口2002については、バッファ1の値に基づいて賞球を行ってもよいし、第二始動口2004と同様にバッファ2の値に基づいて賞球を行ってもよい。また、バッファ1の値とバッファ2の値とが一致し、第二始動口2004における有効期間の判定処理の結果が常に正常となるため、例えば、第一始動口2002に入賞した場合の賞球の処理を第二始動口2004の賞球の処理と共通としてもよい。
バッファ1及びバッファ2は、RAM(主制御内蔵RAM)に割り当てられた入力情報記憶領域に含まれているが、これらのバッファを連続した領域に配置してもよいし、離れた領域に配置してもよい。バッファ1及びバッファ2を連続した領域に割り当てる場合には、それぞれのバッファに値を格納する場合に、INC命令/DEC命令を実行するだけでそれぞれのバッファへの設定が可能となり、処理を簡素化できる。一方、バッファ1及びバッファ2を離れた領域に割り当てる場合には、各バッファを自由に配置できるため、記憶領域の設計に自由度が高くなり、開発効率を向上させることができる。
[18.ビット転送命令]
近年の遊技機では、遊技の興趣をより高めるために複雑な遊技制御が求められるようになっている。一方、遊技制御を実際に行う遊技制御装置には遊技の公平性の担保や過剰に射幸心を煽ることを防ぐために一定の制約が加えられ、所定の枠組みの中で遊技が行われるようになっている。
そのため、複雑な遊技制御を実現するためにプログラムの構造が複雑化するなどして不具合が発生するなど問題が生じるおそれがあった。そこで、遊技制御をデータ化することでプログラムの簡略化を図っていた。例えば、制御内容が定義されたデータをプログラムが順次処理することでプログラムの構造が簡略化されるとともに、データを変更することで仕様変更にも対応しやすくなった。
一方、遊技制御のデータ化によってデータへの依存が高くなってしまい、遊技機の仕様の複雑化によってデータ容量の増大を招くこととなっていた。また、遊技機の制御を行うためのデータを記憶するための容量には制限があるため、データ容量の増大を抑制する必要があった。
本実施形態の遊技機は、上記事情に鑑みなされたもので、遊技機で使用されるデータ容量の増大を抑制するために、データを圧縮して格納することでデータ容量を削減することを可能とする遊技機を提供することを目的とする。
本実施形態の遊技機によれば、データを圧縮することによって、より多くのデータを保持することが可能となり、複雑な仕様を盛り込んだ遊技を提供することが可能となり、遊技の興趣を高めることが可能となる。また、遊技制御のデータ化をさらに進めることで、プログラムをより簡略化することが可能となり、遊技制御の複雑化を抑制し、不具合の発生確率を低減することが可能となる。さらに、遊技機の仕様変更に対応しやすくなり、また、一部のデータを差し替えることで様々なバリエーションの遊技機を容易に提供することが可能となる。
具体的に本実施形態における遊技機では、遊技データを読み出す命令を改良することによって、遊技データを保持するテーブルの構造の自由度を向上させたり、遊技データを読み出す処理を簡素化させたりすることによって、遊技データの容量を圧縮したり、データの読み出しをともなう遊技制御を簡素化させたりする。以下、本実施形態におけるデータを読み出すための構成及び手順について説明する。
[18-1.ビット転送手順概要]
まず、本実施形態におけるデータを読み出すための構成及び手順の概要について説明する。本実施形態におけるデータ転送手順では、指定されたアドレスからバイト単位でデータを読み出すのではなく、テーブルの指定されたビット位置からビット単位でデータを読み出すことが可能となっている。
図293は、本実施形態のビット転送手順の概要を説明する図である。本実施形態におけるビット転送手順では、データを読み出し元を指定するインデックス(インデックス情報)に基づいてデータを読み出す位置(アドレス)を特定し、指定されたビット数分のデータを読み出すように構成されている。本手順の実行時には、インデックス、読み出すデータのビット数に対応する抽出指定情報及び読み出したデータの格納先がパラメータとして指定される。インデックスには、インデックス情報が格納されたレジスタを指定するようにしてもよいし、値を直接指定するようにしてもよい。
本実施形態におけるインデックスは、2バイト(16ビット)で構成されている。上位13ビットはデータテーブルの先頭アドレスを示す情報(テーブルの位置情報)が格納されており、下位3ビットは指定されたデータテーブルからデータを読み出す位置を示す情報(データの相対位置情報)を示している。本実施形態では、指定されたインデックスを補正することによって、指定されたデータテーブルのアドレスを特定し、当該データテーブルのデータの読み出し位置を取得する。具体的には、補正前のインデックスの上位13ビットを下位13ビットとし、上位に“000”を付加して2バイト(16ビット)とすることで、補正後のインデックスを作成する。
次に、データの格納位置(テーブルの配置)の基準となるアドレスを示す「TP(レジスタ)」に設定された値と、補正後のインデックスを加算することによって取得するデータの参照アドレス(N)を算出し、テーブルの格納位置(アドレス)を特定する。さらに、補正前のインデックスの下位3ビットの値から参照アドレス(N)のデータの読み出し位置(読み出し開始ビット位置)を特定する。図293に示す例では、補正前のインデックスの下位3ビットの値(左下がりのハッチング部)が、参照アドレス(N)の読み出し開始ビット位置となっており、例えば、下位3ビットの値に“100”がセットされている場合には、参照アドレス(N)の読み出し開始ビット位置が4ビット(“100”)目となる。
このように、本実施形態では、TPレジスタに設定された値をインデックスの値に加算してデータが格納された領域のアドレスを特定可能であるため、データ格納位置の下位アドレスを指定すればよく、上位アドレスを格納するための領域を他の用途に利用することができる。具体的には、データの読み出し開始ビット位置を指定するための領域(補正後のインデックスの下位3ビット)として使用している。以上のように構成することによって、本実施形態では、データ格納領域のアドレス及びデータの読み出し開始ビット位置を2バイトのインデックスで特定することが可能となっている。すなわち、従来のロード命令のように、アドレスを指定してデータを読み出す場合と比較しても容量の増大を招くことなく、ビット単位でデータの格納位置を特定し、データを読み出すことが可能となっている。
また、本実施形態におけるビット転送手順では、実行時にパラメータとして読み出すデータのビット数に対応する抽出指定情報を指定する。抽出指定情報には、取得するデータのビット数-1の値が設定される。図293に示す例では、参照先アドレス(N番地)が示すテーブルの5ビット目から6ビット(抽出指定情報=5の場合)分のデータを読み出して指定された格納先に格納する。
本実施形態では、あらかじめTPレジスタに設定されたデータ領域の先頭アドレス(基準アドレス)の値に補正後のインデックスを加算した値が実際にデータが格納されたアドレスとなっている。また、電源投入時等でCPUがリセットされた場合には、TPレジスタに設定される値は、デフォルト値(初期値)としてデータ領域の先頭アドレスが設定されるようになっている。さらに、TPレジスタは、プログラムによって任意の値に書き換えることが可能となっている。このように構成することによって、遊技状態などに応じてTPレジスタの値を適宜書き換えることにより、プログラムコードを変更することなくデータの参照先を変更することが可能となり、プログラムコードを簡素化し、遊技機の開発効率を向上させることができる。なお、ビット転送手順の詳細については、図299以降を参照しながら後述する。
TPレジスタは、CPUが有するレジスタのうちの基準アドレスとなるインデックスを指定するための専用レジスタである。演算等で用いられる汎用レジスタは2以上のバンクで構成されているが、TPレジスタはフラグレジスタと同様にバンク構成とならず、一のレジスタとして構成されている。なお、汎用レジスタのようにバンクごとにTPレジスタを設け、バンクの切替毎に汎用レジスタと同様に一方のバンクのTPレジスタを使用可能とするように構成してもよい。例えば、初期化処理でバンク0を使用し、タイマ割込み処理でバンク1の汎用レジスタを使用する場合、初期化処理で使われるTPレジスタは、バンク0として設定されたものを使用し、タイマ割込み処理で使用されるTPレジスタは、バンク1として設定されたものを使用することになる。これにより、処理に応じてTPレジスタの値を切り替えることが可能となり、例えば、データの参照先を処理ごとに切り替えることができる。なお、バンク毎にTPレジスタを設けた場合であってもバンク毎に設けていない場合と同様にプログラムにより書き換えが可能でであり、リセット時にはデフォルト値が設定される。また、デフォルト値はバンクによらずに共通の値であってもよいし、バンク毎に異なる値が設定されるようにしてもよい。
[18-2.ビット転送命令の種類]
続いて、上記手順(ビット転送命令)を実行するための命令コード(コマンド)について説明する。本実施形態では、アセンブラ(ニーモニック)でビット転送命令を実行する場合について説明するが、他の開発言語でも同様である。図294は、本実施形態におけるビット転送命令を実行するための命令コードの構成例を示す図である。
ビット転送命令は、命令コード「RBT」と、パラメータによって構成される。パラメータは、参照するデータの格納先、参照先アドレスを示すインデックス及び抽出されるデータのビット数に対応する抽出指定情報である。本実施形態では、参照するデータの格納先をレジスタとしているが、直接RAM上の記憶領域に書き込んでもよい。インデックスの値は、図293に示した例のように、読み出すデータを格納したテーブルのアドレスと読み出すデータの位置を指定するものである。
次に、実際に命令コードを使用する例について説明する。図295は、本実施形態のビット転送命令の種類の一例を示す図である。前述のように、命令コードは「RBT」であり、取得されたデータがレジスタrに格納される。レジスタrは、例えば、汎用レジスタであるWレジスタ、Aレジスタ、Bレジスタ、Cレジスタ、Dレジスタ、Hレジスタ、Lレジスタが指定される。なお、読み出すデータが2バイトの場合には、WAレジスタ、BCレジスタ、DEレジスタなどのペアレジスタを指定すればよい。
また、パラメータ(参照するデータの格納先、参照先アドレス及び抽出指定情報)の指定は、インデックス(アドレス)の値mmを直接指定する場合と、アドレス指定用のレジスタrrを指定する場合とがある。レジスタrrが指定された場合には、当該レジスタに格納された値を読み出して処理する。アドレス指定用のレジスタrrには、2バイトの値が格納されるため、DEレジスタ、HLレジスタ、インデックスレジスタ(IXレジスタ、IYレジスタ)等が対応する。以下、図295に示したビット転送命令コードの例について説明する。
“RBT r,(mm).n”は、データを格納するテーブルのアドレスmmを直接指定し、抽出指定情報nに基づくビット数分のデータを読み出し、レジスタrに格納する。抽出指定情報nは、0~7若しくは0~15の範囲の数を直接指定する、若しくは、レジスタAを指定する。レジスタAが指定される場合には、レジスタAに格納された数分に対応するデータが読み出される。
さらに、“RBT r,(mm).n”の具体的なオペレーション(手順)について説明すると、図293にて説明したように、16ビットのインデックスmmの上位13ビットによって特定されるテーブルのアドレスに対応するため、mm/8が補正後のインデックスに対応する。補正後のインデックスに前述したTPレジスタに設定された値を加算し、参照するテーブルの実際のアドレスを算出する。さらに、インデックスmmの下位3ビットを抽出し(mm∧07H)、参照するテーブルからデータを読み出し開始のビット位置を特定する。そして、特定された位置から抽出指定情報n+1ビット分のデータを抽出し、レジスタrに格納する。このとき、命令を処理するサイクルは11となり、命令を記憶するための容量は5バイトとなる。また、命令実行後についてもフラグレジスタのうちJフラグ及びZフラグはゼロとなり、その他については命令実行前の値が保持される。なお、フラグレジスタの変化については、以下に記載する命令コードであっても同様となる。
“RBT r,(rr).n”は、テーブルのアドレスを格納したレジスタrrを指定し、当該テーブルから抽出指定情報nに基づくビット数分のデータを読み出し、レジスタrに格納する。他のパラメータについては、“RBT r,(mm).n”のパラメータと同様である。具体的には、HLレジスタに参照するテーブルのアドレスが格納され、Aレジスタに読み出したデータを格納する場合には“RBT A,(HL).n”となる。“RBT r,(rr).n”の具体的なオペレーションについては、“RBT r,(mm).n”のアドレスmmをレジスタrrに格納された値に置き換えた場合と同じであるため説明を省略するが、詳細な手順については図300にて後述する。このとき、命令を処理するサイクルは9となり、命令を記憶するための容量は3バイトとなる。なお、読み出す対象が8ビット(1バイト)より大きい場合には、格納先として、DEレジスタ、HLレジスタ、インデックスレジスタ(IXレジスタ、IYレジスタ)等のレジスタを指定するために、容量としては1バイト分増加して4バイトとなる。この場合のビット転送命令の詳細な手順については図302にて後述する。
“RBT r,(rr+).n”は、“RBT r,(rr).n”と同じオペレーションで実行された後、レジスタrrに格納されたアドレスの値をn+1だけ加算する。このとき、命令を処理するサイクルは10となり、命令を記憶するための容量は3バイトとなる。これにより、指定した領域を連続して読み出すことが可能となる。例えば、“RBT A,(HL+).n”を実行した後、“RBT W,(HL).m”を実行することによって、最初にHLレジスタに格納されたアドレスのテーブルの指定された位置からnビットのデータを読み出してAレジスタに格納した後、次の領域からmビットのデータを読み出してWレジスタに格納することができる。このように、“RBT r,(rr+).n”を連続して実行することによって連続した領域から複数のデータを読み出すことができ、同じビット数のデータを必要な分だけ読み出す場合や複数種類のビット数のデータによって構成されているレコード(データ群)を読み出す場合の処理を簡素化することができる。なお、連続した領域から複数のデータを読み出す詳細な手順については図301にて後述する。
“RBT r,(rr+d).n”は、レジスタrrに格納されたテーブルのアドレスに値dを加算した位置からデータを読み出す。これにより、指定したテーブルの任意のデータを指定してデータを読み出すことが可能となる。このとき、命令を処理するサイクルは10となり、命令を記憶するための容量は4バイトとなる。
“RBT r,(rr+W).n”は、レジスタrrに格納されたテーブルのアドレスにレジスタWに格納された値を加算した位置からデータを読み出す。これにより、指定したテーブルの任意のデータを指定してデータを読み出すことが可能となる。また、レジスタWの値を更新することによって共通のコードで連続して指定した位置からデータを読み出すことができる。“RBT r,(rr+A).n”についてもレジスタWからレジスタAに変更されるだけで同様に処理可能となっている。これらの命令を処理するサイクルは10となり、命令を記憶するための容量は3バイトとなる。
[18-3.プログラム例]
続いて、前述したビット転送命令“RBT”の適用例について説明する。図296は、本実施形態におけるビット転送命令“RBT”を使用する処理のフローチャートの一例を示す図である。また、図297は、本実施形態におけるビット転送命令“RBT”を使用する処理のフローチャート(図296)に対応するプログラムの一例を示す図である。プログラムのコメントとして対応するフローチャートのステップを記載している。図296及び図297に示す処理は、テーブルから6ビット単位でデータを読み出す処理である。本処理は、主制御基板1310の主制御MPU1311によって実行される。
主制御基板1310の主制御MPU1311は、まず、参照先アドレスの初期値として参照テーブルの先頭アドレスからデータ領域の先頭アドレスを減算した値をインデックス値として設定する(ステップP8001)。具体的には、図297のプログラムに示すように、参照するテーブルのアドレスをHLレジスタに格納する(“LD HL,table_Top”)。参照するテーブルのアドレスは、ラベル“table_Top”によって特定され、テーブルの内容はプログラムの最後に定義されている。このテーブルは、1データに割り当てられるビット数(基本構成ブロックの総ビット数)を6とし、4個のデータ(“25,48,32,63”)が格納されている。なお、データ領域の先頭アドレスについて、電源復旧時等のリセット信号が入力される毎にデフォルト値として「データ領域の先頭アドレス」がTPレジスタに設定されるため、TPレジスタを書き換えない場合、すなわち、データ領域の先頭アドレスが格納されたままの場合には、データ領域の先頭アドレスの値の代わりにTPレジスタの値を減算してもよい。
次に、主制御MPU1311は、参照テーブルから参照するデータのポインタ情報(pointa_a)を抽出する(ステップP8002)。プログラムに示すように、ポインタ情報のアドレスは、Aレジスタに格納される(“LD A,(pointa_a)”)。
主制御MPU1311は、抽出したポインタ情報を参照テーブルの基本構成ブロックの総ビット数を乗算する(ステップP8003)。基本構成ブロックとは、参照テーブルに格納される一単位のデータ(レコード)を格納するための領域を示すものである。また、基本構成ブロックの総数はデータを格納する領域のビット数であり、レコード単位のデータ容量に相当する。例えば、0から30までの範囲の整数値を格納するテーブルでは、各データを格納するためには5ビット分の領域が必要であるため、基本構成ブロックの総数は5となる。本実施形態では、基本構成ブロックの総ビット数は6となっている。乗算した結果は、プログラムに示すように、Aレジスタに格納される(“MUL A,6”)。
主制御MPU1311は、乗算した値を基本単位数で除算する(ステップP8004)。本実施形態の遊技機の演算装置(主制御基板1310の主制御MPU1311)で扱うデータの基本単位数は8(1バイトのビット数)である。演算結果は、プログラムに示すように、WAレジスタに格納される(“LD C,8→DIV WA,C”)。なお、「DIV」命令を実行した場合には、商がAレジスタ、余りがWレジスタに格納される。
主制御MPU1311は、ステップP8004の処理で算出された除算結果の商をインデックス値に加算する(ステップP8005)。プログラムに示すように、インデックス値は、HLレジスタに格納されており、WAレジスタに格納された値を加算する(“ADD HL,WA”)。なお、プログラムを参照すると、HLレジスタに格納された値にWAレジスタに格納された値を加算する前に、「PUSH WA」を実行することでWAレジスタをスタック領域に退避しているが、これは余りが記憶されたWレジスタの値がクリア(“XOR W”)され、その後に余りの値を演算値として使用するためである(“POP WA→LD A,W→・・・”)。
さらに、主制御MPU1311は、ステップP8005の処理の算出結果をN(本実施形態では8)倍する(ステップP8006)。プログラム上では、左シフト(SLA HL)を3回行う(3ビットシフトする)ことによってHLレジスタの値を8倍する。
主制御MPU1311は、ステップP8006の処理の算出結果に、ステップP8005の除算の余り値を加算し、参照先アドレス情報として設定する(ステップP8006)。Wレジスタに格納された余り値は、参照テーブルの先頭アドレスから参照データを読み出す開始ビット位置となっている。プログラム上では、余り値を算出し(“POP WA”→“LD A,W”→“XOR W”)、インデックス値が格納されているHLレジスタに余り値(WAレジスタに格納された値)を加算している(“ADD HL,WA”)。これらの処理によって、図293に示したインデックス(補正前インデックス)を作成することができる。
最後に、主制御MPU1311は、取得する情報数(参照するデータのビット数、本実施形態では6)に基づいて抽出指定情報を指定し、参照先アドレス情報からビット転送命令により、参照データの格納先にセットする(ステップP8009)。プログラム上では、HLレジスタに格納された値を補正前インデックスとし、抽出指定情報nに対応するビット数(6ビット)分のデータをAレジスタに格納する(“RBT A,(HL).n”)。
[18-4.変形例]
前述のように、本実施形態におけるビット転送命令を行うための手順は、(1)参照するデータの指定、(2)インデックス(補正前インデックス)の作成、(3)データの読み出し/格納となっている。ここで、ビット転送命令を実行する処理に依存せずに実行可能な処理をサブルーチンとして独立させてプログラムの構造の簡素化を図る変形例について説明する。
(1)参照するデータの指定は、実行中の処理に必要なデータ(参照データ)を特定するための情報を設定するものであり、図296のフローチャートでは、ステップP8001で参照するテーブルに対応する情報を指定し、ステップP8002でデータの読み出し位置に対応する情報を指定する処理が相当する。これらの処理は実行中(呼び出し元)の内容に特化したものであり各種機能実行時に個別に指定される。(3)データを読み出す/格納する処理についても同様であり、取得されたデータに基づいて後続の処理で実行される。
一方、(2)インデックス(補正前インデックス)の作成では、(1)で指定されている参照先のテーブルのアドレス及びデータの参照位置のポインタ情報に加え、基本構成ブロックの総ビット数を指定することで、実行中の処理とは独立して補正前のインデックスを作成することができる。そのため、(2)インデックス作成処理をサブルーチン化することができる。
図298は、本実施形態におけるインデックス作成処理をサブルーチン化したフローチャートの一例であり、(A)はインデックス作成処理の呼び出し元の処理であり、(B)はサブルーチン化されたインデックス作成処理である。図298(A)に示すフローチャートは、図296と同じ処理を実行するものである。図298(B)のインデックス作成処理のフローチャートは、図296のステップP8003からステップP8008までの処理をサブルーチン化したものである。このように、インデックス作成処理をサブルーチン化することによって、呼び出し元の処理を簡素化することが可能となり、開発効率を向上させることができる。
また、インデックス作成処理の入力パラメータは、参照テーブルの先頭アドレスである「インデックス値」、参照するデータの「ポインタ情報」、格納されたデータの「基本構成ブロックの総ビット数」となる。本実施形態では、HLレジスタに「インデックス値」として参照テーブルの先頭アドレスからデータ領域の先頭アドレスを減算した結果が設定され(ステップP8001)、Aレジスタに「ポインタ情報」が設定される(ステップP8002)。さらに、パラメータとして「基本構成ブロックの総ビット数」を設定する(ステップP8013)。したがって、インデックス作成処理の入力パラメータとして、「インデックス値」及び「ポインタ情報」を設定する際にはインデックス作成処理において「インデックス値」「ポインタ値」として扱うレジスタに設定(指定)することでにより行う。また、「基本構成ブロックの総ビット数」については、数値そのものを指定してもよいし、「基本構成ブロックの総ビット数」として扱うレジスタに設定(指定)するようにしてもよい。
[18-5.圧縮データ]
従来のデータ読み出し命令では、データの格納が所定の基本単位(バイト単位)で管理されているため、この単位でテーブルからデータを読み出す必要があった。本実施形態の遊技機のように1バイト(8ビット)単位で管理されている従来のテーブル構造では、1バイト(8ビット)分の容量を必要としないデータであってもバイト単位でデータを格納する必要があった。例えば、0から63までの範囲の数値であればデータごとに6ビット分の容量を確保すればよいにもかかわらず、各データに1バイト分の容量を割り当てて保持する必要があった。
一方、本実施形態のビット転送命令では、参照するテーブルの指定された位置から指定されたビット数分のデータを読み出すことができる。そのため、必要な分だけデータの領域を割り当てればよく、データを圧縮して保持することが可能となる。データを圧縮して保持する構造について、以下、図299を参照しながら説明する。
図299は、本実施形態におけるテーブル構造の一例を説明する図である。図299に示すテーブルでは、4個のレコード(データ)“25,48,32,63”を保持している。これらのデータは16進数に変換すると、“19h,30h,20h,3Fh”となり、2進数に変換(ビット変換)すると、“00011001b,00110000b,00100000b,00111111b”となる。遊技機の演算装置で扱うデータの基本単位数が8であるため、従来は点線で示した4771の領域のような8ビット単位でデータを保持するテーブル構造となっており、各レコードの上位2ビットは“0”となっていた。
前述したビット転送命令では、指定したアドレスの任意のビットからデータを読み出すことができるため、本実施形態では、各レコードの6ビット分のデータ、すなわち、領域4772に含まれるデータを連続して格納することによって、領域4773に示すようにデータを配置することが可能となる。これにより、“19h,0Ch,FEh”が格納される。
以上のように、従来のテーブル構造では、4バイト(32ビット)の容量を必要としていたが、本実施形態のビット転送命令によってデータを読み出すことで、不要なビットを削除して3バイト(24ビット)に圧縮したテーブル構造とすることができる。このように、本実施形態によれば、データを保持する領域を最小限に抑制することが可能となり、記憶容量を節約することが可能となる。これにより、より多くのデータを管理することが可能となり、さらに詳細な遊技制御を行うことが可能となる。
[18-6.ビット転送命令の詳細手順]
続いて、本実施形態のビット転送命令の詳細手順について、代表的なパターンを説明する。ここでは、指定した単独のデータを読み出す場合(RBT A,(HL).5)、テーブルから連続してデータを読み出す場合([1]RBT A,(HL+).5 →[2]RBT B,(HL).5)、1バイトよりも大きい容量のデータを読み出す場合(RBT DE,(HL).9)について説明する。なお、以降説明する例では、TPレジスタの値をデータ領域の先頭アドレスである“8000h”とする。
[18-6-1.単独のデータの読み出し]
図300は、本実施形態のビット転送命令の詳細な手順を説明する図であり、参照するテーブルから単独のデータを読み出す場合を説明する図である。参照するテーブルは、図299に示したテーブルと同じである。また、実行するビット転送命令は、“RBT A,(HL).5”である。
図300に示すように、HLレジスタには、補正前インデックス“4C6E”が格納されている。参照するテーブルのアドレスは“898Dh”となっており、ここで説明する例では参照するテーブルの2番目に格納されたデータ(30h)を転送する場合を示す。前述のように、参照するテーブルの基本構成ブロックの総ビット数は6であり、基本単位は8ビット(1バイト)となっている。これらの情報を元にインデックス作成処理(図298(B))を実行することで補正前インデックス“4C6E”を算出することができる。
ビット転送命令“RBT A,(HL).5”が実行されると、まず、データを読み出すための参照先アドレスが特定される。具体的には、補正前インデックス“4C6E”を基本単位数(8)で除算し(“098Dh”)、TP“8000h”を加算することで参照先アドレス(“898Dh”)を算出することができる。
さらに、補正前インデックス“4C6E”と“07h”の論理積を算出することで下位3ビット(“110b”)を取得し、参照先アドレスの読み出し開始位置(ビット)を特定する。図300に示した例では、参照先アドレスの6(=“110b”)ビット目となる。そして、参照先アドレス“898Dh”の6ビット目から6(n+1)ビット分のデータを抽出することで“110000b”(=48(“30h”))を取得することができる。取得された値を基本単位数(8)にあわせて上位2ビットに“00”を補完し、Aレジスタに格納する。
[18-6-2.データの連続読み出し]
図301は、本実施形態のビット転送命令の詳細な手順を説明する図であり、参照するテーブルから連続してデータを読み出す場合を説明する図である。参照するテーブルは、図300の場合と同様に、図299に示したテーブルとなっている。また、ビット転送命令[1]“RBT A,(HL+).5”を実行した後、[2]“RBT B,(HL).5”を実行する場合について説明する。なお、[1][2]は各ビット転送命令の実行順に対応し、図301の参照先アドレスの矢印に対応している。
ビット転送命令“RBT A,(HL+).5”の実行過程は、転送するデータをAレジスタに格納するまでは“RBT A,(HL).5”(図300)と同じである。ビット転送命令“RBT A,(HL+).5”では、取得したデータをAレジスタに格納した後、HLレジスタに格納されているインデックス値“4C6Eh”に抽出指定情報n+1(5+1)の値を加算する。なお、HLレジスタに格納されている値(補正前のインデックス)は、ビット転送命令を実行した後(データを読み出した後)であってもビット転送命令実行前に設定された値から変更されないようになっている。このようにインデックス値を次のデータの格納位置に更新するインデックス更新処理を実行することにより、読み出したデータの次のデータの格納位置を指定することができる。図301に示す例では、“4C74h”となる。
その後、図300にて説明した単独のデータを読み出す場合と同様に、参照先アドレスと読み出し開始位置(ビット)を特定する。図301に示す例では、参照先アドレス“898Eh”の4(=“100b”)ビット目から6ビット分のデータが読み出され、Bレジスタに格納される。
このように、指定されたテーブルから連続してデータを読み出す場合には、最初にインデックス作成処理を実行することでインデックス値を算出し、以降、読み出したデータのビット数分インデックス値に加算することによってインデックス値を順次更新することができる。
また、テーブルの各レコードが異なるビット数のデータの組み合わせによって構成されている場合には、レコードを構成するビット数に合わせて抽出指定情報を指定することによって、レコードごとにデータを取得することが可能となる。例えば、レコードが4ビット、6ビット、10ビットのデータで構成されている場合、抽出指定情報として4、6、10を指定してビット転送命令を順次実行することで1レコード分のデータを取得することができる。このとき、4ビット、6ビット、10ビットのデータで構成した場合、基本構成ブロックの総数(ビット数)は、20(=4+6+10)となる。この場合、例えば、“RBT A,(HL+).4”、“RBT B,(HL+).6”、“RBT DE,(HL).10”の順でビット転送命令を実行するプログラム構成とすることで、レコードを構成する各データを取得することが可能となる。以上のように構成することで、個別にインデックス値を作成しながらデータを取得する必要がなくなるため、レコード単位でデータを取得するためのプログラムを簡素化し、実行時間を高速化することができる。
[18-6-3.1バイトよりも大きい容量のデータの読み出し]
図302は、本実施形態の1バイトよりもサイズの大きいデータに対するビット転送命令を説明する図であり、(A)は参照するテーブルを示す図であり、(B)は手順を説明する図である。
図302(A)に示すテーブルは、0から1000までの値を格納するものであり、例として、3個のレコード(データ)“55,258,942”を保持している。これらのデータは16進数に変換すると、“37h,102h,3AEh”となり、2進数に変換(ビット変換)すると、“0000110111b,0100000010b,1110101110b”となる。
しかしながら、図302(A)に示すテーブルは、上限が1000であるため、10ビットで格納可能となっている。前述のように、遊技機の演算装置で扱うデータの基本単位数が8であるため、8ビット(1バイト)単位でデータを格納する必要があり、実際にデータを格納するためには16ビット分の容量を必要としていた。そのため、従来は、点線で示した4801のようなテーブル構造となっており、使用されない各レコードの上位6ビットは“0”が割り当てられていた。そこで、図299に示した例と同様に、各レコードの10ビット分のデータ、すなわち、領域4802のデータを連続して格納することによって、4803に示すようにデータを配置する。これにより、“37h,08h,E4h,3Ah”が格納される。このように、8ビット(1バイト)を超える容量のデータについても同様に圧縮して保持することが可能となる。
なお、基本構成ブロックの総数は、構成されるデータの最大値のビット数を指定すればよい。例えば、上述した例のように、構成されるデータの上限が1000(3E8h)であればビット数である10が基本構成ブロックの総数となる。また、基本構成ブロックの総数が10であれば、格納可能な値の範囲は0hから3FFh(1023)となる。また、前述したように、テーブルの各レコードが異なるビット数のデータの組み合わせ(例えば、第1データ、第2データ、第3データ)によって構成されている場合には、第1データの最大値のビット数、第2データの最大値のビット数、第3データの最大値のビット数がそれぞれ第1データの基本構成ブロックの総数、第2データの基本構成ブロックの総数、第3データの基本構成ブロックの総数となる。
前述のように、図302(B)は、1バイトよりもサイズの大きいデータに対するビット転送命令を実行する手順を説明する図であり、ビット転送命令“RBT DE,(HL).9”を実行する。HLレジスタには、補正前インデックス“4C72h”が格納されている。参照するテーブルの先頭アドレスは、“898Dh”となっており、参照するテーブルの2番目のデータを転送する例を示す。また、参照するテーブルの基本構成ブロックの総ビット数は10であり、基本単位は8となっている。これらの情報を元にインデックス作成処理(図298(B))を実行することで補正前インデックス“4C72h”を算出することができる。
参照先アドレスの特定は、図300に示した手順と同様に行い、“898Eh”が算出される。さらに、同様の手順で参照先アドレスの読み出し開始位置(“010b”)を特定する。そして、参照先アドレス“898Eh”の読み出し開始位置である2(“010b”)ビット目から10(n+1)ビットのデータを抽出することで“0100000010b”(=258(“102h”))を取得することができる。取得された値は基本単位数(8)を超えているため、上位ビットを取得された値の上位2ビット(“01b”)を取り出して、取り出した値の上位6ビットに“000000”を補完(“00000001b”)し、Dレジスタに格納する。さらに、残りの下位8ビット(“00000010b”)をEレジスタに格納する。
以上のように、本実施形態によれば、8ビット(1バイト)を超える容量を必要とするデータであっても圧縮してデータを保持可能とするとともに、簡易な手順でデータを読み出すことが可能となる。
[18-7.適用例]
続いて、遊技制御において、本実施形態のビット転送命令を適用する例について説明する。ここでは、乱数を抽出し、この抽出された乱数に基づいて、遊技制御における図柄の変動表示(動的表示)の変動パターンを選択する処理を例として説明する。この処理では、抽出した乱数を変動パターンテーブルから取得した閾値と順次比較し、抽出した乱数が閾値以上の場合にこの閾値に対応する変動パターン番号を抽選結果として選択する。以下、図303から図305の図面を参照しながら説明する。
[18-7-1.変動パターンテーブルの構成]
まず、本実施形態における変動パターンテーブルについて説明する。図303は、本実施形態のビット転送命令の適用例を説明する図であり、(A)は変動パターンと対応する範囲の関係を説明する図、(B)は変動パターンテーブルを示すプログラムコード、(C)は(B)に対応する変動パターンテーブルについて、圧縮前のテーブル及び圧縮後のテーブルの構造の一例を説明する図である。
本実施形態では、抽出される乱数の範囲は0から63(整数値)となっており、図303(A)に示すように、各変動パターンに対応する範囲に抽出された乱数が含まれる場合に対応する変動パターン番号が選択される。本実施形態では、パターン1(PT1)からパターン5(PT5)までの変動パターンが定義されており、乱数値が0~32の場合にパターン1、33~45の場合がパターン2、46~54の場合がパターン3、55~60の場合がパターン4、61~63の場合がパターン5となっている。また、パターン番号が大きいほど遊技者にとって有利な状態に移行する(抽選結果が大当りとなる)期待度が高くなる変動演出となっている。なお、パターン番号が大きいほど期待度が高くなるように配置せずにパターン番号が小さいほど期待度が高くなるようにしてもよく、また、管理上の期待度以外の基準でパターン番号を設定するようにしてもよい。
また、図303(B)に示すように、変動パターンテーブル(hp_table)は、乱数の閾値とパターン番号との一組と1レコードして定義している。乱数の閾値と変動パターン番号が同じテーブルに連続して保持される。
前述のように、抽出される乱数の範囲は0から63であり、閾値は最大6ビットの容量を必要とする。同様に、変動パターン番号は1から5の範囲で定義されているため、最大3ビット(0~7)の容量を必要とする。従来の手法でデータを格納する場合には、本実施形態の遊技機では一のデータを格納するために1バイト(8ビット)の容量を必要としているため、図303(C)の左に示すように、乱数の閾値及び変動パターン番号によって構成されるレコードの数が5であれば合計10バイトの容量を使用する。一方、図303(C)の右に示すように、本実施形態のデータ圧縮技術を採用することで閾値は6ビット、変動パターン番号は3ビットの容量を確保すればよく、これらのデータを連続して格納するため、レコード数が5であれば合計45ビット(6バイト)の容量でデータを格納することができ、40%以上の容量を削減することができる。
なお、図303に示したテーブルは一例であり、乱数の閾値や変動パターン番号の範囲などに応じてテーブルの圧縮率が変化する。例えば、乱数の閾値の容量がバイト(8ビット)単位であればデータを圧縮できないが、乱数の閾値の容量がバイト単位でない場合、すなわち、1から7ビットの端数がある場合には、データごとに8ビットから端数ビット分だけ容量を削減することができる。特に、データ容量が9ビットや17ビットなど端数ビットが1ビット分の場合には、一のデータで7ビット分の容量を削減することが可能となり、最大限の効果を得ることができる。
[18-7-2.変動パターンを選択する手順]
次に、本実施形態における変動パターンを選択する手順の概要について説明する。なお。複数種類の変動パターンテーブルが定義されている場合には、遊技状態などに応じてあらかじめ変動パターンテーブルを選択しておく。
まず、変動パターンの抽選用の乱数として0から63の範囲の乱数値を抽出する。次に、変動パターンテーブルから乱数の閾値及び変動パターン番号をテーブルの先頭からレコード単位で順次取得する。さらに、取得された乱数の閾値と抽出された乱数とを比較し、乱数の値が取得された閾値以上の場合には、対応する変動パターンを抽選結果として選択する。一方、乱数の値が取得された閾値未満の場合には、変動パターンテーブルから次のレコードを取得し、同様の手順で閾値と比較することで変動パターンを選択する。このように、閾値は対応する変動パターンを選択するための乱数の範囲の下限値に対応する。また、変動パターンテーブルの最後のレコードの閾値は0となっているため、必ず最終レコードで変動パターンが選択される。変動パターンの選択手順について数値例を示すと、抽出された乱数が“48”であれば、最初にテーブルの先頭のレコードに対応する閾値“60”と比較すると閾値未満であるため、次のレコードの閾値“54”と比較する。同様に、さらに次のレコードの閾値“45”と比較すると、抽出された乱数“45”が閾値以上になるため、対応末右辺同パターン“PT3”(変動パターン番号3)を選択する。
ここで、変動パターンテーブルから変動パターン番号を取得する手順(変動パターン選択処理)について具体的に説明する。図304は、本実施形態における変動パターンを選択する手順の一例を示すフローチャートである。図305は、本実施形態における変動パターンを選択するプログラムの一例を示す図である。図304のフローチャートは、図305のプログラムに対応する。本処理は、主制御基板1310の主制御MPU1311によって実行される。
変動パターン選択処理の基本的な手順は、まず、変動パターン(番号)を選択するための変動パターンテーブルを特定する。次に、特定された変動パターンテーブルから本実施形態におけるビット転送命令によってデータを取得するためにインデックスを作成する。続いて、変動パターンを選択するための乱数を抽出する。最後に、変動パターンテーブルからビット転送命令を使用して乱数の閾値及び対応する変動パターン番号を取得し、乱数の閾値と乱数を比較して変動パターン番号を選択する。
主制御基板1310の主制御MPU1311は、まず、変動パターンテーブルのアドレス(Hp_no_table)を取得する(ステップP8021)。本実施形態では、一の変動パターンテーブルが定義されているが、遊技状態などに応じて複数の変動パターンテーブルが定義されている場合には、このタイミングで変動パターンテーブルを特定する。
次に、主制御MPU1311は、本実施形態のビット転送命令RBTを実行するためのインデックス作成用のパラメータを設定する(ステップP8022)。インデックスを作成するための手順は、図296及び図297等で説明した手順で行う。
具体的に説明すると、主制御MPU1311は、まず、インデックスの初期値としてステップP8021の処理で特定された変動パターンテーブルの先頭アドレスからデータ領域の先頭アドレスを減算した値をインデックス値としてHLレジスタに設定する(“LD
HL,Hp_no_table-9000h”、“9000h”は図297に示すプログラムコードにおける“TP”に相当し、TPレジスタに格納された値である)。
次に、主制御MPU1311は、インデックス作成用のパラメータを設定する(ステップP8022)。具体的には、まず、参照するデータ(変動パターンテーブルのレコード)のポインタ情報を抽出し、パラメータとして設定する。ここでは変動パターンテーブルの先頭からデータを取得するので、データのポインタ情報は0となる。さらに、基本構成ブロックの総数をパラメータとして設定する。基本構成ブロックの総数は、前述のように、参照テーブルに格納される一単位のデータ(レコード)を格納するための領域のデータ容量に相当する。本適用例では、乱数の閾値が6ビット、変動パターン番号が3ビットであるため、1レコードを格納するために9ビット分の容量が必要であり、基本構成ブロックの総数は9となる。
続いて、主制御MPU1311は、設定されたパラメータに基づいて、ビット転送命令RBTを実行するためのインデックスを作成するためのインデックス作成処理を実行する(ステップP8023)。インデックス作成処理では、まず、参照するデータ(変動パターンテーブル)のポインタ情報(0)を基本構成ブロックの総ビット数(9)に乗算する。乗算した結果は0となり、Aレジスタに格納される。
次に、主制御MPU1311は、Wレジスタをクリア(0を格納)し、WAレジスタの値を基本単位数(8)で除算する。このとき、商がAレジスタ(0)、余りがWレジスタ(0)に格納される。さらに、主制御MPU1311は、Wレジスタをクリアし、WAレジスタの値をHLレジスタに加算する。前述のように、後の演算で使用するために、Wレジスタをクリアする前の値はあらかじめスタック領域に退避しておく。さらに、主制御MPU1311は、HLレジスタの値を3ビット分左シフトする(8倍する)。さらに、退避したWレジスタの値をHLレジスタに加算し、インデックスの作成を完了する。
インデックスの作成が完了し、変動パターンテーブルから変動パターン番号を取得する準備が完了すると、主制御MPU1311は、変動パターンを抽選するための乱数を取得する(ステップP8024)。抽出される乱数は、前述のように、0から63までの6ビットの整数であり、Dレジスタに格納される(LD D,(Rnd))。
続いて、抽出された乱数値を変動パターンテーブルに格納された閾値と比較して変動パターン番号を特定する処理を行う。主制御MPU1311は、まず、ビット転送命令によってステップP8023の処理で作成したインデックスに基づいて変動パターンテーブルから乱数の閾値を取得する(ステップP8025)。具体的には、インデックスによって指定された位置から6ビット分のデータを取得し、Aレジスタに格納する(RBT A,(HL+).5)。さらに、連続した領域に格納された変動パターン番号をビット転送命令によって取得する(ステップP8026)。変動パターン番号は3ビットであり、Wレジスタに格納される(RBT W,(HL+).2)。
次に、主制御MPU1311は、変動パターンテーブルから乱数の閾値と変動パターン番号を取得すると、閾値が0であるか否かを判定する(ステップP8027)。本実施形態では、変動パターンテーブルの最終レコードの閾値を0としているため、閾値が0であるか否かの判定は、最終レコードが検出されたか否かを判定することとなる(AND A,FFh→JR Z,hp_select_2)。主制御MPU1311は、閾値が0の場合には(ステップP8027の結果が「yes」)、ステップP8026の処理で取得した変動パターン番号を抽選結果として本処理を終了する(ステップP8029)。
一方、主制御MPU1311は、乱数の閾値が0でない場合には(ステップP8027の結果が「no」)、乱数の閾値が変動パターン選択用乱数よりも小さいか否かを判定する(ステップP8028)。乱数の閾値が変動パターン選択用乱数よりも大きい場合には(ステップP8028の結果が「yes」)、次のレコードを選択し、閾値及び対応する変動パターン番号を取得するために、ステップP8025の処理に戻る。
また、主制御MPU1311は、乱数の閾値が変動パターン選択用乱数以下の場合には(ステップP8028の結果が「no」)、ステップP8026の処理で取得した変動パターン番号を抽選結果として本処理を終了する(ステップP8029)。
本実施形態の変動パターン選択処理では、ステップP8025からステップP8028までの処理をループさせることによって、変動パターンテーブルの先頭のレコードから最終レコードの閾値と取得した乱数値とを順次比較して変動パターンを特定し、変動パターンが特定されるとループから抜けるように構成されている。プログラム上では、図305に示すように、タグ「hp_select_1」からタグ「hp_select_2」までの処理がこのループに相当する。
また、本実施形態の変動パターン選択処理では、テーブルの先頭アドレスをデータの読み出し開始位置としてインデックスを作成し、ビット転送命令“RBT A,(HL+).5”及び“RBT W,(HL+).2”を順次実行する。これにより、テーブルの先頭からデータの読み出しが開始され、インデックスの再計算をせずに連続して次のデータを読み出すことが可能となる。このように、連続してデータを取得する際にもパラメータの再設定を行うことなくデータを取得することができるため、プログラムを簡素化することが可能となる。
[18-8.その他の適用例]
ここで、図303に示した適用例は変動パターンを選択するためのテーブルに対して本実施形態におけるビット転送命令を使用するものであったが、これに用途を限定する必要はなく、他の用途のテーブルに対しても適用可能である。例えば、主制御基板1310の主制御MPU1311の各種ポートから入力情報を特定するためのテーブルであって、ポートごとに、ポートのアドレス、論理補正値、マスク値、データエリアのアドレス等によって構成されているものにも適用可能である。このとき、テーブルを構成するすべてのデータがバイト単位でなければ本実施形態におけるデータ転送命令の効果を得ることができる。
また、その他の例としては、各種基板に送信するコマンドを作成するためのデータ、例えば、送信するコマンドのパラメータを特定するデータにも適用することができる。具体的には、払い出す賞球の数を指示する賞球コマンドの賞球数を指定するコマンドであれば、賞球数が1から15ならば4ビット分の容量で特定可能となる。このとき、16以上の賞球数を指定可能とするために5ビット分の容量を確保してもよいし、賞球数であることを特定するために先頭ビットを“1”に固定し、賞球数を下位4ビットで指定するようにしてもよい。
さらに別の例としては、各種データを格納する領域を特定するためのテーブルに適用することができる。具体的には、データを特定するための情報(データを識別するための情報)と当該データを格納する領域のアドレスを特定する情報を含むレコードによって構成されたテーブルである。データを格納する領域のアドレスを特定する情報は、アドレスそのものを格納するのではなく、基準アドレスをあらかじめ別の領域に記憶しておき、テーブルには基準アドレスからの差分値(差分アドレス)を格納するようにしてもよい。これにより、アドレスを記憶するための容量を削減することが可能となる。また、データ数又はデータ容量が多い場合やデータ容量が変化する場合にも柔軟に対応することが可能となる。
また、各種データを格納する領域を特定するためのテーブルの別例として、データを格納する領域のアドレス(2バイト)を上位アドレス(1バイト)と下位アドレス(1バイト)とを組み合わせることで特定するように構成してもよい。この場合には、上位アドレスを基準アドレス情報としてあらかじめ別の領域に記憶しておき、テーブルには下位アドレスのみを格納すればよい。下位アドレスを1バイトよりも小さい領域で格納可能とすることでデータ容量を削減することができる。また、データを格納するアドレスを演算することなく(若しくは単純な演算で)特定できるため、アドレスを特定するための処理を簡略化することができる。さらに、実際にデータが格納されるアドレスを、テーブルを参照することで容易に特定できるため、データを格納するアドレスを見直す場合など、メンテナンスを容易にすることができる。
また、本実施形態におけるデータ圧縮技術では、前述のように、指定したビット数のデータを取得することを可能としているため、異なるサイズのデータを連続的に格納する場合であっても適用できる。しかしながら、異なるサイズのデータが連続的に格納されている場合には各データのサイズを特定する必要があり、各データのサイズを個別に保持することでデータ容量を効率的に削減することができない可能性がある。そのため、一連のデータの最大値に対応するデータ容量分の領域を確保して各データを格納することによって、データごとにサイズを特定することなくデータの取得を可能とし、処理全体を簡略化させることができる。なお、前述したように、複数種類のデータを1レコードとしてテーブルに格納する場合には、まず、レコードを構成する各データのサイズを特定し、その後、特定されたデータのサイズに基づいてテーブルの各レコードを取得することによって、データ容量の削減と処理の簡略化を両立することができる。
また、テーブルの構成が同じであれば、共通の処理で圧縮されたデータを取得することができるので、類似するテーブルは構造を共通化するとよい。例えば、前述した変動パターンテーブルが遊技状態に応じて複数定義される場合には、変動パターンの種類の少ない等の理由でテーブルごとにデータの容量を削減することが可能であっても共通の構造とすることで遊技状態に依存せずに共通の処理で変動パターンテーブルからデータを取得することが可能となり、処理全体を簡略化することができる。
[18-9.効果等]
以上のように、本実施形態のビット転送命令によってデータを読み出すことで、不要なビットを削除して圧縮したテーブル構造とすることができるため、データを保持する領域を最小限に抑制することが可能となる。これにより、より多くのデータを管理することが可能となり、さらに詳細な遊技制御を行うことが可能となる。
また、本実施形態のビット転送命令を実行するためのインデックスを作成する処理を独立させることが可能となるため、本来の遊技制御が複雑化することを抑制することが可能となっている。したがって、従来の遊技制御の複雑化を抑制しながらデータ容量の増大を抑制することが可能となる。
また、本実施形態によれば、インデックスをインクリメントしながら連続してビット転送命令を実行することによって連続した領域から複数のデータを読み出すことが可能であるため、同じビット数のデータを必要な分だけ読み出す場合や複数種類のビット数のデータによって構成されているレコード(データ群)を読み出す場合の処理を簡素化することができる。
また、本実施形態によれば、8ビット(1バイト)を超える容量を必要とするデータであっても圧縮してデータを保持可能であり、8ビット未満のデータと同様の手順でデータを読み出すことが可能となり、汎用性の高いデータの読み出し手段を提供することが可能となる。
本実施形態のビット転送命令によって読み出し可能なデータ構造では、データのサイズがバイト単位でない場合に有効であり、さらに、データ数が多いほど節約される容量が多くなる。そのため、特別図柄や普通図柄に関連する処理に使用されるデータ、例えば、変動パターンなど、定義されているデータの種類が多い場合に特に有用となる。なお、バイト単位のデータで構成されている場合には、通常のロード命令(“LD”)等を使用した方が効率的である。一方、本実施形態のビット転送命令ではデータを読み出すための手順がロード命令よりも多くなるため、電源投入時の処理や停電処理のように定型の処理を迅速に行う必要がある場合や扱うデータの数が少ない場合には、本実施形態のビット転送命令ではなくロード命令を優先して使用するようにしてもよい。このように、特別図柄や普通図柄の変動表示に関連する制御など多種多様なデータに基づいて遊技の制御を行う場合には、ビット単位でデータを取得可能なビット転送命令を使用してデータ容量の削減を図ることが可能となる。一方、定型的な手順を迅速に処理する必要がある場合には、インデックスの作成を必要とせずに直接指定したアドレスに格納されたデータをアクセス可能なロード命令を使用することで処理の単純化や高速化を図るようにしてもよい。
[19.処理を呼び出す命令の改良]
以上、データを格納する領域を圧縮することによって容量を削減する手段について説明した。続いて、プログラムを構成する命令(コマンド)の語長を短くすることによって演算手段(主制御MPU1311)が処理する手順(クロック数、ステップ数)を削減して処理を高速化したり、頻繁に組み合わせて実行される命令をまとめて実行することによってプログラムを簡素化する手段について説明する。ここでは、特にあらかじめ定義された処理を実行するための命令(INV命令)を改良した命令について説明する。INV命令の実行頻度は非常に多いため、INV命令の実行を高速化することで遊技制御処理全体を高速化することが可能となる。また、INV命令実行時に組み合わせて実行される処理を統合した命令を実装することによってプログラムを簡素化することが可能となる。
[19-1.INV命令]
まず、通常のINV命令の概要を説明する。INV命令の語長はMPU(プロセッサ)の種類に応じて異なっているが、本実施形態における遊技機の主制御基板1310に搭載された主制御MPU1311では4バイトとなっている。
INV命令では実行しようとする処理が格納されたアドレスを指定する。このとき、呼び出した処理の実行が完了した後に呼び出し元の処理に復帰するための戻り先となる復帰アドレスをスタック領域に格納する。これにより、呼び出した処理で復帰命令を実行することによって、スタック領域に格納された復帰アドレスにプログラムカウンタの値を書き換えて呼び出し元に復帰し、実行したINV命令の次の命令から処理を継続することができる。
また、INV命令は、記憶領域のすべてのアドレスを指定することができるため、メモリ内に格納されたすべての処理を呼び出すことが可能となっている。このため、プログラムやデータの配置を自由に設定することができる。一方、自由度の高さから処理を呼び出す手順(必要なクロック数)が増加してオーバーヘッドが生じることがあるため、これを軽減することで処理全体の負荷を低減させることが望ましかった。
そこで、上記した課題を解決するために、実行頻度の高い処理を呼び出すための負荷を低減するために、呼び出す処理のアドレスが格納されたテーブルをあらかじめ定義し、当該テーブルに基づいて処理の配置を特定するための負荷を削減しながら処理を呼び出すことを可能とした先行技術が提案されている(例えば、特開2016-174833号公報)。以下、先行技術と類似する機能を有するINVD命令の概要について説明する。
[19-2.INVD命令]
INVD命令では、前述したように、実行頻度の高い処理が格納されたアドレスを含む処理アドレステーブルをあらかじめ作成し、INVD命令実行時に呼び出す処理を処理アドレステーブルに基づいて指定する。処理アドレステーブルには、処理ごとにインデックス(1バイト)が付与されており、アドレス(2バイト)を直接指定することなくインデックス(1バイト)を指定するだけで特定の処理を呼び出すことが可能となる。これにより、命令の語長を短くして処理の高速化を図るとともに、プログラム構造を簡素化することが可能となる。また、メモリ内のプログラムの配置(処理の格納先)を変更する場合であっても処理アドレステーブルに定義されたデータを変更すればよいため、プログラムの配置や構成が変更された場合であっても柔軟に対応することが可能となり、プログラム開発の効率を向上させることができる。
ここで、処理アドレステーブルを格納する記憶領域の構成について説明する。図306は、本実施形態の遊技機の主制御基板1310の記憶領域の構成を示すアドレスマップの一例を示す図である。記憶領域は、RAM1312及びROM1313によって提供される。
本実施形態の遊技機の主制御基板1310における遊技制御でアクセスされる領域には、RAM領域(0000h~03FFh)、内部機能レジスタ領域(1300h~13DFh,1400h~14DFh)、ROM領域(8000h~C12Fh)及び拡張ROM領域(C130h~FDFFh)を含む。これら以外の領域は未使用領域(使用領域外)であり、遊技制御プログラムによるアクセスが原則的に禁止される。
各領域について説明すると、RAM領域は、プログラム実行時に読み書きするデータを一時的に記憶する領域である。また、内部機能レジスタ領域は、内部機能を制御するための各種レジスタの設定値が格納される。本実施形態では、内部機能レジスタ領域は2カ所に配置されているが、一の領域であってもよいし、三以上の領域に分割してもよい。なお、内部機能レジスタ領域は、情報を記憶する点においてRAM領域と類似するものの、RAM領域のように主制御MPU1311の演算等の過程で値が記憶されるものではなく、主制御MPU1311が実行するための機能を特定するものである。つまり、内部機能レジスタ領域の値は電源投入時のタイミングで一度設定されると、RAM領域に記憶される情報のように、設定された情報を変更するということはない。
ROM領域は、プログラム/データ領域(8000h~BFFFh)と、ROMコメント領域(C000h~C07Fh)と、処理アドレステーブル領域(C080h~C0FFh)と、HWパラメータ領域(C100h~C12Fh)を含む。プログラム/データ領域は、読み出し専用のデータとプログラムが格納される。ROMコメント領域は、プログラムのタイトル、バージョン等のデータが設定される。処理アドレステーブル領域は、特定の処理呼出命令(例えば、後述するINVD命令)実行時に呼び出される処理(サブルーチン)に関するデータを格納する。HWパラメータ領域は、主制御基板1310の内部機能を実行するためのハードウェア関連のパラメータが設定される。
拡張ROM領域(C130h~FDFFh)は、通常の(量産用)遊技機では未使用(アクセス禁止)領域として割り当てられる一方、開発用の遊技機ではプログラム/データ領域として割り当てが可能な領域であり、プログラム/データが記憶されたROMと別のROMに割り当てられている。こうすることで、量産用遊技機では、拡張ROMを有しないようにすることで、開発用に拡張ROM領域に配置されたプログラム/データが誤って機能しなくなるようになっている。
なお、拡張ROM領域は、プログラム/データが格納されるROMと同一のROMに記憶されるものであってもよい、その場合、量産用遊技機で拡張ROM領域がアクセス不能な領域として設定することで、誤って拡張ROM領域に開発用のプログラム/データが残っていたとしても、当該プログラム/データが機能することがないようにHWパラメータに設定されていればよい。
続いて、処理アドレステーブルの構成について説明する。図307は、処理(サブルーチン)のアドレスが格納された処理アドレステーブルのプログラム実装例を示す図である。図307に示す実装例では、INVD命令によって実行される処理のアドレスが格納されたINVD命令処理アドレステーブルの他に、各種割込み発生時に実行される処理のアドレスが格納された割込み処理アドレステーブルも含まれる場合がある。以下の説明では、特に断らない限り、「処理アドレステーブル」はINVD命令で使用されるINVD命令処理アドレステーブルを指すこととする。
処理アドレステーブルには、実行頻度が高く、汎用的に使用される処理のアドレスが格納されている。実行頻度の高い処理とは、例えば、タイマ割り込み処理や主制御基板における初期化処理のメインループ処理内で実行される処理などである。また、汎用的に使用される処理とは、具体的には後述するが、指定されたポートから信号を読み取る処理や指定された数値に対して所定の演算を行う処理などである。これらの処理は汎用性を損なわないようにするため、遊技制御に特化した処理(例えば、大当り判定処理や変動パターン選択処理)と比較して非常に簡略化されたもの(例えば、プログラム容量の少ない処理や処理時間の短い処理など)となっている。
また、処理アドレステーブルは、図306に示したように、プログラムが格納された領域とは異なる領域に格納されている。前述のように、INVD命令によって呼び出される処理は、汎用性が高いため、別の遊技機の開発においても共通の処理として利用される場合がある。このように領域を分離して配置することにより、機種に依存する処理のプログラムと分離して管理することが可能となり、遊技制御プログラムの開発効率を向上させることができる。また、処理アドレステーブルを格納する領域とプログラムが格納されている領域との間にはROMコメント領域が配置されているため、プログラム実行時に不具合が発生したことによりプログラム/データ領域を超えて処理が実行されても、ROMコメント領域にはプログラムのタイトル等のプログラムコードとは一致しないデータが格納されていることによって、処理アドレステーブルに格納された領域に到達することなく予期しない処理が実行されることを防止できる。
図307に示す例では、INVD0~INVD15の16種類の処理が定義されており、例えば、INVD0にポート読み込み処理(PORT_RD)、INVD1にデータ設定処理(DAT_SET)などが含まれる。INVD命令実行時には、呼び出す処理に対応する番号(処理インデックス)を指定すればよい。
ここで、処理インデックスについて図308を参照しながら説明する。図308は、処理アドレステーブルに格納されたアドレスに格納された処理を識別するインデックスを定義するプログラムコードの一例を示す図である。図308に示すプログラムコードには、INVD命令で呼び出し可能な処理インデックスがあらかじめ定義されている。プログラム内では、直接数値を指定するのではなく、処理名(関数名)に対応する変数を指定すればよい。例えば、ポート読み込み処理(PORT_RD)を実行する場合には、定数“0”を直接指定するのではなく、ラベル(_PORT_RD)で指定すればよい。これにより、プログラムの可読性が向上し、遊技制御プログラムの開発効率を向上させることができる。
また、前述した先行技術(特開2016-174833号公報)では、上位アドレスがあらかじめ設定され、下位アドレスを指定するように構成されており、本実施形態のように、番号(処理インデックス)を指定するものではない。そのため、処理のアドレスが変更された場合には当該処理を実行する命令を都度修正する必要があるため、番号を指定する場合と比較して開発効率を向上させることができない。
一方、本実施形態では、処理インデックスを0~15として処理アドレステーブルで定義する処理の数を16としていることから、インデックスの容量が4ビットとなる。これにより、INVD命令によって実行する処理を特定するために必要な記憶容量を(下位)アドレスを指定するよりも削減することができる。さらに、INVD命令の命令部分(オペコード)は4ビットで構成されているため、インデックスの容量(オペランド)とあわせて合計8ビット(1バイト)で構成することができる。したがって、INVD命令の語長は1バイトとなり、通常の呼出し命令(INV命令)で処理を呼び出す場合と比較して主制御MPU1311がINVD命令で指定された処理を呼び出すためのクロック数を削減することができ、さらに、プログラム容量を削減することも可能となる。
また、本実施形態において、INVD命令は、電源投入時に実行される処理や遊技継続中の処理(主制御側メイン処理、タイマ割り込み処理等)で頻繁に使用される一方、電源遮断時処理における使用頻度は少なくなっている。これは電源が遮断されている間にメモリ内の参照箇所を多くすることによって処理呼び出し時のオーバーヘッドが増大することを防止し、電力消費を少しでも抑制するためである。また、電源遮断時処理は、遊技継続中の処理と比較して実行頻度は少なく、仕様が頻繁に変更されるものでもなく、さらに、INVD命令によって呼び出し可能な処理の数に制限があることから、電源遮断時に呼び出される処理は汎用性のある処理を除いてINVD命令によって実行されないように構成されている。このように、電源遮断時処理では、INVD命令を用いてプログラム容量を削減することよりも制御を単純化して処理の実行負荷が小さくなるように構成されている。
続いて、INVD命令により処理を実行する手順を説明する。図309は、本実施形態におけるINVD命令実行時の動作を説明する図である。図309では、アドレス“80A4h”に格納されたINVD命令実行時におけるプログラムカウンタ及びスタックポインタの変化を説明する。
INVD命令が実行されると、まず、INVD命令によって実行された処理終了後の戻り先となるアドレスをスタックに退避する。図309の例では、アドレス“80A4h”に格納されたINVD命令を実行し、INVD命令の語長は1バイトであるため、スタックに退避される値は“80A5h”となる。
次に、INVD命令で指定された番号(オペランド、処理インデックス)に対応する2バイト長のデータ(呼び出し先アドレス)を処理アドレステーブルから取り出す。取り出した2バイト長のデータ(呼び出し先アドレス)をプログラムカウンタにセットし、指定された処理を呼び出す。ここで、図310を参照しながら指定された処理を呼び出す手順を説明する。
図310は、本実施形態におけるINVD命令によって呼び出す処理を特定する手順を説明する図である。ここでは、ポート読込み処理(PORT_RD)を実行する手順について説明する。図307にて示したように、ポート読込み処理(PORT_RD)は、処理アドレステーブルの先頭(0番目)に定義されている。
図310に示すINVD命令で指定される番号は“_PORT_RD”であり、INVD命令処理アドレス番号定義を参照すると、“_PORT_RD”の実際の値は“0”となっている。続いて、処理アドレステーブルを参照し、指定された番号に対応する命令を特定する。具体的には、“PORT_RD”が特定される。なお、図310の処理アドレステーブルの左列は行数に対応しており、説明のために付加したものである。図307に示したように、実際の処理アドレステーブルには含まれない。INVD命令では指定された番号に対応する命令が特定される。“PORT_RD”は、処理のアドレス(“80D4h”)を示すラベルである。
INVD命令で指定された処理のアドレスを特定すると、プログラムカウンタを指定された処理のアドレスに更新する。図309の説明に戻ると、INVD命令実行時には、プログラムカウンタをポート読み込み処理“PORT_RD”の先頭アドレスである“80D4h”に更新する。このとき、スタックポインタの値は、呼び出し元の処理復帰時のアドレスをスタック領域に格納したため2バイト分移動し、“01F8h”から“01F6h”に更新される。
その後、呼び出し先の処理(ポート読み込み処理“PORT_RD”)を実行し、呼び出し先アドレス(“80D4h”)から順次命令を実行する。その後、復帰命令で呼び出し元に復帰するために、スタック領域に退避した復帰アドレスをプログラムカウンタに戻し、以降の処理を順次実行する。このとき、プログラムカウンタの値は復帰命令のアドレス“80E8h”からスタック領域に退避されていたアドレス“80A5h”に更新される。さらに、スタックポインタを“01F6h”から“01F8h”とすることで、スタック領域の復帰先のアドレスが格納されていた領域が再び使用可能となる。呼び出し元の処理に復帰後、アドレス“80A5h”から順次処理を実行する。
以上のように、本実施形態におけるINVD命令では、通常の処理呼出命令よりも少ないクロック数、すなわち、高速に処理を呼び出すことが可能となり、さらに、プログラム容量の圧縮を図ることができる。特に、前述したように、頻繁に呼び出される処理をINVD命令で呼び出し可能となるように構成することで、制御処理全体を高速化することが可能となる。本実施形態では、処理アドレステーブル(図307)に定義されていたように、16種類の処理が定義されている。具体的には、ポート読み込み処理(PORT_RD)、データ設定処理(DAT_SET)、作業領域設定処理1(WORK_AD)、作業領域設定処理2(WORK_AD_INC_HL)、2バイトデータ検索処理(LD_HLA_HL)、コマンドバッファ設定処理1(CMBF_SET1)、コマンド格納処理(COM_SET)、出力判定共通処理1(OHAN_SUB1)、出力判定共通処理2(OHAN_SUB2)、出力ポートデータ設定処理(PORT_DAT_SET)、変動情報番号検索処理(TI_SRCH)、不正報知設定処理(ILG_OUTSET)、データ検索処理(HLA_SRCH)、乗算値加算アドレス取得処理(MUL_WA_HL)及びSPI2バイト出力処理(SPI_TX__WA)である。
以下、本実施形態においてINVD命令により実行される各処理について説明する。図311~図324に各処理のプログラム(モジュール)例を示す。各プログラムの先頭部分のコメントには、入力レジスタ、出力レジスタ、保護レジスタ及び呼出し元が記載されている。入力レジスタは、呼出し元のモジュールで設定する値が格納されるレジスタである。入力レジスタに設定された値を用いて呼び出し先のモジュールが実行される。出力レジスタは、呼び出し先のモジュールで設定する値が格納されるレジスタである。処理の実行結果などが格納される。保護レジスタは、呼び出し先のモジュールで使用を制限するレジスタである。なお、呼び出し先のモジュールの実行開始時と終了時の値が同じであれば使用してもよく、例えば、当該レジスタを破壊(使用)する際にスタック等に一旦格納し、使用後に元に戻すのであれば使用することは差し支えない。呼出し元は、当該モジュールを呼び出すモジュールである。ここに記載されるモジュールの数が多ければ、使用頻度が高いことを認識できる。なお、実際の実行回数は呼出し元のモジュール自体の呼び出し頻度にもよるのでモジュールの数が少なくても必ずしも使用頻度が少ないとは限らない。
図311は、本実施形態のポート読み込み処理(PORT_RD)のプログラム例を示す図である。ポート読み込み処理は、指定されたポートの入力信号を読み込む処理である。具体的には、ポート読み込み処理(PORT_RD)は、Wレジスタ(入力レジスタ)に指定されたポートアドレスに対応するポートの入力信号を読み込み、Aレジスタ(出力レジスタ)にポートデータを出力する。このとき、ポートの入力信号を複数回読み込み、取得した信号が一致するか否かによってPSW(プロセッサステータスワード、ステータスレジスタ;出力レジスタ)に含まれる所定のフラグ(例えば、Jフラグ、Zフラグ)を更新する。これにより、指定されたポートから入力信号を読み込むだけでなく、正常に信号が入力されているか否かを判定することも可能となっている。
図312は、本実施形態のデータ設定処理(DAT_SET)のプログラム例を示す図である。データ設定処理は、HLレジスタに設定された設定データアドレスで特定されるテーブルに定義された一連のデータを一括して作業領域(例えば、DEレジスタ)にセットする処理である。また、データ設定処理で指定されるテーブルの先頭データ(レコード)にはデータ設定数(テーブルのデータ数)が定義され、以降のデータ(レコード)は、設定値を格納する作業領域の(下位)アドレスと該作業領域に格納される設定値で構成される。設定値は後述する作業領域設定処理2(WORK_AD_INC_HL)をINVD命令で呼び出すことによって順次読み出される。以上のように、データ設定処理が開始されると、最初に入力レジスタに指定されたアドレスに格納されたデータ設定数を取得した後、データ設定数分のデータ(レコード)を取得することでデータ数に依存せずに一連のデータの取得が可能となっている。
図313は、本実施形態の作業領域設定処理1(WORK_AD)のプログラム例を示す図である。作業領域設定処理1は、プログラム実行時に一時的に使用される作業領域を設定する処理である。本実施形態では、作業領域のアドレスをDEレジスタに格納する。作業領域のアドレスは、HLレジスタに格納されたアドレスによって特定されたテーブルのデータによって決定する。また、作業領域設定処理1(WORK_AD)は、他のINVD命令によって実行される処理からも呼び出される。このように、INVD命令によって実行される処理は、汎用的な機能を実現する非常に短いプログラムで構成され、多重に呼び出すことを可能としている。これにより、INVD命令によって呼び出す処理を組み合わせて構成することによって、遊技制御全体の高速化を実現することができる。また、プログラムコードの重複を避けられるため、プログラム容量を圧縮することができる。
図314は、本実施形態の作業領域設定処理2(WORK_AD_INC_HL)のプログラム例を示す図である。作業領域設定処理2では、作業領域設定処理1を実行した後、指定された設定データアドレスを次のアドレスに設定することによって、作業領域を連続して設定する処理を簡素化することが可能となる。
ここで、データ設定処理、作業領域設定処理1及び作業領域設定処理2を使用する例について、図312に示したデータ設定処理のプログラムに沿って、作業領域の(下位)アドレスと該作業領域に格納する設定値で構成されるテーブルからデータを取得して作業領域に格納する処理を説明する。
データ設定処理では、設定データアドレスによって指定されたテーブルの最初の行に格納されたレコード数を取得し、レコード数分だけ作業領域設定処理2による作業領域の設定と、当該作業領域へのデータの設定を繰り返す(ループ処理)。ループ処理では、まず、設定データアドレスを更新(インクリメント)して次行に移行し、次に、INVD命令によって作業領域設定処理2を呼び出す。
作業領域設定処理2では、作業領域設定処理1によって設定データアドレスで特定されるアドレスにより作業領域を設定する。続いて、設定データアドレスを更新(インクリメント)することでデータの格納領域のアドレスに更新する。その後、作業領域設定処理2からデータ設定処理に復帰し、設定データアドレス(HLレジスタに設定された値)によって特定されるデータを作業領域(DEレジスタに設定された値)に格納する。テーブルのレコード数分のデータを対応する作業領域に設定するとループ処理から抜け出し、データ設定処理を終了する。
以上のように構成することで、データ設定処理、作業領域設定処理2、作業領域設定処理をINVD命令によって階層的に呼び出すことによってプログラムの構造を簡素化し、プログラム容量を削減することができる。
図315は、本実施形態の2バイトデータ検索処理(LD_HLA_HL)のプログラム例を示す図である。2バイトデータ検索処理は、HLレジスタ(入力レジスタ)で指定されるデータテーブルに設定されたアドレスを選択してHLレジスタに設定する処理である。アドレス値は2バイトのため、選択値であるAレジスタ(入力レジスタ)を2倍(2加算)することで、対象となるテータテーブルのアドレスを特定し、当該アドレスをHLレジスタ(出力レジスタ)に設定し直す。例えば、特別図柄・特別電動役物制御処理において各種処理に移行する際に、ジャンプテーブルに基づいてジョブ番号(選択値)により移行先アドレスを選択する処理を実行する際などに使用される。
図316は、本実施形態の大当り情報コマンド設定処理(TDINF_CMBF_SET)、コマンドバッファ設定処理1(CMBF_SET1)及びコマンド格納処理(COM_SET)のプログラム例を示す図である。通常、INVD命令などによって呼び出される処理では、最後に復帰(BK)命令等が配置され、呼び出し元の処理に復帰する。図316に示す大当り情報コマンド設定処理(TDINF_CMBF_SET)及びコマンドバッファ設定処理1(CMBF_SET1)には、呼出し元の処理に復帰するための命令が配置されていないので、大当り情報コマンド設定処理が終了した後、引き続きコマンドバッファ設定処理1が実行され、さらに、コマンド格納処理が実行される。そして、コマンド格納処理の最後に配置された復帰命令によって呼出し元の処理に復帰する。
大当り情報コマンド設定処理においてINVD命令でコマンドバッファ設定処理1を呼び出そうとすると、図309にて説明したように、復帰先のアドレスをスタック領域に格納するなどの処理が必要となるが、プログラムを連続して配置することでこれらの処理を省略することができ、プログラム容量を削減することができる。また、スタック領域を使用しないため、メモリの使用量を削減できるといった効果も得ることができる。
大当り情報コマンド設定処理(TDINF_CMBF_SET)は、大当りが発生した場合の動作を指定する大当り情報コマンドを設定する処理である。大当り状態における大入賞口の開閉動作などを状況に応じた対応する大当り情報コマンドをセットする。その後、継続して実行されるコマンドバッファ設定処理1及びコマンド格納処理によって送信バッファから送信先に送信される。
コマンドバッファ設定処理1(CMBF_SET1)は、基準コマンドデータ(MODE値)とコマンドを具体的に特定するためのコマンド加算データによって、実際に送信するコマンドを特定し、後述するコマンド格納処理によって送信バッファに格納する。送信バッファに格納されたコマンドは適宜送信先に送信される。「基準コマンドデータ」は2バイトで構成され、例えば、特図1の変動パターンの場合であれば、「1001h」(上位1バイト:変動パターン種別、下位1バイト:コマンド基準値(01hから開始))となる。特図1の変動パターンとして変動パターン5(05h)が選択された場合には、上記基準コマンドである“1001h”の下位8ビットに変動パターン5の値(05h)を加算した結果(“1006h”)が送信されるコマンドとなる。
コマンド格納処理(COM_SET)は、送信バッファにコマンド等を格納する処理である。具体的な手順としては、まず、送信バッファの状態を判定して所定バイト数以上の空きがあるか否かを判定する。送信バッファに空きがない場合には処理を終了する一方、送信バッファに空きがある場合には、HLレジスタに格納されたコマンドを構成するステータス及びモードを送信バッファにセットする。さらに、Hレジスタの値とLレジスタの値を加算したサム値を送信バッファにセットする。前述した特図1の変動パターンとして変動パターン5(05h)を選択したコマンド“1006h”の場合には、“10h”+“06h”=“16h”がサム値となる。なお、サム値は必ずしも送信バッファにセットしなくてもよい。
また、送信バッファに格納されるコマンドは2バイトで構成され(サム値を除く)、1バイト目が送信されるコマンドの種別(変動パターン、図柄停止、保留記憶、大当り等)を示し、2バイト目が種別に対する具体的な動作(変動パターン種別であれば、具体的な変動パターン番号)を示す。
なお、送信バッファは、主制御MPU1311に内蔵されたシリアル通信用のFIFOメモリであり、RAM1312とは別のメモリである。送信バッファは、複数バイトの情報を格納できる(64バイトの容量がある)ように構成される。送信バッファに格納されたコマンドは、ハードウェアによって先に格納した順に送信先にシリアル出力される。
図317は、本実施形態の出力判定共通処理1(OHAN_SUB1)のプログラム例を示す図である。出力判定共通処理1は、情報判定出力データ(HLレジスタが示す値)からデータを取得し、情報判定出力データに設定された作業領域(下位アドレス)にフラグが設定されているか否かを判定し、フラグが設定されている場合には、当該フラグ(作業領域)に対応して設定された情報をAレジスタ(ポート出力演算値)に設定する。上記作業を、情報判定出力データに設定された回数分ループすることで、ポートに出力する値がAレジスタに格納される。例えば、情報判定出力データが「ソレノイド情報判定出力データ」の場合には、ループ回数として3が設定され、最初に大入賞口1ソレノイドフラグ(DSOL1_FG)の内容を判定し、DSOL1_FGに1(フラグ値)が設定されている場合には、DSOL1_FGに対応して設定された_TDSOL1_PB(大入賞口ソレノイド1ビットデータ)が出力値として設定される(この値が出力されることで大入賞口ソレノイド1がONされる)。このような処理を、ソレノイド情報判定出力データに設定された回数分(3回)繰り返す。
図318は、本実施形態の出力判定共通処理2(OHAN_SUB2)のプログラム例を示す図である。出力判定共通処理2は、状態判定出力データからデータを取得し、LEDのポート出力値などを処理する。状態判定出力データは、情報判定出力データと同様に、テーブル構造となっており、テーブル内のレコード件数を取得し、件数分のデータを処理する。
図319は、本実施形態の出力ポートデータ設定処理(PORT_DAT_SET)のプログラム例を示す図である。出力ポートデータ設定処理は、I/O領域の情報を出力ポート又は内蔵レジスタに設定するための処理であり、テーブル(設定データアドレス)に設定された出力先に、出力先(出力ポート、内蔵レジスタ)に対応して設定された設定値を出力する。
図320は、本実施形態の変動情報番号検索処理(TI_SRCH)のプログラム例を示す図である。変動情報番号検索処理は、指定された比較値と一致する情報番号を所定のデータ領域から検索する処理であり、変動パターン乱数に基づいて変動パターン情報を選択する際に使用される。例えば、比較値をWレジスタ、データ領域のアドレスをHLレジスタに格納しておき、検索結果をAレジスタに書き込む。具体的には、Wレジスタの内容(乱数値など)とHLレジスタで特定されるテーブルに設定された情報(乱数との比較する値(判定値))を比較し、条件(例えば、乱数値<判定値)を満たすまで、処理を繰り返し、条件を満たすと、判定値に対応して設定された情報(検索結果(例えば、変動パターン番号等)をAレジスタに格納し呼び出し元に復帰する。
図321は、本実施形態の不正報知設定処理(ILG_OUTSET)のプログラム例を示す図である。不正報知設定処理は、異常発生時などの報知を行うための処理である。具体的には、指定された異常表示コマンドをコマンド格納処理によってセットし、不正報知を行う時間を設定する。
図322は、本実施形態のデータ検索処理(HLA_SRCH)のプログラム例を示す図である。データ検索処理は、指定された検索データから指定されたデータを検索する処理である。データ検索処理では、まず、指定された検索データを格納する領域(アドレス)から比較値と一致するデータを検索する。このとき、検索されるデータは次に検索する対象となる領域のアドレスである。さらに、検索されたアドレスの領域から、指定された選択値に基づいて検索を行う。データ検索処理は、複数の検索処理を組み合わせて実行し、先行する検索処理の検索結果に基づいて後続の検索処理を実行する。本実施形態では、最初の検索は2バイトデータ検索処理(LD_HLA_HL)によって行い、次の検索は変動情報番号検索処理(TI_SRCH)によって実行する。これにより、遊技状態などに応じて複数定義されたテーブルを最初の検索で特定し、次の検索で具体的な変動情報番号を取得することが可能となる。このように実装することで、多段階の検索を実行しやすくすることができるとともに、データを段階的に保持することによってデータ量を削減することができる。
以上のように、本実施形態では、他の呼出し命令よりも語長の短いINVD命令によって呼出し可能な複数の処理を組み合わせて一の処理を構成している。このように構成された処理をINVD命令で呼び出すことによって、プログラム容量を削減しながら処理全体を高速化することが可能となる。また、多段階で実行される処理であればデータ検索処理に限らず適用可能であり、例えば、INVD命令で呼出し可能な複数の演算処理が定義されていれば、これらを組み合わせてより複雑な演算処理を実現することが可能となる。
図323は、本実施形態の乗算値加算アドレス取得処理(MUL_WA_HL)のプログラム例を示す図である。乗算値加算アドレス取得処理は、指定されたベース値に乗算値を掛け合わせ、指定されたベースアドレス値に加算する処理である。頻繁に実行される定型的な演算をまとめたものであり、プログラムを簡素化することができる。
図324は、本実施形態のSPI2バイト出力処理(SPI_TX__WA)のプログラム例を示す図である。SPI2バイト出力処理は、SPI(Serial Peripheral Interface)通信によって2バイトのデータを出力する際に出力データをSPIポートに設定するための処理である。SPI通信は、LEDなどの発光体やモータ・ソレノイドなどの駆動体にデータを送信する場合に用いられる。
以上のように、本実施形態におけるINVD命令で呼び出される処理は、数~数十バイト程度の短い処理で構成されることで汎用性が高まり、INVD命令により1バイトの語長で処理を呼出し可能となるため、遊技制御プログラム全体の高速化を実現するとともに、プログラム容量の圧縮を図ることができる。
[19-3.INVS命令]
INVD命令では、処理アドレステーブルにあらかじめアドレスを格納することによって処理(サブルーチン)を呼び出す手順を効率化していた。しかしながら、あらかじめ定義された処理だけが呼び出し可能であるため新たに呼び出す処理を追加したり変更したりする場合には、処理アドレステーブルの内容や処理アドレステーブル番号の定義情報を更新しなければならなかった。また、INVD命令で呼び出し可能な処理を16種類に制限することで語長を1バイトとしていたが、17種類以上の処理に対して適用しようとすると、処理速度の悪化を招くこととなり、INVD命令を使用する効果が損なわれるおそれがあった。
そこで、本実施形態では、通常のINV命令よりも短い語長としながら、INVD命令よりも自由度の高いINVS命令を提案する。INVS命令は、処理(サブルーチン)を特定領域に格納することによって、処理を呼び出すためのオーバーヘッド(手順、クロック数)を低減し、INV命令よりも少ない語長で同等の処理を実現することができる。また、特定領域内に処理が格納されていれば、任意の数の処理(サブルーチン)を定義できるため、INVD命令よりも自由度を高くすることができる。なお、特定領域(第3領域)は、図306にて説明したROM領域のプログラム/データ領域に含まれる。
続いて、INVS命令についてさらに説明する。図325は、本実施形態のINVS命令による処理の呼び出しを行うプログラムの一部を抜粋した図であり、(A)はソレノイド駆動処理及びモータ駆動処理を呼び出す部分を抜粋したプログラム、(B)はソレノイド駆動処理のプログラム例(一部)、(C)はモータ駆動処理のプログラム例(一部)を示す。図325に示したプログラム例では、「アドレス」「プログラム」「ニモニック」「コメント」で構成されている。「アドレス」は、プログラムが格納されている場所である。「プログラム」はいわゆる機械語(マシン語)であり、主制御MPU1311が直接解釈実行可能な命令である。「ニモニック」は、プログラムを実行させるための機械語(数字の羅列)を、プログラミングしやすくするための簡略記憶記号のことである。「プログラム」の値は、「ニモニック」の値に対応する。「コメント」は、プログラムを読みやすくするための説明であり、処理実行時には無視される。
図325に示す例では、ソレノイド駆動処理(“89A6h”)及びモータ駆動処理(“89CCh”)をINVS命令で呼び出している。INVS命令は、上位4ビット(“Ch”)が特定領域のうち第1領域(8000h~8BFFh)にアクセスする命令を構成し、下位12ビットが呼び出す処理のアドレスを示している。具体的には、ソレノイド駆動処理を呼び出すプログラム“C9A6”の下位12ビット(“9A6h”)は、ソレノイド駆動処理を格納するアドレスを特定するものであり、第1領域の上位4ビットは固定で“8***h”となるため、プログラムの下位12ビットと組み合わせてソレノイド駆動処理の格納場所のアドレスは、図325(B)に示すように、“89A6h”となる。同様に、モータ駆動処理についても下位12ビットが“9CCh”であることから格納場所のアドレスは“89CCh”となる。以上のように、本実施形態では、特定領域に処理を格納することによって呼び出す処理を特定するまでのプロセス(手順、クロック数)を削減し、2バイト長の命令で第1領域に格納された処理を実行することを可能としている。
また、特定領域のうち第2領域(8C00h~93FFh)にアクセス可能であるが、その場合には、第1領域にアクセスする場合と異なり、上位の1バイトがINVS命令のオペコードとなり、下位の2バイトが呼び出し先アドレスとなっているため、3バイト長の命令となっている。
遊技制御プログラムは、8000h番地を開始アドレスとしてプログラムが設計されており、第1領域に対してアクセスする頻度が、第2領域に対してアクセスする頻度と比較して非常に高くなっている。そこで、使用頻度の高い領域にアクセスする場合の語長を短くすることによりプログラム容量の圧縮を図るとともに、当該命令に対する処理時間(クロック数)を削減することが可能となっている。
一方、メモリ内の任意の領域に格納された処理を実行するINV命令では、上位2バイトがINV命令のコード情報(オペコード)、下位2バイトが呼び出し先アドレス(オペランド)となっているため、4バイト長の命令となっている。したがって、本実施形態では、特定領域に格納された処理を実行するINVS命令を使用することによって、メモリ内の任意の領域に格納された処理を実行するINV命令と比較して少ない語長で処理を実行することが可能となる。
本実施形態では、特定領域(特に、第1領域)には呼び出し頻度の高い処理(サブルーチン)を配置し、特定領域以外の領域には、呼び出し頻度の低い処理(例えば、エラー処理や試験信号を出力するための処理など)やデータを配置することによって、全体の処理を高速化することが可能となる。なお、規則などによりプログラムコードの容量に制限がある場合には、第1領域を優先してプログラムを配置する。プログラムコードの容量の制限が第1領域の容量よりも小さいなど、可能であればINVS命令で呼び出される処理はすべて第1領域に格納される。また、INVS命令で呼び出される処理(プログラム)はすべて第1領域に格納されるように構成し、第2領域にはプログラムを格納しないようにしてもよい。プログラムを格納する領域を明確に規定することによって構成を簡素化し、管理を容易にすることができる。
また、第1領域には、少なくとも遊技制御に直接関連する処理が配置され、遊技制御に直接関連しない、エラー処理や役比モニタ(ベースモニタ)の表示などは第2領域に配置される。前述のように、第1領域に呼び出し頻度の高い処理を配置することで遊技制御処理全体の高速化を図ることができるが、関連する処理を集約することによってプログラム全体の可読性を向上させて開発効率を高めるように配置してもよい。INVS命令で呼び出し可能な処理は特定領域内で自由に配置することができることから、例えば、同一機種に複数のスペックがある場合に、各スペック共通の制御を所定の領域に集約し、スペックごとに制御が異なる(スペックに依存する)処理については別の領域に集約して配置する。具体的には、特図関連処理、特別電動役物関連処理、普図関連処理、普通電動役物関連処理などは、分散して配置することなく、関連する処理(例えば、変動開始処理、変動中処理、図柄確定処理、変動停止処理などの特図関連処理)を集約して配置する。さらに、集約して配置された領域内でも実行タイミングに応じ、例えば、通常の遊技において実行される制御に沿った順序でプログラムを配置するようにしてもよい。具体的には、特図関連処理では、始動入賞時、変動開始時、変動終了時などのタイミングに応じた順序で配置すればよい。
一方、機種の異なる遊技機であっても汎用的に使用可能であり、遊技仕様に影響されないエラー処理や役比モニタ(ベースモニタ)の表示処理なども集約して配置する。これらの処理は、複数種類の機種で利用される可能性があるため、分離して管理すると都合がよい。例えば、複数種類の機種を並行して開発するチームがある場合、前述した遊技仕様に依存する処理はチーム内で共用する一方、これらの機種間で共通の処理についてはチーム間で共用することで遊技機開発全体の開発効率を向上させることが可能となる。また、遊技仕様に依存する処理は容量の上限が定まっていても機種ごとに異なる可能性があるため、機種の異なる遊技機であっても汎用的に使用可能な処理のプログラム(モジュール)は第2領域に配置することによって、異なる機種の遊技制御プログラムから処理を呼び出す場合であってもアドレスを共通化することができる。
以上のように、INVS命令では、特定領域内に任意の処理を開発効率や管理効率(メンテナンス効率)に合わせてプログラム(モジュール)を配置することが可能となる。これにより、INVD命令では定義可能な処理の数に抑制するためにポートの読み込みやデータの読み出しなどの汎用的な処理を優先して定義していたが、遊技内容に依存する処理をまとめて配置することが可能となり、機能ごとに処理を集約するなど管理を容易にすることができ、開発効率を向上させることができる。
また、INVS命令で呼び出されたモジュール内においてINVD命令によって処理を実行することも可能である。このように構成することで、INVS命令によって呼び出される処理をさらに高速化し、プログラム容量の圧縮を図ることが可能となり、さらには、遊技制御プログラム全体の高速化及びプログラム容量の圧縮を図ることが可能となる。なお、INVD命令で呼び出されたモジュール内にINVS命令でモジュールを呼び出すことも可能である。処理アドレステーブルで定義可能な処理の数には制限があるため、処理アドレステーブルに定義できなかった汎用性の高い処理をINVS命令によって呼び出すことを可能としている。このように、INVD命令及びINVS命令から呼び出されたモジュール内で相互に処理を呼び出すことができるように構成されている。
また、タイマ割込み処理のように所定間隔で実行され、極めて実行頻度の多い処理は特定領域(第1領域)に配置する一方、設定操作時処理のようにタイマ割込み処理から呼び出し可能であっても実際に呼び出される頻度が少ない処理については、特定領域の範囲外に配置するとよい。このように構成することによって、処理速度を低下させずに特定領域の容量を確保することができる。
さらに、INVS命令による高速化の効果がより発揮される第1領域にのみプログラムを配置し、INVS命令から第2領域にアクセスしないように構成してもよい。これにより、プログラムの配置など記憶領域の管理を簡素化することができる。例えば、異なる機種間で共用可能な処理を定義するプログラムを第2領域ではなく制約の少ない特定領域外に配置することで、プログラムの配置の自由度が高くなり、プログラムを共用化する際にプログラム容量の相違などから生じる制約を削減することができる。また、主制御MPU1311の仕様変更にともなってINVS命令の仕様が変更された場合であってもINVS命令によるアクセス可能な領域が単一であれば対応が容易になり、遊技制御プログラムの基本構成を大幅に変更する必要がなくなるため、既存のプログラムやデータを活用でき、開発効率を向上させることができる。
[19-4.INVI命令]
ここまで、処理を呼び出す命令を高速化する態様について説明していたが、頻繁に組み合わせて実行される処理を統合した命令を実装することによってプログラムを簡素化するための手段について説明する。
遊技制御を実行する際に特定のプログラムを実行する場合、並行して実行される他の処理によってメモリ内の情報が書き換えられると、遊技の進行に支障が生じる場合がある。そのため、複数の処理で共通にアクセスされる領域に格納された情報が書き換えられないように、処理が終了するまで割り込みを禁止する手段が一般的に用いられる。特に、特定の処理を実行する場合に割り込みを禁止し、当該特定の処理が終了した後、割り込み禁止を解除する手順が頻繁に行われる。
遊技制御では、割り込みの禁止、処理の呼び出し、割り込み禁止の解除といった手順を頻繁に実行することになるが、プログラム領域のサイズに制限があることから、共通の手順を省略してプログラムのサイズを小さくすることが望まれていた。そこで、本実施形態では、処理を呼び出すINV命令を拡張し、処理の呼び出し前に割り込みを禁止するINVI命令を提案する。
INVI命令では呼び出す処理を指定して実行するため、INV命令と実行手順は同じである。しかしながら、INVI命令実行時の内部処理としては、指定されたアドレスにプログラムカウンタを移す前に、スタック領域に必要なデータを格納し、割り込みを禁止する。その後、呼び出された処理を実行する。呼び出された処理の最後には、処理を呼び出す前の割り込み状態に戻しながら呼び出し元の処理に戻るBKI命令が実行される。すなわち、INVI命令の割込み状態が割り込み禁止状態であればそのまま割り込み禁止状態を維持し、INVI命令の割込み状態が割り込み許可状態であれば、割り込みの禁止を解除する。以下、INVI命令の一連の手順について、図326を参照しながら説明する。
図326は、本実施形態におけるINVI命令の手順を説明する図である。アドレス“8200h”に格納されたINVI命令実行時の手順を説明する。
INVI命令で指定された処理の格納先は“A800h”であるため、プログラムカウンタの値は“8200h”から“A800h”に変化する。このとき、スタック領域に処理実行後に復帰する位置を示すアドレス“8202h”(呼び出し元の次のアドレス、呼び出し先の処理終了後の戻りアドレス)と、処理呼び出し時のPSW(Program Status Word)を格納する。そのため、スタックポインタは、“01F8h”から“01F5h”に変化する。図326の例では、“01F6h”、“01F7h”に戻りアドレスを格納し、“01F8h”にPSWを格納する。
PSWとは、主制御MPU1311において命令の実行される順番を制御したり、特定のプログラムに関連するコンピュータシステムの状態を示し保持しておくための制御ワード(ステータスレジスタ)であり、実行中の主制御MPU1311の状況も含んでいる。また、フラグレジスタの内容、割込みの状態などを1バイトにまとめて記憶している。図327を参照しながらPSWについて説明する。
図327は、本実施形態のPSWの一例を示す図であり、(A)はPSWの構成、(B)は各構成の説明である。PSWは、ジャンプステータスフラグ(JF)、ゼロフラグ(ZF)、キャリーフラグ(CF)、ハーフキャリーフラグ(HF)、サインフラグ(SF)、オーバーフローフラグ(VF)、レジスタバンクフラグ(RES)、割り込みマスタ許可フラグ(IMF)によって構成される。
ジャンプステータスフラグ(JF)は、ジャンプ命令、サブルーチン命令の動作条件を判断するために使用するフラグである。実行した命令により、ZF又はCFがセットされる。
ゼロフラグ(ZF)は、演算結果若しくは転送データが“00H(0000H)”の場合には1がセットされ、その他の場合には0にクリアされる。また、ビット/フラグ操作命令では、指定ビットが0の場合には1がセットされ、指定ビットが1の場合には0にクリアされる。
キャリーフラグ(CF)は、キャリーフラグ演算時のキャリー/ボローをセットする。また、シフト/ローテイト命令又はビット/フラグ操作命令では、命令実行内容をセットする。ハーフキャリーフラグ(HF)は、8ビット演算の場合に4ビット目のキャリー/ボローをセットする。
サインフラグ(SF)は、演算結果のMSB(最大有効ビット数)が1の場合に1にセットされ、それ以外の場合に0にクリアされる。最上位ビットが正負の符号を示す場合には、サインフラグによって符号を識別することができる。オーバーフローフラグ(VF)は、演算結果にオーバーフローが生じたときに1にセットされ、それ以外は0にクリアされる。
レジスタバンクフラグ(RES)は、汎用レジスタの選択されているバンクを示す。バンク0の場合は0、バンク1の場合は1がセットされる。
割り込みマスタ許可フラグ(IMF)は、IMF=0の場合に割り込み禁止、IMF=1の場合には割り込み許可となる。また、DI(ディスエーブルインタラプト)命令実行時には、IMF=0となり、割り込みが禁止される。また、EI(イネーブルインタラプト)命令実行時には、IMF=1となり、割り込みが許可される。このように、割り込みの発生を禁止/許可できる割り込みをマスカブル割り込みという。
ここで、図326の説明に戻る。INVI命令が実行されると、PSWに含まれるIMFの値を“0”に設定し、割り込みを禁止する。このとき、割り込み禁止命令(DI命令)を実行することなく、INVI命令の実行に伴って割り込みが禁止される。さらに、プログラムカウンタの値は“A800h”に設定され、アドレス“A800h”から順次処理を実行する。そして、アドレス“A80Eh”まで処理を実行すると、呼び出し元に復帰するBKI命令が実行される。BKI命令では、スタック領域に格納された復帰先のアドレスをプログラムカウンタの値に設定するとともに、PSWの内容をスタック領域に退避されていたPSWの内容に戻す。具体的には、プログラムカウンタの値は“A800h”から復帰先のアドレスである“8202h”に設定する。また、PSWの内容をINVI命令実行前のPSWの内容に戻すため、INVI命令実行前のIMF(割り込みマスタ許可フラグ)の値が1(割り込み許可)であれば、割り込み禁止が解除される。INVI命令実行時にスタック領域に格納された値は消去されるため、スタックポインタの値は“01F5h”から“01F8h”に設定される。
以上のように、INVI命令によって処理を実行すると、割り込み禁止命令(DI命令)を明示的に実行することなく指定した処理の実行が完了するまでの間、割り込みを禁止することが可能となる。さらに、BKI命令を実行することによって呼び出し元に復帰することによって、INVI命令が実行される前に割り込み許可状態であれば、割り込み禁止解除命令(EI命令)を明示的に実行することなく、割り込み禁止を解除することが可能となり、INVI命令が実行される前に割り込み許可状態であれば、割り込み禁止状態が維持される。なお、INVI命令の実行に限らず、DI命令などによって割り込みを禁止した状態で処理を実行した後、元の処理に復帰する場合にも使用可能である。また、BKI命令は、割り込み禁止を直接解除する命令ではなく、PSWをINVI命令実行前の状態に戻すことによって割り込みマスタ許可フラグ(IMF)をINVI命令実行前の値に戻すだけであるため、INVI命令実行前に割り込み許可状態であれば割込み禁止状態から割り込み許可状態に戻す一方、INVI命令実行前から割り込み禁止状態であれば復帰後も継続して割り込み禁止状態となる。また、割り込み禁止命令及び割り込み禁止解除命令を実行する必要がないため、制御を簡素化し、プログラム容量を圧縮することができる。これにより、他の処理によってデータが変更されることなく処理を実行することができる。
前述のように、本実施形態の遊技機では、あらかじめプログラムを実装可能な領域(使用領域、遊技領域)が規定されており、基本的に使用領域外でプログラムを実行することは禁止されているが、試験信号処理などの一部の処理は遊技制御に直接関わらないため使用領域外での実行が許容される。また、役比モニタ(ベースモニタ)やエラーに関する処理も遊技制御に直接関わらないため使用領域外での実行が許容される。このような処理を実行する場合には、INVI命令によって割り込みを禁止し、PSW(ステータスレジスタ)を退避して実行することによって、他の処理への影響を抑制することができる。
また、INVI命令により使用領域外の領域に格納された処理を呼び出す場合、前述したINVD命令のように、処理アドレステーブルを使用して格納先を特定することも可能であるが、使用領域内の処理から直接領域外のアドレスを指定して処理を呼び出すことになるため不都合が生じるおそれがある。そこで、INVI命令実行用に必ず経由する一時領域を設定するようにしてもよい。この場合、INVI命令から呼び出される処理は、限定された一時領域(例えば、“A800h”~“A8FFh”の範囲)に定義される。しかしながら、この限定された範囲内にすべての処理を定義することはできないため、呼び出し元の処理からは一時領域内のアドレスを指定するが、当該アドレスから使用領域外に実際に格納された処理を実行する。具体的には、使用領域内から指定されたアドレスからジャンプ命令などによって指定された処理が格納されたアドレスに移動する。図328に具体例を示す。
図328は、本実施形態のINVI命令によって呼び出される処理の配置を説明するプログラム例を示す図であり、(A)は処理の読み出し先となる領域のプログラム例、(B)は処理の実体のプログラム例を示す。ここでは、アドレス“A8FFh”までの領域が使用領域となっており、アドレス“A900h”以降が領域外となる。
図328(A)に示すように、INVI命令によって呼び出される処理は、処理を示すラベルとジャンプ命令(JP)との組で定義されている。例えば、INVI命令によって性能表示モニタ処理を呼び出す場合には、「INVI _EX_MONITOR_OUT」と記述される。ラベル「_EX_MONITOR_OUT」は別の領域にあらかじめ定義されている。「_EX_MONITOR_OUT」の値は、“A900h”となっている。
命令「INVI _EX_MONITOR_OUT」が実行されると、プログラムカウンタの値が定義されたラベルに対応するアドレス“A800h”に更新され、PSWがスタック領域に退避される。さらに、PSWのIMF(割り込みマスタ許可フラグ)の値が0(割り込み禁止)に設定される。その後、ジャンプ命令のオペランドに設定された飛び先であるアドレス“A900h”に定義された性能表示モニタ処理(“EX_MONITOR_OUT”)が実行される。
性能表示モニタ処理は使用領域外の処理であるため、使用領域内の処理に影響を与えないように、レジスタの内容が退避される(使用領域内レジスタ退避処理)。その後、性能表示モニタ処理本体を実行する。最後に、退避したレジスタの内容を復帰させ、BKI命令によって呼び出し元の処理に復帰するとともに、処理実行前の割り込み状態に復帰させる。
以上のように構成することによって、使用領域外の処理を分離しやすくなり、プログラムの管理が容易になる。また、INVI命令実行時に割り込みが禁止されているので、使用領域外での処理が実行されている間は割り込みが禁止され、使用領域内に格納された処理との独立性を担保し、安全性を確保することができる。なお、図328を参照しながら説明した例では、INVI命令によって呼び出される処理を格納する領域を限定する場合としたが、これに限定しなくてもよい。これにより、任意の領域に格納された処理について、割り込みを禁止した状態で実行する処理の呼び出しを簡素化することが可能となる。
[19-5.拡張された処理呼出命令の適用例]
以上説明した処理(サブルーチン)を呼び出すための各種命令(INVD命令、INVS命令、INVI命令)の具体的な適用例について説明する。ここでは、主制御基板1310の主制御MPU1311によって実行されるタイマ割込み処理に適用する。具体的な処理呼出命令の適用例は、タイマ割込み処理に含まれる遊技停止時処理について、プログラムコードと合わせて説明する。
図329は、本実施形態の各種処理呼出命令を使用したタイマ割込み処理を示すフローチャートである。タイマ割込み処理の基本的な機能については、これまでに説明した内容と同等である。
主制御MPU1311は、まず、レジスタバンク1を指定する(ステップP101)。主制御MPU1311は、前述のように、バンク0及びバンク1の2種類のレジスタ群を備えており、バンクを切り替えていずれか一方を使用する。タイマ割込み処理ではバンク1を使用し、主制御側メイン処理ではバンク0が使用される。なお、タイマ割込み処理で必ずしもバンクを切り替える必要はなく、例えば、スタック領域にレジスタの値を退避し、処理終了後に復帰させるように構成してもよい。
次に、主制御MPU1311は、スイッチ入力処理を実行する(ステップP102)。スイッチ入力処理では、前述のように、主制御MPU1311の各種入力ポートの入力端子に入力されている各種信号を読み取り、入力情報として主制御内蔵RAM1312の入力情報記憶領域に記憶する。続いて、主制御MPU1311は、設定状態管理エリアの値が正常範囲内かを判定する設定値確認処理を実行する(ステップP103)。
設定値確認処理が終了すると、主制御MPU1311は、遊技機が遊技可能状態であるか否かを判定する(ステップP104)。遊技可能状態でない場合(ステップP104の結果が「NO」)、すなわち、設定操作を行う場合には(設定変更モード、設定確認モード)、設定操作時処理を実行する(ステップP105)。
設定操作時処理では、遊技機の設定を変更や確認するための処理を実行する。設定操作用の設定データをロードし、それぞれ対応する出力ポートにセットする。具体的には、停電クリア信号をOFF出力し、ACK出力ポートをクリアする。さらに、LEDコモンポート及びLEDカソードポートをOFF出力するとともに、モーターポート及びソレノイドポートをクリアし、セキュリティ信号を出力する。その後、設定表示処理及び設定確認/変更処理を実行する。
一方、主制御MPU1311は、遊技機が遊技可能状態である場合には(ステップP104の結果が「YES」)、遊技停止要因があるか否かを判定する(ステップP106)。遊技停止要因がある場合には(ステップP106の結果が「YES」)、遊技停止時処理を実行する(ステップP107)。遊技停止時処理では、遊技機を停止するために必要な処理を実行する。詳細については、図330を参照して後述する。
また、主制御MPU1311は、遊技停止要因がない場合には(ステップP106の結果が「NO」)、遊技を進行させるために、遊技可能時処理を実行する(ステップP108)。遊技可能時処理は、通常の遊技を行うための処理である。具体的には、スイッチ入力特殊処理、タイマ更新処理、賞球制御処理、枠コマンド受信処理、不正行為検出処理、スイッチ通過時コマンド出力処理、性能表示モニタ処理、特別図柄・特別電動役物制御処理、ソレノイド駆動処理、モータ駆動処理、出力データ設定処理などの処理を行う。各処理については、前述したとおりである。
遊技可能時処理又は遊技停止時処理が終了すると、主制御MPU1311は、表示LED出力処理を実行する(ステップP109)。さらに、表示LED出力処理又は設定操作時処理終了後、試験信号出力処理を実行する(ステップP110)。試験信号出力処理では、遊技機に接続された検査装置に出力するための試験信号を出力するための処理を行う。最後に、主制御MPU1311は、ウォッチドッグタイマクリアレジスタWCLに所定値(18H)をセットしてウォッチドッグタイマをクリアしたり(ステップP111)、レジスタバンクを0に戻したりするなどの処理を実行し、タイマ割り込み処理を終了する。
以上、タイマ割り込み処理の概要を説明した。続いて、各種処理呼出命令を使用した処理について説明する。前述のように、タイマ割り込み処理の遊技停止時処理を抜粋して説明する。まず、遊技停止時処理の手順について説明し、プログラムコードを参照しながら各種処理呼出命令の適用例を適宜説明する。
図330は、本実施形態のタイマ割り込み処理における遊技停止時処理の手順を示すフローチャートである。図331は、本実施形態のタイマ割り込み処理における遊技停止時処理のプログラムコードである。遊技停止時処理は、磁気異常や振動異常などの異常を検出した場合や設定変更などを行う場合に遊技を停止させるための処理である。磁気異常や振動異常の他に、扉/本体枠開放中、電波異常、入賞異常があり、設定変更以外にも設定確認中の場合がある。遊技機のタイプに応じてエラー報知のみとしたり、遊技を停止させたりする。特に、役物内の特定領域(V領域)を通過させることで大当りを獲得することができるタイプでは、不正入賞によって大当りを獲得できるため、異常検出時には不正行為として遊技を停止するように構成される。
遊技停止時処理が開始されると、主制御MPU1311は、まず、遊技停止コマンドを設定する(ステップP121)。遊技停止コマンドは、遊技機を停止することを外部に通知するコマンドである。プログラムコードを参照すると、遊技停止コマンドの設定は、まず、前述したステップP106の処理で遊技停止要因があるか否かを判定する際にAレジスタにコマンド加算値(遊技停止要因;PLAY_STOP_NO)がされており、この状態でHLレジスタに基準コマンドデータ(_ILG_MAG2_CM-1)を設定した後、コマンドバッファ設定処理1(CMBF_SET1)を実行する。
コマンドバッファ設定処理1は、INVD命令によって呼び出される処理となっている。INVD命令で指定された変数“_CMBF_SET1”は、処理アドレステーブル内で定義されたコマンドバッファ設定処理1(CMBF_SET1)のアドレスに対応する番号であり、本実施形態では“4”(INVD4)となっている。主制御MPU1311は、INVD命令によって処理アドレステーブルの番号が指定されると、処理アドレステーブルを参照し、指定された番号に対応する処理を実行する。これにより、アドレスを直接指定することなく処理を実行することが可能となるため、処理の呼び出しを高速化するとともにプログラム容量を圧縮することが可能となる。
コマンドバッファ設定処理1では、前述したように、基準コマンドデータ(HLレジスタの値)と、コマンド加算データ(Aレジスタの値、遊技停止要因に対応する値)に基づいて遊技停止コマンドを特定し、コマンド格納処理によって送信バッファに格納し、遊技停止コマンドを出力する。
主制御MPU1311は、遊技停止コマンドを送信バッファに格納した後、外部出力情報を出力するための外部出力処理(GAIB_OUT)を実行する(ステップP123)。外部出力情報には、例えば、図柄確定データ、始動口データ、大入賞口入賞データ、メイン賞球データ、セキュリティデータなどを含む。
外部出力処理(GAIB_OUT)は、INVS命令によって実行される。INVS命令では、前述のように、特定領域に処理を格納することによって、任意のアドレスに格納された場合と比較して迅速に処理を呼び出すことができる。外部出力処理(GAIB_OUT)は、遊技中(遊技可能時処理実行時)に出力データ設定処理(PORT_SET)から呼び出されるなど実行頻度が高いため、特定領域に格納されている。なお、出力データ設定処理(PORT_SET)では、処理全体の高速化を図るために、外部出力処理(GAIB_OUT)の他にも、出力判定共通処理1(OHAN_SUB1)や出力判定共通処理2(OHAN_SUB2)など処理アドレステーブルに定義されたINVD命令によって呼び出される処理や特定領域に格納されたINVS命令によって呼び出される処理が多く呼び出されるように構成されている。
次に、主制御MPU1311は、SPI通信によってソレノイドなどの駆動体や外部に送信するための各種信号を出力するためのSPI通信処理を実行する(ステップP124)。SPI通信処理では、WAレジスタに出力するデータを設定し、EレジスタにWAレジスタに設定したデータを出力する先のアドレスを設定した後、SPI2バイト出力処理(SPI_TX__WA)を実行する。SPI2バイト出力処理(SPI_TX__WA)は、コマンドバッファ設定処理1(CMBF_SET1)と同様に、INVD命令によって呼び出される処理であり、INVD命令で指定された変数“_SPI_TX__WA”は“14”(INVD14)となっている。
さらに、主制御MPU1311は、遊技を停止するための遊技停止データを設定する(ステップP125)。さらに、設定された遊技停止データを出力ポートにセットするための出力ポートデータ設定処理(PORT_DAT_SET)を実行する(ステップP126)。遊技停止データは、例えば、停電クリア信号、LEDコモンポート、LEDカソードポートなどをOFF出力し、モーターポートやACK出力ポートなどをクリアするためのデータである。
出力ポートデータ設定処理(PORT_DAT_SET)は、コマンドバッファ設定処理1(CMBF_SET1)と同様に、INVD命令によって呼び出される処理であり、INVD命令で指定された変数“_PORT_DAT_SET”は“10”(INVD10)となっている。
最後に、主制御MPU1311は、性能表示モニタに遊技に関する各種情報を表示する性能表示モニタ処理を実行する(ステップP127)。性能表示モニタ処理は各種情報を表示するだけであり、遊技制御に直接関わる処理は実行されず、また、性能表示モニタ自体も遊技者が意図して参照するものではない。そこで、本実施形態の性能表示モニタ処理は使用領域外に格納されており、INVI命令によって性能表示モニタに性能情報を表示する処理を実行する間は割り込みが禁止されて遊技制御処理とは独立して実行することができる。なお、性能表示モニタ処理の最後にBKI命令によって処理呼び出し前の割り込み状態に復帰してから呼び出し元に戻るようになっているため、処理呼び出し前の割り込み状態が割り込み許可状態であっても呼び出し元で割り込み禁止を解除する必要はない。
また、タイマ割込み処理における試験信号出力処理も通常の遊技ではなく試験時に呼び出されて遊技情報を出力する処理であるため、使用領域外に格納されている。電源断時の処理や使用領域外の処理を実行するための初期化処理やバックアップ処理などを使用領域外に格納するようにしてもよい。
なお、タイマ割込み処理などの割込み処理を実行する際に、多重割り込みを防止するために割り込み禁止に設定するようにしてもよいが、多重割り込みが発生しても問題ないように設計することでタイマ割込み処理内では割り込み許可状態に設定するようにしてもよい。本実施形態のINVI命令では、処理実行前の割り込み状態に戻すため、いずれの場合であっても多重割り込みを許容するか否かに関わらず、問題なく使用することが可能となっている。
[19-6.拡張された処理呼出命令から呼び出されるプログラムの配置]
続いて、本実施形態の遊技機の遊技制御における各種呼出し命令によって実行される処理が定義されたプログラムの配置について詳細を説明する。プログラムは、主制御基板1310によって提供される記憶領域のROM領域に含まれるプログラム/データ領域(8000h~BFFFh)に格納される。
図332は、図306に示すROM領域のうちのプログラム/データに関する領域のメモリマップの一例を示す図である。図332の左側はプログラム/データに関する領域の構成、図332の右側はプログラム/データ領域の第1領域の構成の詳細を示す。
本実施形態の遊技機の主制御基板1310におけるプログラム/データに関する領域には、第1領域(8000h~8BFFh)及び第2領域(A800h~BFFFh)が含まれる(図332の左)。これら以外の領域は未使用領域(使用領域外)となっており、遊技制御プログラムによるアクセスが原則的に禁止される。さらに、当該領域には、未使用データとして00Hのデータが設定されており、00Hは、CPUの命令としてNOP(non operation命令)であり、当該領域に誤ってアクセスしたとしても、不要な制御が実行されないようになっている。なお、当該領域に誤ってアクセスした際には、CPUに対してリセット信号が入力されるようになっており、直ちに、遊技処理に復帰できるようになっている。
また、図332に示すように、第1領域はプログラム/データに関する領域の先頭アドレス側、第2領域はプログラム/データに関する領域の最終アドレス側に配置され、第1領域と第2領域の間に未使用領域(使用領域外)が配置される。後述するように、第1領域には遊技の結果に関与する処理を含む主な遊技制御を実行する処理が定義されたプログラムが配置され、第2領域には、エラー処理、試射試験処理、役物比率算出に関連する処理など遊技の結果に直接的に関与しない処理が定義されたプログラムが配置される。第1領域と第2領域との間に未使用領域を配置することによって各領域の独立性を高めることができる。例えば、第1領域を拡張した場合であっても第2領域のアドレスを変更する必要がない程度の未使用領域を十分に確保することで、仕様変更による影響を最小限にすることができる。
続いて、各領域について説明すると、第1領域は、各種呼出し命令によって呼び出される処理(プログラム)を含む遊技制御に関わる処理(プログラム)が格納されている。図332(右)に示すように、第1領域はアドレスの先頭(8000h)にスタート処理が配置される。スタート処理は、遊技機起動時などに実行される処理であり、機種に依存しにくい処理となっている。具体的には、電源投入時処理(図213等)に対応する。また、スタート処理を領域の先頭に配置してプログラムカウンタの初期値を“8000h”とすると、初期化時にスタート処理を自動的に開始することが可能となる。なお、初期化時とは、主制御基板1310の主制御MPU1311のコアにリセット信号が入力されるときである。具体的には、電源投入時に主制御MPU1311のリセット端子からリセット信号が入力されるとき、主制御MPU1311内部の不具合検出(イリーガル命令の実行、ROM・RAMの指定領域外へのアクセス、ウォッチドッグタイマ等)によってリセット信号が入力されるときなどである。
スタート処理の格納される領域に続いて、INVD命令によって呼び出される処理群が格納される領域となっている。スタート処理が格納された領域の容量は小さいため、INVD命令によって呼び出される処理群が格納される領域は第1領域の先頭アドレスに近い領域(相対的に若い番地のアドレス)となっている。INVD命令によって呼び出される処理群は、処理アドレステーブルに定義されている処理であり、この領域には処理アドレステーブルに定義されている処理の実体(プログラム)が格納される。なお、INVD命令によって呼び出される処理群が格納される領域には、全てのINVD命令によって呼出される処理を集中的に配置されているのが好ましいが、当該領域にINVD命令以外で呼出される処理が含まれていてもよい。
前述のように、INVD命令によって呼び出される処理群は、汎用処理であり、スタート処理と同様に機種に依存しない(依存しにくい)処理となっている。本実施形態では、スタート処理やINVD命令によって呼び出される処理といった機種に依存しにくい処理を、後述する遊技制御処理などの機種に依存する処理を格納する領域よりも第1領域の先頭アドレス(8000h)に近い領域に配置することによって、異なる機種でも共通の配置(アドレス)とすることが可能となる。これにより、これらの汎用的な処理を再利用することが容易になり、遊技機の開発効率を向上させることが可能となる。また、遊技機の開発初期に汎用処理の内容や配置(アドレス)が特定されることで、開発資料の作成を効率化したり、機種ごとの遊技制御処理の着手時期を早めたりすることができる。さらに、複数のチームで遊技機の開発を行う場合であっても各処理(プログラム)を共用することが容易になり、開発期間を短縮することができる。
INVD命令によって呼び出される処理群を格納する領域に続く第1領域の残りの領域は、遊技制御処理を定義するプログラムが格納される領域となっており、第1領域の最終アドレス側の領域となっている。遊技制御処理は、遊技の進行制御を行うための各種処理であり、機種に依存する処理が含まれる。具体的には、遊技を制御するタイマ割込み処理(図190、図329等)から呼び出される処理、例えば、図柄の変動表示(動的表示)の制御などの処理(特別図柄・特別電動役物制御処理(TOK_JOB;図190のステップS2089)、普通図柄・普通電動役物制御処理(FUT_JOB;図190のステップS2090)等)が含まれる。
なお、INVS命令によって呼び出される処理を定義するプログラムは、遊技制御処理を定義するプログラムが格納される領域に含まれる。前述のように、特定領域に配置されたプログラムに基づく処理をINVS命令で呼び出すことによって、通常のINV命令の語長(4)よりも少ない語長(2ないし3)で実行することが可能となる。なお、語長とは、命令を構成するオペコードとオペランドとを合わせた長さを指す。オペコードは、プロセッサにフェッチされた後に命令デコーダによって解読される部分であり、実行する操作の種類を指定する部分である。オペランドは、操作対象となる値又は変数を指定する部分である。
第2領域(A800h~BFFFh)には、エラー処理、試射試験処理、役物比率算出に関連する処理など、遊技(図柄の変動表示・動的表示)の結果に直接関与しない処理が格納される。遊技の結果に直接関与しない処理には、例えば、タイマ割り込み処理(図190、図191、図329等)において遊技を制御する過程で遊技機に接続された検査装置に試験信号を出力するなどの処理を行う試験信号処理(図190のステップS2067、図329のステップP109)や性能表示モニタに遊技に関する各種情報を表示する性能表示モニタ処理が含まれる。性能表示モニタ処理は、遊技可能時処理(図329のステップP108)や遊技停止時処理(図329のステップP107、図330のステップP127)で呼び出して実行される。また、タイマ割り込み処理(図23)における役物比率算出・表示処理(図23のステップS89)についても、遊技の結果に直接関与しない処理に含まれる。役物比率算出・表示処理では、役物比率算出用領域13128に格納された賞球数を参照して役物比率を算出し、算出された役物比率を役物比率表示器1317に表示することによって遊技機の射幸性を確認することができる。なお、性能表示モニタ処理と役物比率表示処理とは、用語の違いはあるものの、遊技機の射幸性を確認するための情報を表示する点で共通であり、遊技機の種類に応じて必要な情報を表示する。例えば、パチンコ遊技機ではベース(非時短中における入賞口への入球による総賞球数(大当り中の出玉は除く)/非時短中の総発射数)を表示し、回胴式遊技機では役物比率を表示する。
また、第2領域内に格納された処理から他の処理を呼び出す場合には、INV命令のみが使用される。INV命令(4バイト)は、拡張された処理呼出命令(INVS命令(2バイト)、INVD命令(1バイト)、INVI命令(2バイト))と比較して語長が長くなるが、拡張された処理呼出命令は演算装置(主制御基板1310の主制御MPU1311)によって仕様が異なる可能性がある一方、特別な制約なく指定した処理を呼び出すINV命令については演算装置を変更した場合であっても確実に互換性が維持される。そのため、第2領域内に定義された処理において他の処理を呼び出す際にINV命令のみを使用することによってプログラムを構成することで、第2領域内に定義された処理の独立性を担保し、機種の変更(更新)だけでなく演算装置の変更などハードウェアの更新などの大幅な遊技機の仕様変更があった場合であってもプログラムの再利用を容易にすることができる。
これに対し、第1領域内に格納される処理は、INV命令以外だけでなく、改良された処理呼出命令であるINVD命令、INVS命令、INVI命令を使用してプログラムが構成されている。また、INVD命令及びINVS命令によって呼び出される処理は、第1領域にのみ配置するプログラム構成としている。このため、INVS命令によって呼び出される処理において、必要に応じて(任意の回数)、INVS命令やINVD命令による処理の呼び出しが可能となっており、処理の高速化及びプログラムの簡素化を一層図ることができる。
例えば、遊技機の設定を変更や確認するための処理を実行する設定操作時処理(図329のステップP105)では、前述したように、設定操作用の設定データをロードして対応する出力ポートにセットし、その後、設定確認/変更処理(設定処理、SET_PROCESS、図192)及び設定表示処理(SET_DISPLAY、図193)を実行する。設定確認/変更処理及び設定表示処理は、遊技制御処理(タイマ割込み処理;図190等)からINVS命令によって呼び出すようにプログラムを構成している。
設定確認/変更処理(設定処理、SET_PROCESS)では、RAM異常を検出せずに設定キー971がON位置からOFF位置に戻った場合にINVS命令によって遊技開始時の状態を判定するための電源投入時設定処理(図192のステップS2104、図194等)を呼び出すようにプログラムを構成している。
電源投入時設定処理では、電源投入時動作コマンドをセットするためにINVD命令によってコマンドバッファ設定処理(CMBF_SET1、図316)を実行するようにプログラムを構成している(図194のステップS2120)。続いて、遊技領域内ワークの初期設定をするために、INVD命令によってデータ設定処理(DAT_SET、図312)によって指定された電源投入時初期データを作業領域に一括してセットするようにプログラムを構成している(図194のステップS2123)。そして、遊技開始状態であれば、RAM初期化時遊技開始時データ又は復電時遊技開始時データを指定してINVD命令によって電源投入時状態コマンド及び電源投入時復帰先コマンドをコマンドバッファ設定処理(CMBF_SET1、図316)によってセットするようにプログラムを構成している(図194のステップ2124、ステップ2125)。さらに、INVS命令によって設定値コマンドを送信するための設定値コマンド送信処理を実行するようにプログラムを構成している(図194のステップ2126)。
設定表示処理(SET_DISPLAY)では、まず、設定状態が異常であるか否かを判定し、正常である場合には現在の設定値がベース表示器1317に表示されるように設定する一方(ステップS2111)、異常である場合にはエラーがベース表示器1317に表示されるように設定する(図193のステップS2112)。その後、LEDコモン出力ポートにLEDコモン信号を出力し(図193のステップS2113)、設定値又はエラー表示に対応する表示データ(セグメント信号)をベース表示器1317に出力する(図193のステップS2114)。ベース表示器1317に出力する処理では、まず、LED状態判定出力データアドレステーブルに基づいてLEDのポート出力値(LEDコモン信号)を取得するために、INVD命令によって出力判定共通処理2(_OHAN_SUB2;図318)を実行するようにプログラムを構成している。さらに、SPI通信によってLEDコモン信号をSPIポート(LEDコモン出力ポート)に設定することでベース表示器1317に出力データを送信するために、INVD命令によってSPI2バイト出力処理(SPI_TX__WA;図324)を実行するようにプログラムを構成している。
タイマ割り込み処理では、前述した設定確認/変更処理(設定処理、SET_PROCESS)や設定表示処理(SET_PROCESS)の他に、拡張した処理呼出命令によって種々の処理が実行される。以下、タイマ割り込み処理で呼び出される処理を列挙する。なお、図329に示したタイマ割り込み処理では一部処理が集約されているため、図190及び図191のタイマ割り込み処理と対応させて説明する。
INVS命令によって実行される処理には、スイッチ入力処理1(SW_INPUT;ステップS2062)、乱数更新処理1(R_ATAR_K;ステップS2063)、周辺基板コマンド送信処理(SCM_JOB;ステップS2070)、設定処理(SET_PROCESS;ステップS2068)、設定表示処理(SET_DISPLAY;ステップS2069)、スイッチ入力処理2(SW_INPUT2;ステップS2080)、タイマ更新処理(TIM_DEC;ステップS2081)、賞球制御処理(PAY_JOB;ステップS2082)、枠コマンド受信処理(WK_CM_JOB;ステップS2083)、スイッチ通過時コマンド出力処理(SW_COMSET_JOB;ステップS2085)、特別図柄・特別電動役物制御処理(TOK_JOB;ステップS2089)、普通図柄・普通電動役物制御処理(FUT_JOB;ステップS2090)、出力データ設定処理(PORT_SET;ステップS2091)が含まれる。これらの処理については、比較的処理量が多いモジュールであったり、遊技機の仕様により再利用することができない処理であることから、あえて、INVS命令で呼び出すようにプログラムを構成している。
INVS命令によって実行される処理では、前述のように、内部からINVS命令又はINVD命令によって各種処理が実行され、プログラム容量の圧縮と、処理速度の高速化を図っている。
また、INVI命令によって実行される処理には、試験信号を出力する処理(KENIG_OUT;ステップS2067)、不正行為検出処理(ILG_ACT_JUDG;ステップS2084)、ベース表示器出力処理(EX_MONITOR_OUT;ステップS2087)が含まれる。これらの処理を定義するプログラムは、前述のように、第2領域に格納されており、第2領域に格納されたプログラムに基づく処理はINVS命令やINVD命令によって呼び出すことができないように構成している。これらの処理については、遊技機の仕様にかかわらず再利用しやすく、また、遊技の結果に影響を与えない処理であることから、あえて、INVI命令で呼び出すようにプログラムを構成している。
以上のように、一のタイマ割込み処理内でINVS命令によって呼び出す処理とINVI命令によって呼び出す処理とが混在するようにプログラムを構成している。このように構成することで、プログラム容量の圧縮を図りつつ、プログラムコードの構造を簡素化することができる。また、INVS命令による処理の呼び出しとINVI命令による処理の呼び出しをそれぞれ集約してプログラムを構成するようにしてもよく、例えば、INVI命令による処理の呼び出しをタイマ割込み処理を定義するプログラムの最初又は最後若しくは特定箇所に集約して配置するようにしてもよい。INVI命令では実行前の割り込み状態に復帰するため、INVI命令による処理の呼び出しをプログラム内の特定箇所に集約するように構成することによって、当該特定箇所に集約された処理が実行されている間は割り込み状態が維持されることとなり、割り込み状態を把握しやすくなることからデバッグなどが容易になる。また、INVI命令によって呼び出される処理は遊技の結果に関与しない処理なので、INVI命令による処理の呼び出しをプログラム内の特定箇所に集約するように構成することによって、当該特定箇所で呼び出された処理が遊技の結果に関与する処理か否かを容易に判別可能としている。
また、電源投入時処理(スタート処理)についても、タイマ割り込み処理と同様に、拡張した処理呼出命令によって種々の処理を実行するようにプログラムを構成している。図213及び図214の電源投入時処理で呼び出される処理として、INVS命令によって実行する処理には、設定値確認処理(SET_LV_CHK;ステップS2209)、電源投入時設定処理(INITIAL_SET;ステップS2239)が含まれる。また、INVI命令によって実行する処理には、電源投入時遊技領域外RAM確認処理(EX_RWMSUMCK;ステップS2211)、電源投入時遊技領域外RAM異常時処理(EX_INITIAL_RWM;ステップS2233;図217)が含まれている。
このように、タイマ割り込み処理だけでなく、電源投入時処理(スタート処理)においてもINVS命令、INVD命令、INVI命令によって各種処理が呼び出すようにプログラムを構成している。特に、タイマ割り込み処理などでINVS命令によって呼び出す汎用的な処理を電源投入時処理(スタート処理)でも使用することによって遊技制御プログラム全体の容量を圧縮することが可能となり、INV命令によって実行するよりも高速に処理することができるため、遊技機の起動を高速化することができる。また、遊技機起動時に各種初期化処理を確実に実行するために割り込みを禁止する場合であってもINVI命令によってプログラムコードに割り込みの制御を追加する必要がなくなるため、プログラムの容量を圧縮し、プログラムの可読性を向上させることができる。
INV命令、INVS命令、INVD命令では、いずれもBK命令によって呼び出し元の処理に復帰するが、INVI命令では、BKI命令によって呼び出し元の処理に復帰するとともに、処理実行前の割り込み状態に復帰させる。すなわち、INVI命令実行時の割込み状態が割り込み禁止状態であればそのまま割り込み禁止状態を維持し、INVI命令実行時の割込み状態が割り込み許可状態であれば、割り込みの禁止を解除するようにしている。なお、BKI命令は、タイマ割り込み処理から復帰する場合にも兼用可能な復帰命令であり、タイマ割込み処理実行前の割り込み許可/禁止状態を維持するようになっている。例えば、電源投入時遊技領域外RAM異常時処理(EX_INITIAL_RWM;ステップS2233)は、電源投入時処理でINVI命令によって呼び出されるため、図217に示したように、割り込み禁止設定された状態でステップS2280以降の処理を実行し、INV命令で使用領域外RWM初期化処理(EX_EXRWMCLR)を呼び出すことによって遊技制御以外の処理を実行するように構成している。さらに、ステップS2289の処理実行後のRET命令(BKI命令に相当)によって復帰することによって、電源投入時遊技領域外RAM異常時処理(EX_INITIAL_RWM)を呼び出す前の割り込み状態に復帰するように構成されている。
スタート処理に続いて実行される処理(図221等)においても、INVS命令やINVI命令によって処理が呼び出される。ステップS2310の処理とステップS2311の処理を繰り返す実行するメインループでは、INVS命令によって乱数更新処理(R_OTHE_K;ステップS2311)を繰り返し実行して次のタイマ割込み処理が開始されるまで待機する構成としている。また、停電処理(ステップS2312以降の処理)では、INVI命令によって電源OFF時処理(EX_POWER_DOWN)を実行し、INVS命令によってチェックサムの算出処理(S2317)を呼び出すように構成することで、INVI命令により第2領域に配置されている処理(電源OFF時処理)を呼び出し、INVS命令により停電処理における遊技領域外の処理で使用するワークRAMと遊技領域内の処理で使用するワークRAMのそれぞれのチェックサム(ワークRAMの検査値)を算出する処理(第1領域に配置)を実行可能としている。このように、停電処理では、第1領域に配置されたプログラムに基づく処理と第2領域に配置されたプログラムに基づく処理とを必要に応じて呼び出せるように構成しているので、遊技に関連する処理と遊技に関連しない処理とを組み合わせてプログラムを構成することが容易になることから、プログラムの配置の自由度が高くなり管理効率を向上させることができる。
また、遊技領域内のチェックサムを算出する処理と遊技領域外のチェックサムを算出する処理とをそれぞれ別々に設け、遊技領域内のチェックサムを算出する処理を第1領域に、遊技領域外のチェックサムを算出する処理を第2領域に配置するようにしてもよい。この場合には、INVS命令により第1領域に配置された遊技領域内のチェックサムを算出する処理を呼び出し、INVI命令により電源OFF時処理を呼び出した後に、INV命令により第2領域に配置されている遊技領域外のチェックサムを算出する処理を呼び出してもよい。このように構成することで、遊技領域外の領域に対する処理の独立性を高めることが可能となる。
また、図柄の変動表示(動的表示)を実行する際の変動パターンを選択する処理も遊技制御処理に含まれており、タイマ割込み処理内でINVS命令によって呼び出される。変動パターン選択処理(Hp_select)では、前述したビット転送命令を使用することによって変動パターン番号を特定する。図333は、変動パターン選択処理(Hp_select)のプログラムコードの一例を示す図である。なお、図333に示したプログラムコードによる処理は、図305に示したプログラムコードによる処理と同等の機能を実現し、一部機能に拡張された処理呼出命令を使用するようにしたものであり、図305に示したプログラムコードと同様に、図304に示した変動パターン選択処理のフローチャートに対応している。
図333を参照すると、変動パターンを選択する際に、まず、特別図柄(動的表示の結果の種類)や遊技状態などのパラメータに対応する変動パターンテーブルを特定する必要がある(ステップP8021)。ステップP8021の処理をさらに詳細に説明すると、まず、選択値として特別図柄の識別情報(動的表示の結果)をセットし、選択データアドレステーブルのアドレスを検索データアドレスとして(ステップP8021-1)、2バイトデータ検索処理(図315、LD_HLA_HL)をINVD命令によって実行するように構成している(ステップP8021-2)。2バイトデータ検索処理によって特別図柄の識別情報(動的表示の結果)に対応する選択データアドレステーブルが特定され、特定された選択データアドレステーブルを検索テーブルとし(ステップP8021-3)、選択値として状態フラグをセットする。その後、INVD命令によって2バイトデータ検索処理を実行することにより(ステップP8021-4)、変動パターン選択テーブルを特定することができる。
さらに、特定された変動パターン選択テーブルのアドレスに基づいてデータ転送用インデックスを作成するインデックス作成処理(ステップS8023;GEN_IDX)を実行することによってビット転送命令を使用するためのインデックスを作成する。このとき、インデックス作成処理はINVS命令によって実行するように構成している。最後に、ビット転送命令を使用し、特定された変動パターン選択テーブルから抽出された変動パターン選択用乱数に対応する変動パターン番号を取得する(ステップP8028)。このように、拡張された処理呼出命令(INVD命令、INVS命令)とビット転送命令を組み合わせてプログラムを構成することによって処理の高速化と容量の圧縮を図ることができる。
なお、拡張された処理呼出命令とビット転送命令を組み合わせて使用する処理は、変動パターンを選択する処理に限られず、第1領域に格納された任意の処理でよい。また、ビット転送命令の実行に必要なインデックス作成処理を処理アドレステーブルに定義してINVD命令によって呼び出すようにプログラムを構成することでデータ容量の圧縮と処理の高速化をあわせて実現することが可能となる。このように、ビット転送命令の実行に必要な処理をまとめることによって汎用的にビット転送命令を使用することが可能となる。
一方、第2領域に格納される処理は、処理呼出し時に割り込みが禁止することが好ましい。例えば、エラー発生時に遊技の進行を停止させたり、役物比率算出中に獲得球数が変化して正確な役物比率が算出できなくなることを防止したりするためである。このため、本実施形態では、INVI命令によって第2領域に格納される処理を呼び出すようにプログラムを構成することで、割り込み制御(処理実行時に割り込みを禁止し、処理実行後には処理実行前の割り込み状態に復帰させる制御)を簡素化している。また、INVI命令実行時には割り込み禁止/許可情報を含むPSWをスタック領域に記憶して保存し、呼び出した処理から復帰する際にスタックエリアに記憶していたPSWを復帰前の状態に戻すように構成されており、PSWを個別にスタック領域に退避/復帰する命令を使用する必要がなることからも制御の簡素化を図ることができる。このように構成することで、遊技(図柄の変動表示・動的表示)の結果に直接関与しない処理を特定の領域に集約して格納することでプログラム配置を管理しながら遊技制御の簡素化を図ることができる。
[19-7.拡張された処理呼出命令から呼び出されるプログラムの使用頻度]
遊技興趣の向上を図ることによって遊技制御の複雑化とともにプログラム容量の増大が懸念されるが、拡張された処理呼出命令によってプログラム容量を圧縮することが可能となる。特に、INVD命令は、INVS命令やINVI命令よりも語長が短く、INV命令と置き換えることによって最もプログラム容量の圧縮が期待できる。しかしながら、INVD命令によって呼び出し可能な処理の数は、処理アドレステーブルに定義可能な16個に制限されるため、本実施形態では、特に使用頻度の高い処理を定義している。そのため、本実施形態では、3種類の拡張された処理呼出命令のうち最も使用頻度が高くなるようにプログラムを構成している。例えば、本実施形態における遊技制御処理において、プログラムコードにおける拡張された処理呼出命令の使用頻度(処理呼出命令のライン数/プログラムの総ライン数)は、INVD命令が約8%、INVS命令が約4%、INVI命令が約0.3%としてプログラムを構成している。なお、拡張された処理呼出命令の使用頻度は、遊技機の機種などによっても相違し、上記数値に限定されないが、INVD命令、INVS命令、INVI命令の順で使用頻度が高くなるようにすることで、データ容量の圧縮と処理の高速化を図ることができる。
一方、プログラムコードにおける拡張された処理呼出命令の使用頻度(処理呼出命令のライン数/プログラムの総ライン数)と、プログラム実行時における拡張された処理呼出命令の実行頻度(実行回数)は異なる。例えば、周期的に実行されるタイマ割り込み処理などの呼出し回数の多い処理で使用された場合、プログラムコード内の使用頻度が少なくても周期的に繰り返し実行されるため、実際の実行頻度は高くなる。本実施形態のタイマ割り込み処理(図329)では、一周期内のINVD命令の実行頻度がINVS命令の実行頻度よりも高くなるように構成している。このように、INVS命令よりも語長の短いINVD命令の実行回数を多くすることで、プログラム容量の圧縮だけでなく、プログラムの処理を高速化することが可能となる。
前述のように、INVD命令によって呼び出し可能な処理は汎用性が高く、INVS命令によって呼び出される処理と比較して、比較的少ないバイト数(短いステップ数)のプログラムで構成されている。少ないバイト数のプログラムは、演算装置による実行時のオーバーヘッドが少なくなるため処理の高速化を図ることができるため、使用頻度の高いINVD命令によって呼び出すことで遊技制御全体を高速化することができる。
一方、INVS命令によって呼び出される処理は、プログラムの格納領域に制約があるがINVD命令によって呼び出し可能な処理と比較して処理数や容量などの制約が少ないため、機種に依存しながらも呼び出し頻度の高い処理としている。INVI命令は、第2領域に格納された処理を呼び出すため、INVD命令、INVS命令と比較して使用頻度が少なくなるようにプログラムを構成している。
[19-8.処理呼出命令のまとめ]
本実施形態における遊技機では、主制御基板1310の主制御MPU(CPU)1311がROM1313に記憶されたプログラムを実行することによって遊技の進行を制御する。プログラムには遊技機の制御に必要な各種機能を実現する処理が定義されており、処理呼出命令によって実行される。本実施形態の遊技機では、複数種類(4種類)の処理呼出命令が実装されている。
第1の処理呼出命令(第1特定処理実行命令)であるINVD命令は、他の処理呼出命令とは異なり、呼び出す処理が格納されたアドレスを直接示す値ではなく、1~16までの識別情報がオペランドとして設定される。INVD命令は、実行時にオペランドとして設定された識別情報に基づいて、処理アドレステーブルから選択した処理(第1特定処理)を呼び出す。
また、INVD命令で使用される処理アドレステーブルは、プログラム/データ領域と同じROM(記憶手段)に記憶された情報である一方、プログラム内でアドレステーブルとして使用されるものの、プログラムやデータが格納されたプログラム/データ領域とは異なる領域に格納される。具体的には、プログラム/データ領域(8000h~BFFFh)よりもアドレスが大きい領域(C080h~C0FFh)に格納されている。
第2の処理呼出命令(第2特定処理実行命令)であるINVS命令は、パラメータとして設定された識別情報に指定された処理(第2特定処理)を呼び出す命令である。また、INVS命令は、呼び出す処理を定義するプログラムが格納された領域によって語長が2又は3に変化する命令であり、具体的には、プログラムが格納された領域が8000h~8BFFh番地の場合には語長が2バイトであり、8C00h~93FFh番地の場合には語長が3バイトとなる。
第3の処理呼出命令(第3特定処理実行命令)であるINVI命令は、命令実行時に割り込み禁止/許可情報を含むPSWをスタックエリアに記憶して保存した後に、割り込み禁止状態に設定した上で、パラメータとして設定された識別情報に指定された処理(第3特定処理)を呼び出す命令である。
さらに、INVI命令では、他の処理呼出し命令とは異なり、呼び出した処理から復帰する際にタイマ割込み処理実行時と同じ復帰命令(BKI命令)を使用することによって、割込み禁止/許可状態をINVI命令実行前の状態に戻すことができる。具体的には、INVI命令実行時にスタックエリアにスタックした割込み禁止/許可情報(図326、図327(B)のPSW)をスタック領域に退避した後、PSWのIMFの値を0(割込み禁止)に設定することで割込み禁止状態とし、BKI命令実行時に退避したPSWを元に戻すことで、割込み禁止/許可状態をINVI命令実行前の状態に戻すことができる。
第4の処理呼出命令であるINV命令は、パラメータとして設定された識別情報に指定された処理を呼び出す命令である。INV命令は、INVS命令に対して語長が長い命令である。
本実施形態における遊技機の遊技制御プログラムは、少なくとも、第1から第3の処理呼出命令(INVD命令、INVS命令、INVI命令)が使用される。また、INV命令の語長は、INVD命令、INVS命令、INVI命令のいずれの語長よりも長くなっており、INV命令よりも、INVD命令、INVS命令(INVI命令)を優先して使用することによって、プログラム容量の圧縮を図るとともに処理の呼び出しを高速化したり、プログラムコードの簡素化を図ることで遊技機の開発効率を向上させたりすることができる。
第1の処理呼出命令であるINVD命令によって呼び出されるプログラム処理(モジュール)は、プログラム/データ領域(8000h~BFFFH)のうち、相対的先頭アドレスである先頭アドレス(8000h番値)側に配置している。INVD命令は機種に依存しにくい処理であり、プログラムの格納領域の先頭アドレスに近い領域に配置することによって、異なる機種でも共通の配置(アドレス)とすることが可能となる。これにより、これらの汎用的な処理を再利用することが容易になり、遊技機の開発効率を向上させることが可能となる。また、遊技機の開発初期に汎用処理の内容や配置(アドレス)が特定されることで、開発資料の作成を効率化したり、機種ごとの遊技制御処理の着手時期を早めたりすることができる。さらに、複数のチームで遊技機の開発を行う場合であっても各処理(プログラム)を共用することが容易になり、開発期間を短縮することができる。
また、第2の処理呼出命令であるINVS命令によって呼び出されるプログラム処理(モジュール)は、INVD命令によって呼び出されるプログラム処理とは異なり、プログラム/データ領域内の任意の位置に配置することができる。さらに、INVS命令では、前述したように、呼び出す処理を定義するプログラムが格納された領域によって語長が2又は3に変化するが、INV命令の語長(4)よりも短く高速に処理することができる。したがって、INVS命令では、INVD命令よりもプログラムを柔軟に配置することを可能としながら、INV命令よりも高速に呼び出すことが可能となり、処理の高速化と容量の圧縮を図ることができる。
第3の処理呼出命令であるINVI命令によって呼び出されるプログラム処理(モジュール)は、前述のように第2領域に配置された遊技の結果に関与しない処理を呼び出すための命令であり、異なる機種の遊技機においても流用可能とすることによって遊技機の新規開発時の開発効率を向上させることができる。そのため、INVI命令によって呼び出される処理を定義するプログラムを、プログラム/データ領域(8000h~BFFFh)のうち、相対的に最後尾アドレス(BFFFh番値)側に配置することによって他の機種に移植した場合であっても影響を最小限にしている。また、遊技機のハードウェア構成の変更などによっても互換性が維持されるようにINVD命令などの拡張された処理呼出命令ではなくINV命令によって処理を呼び出すようにプログラムを構成している。このように構成することによって、遊技機の仕様変更があった場合であってもプログラムの再利用を容易にすることができる。
これに対し、第1領域内(先頭アドレス側の領域)に格納される処理では、INV命令以外だけでなく、改良された処理呼び出し命令であるINVD命令、INVS命令、INVI命令を使用することが可能となっている。また、INVD命令及びINVS命令によって呼び出される処理は、第1領域にのみ配置するプログラム構成としている。このため、INVS命令によって呼び出される処理において、必要に応じて(任意の回数)、INVS命令やINVD命令による処理の呼び出しが可能となっており、処理の高速化及びプログラムの簡素化を一層図ることができる。
本実施形態の遊技制御プログラムにおける、第1の処理呼出命令であるINVD命令と第2の処理呼出命令であるINVS命令と第3の処理呼出命令であるINVI命令は、INVD命令、INVS命令、INVI命令の順で使用頻度(使用回数;実行回数)が高くなるようにプログラムを構成している。これらの処理呼出命令のうちINVD命令が最も語長の短い命令であるため、このように構成することによって、プログラム容量を圧縮するとともに、プログラムの処理を高速化することが可能となる。
以上より、本実施形態によれば、定義された処理を呼び出す既存の命令を改良することによって、遊技制御処理全体を高速化するとともにプログラム容量を削減することができる。また、INVI命令のような割り込み制御と処理の呼び出し命令を統合した命令を実装することによってプログラムを簡素化することが可能となる。
[20.主制御基板の電子部品の配置]
以上、遊技停止時処理におけるSPI通信の手順について説明した。ところで、本実施形態の遊技機では、主制御基板1310内の信号伝送にSPI通信などのシリアル通信を採用することによって、データバスの配線を削減することを可能としている。すなわち、複数のパラレルインターフェイス回路に接続される多数本のデータバスをなくして、制御線も含めて少ない信号線で通信を行うことで回路パターンを単純化することができる。これにより、主制御基板1310において、主制御MPU1311をはじめとして外部情報出力を行うためのコネクタやシリアル通信を行うためのシリアル・パラレル変換回路(第1電子部品)などの各種電子部品の配置を容易にすることができる。以下、図334を参照しながら主制御基板1310上の電子部品の配置例について説明する。
図334は、本実施形態の遊技機の主制御基板1310の実装図の一例を示す図である。なお、図334に示す実装図は図93、図259等に示した回路図に対応しており、各電子部品の符号・説明等は前述したとおりである。
本実施形態の主制御基板1310では、基板の中央付近に主制御MPU1311が配置される。主制御基板1310には、主制御MPU1311を中心とした第1領域6100と当該第1領域以外(第1領域の外側)の第2領域6200とがある。主制御MPU1311の配置は主制御基板1310の端部から所定の間隔を確保し、第1領域6100と第2領域6200を確保できればよい。
第1領域6100には、ロジック部品(ロジックIC、集積回路)やディスクリート部品などの主制御MPU1311以外の電子部品が配置されない無実装領域6101と、主制御MPU1311に近接して配置が必要なディスクリート部品が配置される部品実装領域6102がある。ディスクリート部品は、基本的に一の回路機能を有する電子部品である。主制御MPU1311の周囲に無実装領域6101を設けることによって主制御MPU1311の動作による発熱が他の電子部品に影響を与えたり、他の電子部品の発熱によって主制御MPU1311の動作に影響を与えたりすることを防止することができる。
第2領域6200には、各種ロジック部品(ロジックIC、集積回路)が配置される。主制御MPU1311の近くに配置する必要のある部品(例えば、ノイズの影響を受けやすい部品)が第2領域6200の主制御MPU1311に近接した領域に配置され、それ以外のロジック部品はさらにその外側の領域に配置される。以下、主制御基板1310に搭載された電子部品の配置について代表的なものについて説明する。
リセット回路1335は、第2領域6200のうち主制御MPU1311に近い領域(第1領域6100の部品実装領域6102に近接した領域)に配置される。具体的には、主制御MPU1311にできるだけ近い位置に配置するとともに、主制御MPU1311との間に配置される電子部品を少なくして他の配線と交差しないように配置する。これにより、クロストークによるノイズの発生などの要因で誤った信号が入力されないように構成することができ、リセット回路1335に誤った信号が入力されてしまうことで遊技が中断され、遊技の進行に著しく支障をきたしてしまうことを防止することができる。
クロック発振器1336(第2電子部品)は、第1領域6100の部品実装領域6102に配置される。主制御MPU1311とクロック発振器1336との間の配線距離が長かったり、他の配線と交差したりしているとノイズが発生し易くなり、クロック発振器1336から出力されるクロック信号の周波数にばらつきが生じ、遊技の進行に支障が出るおそれがある。一方、主制御MPU1311とクロック発振器1336との間の距離が近すぎると主制御MPU1311などの発熱によりクロック発振器1336が正常に動作せず、周波数にばらつきが生じるおそれがある。そこで、本実施形態の主制御基板1310では、主制御MPU1311の周囲の無実装領域6101を設けることで主制御MPU1311の発熱による影響を抑制する一方、第1領域6100の部品実装領域6102にクロック発振器1336を配置することで主制御MPU1311とクロック発振器1336との間が離れることを抑制し、ノイズの発生を抑制している。
パラレル・シリアル変換回路1341には、前述のように、遊技球検出スイッチ(始動入賞口、大入賞口カウントスイッチ、普通入賞口、特定領域スイッチ、普通図柄ゲートスイッチ、遊技板排出スイッチ)やフォトセンサなどの信号が入力されており、主に遊技領域5aを流下する遊技球を検出する。これらの入力信号を出力するスイッチやセンサは、遊技領域内に分散して配置されているため、複数のパラレル・シリアル変換回路1341が設けられている(本実施形態では、パラレル・シリアル変換回路1341a~1341c)。また、これらの入力信号は、一旦バッファに入力され、パラレル・シリアル変換回路1341に入力される。パラレル・シリアル変換回路1341は、第2領域6200に配置されるが、始動入賞口や大入賞口への入賞検知などの遊技価値を付与するための信号が入力されるため、ノイズなどの影響を極力受けにくいように配置される。
シリアル・パラレル変換回路1342及びシリアル・パラレル変換回路1343は、前述のように、LED(機能表示ユニット1400、ベース表示器1317)を点灯するための信号を出力するものである。機能表示ユニット1400やベース表示器1317の表示は遊技の結果に直接影響を与えるものではないため、主制御MPU1311から比較的離れた位置でもよく、配置の自由度は大きくなる。例えば、シリアル・パラレル変換回路1343は主制御基板1310の端部側に配置されている。また、シリアル・パラレル変換回路1343の後段にはドライブ回路1344が設けられており、ドライブ回路1344が一旦信号を受けてからLED(機能表示ユニット1400、ベース表示器1317)に出力する。
ベース表示器1317は、第2領域6200の外側領域(主制御基板1310の端部側)、すなわち、主制御MPU1311から相対的に離れた位置に配置される。ベース表示器1317にはベース値が表示されるが、ノイズなどの影響により誤ったベース値が表示されたり、ベース値が表示されなかったりしたとしても、ベース値の表示自体は遊技の結果に影響を与えるものではない。また、外部端子板784から遊技場に設置されたホールコンピュータにベース値の情報を出力したり、液晶表示装置にベース値を表示することも可能であり、代替手段も確保可能である。そこで、誤作動を起こした場合に遊技に影響を与えかねない他のロジック部品(第1ロジック部品)を優先して主制御MPU1311の近傍に配置するために、ベース表示器1317を主制御MPU1311から離れた位置に配置する。また、ベース表示器1317に信号を出力するような遊技に影響を与えにくいロジック部品(シリアル・パラレル変換回路1342及びシリアル・パラレル変換回路1343、第2ロジック部品)は、主制御MPU1311から離れた位置に配置し、ベース表示器1317の近傍に配置すればよい。
シリアル・パラレル変換回路1345は、前述のように、チャネルAの出力ポート(PA0~PA7)に外部端子板784が接続され、チャネルBの出力ポート(PB0~PB7)に各種ソレノイドが接続されている。各種ソレノイドには、大入賞口ソレノイドなどが含まれており、遊技者に付与する遊技価値に影響するため、シリアル・パラレル変換回路1345は、第2領域6200のうち第1領域6100に近接した領域に配置される。これにより、主制御MPU1311とシリアル・パラレル変換回路とを接続する信号線を短くすることができる。さらに、主制御基板1310からのソレノイド駆動信号がシリアル通信(SPI通信)に送受信されることでデータ線の数を減らすことができるため、電子部品の配置の際にデータ線の引き回しを容易にすることが可能となり、ノイズなどの影響によって誤作動を生じる可能性を低減することができる。
なお、ソレノイド以外のモータなどを制御する信号を出力するシリアル・パラレル変換回路は、出力信号をバッファ、トランジスタ等を経由することなく直接出力されるため、主制御MPU1311及び出力先のコネクタ(例えば、コネクタ13103)の近辺に配置する必要がある。
シリアル・パラレル変換回路1346は、前述のように、チャネルBの出力ポートに検査用端子1348が接続されており、検査用端子1348から出力する信号(例えば、特別電動役物開放信号、普通電動役物開放信号など)が出力される。シリアル・パラレル変換回路1346は、検査用部品実装領域(検査用回路配置エリア)6300に配置されており、シリアル・パラレル変換回路1346の他に、インターフェイス回路1347と検査用端子1348が設けられる。検査用部品実装領域6300に設けられる電子部品は、検査機関による検査を受ける遊技機にのみ搭載され、一般に市販される遊技機には搭載されない。しかしながら、検査用部品実装領域6300には部品が搭載されないがプリントパターン(例えば、インターフェース回路1347に繋がるデータバス)が設けられているため、ノイズがデータバスに誘起し誤動作を引き起こす可能性があることから、遊技に影響を与える他の電子部品(第1ロジック部品)からは離れた位置に配置するようにしている。例えば、大入賞口を開閉するためのソレノイドを制御するための信号を出力するシリアル・パラレル変換回路1345よりもLED表示を行うシリアル・パラレル変換回路1342及びシリアル・パラレル変換回路1343のほうが検査用部品実装領域6300(シリアル・パラレル変換回路1346)に近い位置に配置される。
図334に示した主制御基板1310では、設定キー971は、主制御基板1310に設けられており、主制御基板1310の端部(第2領域の外側)に配置されている。設定キー971は遊技状の従業員などによって直接操作されるため、操作時の振動などによる影響を避けるため、主制御MPU1311や遊技の主要な制御を行うシリアル・パラレル変換回路などの各種電子部品(第1ロジック部品)から離れた位置に配置される。また、設定キー971の操作により入力された信号に基づく制御は、遊技機の設定変更などが含まれるため、遊技の進行に直接影響を与える可能性がある。そこで、設定キー971と主制御MPU1311との間の配線が少なくなるように配線し、ノイズなどの影響を受けにくいようにしている。
以上のように、本実施形態における遊技機の主制御基板1310では、各電子部品の機能や特性に応じて領域ごとに配置を特定することによって、回路設計を行うための基本的な指針を明確にすることができる。これにより、新たな遊技機の設計や開発者の異動等による体制の変更などによっても開発効率を低下させることなく、品質を維持・向上させることが可能となる。
[21.シリアル通信(SPI通信)の制御]
ここで、本実施形態の遊技機における主制御基板1310から信号を出力するシリアル通信機能(SPI通信)についてさらに説明する。シリアル通信機能については、図257~図263にて説明したとおりであるが、ここでは、SPI通信の手順についてプログラムコードを参照しながらさら詳細に説明する。
前述したように、本実施形態における遊技機では、主制御基板1310内の信号伝送にシリアル通信を使用している。シリアル通信の代表的なものには、I2C通信やSPI通信がある。SPI通信は、I2C通信よりも信号線の数は増加するが通信速度が高速になるといった利点がある。本実施形態における遊技機では、各種スイッチからの信号を主制御MPU1311が受信する場合や各種LEDやソレノイドなどの制御信号を主制御MPU1311から送信する場合にSPI通信を使用する。
なお、すべての信号についてSPI通信によって入出力を行うのではなく、例えば、電源投入時の初期設定処理で遊技機に対する不正行為を検出するための信号など、一部の信号についてはパラレル通信によって主制御MPU1311に入力される。例えば、「設定キースイッチ」、「主RWM消去/設定変更信号」及び「停電予告信号」などの信号は主制御MPU1311の汎用入力端子からパラレル通信によって直接入力される。「設定キースイッチ」、「主RWM消去/設定変更信号」及び「停電予告信号」は、遊技機の電源投入時の初期設定処理(例えば、図21及び図22の初期化処理等)において確認が必要な信号であり、SPI回路を介して入力信号を取り込むと、その取り込みと判定のために時間を要することからパラレル通信で取り込むこととしている。このように、パラレル通信はシリアル通信よりも高速に通信できるため、シリアル通信のみで各種信号を送受信する場合よりも初期設定処理を高速化することが可能となり、遊技処理が開始されるまでの時間を短縮することができる。
また、一部の信号の入出力ではパラレル通信によって伝送し、他の信号をシリアル通信(SPI通信)で伝送することにより、不正行為者が遊技制御を行うための信号を取得しようとする際に主制御基板1310と入出力基板1351とを含む複数箇所から信号を取得する必要があるため、不正に対する抑止力を高めることができる。
SPI通信は、SPI通信バッファレジスタに格納された情報に基づいて信号を出力する。例えば、タイマ割り込み処理における遊技停止時処理でソレノイドに対して停止信号を出力する場合、表示LED出力処理や設定表示処理においてLEDカソードポートやLEDコモンポートに信号を出力する場合など、本実施形態における遊技機では、主制御MPU1311からSPI通信によって送信する信号は、主にLEDなどの発光体やモータ・ソレノイドなどの駆動体を制御する信号となっている。
また、SPI通信で各種センサから入力された信号を主制御MPU1311などの演算装置に入力する。例えば、始動入賞口に遊技球が入賞した場合には始動口スイッチによって入賞が検知され、主制御MPU1311に信号が入力される。以下、主制御MPU1311に入出力される信号をSPI通信によって送受信するための構成及び手順について説明する。
[21-1.シリアル通信(SPI通信)の制御構成]
まず、SPI通信を実現するための構成について説明する。基本的な構成については、図257~図263にて説明したとおりであるが、さらに、図335から図337を参照しながら各構成及び制御に必要なパラメータの設定について説明し、合わせて図338を参照しながらSPI通信開始時における各種パラメータの初期化など起動時の手順についても補足する。
図335は、本実施形態の遊技機の主制御MPU1311にSPI通信を行うための構成のブロック図である。本実施形態の遊技機では、主制御MPU1311が通信を制御するマスタ、主制御基板1310に配置された各種ICがスレーブを構成する。スレーブは、具体的には、シリアル・パラレル変換回路(1342,1343,1346,1349)及びパラレル・シリアル変換回路1341となっている。なお、スレーブの一部は主制御基板1310ではなく、主制御基板1310に接続された中継基板に配置するようにしてもよい。
本実施形態では、マスタ(主制御MPU1311)からSPI送受信(CHA)及びSPI送信(CHB)による2種類の通信が可能となっている。SPI送受信(CHA)による通信は、スレーブ1から4に対して行われる。SPI送受信(CHA)による通信は、基本的に通常の遊技制御を行うための通信となっており、各種スイッチやセンサからの信号の入力、大入賞口を開閉するソレノイドの制御や各種LEDの発光制御を行うための信号の出力が行われる。一方、SPI送信(CHB)による通信は、スレーブ5に対して行われ、主に試験信号を出力するための通信に使用される。
SPI送受信(CHA)による通信では、すべてのスレーブ(1~4)に対して同時に通信を開始することが可能となっており、このとき、各スレーブを所定の順序で通信を開始する。この場合、すべてのスレーブのイネーブル設定(SPENBAn;nは個別のスレーブに対応)に通信開始(“1”)が設定される。通信(送信)バッファにデータが格納されていない場合には、対応するスレーブの通信を行うことなく次のスレーブの通信を開始する。
また、スレーブを個別に指定して通信を開始することも可能であり、例えば、スレーブ1及びスレーブ3に接続されたLEDを点灯させる場合には、スレーブ1とスレーブ3に対してイネーブル設定を通信開始(“1”)とする一方、スレーブ2とスレーブ4のイネーブル設定を(“0”)のままに固定することで、スレーブ1の通信完了後、スレーブ3の通信が開始される。
前述のように、各スレーブは信号の入力及び出力が可能となっており、出力信号の出力時に入力信号を取り込むようになっている。また、各スレーブを出力専用又は入力専用として機能を限定(特定)して制御するようにしてもよく、本実施形態のSPI送受信(CHA)における通信では、スレーブ1から3を出力専用、スレーブ4を入力専用としている。このため、入力専用のスレーブでは、ダミーデータを送信しながら入力信号を取り込むように構成されている。スレーブから受信した信号をマスター(主制御MPU1311)が取り込む手順については後述する。
続いて、本実施形態のSPI通信についてさらに説明する。前述のように、本実施形態の遊技機の主制御MPU1311におけるSPI通信では、SPI送受信(CHA)及びSPI送信(CHB)の2チャンネルがある。SPI送受信(CHA)のチャンネル数は4本となっている。また、チャンネル別に通信速度を設定可能となっており、16バイトの送受信バッファがチャンネル別に設けられている。SPI通信の動作モードは4種類あり、各チャンネル共通である。ビット方向はLSBファースト又はMSBファーストに設定可能であり、チャンネル別に設定可能となっている。LSBファーストは最下位ビットから通信を開始し、LSBファーストは最上位ビットから通信を開始する。また、SPI送信(CHB)は送信専用となっており、チャンネル数は1本である。その他の設定はSPI送受信(CHA)と同様であるが、受信関連の設定はすべて未使用(“0”固定)となる。以下、動作モードや各パラメータを設定するためのレジスタについて図336及び図337を参照しながら説明する。
まず、SPI通信の動作モードについて説明する。図336は、本実施形態の遊技機におけるSPI通信の動作モードを説明する図である。SPI通信には、4種類の動作モードが定義されており、図336に示すように、クロックの初期状態が「Low」か「High」か、データ変化のタイミングがクロックの「立下り時」か「立上り時」か、サンプリングタイミングが「立下り時」か「立上り時」かによって特定される。クロックの初期状態は通信が開始されていない状態であり、データ変化のタイミングからサンプリングのタイミングまでの間に1ビット分のデータが送信される。動作モードは、スレーブ(シリアル・パラレル変換回路)の仕様に合わせて設定され、マスタ(主制御MPU1311)は、設定された動作モードに合わせて信号を出力する。
次に、本実施形態におけるSPI通信を制御するためのパラメータを設定するためのレジスタの構成について説明する。ここでは、SPI送受信(CHA)の場合について説明するが、SPI送信(CHB)の場合も同様である。図337は、本実施形態の遊技機におけるSPI通信の設定を行うための各種レジスタの構成を説明する図であり、(A)はコントロールレジスタ1(SPICNA0)、(B)はコントロールレジスタ2(SPICNA1)、(C)はプリスケーラーレジスタ(SPICPSA0,SPICPSA1,SPICPSA2,SPICPSA3)である。
(A)に示すコントロールレジスタ1は8ビットで構成され、ビットシフト設定(SPBSFAn)、動作モード(SPMODA)及び初期化設定(SPRSTA)が含まれる。ビットシフト設定(SPBSFAn)、動作モード(SPMODA)については、電源投入時(初期化時)に設定され、初期化設定(SPRSTA)は、電源投入時、又は、各スレーブにおいて通信が正常にできないと判定した場合に、全スレーブに対して初期化を実行する。なお、初期化を実行した際には、ビットシフト設定(SPBSFAn)、動作モード(SPMODA)の再設定を行なっている。これにより、SPI通信回路に異常が発生しても、早期に異常から回復することが可能となり、遊技の進行に支障をきたすことを抑制することができる。
ビットシフト設定(SPBSFAn)では、最上位ビットからデータを送信するか(“0”:MSBファースト)、最下位ビットからデータを送信するか(“1”:LSBファースト)を指定する。ビットシフト設定(SPBSFAn)はスレーブごとに指定可能であり、本実施形態ではスレーブ数に相当する4ビット分が割り当てられており、個々に設定可能となっている(ビット6~3)。具体的には、ビット6がスレーブ4、ビット5がスレーブ3、ビット4がスレーブ2、ビット3がスレーブ1に対応する。
動作モード(SPMODA)は、前述した4種類の動作モードを指定するものであり、各スレーブに共通で設定される。動作モードは4種類あるため2ビット分の領域が割り当てられており、“00”がモード1、“01”がモード2、“10”がモード2、“11”がモード4となっている(ビット2,1)。
初期化設定(SPRSTA)は、読み出し時と書き込み時とで機能が異なっており、各スレーブに共通で設定される。初期化設定は、読み出し時では、設定値が“0”の場合には初期化終了を示し、“1”の場合には初期化中であることを示す。一方、初期化設定に“1”を書き込んだ場合にはSPI通信を初期化するように制御し、“0”を書き込んだ場合には特に何もせずに制御を継続する。例えば、通信が正常にできないと判定された場合に初期化設定に“1”を書き込み、初期化を実行する。また、通信中であるか否かなど通信状態にかかわらず初期化設定に“1”を書き込むことによって通信回路を初期化することが可能となっている。通信回路が初期化されると、各種パラメータを再設定する必要がある。
初期化設定(SPRSTA)は、読み出し時には、初期化中か否かを判定することが可能であり、当該ビットの値に基づいて初期化中(“1”)か否かを確認してから、初期化を実行又は通信を開始するようにしてもよい。初期化設定(SPRSTA)を初期化(ビット0に(“1”)をセット)した場合の初期化時間は、一の命令を実行するよりも短い期間で実行可能としており、初期化に設定した後に次の命令を実行する際には、初期化が完了しているようにしている。このため、初期化に設定した後に、初期化設定(SPRSTA)を読み出しても依然として初期化中(“1”)の場合には、SPI通信回路に何らかの異常が発生している可能性が考えられるために、その際は、遊技停止や異常報知、電断処理に強制的に移行することで、主制御MPU1311にリセット(ウォッチドッグタイマによるリセット)するようにしてもよい。これにより、SPI通信回路が異常となっても、早急に復旧することが可能となる。
なお、各スレーブは、電源投入時には初期化済みの状態で起動されるため、初期化する必要はない。一方、ウォッチドッグタイマリセット、イリーガルオペコードリセット、領域外アクセスリセットなどによるリセット時にはリセット前の状態を維持するようにしている。このため、システムリセット、ウォッチドッグタイマリセット、イリーガルオペコードリセット、領域外アクセスリセットなどの何れのリセット要因でプログラムの起動を開始したとしても、SPI回路に対して初期化設定をすることなく、初期化設定以外の初期設定を行なうようにしている。なお、ウォッチドッグタイマリセット、イリーガルオペコードリセット、領域外アクセスリセットが発生する場合は、遊技の処理として正常に実行されていない場合が考えられ、これによりSPI回路の設定が変更されているおそれがある。このため、リセットからのプログラムを起動した際に、ウォッチドッグタイマリセット、イリーガルオペコードリセット、領域外アクセスリセットの何れかのリセットが発生したのかを判定した上で、ウォッチドッグタイマリセット、イリーガルオペコードリセット、領域外アクセスリセットの何れかによりリセットされたと判定された場合には、SPI回路の初期化設定(SPRSTAに“1”を書き込む)を行なうようにすることで、リセット後の遊技制御の安定性を向上させ、遊技の進行に支障をきたすことを可能な限り抑制することができる。
(B)に示すコントロールレジスタ2(SPICNA1)は、8ビットで構成され、通信開始時に毎回設定される。コントロールレジスタ2には、各スレーブの受信ステータス(SPRVSAn)及びイネーブル(SPENBAn)が含まれる。受信ステータスはスレーブごとに設定され(ビット7~4)、受信データがある場合には“1”、ない場合には“0”が設定される。
イネーブルはスレーブごとに設定され、読み出し時と書き込み時とで機能が異なる(ビット3~0)。読み出し時では、通信中であれば“1”、通信が終了していれば“0”が設定されている。一方、イネーブルに“1”を書き込むと対応するスレーブの通信が可能となり、通信が開始される。通信開始時にイネーブルの値を取得することにより通信状態を判定することが可能となり、値が“0”(通信終了)の場合には通信を開始するために“1”をセットし、値が“1”(通信中)の場合には通信が終了するまで待機するといった制御が可能となる。
(C)に示すプリスケーラーレジスタは、16ビットで構成され、スレーブごとに設けられる。プリスケーラーレジスタは、5ビットの送信バッファステータス(ビット15~11)及び10ビットのボーレート設定(ビット9~0)で構成される(なお、ビット10は未使用ビットとなっている)。
送信バッファステータスには送信データのデータ数が格納され、“00h”の場合には送信データ無し、“01h”~“10h”の場合には送信バッファ内の送信データが1~16バイトであることを示す。送信バッファステータスは、送信バッファの残りデータ数を確認するために使用することも可能である。送信バッファステータスの値が“10h”であれば送信バッファにデータがすべて格納されているため(満杯状態)、データの書き込みは無視される。なお、通信中であるか否かについてはコントロールレジスタ2の対応するスレーブのイネーブルの値を参照すれば判断することができる。
ボーレート設定は、通信時の通信速度に対応し、電源投入時に1回設定される。設定値は“000h”から“3FFh”までの値を設定可能となっており、本実施形態では、実際のボーレートはシステムクロック(20Mhz)/(設定値×4)で算出できる。なお、設定値が“000h”の場合には“001h”として算出する。なお、SPI通信の初期化時(コントロールレジスタ1の初期化設定に“1”が設定された場合)には再設定する必要がある。
[21-2.SPI通信開始時の制御]
続いて、遊技機が起動(初期化)されてからSPI通信を開始可能とするまでの制御について説明する。図338は、本実施形態の遊技機が初期化されてからSPI通信を開始可能とするまでの状態を示すタイムチャートである。
図338では、時刻aにおいて遊技機の電源投入などによりリセット信号が入力され、遊技機が起動(初期化)される。遊技機が起動(初期化)されると、初期設定処理などのユーザープログラムが実行(起動)される前に、不正な機器が取り付けられていたり、不正な改造が行われていたりしないかなどを検査するセキュリティチェックを実行する(期間A)。
セキュリティチェックが終了すると、ユーザープログラムである初期設定処理が主制御MPU1311によって実行される(時刻b)。初期設定処理では、遊技機の機種固有の処理を含み、遊技を開始可能とするために必要な処理を実行する(期間B)。
初期設定処理には、SPI通信において設定される各種パラメータの初期化などが含まれる。具体的には、図337(A)に示したコントロールレジスタ1(SPICNA0,SPICNB0)を設定する(時刻c)。コントロールレジスタ1では、前述したように、各スレーブのビットシフト設定及び各スレーブ共通の動作モードの設定を行う。
動作モードの設定では、設定された動作モードに合わせてクロック初期状態を設定する。図338に示す例では、電源投入時にはクロック端子の信号レベルが“1”(High)に設定されているので、モード1及びモード2が指定された場合には、クロック端子の信号レベルを“0”(Low)に設定する。各モードのクロック端子の信号変化については図338に示すとおりである。ビットシフト設定についてはスレーブの仕様等にあわせて適宜設定する。遊技機の起動時にはSPI回路が自動的に初期化されるために、初期設定処理によるモード設定時にSPI回路の初期化設定を実行する(SPRSTAに“1”を書き込む)必要はない。これにより、ユーザープログラムで初期化する処理を搭載する必要がなく、プログラム容量の削減や初期化時の負荷を軽減することができる。
その後、初期化設定処理が終了すると(時刻d)、遊技処理が開始される(期間C)。遊技処理の開始は、初期化処理(図21等)におけるメインループ処理(図22のステップS36~S40)の開始に対応し、タイマ割込み処理の実行が可能となる。タイマ割込み処理が実行されると(時刻e)、スイッチ入力処理等のSPI通信を行う処理が実行される(時刻f)。
なお、主制御MPU1311のリセット端子からリセット信号が入力されない場合のリセット(ユーザーリセット、ウォッチドッグタイマリセット、イリーガルオペコードリセット、領域外アクセスリセット「以下に、特に断りがない場合には、これらのリセットを「ユーザーリセット」と称する)のときにはリセット解除後から直ちにプログラムの起動を開始するようにしており、システムリセットやユーザーリセットの何れのリセットであっても、SPIの通信に関する設定は同一の処理により行なっている。これにより、システムリセットかユーザーリセットかを区別することなく同一のSPIの通信に関する設定を行なうことで、プログラム容量の削減や初期化時の負荷を軽減することができる。
また、リセット解除から動作モードが設定されるまでの期間(時刻a~cまでの期間)は、システムリセットの場合にはユーザーリセット時よりも、長くなるようにしている。電源投入による再起動はセキュリティ上の問題が発生する可能性が高くなっているため、電源投入後の再起動による各種の主制御MPU1311の機能チェックを確実に完了できるようにしている。
[21-3.SPI通信における出力信号送信時の制御]
SPI通信は、タイマ割り込み処理や初期化処理から呼び出される各種処理で行われる。例えば、タイマ割り込み処理では、各種スイッチ・センサからSPI通信によって入力された信号を処理するスイッチ入力処理や各種LEDの点灯制御を行うための信号をSPI通信によって出力する表示LED出力処理、外部出力用の信号を外部出力端子にSPI通信によって出力する遊技停止時処理等が含まれている。ここでは、遊技停止時処理においてSPI通信によって信号を出力する手順を説明する。本実施形態の遊技機では、前述したINVD命令等の処理呼出命令を使用しながらSPI通信を実行するための処理の簡略化を図っている。
SPI通信によって信号を送信する手順の概略は、送信するデータを所定のSPI通信バッファレジスタにセットし、前述したINVD命令によって呼び出されるSPI2バイト出力処理(SPI_TX__WA)を実行する。ここでは、遊技停止時処理(図330)のステップP124のSPI通信処理を具体例とし、遊技停止時処理のプログラムコード(図331)及びSPI2バイト出力処理(SPI_TX__WA)のプログラムコード(図324)を参照しながら手順を説明する。
図331のプログラムコードに示すように、遊技停止時処理が開始されると、主制御MPU1311は、遊技停止コマンドを送信バッファに格納し、外部出力情報を出力するための外部出力処理(GAIB_OUT)を実行され(ステップP123)、Aレジスタには出力される外部出力情報が設定されている。
続いて、主制御MPU1311は、WレジスタにAレジスタに格納された値をロード(格納)(“LD W,A”)することでAレジスタに設定された外部出力情報をWレジスタに設定する。そして、Aレジスタの内容を“0”に設定(“XOR A,A”)することで遊技停止時に出力するソレノイド信号をOFFに設定する。
そして、EレジスタにSPI通信Bバッファレジスタ(_SPIBFB0)のアドレス値を設定し、INVD命令により呼び出されるSPI2バイト出力処理(SPI_TX__WA)とSPI2バイト出力処理(SPI_TX__WA)から呼び出される出力ポートデータ設定処理(PORT_DAT_SET)により、Eレジスタが示すSPI通信Bバッファレジスタ(_SPIBFB0)に、WAレジスタに設定された外部出力情報と各ソレノイド信号がセットされ、SPI送信(CHB)により出力される。SPI通信Bバッファレジスタ(_SPIBFB0)の内容については、図339を参照しながら説明する。
SPI通信B0ポートは、アドレスDAのパラレル出力ポートに対応し、シリアル・パラレル変換回路1345を介して外部端子板784及び各種ソレノイドに接続される(図257)。図339は、本実施形態におけるSPI通信Bバッファレジスタの構成を説明する図である。SPI通信Bバッファレジスタは16ビットであり、外部情報出力用のポート(PB0~PB7)とソレノイドにデータ(駆動信号)を出力するためのポート(PA0~PA7)が各8ビットで構成される。
外部情報出力用のポートから出力される信号には、セキュリティ信号や球払出信号などが含まれる。外部端子板784から出力された各種信号はホールコンピュータによって検出される。ホールコンピュータは各遊技機から受信した信号を蓄積し、遊技機が払出した遊技媒体数や遊技情報等を把握することにより遊技者の遊技を監視する。
ソレノイドに駆動信号を出力する各ポートについてさらに説明すると、図339に示すように、出力ポートPA1がソレノイド1、出力ポートPA2がソレノイド2、出力ポートPA3がソレノイド3に対応している。本実施形態ではその他のポートは使用されておらず、機種に応じて出力ポートの数が増減する。ソレノイドには、大入賞口を開閉するソレノイドなどが含まれ、本実施形態では、図16に示したように、第一大入賞口2005及び第二大入賞口2006を開閉するソレノイドが含まれ、第二大入賞口2006は遊技球が流通する一つの流路に配置された第二上大入賞口2006aと第二下大入賞口2006bとの二つの大入賞口により構成されているため、3個のポートがソレノイドの駆動信号の出力先となっている。
また、各ソレノイドには一の出力ポートが対応(接続)しているが、複数のビット出力(例えば、2ビット出力)で構成してもよい。例えば、出力ポートPA0,PA1が第一大入賞口2005を開閉するソレノイド、出力ポートPA2,PA3が第二上大入賞口2006aを開閉するソレノイド、出力ポートPA4,PA5が第二上大入賞口2006bを開閉するソレノイドに対応(接続)するように構成してもよい。このように、複数の出力ポート(出力端子)を束ねて一のソレノイドに接続する駆動電流を出力することによって、駆動電流が不足することを防止し、ソレノイドを確実に駆動させることができる。一方、一の出力ポート(出力端子)から駆動信号を出力する場合には、主制御基板1310又は中継基板に配置された増幅回路によって駆動信号を増幅させてもよい。
図331の遊技停止時処理のプログラムコードの説明に戻ると、EレジスタにSPI通信Bバッファレジスタが設定されることでSPI通信による出力先が特定されると、主制御MPU1311は、SPI2バイト出力処理(SPI_TX__WA)をINVD命令によって呼び出してSPI通信を開始する。SPI2バイト出力処理(SPI_TX__WA)は、遊技停止時処理(Play_Stop)の他に、設定表示処理(SET_DISPLAY)、出力データ設定処理(PORT_SET)、LED_DISPLAY(表示LED出力処理)の各処理において呼び出され、シリアル通信(SPI通信)の実行時に呼び出される処理である。
続いて、SPI2バイト出力処理(SPI_TX__WA)の詳細について図324を参照しながら説明する。SPI2バイト出力処理が開始されると、主制御MPU1311は、まず、Eレジスタに設定されているSPI通信BバッファにWレジスタの内容を出力する(“OUT (E),W”)。Wレジスタには、前述のように、遊技停止時処理の外部出力処理(ステップP123)で作成されたポート出力値が格納されている。さらに、Aレジスタの内容をWレジスタにロードし(“LD W,A”)、SPI通信BバッファにWレジスタの内容を出力する(“OUT (E),W”)。以上の処理によって、外部情報出力用のデータをセットした後、ソレノイド用のデータ(駆動信号)をセットすることができる。
さらに、主制御MPU1311は、SPI通信を行うための定義情報を設定する(“LDT HL,LDT HL,SPI_COMTX_B-_OFS_TP”)。SPI_COMTX_BはSPI通信による出力を行う際の設定データが定義されたテーブル(SPI共通出力時設定データ)であり、_OFS_TPは各種テーブルが定義された領域の初期値アドレスである。以下、図340を参照しながらSPI共通出力時設定データについて説明する。
図340は、本実施形態のSPI共通出力時設定データ(SPI_COMTX_B)の一例を示す図である。SPI共通出力時設定データ(SPI_COMTX_B)には、データ設定数が最初に定義され、続いて、SPI送受信(CHA)、SPI送信(CHB)について通信が可能となることが定義されている。
データ設定数は、テーブルに定義されているレコード数であり、SPI送受信(CHA)によるSPI通信の設定データ、SPI送信(CHB)によるSPI通信用の設定データの計2レコード分のデータが定義されているため、データ設定数の実体は2となる。データ設定数の値はテーブル構造(テーブルのレコード数の増減)に柔軟に対応させるため、テーブルの終端アドレス等の情報に基づいて算出するように構成している。
SPI通信は、SPI通信コントロールレジスタにSPI通信イネーブルビットを書き込むことで開始される。SPI共通出力時設定データ(SPI_COMTX_B)には、SPI送受信(CHA)、SPI送信(CHB)の設定データが定義されている。各設定データは、SPI通信コントロールレジスタ1の設定アドレスとSPI通信イネーブルビットの設定値が定義されている。具体的には、SPI送受信(CHA)については、SPI通信Aコントロールレジスタ1の設定アドレス(_SPICNA1)とSPI通信Aイネーブルビットの設定値(_SPI_SPENBA_PB)、SPI送信(CHB)については、SPI通信Bコントロールレジスタ1の設定アドレス(_SPICNB1)とSPI通信Bイネーブルビットの設定値(_SPI_SPENBB_PB)となっている。_SPI_SPENBA_PBは、SPI送受信(CHA)における通信を実行するスレーブに対しての通信開始情報が設定されており、例えば、スレーブ1~スレーブ4の全てに対して通信を開始する場合には、スレーブ1~スレーブ4に対応する下位4ビットが“1”となるため、“0FH”(“00001111B”)が設定される。なお、_SPI_SPENBB_PBは、SPI送信(CHB)における通信を実行するスレーブに対しての通信開始情報が設定されている。
ここでは、スレーブ4は入力として使用されることから、本来出力のタイミングでスレーブ4に対する通信を開始する必要はない。しかし、スレーブ4のイネーブル信号を通信開始に設定したとしても、スレーブ4のバッファには、通信するためのデータがないことから結果として、スレーブ4の通信は開始されることはない。このように、通信を開始する必要のないスレーブのイネーブル信号を含めて通信開始に設定するのは、該テーブルについて、SPI通信時に共通に使用できるようにしているためである。こうすることで、SPI通信開始時の設定とし、一のテーブルで実行することが可能となり、プログラム(データ)の容量の削減を図ることが可能となる。なお、すべてのスレーブについて通信可能とするのではなく、通信を必要とするスレーブのみのイネーブルを設定するように、テーブルを分けて構成しても差し支えない。このようにすることで、プログラム(データ)容量は増加することになるが、本来通信する必要のないスレーブにおいて誤って通信が行われることを回避することが可能となる。
その後、主制御MPU1311は、INVD命令によって出力ポートデータ設定処理(PORT_DAT_SET)を実行することでSPI通信を開始する(“INVD _PORT_DAT_SET”)。図319に示したプログラムコードを参照しながらさらに説明する。
まず、主制御MPU1311は、Bレジスタにデータ設定数を格納する(“LD B,(HL+)”)。HLレジスタには、出力ポートデータ設定処理の呼び出し元であるSPI2バイト出力処理においてSPI通信の定義情報を含むテーブル“SPI_COMTX_B”(図340)が格納されており、最初に定義されているデータ設定数がBレジスタに格納されることとなる。
続いて、主制御MPU1311は、SPI送受信(CHA)についてSPI通信を開始する。具体的には、WレジスタにSPI通信Aコントロールレジスタに対応するアドレスを設定し(“LD W,(HL+)”)、AレジスタにSPI通信Aイネーブルビットの設定値を設定する(“LD A,(HL+)”)。その後、SPI通信AコントロールレジスタにSPI通信Aイネーブルビットを設定することによって、SPI送受信(CHA)によるSPI通信を開始する(“OUT (W),A”)。さらに、データ設定数分のループが完了したか否かを判定するが(“DJNZ P?ORTDAT_SET_1”)、SPI送信(CHB)によるSPI通信が開始されていないため、SPI送受信(CHA)による通信と同様にSPI通信BコントロールレジスタにSPI通信Bイネーブルビットを設定した後、出力ポートデータ設定処理を終了する。
なお、“LD B,(HL+)”の処理は、HLレジスタが示すアドレスのデータをBレジスタにロードした上で、HLレジスタの値を+1だけインクリメントされる。これにより、HLレジスタが示すアドレスのデータを次々に読み出す際に、HLレジスタを+1する処理(INC HL)を実行する必要がなくなり、プログラム容量の圧縮を図ることが可能となっている。
ステップP124のSPI通信処理が終了すると、主制御MPU1311は、遊技を停止するための遊技停止データを設定する(ステップP125)。さらに、設定された遊技停止データを出力ポートにセットするための出力ポートデータ設定処理(PORT_DAT_SET)を実行する(ステップP126)。最後に、性能表示モニタに遊技に関する各種情報を表示する性能表示モニタ処理を実行し(ステップP127)、呼び出し元の処理(タイマ割り込み処理)に復帰する。
以上のように、本実施形態の遊技機では、SPI通信を実行するために、INVD命令によってSPI2バイト出力処理(SPI_TX__WA)や出力ポートデータ設定処理(PORT_DAT_SET)を呼び出すようにしているため、SPI通信を実行するためのオーバーヘッドを削減し、処理を高速化することが可能となっている。
[21-4.SPI通信における入力信号受信時の制御]
続いて、SPI通信において、各種センサやスイッチからの信号を受信するための構成及び手順について説明する。まず、SPI通信によって入力信号を受信するための構成について説明する。なお、入力信号を受信するスレーブは図335に示したブロック図のスレーブ4に相当し、本実施形態の具体的な構成に当てはめると、パラレル・シリアル変換回路1341に対応する。図334の主基板実装図に示すように、パラレル・シリアル変換回路1341は、実際には3個のIC(1341a~1341c)によって構成されている。
[21-4-1.SPI通信により入力信号を受信するための構成]
図341は、本実施形態の遊技機におけるSPI通信によって信号を受信するための構成を中心とした回路図である。パラレル・シリアル変換回路1341は、各コネクタを介して各スイッチ及びセンサからの信号をQ/D1~8端子で入力を受け付ける。また、マスタとなる主制御MPU1311のSPICK端子から出力されたクロック信号をCK端子から入力を受け付ける。また、主制御MPU1311のSPITXから出力された信号は、取り込まれることはなく、SPITXから“0”のデータが出力されることでCLR/LOAD端子にLOWレベルの信号が入力され、Q/D8~Q/D1端子に接続された信号がパラレル・シリアル変換回路1341に入力される。具体的なデータの取り込みタイミングは動作モードに基づき、図336等にて説明したとおりである。
パラレル・シリアル変換回路1314に入力されたパラレル信号は、シリアル信号に変換されて主制御MPU1311のSPIRX端子に入力される。各パラレル・シリアル変換回路1314に入力された信号は、順次(例えば、パラレル・シリアル変換回路1314c、1314b、1314aの順で)出力される。パラレル・シリアル変換回路1314aは変換された信号をQ8’端子から出力し、パラレル・シリアル変換回路1314bのSI端子に入力する。パラレル・シリアル変換回路1314bは、Q/D1~8端子に入力された信号をQ8’端子から出力した後、SI端子に入力された信号をQ8’端子から出力する。パラレル・シリアル変換回路1314bのQ8’端子から出力された信号は、パラレル・シリアル変換回路1314cのSI端子に入力される。パラレル・シリアル変換回路1314cは、Q/D1~8端子に入力された信号をQ8C端子から出力した後、SI端子に入力された信号をQ8C端子から出力する。パラレル・シリアル変換回路1314cから出力された信号は、主制御MPU1311のSPIRX端子に入力される。
続いて、各パラレル・シリアル変換回路1341(1341a~1341c)について、各種スイッチ及びセンサから入力される信号などについて説明する。本実施形態では、各パラレル・シリアル変換回路(1341a~1341c)は同じハードウェアとなっている。
パラレル・シリアル変換回路1314aは、コネクタ13101を介して、普通入賞口スイッチ1~3及び大入賞口スイッチ1~3から出力された信号の入力を受け付ける。さらに、コネクタ13107を介して始動口スイッチ2、コネクタ13108を介して始動口スイッチ1から出力された信号の入力を受け付ける。各スイッチから入力された信号は、パラレル・シリアル変換回路1314aに入力される前に、インターフェイス(IF)回路13105aを経由する。
インターフェイス回路13105aは、入力された信号について、断線・短絡・電源異常などを検知することができる。異常が検知された場合には、E端子からエラー信号が出力される。また、インターフェイス回路13105aは、近接センサによって検出された信号の入力を受け付ける。近接センサでは、センサ非通過時(非検出時)には約9Vの電圧を出力し、通過検出時には約0.8Vの電圧を出力する。そのため、インターフェイス回路13105aの内部では、入力信号が0Vの場合には断線と判定し、12Vの場合にはショート(短絡)と判定する。なお、インターフェイス回路13105aのE端子と、インターフェイス回路13105b(後述)のE端子は直接配線パターンでつながれているため、インターフェイス回路13105a側の異常かインターフェイス回路13105b側の異常かを判定することはできないようになっている。これは、何れのセンサで異常が発生した場合においても、遊技の進行に支障を来たすことから、個別に異常を検出する必要がないためである。なお、各インターフェイス回路のE端子をそれぞれ接続することによってインターフェイス回路ごとに個別に異常を検知してもよい。エラー信号は、他の入力信号と同様にパラレル・シリアル変換回路1341から主制御MPU1311に入力され、主制御MPU1311は入力処理において各種センサからの信号とともにエラー信号を受信し、エラー信号がエラーを示しているかをプログラムの処理により判定し、エラーと判定した場合に、周辺制御基板にスイッチ異常の報知を行なうためのコマンドを送信し、ランプ(LED)、音声、液晶表示装置などにスイッチ異常が発生したことを報知するようになっている。
パラレル・シリアル変換回路1314bは、コネクタ13104を介してアウトスイッチ及びセーフスイッチから出力された信号の入力を受け付け、コネクタ13106を介して始動口スイッチ3出力された信号の入力を受け付ける。さらに、コネクタ13101を介して、汎用入力、排出口スイッチ、特定領域スイッチ、役連作動ゲートスイッチ及び普図ゲートスイッチから出力された信号の入力を受け付ける。各スイッチから入力された信号は、パラレル・シリアル変換回路1314bに入力される前に、インターフェイス(IF)回路13105bを経由する。インターフェイス回路13105bは、インターフェイス回路13105aと同様の機能を有し、近接センサによって検出された信号の入力を受け付ける。前述したように、インターフェイス回路13105bのE端子からの配線はインターフェイス回路13105aのE端子と接続され、パラレル・シリアル変換回路1314cを介して主制御MPU1311に入力される。
パラレル・シリアル変換回路1314cは、コネクタ13101を介して、振動検出センサ、磁気検出スイッチ、特定領域不正防止スイッチ及び始動口不正防止スイッチ1~3から出力された信号の入力を受け付ける。さらに、パラレル・シリアル変換回路1314cは、インターフェイス回路13105a及びインターフェイス回路13105bのE端子から入力されたエラー信号(SW-E)の入力を受け付ける。特定領域不正防止スイッチ及び始動口不正防止スイッチ1~3はフォトタイプのセンサであり、センサ非通過時(非検出時)には12Vの電圧を出力し、通過検出時には0Vの電圧を出力する。また、振動検出センサ及び磁気検出スイッチは、フォトタイプのセンサではないが、同様に、振動又は磁気異常を検出していない場合(非検出時)には12Vの電圧を出力し、振動又は磁気異常を検出した場合(検出時)には0Vの電圧を出力する。なお、検出時と非検出時の電圧は逆でもよく、非検出時には0V、検出時には12Vの電圧を出力するようにしてもよい。近接センサとは異なりON/OFF時の電圧が相違するため、インターフェイス回路を介さずにトランジスタ13109によって5Vに変換して信号を出力する。このとき用いられるトランジスタ13109は信号入力時にノイズ等による誤検知を防止するための除去回路(抵抗)がトランジスタの入力段に内蔵されている。
なお、インターフェイス回路13105及びトランジスタ13109とパラレル・シリアル変換回路1314との間には、プルアップ抵抗13109bが接続されている。また、プルアップ抵抗13109b以外にノイズ除去用としてGNDと信号線間にコンデンサ13109cが接続される。さらに、コネクタ13101とインターフェイス回路13105及びトランジスタ13109aとの間には、プルアップ抵抗13109dが接続される。これらのプルアップ抵抗(13109b,13109d)、コンデンサ13109c、インターフェイス回路13105及びトランジスタ13109aはコネクタ13101の比較的近傍に配置される一方、パラレル・シリアル変換回路1314はコネクタ13101の近傍に配置する必要はない。すなわち、コネクタ13101の近傍に配置される電子部品は、入力回路(コネクタ13101等から主制御MPU1311までの入力部の回路)のうち、特定の回路(プルアップ抵抗(13109b,13109d)、コンデンサ13109c、インターフェイス回路13105及びトランジスタ13109a)となっている。これは、インターフェイス回路13105及びトランジスタ13109aからの出力はドライブ能力が高くパラレル・シリアル変換回路1314との間の距離が離れていても、ノイズによる影響を受けにくいためである。また、主制御基板1310の外部から信号を受ける場合には、基板内で配線パターンを引き回すと他の信号の配線パターンに影響を及ぼす可能性がある点から、インターフェイス回路13105及びトランジスタ13109aやこれらに接続されるプルアップ抵抗(13109b,13109d)、コンデンサ13109c等の電子部品はコネクタの近傍に配置する必要がある。
[21-4-2.SPI通信による入力信号を受信する手順(スイッチ入力処理)]
続いて、遊技機に備えられた各種スイッチから入力されたデータをシリアル通信(SPI通信)で主制御MPU1311に入力する手順について説明する。具体的には、図23のタイマ割り込み処理におけるステップS74のスイッチ入力処理について説明する。なお、スイッチ入力処理については、図288に始動口などの遊技球の入賞を検出し、賞球判定エリアにスイッチエッジ情報を格納する処理について説明しているが、ここでは、賞球情報に限らずに各種センサからの入力信号を受信し、SPI通信によって主制御MPU1311に信号を入力する手順について説明する。
図342は、本実施形態の遊技機に備えられたセンサ等によって検出された情報を取得するスイッチ入力処理の手順の一例を示すフローチャートである。図343は、本実施形態のスイッチ入力処理のプログラムコードの一例を示す図であり、図342のフローチャートに対応する。以下、図342及び図343を参照しながらスイッチ入力処理の詳細について説明し、SPI通信により主制御MPU1311に入力された信号を受信するための手順を示す。前述したように、本実施形態では、SPI送受信(CHA)の第3チャンネル(スレーブ4、A3チャンネル)を用いて入力信号を受信する。なお、プログラムの処理について説明する際には、「スレーブ4」を「A3チャンネル」として説明する。
主制御MPU1311は、スイッチ入力処理が開始されると、A3チャンネルの通信用バッファ(_SPIBFA3)に送信用ダミーデータ(8バイト)をセットする(ステップP6001)。具体的には、まず、HLレジスタにSPI入力時設定データ(図344参照)の先頭アドレスをセットする。このとき、LDT命令によりテストポインタアドレス(9000H固定;プログラムで書き換え可能)+第2オペランドの値を加算した値をHLレジスタにセットすることで、本来であれば3バイトの語長命令(LD HL,SPI_SWRX_B)となるところ、2バイトの語長とすることができ、プログラムの容量を削減できるようになっている。第2オペランドの値は設定するデータの先頭データアドレスからの差分値であり、テストポインタが示す値に第2オペランドの値の加算することで設定するデータの先頭データアドレスがHLレジスタ(第1オペランド)に格納される。前述のように、本実施形態では、パラレル・シリアル変換回路1314(スレーブ4)から入力信号を受信する場合、ダミーデータを送信するたびに入力信号を取り込むように制御される。データ受信時に設定されるダミーデータは、SPI入力時設定データに定義されており、以下、SPI入力時設定データの内容について図344を参照しながら説明する。
図344は、本実施形態のSPI通信による入力信号の受信を開始する際の設定データ(SPI入力時設定データ;SPI_SWRX_B)のプログラムコードの一例である。SPI入力時設定データは、データ設定数を示すデータが先頭に定義され、続いて、送信(通信)バッファのアドレス及び当該送信バッファに格納される送信データ(ダミーデータ)が定義される。図344に示す例では、A3チャンネル用の送信(通信)バッファ(SPIBFA3)にダミーデータが設定される。このとき、1バイト目と5バイト目の送信データが入力信号のロードデータ(ラッチデータ;SPI受信用LOAD信号(_SPI_LOAD_SIG=FEH))として使用され、その他(2~4,6~8バイト目)の送信データがダミーデータ(SPI汎用受信用信号(SPI_COMM_SIG=FFH))となっている。これはスイッチの入力ポートが3バイト分割り当てられており、同量の送信データが必要だからである。1バイト分のロード信号と3バイト分のダミーデータの計4バイト分のデータで1セットとなる。なお、本実施形態では、ロードデータの8ビット目を“0”としているが、後述するようにロードデータは取り込まれずに破棄されるため、8ビット目に限定せずに、例えば、1ビット目を“0”としてもよい。また、シリアル通信でロード信号を出力するのではなく、入出力ポートからロード信号を出力するようにしてもよい。
シリアル通信でロードデータとして送信する構成の場合には、入出力ポートからロード信号を出力する場合よりもロード信号を出力するための配線パターン、ノイズ除去のため構成、入出力ポートの配置などのハードウェア(回路)上のコストやロード信号をON/OFFするためのプログラムの処理がなどのソフトウェア上のコストを削減することができる。一方、入出力ポートからロード信号を出力する場合には、ロードデータを送信する処理が必要なくなり、ロードデータを送信せずにロードデータのタイミングで取り込んだデータを破棄する必要がなくなるため、プログラムの処理を簡素化することができる。なお、SPI通信でデータを出力する際に、SPITX信号には、“0”のデータ(LOWレベルの信号)が出力されることがあり、その場合には、パラレル・シリアル変換回路1341に入力信号を取り込む場合があるが、A3チャンネルの送信用バッファは空になっているために、A3チャンネルでのSPI通信が開始されることはないため、このタイミングでパラレル・シリアル変換回路1341に取り込まれた信号は、入力処理でロード信号が出力されたときに更新されるため、結果的に破棄される。
本実施形態のSPI通信では、ノイズなどの影響により誤ったデータによって遊技が進行することを防止するため、スイッチなどから入力された信号を2回読み出し、一致した場合に正常な通信が行われたものと判定することで通信精度の向上を図っている。本実施形態の遊技機では、1バイトのロード信号と3バイト分のダミー用送信データの計4バイト分のデータを2セット分(計8バイト)送信し、2セット分の受信データを比較して通信が正常に行われたかを判定する。なお、送信データの1バイト目と5バイト目はロード信号として使用されるため送信時に入力信号としては取り込まれず、入力データは無効データとなる。また、2バイト目と6バイト目、3バイト目と7バイト目、4バイト目と8バイト目の送信データの送信時に取り込まれる入力信号が対応し、対応する入力信号がそれぞれ一致する場合に通信(二度読み)成功としてエッジデータを作成し、遊技を制御する。
HLレジスタにSPI入力時設定データがセットされると、主制御MPU1311は、INVD命令により出力ポートデータ設定処理(PORT_DAT_SET)を実行する。これにより、SPI入力時設定データに定義された8バイト分の送信データがA3チャンネルの通信用バッファにセットされ、その後、CHA用コントロールレジスタ2(SPICNA1)の通信として使用する全スレーブのイネーブルを1に設定することで、A3チャンネルの通信用バッファ(_SPIBFA3)に格納された8バイト分のダミーデータが送信される。
なお、入力用のスレーブ4のみ通信を行うなど特定のスレーブに限定して通信を開始する場合には個別の処理や設定データが必要となるが、すべてのスレーブに対して通信を開始するように構成することによって処理やデータの共通化を図ることが可能となる。
次に、主制御MPU1311は、SPI通信が完了するまでの監視時間を設定する(ステップP6002)。設定された開始時間までに通信が完了しない場合には、通信に失敗したものと判断される。
続いて、主制御MPU1311は、通信中(通信が継続中)であるか否かを判定する(ステップP6003)。具体的には、まず、SPI送受信(CHA)用のコントロールレジスタ2(SPICNA1;SPI通信Aコントロールレジスタ1;図339(B)参照)に設定されている値をAレジスタに格納する。そして、Aレジスタに格納された値からイネーブルビットを参照し、通信中であるか否かを判定する。通信中である場合には(ステップP6003の結果が「YES」)、通信が完了するか監視時間が経過するまで待機する(ステップS6004)。
主制御MPU1311は、A3チャンネルが通信中のまま監視時間が経過した場合には(ステップP6004の結果が「YES」)、通信回路の初期化設定を行う(ステップP6005)。さらに、入力データの代わりに通信異常データを後述する所定のレジスタにセットする(ステップP6006)。その後、ステップP6008以降の処理を実行することによって信号がOFFからONに変化する(スイッチがONと判定されない)エッジデータが作成されないように制御される。
ここで、ステップP6005の初期化設定について説明する。図345は、本実施形態のSPI通信の通信回路を初期化する際の設定データ(SPI再起動設定データ;SPI_RESTART_B)のプログラムコードの一例である。SPI再起動設定データは、データ設定数を示すデータが先頭に定義され、続いて、通信回路を初期化するための設定データが定義される。まず、SPI送受信(CHA)用のコントロールレジスタ1(SPICNA0)に“00000001B”を設定することでSPRSTAに“1”を設定し、通信回路の初期化を実行する。SPI送受信(CHA)用のコントロールレジスタ1の設定値については図337にて説明したとおりである。さらに、スレーブ1、スレーブ3及びスレーブ4のビットシフト設定を“1”(LSBファースト)に設定し、動作モードを“0”(モード0)に設定する。さらに、スレーブ1(_SPIPSA0)、スレーブ2(_SPIPSA1)及びスレーブ4(_SPIPSA3)のボーレットを設定する。なお、スレーブ3(A2チャンネル)は未使用なので特に設定していない。
ステップP6006で設定される「通信異常データ」は、ステップP6008の処理でOFFからONに変化するエッジデータを作成する際に、エッジデータがセットされないように、“FFH”(入力信号がOFFのときの値と同じ値)をセットするものである。本実施形態では、信号がすべてLowの場合にONと判定としているため、通信異常データとしてはすべてHighの場合となるように同じ“FFH”となっている。そのため、例えば、入力信号がHighの場合にONと判定するのであれば、設定する通信異常データは“FFH”ではなく“00H”となる。
一方、主制御MPU1311は、通信中でない場合(ダミーデータの通信が完了した場合)には(ステップP6003の結果が「NO」)、ダミーデータの送信とともに取り込んだ入力データをSPI通信A3バッファレジスタから入力データとして取り込み、所定のレジスタにセットする(ステップP6007)。ステップP6007の処理を詳細に説明すると、前述のように、データの取り込みは、SPI通信A3バッファレジスタから8バイト分((ロードデータ+ダミーデータ×3)×2回=8バイト)のデータの取り込みを行なう。まず、1バイト目のデータを取り込むが、当該取り込みデータは、ロードデータの送信とともに取り込まれた無効データのために破棄し、2バイト目の取り込みデータと3バイト目のデータをそれぞれペアレジスタ(2バイト分のレジスタとして使用できるもの)であるWAレジスタに一旦格納し、さらにBCレジスタに移す。さらに、4から6バイト目のデータを取り込む。5バイト目のデータは、前述のように、ロードデータの送信とともに取り込まれた無効データのために破棄し、4バイト目の取り込みデータと6バイト目のデータをそれぞれWAレジスタに一旦格納し、さらにDEレジスタに移す。最後に、7バイト目の取り込みデータと8バイト目のデータをそれぞれWAレジスタに格納する。
続いて、主制御MPU1311は、所定のレジスタに格納された入力データからエッジデータを作成する(ステップP6008)。ステップP6008の処理では、通信が正常に完了したか否かにかかわらず、各レジスタに取り込まれたデータに基づいてエッジデータを作成する。通信異常が発生した場合には、ステップP6006の処理で所定のレジスタに「通信異常データ」が設定されるため、入力データが取り込まれる(OFFからONに変化する)エッジデータが作成されないためである。これにより、通信が異常であっても通信が正常な場合と同じ処理によりエッジデータが作成され、プログラムの制御構造を単純化することができる。
ステップP6008の処理について具体的に説明すると、まず、WレジスタとDレジスタの値を入れ替え、SPIスイッチ入力情報データの先頭アドレスをHLレジスタにセットする。本実施形態では、SPIスイッチ入力情報データ1、SPIスイッチ入力情報データ2及びSPIスイッチ入力情報データ3の3種類を定義しており、具体的な構成は図346に示す。
図346は、本実施形態のSPIスイッチ入力情報データの一例を説明する図である。SPIスイッチ入力情報データは、調整用データ、マスクデータ及びレベルエリアアドレスによって構成される。
調整用データは、1バイト分のビット列で定義されており、入力データを調整するためのデータである。調整用データは、取り込んだ入力信号がONのときには1となるようにするためのものである。図346では調整用データが“00h”となっているため、取り込んだ値が“1”の場合にONとしてスイッチのレベルデータが“1”になる。一方、“0”の場合にOFFとしてスイッチのレベルデータが“0”になる。
マスクデータは、調整用データと同様に、1バイト分のビット列で定義されており、必要に応じて比較対象のデータを特定するためのデータである。入力信号として使用されるビットを“1”、使用されないビットを“0”としてマスクデータを構成することで、使用しない入力ビットが誤ってON(“1”)となっていてもマスクデータによりOFF(“0”)に設定することができる。
レベルエリアアドレスは、入力データから作成されたレベルデータを格納する領域のアドレスである。なお、エッジデータは、レベルデータが格納された後に続いて格納されるため、エッジデータを格納する領域はレベルデータを格納する領域と連続した領域とすることで、SPIスイッチ入力情報データにエッジデータを格納するアドレスについては設定されていない。また、レベルデータ及びエッジデータを格納する領域は同じ構成となっている。なお、レベルデータを格納する領域とエッジデータを格納する領域が連続した領域に格納されていない場合には、エッジデータを格納する領域を設定(保持)しておけばよい。この場合、レベルデータを格納する領域とエッジデータを格納する領域のアドレスの上位バイトが固定(共通)であれば、アドレスの下位バイトのみを設定することで各領域のアドレスをそのまま保持するよりもデータ容量を削減することができる。
図347は、本実施形態のレベルデータ及びエッジデータを格納する領域の構成の一例を示す図である。図347を参照すると、SPIスイッチ入力情報データ1のレベルエリアアドレスは“0006h”であり、1ビット目(BIT0)は始動口SW(スイッチ)1、2ビット目(BIT1)は始動口SW2、3ビット目(BIT2)は大入賞口SW1、4ビット目(BIT3)は大入賞口SW2、5ビット目(BIT4)は大入賞口SW3、6ビット目(BIT5)は普通入賞口SW1、7ビット目(BIT6)は普通入賞口SW2、8ビット目(BIT7)は普通入賞口SW3となっている。SPIスイッチ入力情報データ1に対応するエッジデータを格納する領域(エッジエリアアドレス)は“0007h”となっており、レベルデータを格納する領域と連続した領域となっている。このように構成することによって、エッジデータを格納する領域を改めて定義する必要がなくなるためプログラムやデータの容量を削減することが可能となるとともに、データ読み出し時には連続した領域を読み出せばよいためプログラムを簡素化しながら処理効率を高めることができる。
ここで、図342(図343)のステップP6008の処理の説明に戻る。SPIスイッチ入力情報データをHLレジスタにセットした後、入力データのチェックし、レベルデータとエッジデータを作成するSPI2度読み処理(TWICE_SPI)を実行する。SPI2度読み処理(TWICE_SPI)の詳細について図348及び図349を参照しながら説明する。
図348は、本実施形態のSPI2度読み処理(TWICE_SPI)の手順の一例を示すフローチャートである。図349は、本実施形態のSPI2度読み処理(TWICE_SPI)のプログラムコードの一例を示す図であり、図348のフローチャートに対応する。
主制御MPU1311は、SPI2度読み処理が開始されると、DEレジスタが後続の処理で使用されることがあるため、DEレジスタの値をスタック領域に退避する(ステップP6101)。次にレベルデータを格納するHLレジスタに格納されたSPIスイッチ入力情報データのアドレスからレベルエリアアドレスを特定し、インデックスレジスタに格納する(ステップP6102)。後述するレベル・エッジデータ作成処理(MAKE_LEV_EDG)によりレベルデータ及びエッジデータを作成した後、インデックスレジスタに格納されたアドレスに基づいて作成されたデータを格納する。また、ステップP6102の処理の後、後続の処理のためにHLレジスタの値を減算して調整している。レベル・エッジデータ作成処理(MAKE_LEV_EDG)は、SPI通信による入力以外にもSPI通信によらない汎用IOスイッチ(パラレルポートからの入力信号)のエッジデータを作成するためにも呼び出される。このとき、汎用IOスイッチからの信号を入力するためのスイッチ入力情報データがSPI通信用よりも多いため、HLレジスタの値を減算(「DEC HL」)することでスイッチ入力情報データのアドレスを調整している。SPI通信用のスイッチ入力情報データに含まれないデータは、例えば、データを読み出す回数や入力ポートのアドレスである。
主制御MPU1311は、2度読みした入力データが一致しているか(比較対象のデータが一致するか)否かを判定する(ステップS6103)。比較対象のデータは、WレジスタとAレジスタに格納されており、CP命令によって比較する。前述したように、通信バッファから入力データが取り込まれた直後は、2,3,4,6,7,8番目に取り込んだ入力データが、B,C,D,E,W,Aレジスタ(所定のレジスタ)に格納されているが、最初のSPI2度読み処理を実行する前に、WレジスタとDレジスタの値が交換されているため、4番目に取り込んだデータと8番目に取り込んだデータが比較されることになる。以降、SPI2度読み処理が実行される際には、呼び出し元の処理(スイッチ入力処理)で比較対象となるデータが格納されたレジスタの値を必要に応じて交換することで、対象となるデータが何バイト目のデータであるかを意識することなく処理を実行することが可能となり、SPI2度読み処理(TWICE_SPI)を汎用性の高い処理とすることができる。
主制御MPU1311は、2度読みした入力データが一致していない場合には(ステップP6103の結果が「NO」)、エッジデータとして“00H”をエッジデータエリアに格納する(ステップP6105)。さらに、退避したDEレジスタをスタック領域から戻し(ステップP6106)、本処理を終了する。
主制御MPU1311は、2度読みした入力データが一致している場合には(ステップP6103の結果が「YES」)、INVS命令によってレベル・エッジデータ作成処理(MAKE_LEV_EDG)を実行し(ステップP6104)、入力データに対応するレベルデータとエッジデータを作成する。レベル・エッジデータ作成処理については、図350及び図351を参照しながら説明する。
図350は、本実施形態のレベル・エッジデータ作成処理の手順を示すフローチャートである。図351は、本実施形態のレベル・エッジデータ作成処理のプログラムコードの一例を示す図であり、図350のフローチャートに対応する。
主制御MPU1311は、まず、スイッチ入力情報テーブルに含まれる調整用データ及びマスクデータに基づいて入力データからレベルデータを作成する(ステップP6201)。具体的には、Aレジスタに格納された入力データに対し、調整用データに基づき取り込んだ入力信号がONのときには“1”、OFFのときには“0”となるように各ビットの値を調整する。さらに、マスクデータによって入力信号として使用されるビット以外のビットがON(“1”)に設定されないようにレベルデータを作成する。さらに、算出されたレベルデータをEレジスタに退避する。
主制御MPU1311は、前回の割込み時のレベルデータとXOR値(中間データ)を算出する(ステップP6203)。これにより、ON又はOFFエッジの場合にのみ1がセットされる。次に、主制御MPU1311は、レベルデータエリア(インデックスレジスタに格納されたアドレス)に今回のレベルデータを格納(更新)する(ステップP6204)。さらに、中間データ(Aレジスタの値)と今回の割り込みで作成されたレベルデータとのAND値を算出し、エッジデータを作成する(ステップP6205)。このとき、ONエッジであれば“1”、それ以外の場合には0が格納される。最後に、主制御MPU1311は、Aレジスタに格納されたエッジデータをエッジデータエリア(レベルデータエリアと連続する領域)に格納する(ステップP6206)。
主制御MPU1311は、レベルデータとエッジデータの作成後、退避したDEレジスタをスタック領域から戻し(ステップP6106)、本処理を終了する。
ここで、図342(図343)のスイッチ入力処理に戻り、ステップP6008以降の処理を説明する。最初の入力データのレベルデータとエッジデータの作成及び格納が完了すると、主制御MPU1311は、CレジスタとEレジスタの値を交換し、DEレジスタの値をWAレジスタに格納する。これによりCレジスタとEレジスタの値を交換することにより、DEレジスタには、7番目に取り込んだ入力データと3番目に取り込んだ入力データが格納されており、これをWAレジスタに格納することで7番目に取り込んだ入力データと3番目に取り込んだ入力データとを比較して入力データのレベルデータとエッジデータが作成されることとなる。以降の処理は4番目に取り込んだ入力データと8番目に取り込んだ入力データを処理した最初の手順と同じである。さらに、BCアドレスには2番目に取り込んだ入力データと6番目に取り込んだ入力データが格納されており、これをWAレジスタに格納し、同様に処理することで3バイト分の入力データの処理が完了し、シリアルポートから入力された信号の取り込みが完了する。
その後、主制御MPU1311は、パラレルポートから入力されたデータを取り込んでINVS命令によってレベル・エッジデータ作成処理(MAKE_LEV_EDG)を呼び出してパラレルポートで取り込んだ入力信号のエッジデータを作成し(ステップP6009)、本処理を終了する。
[21-4-3.SPI通信による入力信号を受信する手順(タイムチャート)]
以上、本実施形態の遊技機においてSPI通信により入力信号を受け付ける手順についてフローチャート及びプログラムコードを参照しながら説明した。続いて、図352及び図353のタイムチャートを参照しながらSPI通信により入力信号を受信する過程を時系列に沿って説明する。
図352は、本実施形態のスイッチ入力処理の開始からSPI通信によるデータの送信が完了するまでの過程を時系列順に示すタイムチャートである。図353は、本実施形態のスイッチ入力処理においてSPI通信によるデータの送信完了から次のタイマ割り込みでスイッチ入力処理が開始されるまでの過程を時系列順に示すタイムチャートである。
タイマ割り込みが発生すると、図23に示したタイマ割込み処理が実行される。タイマ割り込みの間隔(CTCの設定)は、前述したように、主制御MPU1311の初期設定時に設定され、“0000h”~“FFFFh”のように任意の値に設定できるだけではなく、固定値(1ms,2ms、4ms、1,489ms)として設定可能となっている。また、CTCは、任意の固定値を設定可能であり、任意の固定値のうち第1設定、第2設定、第3設定は倍数関係にあるように設定され、第4設定は、第1~3設定の倍数関係にない設定とすることが可能な機能を有している。本実施形態では、第3設定値を設定することで4ms毎にタイマ割込みが発生するようにしている。第3設定値に限定することなく第1設定値、第2設定値及び第4設定値の何れの設定値でタイマ割込みを発生させてもよくタイマ割込みでサンプリングするための周期(入力信号の取り込み、出力信号の出力、及び計時の更新基準時間、乱数の更新周期等)に応じて、遊技機の仕様として適切な値となるように設定している。特に、入力信号の取り込みのサンプリングが重要であり、スイッチが遊技球の通過を検出したときにON信号が出力されるパルス幅に対応させてタイマ割込みの周期が設定される。スイッチが遊技球の通過を検出する場合、その落下スピードに応じてパルス幅が変化し、落下速度が速いほどパルス幅が短くなる。このため、パルス幅が短い(落下スピードが速い)ほど、サンプリング周期を短くする必要がある。なお、サンプリング周期を短くしすぎると一タイマ割込み周期で処理が完了できなくなるため、処理量とスイッチからの最短のパルス幅に応じてタイマ割込み周期が設定される。
スイッチ入力処理が開始されると、まず、SPI入力時設定データ(SPI_SWRX_B;図344)により、A3チャンネル用の通信バッファ(SPIBFA3)に8バイト分のダミーの送信データがセットされる(ステップP6001)。送信データは、前述のように、1バイト目と5バイト目にラッチ用のロード信号(“FEH”;_SPI_LOAD_SIG)、2~4バイト目と6~8バイト目にダミーデータ(“FFH”;_SPI_COMM_SIG)が設定される。なお、ダミーデータの値は“FFH”に限らず、任意の値であってよい。
SPI通信の開始時には、イネーブル端子(SPENBA3)がOFF(“0”)からON(“1”)に更新され、クロック端子(SPICK)から所定の間隔でクロック信号が出力される。そして、主制御MPU1311の送信用端子(SPITX)からロード信号が出力される。このとき、ロード信号には対応する入力データが存在せず受信側で無視されるため、受信用端子(SPIRX)の状態は不定となっている。
ロード信号を受信すると、8クロック目の信号でON(“1”)からOFF(“0”)に変化し、この変化した信号がパラレルシリアル変換回路1341のLOAD端子に入力されることで、3バイト分の入力信号がパラレルシリアル変換回路1341にラッチされ、主制御MPU1311は、パラレル・シリアル変換回路1341から入力データを順次受信用端子SPIRXからシリアル信号として受信する。具体的には、送信データの2バイト目のデータ送信時にパラレル・シリアル変換回路1341cから1バイト目の入力データを受信する。続いて、送信データの3バイト目のデータ送信時にパラレル・シリアル変換回路1341bから2バイト目の入力データを受信し、最後に送信データの4バイト目のデータ送信時にパラレル・シリアル変換回路1341aから3バイト目の入力データを受信する。続いて、2度読み(チェック)用(2回目)のデータを受信する。1回目のデータ受信と同様に、最初にロード信号が出力されることで再度3バイト分の入力信号がパラレルシリアル変換回路1341にラッチした後、4~6バイト目の入力データを6~8バイト目の送信データの送信タイミングにあわせて受信用端子(SPIRX)から順次受信し、その後、データの送信を終了する。このとき、A3チャンネルの受信ステータスは受信あり(“1”)に設定されるとともに、CHA用コントロールレジスタ2(SPICNA1)のスレーブ4のイネーブル(SPENBA3)が通信中(”1”)から通信終了(“0”)に更新される。
主制御MPU1311は、次のデータを受信する場合、SPI通信Aイネーブルビット(_SPI_SPENBA_PB)が通信終了(“0”)になったことを確認し、通信バッファ(SPIBFA3)からの入力データの読み込みを開始する(ステップP6007以降)。このとき、監視時間を設定し、監視時間内に通信が終了したことが確認できなかった場合にはSPI通信回路を初期化する(ステップP6002~P6005)。なお、通信バッファの内容は、データが読み出されるたびに読み出されたデータを順にクリアするようにしており、すべてのデータの読み出しが完了するとバッファ内は空となる。以降、次のタイマ割込み処理が開始されるまで、通信バッファへのダミーデータの設定、入力データの受信を繰り返す。次のタイマ割込み処理が開始されると、スイッチ入力処理を最初から実行する。
以上のように、本実施形態では、シリアル通信(SPI通信)によって主制御基板1310でのデータの配線を削減することが可能となり、基板設計の自由度を高めることができる。また、SPI通信を採用することによってI2C通信よりも配線の数は多くなるが通信速度を高めることができる。
本実施形態では、マスタ(主制御MPU1311)によって制御されるスレーブ(パラレルシリアル変換回路1341、シリアルパラレル変換回路1342等)を受信(入力)専用又は送信(出力)専用とすることで電子部品の管理を容易にするとともに、電子部品の配置の自由度を高めることができる。これにより、電子部品間の配線距離を短くすることが可能となり、クロック信号を出力する配線とデータを送受信する配線とを離しやすくなるなど、ノイズなどの影響を排除して通信を安定させることができる。
また、主制御MPU1311は、シリアル通信として、同期シリアル通信と非同期シリアル通信を可能としており、同期シリアル通信用及び非同期シリアル通信用の複数のチャンネルを有している。非同期シリアル通信の通信フォーマットは8ビットとなっている。非同期シリアル通信は、それぞれのチャンネルが受信用又は送信用のいずれかに固定され、各チャンネルには、通信データを記憶可能な記憶手段(通信用バッファ)を備える。通信用バッファの容量は複数種類定義可能であり、例えば、通信用バッファのうち、送信するデータの容量が多い周辺制御基板1510へのコマンド送信用に最大のサイズ(例えば512バイト)のものを使用する。一方、払出制御基板へのコマンド送信用には小さいサイズ(例えば、128バイト)でよく、汎用的に使用可能なバッファを用意してもよい。非同期での通信を行うことにより、データの送受信を他の処理と並行して行うことが可能となり、処理全体を効率化することが可能となる。
[22.スイッチ関連制御]
以上、本実施形態の遊技機における主制御基板1310に信号を入出力するシリアル通信機能(SPI通信)について説明した。主制御基板1310には、前述のように、遊技球の入賞を検知するスイッチやセンサなどによって信号が入力される。入力データ(信号)は、タイマ割り込み処理(図329)におけるスイッチ入力処理(ステップP102)によって取り込まれる。さらに、遊技可能な状態であれば遊技可能時処理(ステップP108;図354)に含まれるスイッチ関係制御処理(図354のステップ01TKS0010;図357)において入力信号に基づく各種処理が実行される。
本実施形態における遊技機では、各種スイッチ及びセンサによる検出信号(検知信号)が主制御基板1310に入力される。主制御MPU1311は、入力された信号に基づいて各種制御基板(例えば、演出制御基板1510や払出制御基板951など)にコマンドを出力したり、モータやソレノイドといった駆動体、LEDなどの発光体を制御したりする。このように、入力される信号には、遊技の進行に関わるものから不正や異常を検知するものなど多くの種類の信号が含まれている。したがって、各信号に対応する処理を実行する必要があるため、遊技を制御するためのプログラムが複雑化したり、プログラム容量が増大したりするおそれがあった。
そこで、本実施形態では、入力信号の制御処理に関するデータを特定の構造とすることで汎用的な手順で入力信号に対応する制御を実行可能とする遊技機を提供する。これにより、遊技制御を簡素化するとともにプログラム容量の増大を抑制し、遊技機の開発効率を向上させることが可能となる。
以下、信号に基づく処理を行うスイッチ関係制御処理について必要なデータを格納するための構成やこれらのデータを使用して遊技の制御を行う手順について説明する。
[22-1.遊技可能時処理]
まず、スイッチ関係制御処理の説明をする前に、当該スイッチ関係制御処理を呼び出す遊技可能時処理について説明する。遊技可能時処理は、前述したように、遊技機の起動後、通常の遊技を進行可能な状態で実行される処理である。具体的には、タイマ割込み処理(図329)において、遊技可能状態、かつ、遊技停止要因がない場合に実行される(ステップP108)。以下、遊技可能時処理の手順の概要について説明する。
図354は、本実施形態のタイマ割り込み処理で実行される遊技可能時処理の手順を示すフローチャートである。図355は、本実施形態の遊技可能時処理のプログラムコードの一例を示す図であり、図354のフローチャートに対応する。
遊技可能時処理が開始されると、主制御MPU1311は、まず、スイッチ関係制御処理を実行する(ステップ01TKS0010)。スイッチ関係制御処理では、遊技機に備えられた各種スイッチ及びセンサから入力された信号に基づいてデータを作成したり、入力信号に対応する処理を実行したりする。詳細については、図357以降の図を参照しながら説明する。
スイッチ関係制御処理が実行された後、主制御MPU1311は、確変領域通過判定処理を実行する(ステップ01TKS0020)。確変領域通過判定処理では、特別図柄・特別電動役物制御処理(ステップ01TKS0080)で設定されたタイマが有効である場合に確変領域に遊技球が通過したか否かを判定し、判定結果に応じて確率状態を変更する処理である。なお、特別図柄・特別電動役物制御処理(ステップ01TKS0080)で有効タイマが設定され、次割り込みで更新されるが、特別図柄・特別電動役物制御処理の実行時に本処理を実行すると、当該割り込みにおけるスイッチ入力で確変領域通過と判定されてしまうため、タイマ割り込み処理の割り込み開始時(特別図柄・特別電動役物制御処理の実行前)に呼び出すようにしている。
確変領域通過判定処理が実行された後、主制御MPU1311は、タイマ更新処理を実行する(ステップ01TKS0030)。タイマ更新処理では、遊技の進行に必要な各種タイマを更新する。これらのタイマには、計測する時間に応じて1バイトタイマと2バイトタイマがある。
タイマ更新処理が実行された後、主制御MPU1311は、賞球制御処理を実行する(ステップ01TKS0040)。賞球制御処理では、入力情報記憶領域から入力情報を読み出し、読み出した入力情報に基づいて払い出される遊技球(賞球)の数を計算する。また、賞球数の計算結果に基づいて、遊技球を払い出すための賞球コマンドを作成し、払出制御基板951に送信する。その他、主制御基板1310と払出制御基板951との基板間の接続状態の確認などの処理を実行する。
賞球制御処理が実行された後、主制御MPU1311は、枠コマンド受信処理を実行する(ステップ01TKS0050)。枠コマンド受信処理では、受信したコマンドを払出制御基板951や周辺制御基板1510に送信するための情報として記憶したり、コマンドを生成したりする。
枠コマンド受信処理が実行された後、主制御MPU1311は、不正行為検出処理を実行する(ステップ01TKS0060)。不正行為検出処理では、賞球等の異常状態を確認する。例えば、大入賞口入賞異常検出処理、磁気検出異常検出処理、乱数異常検出処理、普通電動役物入賞異常検出処理などが含まれる。
不正行為検出処理が実行された後、主制御MPU1311は、性能表示モニタ処理を実行する(ステップ01TKS0070)。性能表示モニタ処理は各種情報を表示する処理である。前述のように、遊技制御に直接関わる処理は実行されず、また、性能表示モニタ自体も遊技者が意図して参照するものではない。そのため、本実施形態では、性能表示モニタ処理は使用領域外に格納されており、INVI命令によって遊技制御処理とは独立して実行することが可能となっている
性能表示モニタ処理が実行された後、主制御MPU1311は、特別図柄・特別電動役物制御処理を実行する(ステップ01TKS0080)。特別図柄・特別電動役物制御処理は、各始動口通過処理実行後、大入賞口開放処理を含む特別図柄・電動役物動作番号に対応した処理が呼び出される。特別図柄・特別電動役物制御処理が実行された後、主制御MPU1311は、普通図柄・普通電動役物制御処理を実行する(ステップ01TKS0090)。普通図柄・普通電動役物制御処理は、ゲート部2003を遊技球が通過した場合に第二始動口2004を開状態にするか否かを抽選するなどの処理を行う。
普通図柄・普通電動役物制御処理が実行された後、主制御MPU1311は、ソレノイド駆動処理を実行する(ステップ01TKS0100)。ソレノイド駆動処理では、駆動データに基づいてソレノイド等の電気的駆動源を駆動させる。なお、ソレノイド駆動処理を実行する過程でインデックスレジスタ(IYレジスタ)を更新するため、ソレノイド駆動処理の実行前にインデックスレジスタをスタック領域に退避し、終了後にスタック領域から復帰させている。
最後に、主制御MPU1311は、出力データ設定処理を実行し(ステップ01TKS0110)、各処理で設定された出力情報を各種出力ポートの出力端子から出力する。その後、遊技可能時処理を終了し、割り込み状態を維持しながらタイマ割り込み処理に復帰する。
[22-2.スイッチ関係制御処理の概要]
続いて、スイッチ関係制御処理の概要について説明する。各種スイッチから入力された信号のうち一部の入力信号は、時系列順に履歴監視スイッチデータとして記憶される。履歴監視スイッチデータには最後に入力された信号から所定回数分の信号が含まれ、新たに信号が入力されると、最も古い信号が破棄されるように構成されている。主制御MPU1311は、当該履歴監視スイッチデータに基づいて所定の処理を実行する。これらの一部の入力信号には、例えば、接触検知センサ(タッチセンサ)や発射停止スイッチ(発射停止ボタン)から入力された信号が含まれる。
スイッチ関係制御処理の説明をする前に、まず、各種スイッチから出力された信号の入力を受け付けるための構成について概要を説明し、続いて、スイッチ関係制御処理の基本的な手順について説明する。その後、スイッチ関係制御処理の詳細な手順及び使用されるデータを格納する構造について説明する。
[22-2-1.入力信号に基づく制御を実行するための構成]
接触検知センサ(タッチセンサ)509及び発射停止スイッチ(発射停止ボタン、ストップボタン)から出力された信号を主制御MPU1311の入力ポートに入力する構成について説明する。図356は、本実施形態の遊技機において接触検知センサ(タッチセンサ)及び発射停止スイッチ(発射停止ボタン)から出力された信号を主制御MPU1311に入力するまでの構成を抜粋した回路図の一例を示す図である。
接触検知センサ(タッチセンサ)及び発射停止スイッチ(発射停止ボタン)は、本体枠4に備えられたハンドルユニット500に含まれる。接触検知センサ509は、ハンドルレバー504に手のひらや指が触れているか否かを検出するセンサであり、ハンドルレバー504に触れている場合に遊技球が発射可能となる。発射停止スイッチ(発射停止ボタン、ストップボタン)は、遊技者の意志によって遊技球の打ち出しを強制的に停止するか否かを検出するものである。接触検知センサ(タッチセンサ)及び発射停止スイッチ(発射停止ボタン)からの検出信号は、払出制御基板951に含まれる発射制御入力回路に入力された後に発射タイミング制御回路に入力される。発射タイミング制御回路に入力された信号は、主制御基板1310のコネクタ13104を介して主制御MPU1311の入力ポートに入力される。
[22-2-2.スイッチ関係制御処理の手順の概要]
続いて、スイッチ関係制御処理の手順の概要について説明する。図357は、本実施形態のスイッチ関係制御処理の手順を示すフローチャートである。
主制御MPU1311は、まず、入力信号が格納された領域(入力レベルデータエリア)から信号レベルを取得し、履歴監視スイッチデータを作成/更新するための履歴監視スイッチデータ作成処理を実行する(ステップ01TKS0110)。履歴監視スイッチデータは、前述したように、主制御MPU1311に入力された信号の値を時系列順に所定数分保持しているデータである。例えば、履歴監視スイッチデータが1バイト(=8ビット)の場合には、8回分の入力信号の値が格納される。履歴監視スイッチデータ作成処理の詳細については、図358以降の図面を参照しながら説明する。履歴監視スイッチデータを作成する対象には、前述したタッチセンサ信号及び発射停止スイッチの他に、扉開放情報及び近接スイッチエラー信号が含まれる。
履歴監視スイッチデータ作成処理の実行後、主制御MPU1311は、断線・短絡異常判定処理を実行する(ステップ01TKS0120)。断線・短絡異常判定処理は、履歴監視スイッチデータ作成処理で作成された履歴監視スイッチデータから近接スイッチエラー信号を取得し、エラーが発生しているか否かを判定する。エラーが発生している場合には、断線・短絡異常コマンドを送信する。
断線・短絡異常判定処理の実行後、主制御MPU1311は、未作動大入賞口賞球禁止処理を実行する(ステップ01TKS0130)。未作動大入賞口賞球禁止処理は、大入賞口への入賞が有効であるかを判定し、有効であれば賞球判定エリアに賞球判定用データを格納する。また、複数の大入賞口が備えられている遊技機であれば、すべての大入賞口について判定を行う。
未作動大入賞口賞球禁止処理の実行後、主制御MPU1311は、スイッチ履歴コマンド送信判定処理を実行する(ステップ01TKS0140)。スイッチ履歴コマンド送信判定処理では、履歴監視スイッチデータ作成処理で作成された履歴監視スイッチデータに基づいてコマンドを生成する。例えば、履歴監視スイッチデータを参照し、信号値がON判定の場合にはコマンドを送信する。
本実施形態では、判定対象の信号を取得するための情報(入力信号の値が格納された領域を特定する情報)、コマンド情報、入力された信号を判定するための情報を一組(一連)のデータとして構造化して定義することによって、入力信号の判定とコマンドの生成を汎用的に処理することが可能となっている。スイッチ履歴コマンド送信判定処理を実行するためのデータの構造及び具体例については、図364及び図365を参照しながら説明する。また、スイッチ履歴コマンド送信判定処理の詳細な手順については、図367及び図368を参照しながら説明する。
スイッチ履歴コマンド送信判定処理の実行後、主制御MPU1311は、スイッチ通過コマンド送信処理及びセーフスイッチ異常判定処理を含むスイッチ通過コマンド送信/セーフスイッチ異常判定処理を実行する。スイッチ通過コマンド送信処理は、入賞口の入賞判定時のコマンドを生成する。コマンドを生成する手順は、入賞口によらずに共通の処理で実行可能となっている。また、セーフスイッチ異常判定処理は、入賞口の種類に応じて入賞数をカウントしたり、賞球の有無などに基づくセーフ球数(セーフ判定カウント値)をカウントしたりすることによって入賞数(セーフ球数)に異常が生じているか否かを判定する。
また、スイッチ通過コマンド送信/セーフスイッチ異常判定処理では、判定対象の入賞口を特定するための情報、コマンド情報、セーフ球数などを計数するためのカウント情報を一組のデータとして構造化して定義することによって、入賞口の種類によらずに共通の処理とすることが可能となっている。スイッチ通過コマンド送信/セーフスイッチ異常判定処理を実行するためのデータの構造及び具体例については、図367及び図368を参照しながら説明する。また、スイッチ通過コマンド送信/セーフスイッチ異常判定処理の詳細な手順については、図369から図372を参照しながら説明する。
以上、スイッチ関係制御処理の概要について説明した。続いて、スイッチ関係制御処理を構成する各処理の詳細な手順及びデータ構造について説明する。
[22-3.履歴監視スイッチデータ作成処理]
スイッチ関係制御処理が開始されると、受信した入力信号から履歴監視スイッチデータを作成する履歴監視スイッチデータ作成処理を実行する。前述したように、履歴監視スイッチデータ作成処理では、信号の種類によらずに共通のデータ構造となっている履歴エリア作成データに基づいて履歴監視スイッチデータを作成する。以下、履歴監視スイッチデータを作成するための構成を説明する。具体的には、まず、履歴エリア作成データのデータ構造について説明した後、具体的な履歴エリア作成データについて説明する。続いて、履歴監視スイッチデータ作成処理のフローチャート及びプログラムコードを参照しながら詳細な手順を説明する。
[22-3-1.履歴エリア作成データの構成]
図358は、本実施形態の履歴エリア作成データのデータ構造を説明する図である。履歴エリア作成データは、入力された信号に対応する履歴監視スイッチデータを作成するための情報である。具体的には、1種類の入力信号に対し、参照先(入力レベルデータエリア)の下位アドレス、スイッチビット番号、履歴監視スイッチデータを格納する領域(入力信号履歴エリア)の下位アドレス(履歴管理RWM下位アドレス)を1セットとして構成されている。各データを格納するための容量は1バイトとなっているため、履歴エリア作成データの先頭アドレス(“XXXXh”)からアドレスを1ずつ加算して参照することによって履歴エリア作成データを順次参照することができる。
参照先(入力レベルデータエリア)の下位アドレスは、主制御MPU1311の入力ポートに入力された信号の値(履歴管理スイッチ入力レベルデータ)が格納された領域の下位アドレスである。上位アドレスはあらかじめ特定されているため、下位アドレスだけを指定すればよく、これにより、必要な領域(容量)を1バイトに抑制することができる。なお、下位アドレスだけを設定するのではなく、上位アドレスを含め2バイトのアドレスデータとして設定してもよい。
主制御MPU1311の入力ポートに入力された信号は、あらかじめ定められた複数種類の信号を集約して1バイトの入力レベルデータとして記憶されている。本実施形態では、入力レベルデータが1バイト(=8ビット)で構成されているため、一の入力レベルデータにつき、最大8種類の入力信号が割り当てられる。スイッチビット番号は、履歴監視スイッチデータの作成対象となる信号が入力レベルデータの何ビット目に対応するかを特定するための情報である。スイッチビット番号は、0~7の値が設定される。具体的な構成については、図363にて後述する。
入力レベルデータを構成する信号は、シリアル通信やパラレル通信によって主制御MPU1311の入力ポートから取り込まれた信号である。例えば、近接スイッチエラー信号は、SPI通信(シリアル通信)によってとりこまれる。主制御MPU1311に入力された近接スイッチエラー信号は、SPIスイッチ入力情報データ(図346)に含まれる調整用データやマスクデータに基づいてレベルデータが生成され、“INPUT_LEV3”に格納される。
履歴監視スイッチデータを格納する領域(入力信号履歴エリア)は、入力信号の参照先(入力レベルデータエリア)と同様に、上位アドレスはあらかじめ特定されているため、下位アドレスだけを指定すればよい。これにより、必要な領域(容量)を1バイトに抑制することができる。
続いて、履歴エリア作成データの具体的な例について説明する。図359は、本実施形態の履歴エリア作成データの一例を示す図である。本実施形態の遊技機では、前述したように、履歴監視スイッチデータを作成する対象となる入力信号として、扉開放情報信号、タッチセンサ信号、発射停止スイッチ、近接スイッチエラー信号が含まれている。ここでは、発射停止スイッチ用の履歴エリア作成データを例に説明する。
発射停止スイッチの入力信号は、入力レベルデータ“INPUT_LEV4”に格納されており、参照先(入力レベルデータエリア)として“INPUT_LEV4”の格納場所の下位アドレス(“.LOW.INPUT_LEV4”)が設定されている(履歴管理スイッチ入力レベルデータ下位アドレス)。
ここで、入力レベルデータが格納される領域について説明する。図360は、本実施形態の主制御MPU1311に入力された信号を格納する領域(データエリア)のうち、履歴監視スイッチデータの作成対象となる信号を格納する領域の構成を示す図である。枠開放情報信号は“INPUT_LEV5”に格納されており、アドレスが“000Eh”であることから履歴管理スイッチ入力レベルデータ下位アドレスは“0Eh”となる。同様に、タッチセンサ信号及び発射停止スイッチ信号は“INPUT_LEV4”に格納されており、アドレスが“000Ch”であることから履歴管理スイッチ入力レベルデータ下位アドレスは“0Ch”となる。さらに、近接スイッチエラー信号は“INPUT_LEV3”に格納されており、アドレスが“000Ah”であることから履歴管理スイッチ入力レベルデータ下位アドレスは“0Ah”となる。
枠開放情報信号の該当スイッチビット番号“_DOOR_SW_BIT”は“5”が設定されており、“INPUT_LEV5”の5ビット目の値が特定されることになる。“INPUT_LEV5”は、5ビット目に“枠開放情報信号”が格納されており、その他のビットは未使用となっている。
同様に、タッチセンサ信号の該当スイッチビット番号“_HASSYA_TCH_BIT”は“2”が設定されており、“INPUT_LEV4”の2ビット目の値が特定されることになる。“INPUT_LEV4”は、0ビット目に“設定キースイッチ”、1ビット目に“払主ACK入力信号”、2ビット目に“タッチセンサ信号”、3ビット目に“発射停止スイッチ信号”、4ビット目に“主RWM消去/設定変更信号”が格納されており、5~7ビットは未使用となっている。また、発射停止スイッチ信号の該当スイッチビット番号“_HASSYA_STP_BIT”は“3”が設定されており、“INPUT_LEV4”の3ビット目の値が特定される。
さらに、近接スイッチエラー信号の該当スイッチビット番号“_SW_ERR1_BIT”は“6”が設定されており、“INPUT_LEV3”の6ビット目の値が特定される。“INPUT_LEV3”は、4ビット目に“磁気検出スイッチ”、6ビット目に“近接スイッチエラー信号”が格納されており、その他のビットは未使用となっている。
以上のように、履歴管理スイッチ入力レベルデータ下位アドレスと該当スイッチビット番号により、枠開放情報信号の入力を特定することができる。
図359の履歴エリア作成データの説明に戻る。発射停止スイッチの履歴監視スイッチデータが格納される領域(発射停止スイッチ信号履歴エリア“HS_STP_HIST”)のアドレスは、例えば、“002Ch”となっている。このとき、履歴監視スイッチデータを格納する領域(入力信号履歴エリア)の下位アドレス(履歴管理RWM下位アドレス)として、発射停止スイッチ信号履歴エリアの下位アドレス(“.LOW.HS_STP_HIST”)である“2Ch“が設定される。
履歴エリア作成データが定義された領域の最後には、履歴エリア作成データの対象となるスイッチの数である履歴監視スイッチ数(“_HIST_SW_CNT”)が定義される。具体的には、履歴エリア作成データの開始領域のアドレスから履歴監視スイッチ数が格納されるアドレスまでのバイト数を3で除算した値となる。履歴エリア作成データは、一のスイッチにつき3種類の1バイトのデータで構成されるため、直接数値を格納することなく定義することが可能となっている。このように定義することで監視対象のスイッチが増減した場合であってもプログラムを変更することなく対応することが可能となり、バグの発生などプログラムの不具合が生じる可能性を低減することができる。
なお、上述した例では、扉開放情報信号、タッチセンサ信号、発射停止スイッチ、近接スイッチエラー信号について履歴監視スイッチデータを作成するためのデータについて説明したが、これらの信号に限らず他の信号を履歴監視スイッチデータで管理してもよい。例えば、主制御基板1310で制御する役物(駆動体)の位置センサからの信号を履歴監視スイッチデータで管理し、役物が定位置に復帰したか否かを判定するようにしてもよい。また、ゲートスイッチなどの入力信号のON/OFFの切り替わりのみで判定しているスイッチやセンサについても履歴監視スイッチデータで管理してもよい。
[22-3-2.履歴監視スイッチデータ作成処理の手順]
履歴監視スイッチデータ作成処理では、履歴エリア作成データに定義された情報に基づいて、主制御MPU1311に入力された信号の履歴監視スイッチデータを作成する。以下、履歴監視スイッチデータ作成処理フローチャートとプログラムコードを参照しながら、履歴監視スイッチデータ作成処理の手順について説明する。
図361は、本実施形態の履歴監視スイッチデータ作成処理の手順を示すフローチャートである。図362は、本実施形態の履歴監視スイッチデータ作成処理のプログラムコードの一例であり、図361のフローチャートに対応する。
履歴監視スイッチデータ作成処理が開始されると、主制御MPU1311は、まず、履歴エリア作成データ(図359)の先頭アドレスを設定する(ステップ01TKS1010)。履歴エリア作成データの先頭アドレスはHLレジスタにセットされる。このとき、スイッチ入力処理でSPI入力時設定データの先頭アドレスをセットした手順と同様に、LDT命令の第2オペランドに履歴エリア作成データの先頭データアドレスからの差分値を設定して実行することにより、本来であれば3バイトの語長命令となるところ、2バイトの語長とすることができ、プログラムの容量を削減することが可能となっている。
次に、主制御MPU1311は、履歴監視スイッチデータ作成処理の繰り返し回数として履歴監視スイッチ数(“_HIST_SW_CNT”)を設定する(ステップ01TKS1020)。履歴監視スイッチ数は、例えば、Bレジスタに格納する。履歴エリア作成データのアドレス設定及び履歴監視スイッチ数の設定が終了し、履歴監視スイッチデータを作成する準備を完了すると、履歴監視スイッチ数分の履歴監視スイッチデータを作成し、各スイッチ(入力信号)に対応する入力信号履歴エリアに格納された履歴監視スイッチデータを作成(更新)する。
主制御MPU1311は、履歴監視スイッチデータの作成対象となる入力信号が格納された領域(入力レベルデータエリア)のアドレスを取得する(ステップ01TKS1030)。具体的には、履歴管理スイッチ入力レベルデータ下位アドレスの値(例えば、“.LOW.INPUT_LEV4”の値)から、入力信号が格納された領域(入力レベルデータエリア、具体的には“INPUT_LEV4”)のアドレスを取得し、所定の記憶領域(例えば、DEレジスタ)に格納する。
続いて、主制御MPU1311は、ステップ01TKS1030の処理で特定された入力レベルデータエリアに基づいて履歴監視スイッチデータの作成及び更新を行う。
まず、主制御MPU1311は、該当スイッチビット番号を取得し、所定の記憶領域(例えば、Aレジスタ)に格納する(ステップ01TKS104)。なお、該当スイッチビット番号は0から7の範囲の値が設定される。
次に、主制御MPU1311は、該当スイッチビット番号に対応するビットから履歴監視スイッチデータ作成対象の入力信号を取得し、所定の記憶領域に格納する(ステップ01TKS1050)。このとき、所定の記憶領域は、レジスタであってもよいし、RAMに割り当てられた一時領域であってもよい。信号の値はON(“1”)又はOFF(“0”)の二値であるため、本実施形態では、DEレジスタが示すアドレスのデータのうち、Aレジスタが示すビットの情報をCF(キャリーフラグ)にセットしている。例えば、扉開放情報信号の場合には、“INPUT_LEV5”の“_DOOR_SW_BIT”のビット情報(5)を取得し、“INPUT_LEV5”の5ビット目が“1”の場合にはCFに“1”(キャリーフラグ)を、“0”の場合にはCF(キャリーフラグ)に“0”をセットする。このように、特定のアドレスから任意のビット情報を取得し、取得した情報をCF(キャリーフラグ)にセットするまでの一連の処理を一の命令で実行可能としている。このように構成することによって、プログラム容量の削減を図ることが可能になっている。なお、具体的な構成については、図363にてさらに説明する。
さらに、主制御MPU1311は、履歴監視スイッチデータを格納する領域(入力信号履歴エリア)を設定し(ステップ01TKS1060)、更新対象の履歴監視スイッチデータを特定する。具体的には、ステップ01TKS1060の処理によって、DEレジスタに格納されている内容が、入力レベルデータエリアのアドレスから履歴監視スイッチデータのアドレス(履歴管理RWMアドレス)に更新される。
主制御MPU1311は、特定された更新対象の履歴監視スイッチデータを新たに取得された入力信号の値に基づいて更新する(ステップ01TKS1070)。前述のように、本実施形態の履歴監視スイッチデータは、1バイト(=8ビット)となっており、8回分の入力信号の履歴を格納可能となっている。履歴監視スイッチデータを更新する具体的な処理としては、ROLC命令により、入力信号履歴エリアに格納された履歴監視スイッチデータを1ビット分左シフトし、ステップ01TKS1050の処理で取得された入力信号の値が格納されているキャリーフラグ(CF)の値をビット0に設定する。このように実装することにより、プログラムコードを簡素化することが可能となり、プログラム容量の増大を抑制することができる。また、ROLC命令は2バイトの語長命令となっており、更新前の履歴監視スイッチデータを演算するよりも語長が短くなり、処理を高速化することができる。
主制御MPU1311は、ステップ01TKS1030からステップ01TKS1070までの処理を履歴監視スイッチデータの作成対象となるすべての入力信号に対して実行する(ステップ01TKS1080)。履歴監視スイッチデータの作成完了後(ステップ01TKS1080の結果が「YES」)、本処理を終了する。
以上のように構成することによって、信号の種類によらずに履歴監視スイッチデータを共通の手順で作成することが可能となり、遊技制御を簡素化するとともに、プログラム容量を削減することが可能となる。
[22-3-3.履歴監視スイッチデータ作成の流れ(まとめ)]
以上、履歴監視スイッチデータ作成処理の手順について説明したが、ここでは、入力された信号が履歴監視スイッチデータに反映されるまでのデータの流れを中心に説明する。図363は、本実施形態の履歴監視スイッチデータを作成する過程を説明する図であり、タッチセンサ信号が履歴監視スイッチデータに反映されるまでの過程を示す。
図363の最上段には接触検知センサ(タッチセンサ)509から入力されるタッチセンサ信号の変化を示すタイミングチャートを示し、左から右に時間が経過する。本実施形態では、主制御MPU1311の入力ポートに入力されたタッチセンサ信号は所定間隔で周期的に取り込まれる。所定間隔(サンプリング周期)は、タイマ割込み周期(4ミリ秒)となっている。図363では、“1”→“1”→“1”→“0”→“1”→“1”→“1”→“1”の順でタッチセンサ信号が取り込まれており、新たにタッチセンサ信号“1”が取り込まれた状態を示している。取り込まれたタッチセンサ信号は必要に応じて変換され、図360に示したように、入力レベルデータエリア“INPUT_LEV4”(アドレス“000Ch”)のBIT2に格納される。
スイッチ関係制御処理(履歴監視スイッチデータ作成処理)が実行され、タッチセンサ信号の履歴監視スイッチデータを更新する場合には、まず、入力レベルデータエリア“INPUT_LEV4”に格納された入力レベルデータを履歴管理スイッチ入力レベルデータとして取得する。更新前の状態では、履歴管理スイッチ入力レベルデータは“0000110”となっており、タッチセンサ信号に対応する該当スイッチビット番号が“2”であることから(図359)、BIT2に格納された入力信号“1”を取得し、キャリーフラグに一時的に格納する。
参照する入力レベルエリアから該当スイッチビット番号に指定されたビットの値を取得するプログラムコードは、図362に示したように、“LD CF,(DE).A”の一命令で実現することが可能となっている。DEレジスタには、参照する入力レベルエリアのアドレス、Aレジスタには、該当スイッチビット番号に対応する値が格納されている。上記命令は、DEレジスタが示す入力レベルエリアに格納された値からAレジスタに指定された値に基づいて取得された値をキャリーフラグ(CF)に格納するものである。
さらに、タッチセンサ信号の履歴エリア作成データの履歴監視スイッチデータ格納先(HS_TCH_HIST)下位アドレス(履歴管理RWM下位アドレス)に基づいて履歴監視スイッチデータを取得する。履歴監視スイッチデータはBIT0からBIT7まで新しい順に入力信号が格納されており、上述のタイミングチャートから履歴監視スイッチデータ格納先は“11101111”となっている。
履歴監視スイッチデータの更新は、BIT0からBIT6までの値をBIT1からBIT7にシフトする。さらに、キャリーフラグに格納された入力信号をBIT0に格納する。履歴監視スイッチデータを更新するプログラムコードは、図362に示したように、“ROLC (DE)”の一命令で実現することが可能となっている。ROLC命令は、指定された値を左に1ビットずつシフト(ローテーション)させ、キャリーフラグ(CF)の値をBIT0に格納する。ROLC命令の代わりにSLA命令(シフト命令)を使用してもよい。“ROLC (DE)”命令を実行することで、DEレジスタが示す履歴管理RWMアドレスの値に1ビット分左にシフトされた新たな履歴監視スイッチデータが更新されることになる。
[22-4.スイッチ履歴コマンド送信判定処理]
未作動大入賞口賞球禁止処理が終了すると、主制御MPU1311は、スイッチ履歴コマンド送信判定処理を実行する(ステップ01TKS0140)。前述したように、スイッチ履歴コマンド送信判定処理では、スイッチ履歴コマンド送信判定データ及び履歴監視スイッチデータ作成処理で作成された履歴監視スイッチデータに基づいてコマンドを送信するか否かを判定し、判定結果に応じて定義されたコマンドを送信する。
コマンドを送信するか否かの判定は、履歴監視スイッチデータから入力信号の変化を検出し、変化が検出された場合には対応するコマンドを送信すると判定する。例えば、本実施形態の履歴監視スイッチデータには、所定回数分(本実施形態では8回分)の入力信号の履歴が格納されているため、前回入力された信号の値と最新の入力信号の値とが異なる場合に入力信号が変化したと判定することができる。
以下、履歴監視スイッチデータに基づいてコマンドの送信を判定するための構成について説明する。まず、複数種類の入力信号を汎用的に処理するためのスイッチ履歴コマンド送信判定データのデータ構造について説明し、その後、具体的なスイッチ履歴コマンド送信判定データについて説明する。続いて、スイッチ履歴コマンド送信判定処理のフローチャート及びプログラムコードを参照しながら詳細な手順について説明する。
[22-4-1.スイッチ履歴コマンド送信判定データの構成]
図364は、本実施形態のスイッチ履歴コマンド送信判定データのデータ構造を説明する図である。前述のように、本実施形態では、入力された信号に基づくコマンドを送信するか否かを複数種類の入力信号に対して共通の処理で判定するために、送信するコマンドごとに共通のデータ構造で判定データ(コマンド送信判定対象データ)を定義している。
コマンド送信判定対象データの個別のデータは、検知対象履歴監視スイッチデータアドレス(下位アドレス)、送信コマンド値、検知マスク値及び検知判定値によって構成されている。これ以外にも、スイッチ履歴コマンド送信判定データ一組(1ブロック)分のデータ数(スイッチ入力データ1ブロックデータ数)が定義され、本実施形態のスイッチ入力データ1ブロックデータ数は5である。さらに、定義されているスイッチ履歴コマンド送信判定データの総数であるコマンド送信判定対象数mが定義されている。なお、各データの設定順は、これに限定されない。例えば、コマンド送信判定対象数mをスイッチ履歴コマンド送信判定データの先頭に定義してもよいし、コマンド送信判定対象データの個別のデータの順序も上述した例と同じ順序でなくてもよい。
検知対象履歴監視スイッチデータアドレスは、履歴監視スイッチデータ作成処理によって作成された履歴監視スイッチデータが格納された領域のアドレスである。監視スイッチデータを格納する領域は、上位アドレスはあらかじめ特定されているため、下位アドレスだけを指定すればよい。これにより、必要な領域(容量)を1バイトに抑制することができる。送信コマンド値は、送信するコマンドに対応する値であり、2バイトで構成されている。これは、コマンドを送信するパケットが2バイトであるためであり、コマンドを送信するパケットが3バイトであれば3バイトで更新され、1パケット分のコマンドサイズに応じて異なるサイズを設定するようにする。
検知マスク値は、コマンドを送信するか否かを判定するために必要なデータを履歴監視スイッチデータから抽出するための値である。コマンドを送信するか否かを判定するために必要なビットを“1”、使用されないビットを“0”として構成されている。検知判定値は、マスクされた履歴監視スイッチデータと比較することによって送信コマンド値から作成されたコマンドを送信するか否かを判定するためのデータである。
続いて、スイッチ履歴コマンド送信判定データの具体的な例について説明する。図365は、本実施形態のスイッチ履歴コマンド送信判定データの一例を示す図である。履歴監視スイッチデータに基づきコマンドを送信するか否かを判定する対象には、ハンドルレバー504に手のひらや指が触れているか否かを検出する接触検知センサ(タッチセンサ、ハンドルセンサ)509のON/OFFの切り替わりの判定、発射停止スイッチのON/OFFの切り替わり、扉の開放/閉鎖の切り替わりの判定が含まれる。まず、ハンドルレバー504の接触検知センサ509のON/OFFの切り替わりを判定するためのスイッチ履歴コマンド送信判定データについて説明する。
ハンドルレバー504の接触検知センサ509に関するスイッチ履歴コマンド送信判定データには、接触検知センサ509がOFFからONへの切り替えを検知するデータと、ONからOFFへの切り替えを検知するデータとが含まれる。
検知対象履歴監視スイッチデータアドレスは、ONからOFFへの切り替え若しくはOFFからONへの切り替えのいずれの検知であっても同じ領域を参照するため、同じアドレス(“.LOW.HS_TCH_HIST”)が設定されている。
送信コマンド値は、接触検知センサ(ハンドルセンサ)509の立ち上がり(ONからOFFへの切り替え)及び立ち下がり(ONからOFFへの切り替え)のそれぞれについて対応する値が定義される。
接触検知センサ(ハンドルセンサ)509の信号変化は、最新4回分の履歴データ(信号値)を比較して検知する。そのため、検知マスク値は、最新4ビット分のデータを特定するため、“00001111B”が設定される。なお、ONからOFFへの切り替え若しくはOFFからONへの切り替えのいずれの検知であっても対象となるビットは共通であるため、同じ値が設定されている。
接触検知センサ(ハンドルセンサ)509のOFFからONへの変化は、信号値がOFFからONに切り替わってから3回連続ONが継続した場合に切り替わったと判定する。この場合、検知判定値は“00000111B”となる。前半の4ビット(“0000B”)は検知マスク値でマスクされているため後半の4ビット(“0111B”)が一致した場合に接触検知センサ(ハンドルセンサ)509のOFFからONに変化したと判定される。同様に、ONからOFFへの変化については、信号値がONからOFFに切り替わってから3回連続OFFが継続した場合に切り替わったと判定するため、検知判定値は“00001000B”となる。なお、検知判定値は図365に示した例に限定されることはなく、例えば、2回連続ONが継続した後2回連続OFFが継続した場合にONからOFFに変化したと判定するようにしてもよい。
また、接触検知センサ(ハンドルセンサ)509のOFFからONへの切り替えを検知するスイッチ履歴コマンド送信判定データと、ONからOFFへの切り替えへの切り替えを検知するスイッチ履歴コマンド送信判定データとの間には、スイッチ入力データ1ブロックデータ数(_SW_HIST_1BLOCK)が定義される。スイッチ入力データ1ブロックデータ数は、接触検知センサ(ハンドルセンサ)509のOFFからONへの切り替えを検知するスイッチ履歴コマンド送信判定データの先頭アドレスから最終アドレスまでの差を設定することで算出されている。本実施形態のスイッチ入力データ1ブロックデータ数は5(バイト)となっている。
次に、ハンドルレバー504の発射停止スイッチのON/OFFの切り替わりを判定するためのスイッチ履歴コマンド送信判定データについて説明する。発射停止スイッチに関するスイッチ履歴コマンド送信判定データには、接触検知センサ509と同様に、OFFからONへの切り替えを検知するデータと、ONからOFFへの切り替えを検知するデータとが含まれる。
検知対象履歴監視スイッチデータアドレスは、ONからOFFへの切り替え若しくはOFFからONへの切り替えのいずれの検知であっても同じ領域を参照するため、同じアドレス(“.LOW.HS_STP_HIST”)が設定されている。送信コマンド値は、発射停止スイッチの立ち上がり(ONからOFFへの切り替え)及び立ち下がり(ONからOFFへの切り替え)のそれぞれについて対応する値が定義される。
発射停止スイッチの信号変化は、接触検知センサ509と同様に、最新4回分の履歴データ(信号値)を比較して検知する。検知マスク値及び検知判定値は、接触検知センサ509と同じであり、信号変化の判定についても同様である。
最後に、扉開放情報信号のON/OFFの切り替わりを判定するためのスイッチ履歴コマンド送信判定データについて説明する。扉開放情報信号に関するスイッチ履歴コマンド送信判定データには、接触検知センサ509と同様に、OFFからONへの切り替えを検知するデータと、ONからOFFへの切り替えを検知するデータとが含まれる。
検知対象履歴監視スイッチデータアドレスは、ONからOFFへの切り替え若しくはOFFからONへの切り替えのいずれの検知であっても同じ領域を参照するため、同じアドレス(“.LOW.DOOR_SW_HIST”)が設定されている。送信コマンド値は、扉開放情報信号の立ち上がり(ONからOFFへの切り替え)及び立ち下がり(ONからOFFへの切り替え)のそれぞれについて対応する値が定義される。
扉開放情報信号の信号変化は、接触検知センサ509や発射停止スイッチとは異なり、最新2回分の履歴データ(信号値)を比較して検知する。すなわち、直前の信号と異なる信号を受信した時点で信号が変化したと判定する。検知マスク値は、最新2ビット分のデータを特定することから“00000011B”が設定される。また、ONからOFFへの切り替えを判定する検知判定値は“00000001B”となり、OFFからONへの切り替えを判定する検知判定値は“00000010B”となる。
なお、判定の対象となる履歴データは図示したものに限らず、例えば、接触検知センサ509の信号の変化を2回分の履歴データで判定してもよいし、ノイズなどの影響を考慮して4回以上(例えば、8回)としてもよい。8回とした場合には全ビット固定でマスクすることとなり、特定のパターンの信号変化を厳密に検知することができる。さらに、最新4回分の履歴データを比較する場合には下位4ビット固定でマスクしているが、上位4ビット固定でマスクするようにしてもよい。このように構成することで、信号変化の検知後に実行される処理を開始するまで所定時間間隔を設けることができる。
なお、接触検知センサ509、発射停止スイッチ及び扉開放情報信号の信号変化は、ONからOFFへの変化とOFFからONへの変化についてスイッチ履歴コマンド送信判定データが定義されているが、いずれか一方のみの変化を検出するスイッチ履歴コマンド送信判定データが定義されていてもよい。例えば、一定期間の報知を行う場合には信号の変化に関わらず一定期間経過後に報知を終了するので、OFFからONへの変化時のみ報知用コマンドを送信すればよい。
さらに、スイッチ履歴コマンド送信判定データの最後には、コマンド送信判定対象数が定義されている。コマンド送信判定対象数は、スイッチ履歴コマンド送信判定データが定義されている領域の先頭アドレスから最後のデータのアドレスまでの差分をスイッチ入力データ1ブロックデータ数で除算することで算出されている。スイッチ入力データ1ブロックデータ数やコマンド送信判定対象数を定義されているデータのアドレスから算出することによって、データ構造やデータ数が変動した場合であってもプログラムコードの修正を最小限にすることができる。
なお、データ構造やデータ数が変動しない場合には、スイッチ履歴コマンド送信判定データの先頭にあらかじめ直接数値を定義するようにしてもよい。さらに、コマンド送信判定対象数を定義せずに、スイッチ履歴コマンド送信判定データの最終データを検出した場合にスイッチ履歴コマンド送信判定処理を終了するように制御してもよい。
また、本実施形態のスイッチ履歴コマンド送信判定データでは、タッチセンサ信号などの履歴情報(履歴監視スイッチデータ)として入力処理を行う信号を対象としているが、入賞信号等のエッジ情報に基づいて判定する信号であっても適用可能である。始動入賞口の入賞判定(例えば、中始動口スイッチ)を対象とする場合にも適用可能である。以下、適用例について図を参照しながら説明する。
図366は、本実施形態のスイッチ履歴コマンド送信判定データをエッジ情報として入力信号を処理するスイッチに適用する例を示す図である。中始動口スイッチの入力信号を格納する領域は、入力エッジデータ1“INPUT_EDG1”(図360)のBIT0となっている。そのため、入力信号を格納する領域のアドレスには、“INPUT_EDG1”の下位アドレス(“LOW.INPUT_EDG_1”)が設定される。このとき、検知マスク値を“00000001B”とすることでBIT0に対応する中始動口スイッチの入力信号が判定対象となる。検知判定値を“00000001B”とすることで入力エッジデータ1のBIT0が“1”の場合に送信コマンド値として定義されたコマンド(“_SID_ON_CM”)が送信される。
以上のように構成することによって、履歴情報(履歴監視スイッチデータ)として管理する入力信号だけでなく、エッジ情報として処理する入力信号に対しても同じ手順でコマンドを送信することが可能となり、処理を共通化して開発効率を向上させ、プログラム容量を削減することが可能となる。
[22-4-2.スイッチ履歴コマンド送信判定処理の手順]
スイッチ履歴コマンド送信判定処理では、スイッチ履歴コマンド送信判定データに定義された情報に基づいて、履歴監視スイッチデータから信号の変化を検知する。以下、履歴コマンド送信判定処理のフローチャートとプログラムコードを参照しながら、信号の変化を検知する手順について説明する。
図367は、本実施形態の履歴コマンド送信判定処理の手順を示すフローチャートである。図368は、本実施形態の履歴コマンド送信判定処理のプログラムコードの一例であり、図367のフローチャートに対応する。
スイッチ履歴コマンド送信判定処理が開始されると、主制御MPU1311は、まず、スイッチ履歴コマンド送信判定データ(図365)の先頭アドレスを設定する(ステップ01TKS2010)。スイッチ履歴コマンド送信判定データの先頭アドレスはDEレジスタにセットされる。
次に、主制御MPU1311は、スイッチ履歴コマンド送信判定処理の繰り返し回数として、コマンド送信判定対象数(“_SW_HIST_ALLBLOCK”)を設定する(ステップ01TKS2020)。コマンド送信判定対象数はBレジスタに設定される。スイッチ履歴コマンド送信判定データアドレスの設定及びコマンド送信判定対象数の設定が完了すると、検知対象となる履歴監視スイッチデータを取得し、コマンドを送信するか否かを判定する。
主制御MPU1311は、まず、検知対象となる履歴監視スイッチデータを取得する(ステップ01TKS2030)。具体的には、スイッチ履歴コマンド送信判定データから検知対象履歴監視スイッチデータアドレスを取得し、検知対象となる履歴監視スイッチデータを特定し、Wレジスタに格納する。
次に、主制御MPU1311は、スイッチ履歴コマンド送信判定データから送信コマンド値を取得する(ステップ01TKS2040)。送信コマンド値は2バイトであり、HLレジスタに格納する。
続いて、主制御MPU1311は、ステップ01TKS2030の処理で取得した履歴監視スイッチデータに基づいてスイッチの信号値が変化したか否かを判定する(ステップ01TKS2050)。具体的には、まず、取得した履歴監視スイッチデータを検知マスク値によりマスクする(ステップ01TKS2050-1)。さらに、検知判定値と比較することによって(ステップ01TKS2050-2)、信号値の変化を判定する(ステップ01TKS2050-3)。マスク後の履歴監視スイッチデータと検知判定値が一致した場合には信号値が変化したと判定する。
主制御MPU1311は、信号値が変化したと判定した場合には(ステップ01TKS2050の結果が「YES」)、ステップ01TKS2040の処理で取得され、HLレジスタに格納された送信コマンド値についてコマンド格納処理を実行することによって送信バッファに格納する(ステップ01TKS2060)。
主制御MPU1311は、信号値が変化しなかったと判定した場合(ステップ01TKS2050の結果が「NO」)、又は、コマンド格納処理(ステップ01TKS2060)の実行後、対象となるコマンドの判定をすべて終了したか否かを判定する(ステップ01TKS2070)。すべてのコマンドに対する判定を終了した場合には、履歴コマンド送信判定処理を終了する。
以上のように構成することによって、本実施形態の遊技機では、マスク値や検知判定値を変更することによって信号値のON/OFFの変化だけでなく、スイッチ履歴コマンド送信判定データを追加又は修正するだけで特定の変化パターンを検知することも可能となる。例えば、不正行為が行われている場合や故障などの障害・異常発生時に発生しやすい信号変化のパターンが把握できていれば、この信号変化のパターンに対応する値の設定を行なうだけでよく、プログラム容量を増加することなく、データの登録だけで容易に追加または削除することが可能とすることができ、これにより、未然に不具合を発見できる可能性を高めることができる。
[22-5.内部機能レジスタ(内蔵レジスタ)に格納された情報への適用例]
上記説明した構成では、各種スイッチ又はセンサから主制御MPU1311に入力された信号を対象として、履歴監視スイッチデータを作成し、当該履歴監視スイッチデータに基づいてコマンドの送信などの処理を行なっていた。これに対し、本実施形態の履歴監視スイッチデータ作成処理やスイッチ履歴コマンド送信判定処理は、主制御MPU1311の内部機能レジスタを指定することも可能となっている。以下、内部機能レジスタに格納された情報に基づいて履歴監視スイッチデータ作成処理やスイッチ履歴コマンド送信判定処理を適用する手段について説明する。
[22-5-1.履歴監視スイッチデータの作成]
図369は、本実施形態の主制御MPU1311の乱数エラーを格納する内部機能レジスタの一例を示す図である。本実施形態の主制御MPU1311には、汎用レジスタの他に、演算結果や乱数値を格納したり、乱数生成時のエラー内容を格納したりすることを可能とする内部機能レジスタを設けることが可能となっている。図369では、乱数エラーを記憶する内部機能レジスタの一例を示しており、レジスタごとにアドレスが定義されている。例えば、乱数を発生させる周期(クロック)に異常が発生したエラーを示す乱数クロックエラーはレジスタ“_RDER3”のBIT2に格納されており、エラー発生時には“1”が設定される。また、レジスタ“_RDER3”には、アドレス“111Ah”が設定されている。
ここで、乱数クロックエラーの履歴監視スイッチデータを作成する手順について説明する。図370は、本実施形態の主制御MPU1311の内部機能レジスタに格納された乱数クロックエラーの履歴エリア作成データの一例を示す図である。図370を参照すると、履歴管理スイッチ入力レベルデータの下位アドレスの代わりに内部機能レジスタのアドレス“_RDER3”が参照先のアドレスとして設定されている。さらに、該当スイッチビット番号には“_RND_CLK_ERR_BIT”が設定されており、乱数クロックエラーはレジスタ“_RDER3”のBIT2に格納されていることから、“_RND_CLK_ERR_BIT”の値は“2”となる。最後に、作成された履歴監視スイッチデータを格納される領域の下位アドレスが設定される。このように、履歴エリア作成データを定義することで、各種スイッチやセンサから入力された信号と同様に処理して履歴監視スイッチデータを作成することが可能となる。また、作成された履歴監視スイッチデータに基づいてスイッチ履歴コマンド送信判定処理を実行することによって対応するコマンドを送信することが可能となる。なお、作業領域設定処理(_WORK_AD_INC_HL;ステップ01TKS1030)実行時に上位アドレスを含んだ2バイトの値が指定されている場合には上位アドレスを補完せずにそのままDEレジスタに設定すればよい。また、内部機能レジスタの上位アドレスがRAMの上位アドレスと異なる場合であっても、作業領域設定処理で対応する上位アドレスを補完するようにしてもよい。以上のように構成することによって、各種スイッチやセンサから入力された信号であっても、内部機能レジスタに格納された情報であっても、共通の処理で履歴監視スイッチデータを作成することが可能となる。これにより、履歴監視スイッチデータを作成するためのプログラムを集約することが可能となり、プログラム容量を削減することができる。
[22-5-2.履歴監視スイッチデータを使用しないコマンド送信]
ここで、履歴監視スイッチデータを使用せずにスイッチ履歴コマンド送信判定処理を実行するためのスイッチ履歴コマンド送信判定データについて説明する。履歴監視スイッチデータを使用せずにスイッチ履歴コマンド送信判定処理を実行する手順は、前述した入賞信号等のエッジ情報に基づいてコマンドを送信する手順と同じである。
図371は、本実施形態のスイッチ履歴コマンド送信判定データを内部機能レジスタ(乱数クロックエラー)に適用する例を示す図である。適用例とする情報は、履歴監視スイッチデータを作成する例と同様に乱数クロックエラーとする。
図371を参照すると、履歴監視スイッチデータを格納する領域に対応させるように、乱数クロックエラー状態を格納する内部機能レジスタ“_RDER3”が設定されている。さらに、検知マスク値を“00000100B”とすることでBIT2に対応する乱数クロックエラー状態が判定対象となる。検知判定値を“00000100B”とすることで乱数クロックエラー状態が“1(エラーあり)”の場合に送信コマンド値として定義されたコマンド(“_RND_CLK_ERR_CM”)が送信される。このように構成することによって、履歴情報(履歴監視スイッチデータ)を作成せずに履歴情報を作成した場合と同じ手順でコマンドを送信することが可能となる。
以上のように、内部機能レジスタに格納された情報についても本実施形態を適用することは可能であり、各種スイッチやセンサから入力された信号であっても、内部機能レジスタに格納された情報であっても、共通の処理で検知マスク値及び検知判定値に基づいてコマンドを送信することが可能となる。これにより、履歴監視スイッチデータを作成する場合と同様に、コマンドを送信するためのプログラムも集約することが可能となり、プログラム容量を削減することができる。
また、本実施形態によれば、判定対象となる情報やコマンドの種類に応じて履歴監視スイッチデータを選択することも可能となる。例えば、乱数クロック発生時に即時に遊技を停止する場合には、乱数クロック異常に対応する履歴監視スイッチデータを参照することなく、レジスタの値を直接参照してコマンドを送信するように構成し(図371のデータ構成)、その後、所定の期間、乱数クロックエラーが継続した場合には、乱数クロック異常に対応する履歴監視スイッチデータを作成し、スイッチ履歴コマンド送信判定データとして乱数クロック異常に対応する履歴監視スイッチデータを参照アドレスとし、乱数異常の継続時のコマンドと、所定期間としての検知マスク値(00011111b)と検知判定値(00011111b)を設定するようにしてもよい。
このように、2段階に分けるのは、内蔵レジスタの乱数クロック異常のビット情報について、外乱ノイズ等の影響により、乱数クロック異常ではないにも関わらず、誤って異常と判定してしまった場合を想定し、所定の期間継続したか否かを保険として設けている。
なお、乱数クロック異常が解除されたときにコマンドを発行する場合には、乱数クロック異常解除時の判定用のスイッチ履歴コマンド送信判定データとして、乱数クロック異常に対応する履歴監視スイッチデータを参照アドレスとし、乱数異常の解除時のコマンドと、所定期間としての検知マスク値(例えば“0001111b”)と検知判定値(例えば“00001000b”)を設定するようにしてもよい。
なお、履歴監視スイッチデータを作成するか否かを用途に応じて切り替えることは、各種スイッチやセンサの場合についても同様である。スイッチ履歴コマンド送信判定データを定義することによって、履歴監視スイッチデータに基づいてコマンドの送信を判定する場合であっても、履歴監視スイッチデータを作成せずにコマンドの送信を判定する場合であっても、スイッチ履歴コマンド送信判定処理を共通の処理とすることが可能となり、プログラムを共用することが可能となり、プログラム容量を削減することが可能となる。
[22-6.スイッチ通過コマンド送信/セーフスイッチ異常判定処理]
スイッチ履歴コマンド送信判定処理が終了すると、主制御MPU1311は、スイッチ通過コマンド送信/セーフスイッチ異常判定処理を実行する(ステップ01TKS0150)。前述したように、スイッチ通過コマンド送信/セーフスイッチ異常判定処理では、入賞を検知した場合にはスイッチ通過コマンドデータに基づいてコマンドの送信やセーフ球数(セーフ判定カウント値)の計数を行う。
以下、スイッチ通過コマンドデータ及びスイッチ通過コマンド送信/セーフスイッチ異常判定処理について説明する。まず、複数種類の入賞口(始動口)の入賞(入賞を検出するスイッチ/センサからの信号)に対して汎用的に処理を可能とするためのスイッチ通過コマンドデータのデータ構造について説明し、その後、具体的なスイッチ通過コマンドデータについて説明する。続いて、スイッチ通過コマンド送信/セーフスイッチ異常判定処理のフローチャート及びプログラムコードを参照しながら詳細な手順を説明する。
[22-6-1.スイッチ通過コマンドデータの構成]
図372は、本実施形態のスイッチ通過コマンドデータのデータ構造を説明する図である。前述のように、本実施形態では、複数種類の入賞口への入賞を汎用的に処理するために、入賞口(スイッチ)ごとに共通のデータ構造でスイッチ通過コマンドデータを定義している。
スイッチ通過コマンドデータは、最初にデータ設定数(スイッチ通過コマンドデータが定義されている入賞口(スイッチ)の数)が定義される。続いて入力エッジごとに入賞口ごとの個別データが定義される。入賞口ごとの個別データは、エッジデータ参照先情報、コマンド値及びセーフカウント数によって構成される。なお、データ設定数は、入賞口ごとの個別データを1ブロックとした場合のブロック数となる。
エッジデータ参照先情報は、入賞を検知するスイッチ/センサの入力エッジデータの参照先を示す情報が格納されている。エッジデータ参照先情報は、入力エッジデータの格納領域の識別子と、参照するスイッチの入力エッジデータ内のビット情報を含む。
コマンド値は、入賞が検知された場合(スイッチがON判定の場合)に送信するコマンドの値である。コマンド値は、2バイトで構成されており、コマンド格納処理によって送信バッファに格納される。
セーフカウント数は、入賞を検知した入賞口(スイッチ)に対応するカウンタと当該カウンタを増減させる値が定義される。例えば、一般入賞口に遊技球が入賞した場合には、セーフ判定カウント値(セーフ球数)を加算する。一方、セーフスイッチ(賞球のある入賞口に入賞した後に遊技球が回収される場所(セーフ口)に設けられたスイッチ)が遊技球の通過を検出した場合には、セーフ判定カウント値を減算する。賞球のある入賞口を通過した遊技球はセーフ口を通過するため、正常な状態であればセーフ判定カウント値は0となる。そこで、計測誤差などを考慮して、セーフ判定カウント値が上限閾値(例えば、100)より大きい場合や下限閾値(例えば、-100)よりも小さい場合には、何らかの異常が発生している可能性が高いと判定できる。なお、賞球が発生しない入賞口やゲートに遊技球が通過した場合にはセーフ判定カウント値を増減させないセーフカウント数が設定される。また、上限閾値及び下限閾値は、前述した例に限定されず、遊技機の構造や遊技の内容に応じて適切な値が設定される。
続いて、スイッチ通過コマンドデータの具体的な例について説明する。図373は、本実施形態のスイッチ通過コマンドデータの一例を示す図である。スイッチ通過コマンドデータは、まず、データ設定数が定義され、続いて入賞口ごとの個別データが定義される。データ設定数は、前述のように、定義された入賞口ごとの個別データの総数であるが、本実施形態では、スイッチ通過コマンドデータの終端を示すラベルのアドレスと入賞口ごとの個別データを構成するデータの容量に基づいて算出されている。
入賞口ごとの個別データについて、中始動口(始動口1)を例に説明すると、エッジデータ参照先情報は、入力エッジデータ1(“_SWCM_P1”)の始動口1に対応するビット(“_TSHID1_BIT”)に格納されている。入力エッジデータを示す値が上位4ビットに対応し、始動口に対応するビットデータが下位4ビットに対応する。本実施形態では、エッジデータ参照先情報に対して所定の演算を行うことによって入力エッジデータを示す値(例えば、“_SWCM_P1”に対応)を抽出し、抽出された値に基づいてスイッチアドレスデータ“SW_ADD_W”(図372B)から入力エッジデータ(例えば、入力エッジデータ1(“INPUT_EDG1”)を特定する。
ここで、スイッチアドレスデータ“SW_ADD_W”の構成を説明し、あわせて、入力エッジデータを特定する手順について説明する。図374は、本実施形態のスイッチアドレスデータの一例を示す図である。スイッチアドレスデータは、入力エッジデータを特定するための情報(例えば、“_SWCM_P1”)と、対応する入力エッジデータ(例えば、入力エッジデータ1(“INPUT_EDG1”))が定義されている。図374を参照すると、“_SWCM_P1”には“00h”が設定され、_SWCM_P2には“08h”が設定されている。“_SWCM_P3”及び“_SWCM_P4”については、対象となるスイッチが増えた場合に対応するための予備である。
続いて、セーフスイッチを例とし、入力エッジデータを特定する手順について説明する。以下の説明で付されているステップ番号は、図377のプログラムコード(対象ビットのデータを取得する処理)に付されているステップ番号に対応する。
具体的な手順としては、まず、エッジデータ参照先情報を取得する(ステップ01TKS3040-3)。このとき、エッジデータ参照先情報は、“_SWCM_P2(08h)+_EX_SAFE_SW_BIT(06h)”となっており、“0Eh(14)”となっている。次に、エッジデータ参照先情報に対し、所定の演算を実行する。具体的には、8で除算し(ステップ01TKS3040-4)、除算結果(余りを除く)を2倍する(ステップ01TKS3040-5)。さらに、得られた値をHLレジスタに格納されたスイッチアドレスデータの先頭アドレス“9138h”に加算する(ステップ01TKS3040-6)。セーフスイッチの場合には演算結果が“2”となるため、HLアドレスの値は“913Ah”となる。アドレス“913Ah”を参照すると、入力エッジデータ2(“INPUT_EDG2”)を特定することができる。
以上のように構成することでエッジデータ参照先情報を1バイトで実装することが可能となり、データ容量を削減することができる。なお、図375に示すように、エッジデータ参照先情報は、入力エッジデータエリアと対応ビットとを分けて定義するようにしてもよい。このように構成することでエッジデータの参照先をプログラムコードから開発者が把握しやすくなりプログラムの可読性が向上する一方、個別データ1件あたりの容量が1バイト分多くなりデータ設定数分だけ容量が増大することになる。
コマンド値は、エッジデータ参照先情報がONに設定されている場合に送信されるコマンドに対応する値が定義される。コマンド値は、2バイトで構成されている。中始動口スイッチのコマンド値は始動口1コマンド(“_SID1_ON_CM”)が設定されており、エッジデータ参照先情報がONに設定されている場合には始動口1コマンドが送信される。一方、右大入賞口カウントスイッチのコマンド値は「コマンド無し」(“_NO_CM”)が設定されており、右大入賞口に遊技球が入賞した場合であってもコマンドは送信されないようになっている。
本実施形態では、コマンド値として「コマンド無し」(“_NO_CM”)を設定可能とすることで入賞時にコマンドが送信されない場合であっても共通のデータ構造とすることが可能となっている。このように構成することによって、入賞判定時のコマンドの有無に関わらずデータの呼び出しや演算などの処理の共通化を図ることが可能となり、制御を簡素化することができる。
また、コマンドを送信しないことを示すコマンド値“_NO_CM”に“0”を定義することで、HLレジスタにコマンド値が設定された際(“LD HL,(DE+)”;ステップ01TKS3050)にZフラグが“1”に設定される。これにより、条件判定と処理の実行、具体的には、コマンドの送信判定(“NZ”(Zフラグが“1”でない場合、すなわち、コマンド値が“_NO_CM”でない場合に真);ステップ01TKS3070)とコマンドの送信(コマンド格納処理“COM_SET”の実行;ステップ01TKS3080)を一の命令(“INV NZ,COMSET”)で実現することが可能となる。以上のように構成することで、入賞時のコマンド送信にかかわる処理の汎用化が実現されている。
中始動口スイッチのセーフカウント数は、入賞時に賞球が払い出されるため、セーフ判定カウント値に加算することを示す値(入賞口通過時加算カウント;“_INC_SAFE_CNT”;“1(01h)”)が設定されている。また、前述したように、セーフスイッチのセーフカウント数は、セーフ判定カウント値から減算することを示す値(入賞口通過時減算カウント;“_DEC_SAFE_CNT”;“-1(FFh)”)が設定されている。さらに、遊技球が入賞せずにアウト口から排出される場合、アウトスイッチのセーフカウント数は、スイッチ通過時非加算カウント(“_NON_SAFE_CNT”;“0(00h)”)が設定され、セーフ判定カウント値に加算も減算もされないようになっている。また、セーフ判定カウント値の更新は、加算する場合、減算する場合、更新しない場合のいずれであっても定義されたセーフカウント数を加算すればよいため、共通の命令で実装することができるためプログラム構造を簡素化することができる。
[22-6-2.スイッチ通過コマンド送信処理の手順]
スイッチ通過コマンド送信/セーフスイッチ異常判定処理は、スイッチ通過コマンド送信処理実行時に処理対象のスイッチ(入賞口)を特定した状態でセーフスイッチ異常判定処理を呼び出すように構成されている。まず、スイッチ通過コマンド送信処理について説明し、続けてセーフスイッチ異常判定処理について説明する。
図376は、本実施形態のスイッチ通過コマンド送信処理の手順を示すフローチャートである。図377は、本実施形態のスイッチ通過コマンド送信処理のプログラムコードの一例であり、図376のフローチャートに対応する。
スイッチ通過コマンド送信処理では、スイッチ通過コマンドデータのエッジデータ参照先情報に基づいてコマンドを送信する対象のスイッチ(入賞口)を特定し、スイッチの信号値がONの場合に指定されたコマンドを送信する。
スイッチ通過コマンド送信/セーフスイッチ異常判定処理が開始されると、主制御MPU1311は、まず、現在のセーフ判定カウント値を取得する(ステップ01TKS3010)。セーフ判定カウント値はCレジスタに格納される。続いて、主制御MPU1311は、スイッチ通過コマンドデータ(図373)の先頭アドレスを設定する(ステップ01TKS3020)。スイッチ通過コマンドデータの先頭アドレスはDEレジスタにセットされる。さらに、主制御MPU1311は、データ設定数を取得する(ステップ01TKS3030)。データ設定数は、Bレジスタに格納される。ステップ01TKS3030の処理が終了すると、スイッチごとのコマンド送信判定及びセーフスイッチ異常判定処理を実行する。
次に、主制御MPU1311は、処理対象のスイッチを特定し、特定されたスイッチの信号値(対象ビット)を取得する(ステップ01TKS3040)。具体的には、まず、スイッチアドレスデータテーブルを設定する。スイッチアドレスデータテーブルには、対象ビットが含まれる入力エッジデータを特定するためのデータが格納されており、入力エッジデータのアドレスを取得することができる。さらに、スイッチ通過コマンドデータからエッジデータ参照先情報を取得する。最後にエッジデータ参照先情報及びスイッチアドレスデータテーブルに基づいて対象ビットの値を特定し、所定の領域(キャリーフラグ;CF)に対象ビットの情報(“0”又は“1”)を格納する。
具体的には、スイッチ通過コマンドデータから取得されたエッジデータ参照先情報をAレジスタに設定し(ステップ01TKS3040-1~3)、プログラムコードに示す演算を行う(ステップ01TKS3040-4~6)。これにより、入力エッジデータを示す値(例えば、“_SWCM_P1”)が抽出される。抽出された値をスイッチアドレスデータテーブル“SW_ADD_W”の先頭アドレスから加算したアドレスにエッジデータ参照先情報に対応する入力エッジデータのアドレス(例えば、“INPUT_EDG1”)が定義されており、入力エッジデータ(のアドレス)を特定し、特定された入力エッジデータのアドレスをHLレジスタに格納する(ステップ01TKS3040-7)。
“LD CF,(HL).A”命令では、HLレジスタに格納された値からAレジスタの下位3ビットで指定される内容を取得する。HLレジスタには特定された入力エッジデータのアドレスが格納されており、Aレジスタには前述のようにエッジデータ参照先情報は格納され、エッジデータ参照先情報の下位4ビットは判定対象となる始動口に対応するビットデータとなっている。対象ビットの値は0から7の範囲であるため下位3ビットの値を指定すれば“LD CF,(HL).A”命令によって特定した入力エッジデータから指定したビットデータを取得し、CF(キャリーフラグ)にセットすることができる。このように構成することによって、入力エッジデータを特定する情報及び判定対象となる始動口に対応するビットを特定する情報をあわせて1バイトで実現することが可能となる。さらに、入力エッジデータ及び対応ビットが特定されると、入力エッジデータから特定されたビット情報を取得し、取得した情報をCF(キャリーフラグ)にセットするまでの一連の処理を一の命令で実行し、プログラム容量の削減を図ることが可能になっている。
続いて、主制御MPU1311は、スイッチ通過コマンドデータからコマンド値を取得する(ステップ01TKS3050)。さらに、対象ビットの値がONであるか否かを判定する(ステップ01TKS3060)。
主制御MPU1311は、対象ビットの値がONの場合には(ステップ01TKS3060の結果が「YES」)、コマンド値がコマンド無し(“_NO_CM”)でなければコマンド格納処理を実行する(ステップ01TKS3080)。コマンド格納処理を実行することで送信バッファにコマンドが格納される。その後、主制御MPU1311は、セーフスイッチ異常判定処理を実行する(ステップ01TKS3090)。セーフスイッチ異常判定処理は、図378及び図379にて後述する。
本実施形態では、対象のコマンド値の判定とコマンド格納処理の実行が一の命令で実現されている。ステップ01TKS3050の処理において、“LD HL,(DE+)”命令によってHLレジスタにコマンド値を取り込んだ際、送信するコマンドがない場合には、コマンド値“_NON_CM”が設定される。コマンド値“_NON_CM”は、“0”であり、送信するコマンドがある場合には“0”以外の値が設定される。そのため、コマンドが送信される場合にはZフラグに“1”が、コマンドが送信されない場合には“0”がセットされる。このとき、“INV NZ,COM_SET”命令により、Zフラグによりコマンドを送信するか否かの判定を行い、コマンドを送信する場合にはコマンド格納処理(“COM_SET”)の実行する一連の処理を一の命令で実現している。これにより、コマンドを送信するか否かの判定と、判定結果に対応する処理(コマンド格納処理)を個別の命令で実行する必要がなくプログラム容量の削減を図ることが可能となる。
セーフスイッチ異常判定処理の実行後、又は、対象ビットの値がONでない場合(OFFの場合)には(ステップ01TKS3060の結果が「NO」)、主制御MPU1311は、すべてのスイッチについて処理が終了したか否かを判定する(ステップ01TKS3100)。すべてのスイッチについて処理が終了していない場合には(ステップ01TKS3100の結果が「NO」)、次のスイッチについてステップ01TKS3040から処理を実行する。すべてのスイッチについて処理が終了した場合には(ステップ01TKS3100の結果が「YES」)、本処理を終了する。
[22-5-3.セーフスイッチ異常判定処理の手順]
図378は、本実施形態のセーフスイッチ異常判定処理の手順を示すフローチャートである。図379は、本実施形態のセーフスイッチ異常判定処理のプログラムコードの一例であり、図378のフローチャートに対応する。
セーフスイッチ異常判定処理では、スイッチ通過コマンド送信処理においてスイッチ通過コマンドデータのエッジデータ参照先情報に基づいて特定されたスイッチ(入賞口)について、セーフ判定カウント値を更新し、不正な入賞が発生していないかなどの異常を判定する。
セーフスイッチ異常判定処理が開始されると、主制御MPU1311は、まず、Cレジスタに格納されているセーフ判定カウント値に、スイッチ通過コマンドデータから取得されたセーフカウント数を加算する(ステップ01TKS4010)。続いて、更新されたセーフ判定カウント値を全セーフ判定カウントエリアに格納する(ステップ01TKS4020)。
本実施形態のセーフカウント数は3種類定義されており、前述したように、1加算する場合(“_INC_SAFE_CNT”;“1(01h)”)、1減算する場合(“_DEC_SAFE_CNT”;“-1(FFh)”)、加算も減算もしない場合(“_NON_SAFE_CNT”;“0(00h)”)がある。1加算する場合は、入賞により賞球が発生する場合である。1減算する場合は、前述のように、セーフスイッチによって遊技球が検知された場合である。加算も減算もしない場合は、賞球が発生しないスイッチ(例えば、普図ゲート)が入賞(通過)を検知した場合である。また、セーフ判定カウント値の更新は、加算する場合、減算する場合、更新しない場合のいずれであっても定義されたセーフカウント数を加算すればよいため、加算する場合、減算する場合、更新しない場合のいずれであっても共通の命令で実装することができ、プログラム開発の効率化、容量の削減を図ることができる。
セーフ判定カウント値が更新され、所定の領域に格納されると、セーフ判定カウント値が正常な範囲内であるか否か(異常値であるか否か)を判定する(ステップ01TKS4030)。具体的には、主制御MPU1311は、まず、Cレジスタに格納されたセーフ判定カウント値を下限閾値(“_ILG_SAFE_JDG1”)と比較する(ステップ01TKS4030-1)。セーフ判定カウント値が下限閾値以上(かつ、0以下)の場合には(ステップ01TKS4030の結果が「NO」)、セーフ判定カウント値は正常であるので本処理を終了する。
また、主制御MPU1311は、セーフ判定カウント値が下限閾値以下、又は、下限閾値以上、かつ、0より大きい場合には、セーフ判定カウント値と上限値とを比較する(ステップ01TKS4030-2)。セーフ判定カウント値が上限値以下(、かつ、0以上)の場合には(ステップ01TKS4040の結果が「YES」)、セーフ判定カウント値は正常であるので本処理を終了する。
主制御MPU1311は、セーフ判定カウント値が異常、すなわち、セーフ判定カウント値が下限閾値未満、又は、上限閾値よりも大きい場合には(ステップ01TKS4030の結果が「NO」)、遊技停止要因番号をセーフスイッチ異常時遊技停止設定データに設定する(ステップ01TKS4040)。さらに、セーフ判定カウント値をクリアする(ステップ01TKS4050)。セーフ判定カウント値のクリアは、全セーフ判定カウントエリアに“00H”を格納し(ステップ01TKS4050-1)、Cレジスタをクリアする(ステップ01TKS4050-2)。
以上のように構成することによって、本実施形態の遊技機では、入賞口ごとに制御が異なる場合であっても共通の処理で対応することが可能となり、プログラムコードを簡素化することが可能となる。また、スイッチ通過コマンドデータを追加修正することによって遊技機の仕様の変更に容易に対応することが可能となるため、遊技機の開発効率を向上させることができる。
なお、図面に示したプログラムコードにより処理実行時に、値を各種レジスタに格納しているが、これらは一例であり、値を格納するレジスタは図面に示したレジスタに限定されるものではなく、任意のレジスタに格納してもよい。
本明細書において、特許請求の範囲に記載した発明も含め、代表的な観点の発明として、以下のものがあげられる。
(1)遊技の進行を制御する遊技制御手段を備える遊技機であって、
前記遊技制御手段は、
前記遊技の進行を制御するプログラムを実行する演算手段と、
前記演算手段に入力された入力信号を記憶可能な入力信号記憶手段と、
前記入力信号記憶手段から入力信号を周期的に取得し、当該入力信号の種類ごとに定義された履歴情報作成データに基づいて、当該入力信号を時系列順に配置した入力信号履歴情報を作成可能な履歴情報作成手段と、
前記入力信号履歴情報を記憶可能な履歴情報記憶手段と、
を備え、
前記履歴情報作成データは、
前記入力信号が格納された領域を示す第1情報と、
前記入力信号に対応する入力信号履歴情報を格納する領域を示す第2情報と、
を含み、
前記履歴情報作成手段は、前記入力信号の種類に関わらず、前記第1情報に基づいて前記入力信号記憶手段から入力信号を取得し、当該取得された入力信号から前記入力信号履歴情報を作成し、当該作成された入力信号履歴情報を前記第2情報に基づいて前記履歴情報記憶手段を記憶する
ことを特徴とする遊技機。
(2)遊技の進行を制御する遊技制御手段を備える遊技機であって、
前記遊技制御手段は、
前記遊技の進行を制御するプログラムを実行する演算手段と、
前記演算手段に入力された入力信号を記憶可能な入力信号記憶手段と、
前記入力信号記憶手段から入力信号を周期的に取得し、当該入力信号の種類ごとに定義された履歴情報作成データに基づいて、当該入力信号を時系列順に配置した入力信号履歴情報を作成可能な履歴情報作成手段と、
前記入力信号履歴情報を記憶可能な履歴情報記憶手段と、
を備え、
前記履歴情報作成データは、
前記入力信号が格納された領域を示す前記入力信号記憶手段を特定可能な第1情報と、
前記入力信号に対応する前記入力信号履歴情報を格納する領域を示す前記履歴情報記憶手段を特定可能な第2情報と、
前記第1情報で特定される前記入力信号記憶手段から取得する入力信号の位置を特定する第3情報と、
を含み、
前記履歴情報作成手段は、
所定の周期で実行され、前記第1情報及び前記第3情報に基づいて特定される前記入力信号記憶手段から取得する入力信号を特定し、当該特定された入力信号を入力情報として取得し、前記第2情報に基づいて特定される履歴情報記憶手段に記憶された情報を演算処理するとともに、当該取得した前記入力情報を当該履歴情報記憶手段の所定の位置に格納し、
前記入力信号の種類にかかわらず共通の処理で前記入力信号履歴情報を作成可能とすることを特徴とする遊技機。
(1)及び(2)の遊技機では、遊技機に備えられた各種スイッチやセンサから演算手段(主制御MPU1311)入力された信号を時系列順に配置した履歴情報を作成することが可能となる。このとき、入力信号の種類に相違があっても、入力信号の取得、履歴情報の作成及び格納といった一連の処理を共通の処理で実現することができるため、プログラム構造を簡素化し、プログラム容量の削減を実現することができる。
(3)遊技の進行を制御する遊技制御手段を備える遊技機であって、
前記遊技制御手段は、
前記遊技の進行を制御するプログラムを実行する演算手段と、
前記演算手段に入力された複数種類の入力情報を記憶可能な入力情報記憶手段と、
前記入力情報に対応する入力情報判定データに基づいて、当該入力情報のパターンを判定する入力情報判定手段と、
を備え、
前記入力情報判定データは、
前記入力情報が格納された領域を示す前記入力情報記憶手段を特定可能な第1情報と、
前記入力情報のパターンを判定する範囲を特定する第2情報と、
前記入力情報のパターンを判定するための第3情報と、
を含み、
前記入力情報判定手段は、
前記第1情報に基づいて特定された前記入力情報記憶手段から前記入力情報を取得し、当該取得された入力情報から前記第2情報に基づいて特定された範囲に該当する入力情報を抽出し、前記第3情報に基づいて当該抽出された入力情報のパターンを判定し、
前記入力情報の種類にかかわらず共通の処理で前記入力情報のパターンを判定可能とする
ことを特徴とする遊技機。
(3)の遊技機において、入力情報に限らず、例えば、周期的に抽出される値や周期的に所定演算が実行された結果などが時系列順に所定の記憶手段に記憶された情報であっても適用可能である。また、関連する複数の情報の組み合わせのパターンを比較する場合にも適用することが可能である。(3)の遊技機によれば、継続して蓄積される情報の変化が特定パターンに適合するかを判定することで異常を早期に発見することが可能となる。また、共通の処理で情報が変化するパターンを特定できるため、遊技制御の簡素化を図り、プログラム容量の削減を実現することができる。
(4)前記遊技を制御するためのコマンドを送信可能なコマンド送信手段をさらに備え、
前記入力情報判定データは、前記入力情報のパターンに基づくコマンドに対応する第4情報をさらに含み、
前記コマンド送信手段は、前記入力情報のパターンの判定結果に基づいて、前記第4情報に対応するコマンドを送信する(3)の遊技機。
(4)の遊技機では、(3)の遊技機の構成に加え、入力情報のパターンに応じたコマンドを送信することができる。例えば、異常発生時のパターンを検出したことにより、異常報知用のコマンドを送信することが可能となる。
(5)遊技の進行を制御する遊技制御手段を備える遊技機であって、
前記遊技制御手段は、
前記遊技の進行を制御するプログラムを実行する演算手段と、
前記演算手段が処理可能な複数種類の処理情報を記憶可能な処理情報記憶手段と、
前記処理情報に対応する処理情報判定データに基づいて、当該処理情報の変化を判定する処理情報判定手段と、
を備え、
前記処理情報記憶手段は、前記演算手段に備えられた内部記憶手段と、前記演算手段によって処理情報の読み出し及び書き込みが可能な外部記憶手段とを含み、
前記処理情報判定データは、
前記処理情報が格納された領域を示す前記処理情報記憶手段を特定可能な第1情報と、
前記処理情報の変化を判定する範囲を特定する第2情報と、
前記処理情報の変化を判定するための第3情報と、
を含み、
前記処理情報判定手段は、
前記第1情報に基づいて特定された前記処理情報記憶手段から前記処理情報を取得し、当該取得された処理情報から前記第2情報に基づいて特定された範囲に該当する処理情報を抽出し、前記第3情報に基づいて当該抽出された処理情報の変化を判定し、
前記内部記憶手段及び前記外部記憶手段のいずれの処理情報記憶手段に記憶された処理情報であっても前記抽出された処理情報の変化を共通の処理で判定可能とする
ことを特徴とする遊技機。
(5)の遊技機では、(3)の遊技機と同様の効果を得られるとともに、処理情報記憶手段が異なる記憶手段であっても共通の処理で処理情報が変化するパターンを特定できる。これにより、一般的なRAMに記憶された処理情報に対してだけでなく、主制御MPU1311などの演算手段の内蔵レジスタに記憶された処理情報に対しても共通の処理で情報の変化を判定することができる。そのため、遊技機の仕様変更により記憶手段が変更された場合であっても処理情報判定データを更新するだけで対応可能となり、遊技機の開発効率を向上させることができる。をがりを構成する記憶手段ハードウェアため、遊技制御の簡素化を図り、プログラム容量の削減を実現することができる。
(6)遊技媒体を受け入れ可能な複数の遊技媒体受入手段と、
前記遊技媒体受入手段が遊技媒体を受け入れたことを検出可能な遊技媒体検出手段と、
前記遊技媒体検出手段によって検出された遊技媒体の数を個別に計数可能な遊技媒体計数手段と、
を備える遊技機であって、
前記遊技媒体計数手段は、前記遊技媒体受入手段に対応する入賞検出データに基づいて前記遊技媒体を計数可能であり、
前記入賞検出データは、
前記遊技媒体の検出情報の格納場所を示す第1情報と、
前記遊技媒体の検出に基づく計数を行うための第2情報と、
を含み、
前記遊技媒体計数手段は、前記第1情報に基づいて前記遊技媒体の検出情報を取得する処理を前記遊技媒体を受け入れた前記遊技媒体受入手段にかかわらず共通の処理で行うとともに、前記第2情報に基づいて前記遊技媒体を計数する処理を前記遊技媒体を受け入れた前記遊技媒体受入手段にかかわらず共通の処理で行う
ことを特徴とする遊技機。
(6)の遊技機では、複数の遊技媒体受入手段(例えば、始動入賞口、大入賞口など)を備えており、各遊技媒体受入手段に対して共通の処理で遊技媒体の検出や入賞した遊技媒体の数を計数することが可能となる。これにより、これらの機能を実装するプログラムを共通化することが可能となり、プログラム容量の削減を実現することができる。また、遊技媒体受入手段の数の増減などの仕様変更に対しても入賞検出データを更新することで容易に対応することができるため、遊技機の構成管理が容易になり、遊技機の開発効率を向上させることができる。
(7)遊技媒体を受け入れ可能な複数の遊技媒体受入手段と、
前記遊技媒体受入手段が遊技媒体を受け入れたことを検出可能な遊技媒体検出手段と、
前記遊技媒体受入手段から排出された遊技媒体を検出可能な排出遊技媒体検出手段と、
前記遊技媒体検出手段又は前記排出遊技媒体検出手段によって検出された遊技媒体を個別に計数可能な遊技媒体計数手段と、
を備える遊技機であって、
前記遊技媒体計数手段は、入賞検出データに基づいて前記遊技媒体を計数可能であり、
前記入賞検出データは、
前記遊技媒体検出手段又は前記排出遊技媒体検出手段による前記遊技媒体の検出情報の格納場所を特定可能な第1情報と、
前記遊技媒体の検出に基づく計数を行うための第2情報と、
を含み、
前記遊技媒体計数手段は、前記第1情報に基づいて前記遊技媒体の検出情報を取得するとともに、当該取得された検出情報及び前記第2情報に基づいて前記遊技媒体を計数し、
前記遊技媒体の検出情報を取得する処理は、前記遊技媒体検出手段による検出情報であっても前記排出遊技媒体検出手段による検出情報であっても共通の処理である
ことを特徴とする遊技機。
(7)の遊技機では、遊技媒体の検出情報を取得する処理について、遊技媒体検出手段(例えば、始動入賞口スイッチ、大入賞口スイッチなど)による検出情報と、排出遊技媒体検出手段(例えば、セーフ口スイッチ)による検出情報との区別無く共通の処理で行うことが可能となっている。これにより、複数種類の遊技媒体検出手段だけでなく、排出遊技媒体検出手段による遊技媒体の検出を共通の処理で可能ととし、計数などの処理も含めて共通化することでプログラム容量を削減することが可能となる。
(8)前記遊技媒体を計数する処理は、前記遊技媒体検出手段による検出情報であっても前記排出遊技媒体検出手段による検出情報であっても共通の処理であり、
前記遊技媒体検出手段によって検出された遊技媒体の計数結果、及び、前記排出遊技媒体検出手段によって検出された遊技媒体の計数結果に基づいて、前記遊技媒体受入手段による前記遊技媒体の受け入れが正常であるか否かを判定する(7)の遊技機。
(8)の遊技機では、(7)の遊技機と同様の効果を得られるとともに、遊技媒体検出手段で検出された遊技媒体の計数結果と、排出遊技媒体検出手段によって遊技媒体検出手段から排出された遊技媒体の計数結果を比較することによって、遊技媒体検出手段や排出遊技媒体検出手段の異常を検知することが可能となっている。また、遊技媒体検出手段、排出遊技媒体検出手段によらずに共通の処理で計数を可能とすることでプログラム容量を削減することが可能となる。
(9)前記遊技媒体を計数する処理は、前記遊技媒体検出手段による検出情報であっても前記排出遊技媒体検出手段による検出情報であっても共通の処理であり、
前記遊技媒体計数手段により前記遊技媒体が計数されるたびに、当該遊技媒体の計数結果に基づいて、前記遊技媒体受入手段による前記遊技媒体の受け入れが正常であるか否かを判定する(7)の遊技機。
(9)の遊技機では、(7)の遊技機と同様の効果を得られるとともに、また、遊技媒体検出手段、排出遊技媒体検出手段によらずに共通の処理で計数を可能とすることでプログラム容量を削減することが可能となる。また、遊技媒体検出手段で検出された遊技媒体の計数結果と、排出遊技媒体検出手段によって遊技媒体検出手段から排出された遊技媒体の計数結果を比較することによって、遊技媒体検出手段や排出遊技媒体検出手段の異常を検知することが可能となっており、遊技媒体が計数されるたびに異常判定を行うため、異常発生時に迅速に対応することが可能となる。
(10)前記第2情報は、1、0又は-1のいずれかの数値が設定され、
前記遊技媒体の計数は、前記遊技媒体の数に前記第2情報を加算する共通の命令により実行される(7)の遊技機。
(10)の遊技機では、(7)の遊技機と同様の効果を得られるとともに、遊技媒体の計数を加算だけでなく、減算や演算しないことを可能とすることで計数のバリエーションを増やすことができる。例えば、普図ゲートのように賞球のない遊技媒体検出手段についても、賞球数に第2情報の値を加算するといった共通の命令を実行することで例外処理を実行することなく賞球数を計数することが可能となる。これにより、プログラム構造が簡素化し、遊技制御プログラムのメンテナンス効率を高めることができる。
[23.配線の接続解除/再接続時の対応]
前述したように、本実施形態の遊技機は条件装置の作動割合(抽選確率)に影響を与える設定値(設定値情報)を変更可能な設定機能を有する。前述した例では、設定機能の基本的な動作について説明し、さらに、設定機能を実行中に停電が発生した場合の制御などについても説明した。
遊技機の設定は、遊技において遊技者に付与する遊技価値(利益)に影響を与えるため、遊技者が設定を確認可能となると公正な遊技に支障をきたすおそれがある。多くの遊技価値(利益)を得られる可能性の高い設定となっている遊技機で遊技を行うことを遊技者が希望することは当然であるし、設定が確認されてしまうと遊技価値を得られる可能性が低い設定の遊技機の稼働率は著しく低下することになる。また、不正行為(いわゆるゴト行為)によって設定を確認したり、変更したりすることが可能であればこれを実行しようとする者も現れることが予想される。例えば、主制御基板1310への電源供給を遮断することで設定をクリアしようとしたり、遊技機の再起動時の挙動などにより設定を確認しようとしたりすることも考えられる。
そこで、本実施形態では、主制御基板1310に接続される配線を切断及び再接続したり、何らか不正機器を用いた不正な手法で配線を接続したままで電源の供給を一時的に遮断したりすることなどによって遊技機の誤動作を誘発させ、不正に設定の確認や変更を行うことを防止する遊技機について提案する。
[23-1.各種制御基板の接続形態]
図380は、本実施形態の遊技機を制御する各種基板に電力を供給する接続線の接続形態の一例を示すブロック図である。本実施形態の遊技機では、電源基板931から各種制御基板に電力が供給される。また、主制御基板1310、周辺制御基板1510、払出制御基板951の各基板には、電源基板931からそれぞれ別系統(異なる配線)で電力が供給される。そのため、主制御基板1310と電源基板931との間の電力供給が遮断(電力供給に係る配線が切断)された場合であっても周辺制御基板1510や払出制御基板951に対する電力の供給は継続される。
また、主制御基板1310は、停電発生時等、外部からの電源供給が遮断された場合には、所定時間電力を供給可能なバックアップ電源から電力が供給され、主制御RAM1312に記憶された情報の保持を継続することができる。バックアップ電源は、例えば、電気二重層キャパシタ(「キャパシタ」)であり、電源基板931に搭載されていてもよいし、独立して搭載されていてもよい。
また、主制御RAM1312に記憶された各種情報は、電源投入時に主制御基板1310に備えられたRAMクリアスイッチ954が操作されると、RAM1312から完全に消去(クリア)される。RAMクリアスイッチ954の操作信号(検出信号)は、払出制御基板951にも出力される。
なお、本実施形態の遊技機では、通常電源とともにバックアップ電源の供給が遮断されないように通常電源を主制御基板1310に供給する配線と、バックアップ電源を主制御基板1310に供給する配線を別個に設けてある。これにより、通常電源の供給が遮断されてもバックアップ電源の供給が継続され、主制御RAM1312に記憶された各種情報が維持される。なお、別の例として、通常電源の供給が遮断されるとバックアップ電源の供給も遮断するようにしてもよく、この場合はバックアップ電源と主制御基板1310とを接続する配線が遮断された場合には、バックアップ電源の供給も遮断される。具体的には、バックアップ電源が電源基板931に備えられており、通常の電源を供給する配線とバックアップ電源を供給する配線とが集約され、電源基板931と主制御基板1310との間の配線が物理的に切断されたり各基板を接続するコネクタが外されたりして接続が遮断されると、通常電源とともにバックアップ電源の供給も遮断されることになる。
主制御基板1310は、払出制御基板951と双方向に通信する。例えば、主制御基板1310は、遊技に関する各種情報(遊技情報)及び払い出しに関する各種コマンド等を払出制御基板951に送信する。一方、払出制御基板951は、主制御基板1310から送信されたコマンドに対する応答信号(例えば、賞球コマンドに対する払主ACK信号など)や遊技機の状態に関する各種コマンド等を主制御基板1310に送信する。したがって、主制御基板1310に対する電源の供給のみが遮断された場合には、払出制御基板951は主制御基板1310への電源の供給が遮断されたことを認識することが可能であり、エラーLED表示器などによって異常を報知することができる。
さらに、主制御基板1310は、メイン液晶表示装置1600等で実行される遊技演出の制御に関する各種コマンド及びパチンコ機1の状態に関する各種コマンドを、主制御I/Oポート1314を介して周辺制御基板1510に送信する。主制御基板1310と周辺制御基板1510との通信は、主制御基板1310から周辺制御基板1510への単方向の通信となっている。そのため、主制御基板1310に対する電源の供給のみが遮断された場合には、周辺制御基板1510は主制御基板1310への電源の供給が遮断されたことを認識することができず、主制御基板1310からコマンドの送信を待機しながら実行中の演出や画面表示を継続することになる。
[23-2.設定機能]
本実施形態の遊技機は、前述のように、設定機能を有しており、当該設定機能について改めて説明する。設定機能には、設定変更機能と、設定確認機能が含まれる。設定変更機能は遊技機の設定値を変更する機能であり、設定確認機能は設定値を参照するための機能である。
設定機能(設定値の変更・確認)は、通常、遊技中に実行されることは無く、遊技機の起動時(遊技の開始前)又は遊技を中断して実行される。また、設定値が遊技者に把握されることを防止するために、設定機能の実行に必要な操作部の少なくとも一部は遊技機の裏面側に配置され、本体枠4を開放しないと操作できないようになっている。本実施形態の遊技機における設定機能は、設定キー971、RAMクリアスイッチ954及び電源スイッチ932に対して所定の操作を行うことによって開始される。
図381は、本実施形態の遊技機の設定機能を実行するための操作例を示す図である。設定確認は、RAMクリアスイッチ954を“OFF”、設定キー971を“ON”、電源スイッチ932を“ON”にする設定確認操作を経て遊技機を起動させることにより開始される。また、設定変更は、RAMクリアスイッチ954を“ON”、設定キー971を“ON”、電源スイッチ932を“ON”にする設定変更操作を経て遊技機を起動させることにより開始される。
[23-3.電源投入時の制御]
続いて、遊技機の電源投入時の制御について説明する。ここでは、遊技機の電源投入時において設定関連の機能を中心に説明し、既に説明した処理については説明を省略する。
[23-3-1.電源投入時処理]
図382は、本実施形態の遊技機の電源投入時処理のフローチャートである。電源投入時処理は、遊技機の電源が投入されると最初に実行される処理である。
遊技機の電源が投入されると、主制御MPU1311は、まず、RAMプロテクト許可設定を実行する(ステップ02TKS0010)。主制御RAM1312の記憶領域にはアクセス禁止領域が設定され、遊技中にプログラムの実行により当該禁止領域にアクセスすると異常が発生したものとしてリセットが実行される。電源投入直後には電力供給が安定しない可能性も考慮し、遊技が開始されるまでの間、遊技機の初期化が完了するまで主制御RAM1312のアクセス禁止を解除する。RAMプロテクト許可設定では、主制御RAM1312の任意の領域をアクセスできるように設定している。さらに、ウォッチドッグタイマのクリアや停電クリア信号の設定する(ONに設定した後、OFFに設定する)。
次に、主制御MPU1311は、電源投入時起動確認処理を実行する(ステップ02TKS0020)。電源投入時起動確認処理では、まず、停電予告信号を読み出して停電中であるか否かを確認する(電源投入時ウェイト前主停電予告信号確認処理)。続いて、設定キー971とRAMクリアスイッチ954の信号のレベルをPFポートから読み出し、所定のレジスタに記憶する(電源投入時ウェイト前設定関連スイッチ取得処理)。その後、所定時間待機し(電源投入時ウェイト処理)、停電予告信号を読み出して停電中であるか否かを再び確認する(電源投入後ウェイト前主停電予告信号確認処理)。停電中と判定された場合には、遊技機の電源電圧が安定するまで待機する。最後に、電源遮断前に主制御基板に接続されている基板(配線)が再接続されたか否かを確認する。電源投入時起動確認処理の詳細については、図383にて説明する。
続いて、主制御MPU1311は、RAMクリア判定処理を実行する(ステップ02TKS0030)。RAMクリア判定処理では、電源投入時の主制御RAM1312に記憶されている情報を確認し、電断時の主制御RAM1312の内容が正常に保持されているかを判定する。例えば、遊技機の設定情報や停電前の主制御RAM1312の内容が正常に記憶されているかを判定する。RAMクリア判定処理の詳細については、図384にて説明する。
次に、主制御MPU1311は、設定動作判定処理を実行する(ステップ02TKS0040)。設定動作判定処理では、必要に応じて、設定変更モードや設定確認モードへの移行、RAM異常の確認、主制御RAM1312のクリアなどが行われる。設定動作判定処理の詳細については、図390にて説明する。
次に、主制御MPU1311は、設定動作判定処理が終了すると、乱数設定起動処理を実行する(ステップ02TKS0050)。乱数設定起動処理では、割り込みタイミングを定義するCTC(Counter/Timer Circuit)などの初期設定を実行し、割り込みを許可する。さらに、主制御MPU1311に内蔵されたハードウェア乱数(例えば当落乱数)の生成回路を起動する。
続いて、主制御MPU1311は、遊技開始判定処理を実行する(ステップ02TKS0060)。遊技開始判定処理では、遊技開始可能か否かを判定し、電源投入時に送信されるコマンド(例えば、電源投入時動作コマンド)を設定したり、電源投入時の初期データを設定したりする。さらに、タイマ割込みなどの割込み処理の実行を許可するように設定する(ステップ02TKS0070)。
主制御MPU1311は、割り込み処理の実行が許可されると、主制御側メイン処理(ステップ02TKS0080、ステップ02TKS0090)を実行する。主制御側メイン処理では、まず、停電予告信号を取得し、停電予告信号がONであるかによって停電が発生しているかを判定する(ステップ02TKS0080)。停電予告信号がONでない場合、正常に電源が供給されているので、乱数更新処理を実行する(ステップ02TKS0090)。乱数更新処理では、主に特別抽選や普通抽選において当選判定を行うための乱数以外の乱数を更新する。
一方、主制御MPU1311は、停電予告信号を検出した場合、電源断時処理(ステップ02TKS0200)を実行する。電源断時処理は、停電発生前の状態に復帰させるためのデータをバックアップする処理を実行する。具体的な処理は、図188にて説明した処理と同様である。
[23-3-2.電源投入時起動確認処理]
続いて、電源投入時起動確認処理(ステップ02TKS0020)について説明する。電源投入時起動確認処理では、遊技機の電源投入時の主停電予告信号の確認やスイッチ関連の入力情報を取得することに加え、電断前に配線の接続解除/再接続が行われたことを確認する。特に、遊技の進行を中断させるような配線の接続解除/再接続が行われた場合を検出する。なお、遊技を進行可能な配線の接続解除/再接続(例えば、周辺制御基板1510との接続)については、タイマ割込み処理によって呼び出される断線・短絡異常判定処理で確認する(図392)。
図383は、本実施形態の電源投入時起動確認処理の手順を示すフローチャートである。
主制御MPU1311は、電源投入時起動確認処理を開始すると、停電予告信号を読み出して停電中であるか否かを確認する電源投入時ウェイト前主停電予告信号確認処理を実行する(ステップ02TKS0110)。続いて、設定キー971とRAMクリアスイッチ954の信号のレベルをPFポートから読み出し、所定のレジスタに記憶する電源投入時ウェイト前設定関連スイッチ取得処理を実行する(ステップ02TKS0120)。
その後、主制御MPU1311は、所定時間待機する電源投入時ウェイト処理を実行する(ステップ02TKS0130)。さらに、停電予告信号を読み出して停電中であるか否かを再び確認する電源投入後ウェイト前主停電予告信号確認処理)を実行する(ステップ02TKS0140)。このとき、停電中と判定された場合には、遊技機の電源電圧が安定するまで待機する。
最後に、主制御MPU1311は、主制御基板1310と他の基板やセンサなどと再接続したか否かを判定する(ステップ02TKS0150)。再接続されたか否かは、主制御RAM1312の遊技制御領域に記憶された情報に基づいて判定する。例えば、払出制御基板951からの応答信号を受信できなかったことによるエラー発生時の情報に基づいて判定してもよいし、近接スイッチエラーなどのエラー情報に基づいて判定してもよい。また、バックアップされた遊技制御領域に配線接続不良フラグが設定されていることに基づいて判定してもよい。
主制御MPU1311は、主制御基板1310と他の基板やセンサなどを接続する配線が電断前に接続解除され、遊技機の起動時に再接続された場合には(ステップ02TKS0150の結果が「YES」)、配線再接続フラグを設定する(ステップ02TKS0160)。配線再接続フラグの設定後、配線接続不良フラグを解除する(ステップ02TKS0170)。
また、主制御MPU1311は、配線再接続フラグが設定されたことに基づいて、不正設定確認エラーを報知する。不正設定確認エラーは、前述したように、主制御基板1310に接続された配線が接続解除及び再接続される等で主制御基板1310への不正な電力供給の遮断/再開が行われ、さらに、不正な設定変更操作や設定確認操作が行われることにより、遊技機の内部に不正にアクセスされて設定値情報が変更又は確認されるなどの不正行為が行われた可能性を示すものである。そのため、不正設定確認エラーが発生すると、各種の検出センサの機能を停止させるとともに新たな遊技の開始又は継続を中止し、設定を確認したり、その他遊技機の異常を検査したりすることが望ましい。不正設定確認エラー報知は、機能表示ユニット1400や設定表示器974等のLEDやランプによって構成された表示器を特定の態様で点灯させたり、液晶表示装置にエラー画面を表示したりする。また、主制御基板1310から払出制御基板951にコマンドを出力し、払出制御基板951に備えられたエラーLED表示器(図示せず)に特定の態様で表示することで報知するようにしてもよい。
[23-3-3.RAMクリア判定処理]
続いて、電源投入時処理におけるRAMクリア判定処理(ステップ02TKS0030)の詳細について説明する。図384は、本実施形態のRAMクリア判定処理の手順を示すフローチャートである。また、図385は、本実施形態のRAMクリア判定処理のプログラムコードの一例であり、図384のフローチャートに対応する。RAMクリア判定処理では、前述のように、電源投入時の主制御RAM1312に記憶されている情報を確認し、電断時の主制御RAM1312の内容が正常に保持されているか否かを判定する。以下、具体的な処理の内容を説明する。
主制御MPU1311は、RAMクリア判定処理を開始すると、まず、設定値確認処理を実行する(ステップ02TKS0210)。設定値確認処理では、遊技の抽選確率に影響を与える設定値情報(設定値)を取得し、異常であれば設定状態及び設定値に異常値を設定する。具体的な処理について図386にて説明する。
設定値情報の確認が終了すると、主制御MPU1311は、電源投入時使用領域外RAM確認処理を実行し、主制御RAM1312の記憶領域のうち遊技に使用されない領域(使用領域外RAM)の情報が異常であるかを確認する(ステップ02TKS0220)。
使用領域外RAMの確認が終了すると、主制御MPU1311は、主制御RAM1312の遊技制御領域(遊技情報が記憶された領域)のチェックサムを算出する(ステップ02TKS0230)。
次に、主制御MPU1311は、遊技制御領域の状態として異常状態(RAM異常判別値)に仮設定する(ステップ02TKS0240)。以下、ステップ02TKS0210からステップ02TKS0230までの処理の結果に基づき遊技制御領域の状態を特定する。
主制御MPU1311は、ステップ02TKS0230の処理で算出されたチェックサムの値が正常値であるか否かを判定する(ステップ02TKS0250)。チェックサムの値が正常値でない場合には(ステップ02TKS0250の結果が「NO」)、遊技制御領域が異常状態であるので本処理を終了し、必要に応じて後続の処理で遊技制御領域の内容をクリアする。
次に、主制御MPU1311は、電断前に設定されたバックアップフラグの値が正常値であるか否かを判定する(ステップ02TKS0260)。バックアップフラグの値が正常値でない場合には(ステップ02TKS0260の結果が「NO」)、遊技制御領域が正常であることが確認できないので本処理を終了し、必要に応じて後続の処理で遊技制御領域の内容をクリアする。
主制御MPU1311は、ステップ02TKS0220の処理で確認された主制御RAM1312の使用領域外の状態が正常であるか否かを判定する(ステップ02TKS0270)。主制御RAM1312の使用領域外の状態が正常でない場合には(ステップ02TKS0270の結果が「NO」)、遊技制御領域が異常状態であるものとして本処理を終了し、必要に応じて後続の処理で遊技制御領域の内容をクリアする。
主制御MPU1311は、チェックサム及びバックアップフラグの値が正常値であり、かつ、主制御RAM1312の使用領域外の状態が正常である場合には、遊技制御領域の状態としてRAM正常判別値に設定し(ステップ02TKS0280)、設定状態を電断前の状態に設定する(ステップ02TKS0290)。なお、主制御RAM1312の状態はCレジスタに、電断前の状態はBレジスタにそれぞれ設定(格納)される。
[23-3-4.設定値確認処理]
続いて、RAMクリア判定処理のステップ02TKS0210の設定値確認処理について説明する。設定値確認処理では、遊技機の設定情報(設定値)を取得し、異常であれば設定状態及び設定値に異常値を設定する。図386は、本実施形態の設定値確認処理の手順を示すフローチャートである。また、図387は、本実施形態の設定値確認処理のプログラムコードの一例であり、図386のフローチャートに対応する。
設定値確認処理が開始されると、主制御MPU1311は、まず、設定状態管理エリア(VALID_PLAY;設定状態記憶手段)から設定状態を取得する(ステップ02TKS0310)。設定状態管理エリアは、図388に示すように、1バイトの領域である。設定状態管理エリアに設定可能な値は、遊技可能状態(“0”;_SETST_NON)、設定確認状態(“1”;_SETST_CHK)、設定変更状態(“2”;_SETST_CHG)、RAM異常状態(“3”;_SETST_ERR)のいずれかの値が設定される(図389)。なお、不正設定確認エラー(“4”;_SETST_CHER)を設定可能とし、RAM異常状態と区別するようにしてもよい。不正設定確認エラーは必ずしも設定値が異常値であるとは限らないが、設定値が改ざんされた可能性を考慮してRAM異常状態と同様に扱っている。
主制御MPU1311は、設定状態管理エリアから取得された設定状態が異常値、具体的には、図389に定義された設定可能な値以外の値が設定されているか否かを判定する(ステップ02TKS0320)。プログラムの実装としては、設定状態の値を設定状態管理エリア異常判別値(_VALID_PLAY_CK)と比較し、設定状態管理エリア異常判別値よりも小さい場合には正常な値と判定する。設定状態管理エリア異常判別値の値は、設定可能な値の最大値(本実施形態では、RAM異常状態=“3”)に1加算した値であり、本実施形態では設定値が4以下であれば正常と判定する。
続いて、主制御MPU1311は、設定状態管理エリアから取得された設定状態が異常値でない場合(ステップ02TKS0320の結果が「NO」)、すなわち、設定状態が正常な値の場合には、設定値(設定値情報)を取得する(ステップ02TKS0330)。設定値(設定値情報)は、1バイトの領域である設定値エリア(SETTEI_AR;設定値情報記憶手段;図388)に格納されている。本実施形態では、設定値は“0”から“5”までの値が設定される。
さらに、主制御MPU1311は、取得された設定値(設定値情報)の値が所定範囲内、すなわち、“0”から“5”までの値か否かを判定する(ステップ02TKS0340)。設定値エリアには正の数のみを設定可能であるため、設定状態の確認と同様に、プログラムの実装としては、上限値(設定値上限判別値;_SETTEI_LIM=“5”;図389)に1加算した数よりも大きいか否かを判定すればよい。
主制御MPU1311は、設定値(設定値情報)の値が所定範囲内の場合には(ステップ02TKS0340の結果が「YES」)、設定状態及び設定値が正常に設定されているので、本処理を終了し、呼び出し元の処理(RAMクリア判定処理)に復帰する。
一方、設定状態が異常値の場合(ステップ02TKS0320の結果が「YES」)、又は、設定値が異常値の場合(ステップ02TKS0340の結果が「YES」)には、主制御MPU1311は、設定状態にRAM異常状態“3”を設定する(ステップ02TKS0350)。最後に、設定値を初期化し(ステップ02TKS0360)、呼び出し元の処理(RAMクリア判定処理)に復帰する。
設定値はRAMクリア操作を実行しても消去されない(初期化されない)ため、設定値に異常が発生した場合には、設定値確認処理で初期化を行うようになっている。これは、RAMクリアにより高確率状態を通常状態に戻す場合など、設定値を維持しながら遊技機の状態を初期化することを可能とするためである。
[23-3-5.設定動作判定処理]
続いて、電源投入時処理における設定動作判定処理(ステップ02TKS0040)の詳細について説明する。図390は、本実施形態の設定動作判定処理の手順を示すフローチャートである。また、図391は、本実施形態の設定動作判定処理のプログラムコードの一例であり、図390のフローチャートに対応する。設定動作判定処理では、前述したように、設定変更モードや設定確認モードへの移行、RAM異常の確認、主制御RAM1312の初期化(クリア)などが行われる。
設定動作判定処理が開始されると、主制御MPU1311は、まず、設定状態管理エリア(設定値情報記憶手段)にRAM異常を示す値(_SETST_ERR)を仮設定する(ステップ02TKS0410)。
次に、主制御MPU1311は、電源投入時に設定変更操作が実行されていたか否かを判定する(ステップ02TKS0420)。具体的には、電源投入直後の外部入力ポート(_PINSTS)から設定キー971とRAMクリアスイッチ954の信号のレベルを読み出して判定する。
電源投入時に設定変更操作が実行されていない場合には(ステップ02TKS0420の結果が「NO」)、主制御MPU1311は、電断前の設定状態が設定変更であったか否か、すなわち、設定変更モードの間に停電が発生したか否かを判定する(ステップ02TKS0430)。電断前の設定状態は、RAMクリア判定処理のステップ02TKS0290の処理でBレジスタに格納されている。
電断前の設定状態が設定変更でなかった場合には(ステップ02TKS0430の結果が「NO」)、主制御MPU1311は、電断前の設定状態がRAM異常であったか否かを判定する(ステップ02TKS0440)。電断前の設定状態がRAM異常であった場合には(ステップ02TKS0440の結果が「YES」)、本処理を終了し、呼び出し元の処理(電源投入時処理)に復帰する。
主制御MPU1311は、電断前の設定状態がRAM異常でない場合には(ステップ02TKS0450の結果が「NO」)、設定状態管理エリアを初期化する(ステップ02TKS0460)。さらに、電源投入時にRAMクリアスイッチ954がONであったか否かを判定する(ステップ02TKS0470)。
主制御MPU1311は、電源投入時にRAMクリアスイッチ954がONでなかった場合(ステップ02TKS0470の結果が「NO」)、すなわち、OFFであった場合には、停電発生前の状態に復帰させるために、停電発生時点での遊技状態を電源投入時状態バッファに記憶する(ステップ02TKS0480)。さらに、設定キーがOFFであるか否かを判定する(ステップ02TKS0490)。設定キーがOFFでない場合(ステップ02TKS0490の結果が「NO」)、すなわち、ONの場合には、設定確認操作が実行されていることになるので、設定状態を設定確認状態に設定する(ステップ02TKS0500)。
設定キーがOFFの場合(ステップ02TKS0490の結果が「YES」)、又は、設定確認状態に設定した場合には、主制御MPU1311は、扉状態確認処理を実行する(ステップ02TKS0510)。扉状態確認処理では、扉枠3の開閉状態を確認し、開放状態であれば対応する設定を行う。扉状態確認処理が終了すると、呼び出し元の処理(電源投入時処理)に復帰する。
主制御MPU1311は、電源投入時に設定変更操作が実行されていた場合(ステップ02TKS0420の結果が「YES」)、又は、電断前の設定状態が設定変更であった場合には(ステップ02TKS0430の結果が「YES」)、設定状態を設計変更状態に変更する(ステップ02TKS0520)。続いて、使用領域外RAMが正常であるか否かを判定する(ステップ02TKS0530)。使用領域外RAMが正常でない場合(ステップ02TKS0530の結果が「NO」)、すなわち、使用領域外RAMに異常が発生した場合には、使用領域外RAMを正常な状態とするために使用領域外RAM異常時処理を実行する(ステップ02TKS0540)。
主制御MPU1311は、RAMクリアスイッチ954がONであった場合(ステップ02TKS0470の結果が「YES」)、又は、使用領域外RAMが正常な場合(ステップ02TKS0530の結果が「YES」)、使用領域外RAM異常時処理の実行が完了した場合には、RAM初期化処理を実行し(ステップ02TKS0550)、作業領域をクリアする(ステップ02TKS0560)。その後、本処理を終了し、呼び出し元の処理(電源投入時処理)に復帰する。
以上のように、本実施形態では、遊技機の電源投入時に設定値情報を取得し、電源投入時における操作入力や電源遮断前の設定状態に応じて設定値関連の制御を行う。例えば、電源遮断前の設定状態が「設定変更」であれば、操作入力の有無や設定状態にかかわらず、遊技機の起動時に設定変更モードを開始させて設定変更を継続させることで円滑に遊技を再開させる。この場合、設定値が確定されていないためにRAM異常が発生する可能性があり、設定者が意図した設定値になっていない可能性があるからである。
一方、電源遮断前の設定状態が「設定確認」であっても電源投入時に設定確認モードを開始させる操作入力(設定確認操作)が無ければ、設定確認を継続させることなく遊技機を起動させる。設定変更モードとは異なり、設定値は変更等されずに維持されていることから遊技を開始可能であるため、再度確認が必要であれば改めて操作入力を行えばよいためである。また、起動時に自動的に設定確認モードに移行させないことにより、遊技機を意図的に再起動させることにより、不正に設定値を確認されることを防止することができる。
また、設定状態が「RAM異常」となっていると正常に遊技を開始することができないため、RAMクリアを行わずに遊技機の起動そのものを中止する。設定状態が「RAM異常」の場合には設定変更により設定値情報を再設定する必要があることから不正に第三者が設定値を変更することを防止するため、管理者が意図して再設定するまで遊技を開始できないようにすることで不正行為が行われる可能性を低減させている。さらに、設定状態に「不正設定確認エラー」を設定可能としている場合には、「RAM異常」と同様に、正常に遊技を開始することができないように制御することで、不正に第三者が設定値を改ざんして遊技を再開することを防止することができる。
[23-3-6.断線・短絡異常判定処理]
ここで、遊技中に接続が解除された配線が再接続されたことを確認する処理を含む断線・短絡異常判定処理(ステップ01TKS0120)について説明する。断線・短絡異常判定処理は、タイマ割込み処理の遊技可能時処理(ステップP108;図329)におけるスイッチ関係制御処理(ステップ01TKS0010;図354)で実行される処理である。図392は、本実施形態の断線・短絡異常判定処理の手順を示すフローチャートである。
主制御MPU1311は、断線・短絡異常判定処理を開始すると、接続エラー履歴情報(スイッチエラー履歴情報)を取得する(ステップ02TKS0610)。さらに、接続エラー履歴情報に検出対象となる配線のエラー情報が含まれているか否かを判定する(ステップ02TKS0620)。また、本実施例では、接続エラー履歴情報に検出対象となる配線は、主制御基版1310に接続される複数の配線の全てを対象としているが、複数の配線の全てではなく一部の配線のみを対象にするようにしてもよい。なお、複数の配線の全てではなく一部の配線のみを対象にする場合には、少なくとも主制御基版1310への電力供給に係る配線を対象にする構成にしておくことが望ましい。
主制御MPU1311は、接続エラー履歴情報に検出対象となる配線のエラー情報が含まれている場合には(ステップ02TKS0620の結果が「YES」)、所定時間待機し(ステップ02TKS0630)、配線接続不良フラグをON設定する(ステップ02TKS0640)。さらに、断線・短絡異常コマンドを送信し(ステップ02TKS0650)、本処理を終了する。配線接続不良フラグは配線ごとに異なるフラグをON設定可能としてもよいし、すべての配線で共通のフラグとし、検出対象となる配線のいずれかに断線・短絡が検出された場合に一の配線接続不良フラグをON設定するようにしてもよい。また、遊技制御領域に配線接続不良フラグを記憶しておき、遊技機の再起動時に配線接続不良フラグを参照して電源投入時起動確認処理において配線再接続フラグをON設定するようにしてもよい。
主制御MPU1311は、接続エラー履歴情報に検出対象となる配線のエラー情報が含まれていない場合には(ステップ02TKS0620の結果が「NO」)、配線接続不良フラグが設定されているか否かを判定する(ステップ02TKS0660)。配線接続不良フラグが設定されていない場合には(ステップ02TKS0660の結果が「NO」)、断線などの異常が発生せずに遊技機が正常に稼動しているので本処理を終了する。
一方、主制御MPU1311は、配線接続不良フラグが設定されている場合には(ステップ02TKS0660の結果が「YES」)、接続解除された配線が再接続されたため、配線再接続フラグをON設定する(ステップ02TKS0670)。配線再接続フラグのON設定後、断線や短絡は解消されているので、配線接続不良フラグを解除(OFF設定)する(ステップ02TKS0680)。なお、配線再接続フラグは、電源スイッチ932がOFFからONにされたときに行われる正常な設定変更が実行され、遊技が正常に開始された場合に解除(OFF設定)する。
以上の手順によって、配線に断線や短絡などの接続異常が生じた後、再接続などにより異常が解消したことを検知することができる。遊技機が再起動されない状態で断線や短絡などの接続異常が解消することは不自然であり、例えば、配線を再接続するまでの間に不正行為によって遊技機に不正な操作がなされ、設定値情報が変更又は確認されている可能性もある。そのため、前述したように、配線再接続フラグがON設定されたことに基づいて不正設定確認エラーを発生させ、遊技の継続を抑制し、不正に遊技価値が搾取されることを防止する。
電源投入時起動確認処理は遊技機の起動時に実行される処理であるため、電源投入時起動確認処理で配線再接続フラグが設定され、不正設定確認エラーが発生した場合には遊技の開始を中止するようにしていた。一方、断線・短絡異常判定処理のように遊技の継続中に実行される処理で配線再接続フラグがON設定され、不正設定確認エラーが発生した場合であっても、同様に、不正に遊技価値が搾取されることを防止するために遊技の継続を中止するべきである。しかしながら、不正行為によって不正設定確認エラーが発生した場合には、不正行為を行った者を特定するために、ホール側に実害のない程度に遊技を継続させてもよい。例えば、配線に断線や短絡などの接続異常が生じてから再接続されるまでの間(不正行為が行われている最中)であっても、液晶表示装置や可動役物などの演出装置による演出を通常通りに所定期間継続するようにする。このとき、新たに遊技価値を付与する遊技制御(新たな抽選や賞球の付与等)については中止することにより、不正に遊技価値が搾取されることを防止する。また、機能表示ユニット1400や設定表示器974等により遊技機前面から分からない程度に不正設定確認エラーを報知し、不正行為を行った者にはエラーが発生していることを認識しにくいように見せかけることで不正行為を行った者を直ちに離席させずに、ホール側が証拠等を集める時間を十分に確保し、不正行為の全貌を特定し易くすることができる。
[23-4.不正設定確認エラー発生時の制御]
続いて、主制御基板1310への配線の接続を解除及び再接続することによって、遊技機の誤作動を誘発する不正行為への対応について検討する。本発明で想定している不正行為の一例としては、主制御基板1310に電源を供給する配線を強制的に遮断することで誤作動を誘発したり、配線の解除中又は再接続による再起動時に特殊なコマンド(例えば、設定用のコマンド)を不正な方法で出力したりすることによって、不正に利益を得ようとする行為である。
主制御基板1310への電源供給を強制的に遮断する手段としては、電源基板に接続される配線を物理的に切断することが考えられるが、切断後に遊技を継続することは困難であるため、何らかの手法で配線のコネクタを一時的に取り外し、再接続することによって不正に遊技を継続することが考えられる。主制御基板1310に接続された配線の解除や再接続といった不正行為の可能性のある挙動の検出は、前述した断線・短絡異常判定処理の手順で行うことができる。
本実施形態の遊技機では、配線の解除ではなく配線の再接続を検出することにより、前述したように、不正設定確認エラーが発生する。また、不正設定確認エラーが発生すると遊技の進行が中止される。すなわち、不正設定確認エラーが発生している状態では、特定の復帰操作が行われない限り、遊技を再開できないようにしている。特定の復帰操作は、ホール側のみが行えるようにするため、遊技機の背面側から操作可能な特定の操作部を用いることが望ましく、本実施例形態では、主制御基板1310による制御複雑化や遊技機構成の簡易化のため、設定変更操作が特定の復帰操作を兼ねるように構成されている(詳しくは後述する)。また、特定の復帰操作として設定変更操作を実行することにより、不正に設定値が確認・改変された可能性があってもホール側で新たな設定値を設定して遊技を安全に再開することができる。
以下、主制御基板1310の主制御基板1310の配線の接続解除及び再接続を検出した場合において、不正行為を防止するための制御についてタイミングチャートを参照しながら説明する。
[23-4-1.配線再接続後に設定確認操作を実行する場合]
まず、主制御基板1310に接続された配線の再接続を検出した後、設定確認操作を実行する場合について説明する。図393は、本実施形態の主制御基板1310に接続された配線を接続解除したことにより電源供給が遮断され、配線を再接続後に電源供給を再開させるときに設定確認操作を実行する、といった不正な設定確認行為が行われた場合の制御を説明するタイミングチャートである。
図393を参照すると、時刻t11までは主制御側電源は継続して供給されており、電源スイッチ932は“ON”、設定キー971は“OFF”、RAMクリアスイッチ954は“OFF”となっている。配線の接続状態は正常であるため、配線接続不良フラグ及び配線再接続フラグは解除されている。
設定表示器974は、遊技状態が通常遊技状態であり、設定確認や設定変更等の設定機能が実行されていない状態なので、設定値が表示されていない非表示の状態(設定表示器974をベース表示器1317と兼ねる場合は所定のベース表示を行っている状態)となっている。また、機能表示ユニット1400は、通常遊技状態を示す態様が表示されており、機能表示ユニット1400に含まれる特別図柄表示器では特別図柄の変動表示が実行されている。主制御基板1310は、特別図柄の変動開始時に周辺制御基板1510に演出図柄の変動表示の態様を決定するための情報を含むとともに変動開始を指示するコマンドを送信する。さらに、主制御基板1310と払出制御基板951との間は正常に通信が行われているので、払出制御基板951に備えられたエラーLED表示器は正常を示す態様で点灯している。
また、主制御側電源と同様に、演出側電源も電力が供給されている。周辺制御基板1510は、変動開始を指示するコマンドを受信すると、演出図柄の変動表示を開始するとともに、変動開始コマンドに基づいて演出図柄の変動表示に合わせてキャラクタなどを液晶表示装置に表示する演出を実行し、さらに、可動役物やLED・ランプなどの演出装置による演出が実行される。
時刻t11は、電源スイッチ932のON設定が維持されたままの状態で、主制御基板1310への電源供給に係る配線が不正に接続解除された場合を表しており、この場合、主制御基板1310への電源供給のみが停止する。そのため、遊技状態は電断中となり、主制御MPU1311による遊技制御が中断し、電断処理が実行される。本実施形態では、前述した通り、こうした挙動に対して何らかの不正行為が行われている危険性を鑑み、こうした電断処理が実行される過程で配線接続不良フラグをON設定する(時刻t11)。配線接続不良フラグは、電圧変化の態様などに基づいてON設定される。
また、主制御基板1310への電源供給に係る配線が不正に接続解除されると、主制御基板1310からの信号が途絶えるため、機能表示ユニット1400の機能は停止する。このとき、機能表示ユニット1400に含まれるLEDや7セグを消灯させてもよいし、主制御基板1310とは異なる系統で電源が供給されていればエラー表示を行うようにしてもよい。また、払出制御基板951に備えられたエラーLED表示器には、主制御基板1310からの信号を受信できないため、接続が正常な場合とは異なる特定の態様で接続異常のエラー表示がなされる。
図380に示したように、本実施形態の遊技機では、各基板に電源を供給する配線が別系統であるため、主制御基板1310への電源供給が不正に遮断されても周辺制御基板1510や各種演出装置への電源供給が継続される。そのため、主制御基板1310への電源供給が不正に遮断された時刻t11以降であっても液晶表示装置における演出表示や各種のランプ表示、音声演出等については継続することができる。
演出図柄の変動表示は、特別図柄の変動が終了したことにより主制御基板1310から送信された変動停止を指示するコマンドを受信した場合に確定停止する。しかしながら、主制御基板1310への電源供給が停止したことにより、演出を制御するためのコマンド(図柄の変動表示を確定停止するためのコマンド)が送信されないため、主制御基板1310への電源の供給が再開されるまで電断時の内容で演出表示が継続する。具体的には、演出図柄が変動表示中でありながら図柄停止コマンドを受信できないため、演出図柄の高速表示が継続したり、仮停止の状態(演出図柄が確定停止せずに所定の位置で揺れている状態)が継続したりして、演出図柄の変動表示が継続することになる。
図393の例では、電源スイッチ932のON設定が維持されたままの状態で、主制御基板1310への電源供給に係る配線の接続が不正に解除された際には、主制御基板1310の電源の供給が遮断されたため、再接続時にはタイマ割込み処理(断線・短絡異常判定処理)が実行されず、このタイミングでは配線再接続フラグはON設定にされることはない。そして、主制御基板1310に電力を供給する配線を再接続すると主制御基板1310への電力の供給が再開され(時刻t12)、主制御MPU1311は、電源投入時処理を開始し、電源投入時起動確認処理により配線再接続フラグをON設定する(時刻t13、ステップ02TKS0670)。このように、配線の接続が不正に解除されて主制御基板1310の電源の供給が遮断され、電源再供給される場合は、その旨を記憶するために配線接続不良フラグと配線再接続フラグを順次にON設定し、不正監視することが可能となっている。
主制御側電源が再供給され、主制御基板1310が起動すると(時刻t13)、ON設定された配線再接続フラグに基づいて、設定表示器974等により、不正設定確認エラーを遊技機裏側で報知する。不正設定確認エラーを遊技機裏側で報知することにより、主制御基板1310に供給されていた電源が遮断されたことによる主制御RAM1312の記憶内容の確認をホール側が後に確認できるようにしている。
また、主制御基板1310に電源を供給する配線を含んだ複数の配線のいずれかの接続が解除され、その接続経路を不正行為に利用される(別の配線に代えて不正な配線が接続される)ことも考えられるため、そうした接続経路についても本実施例では以下のような監視を施してる。すなわち、本実施形態の遊技機では、電源を供給する配線を含んだ複数の配線のいずれかが解除され、再接続された場合には、電源の遮断の有無にかかわらず設定値に異常が生じた可能性を報知する特定報知を実行する。図393では、一例として、電源を供給する配線が遮断されて再接続されたときに機能表示ユニット1400により特定報知が実行される例を示しているが、電源を供給する配線以外の配線が遮断されて再接続されたときにも同様に特定報知を行うようになっている。特定報知を実行する対象については、機能表示ユニット1400である必要はなく、ベース表示器1317で特定の情報を表示するようにしてもよいし、液晶表示装置1600で特定の画像を表示するようにしてもよい。また、不正設定確認エラーとは区別するために不正設定確認エラーを報知する装置とは別装置で報知してもよいし、不正設定確認エラーと同一装置で報知してもよい。
払出制御基板951に備えられたエラーLED表示器については、遊技停止状態となっているために主制御基板1310からの信号を受信できないため、継続して接続異常のエラーを表示するようにしてもよいが、主制御基板1310から不正設定確認エラーが発生していることや遊技不可能な状態であることを示すコマンドを受信して不正設定確認エラーの報知や特定報知などを行うようにしてもよい。なお、払出制御基板951に備えられたエラーLED表示器は、主制御基板1310に対する電源の供給が再開された場合、遊技を開始することはできなくても接続そのものは正常となっているため、接続が正常であることを示す態様で表示するようにしてもよい。
不正設定確認エラーが発生した場合には、不正行為が行われた可能性があるので遊技の継続を抑制する。また、特定報知が実行された場合にも不正設定確認エラーが発生した場合と同様に、遊技を停止してもよいし、報知のみにとどめ、遊技を継続するようにしてもよい。
また、不正設定確認エラーが発生したときに、実際に主制御RAM1312の内容はすべてクリアされているなどの異常が発生している場合には、電源投入時処理におけるRAMクリア判定処理(図383)の設定値確認処理(図385)において、設定状態に“RAM異常”が設定される。
また、本実施形態では、チェックサムが正常であるなど主制御RAM1312の内容が正常と判定される場合であっても不正設定確認エラーが発生している場合には、不正行為をより確実に防止するために、設定状態として“RAM異常”と同様の処理がなされるように“不正設定確認エラー”を設定してもよい。“RAM異常”と同様の処理が行われる場合は、正常に設定変更操作が実行されるまでは、遊技を開始させずに遊技停止状態のまま維持することとなる。
主制御側電源が再供給された後の時刻t13に、主制御基板1310から演出制御基板1510にコマンドを送信することが可能となり、液晶表示装置には遊技を開始することができないこと等、不正設定確認エラーに対応する表示が実行され、各種ランプでは不正設定確認エラーに対応する発光が実行され、各種スピーカーでは不正設定確認エラーに対応する音声報知が実行される。このとき、変動表示中の演出図柄は、変動が停止される若しくは非表示となる。また、演出装置については、時刻t13のタイミングで実行中の可動役物の動作が停止し、初期位置に移動するなどの初期化処理が実行される。
以上のように、本実施形態の遊技機では、主制御基板1310への電源供給が不正に遮断された場合、そのまま主制御基板1310への電源供給が再開されても遊技を開始できないように構成される。これにより、主制御基板1310への配線の接続解除及び再接続を行う不正行為を行って設定値情報に不正にアクセスしようとしても不正に利益を搾取され、損害が生じてしまうことを防止することができる。
続いて、時刻t12で主制御側電源の再供給がされた後、時刻t13で設定確認操作の実行を判定した場合の制御について説明する。設定確認操作は、遊技機の裏面側に配置されたRAMクリアスイッチ954を操作する必要がなく、電源投入時に設定キー971をONにしておく簡易な操作であるため、比較的簡易的な方法で設定値の確認が可能となっている。このため、主制御基板1310への電源供給の遮断および再開を行う不正行為に加えて何らかの方法で不正に設定確認操作が実行されてしまう可能性を考慮し、本実施形態の遊技機では、主制御基板1310への電源供給が不正に遮断され、その電源供給が再開されるときに設定確認操作を受け付けたとしても(設定キーがONにされていたとしても)、設定値情報が不正に確認されてしまうことを防止するようにしている。なお、設定確認操作では、設定キー971は電源投入後の起動処理実行時(判定時)にONの位置に操作されていればよく、電源投入前からONの位置に操作されていてもよい(図393では時刻t11~t12までの間に設定キー971がONの位置に操作されていれば判定可能である)。
図393を参照すると、時刻t13においては、主制御基板1310への電源供給の再開時に設定キー971がONになっていることを判定することによって設定確認操作の実行を特定する。しかしながら、断線・短絡異常判定処理により、配線再接続フラグがON設定されていることから、今回の設定確認操作を有効なものと見なさず不正なものと見なして、設定確認に関する処理を一切行わずに、遊技を開始させない遊技停止状態にするようにしている。
以上のように、本実施形態の遊技機では、主制御基板1310への電源供給が遮断された後、主制御基板1310への電源供給を再開して設定確認操作を行っても、遊技を開始できないように構成される。これにより、不正に設定値を確認するために主制御基板1310への電源供給を一時的に停止し、不正に設定値を確認しようする不正行為を防止することができる。
また、主制御基板1310への電源の供給を遮断する不正行為を実行しても、演出面については何らの変更も行わないようにしておくことで、当面の間、遊技機が正常に稼動しているように見せかけることができるため、不正行為を行った者が当該遊技機にとどまる可能性を高め、不正行為者を特定することが期待できる。
以下では、不正設定確認エラーを特定の復帰操作(本実施形態では設定変更操作)で解除する点について詳細を記載する。上述したように不正行為等により不正設定確認エラーが発生している場合には、電源を一旦遮断し、電源スイッチ932を直接操作して設定変更操作を実行しながら電源を再投入することによって遊技を開始することができる。図393に示すタイミングチャートでは、時刻t14において電源を遮断し、時刻t15において電源を再投入している。なお、図393のタイミングチャートの時刻t14から時刻15の期間における斜線部は、電源遮断により各構成の機能が停止していることを示している。
遊技機の電源が再投入されると、遊技機を起動するための処理が開始され、その過程で設定変更操作が実行されているか否かが判定される。なお、設定変更操作は、電源スイッチ932が“OFF”から“ON”に操作された時点(判定時)で、設定キー971及びRAMクリアスイッチ954が“ON”になっていればよく、電源投入前から設定キー971及びRAMクリアスイッチ954が“ON”とする事前操作が行われていてもよい。
設定変更操作が検出され、遊技機の起動が完了すると(時刻t16)、配線再接続フラグが解除される。これにより、不正設定確認エラーが解除され、特定報知や各種エラー報知が終了する。そして、遊技機の設定状態が設定変更状態に設定され、設定変更モードに移行する(ステップ02TKS0520)。設定表示器974は不正設定確認エラーの表示から変更中の設定値に表示を切り替えられる。機能表示ユニット1400は、設定変更が終了するまで全消灯(又は設定変更に対応する表示、全点灯であってもよい)となる。このとき、液晶表示装置は設定変更中であることを示す画面を表示してもよい。
設定変更が完了すると(時刻t17)、遊技制御領域をクリアするなどして遊技を開始するために必要な処理が実行され、遊技開始が可能な状態になる。
以上のように、本実施形態の遊技機では、不正設定確認エラーが発生した場合には、特定の復帰操作として設定変更操作を実行した場合に、不正設定確認エラーを解除し、設定変更モードを経て通常遊技を開始することができるように構成されている。設定変更操作は複数の操作部(RAMクリアスイッチ954、設定キー971)の操作を必要とすることから、不正行為者がこの操作を行うことは困難であり、鍵を有するホールの従業員しか操作し得ない設定キー971の操作や遊技機の裏面側に配置されたRAMクリアスイッチ954の操作を含むので、不正行為に対するセキュリティ性能を高めることができる。
また、不正設定確認エラーが発生した場合には特別な復帰操作を行うようにしてもよいが、電源投入時の処理が複雑化する可能性があることから通常の設定変更操作と共通の操作で復旧可能とすることでプログラムを共通化し、プログラム容量の増大を抑制したり、遊技制御の複雑化を抑制したりすることができる。
[23-4-2.配線再接続後に設定変更操作を実行する場合]
次に、主制御基板に接続された配線の不正な再接続を検出した後、不正な設定確認操作ではなく、不正な設定変更操作が行われる場合について説明する。図394は、本実施形態の主制御基板1310に接続された配線を接続解除したことにより電源供給が不正に遮断され、配線を再接続後に電源供給が再開されるときに設定変更操作を実行する不正な行為が行われた場合の制御を説明するタイミングチャートである。
設定確認操作と比較して不正行為者が設定変更操作を行うことは困難であるが、本実施形態の遊技機では、電源供給が再開されるときには配線の再接続による電源の再供給だけでなく、電源スイッチ932を実際にOFFからONに操作して電源を投入することを要する正規の設定変更操作を行わなければ設定変更モードに移行できないように構成している。そのため、図394に示したタイミングチャートは、配線の再接続時に設定変更操作を行う点を除き、図393に示したタイミングチャートと同じであり、詳細な説明については省略する。
以上のように、本実施形態の遊技機では、主制御基板1310への電源供給が遮断された後、設定変更操作を実行しても配線接続フラグは解除されず、不正設定確認エラーが継続され、遊技を開始できないように構成される。これにより、主制御基板1310への電源供給を一時的に停止し、不正に設定値を変更しようする不正行為を防止することができる。
[23-4-3.電断せずに設定値情報に不正にアクセスする場合]
続いて、主制御基板に電源を供給する配線が接続されたままで、それ以外の配線(例えば抽選や入賞に関する各種の入力スイッチと接続される配線等)が遮断され、その再接続時に配線経路からの入力を不正に利用して設定値情報を確認・改ざんする不正行為を抑止する点について説明する。図395は、図393、394で説明した実施形態とは異なり、主に主制御基板1310に電源を供給する配線以外の配線が遮断されて再接続した場合の制御を説明するタイミングチャートである。
図395を参照すると、図393及び図394に示した例と同様に、配線の接続を解除するまでは(時刻t21)主制御側電源に電源が継続して供給されており、電源スイッチ932は“ON”、設定キー971は“OFF”、RAMクリアスイッチ954は“OFF”となっている。また、配線の接続状態は正常であるため、配線接続不良フラグ及び配線再接続フラグは解除されている。設定表示器974や機能表示ユニット1400等の各種表示器も同様の表示となっている。
さらに、機能表示ユニット1400に含まれる特別図柄表示器では特別図柄の変動表示が実行されており、主制御MPU1311は演出図柄の変動表示の態様を決定するための情報を含むとともに変動開始を指示するコマンドを周辺制御基板1510に送信する。液晶表示装置では、演出図柄が変動表示されるとともにキャラクタなどを表示する演出が実行されている。さらに、演出図柄の変動表示と連動して可動役物やLED・ランプなどによる演出も実行される。
図395では、主制御基板1310に接続された複数配線のうち主制御基板に電源を供給する配線以外の特定の配線(例えば抽選や入賞に関する各種の入力スイッチと接続される配線等)が接続解除されると(時刻t21)、主制御基板1310への電源供給が遮断されないまま、断線・短絡異常判定処理により配線接続不良フラグが設定される(ステップ02TKS0640)。このとき、設定表示器974は非表示を継続してもよいが、エラー表示を行ってもよい。また、機能表示ユニット1400は正常な遊技が継続できないものとして全消灯となっているが、エラー表示を行ってもよい。特別図柄の変動表示が実行中の場合には、この時点で図柄の変動が停止される。また、払出制御基板951に備えられたエラーLED表示器には、図面上は接続異常としているが、主制御基板1310と払出制御基板951との間が正常に接続されていれば正常としてもよいし、主制御基板1310の配線の接続に異常が発生していることを示すエラー表示としてもよい。
また、図393及び図394に示した場合と同様に、実行中の演出は継続されている。主制御基板1310への電源供給は継続しているため、配線接続不良フラグが設定された時点で演出を中止してもよいが、設定表示器974などにより不正行為を行った者は認識できずに遊技場の管理者や従業員には認識可能に報知することにより、不正行為者を特定しやすくしている。
その後、接続が解除された配線を再接続し(時刻t22)、配線再接続フラグが設定される(ステップ02TKS0670)。配線再接続フラグが設定されたことにより、設定表示器974等によって前述した不正設定確認エラーを報知する。また、機能表示ユニット1400により特定報知を行う。さらに、主制御基板1310から周辺制御基板1510に演出を停止させるコマンドを送信することで実行中の演出を停止し、液晶表示装置にエラー画面を表示する。
時刻t22において配線再接続フラグが設定されたことにより、不正設定確認エラーが発生し、遊技の進行が停止される。これにより、主制御基板に電源を供給する配線が接続されたままで、それ以外の配線(例えば抽選や入賞に関する各種の入力スイッチと接続される配線等)が遮断され、その再接続時に配線経路からの入力を不正に利用して設定値情報を確認・改ざんしようとしても、再接続以後に遊技の進行を強制的に停止させることができ、不正行為を抑止することができる。
次にホール側で不正設定確認エラーを解消するために、遊技機の電源を遮断し(時刻t23)、設定変更操作を行いながら電源を再投入(時刻t24)する場合の制御について説明する。電源を遮断している間(図395の斜線部)、液晶表示装置や各表示器による表示、演出装置の動作などは中断する。時刻t24で遊技機の電源が投入されると、遊技機を起動するための処理が開始され、その過程で設定変更操作が実行されているか否かが判定される。前述のように、設定変更操作は、電源スイッチ932が“ON”になった時点で、設定キー971及びRAMクリアスイッチ954が“ON”になっていればよく、電源投入(判定)前後の状態は不問となっている。
その後、正規の設定変更操作が検出され、遊技機の起動が完了すると(時刻t25)、配線再接続フラグが解除され、不正設定確認エラーが解除される。そして、遊技機の設定状態が設定変更状態に設定され、設定変更モードに移行する。設定表示器974や機能表示ユニット1400等の表示手段の表示態様については、図393にて説明したとおりである。設定変更が完了すると(時刻t26)、遊技制御領域をクリアするなどして遊技を開始するために必要な処理が実行され、遊技開始が可能な状態になる。
なお、図395に示した例では、配線再接続後、電源を切断及び再投入していたが、電源を切断せずに設定変更操作を実行すると、図394に示した例のように、設定変更機能は実行されないように構成されている。すなわち、電源スイッチ932の操作を含む電源再投入を経由しなければ、遊技を再開することはできないようになっている。これにより、主制御基板1310に接続された配線を一時的に解除し、遊技機が正常に動作していない間に不正に設定値を変更しようする不正行為を防止することができる。
[23-4-4.配線の接続解除時にエラーが発生している場合]
続いて、図柄変動等の遊技制御や賞球の払出制御を停止させず、遊技継続可能な軽微な警告(例えば「左打ちに戻して下さい」の警告報知や、装飾系の不具合に関する警告報知、皿部の貯留量に関する警告報知など)発生中に、主制御基板1310への電源供給が不正に遮断された場合の遊技機の挙動について説明する。図396は、本実施形態の遊技機において弱エラーの発生中に主制御基板1310に接続された配線を接続解除し、再接続した場合の制御を説明するタイミングチャートである。
図396に示す例では、時刻t31においてファールカバーユニット520内に貯留された遊技球で満タンであることが満タン検知センサ535により検出され、満タンエラー(軽微な警告)が報知される。このとき、液晶表示装置には、満タンエラーを知らせる表示が行われ、貯留された遊技球を除去することがうながされる。このとき、払出制御基板951のエラーLED表示器には、満タンエラーに対応する表示がなされる。
満タンエラーが報知されている間に、主制御基板1310への配線の接続が解除されると(時刻t32)、図394の場合と同様に、主制御基板1310への電源供給が遮断され、機能表示ユニット1400が全消灯される。一方、周辺制御基板1510や各種演出装置には電源の供給が継続されているため、液晶表示装置における満タンエラー表示と演出表示は継続される。その後、主制御基板1310への配線が再接続されると電源の供給が再開され(時刻t33)、電源投入時処理が実行され、遊技機が再起動される。
遊技機の再起動が完了すると(時刻t34)、配線接続不良フラグが解除され、配線再接続フラグが設定される。配線再接続フラグの設定により、不正設定確認エラーが発生し、設定表示器974によって報知される。このとき、機能表示ユニット1400により特定報知が実行され、主制御基板1310から周辺制御基板1510にエラーが発生したことを通知するコマンドが送信されることで液晶表示装置に対応するエラー画面が表示される。なお、不正設定確認エラーが発生した状態からの復帰操作は、前述したように電源スイッチ932を直接操作することによる電源の遮断及び電源投入時における設定変更操作であり、設定値の更新後、遊技が可能な状態となる。
以上のように構成することによって、エラー発生中に主制御基板1310への電源の供給を遮断する不正行為を実行した場合に、当面の間、エラー報知が継続しているように見せかけることができる。これにより、エラーの発生に乗じて不正行為を行ってもエラー報知が解除されるまで不正行為を行った者がそのままとどまる可能性を高め、ホールの従業員により不正行為者を特定することが期待できる。
また、上述した実施形態について更なる不正抑止効果を高めるために、不正設定確認エラーの発生について、主制御基板1310から周辺制御基板1510に不正設定確認エラーが発生したことを通知するコマンドが送信された際に、主制御基板1310あるいは周辺制御基板1510に設けた履歴記憶部に不正設定確認エラーが発生した履歴情報として蓄積し、所定の履歴表示操作を受け付けることによって液晶表示装置等に表示可能にするようにしてもよい。履歴記憶部は所定のバックアップ電源が供給されるようにし、遊技機の電源の供給が遮断されても履歴情報を保持するようにしておくことが望ましい。また、不正設定確認エラーが発生した履歴情報としては、主制御基板1310あるいは周辺制御基板1510に設けたリアルタイムクロックから抽出された日時情報も含めておくようにし、配線接続不良フラグが設定された日時情報、不正設定確認エラーが発生した日時情報、および正規の設定変更操作が行われて不正設定確認エラーが解消した日時情報等の全部或いは一部を蓄積するようにすることが望ましい。
また、上述した実施形態について更なる不正抑止効果を高めるために、不正設定確認エラーのについては、設定値の不正な変更に関する重要度の極めて高いエラーであるため、他のエラー(例えば扉枠3の開放に関するエラーや、磁気センサエラーなど)よりも優先が高いものとして、エラー係る報知処理および外部端子板784からの出力処理を行うようにしてもよい。なお、重要度の観点ではRAMエラーと同等であり、RAMエラーと同等の優先順位に設定しておくことが望ましい。
また上述した実施形態では、条件装置についての複数種類の作動割合(つまり、特別図柄の当り確率)に対応させて設定値1~6の複数段階を有し、設定値1~6のいずれかを設定可能にする遊技機(複数段階設定が可能な遊技機)を例示したが、条件装置の作動割合については一種類のみとし、対応する設定値も設定値1のみを設定可能な遊技機(複数段階設定が不能な遊技機)とし、上述した設定確認や設定変更に関する処理、及びそれに関連する各種部材(設定キーなど)をダミーとして搭載し、さらに不正設定確認エラーと同様の処理をダミーとして実行可能にしてもよい。このような設定値1のみを設定可能な遊技機(複数段階設定が不能な遊技機)については、設定確認(実際には設定値1しか確認できない)や設定変更(実際には設定値1しか設定できない)が可能でありながらも、設定値に対する不正な確認や変更によるホール側の損害は生じない。このため、不正行為者が機種を誤って不正行為を行った場合等に、何らの損害も受けることなく、不正行為の全貌を把握できたり、不正行為者そのものを確保できる可能性があり、不正行為の抑制に繋げることができる。
[24.特別条件時短]
ここまで説明した遊技機では、特別抽選の結果に関連して時短状態に移行するか否かが判定されていた。そのため、特別抽選に当選しない限り時短状態などの遊技者に有利な遊技状態(特定遊技状態)に移行することはできなかった。そのため、特別抽選に長期間当選することができないまま単調な遊技を継続しなければならない場合があり、遊技の興趣が著しく低下してしまうおそれがあった。
そこで、本実施形態では、特別抽選に当選せずに遊技者にとって有利な遊技状態(時短状態)に移行可能な遊技機について説明する。具体的には、特別抽選に所定回数当選しなかった場合に時短状態に移行する(特別条件時短)。なお、本実施形態の遊技機では、前述した特別抽選の当選に基づく時短状態への移行も可能となっている(通常時短)。
本実施形態の時短状態について説明すると、時短状態は、第二始動口2004を開状態とする抽選(普通抽選)の当選確率を通常状態よりも高確率に設定し、抽選当選時に第二始動口2004を開状態とする開放時間が長くなるように設定する。なお、本実施形態では、通常時短であっても特別条件時短であっても共通の内容で時短状態が実行されるが、特別抽選の結果の種類、通常時短か特別条件時短かなどの時短状態への移行条件に応じて時短状態の継続回数(時短回数)や開放時間を異ならせてもよい。また、通常遊技状態であっても時短状態であっても普通抽選の確率については同じ確率として高くしておき(100%当選でも可)、時短状態においては通常状態に比べて第二始動口2004の開放時間が長くなるようにしてもよい。
本実施形態の遊技機では、特別抽選に当選し、当該特別抽選の結果に基づいて次の遊技状態に移行することで時短状態が終了する。また、特別抽選に当選せずに所定回数遊技が実行された場合にも通常遊技状態に移行して時短状態が終了する。このように、特別抽選の当選や所定回数の図柄変動(特別抽選)の実行などの所定条件が成立するまで時短状態が継続する。
[24-1.特別条件時短の制御概要]
続いて、本実施形態の遊技機における特別条件時短の制御について説明する。本実施形態の特別条件時短は、特別抽選に連続して当選しなかった回数(時短移行カウント)が所定回数(時短移行回数)に到達した場合に時短状態に移行するように制御される。なお、特別条件時短は特別抽選に当選しにくい場合の救済といった側面があるため、特別抽選の当選確率が高確率の場合には時短移行カウントを更新しないようにしてもよい。
また、通常遊技状態では、第二始動口2004が開放されないため、第一始動口2002に遊技球が入賞した際の特別抽選に当選しなかった場合に時短移行カウントが更新される。なお、時短状態でなくても第二始動口2004に入賞可能な遊技機であれば、第二始動口2004に入賞した場合でも時短移行カウントを更新するようにしてもよい。すなわち、上述したように通常状態においても時短状態と同じく普通抽選に高確率で当選するようにした場合には通常状態において第二始動口2004に遊技球が入賞するため、この入賞によっても時短移行カウントを更新するようにしてもよい。
時短移行カウントの更新は、遊技可能時処理(図354)における特別図柄・特別電動役物制御処理(ステップ01TKS0080)で実行される。時短移行カウントの更新は、0から加算するようにしてもよいし、時短移行回数を初期値として減算するようにしてもよい。加算による更新では時短移行カウントが時短移行回数に到達した場合に時短状態に移行し、遊技制御プログラム実行時に主制御RAM1312に記憶された時短移行カウントと実際の時短移行カウントの値が一致するため、デバッグなどの管理を容易に行うことができる。
一方、減算による更新では時短移行カウントが0になった場合に時短状態に移行する。時短移行カウントを減算して更新する場合には、時短移行カウントが時短移行回数よりも大きな値となることがないため、主制御RAM1312内の時短移行カウントを記憶する領域の容量を抑制することが可能となる。また、時短移行回数到達時の時短移行カウントに関する制御を簡素化させることが可能となり、例えば、時短移行カウントを加算して更新する場合には時短移行回数に到達した時点で加算を中止する制御等が必要となるが、比較値が0であれば一命令で処理できるため制御を簡素化するとともに、プログラムの容量削減及び高速化を図ることができる。
特別条件時短機能による時短状態に移行し、特別抽選に当選せずに所定回数時短状態が継続すると、再び通常遊技状態に移行する。本実施形態の遊技機では、特別条件時短機能による時短状態から通常遊技状態に復帰した場合、時短移行カウントがクリアされるまで再び特別条件時短機能による時短状態には移行しないように構成されている。これは、時短移行カウントをクリア(初期化)する条件を満たさない限り、時短移行回数に再び到達することはないからである。当然のことながら通常遊技状態に復帰したタイミングで時短移行カウントをクリアすれば、特別条件時短機能による時短状態への移行が可能となり、そのように実装してもよい。
[24-2.特別条件時短による時短状態の制御(タイミングチャート)]
[24-2-1.特別条件時短による時短状態の開始から終了までの制御]
続いて、特別条件時短の開始から終了までの制御を時系列に沿って説明する。特別条件時短の開始条件は時短移行カウントがクリアされてから特別抽選に連続300回(時短移行回数)当選しなかった場合に時短状態に移行する。なお、時短状態の最大継続回数は100回とし、通常時短による時短状態の最大継続回数と特別条件時短による時短状態の最大継続回数は同じ回数となっているが、異なっていてもよい。なお、特別条件時短の開始条件は時短移行カウンタがクリアされてからの回数がいわゆる大当り確率(通常時の大当り確率)の3倍程度(例えば800回~900回)とすることが好ましい。また、特別条件時短による時短が付与される回数としても大当り確率の3倍程度の範囲内(例えば900回以下)に収めることが好ましい。なお、この付与される時短回数には設定ごとに異なるようにしてもよいし、設定に関わらず同じ回数としてもよいがいずれの設定においても3倍程度の範囲内に収めるようにすることが好ましい。
ここで、特別条件時短による時短状態に移行する制御における各構成の状態について説明する。図397は、本実施形態の遊技機における特別条件時短による時短状態に移行する制御について説明するタイミングチャートである。図397に示すタイミングチャートでは、特別抽選の当選による時短移行カウントのクリアから特別条件時短による時短状態に移行するまでの制御を説明する。
時刻t1は、特別抽選に当選したことによる大当り遊技状態の最後に実行される大当りエンディングが終了したタイミング、すなわち、時短状態に移行するタイミングである。大当り遊技状態が継続している間は、当該大当り遊技状態に移行することになった特別抽選の図柄変動における時短移行カウントの値が設定されている。図397を参照すると、時短移行カウント、特別条件成立残り回数、性能表示モニタに表示される時短移行カウントの値は大当り遊技状態に移行してから終了するまで同じ値が設定される。なお、残り状態回数については、大当り遊技状態が継続する回数が設定されるため、“1”が設定されるようにしてもよいし、大当り遊技におけるラウンド数を設定するようにしてもよい。
本実施形態の遊技機では、大当りエンディングが終了したタイミング、すなわち、時短状態に移行するタイミングで時短移行カウントをクリアする。図397に示した例では、時短移行カウントを加算して更新するため、時短移行カウントが“0”に設定される。なお、時短移行カウントを減算して更新する場合には時短移行回数(300回)が設定される。また、時短移行カウントのクリアについては詳細を後述する。
また、時短移行カウントをクリアするタイミングで、特別条件成立残り回数は“300”、時短状態の残り状態回数は“100”に設定される。特別条件成立残り回数は、時短移行カウントと時短移行回数に基づいて算出可能であるため、必要な時、例えば、後述する特別条件成立残り回数コマンドを周辺制御基板1510に送信する際に算出するようにしてもよい。なお、時短移行カウントを減算によって更新する場合には、特別条件成立残り回数と時短移行カウントは同じ値となり、プログラム内で同じ変数に格納してもよい。これにより、記憶容量を削減することができる。
時刻t2は、時短状態に移行してから特別図柄の変動表示が最初に実行されるタイミングである。時短移行カウントは、特別図柄の変動表示が開始されるタイミングで更新され、更新後、性能表示モニタの表示に反映される。このとき、周辺制御基板1510に対し、特別図柄の変動パターンを通知するコマンドや停止図柄の図柄種別を通知するコマンド、特別図柄の変動表示の保留数を通知するコマンド、変動開始時の遊技状態(時短状態)を通知するコマンド、現在の遊技状態の残り回数を通知するコマンドが送信される。各種コマンドの詳細については図400にて説明する。
時刻t3は、特別図柄の変動表示が終了するタイミングである。特別図柄の変動表示が終了すると、特別条件成立残り回数が更新される。このとき、周辺制御基板1510に対し、特別図柄の変動表示の停止を指示するコマンドや特別図柄の変動停止時の遊技状態を通知するコマンド、更新された特別条件成立残り回数を通知するコマンドが送信される。これらのコマンドの詳細については図400にて説明する。
その後、停止図柄が確定すると、次の変動表示が開始される(時刻t4)。さらに、時短状態で特別抽選に当選せずに所定回数(100回)の特別図柄の変動表示が実行されると、時短状態が終了する(時刻t5)。このとき、時短状態の残り状態回数は“0”となり更新(計数)が停止される。一方、時短移行カウントは継続して計数される。
時短状態が終了すると、通常遊技状態に移行する。このとき、通常遊技状態の残り状態回数は管理する必要がない(管理できない)ため更新しない。なお、通常遊技状態に移行した際に残り状態回数を特別条件成立残り回数としてもよい。これは、時短移行カウントクリア後に所定回数(時短移行回数=300回)連続して特別抽選に当選しない場合には通常遊技状態から時短状態に移行し、通常遊技状態が終了するためである。
通常遊技状態で遊技が進行し、時短移行カウントが所定回数(時短移行回数=300回)に到達し、当該変動表示が終了すると(時刻t6)、時短状態に移行するための特別条件成立残り回数が0になって特別条件が成立し、時短状態(特別条件時短)に移行する。特別条件時短による時短状態に移行すると、時短移行カウント及び特別条件成立残り回数の更新を停止する。また、残り状態回数には時短状態の継続上限回数(100回)が設定される。なお、時短移行カウントが上限値である所定回数(時短移行回数=300回)に到達した場合には更新せずに値を維持する。
その後、特別条件時短による時短状態に移行後、時短状態の継続上限回数(100回)に到達するまでの間に特別抽選に当選しなかった場合には、通常遊技状態に移行する(時刻t7)。このとき、特別条件時短による時短状態の終了は、時短移行カウントのクリア条件ではないため、時短移行カウントや特別条件成立残り回数の値は維持されることから、時短移行カウントがクリアされるまで特別条件時短による時短状態には移行しないこととなる。
特別条件時短による時短状態の終了を時短移行カウントのクリア条件としないことにより、特別条件時短による時短状態への移行が連続して発生することを抑制される。これにより、遊技者の期待感が高まり過ぎることを防止することができる。また、遊技機のベース値が高くなりすぎないように調整することが可能となり、適切な設定で遊技を行うことが可能となる。
[24-2-2.特別条件時短による時短状態への移行条件のクリア(初期化)]
本実施形態の遊技機における特別条件時短では、前述のように、時短移行カウントがクリアされてから特別抽選に連続して所定回数当選しなかった場合に時短状態に移行する。本実施形態では、時短移行カウントをクリア(初期化)する条件(特別条件)は、(1)所定の手順で遊技機を初期化(RAMクリア)した場合、(2)特別抽選に当選した場合(大当り遊技終了後)となっている。(2)特別抽選に当選した場合(大当り遊技終了後)については前述したとおりである。
ここで、条件(1)の所定の手順で遊技機を初期化(RAMクリア)した場合について説明する。本実施形態の遊技機では、前述したように、遊技機の初期化(RAMクリア)を実行する操作には、(a)RAMクリアスイッチ954を単独で操作する場合、(b)設定キー971を操作しながらRAMクリアスイッチ954を操作する場合の2種類がある。
本実施形態の遊技機では、(a)RAMクリアスイッチ954を単独で操作する場合には(第1操作)、時短移行カウントをクリアする。一方、(b)設定キー971を操作しながらRAMクリアスイッチ954を操作する場合には(第2操作;設定変更操作)、時短移行カウントをクリアしないように構成されている。これは、時短移行カウントをクリアする際に設定キー971の操作を必要とすると、時短移行カウントを容易にクリアすることができないためである。時短移行カウントのクリアを容易にすることで遊技機の特別条件時短に関する管理を遊技場の従業員が容易に行うことができる。
なお、前述の例とは異なり、(a)RAMクリアスイッチ954を単独で操作する場合に時短移行カウントをクリアせず、一方、(b)設定キー971を操作しながらRAMクリアスイッチ954を操作する場合に時短移行カウントをクリアするように構成してもよい。特別条件時短の付与条件である時短移行カウントをクリアするしないは遊技利益に直結するため遊技場における運営上重要である。このため、(b)設定キー971を操作しながらRAMクリアスイッチ954を操作して時短移行カウントをクリアするようにした場合には、そのクリア管理を設定キー971の操作に必要な鍵を有する権限者等に限定することができるようになるため、遊技場における適切(安全)な管理を行いやすくすることができるようになる。
[24-2-3.RAMクリア操作後の時短移行カウントの更新]
ここで、上記第1操作及び第2操作実行時の遊技機の制御について説明する。まず、各操作実行時の制御の説明をする前に、電源投入時にRAM異常状態となる場合について概要を説明する。
本実施形態の遊技機では、電源が投入されると、まず、設定値が異常(0~5以外の値)か否かを判定する。異常と判定された場合には、設定値に初期値をセットするとともに時短移行回数に初期値(100回)を設定し、遊技状態としてRAM異常状態に設定する。続いて、チェックサム、電断フラグ及び遊技領域外RAMのチェックを行い、いずれかで異常と判定された場合についてもRAM異常状態に設定する。このとき、設定値が異常と判定された場合を除き、時短移行カウントを初期化せずに電断前の値を保持する。
時短移行カウントは、第1操作実行時を除き、設定値が異常と判定されたときと大当りエンディング終了時にのみ初期値がセットされ、それ以外のときには初期値がセットされない。また、時短移行カウントの値が異常であるか否かの判定は行われないようになっている。時短移行カウントの異常を判定しない理由は、設定値が異常であれば、時短移行カウントも異常となっている可能性が高いので、設定値の異常だけで判断すれば十分であると考えられるためである。
続いて、設定値が異常と判定されずに、上記第1操作又は第2操作が実行されて遊技機の電源が投入された場合の制御について説明する。図398は、本実施形態の遊技機を第1操作を実行して電源を投入した場合の制御の一例について説明するタイミングチャートである。図399は、本実施形態の遊技機を第2操作を実行して電源を投入した場合の制御の一例について説明するタイミングチャートである。図398及び図399に示す例では、第1操作(RAMクリアスイッチ954を単独で操作)の場合に時短移行カウントをクリアし、第2操作(設定キー971を操作しながらRAMクリアスイッチ954を操作)の場合に時短移行カウントをクリアしない制御を示す。
図398に示す例では、通常遊技状態で遊技が継続している間に電源が遮断された際、第1操作を実行しながら電源を投入する場合の各構成の制御を説明する。この場合、電源投入時の初期化処理の際に時短移行カウントがクリアされる。
時刻t11に電源が遮断されると、特別図柄の変動表示は中断され、性能表示モニタは非表示となる。このとき、バックアップ電源により、時短移行カウントは主制御RAM1312内の所定の領域に電断中も保持される。このとき、時短移行カウントの値は“249”となっている。
その後、RAMクリアスイッチ954を操作し(第1操作)、電源を投入すると(時刻t12)、初期化処理(図21等)が実行される。このとき、RAMクリアスイッチ954が操作されているため、主制御RAM1312の遊技制御用ワーク領域がクリアされる。また、第1操作が実行されたため、初期化処理の過程で時短移行カウントの値もクリアされる(時刻t13)。また、本実施形態の遊技機では、時短移行カウントの値がクリアされた直後に性能表示モニタの表示に反映されるではなく、初期化処理終了後に実行されるタイマ割り込み処理で実行される性能表示モニタ処理(ステップ01TKS0070)で反映される。なお、電源投入後に性能表示モニタに情報が表示される場合には性能表示モニタに電断前の時短移行カウントの値が表示される。一方、タイマ割り込み処理で実行される性能表示モニタ処理でのみ性能表示モニタの表示が更新される場合には、遊技が再開されるまで時短移行カウントの値は表示されず、遊技再開後、クリア後の時短移行カウントの値(“0”)が表示されることになる。
初期化処理が終了すると、時短移行カウントの値がクリアされた状態で遊技が再開される(時刻t14)。初期化処理において割り込みが許可されているためタイマ割り込み処理が実行されるようになっており、性能表示モニタ処理によりクリアされた時短移行カウントの値が性能表示モニタに反映される。そして、始動入賞口に遊技球が入賞すると、特別図柄の変動表示が開始され、変動表示開始時に時短移行カウントが更新される。なお、時短移行カウントは性能表示モニタに表示するよりも後に更新されるため、時短移行カウントが更新された次の割り込みで性能表示モニタの表示が反映される。
続いて、図399を参照しながら、通常遊技状態で遊技が継続している間に電源が遮断された際、第2操作を実行しながら電源を投入する場合の各構成の制御を説明する。この場合、電源投入時の初期化処理の際に設定変更機能が実行されるが、時短移行カウントの値は電断前の値が維持される。
時刻t21に電源が遮断されると、図398に示した時刻t11の状態と同様に、特別図柄の変動表示は中止され、性能表示モニタは非表示となる。その後、RAMクリアスイッチ954及び設定キー971を操作しながら(第2操作)、電源を投入すると(時刻t22)、初期化処理が実行される。このとき、主制御RAM1312遊技制御用ワーク領域がクリアされるが、時短移行カウントの値は維持される。初期化処理実行後には、設定モードに移行する(時刻t23)。
本実施形態の遊技機では、領域を指定して遊技制御用ワーク領域をクリアすることを可能としている。例えば、RAMクリアスイッチ954を操作しながら電源を投入しても設定値情報を格納された領域は初期化(RAMクリア)されずに記憶内容が維持されたままの状態となっている。そこで、第2操作を行って遊技機を初期化する場合には、時短移行カウントが記憶された領域を初期化(RAMクリア)の対象から除外し、時短移行カウントを維持したまま遊技機を再起動する。
このように、第2操作を行いながら遊技機の初期化を行った場合には、初期化処理の実行後であっても電断前の時短移行カウント(249)が維持されたままとなる。そして、時刻t24において遊技が再開された後、特別図柄の変動表示開始時に電断前(時刻t21)の時点における時短移行カウントの値が表示される。その後、始動入賞口に遊技球が入賞すると、特別図柄の変動表示が開始され、特別図柄の変動表示の開始時に時短移行カウントが更新され、次の割り込みタイミングで実行される性能表示モニタ処理によって性能表示モニタに更新後の時短移行カウントが表示される。
また、遊技者に特別条件時短の発生を報知するために時短移行カウントに相当する値が液晶表示装置の画面に表示されている場合、時短移行カウントをクリアした場合であっても画面はそのまま表示される。液晶表示装置の画面表示は、周辺制御基板1510によって制御されており、遊技再開時に主制御基板1310から時短移行カウントに相当する値を通知するコマンドが送信されたことに基づいて表示が更新される。これにより、時短移行カウントのクリアに伴う周辺制御基板1510側の特別な制御は不要となり、制御の複雑化を抑制することができる。なお、異常発生時などの場合には画面上の表示内容をクリアするようにしてもよい。
また、本実施形態の遊技機では、液晶表示画面に時短移行カウントに相当する値が表示されるか否かにかかわらず、時短移行カウントに相当する値を確認することが可能な手段を有している。確認手段は液晶表示装置に表示するようにしてもよいし、機能表示ユニット1400等の表示器であってもよいし、これ以外の表示器であってもよい。なお、本実施形態の遊技機では、前述のように、性能表示モニタで時短移行カウントの値を表示している。
時短移行カウントのクリア時には、第1操作と第2操作で共通の報知音が出力される。また、第2操作の場合には設定キー971の操作タイミングで報知音を出力するようにしてもよく、設定変更が確定してからRAMクリアを行う処理が実行される。なお、報知音の出力は所定の操作で終了することができる。例えば、RAMクリアスイッチ954の操作を終了することでもよいし、遊技機の電源をOFFにしてもよい。第1操作、第2操作が実行された場合、報知音だけでなく液晶表示装置の画面表示を共通としてもよい。この場合、画面表示のすべてを共通とする必要はなく、少なくとも一部が共通であればよい。これにより、遊技中の異常発生などにより時短移行カウントがクリアされたか否かが遊技者に認識されてしまうことを防止し、遊技者に不快感を与えることを抑制することができる。
上述したように、(a)RAMクリアスイッチ954を単独で操作する場合、(b)設定キー971を操作しながらRAMクリアスイッチ954を操作する場合、の一方で時短移行カウントをクリアし、他方で時短移行カウントをクリアしないようにする例について説明したが、(a)(b)いずれの操作においてもRAMクリアはされるもののモニタ表示に関するデータ内容はリセット(クリア)されないようになっている。ただし、ホール運営上では時短移行カウントのクリアの際にまとめて操作できると都合がよいと考えられるためモニタ表示に関してもクリアされるリセット機能を設けるようにしてもよい。
[24-3.特別条件時短に関連するコマンド]
第一始動口2002への始動入賞から当該始動入賞による特別抽選に基づく特別図柄の変動表示の終了までの間に行われる制御において、遊技の進行に応じた演出を実行するために、主制御基板1310から周辺制御基板1510に各種コマンドが送信される。これらのコマンドに基づいて特別条件時短に対応する演出も実行される。以下、各コマンドについて説明する。
図400は、本実施形態の遊技機における主制御基板1310から周辺制御基板1510に送信されるコマンドの一例を示す図である。図400に示したコマンドは一部であり、図に示した例以外にも必要に応じて種々のコマンドが含まれる。コマンドは、主にコマンドの種類を示す「ステータス」及びコマンドの詳細内容を示す「モード」で構成されており、それぞれ2バイトとなっている。
[24-3-1.特図入賞関係コマンド]
第一始動口2002に対する始動入賞時には、特別図柄・特別電動役物制御処理において、特別抽選が実行されるとともに、始動入賞及び特別抽選に関わるコマンド等が周辺制御基板1510に送信される。例えば、始動口入賞(作動保留数の増加)に伴う演出や特別抽選の事前判定結果による先読み演出の実行を指示するコマンドなどが含まれる。なお、特別抽選の事前判定は、始動入賞時に取得された始動記憶(乱数値)に基づいて実行される。
図400に示す表では、区分が「特図入賞」となるコマンドがこれらのコマンドに対応する。「始動口入賞コマンド」は、始動入賞口に遊技球が入賞したときに送信される。このとき、始動口ごとに異なるコマンドとしてもよいし、「モード」の値で特定されるようにしてもよい。
「入賞時特図保留数指定コマンド」は、始動口入賞時における作動保留数を送信するためのコマンドである。始動口入賞時、すなわち、作動保留数増加時に送信され、事前抽選に当選し、先読み演出を実行可能な場合にのみ送信するようにしてもよい。なお、先読み演出を実際に実行するか否かについては、周辺制御基板1510側で決定するようにしてもよいし、非当選の場合であっても先読み演出(いわゆるガセ演出)を実行するようにしてもよい。
また、「入賞時特図保留数指定コマンド」は、「変動開始時特図保留数指定コマンド」と同様に、特別図柄1及び特別図柄2についてそれぞれ別の「ステータス」を設定し、「モード」に作動保留数を指定するようにしてもよい。一方、「ステータス」を共通の値とし、「モード」の上位ビットで特別図柄1か特別図柄2を特定し、下位ビットで作動保留数を特定するようにしてもよい。
「特図図柄種別先読みコマンド」及び「変動パターン先読みコマンド」は、特別抽選の事前判定に当選した場合に送信され、「入賞時特図保留数指定コマンド」とともに送信されてもよいが、周辺制御基板1510で先読み演出が実行される前に送信されればよい。「特図図柄種別先読みコマンド」は、特別抽選の事前判定時に特定された特別図柄(停止図柄)の種別(当選の種類)を通知するコマンドである。「変動パターン先読みコマンド」は、特別図柄の変動表示の変動パターンを通知するコマンドである。「特図図柄種別先読みコマンド」及び「変動パターン先読みコマンド」は、特別図柄1又は特別図柄2で異なる「ステータス」として別のコマンドとしてもよいし、共通の「ステータス」の値として「モード」の値で区別するようにしてもよい。
[24-3-2.特図変動関係コマンド]
始動口に入賞後、特別図柄の変動表示が継続している場合には、所定数を上限として始動入賞時に取得された始動記憶は保持される。保留されていた始動記憶に基づく特別図柄の変動表示が終了すると、特別図柄の変動表示が開始される。特別図柄の変動開始時には、特別抽選の結果に対応する特別図柄変動表示ゲーム(特別図柄の変動表示)に関するコマンドや特別図柄変動表示ゲーム実行時の遊技状態に関するコマンドが送信される。
図400に示す表では、区分が「特図変動」となるコマンドがこれらのコマンドに対応する。特別図柄1及び特別図柄2について変動パターンコマンド、図柄種別コマンド、図柄停止コマンドが周辺制御基板1510に送信される。「ステータス」によって特別図柄1か特別図柄2かを特定するようにしてもよいし、「モード」で特定するようにしてもよい。図400に示す例では「ステータス」によって特別図柄1か特別図柄2かを特定しており、「ステータス」には特別図柄1か特別図柄2かによって異なる値が設定され区別されている。以下、各コマンドについて概要を説明する。ここでは特別図柄1について説明するが特別図柄2の場合も同様の構成となっている。
「変動開始時特図保留数指定コマンド」は、特別図柄の変動表示開始時における作動保留数を送信するためのコマンドである。特別図柄の変動開始時、すなわち、作動保留数減少時に送信される。特別図柄1及び特別図柄2についてそれぞれ別の「ステータス」を設定し、「モード」に作動保留数を指定するようにしてもよい。一方、「ステータス」を共通の値とし、「モード」の上位バイトで特別図柄1か特別図柄2を特定し、下位ビットで作動保留数を特定するようにしてもよい。
「特図1変動パターンコマンド」は、特別図柄1の変動表示における変動パターンを通知するコマンドであり、特別図柄1の変動開始時に送信される。「特図1図柄種別コマンド」は、特別抽選の結果図柄1の変動表示における変動パターンを通知するコマンドであり、特別図柄1の変動開始時、具体的には、「特図1変動パターンコマンド」の送信直後に続いて送信される。
「特図1図柄停止コマンド」は、特別図柄1の変動表示が終了時、すなわち、変動時間経過後に送信される。周辺制御基板1510では、「特図1図柄停止コマンド」を受信すると、特別図柄1の変動表示に関わる演出を終了し、特別抽選の結果を表示する。
「特図2変動パターンコマンド」「特図2図柄種別コマンド」「特図2図柄停止コマンド」については、特別図柄1の代わりに特別図柄2についての情報を周辺制御基板1510に通知するものである。
[24-3-3.状態関係コマンド]
さらに、主制御基板1310から周辺制御基板1510に遊技状態に関する情報を通知するコマンドが送信される。周辺制御基板1510は、通知されたコマンドに基づいて遊技状態に応じた演出を実行する。遊技状態に関する情報を通知するコマンドには、現在の遊技状態を通知するコマンドや他の遊技状態への移行に関する情報を通知するコマンドが含まれる。
図400に示す表では、区分が「状態」となるコマンドがこれらのコマンドに対応する。「電源投入時状態コマンド」は、電源投入時の遊技状態を通知するコマンドであり、電断からの復帰後にバックアップされたRAMの情報から特定された遊技状態を周辺制御基板1510に通知し、当該遊技状態に対応する演出を実行させる。
「特図変動時状態コマンド」は、特別図柄の変動開始時の遊技状態を通知するコマンドであり、必要に応じて通知された遊技状態に対応する演出を実行する。このとき、遊技状態ごとに「ステータス」を異ならせてコマンドを区別してもよいし、共通の「ステータス」として「モード」で区別するようにしてもよい。
「特図停止時状態終了コマンド」は、特別図柄の変動終了時の遊技状態を通知するコマンドであり、必要に応じて(例えば、遊技状態が切り替わった場合)通知された遊技状態に対応する演出を実行する。また、当該コマンド受信時に遊技状態に関するパラメータの更新(リセット)なども行うようにしてもよい。
「残り状態回数コマンド」は、現在の遊技状態が継続する残り回数(特図変動表示ゲームの実行回数)を通知するコマンドである。遊技の進行に応じて減算された残り状態回数が通知される。残り状態回数は2バイト(255)よりも大きい値が設定されうるため、上位バイトを送信するコマンドと下位バイトを送信するコマンドに分割して送信される。
なお、「特図停止時状態終了コマンド」の代わりに「残り状態回数コマンド」の変化によって他の遊技状態への移行を判定してもよい。この場合、残り状態回数が“1”から“0”に変化したタイミングで遊技状態の移行を判定することができる。通常遊技状態は所定の条件が成立(例えば、特別抽選に当選して時短状態に移行する場合)しない限り継続するため、通常遊技状態の残り状態回数を定義することができない。そのため、プログラムの簡素化などを理由として残り状態回数が“0”のままコマンドが継続して送信されるように実装することも考えられる。この場合、残り状態回数のみで遊技状態の移行を判定するのではなく、残り状態回数の変化に基づき遊技状態の移行を判定する必要がある。
また、残り状態回数を通知することにより、遊技状態の移行を示唆するカウントダウン演出を実行したり、始動入賞時の遊技状態と抽選実行時の遊技状態とが異なることで先読み演出の内容と実際の抽選結果との間に齟齬が生じることを防ぐために先読み演出の実行を抑制したりすることが可能となり、演出のバリエーションを多様化させ、遊技の興趣を高めることができる。
本実施形態の遊技機では、前述したように、時短移行カウントがクリア(初期化)されてから所定回数特別抽選に当選しなかった場合には時短状態に移行する(特別条件時短)。そのため、連続して特別抽選に当選しなかった回数(時短移行カウント)が主制御基板1310で計数される。そこで、主制御基板1310は、計数された時短移行カウントに基づいて「特別条件成立残り回数コマンド」を作成し、周辺制御基板1510に送信する。時短移行カウントが加算により更新される場合には時短移行回数と時短移行カウントとの差分から特別条件成立残り回数を算出する。時短移行カウントが減算により更新される場合には時短移行カウントを特別条件成立残り回数に対応させればよい。
特別条件成立残り回数が“0”となり、特別条件時短機能により遊技状態が通常遊技状態から時短状態に移行すると、時短状態が継続している間、特別条件成立残り回数の値は“0”に維持される。さらに、特別条件時短機能による時短状態から再び通常遊技状態に移行した場合には時短移行カウントがクリアされていないため、特別条件成立残り回数は“0”のまま維持される。そのため、前述したように、本実施形態の遊技機では、特別条件時短機能による時短状態から通常遊技状態に復帰しても、時短移行カウントがクリアされるまで再び特別条件時短機能による時短状態には移行することができないようになっている。すなわち、同じ通常遊技状態であっても特別条件時短が発生する場合と発生しない場合とがあることになる。
なお、図400に例示したコマンドの他に、区分が「状態」となるコマンドには、電源投入時の遊技状態を通知する「電源投入時状態コマンド」や「電源投入時状態コマンド」のコマンドの直後に送信され、遊技制御の復帰先を特定可能な「電源投入時復帰先コマンド」が含まれる。
[24-4.時短状態移行時の制御]
通常時短は、従来の制御と同様であり、特別抽選に当選し、役物連続作動装置が作動して発生した大当り遊技状態の終了後、時短状態に移行する。時短状態中の演出についても従来の遊技制御(通常時短による演出)と同様であり、例えば、通常遊技状態とは異なる背景に設定するなどの演出が実行される。
本実施形態の遊技機における特別条件時短では、図397にて説明したように、時短移行カウントクリア後、所定回数(時短移行回数;本実施形態では300回)連続して特別抽選に当選しなかった場合(特別条件が成立した場合)に時短状態に移行する。具体的には、特別条件成立残り回数が1から0になったタイミングで時短状態に移行する。特別条件成立残り回数は、時短移行カウントが加算によって更新される場合には、時短移行回数から時短移行カウントを減算した値となり、特別図柄の変動表示終了後に更新される。なお、時短移行カウントが減算によって更新される場合には時短移行カウントと共用してもよい。特別条件成立残り回数が0になると、タイマ割り込み処理の遊技可能時処理において遊技状態を通常遊技状態から時短状態に移行させる。このとき、時短状態の残り状態回数に上限回数(100回)が設定される。
ここで、特別条件時短による時短状態移行時の画面遷移(演出態様)の一例について説明する。図401は、本実施形態の遊技機における特別条件時短による時短状態移行時の画面遷移の一例を示す図である。図401に示す例では、(A)が時短状態に移行する前の通常遊技状態最後の図柄変動において図柄が停止した状態を示している。本実施形態の遊技機では、時短状態に移行する直前の変動まではカウントダウン演出などの演出を実行しないが、(B)に示すように時短状態への移行確定とともに時短突入演出を実行する。
なお、時短状態への移行が近づいた場合に時短状態に移行するまでの残り変動回数を表示するカウントダウン演出を実行するようにしてもよい。例えば、残り変動回数が所定回数以下(例えば、10回)の場合には残り変動回数を表示してもよい。また、残り回数を明示せずに、キャラクタを登場させたり、背景色を変化させるなどして時短状態に移行することを示唆する演出をするようにしてもよい。
本実施形態の遊技機では、時短状態に移行すると、通常遊技状態用の背景から時短状態用の背景が設定され、遊技者が時短状態に突入したことが認識できるようになっている。時短突入演出の実行後、(C)に示す時短状態用画面が表示される。時短状態用画面の背景は通常遊技状態用画面とは異なる態様となっており、図401の例では、便宜的に通常遊技状態用画面の背景は単色(無色)となっている一方、時短状態用画面の背景は網掛けとなっている。実際には、通常遊技状態用画面と時短状態用画面とが異なっていればよく、背景色の他に演出図柄の態様が異なっていてもよいし、異なるキャラクタを表示させるようにしてもよい。
また、本実施形態の遊技機の時短状態では、遊技領域の右側の領域に遊技球を発射するため(右打ち)、時短状態用画面には右打ちの指示が表示される。また、時短状態が継続する残り回数が表示されるようになっている。なお、これらの内容を表示しなくてもよいし、別の情報を表示するようにしてよい。
特別条件が成立した変動表示の図柄停止時には(図401(A))、特図図柄停止コマンドとともに特図停止時状態終了コマンドが周辺制御基板1510に送信される。周辺制御基板1510は、特図停止時状態終了コマンドにより現在の遊技状態(通常遊技状態)が終了することを認識し、さらに、特別条件成立残り回数コマンドにより特別条件成立残り回数が0であることが通知されることで、特別条件時短による時短状態に移行することを特定できる。特別条件時短による時短状態への移行を特定すると、周辺制御基板1510は、時短状態突入演出を実行することが可能となる(図401(B))。
特別図柄の変動開始時には(図401(C))、主制御基板1310から変動開始コマンドとともに特図変動時状態コマンド、変動パターンコマンド及び変動図柄種別コマンドが送信される。これらのコマンドにより、遊技状態及び特別抽選の結果に基づいて特別図柄の変動表示に伴う演出の変動時間や演出内容が特定される。具体的には、変動パターンを選択するための変動パターンテーブルを特定し、特定された変動パターンテーブルから変動パターンを選択し、対応する演出を実行する。なお、変動パターンテーブルの例については、図403にて後述する。また、これらのコマンドとともに時短状態の残り状態回数を通知する残り状態回数コマンドが送信される。通知された残り状態回数コマンドにより時短状態が終了するまでの変動回数を示すカウントダウン演出等を実行することができる。図401(C)に示す例では、残り状態回数コマンドによって特定された時短状態の残り回数(100回)を画面上に表示している。
また、特別図柄の変動停止時には、主制御基板1310から特図図柄停止コマンドが送信される。このとき、特別条件成立残り回数が“0”に設定された特別条件成立残り回数コマンドが送信され、時短移行カウントがクリアされるまで継続する。なお、特別条件成立残り回数が0に到達した場合には時短移行カウントがクリアされるまで特別条件成立残り回数コマンドの送信を禁止してもよい。
[24-5.時短状態終了時の制御]
続いて、時短状態終了時の制御について説明する。前述のように、時短状態は、所定の上限回数、特別抽選に当選しなかった場合に終了する。なお、特別抽選に当選した場合も継続中の時短状態は終了するが、時短移行カウントがクリアされ、新たに通常時短による時短状態が開始される。
通常時短による時短状態では、時短移行カウントの更新は継続しているため、時短状態から通常遊技状態に移行した後、特別状態成立残り回数が0に到達すると、特別条件時短による時短状態に移行する。一方、特別条件時短による時短状態では、時短状態移行時に時短移行カウントの更新が停止しており、時短移行カウントがクリアされるまで特別条件が成立することがないため、特別条件時短による時短状態には移行しない。
そこで、本実施形態の遊技機では、通常時短による時短状態終了時の演出態様と、特別条件時短による時短状態終了時の演出態様とを異ならせる。具体的には、通常時短による時短状態終了時には明示的に時短状態終了演出を実行し、直接的又は間接的に次回の時短状態の移行を示唆し、その後、通常遊技状態に移行する。一方、特別条件時短による時短状態終了時には、時短状態終了演出を実行せずそのまま通常遊技状態に移行する。なお、いずれの時短状態が終了する場合であっても通常遊技状態への移行に基づく背景の変更などの演出は実行されことから時短状態の終了自体を遊技者が認識することは可能である。
ここで、図402を参照しながら時短状態終了時の具体的な演出態様について説明する。図402は、本実施形態の遊技機における時短状態終了時の画面遷移の一例を示す図である。図402(A)は、時短状態の残り回数が1回の状態、すなわち、次回変動で時短状態が終了する状態となっている。
現在実行中の時短状態が特別条件時短による時短状態の場合であれば、最後の変動表示であっても時短状態における通常の演出が実行される(図402(B1))。そして、最後の変動表示が終了し、停止図柄が表示される(図402(C1))。すなわち、特別条件時短による時短状態の場合には、100回目の変動表示であっても1から99回目までの変動表示と同様に制御され、時短状態の開始から終了まで共通の変動パターンテーブルに基づいて演出内容が選択される。
時短状態における最終変動で図柄の変動表示が終了すると、通常遊技状態に移行する。特別条件時短による時短状態の終了時には、終了演出などは実行されず、背景などの表示が通常遊技状態用の表示に切り替えたり、時短状態のための右打ち表示(矢印、文字表記等)を非表示にしたりする。さらに、保留記憶があれば図柄の変動表示が開始され(図402(D))、そのまま遊技が継続される。
一方、通常時短による時短状態の場合には、最後の変動表示時に時短状態の終了を示す特別演出が実行され(図402(B2))、さらに、図柄の停止表示後に時短状態の終了を報知する終了演出が実行される(図402(C2))。特別演出と終了演出は一連の演出であってもよいし、個別の演出であってもよい。
通常時短による時短状態の終了時には、特別条件時短による時短状態の場合と異なり、最後(100回目)の変動表示が1から99回目までの変動表示と異なる制御が実行される。このとき、共通の変動パターンテーブル(図403(A))とは異なる変動パターンテーブル(図403(B))に基づいて演出内容が選択される。これにより、例えば、特別条件時短による時短状態における最終変動よりも通常時短による時短状態における最終変動の変動時間を長くすることができ、以降の遊技に対する遊技者の期待感を高めることができる。
図403は、本実施形態の変動パターンテーブルの一例である。(A)は通常の時短状態時に共通に使用されるテーブルであり、時短状態以外の遊技状態(例えば、通常遊技状態)と兼用であってもよい。(B)は通常時短による時短状態の最終変動の場合に使用される特別なテーブルである。(A)の共通に使用されるテーブルと(B)の通常時短による時短状態の最終変動時に使用される特別なテーブルとは、特別抽選の結果がハズレである短縮変動の場合の変動時間や演出内容が異なる。なお、最終変動の特別抽選の結果が大当りの場合には特別演出等は実行せず、通常の大当り演出を実行すればよい。
その後、最後の変動表示において図柄が停止すると、特別条件時短による時短状態の場合と同様に通常遊技状態に移行し(図402(D))、そのまま遊技が継続される。通常遊技状態に移行すると、実行されていた時短状態が特別条件時短によるものか通常時短によるものかによらずに共通の演出で遊技が進行する。そのため、時短状態の終了時に特別演出や終了演出を遊技者が確認していないと、以降の遊技で特別条件が成立するか否かを判別することができなくなっている。これにより、一連の演出を遊技者が注視するようになり、演出の効果を高めることができる。
時短状態継続中の演出は、最終変動を除き、特別条件時短によるものでも通常時短によるものでも共通の態様となる。通常時短による時短状態の最終変動において特別な演出を実行することによって、以降特別抽選に所定回数当選しない場合には特別条件時短による時短状態が発生することを示唆することができ、遊技者の期待感を高め、遊技の興趣を高めることができる。
以上のように、本実施形態の遊技機では、通常時短による時短状態終了後の通常遊技状態よりも特別条件時短による時短状態終了後の通常遊技状態の方が遊技者にとって有利な遊技状態とすることになる。具体的には、特別条件時短による時短状態の終了後には特別条件時短による時短状態が再び発生しない通常遊技状態に移行することに対し、通常時短による時短状態の終了後には特別条件時短による時短状態が発生可能な通常遊技状態に移行する点で遊技者にとって有利な遊技状態となっている。これ以外にも、通常時短による時短状態終了後の通常遊技状態では特別条件時短による時短状態終了後の通常遊技状態よりも特別図柄の変動時間を短くすることによって遊技者にとって有利な遊技状態としてもよい。また、通常時短による時短状態終了後の通常遊技状態では、遊技機の設定値情報を示唆する演出が実行されやすくなるようにしてもよいし、各種先読み演出が実行されやすくなるようにしてもよい。
以上、時短状態終了時の演出態様について説明したが、上記した演出制御を行うために主制御基板1310から受信したコマンドとの関連について補足する。周辺制御基板1510は、特図停止時状態終了コマンドによって時短状態の終了を判定することができるが、時短状態が終了する最終変動の図柄停止時に送信されるため、時短状態の終了に基づく演出を実行する場合に限定された演出しか実行できず不都合が生じる可能性がある。例えば、図柄変動の終了後でなければ時短状態の終了演出を実行できなくなるため、制約の多い短時間の演出しか実行できないため、興趣の高い演出を実行することができなくなってしまうおそれがある。
本実施形態の遊技機では、前述のように、通常時短による時短状態の最後の図柄変動において通常とは異なる特別演出を実行するようにしている。また、特図停止時状態終了コマンドのみによって時短状態の終了を判定すると特別演出(終了演出)を十分に興趣の高いものにできなくなってしまうおそれがあるため、残り状態回数コマンドに含まれる時短状態の残り状態回数に基づき時短状態の終了タイミングを特定することによって、時短状態終了前の一又は複数の変動を含んで演出を実行することが可能となる。例えば、残り状態回数が1から0に変化するタイミングで時短状態の終了を判定することで時短状態の最終変動で特別な演出を実行することができる。残り状態回数コマンドは図柄変動の開始時に送信されるため、残り状態回数が1の場合に時短状態の最終変動と判定することができる。
しかしながら、残り状態回数により時短状態の終了タイミングをあらかじめ特定することは可能であるが、実行中の時短状態が通常時短によるものか特別条件時短によるものかを判定することはできない。ここで、通常時短による時短状態の場合には特別条件成立残り回数の更新が継続しており、少なくとも0より大きい値となっている(図397)。一方、特別条件時短による時短状態の実行は特別条件成立後であり、特別条件成立残り回数は0となっている。特別条件成立残り回数は、特別条件成立残り回数コマンドにより図柄停止時に主制御基板1310から送信されており、時短状態の残り回数とともに特別条件成立残り回数に基づいて実行中の時短状態が通常時短によるものか特別条件時短によるものかを特定し、特別な演出を実行するか否かを判定する。そして、通常時短による時短状態であれば最後の図柄変動において通常とは異なる変動パターンテーブルを参照して通常とは異なる特別演出を実行する一方、特別条件時短による時短状態の場合には共通の変動パターンテーブルを参照して特別な演出を実行しないように制御する。
以上より、変動パターンテーブルの参照先のみを変更することで、その他の制御は共通とすることできるため、遊技制御(演出制御)の複雑化を最小限に抑制しながら特徴的な演出を実行することができる。
また、通常遊技状態から時短状態、又は、時短状態から通常遊技状態に遊技状態が変化する場合には、遊技状態の変更前後で先読み演出の実行を中止するようにしてもよい。通常時短による時短状態への移行の場合には特別抽選の結果が高確率になる可能性があり、事前判定結果に齟齬が生じるおそれがあるためである。また、遊技状態により演出態様が変化するため、演出制御が複雑化したり演出態様の変化により遊技者が混乱したりすることを抑制するためである。なお、遊技状態が変化しても特別抽選に当選確率が同じであれば、少なくとも事前判定の結果に齟齬が生じるわけではないので先読み演出を継続してもよい。
また、先読み演出の実行を禁止する期間は最大保留数(例えば、4)等により決定すればよい。先読み禁止期間の開始判定は、通常時短の場合には特図図柄種別先読みコマンド及び変動パターン先読みコマンドに基づいて判定し、特別条件時短の場合には特別条件成立残り回数と先読み演出の実行を禁止する期間(最大保留数)とを比較して判定すればよい。
[24-6.変形例]
以上説明した遊技機では、第一始動口2002に遊技球が入賞したことに基づく特別抽選に所定回数連続して当選しなかった場合に特別条件が成立し、通常遊技状態から時短状態に移行するものであった。この場合、保留数が上限になると時短移行カウントは更新されず、また、特別条件が成立するまで外れ抽選を繰り返すだけの単調な遊技となってしまうことから遊技の興趣の低下を招くおそれがあった。
[24-6-1.計数入球口]
そこで、本実施形態の遊技機の変形例として、第一始動口2002の他に時短移行カウントを更新可能な計数入球口ユニット2007を備えた遊技機について説明する。図404は、本実施形態の遊技機の遊技盤の変形例を示す図である。本変形例の遊技機の遊技盤5には、遊技領域の左側(左打ち領域)、かつ、サイドユニット上2300の上方に計数入球口ユニット2007が配置されている。計数入球口ユニット2007以外の構成については、図10に示した遊技盤5と同じ構成となっているため、説明を省略する。
[24-6-2.計数入球口の構造]
図405は、本実施形態の遊技機の遊技盤の変形例に配置された計数入球口ユニット2007の一例の断面図を示す図である。本変形例の計数入球口ユニット2007は、上方に開口した受入口2007aを備えており、遊技領域の左側(左打ち領域)を流下する遊技球を受け入れることができる。受入口2007aから受け入れられた遊技球は、内部に形成された誘導路2007dを経由して計数入球口2007bに導かれる。計数入球口2007bの内部には、遊技球の通過を検知するセンサ(図示せず)が配置されており、主制御基板1310は、当該センサから出力された信号に基づいて入球した遊技球の数を計数する。
誘導路2007dの底部には、遊技盤5の前側/後側にスライド可能な可動片2007cが配置される。可動片2007cが遊技盤5の前側にスライドした状態では計数入球口2007bに遊技球が入球可能な状態となる(入球許可状態)。一方、可動片2007cが遊技盤5の後側にスライドした状態では誘導路2007dから下方に遊技球が落下し、入球不可能な状態となる(入球不許可状態)。以下、計数入球口ユニット2007内で遊技球が移動する経路について状態ごとに説明する。
図406は、本実施形態の変形例の計数入球口ユニット2007が入球許可状態の場合に遊技球の移動経路を示す図であり、(A)は断面斜視図、(B)は断面図である。
可動片2007cを遊技盤5の前側にスライドした状態(入球許可状態)では、(A)に示すように、可動片2007cが誘導路2007dの底面を形成する。これにより、受入口2007aから受け入れられた遊技球は誘導路2007dから計数入球口2007bに導かれ、入球可能となる。
図407は、本実施形態の変形例の計数入球口ユニット2007が入球不許可状態の場合に遊技球の移動経路を示す図であり、(A)は断面斜視図、(B)は断面図である。
可動片2007cが遊技盤5の後側にスライドした状態(入球不許可状態)では、誘導路2007dの底面が形成されず、(A)に示すように、下方に向かって開口する開口部が形成される。開口部は遊技球が通過可能な大きさとなっており、受入口2007aから受け入れられた遊技球は計数入球口ユニット2007の下方の遊技領域に落下(流下)する。落下した遊技球はサイドユニット上2300の棚部2302により左右方向中央側に転動し、一般入賞口2001や第一始動口2002に向かって流下する。
[24-6-3.計数入球口の入球制御]
上述したように、計数入球口ユニット2007は、可動片2007cの位置を制御することにより、計数入球口2007bへの入球可否を切り替えることができる。主制御基板1310は、可動片2007cを動作させるための駆動体に制御信号を出力することにより、計数入球口2007bに対する入球の可否を遊技状態などに応じて制御することが可能となる。
具体的な制御の一例としては、計数入球口ユニット2007を入球許可状態に移行させるためのゲート部を配置し、ゲート通過時に所定時間入球許可状態とするようにしてもよい。計数入球口ユニット2007の入球許可状態移行条件を遊技球のゲート通過とする場合、遊技球のゲート通過時に抽選を実行してもよいし、必ず入球許可状態となるようにしてもよい。抽選で入球許可状態に移行する場合であっても本変形例の目的として特別条件が成立しやすくすることが必要であるため、高確率(略100%)で当選するようにする。このとき、計数入球口ユニット2007の上方にゲート部を配置することによって、ゲート部を狙った遊技球が計数入球口ユニット2007に向かうようにすることとなり、遊技球の頻繁な打ち分けを必要とせずに円滑な遊技を行うことができる。
また、第一始動口2002の保留記憶が最大数に到達している場合に計数入球口ユニット2007を入球許可状態にするようにしてもよい。これにより時短移行カウントの更新を促進することが可能となり、特別条件時短による時短状態への移行を早めることができる。特に、計数入球口ユニット2007を狙いながら第一始動口2002への入球を狙うことができるため、保留数が上限になっても継続して時短移行カウントを更新することが可能となり、遊技の積極的な継続を促すことが可能となる。また、第一始動口2002の保留記憶が最大数に到達していない場合には計数入球口ユニット2007を入球不許可状態にすることによって時短移行カウントが過剰に更新されることを抑制し、ベース値の過剰な上昇を抑制し、調整することが可能となる。
さらに、計数入球口ユニット2007を所定の時間間隔で入球許可状態と入球不許可状態に切り替えるようにしてもよい。このとき、保留数が上限に到達している場合には第一始動口2002への入賞により時短移行カウントが更新されないことから計数入球口ユニット2007を入球許可状態とする時間を長めの時間に設定するようにしてもよい。一方、保留数が上限に到達していない場合には本来の遊技性を維持するために第一始動口2002を狙って遊技球を発射するように促すために、遊技者が計数入球口ユニット2007を狙っても遊技球が入球しにくいように、入球許可状態とする時間を短時間(例えば、遊技球の発射間隔よりも短い時間)に設定してもよい。
なお、時短移行カウントを計数するための計数入球口ユニット2007は、左打ち領域に限らず右打ち領域に配置してもよいし、左右両方の領域に配置してもよい。これにより、遊技球の打ち分けが可能となり、遊技のバリエーションを高め、遊技の興趣を向上させることができる。
[24-6-4.本変形例における時短移行カウントの時系列変化]
ここで、計数入球口ユニット2007に遊技球が入球したことにより時短移行カウントが更新される遊技機について、時短移行カウントの時系列的な変化を図を参照しながら説明する。図408は、本実施形態の遊技機の変形例における時短移行カウントの変化を示すタイミングチャートである。ここでは、保留数や遊技状態等によらずに常時計数入球口ユニット2007が入球許可状態となっている場合について説明する。
前述のように、時短移行カウントは、特別図柄1の変動表示の開始タイミング、又は、計数入球口2007bへの遊技球の入球を計数入球口スイッチ(図示せず)により検出されたタイミングで更新される。図408を参照すると、時短移行カウントが“84”の状態で、特別図柄1の変動表示が開始され、時短移行カウントが“85”に更新される(時刻t101)。特別図柄1の変動表示が継続している間に、計数入球口2007bに遊技球が入球し、時短移行カウントが“86”に更新される(時刻t102)。以降、同様に、特別図柄1の変動表示又は計数入球口2007bへの遊技球の入球により、時短移行カウントが更新される。
[24-6-5.計数入球口への入球に基づく抽選(始動入賞口)]
以上、説明した変形例では、計数入球口ユニット2007の計数入球口2007bに遊技球が入球したときに時短移行カウントが更新されるように構成していた。これに対し、時短移行カウントの更新とは独立して遊技価値の付与に関連する抽選を実行可能な入賞口を計数入球口2007bとして機能させてもよい。この場合、当該抽選に当選しなかった場合に時短移行カウントを更新すればよい。また、この抽選の保留機能を備えるようにしてもよい。特別抽選の場合には液晶表示画面に保留表示を行っているが、計数入球口2007bへの入球に基づく抽選については遊技者に報知しなくてもよい。
上述した抽選を実行可能な計数入球口2007bを第二始動口2004としてもよい。具体的には、第二始動口2004に遊技球が入賞すると、保留数が上限でない限り特別抽選が実行されるが、この特別抽選で当選しなかった場合に時短移行カウントを更新すればよい。図409は、本実施形態の遊技機の変形例において第二始動口2004が計数入球口2007bとして機能する場合のタイミングチャートである。図409に示す例では、通常遊技状態であっても第一始動口2002だけでなく第二始動口2004にも入賞可能な構成となっており、始動入賞口に入賞した順に対応する特別図柄の変動表示が開始される。そして、特別図柄1の変動表示、特別図柄2の変動表示が開始されるタイミングで時短移行カウントが更新される。
図409を参照すると、時短移行カウントが“71”の状態で、特別図柄1の変動表示が開始され、時短移行カウントが“72”に更新される(時刻t101)。特別図柄1の変動表示の後には、第二始動口2004に遊技球が入賞したため、特別図柄2の変動表示が引き続いて実行される(時刻t102)。この特別図柄2の変動表示の開始時に、時短移行カウントが“73”に更新される。以降、同様に、入賞した始動入賞口に対応する特別図柄の変動表示が開始されるたびに時短移行カウントが更新される。なお、入賞した始動入賞口によらずに共通の時短移行カウントが使用される。
また、通常遊技状態であっても第二始動口2004に入賞可能とし、特別抽選に当選しなかったときに時短移行カウントを更新する場合、通常遊技状態であれば第一始動口2002への入賞を促し、第二始動口2004については計数入球口としての機能を優先させることで遊技性を損なわないようにする。例えば、第一始動口2002に遊技球が入球した場合には入賞音を出力する一方、第二始動口2004に遊技球が入球した場合には入賞音を出力しないようにする。また、第一始動口2002に遊技球が入球した場合には特定表示を行うことによって入球したことを遊技者が認識できるようにしてもよい。このとき、第二始動口2004に遊技球が入球した場合には特定表示を行わずに入球したことを遊技者が認識しにくくなるようにしてもよい。
以上示したように、本変形例によれば、第二始動口2004を計数入球口として機能させることができる。通常遊技状態においては第一始動口2002への遊技球の入賞した場合を優先することで遊技性を損なわずに特別条件時短を発生させやすくすることができる。また、計数入球口を新たに配置する必要がないため、遊技盤の設計コストを悪化させることなく遊技の興趣を高めることができる。
[24-6-6.その他]
特別条件時短による時短状態への移行は、特別抽選に当選していないため役物連続作動装置を作動させることができないことから、常に普通抽選の当選確率が高確率である必要がある。普通抽選の当選確率が高確率でないと時短状態に移行しても第二始動口2004が入賞可能状態とならず、入賞が困難となってしまうことからである。一方、普通抽選の当選確率を高確率とすると、ゲート部2003に遊技球が通過するたびに、第二始動口2004が入賞可能状態となってしまうため、遊技性を損なってしまうおそれがある。
上記問題を解消するために、ゲート部2003を上述した計数入球口ユニット2007と同じ構成としてもよい。具体的には、通常遊技状態ではゲート部2003を入球不許可状態とすることで普通抽選が実行されないように制御し、時短状態では入球許可状態とすることで第二始動口2004を入賞可能状態に制御すればよい。
また、第二始動口2004を上述した計数入球口ユニット2007と同じ構成としてもよい。通常遊技状態では入球不許可状態とし、時短状態では入球許可状態とすることで、時短状態でなければ第二始動口2004に入賞できないように制御することができる。
以上、本発明について好適な実施形態を挙げて説明したが、本発明はこれらの実施形態に限定されるものではなく、以下に示すように、本発明の要旨を逸脱しない範囲において、種々の改良及び設計の変更が可能である。
すなわち、実施形態では、遊技機として主としてパチンコ機1に適用したものを示したが、これに限定するものではなく、パチスロ機以外にも、パチンコ機とパチスロ機とを融合させてなる遊技機などに適用しても良く、この場合でも、同様の作用効果を奏することができる。