以下、本発明の実施形態について、図面を参照しながら説明する。
図1は、パチンコ遊技機(以下、「パチンコ機」と略称する。)1の正面図である。また、図2は、パチンコ機1の背面図である。パチンコ機1は、遊技球を遊技媒体として用いるものであり、遊技者は、遊技場運営者から遊技球を借り受けてパチンコ機1による遊技を行う。なお、パチンコ機1における遊技において、遊技球はその1個1個が遊技価値を有した媒体であり、遊技の成果として遊技者が享受する特典(利益)は、例えば遊技者が獲得した遊技球の数に基づいて遊技価値に換算することができる。以下、図1及び図2を参照しつつパチンコ機1の全体構成について説明する。
〔全体構成〕
パチンコ機1は、その本体として主に外枠ユニット2、一体扉ユニット4及び内枠アセンブリ7(プラ枠、遊技機枠)を備えている。遊技者に相対する正面からみて、その最も前面側には一体扉ユニット4が位置している。一体扉ユニット4の背面側(奥側)には内枠アセンブリ7が位置しており、内枠アセンブリ7の外側を囲むようにして外枠ユニット2が配置されている。
外枠ユニット2は、木材及び金属材を縦長の矩形状に組み合わせた構造体であり、この外枠ユニット2は、遊技場内の島設備(図示されていない)に対してねじ等の締結具を用いて固定されるものである。なお、縦長矩形状の外枠ユニット2において、上下の短辺に相当する部位には木材が用いられており、左右の長辺に相当する部位には金属材が用いられている。
一体扉ユニット4は、その下部位置に受皿ユニット6が一体化された構造である。一体扉ユニット4及び内枠アセンブリ7は、外枠ユニット2を介して島設備に取り付けられ、これらはそれぞれ図示しないヒンジ機構を介して開閉式に動作する。図示しないヒンジ機構の開閉軸線は、パチンコ機1の正面からみて左側端部に沿って垂直方向に延びている。
図1中の正面からみて内枠アセンブリ7の右側縁部(図2では左側縁部)には、その内側に統一錠ユニット9が設けられている。また、これに対応して一体扉ユニット4及び外枠ユニット2の右側縁部(裏側)にも、それぞれ図示しない施錠具が設けられている。図1に示されるように、外枠ユニット2に対して一体扉ユニット4及び内枠アセンブリ7が閉じた状態で、その裏側にある統一錠ユニット9は施錠具とともに一体扉ユニット4及び内枠アセンブリ7の開放を不能にしている。
また、受皿ユニット6の右側縁部には鍵穴付きのシリンダ錠6aが設けられている。例えば、遊技場の管理者が専用キーを鍵穴に差し込んでシリンダ錠6aを時計回りに捻ると、統一錠ユニット9が作動して内枠アセンブリ7とともに一体扉ユニット4の開放が可能な状態となる。これら全体を外枠ユニット2から前面側へ開放する(扉のように動かす)と、前面側にてパチンコ機1の裏側が露出することになる。
一方、シリンダ錠6aを反時計回りに捻ると、内枠アセンブリ7は施錠されたままで一体扉ユニット4の施錠だけが解除され、一体扉ユニット4が開放可能となる。一体扉ユニット4を前面側へ開放すると遊技盤ユニット8が直に露出し、この状態で遊技場の管理者が盤面内での球詰まり等の障害を取り除くことができる。また、一体扉ユニット4を開放すると、受皿ユニット6も一緒に前面側へ開放される。
また、パチンコ機1は、遊技用ユニットとして上記の遊技盤ユニット8を備えている。遊技盤ユニット8は、一体扉ユニット4の背後(内側)で上記の内枠アセンブリ7に支持されている。遊技盤ユニット8は、例えば一体扉ユニット4を前面側へ開放した状態で内枠アセンブリ7に対して着脱可能である。一体扉ユニット4には、その中央部に縦長円形状の窓4aが形成されており、この窓4a内にガラスユニット(参照符号なし)が取り付けられている。ガラスユニットは、例えば窓4aの形状に合わせてカットされた2枚の透明板(ガラス板)を組み合わせたものである。ガラスユニットは、一体扉ユニット4の裏側に図示しない取り付け具を介して取り付けられる。遊技盤ユニット8の前面には遊技領域8a(盤面、遊技盤)が形成されており、この遊技領域8aは窓4aを通じて前面側から遊技者に視認可能である。一体扉ユニット4が閉じられると、ガラスユニットの内面と盤面との間に遊技球が流下できる空間が形成される。
受皿ユニット6は、全体的に一体扉ユニット4から前面側へ突出した形状をなしており、その上面に上皿6bが形成されている。この上皿6bには、遊技者に貸し出された遊技球(貸球)や入賞により獲得した遊技球(賞球)を貯留することができる。また、受皿ユニット6には、上皿6bの下段位置に下皿6cが形成されている。この下皿6cには、上皿6bが満杯の状態でさらに払い出された遊技球が貯留される。なお、本実施形態のパチンコ機1はいわゆるCR機(CRユニットに接続する機種)であり、遊技者が借り受けた遊技球は、賞球とは別に裏側の払出装置ユニット172から受皿ユニット6(上皿6b又は下皿6c)に払い出される。
受皿ユニット6の上面には貸出操作部14が設けられており、この貸出操作部14には、球貸ボタン10及び返却ボタン12が配置されている。図示しないCRユニットに有価媒体(例えば磁気記録媒体、記憶IC内蔵媒体等)を投入した状態で球貸ボタン10を遊技者が操作すると、予め決められた度数単位(例えば5度数)に対応する個数(例えば125個)分の遊技球が貸し出される。このため貸出操作部14の上面には度数表示部(図示されていない)が配置されており、この度数表示部には、CRユニットに投入されている有価媒体の残存度数が表示される。なお、遊技者は、返却ボタン12を操作することで、度数が残存している有価媒体の返却を受けることができる。本実施形態ではCR機を例に挙げているが、パチンコ機1はCR機とは別の現金機(CRユニットに接続されない機種)であってもよい。
また、受皿ユニット6の上面には、上段位置にある上皿6bの手前に上皿球抜きボタン6dが設置されており、そして下皿6cの手前でその中央部には下皿球抜きレバー6eが設置されている。遊技者は上皿球抜きボタン6dを例えば押し込み操作することで、上皿6bに貯留された遊技球を下皿6cへ流下させることができる。また、遊技者は、下皿球抜きレバー6eを例えば左方向へスライドさせることで、下皿6cに貯留された遊技球を下方へ落下させて排出することができる。排出された遊技球は、例えば図示しない球受け箱等に受け止められる。
受皿ユニット6の右下部には、ハンドルユニット16が設置されている。遊技者はこのハンドルユニット16を操作することで発射制御基板セット174を作動させ、遊技領域8aに向けて遊技球を発射する(打ち込む)ことができる(球発射装置)。発射された遊技球は、遊技盤ユニット8の下縁部から左側縁部に沿って上昇し、図示しない外バンドに案内されて遊技領域8a内に放り込まれる。遊技領域8a内には多数の障害釘や風車(図中参照符号なし)等が配置されており、放り込まれた遊技球は障害釘や風車により誘導・案内されながら遊技領域8a内を流下する。なお、遊技領域8a内(盤面、遊技盤)の構成については、別の図面を参照しながらさらに後述する。
〔枠前面の構成〕
一体扉ユニット4には、演出用の構成要素として左トップレンズユニット47及び右上電飾ユニット49が設置されている。このうち左トップレンズユニット47にはガラス枠トップランプ46及び左側のガラス枠装飾ランプ48が組み込まれており、右上電飾ユニット49には右側のガラス枠装飾ランプ50が組み込まれている。その他にも一体扉ユニット4には、左トップレンズユニット47及び右上電飾ユニット49の下方にそれぞれ連なるようにして左右のガラス枠装飾ランプ52が設置されており、これらガラス枠装飾ランプ52は、一体扉ユニット4の左右縁部から受皿ユニット6の前面部にまで回り込むようにして延びている。一体扉ユニット4においてガラス枠トップランプ46や左右のガラス枠装飾ランプ48,50,52等は、ガラスユニットを取り巻くようにして配置されている。
上述した各種ランプ46,48,50,52は、例えば内蔵するLEDの発光(点灯や点滅、輝度階調の変化、色調の変化等)により演出を実行する。また、一体扉ユニット4の上部において、左トップレンズユニット47及び右上電飾ユニット49にはそれぞれガラス枠上スピーカ54,55が組み込まれている。一方、外枠ユニット2の左下位置には外枠スピーカ56が組み込まれている。これらスピーカ54,55,56は、効果音やBGM、音声等(音響全般)を出力して演出を実行するものである。
また、受皿ユニット6の中央には、上皿6bの手前位置に演出切替ボタン45が設置されている。遊技者は、この演出切替ボタン45を押し込み操作することで演出内容(例えば液晶表示器42に表示される背景画面)を切り替えたり、例えば図柄の変動中や大当りの確定表示中、あるいは大当り遊技中に何らかの演出(予告演出、確変昇格演出、大役中の昇格演出等)を発生させたりすることができる。
さらに、演出切替ボタン45の周囲には、演出切替ボタン45を取り囲むようにジョグダイアル45aが設置されている(操作入力受付手段、回転型セレクター)。遊技者は、このジョグダイアル45aを回転させることで、例えば液晶表示器42に表示される演出内容を変化させることができる。
〔裏側の構成〕
図2に示されているように、パチンコ機1の裏側には、電源制御ユニット162や主制御基板ユニット170、払出装置ユニット172、流路ユニット173、発射制御基板セット174、払出制御基板ユニット176、裏カバーユニット178等が設置されている。この他にパチンコ機1の裏側には、パチンコ機1の電源系統や制御系統を構成する各種の電子機器類(図示しない制御コンピュータを含む)や外部端子板160、電源コード(電源プラグ)164、アース線(アース端子)166、図示しない接続配線等が設置されている。
上記の払出装置ユニット172は、例えば賞球タンク172a及び賞球ケース(参照符号なし)を有しており、このうち賞球タンク172aは内枠アセンブリ7の上縁部(裏側)に設置された状態で、図示しない補給経路から補給された遊技球を蓄えることができる。賞球タンク172aに蓄えられた遊技球は、図示しない上側賞球樋を通じて賞球ケースに導かれる。流路ユニット173は、払出装置ユニット172から送り出された遊技球を前面側の受皿ユニット6に向けて案内する。
また、上記の外部端子板160は、パチンコ機1を外部の電子機器(例えばデータ表示装置、ホールコンピュータ等)に接続するためのものであり、この外部端子板160からは、パチンコ機1の遊技進行状態やメンテナンス状態等を表す各種の外部情報信号(例えば賞球情報、扉開放情報、図柄確定回数情報、大当り情報、始動口情報等)が外部の電子機器に向けて出力されるものとなっている。
電源コード164は、例えば遊技場の島設備に設置された電源装置(例えばAC24V)に接続されることで、パチンコ機1の動作に必要な電源(電力)を確保するものである。また、アース線166は、同じく島設備に設置されたアース端子に接続されることで、パチンコ機1のアース(接地)を確保するものである。
図3は、遊技盤ユニット8を単独で示す正面図である。遊技盤ユニット8は、ベースとなる遊技板8bを備えており、この遊技板8bの前面側に遊技領域8aが形成されている。遊技板8bは、例えば透明樹脂板で構成されており、遊技盤ユニット8が内枠アセンブリ7に固定された状態で、遊技板8bの前面はガラスユニットに平行となる。遊技板8bの前面には、略円形状に設置された発射レール(参照符号なし)の内側に上記の遊技領域8aが形成されている。
遊技領域8a内には、その中央位置に比較的大型の演出ユニット40が配置されており、この演出ユニット40を中心として遊技領域8aが左側部分、右側部分及び下部分に大きく分かれている。遊技領域8aの左側部分は、通常遊技状態(低確率非時間短縮状態)で使用される第1遊技領域(左打ち領域)であり、遊技領域8aの右側部分は、有利遊技状態(大当り遊技状態、小当り遊技状態、低確率時間短縮状態、高確率時間短縮状態等)で使用される第2遊技領域(右打ち領域、特定の領域)である。遊技球は、第2遊技領域へ流通させる経路に係る流通領域19e(発射レールや遊技領域の天井部、誘導部など)によって第2遊技領域に導かれる。また、遊技領域8a内には、演出ユニット40の周辺に中始動入賞口26、始動ゲート20、普通入賞口22,24、可変始動入賞装置28、第1可変入賞装置30(可変入球装置、下特別電動役物)、第2可変入賞装置31(可変入球装置、上特別電動役物)、振分ユニット200等が分布して設置されている。始動ゲート20は、流通領域から右打ち領域へ導かれた遊技球を主対象にして通過させることで作動抽選(普通図柄抽選)の抽選契機を発生させる。
このうち、中始動入賞口26は、遊技領域8aの下部分の中央に配置されている。始動ゲート20、可変始動入賞装置28、第2可変入賞装置31、振分ユニット200、普通入賞口24及び第1可変入賞装置30は、遊技領域8aの右側部分に配置されている。ここで、振分ユニット200は、第2可変入賞装置31の下流に配置されており、第1可変入賞装置30は、振分ユニット200の下流に配置されている。さらに、左側の3つの普通入賞口22は遊技領域8aの左側部分に配置されており、右側の普通入賞口24は、振分ユニット200の左側のルートを通り抜けた遊技球が入球可能な位置に配置されている。
また、可変始動入賞装置28の上方には、4つの障害釘が配置されており、さらにその上方には入球口19a及び放出口19bが配置されている。入球口19aと放出口19bとは図示しない裏側の連絡通路によって連結されている。入球口19aに入球した遊技球は、この連絡通路を通って減速・整流され、放出口19bから放出される。
さらに、始動ゲート20の右側にはアウト口19c(所定の入球口)が配置されている。放出口19bから放出された遊技球は、基本的には真っ直ぐに落下して始動ゲート20を通過するが、障害釘によって右側に弾かれた場合にはアウト口19cに入球する。
遊技領域の最上部には、遊技領域の上部に向かって発射された遊技球の移動方向を規制可能として右打ち領域に導くための入口領域(例えば演出ユニット40の上部に形成された一列の通路の入口)と出口領域(例えば放出口19b)を有する区画に基づく流通領域19eが形成されている。
遊技領域8a内に放り込まれた遊技球は、その流下の過程で中始動入賞口26、普通入賞口22,24に入球したり、始動ゲート20を通過したり、作動時の可変始動入賞装置28や開放動作時の第1可変入賞装置30、開放動作時の第2可変入賞装置31に入球したりする。
ここで、遊技領域8aの左側領域を流下する遊技球は、主に中始動入賞口26に入球するか、普通入賞口22に入球する可能性がある。一方、遊技領域8aの右側領域を流下する遊技球は、入球口19aに入球して放出口19bから放出され、主に始動ゲート20を通過するか、アウト口19cに入球するか、作動時の可変始動入賞装置28に入球するか、開放動作時の第2可変入賞装置31に入球する可能性があり、その後、振分ユニット200に進入する。
振分ユニット200によって左側のルートに振り分けられた遊技球は、普通入賞口24に入球するか、開放動作時の第1可変入賞装置30に入球する可能性がある。また、振分ユニット200によって右側のルートに振り分けられた遊技球は、開放動作時の第1可変入賞装置30に入球する可能性がある。
始動ゲート20を通過した遊技球は続けて遊技領域8a内を流下するが、中始動入賞口26、普通入賞口22,24、可変始動入賞装置28、第1可変入賞装置30、第2可変入賞装置31、アウト口19cに入球した遊技球は遊技板(遊技盤ユニット8を構成する合板材、透明板等)に形成された貫通孔を通じて遊技盤ユニット8の裏側へ回収される。
ここで、本実施形態では、遊技領域8a(盤面)の構成上、中始動入賞口26や普通入賞口22に遊技球を入球させる場合は、遊技領域8a内の左側部分の領域(左打ち領域)に遊技球を打ち込む(いわゆる「左打ち」を実行する)必要がある。
一方、可変始動入賞装置28や、第1可変入賞装置30、第2可変入賞装置31、普通入賞口24に遊技球を入球させる場合は、遊技領域8a内の右側部分の領域(右打ち領域)に遊技球を打ち込む(いわゆる「右打ち」を実行する)必要がある。
本実施形態において、上記の可変始動入賞装置28は、所定の作動条件が満たされた場合(普通図柄が当りの態様で所定の停止表示時間にわたり停止表示された場合)に作動し、それに伴って右始動入賞口28a(所定の入球口)への入球を可能にする(普通電動役物)。可変始動入賞装置28には、下端縁部分をヒンジとして前方へ倒れ込むように変位する開閉部材28bが設けられている。図示の状態にて、開閉部材28bは、起立した状態(待避位置)にあり、遊技球が右始動入賞口28aに入球することを困難にしている。一方、開閉部材28bが手前側に倒れた状態(駆動位置)に移動すると、開閉部材28bは上方から流下してくる遊技球を受け止め、右始動入賞口28aに遊技球を案内する。なお、可変始動入賞装置28は、開閉部材が盤面より奥に引っ込んだ位置から盤面より手前側へ突出した位置に移動して、右始動入賞口を開放する舌片型(ベロタイプ)の装置であってもよい。また、可変始動入賞装置28は、いわゆるチューリップタイプの装置であってもよい。
上記の第1可変入賞装置30は、規定の条件が満たされた場合(特別図柄が大当り又は小当りの態様で停止表示された場合)であって所定の第1条件(例えば16ラウンド確変図柄1以外の当選図柄で当選したという条件、小当り遊技の開放状態であるという条件)が満たされた場合に作動し、第1大入賞口30b(上大入賞口)への入球を可能にする(特別電動役物、第1特別入球事象発生手段)。
第1可変入賞装置30は、中始動入賞口26の右側に配置された装置であり(いわゆる下アタッカ)、例えば1つの開閉部材30aを有している。第1可変入賞装置30は、開閉部材30aが盤面の内部にスライドするタイプの装置である(スライド式のアタッカ)。そして、この開閉部材30aは、例えば図示しないソレノイドを用いたリンク機構の働きにより、盤面に対して前後方向に往復動作する。開閉部材30aは、盤面から遊技者側に突出した状態で閉位置(閉鎖状態)にあり、このとき遊技球は開閉部材30aの上面を転動することになるため、第1大入賞口30bへの入球は不能(第1大入賞口30bは閉塞中)である。そして、第1可変入賞装置30が作動すると、開閉部材30aが盤面の内部に引き込まれ、第1大入賞口30bを開放する(開放状態)。この間に第1可変入賞装置30は遊技球の流入が不能ではない状態となり、第1大入賞口30bへの入球という事象を発生させることができる。
第2可変入賞装置31は、第1可変入賞装置30と同様に規定の条件が満たされた場合(特別図柄が大当りの態様で停止表示された場合)であって、所定の第2条件(例えば16ラウンド確変図柄1の当選図柄で当選したという条件)が満たされた場合に作動し、第2大入賞口31b(下大入賞口)への入球を可能にする(特別電動役物、第2特別入球事象発生手段)。
第2可変入賞装置31は、振分ユニット200の上流に配置された装置であり(いわゆる上アタッカ)、例えば1つの開閉部材31aを有している。第2可変入賞装置31は、開閉部材31aが盤面の内部にスライドするタイプの装置である(スライド式のアタッカ)。そして、この開閉部材31aは、例えば図示しないソレノイドを用いたリンク機構の働きにより、盤面に対して前後方向に往復動作する。開閉部材31aは、盤面から遊技者側に突出した状態で閉位置(閉鎖状態)にあり、このとき遊技球は開閉部材31aの上面を転動することになるため、第2大入賞口31bへの入球は不能(第2大入賞口31bは閉塞中)である。そして、第2可変入賞装置31が作動すると、開閉部材31aが盤面の内部に引き込まれ、第2大入賞口31bを開放する(開放状態)。この間に第2可変入賞装置31は遊技球の流入が不能ではない状態となり、第2大入賞口31bへの入球という事象を発生させることができる。
また、第2可変入賞装置31の内部には、第2可変入賞装置31に入球した遊技球を下流の方向に誘導するための誘導通路31cが配置されている。誘導通路31cは、第2大入賞口31bの入口から下方かつ左側に延びている。
そして、誘導通路31cの上流には、第2カウントスイッチ85が配置されており、誘導通路31cの下流には、排出口31fが配置されている。
第2可変入賞装置31に入球した遊技球は、最初に第2カウントスイッチ85にて入球したことが検出され、誘導通路31cを通過して排出口31fに導かれる。
〔振分ユニット(振分装置)〕
第1可変入賞装置30と第2可変入賞装置31との間には、振分ユニット200が配置されている。振分ユニット200には、右打ちされた遊技球のうち、アウト口19c、可変始動入賞装置28及び第2可変入賞装置31に入球しなかった遊技球が入球する。
振分ユニット200は、流通領域19eを経由して右打ち領域に案内された遊技球が流入する流入部200iを有し、流入部200iに流入した遊技球を電動式又は機械式の振分体202によって予め定められた振り分け割合で右打ち領域の第1の場所(振分ユニット200の左下側)に向けて放出する第1排出口200o1(第1放出部)又は右打ち領域の第2の場所(振分ユニット200の右下側)に向けて放出する第2排出口200o2(第2放出部)のいずれかに振り分けるユニットである。電動式の振分体202を採用する場合、電源投入時から常時一定の動作パターンで動作する振分体を用いることができ、機械式の振分体202を採用する場合、複数の周面を有し、縦方向に回転する回転体を用いることができる。
振分ユニット200の振分割合は、均等な割合や不均等な割合など、任意に設定することができる。本実施形態では、振分ユニット200の振分割合は、1対3の割合に設定している。このため、4個の遊技球が振分ユニット200に入球した場合を想定すると、そのうちの3個の遊技球は右側のルートに振り分けられ、残りの1個の遊技球は左側のルートに振り分けられる。このため、遊技球が振分ユニット200に入球すると、4球に1球は、遊技球が普通入賞口24に入球することになる。
そして、第1排出口200o1の下方(振分ユニット200の左下側)には、普通入賞口24が配置されている。
また、第2排出口200o2の下方(振分ユニット200の右下側)の下流には、上記の第1可変入賞装置30が配置されている。
遊技盤ユニット8には、その中央位置から右側部分にかけて上記の演出ユニット40が設置されている。演出ユニット40は、その上縁部40aが遊技球の流下方向を変化させる案内部材として機能する他、その内側に各種の装飾部品40b,40cを備えている。装飾部品40b,40cはその立体的な造形により遊技盤ユニット8の装飾性を高めるとともに、例えば内蔵された発光器(LED等)により透過光を発することで、演出的な動作をすることができる。また、演出ユニット40の内側には液晶表示器42(画像表示器)が設置されており、この液晶表示器42には特別図柄に対応させた演出図柄をはじめ、各種の演出画像が表示される。このように遊技盤ユニット8は、その盤面の構成や演出ユニット40の装飾性に基づいて、遊技者にパチンコ機1の特徴を印象付けている。また、本実施形態のように遊技板8bが透明樹脂板(例えばアクリル板)である場合、前面側だけでなく遊技板8bの背後に配置された各種の装飾体(可動体や発光体を含む)による装飾性を付加することができる。
その他に演出ユニット40の内部には、演出用の可動体40f(例えば植物を模した装飾物)とともに駆動源(例えばモータ、ソレノイド等)が付属している。演出用の可動体40fは、液晶表示器42による画像を用いた演出や発光器による演出に加えて、有形物の動作を伴う演出を実行することができる。これら可動体40fを用いた演出により、二次元の画像を用いた演出とは別の訴求力を発揮することができる。
演出ユニット40の左側縁部には球案内通路40dが形成されており、その下縁部には転動ステージ40eが形成されている。球案内通路40dは遊技領域8a内にて左斜め上方に開口しており、遊技領域8a内を流下する遊技球が無作為に球案内通路40d内に流入すると、その内部を通過して転動ステージ40e上に放出される。転動ステージ40eの上面は滑らかな湾曲面を有しており、ここでは遊技球が左右方向に転動自在である。
また、転動ステージ40eの略中央位置には流入通路40gが形成されており、この流入通路40gには転動ステージ40eから遊技球が無作為に流入し得る。流入通路40gは演出ユニット40の下縁部を下方に延びた後、手前側へL字形状に屈曲して形成されており、その終端に球放出口40hが形成されている。球放出口40hは前面に向けて開口しており、その開口位置が中始動入賞口26の真上に位置している。このため転動ステージ40e上から流入通路40g内に流入した遊技球は、球放出口40hから放出されて、その真下にある中始動入賞口26に入球しやすくなる。
その他、遊技領域8a内にはアウト口32が形成されており、各種入賞口に入球(入賞)しなかった遊技球は最終的にアウト口32を通じて遊技盤ユニット8の裏側へ回収される。また、普通入賞口22,24や中始動入賞口26、右始動入賞口28a、第1可変入賞装置30、第2可変入賞装置31、アウト口19cに入球した遊技球も含めて、遊技領域8a内に打ち込まれた全ての遊技球は遊技盤ユニット8の裏側へ回収される。回収された遊技球は、図示しないアウト通路アセンブリを通じてパチンコ機1の裏側から枠外へ排出され、さらに図示しない島設備の補給経路に合流する。
図4は、遊技盤ユニット8の一部(窓4a内の左下位置)を拡大して示す正面図である。すなわち遊技盤ユニット8には、例えば窓4a内の左下位置に普通図柄表示装置33及び普通図柄作動記憶ランプ33aが設けられている他、第1特別図柄表示装置34、第2特別図柄表示装置35及び遊技状態表示装置38が設けられている。このうち普通図柄表示装置33は、例えば2つのランプ(LED)を交互に点灯させて普通図柄を変動表示し、そしてランプの点灯又は消灯により普通図柄を停止表示する。普通図柄作動記憶ランプ33aは、例えば2つのランプ(LED)の消灯又は点灯、点滅の組み合わせによって0〜4個の記憶数を表示する。例えば、2つのランプをともに消灯させた表示態様では記憶数0個を表示し、1つのランプを点灯させた表示態様では記憶数1個を表示し、同じ1つのランプを点滅させた表示態様では記憶数2個を表示し、1つのランプの点滅に加えてもう1つのランプを点灯させた表示態様では記憶数3個を表示し、そして2つのランプをともに点滅させた表示態様では記憶数4個を表示する、といった具合である。なお、ここでは2つのランプ(LED)を使用することとしているが、4つのランプ(LED)を使用して普通図柄作動記憶ランプ33aを構成してもよい。この場合、点灯するランプの個数で作動記憶数を表示することができる。
普通図柄作動記憶ランプ33aは、始動ゲート20を遊技球が通過すると、その都度、作動抽選の契機となる通過が発生したことを記憶する意味で1個ずつ増加後の表示態様へと変化していき(最大4個まで)、その通過を契機として普通図柄の変動が開始されるごとに1個ずつ減少後の表示態様へと変化していく。なお、本実施形態では、普通図柄作動記憶ランプ33aが未点灯(記憶数が0個)の場合、普通図柄が既に変動開始可能な状態(停止表示時)で始動ゲート20を遊技球が通過しても表示態様は変化しない。すなわち、普通図柄作動記憶ランプ33aの表示態様によって表される記憶数(最大4個)は、その時点で未だ普通図柄の変動が開始されていない通過の回数を表している。
また、第1特別図柄表示装置34及び第2特別図柄表示装置35は、例えばそれぞれ7セグメントLED(ドット付き)により、対応する第1特別図柄又は第2特別図柄の変動状態と停止状態とを表示することができる(図柄表示手段)。なお、第1特別図柄表示装置34や第2特別図柄表示装置35は、複数のドットLEDを幾何学的(例えば円形状)に配列した形態であってもよい。
また、第1特別図柄作動記憶ランプ34a及び第2特別図柄作動記憶ランプ35aは、例えばそれぞれ2つのランプ(LED)の消灯又は点灯、点滅の組み合わせで構成される表示態様により、それぞれ0〜4個の記憶数を表示する(記憶数表示手段)。例えば、2つのランプをともに消灯させた表示態様では記憶数0個を表示し、1つのランプを点灯させた表示態様では記憶数1個を表示し、同じ1つのランプを点滅させた表示態様では記憶数2個を表示し、1つのランプの点滅に加えてもう1つのランプを点灯させた表示態様では記憶数3個を表示し、そして2つのランプをともに点滅させた表示態様では記憶数4個を表示する、といった具合である。
第1特別図柄作動記憶ランプ34aは、中始動入賞口26に遊技球が入球するごとに、中始動入賞口26に遊技球が入球したことを記憶する意味で1個ずつ増加後の表示態様へと変化していき(最大4個まで)、その入球を契機として特別図柄の変動が開始されるごとに1個ずつ減少後の表示態様へと変化していく。また、第2特別図柄作動記憶ランプ35aは、可変始動入賞装置28に遊技球が入球するごとに、右始動入賞口28aに遊技球が入球したことを記憶する意味で1個ずつ増加後の表示態様へと変化し(最大4個まで)、その入球を契機として特別図柄の変動が開始されるごとに1個ずつ減少後の表示態様へと変化する。なお、本実施形態では、第1特別図柄作動記憶ランプ34aが未点灯(記憶数が0個)の場合、第1特別図柄が既に変動開始可能な状態(停止表示時)で中始動入賞口26に遊技球が入球しても表示態様は変化しない。また、第2特別図柄作動記憶ランプ35aが未点灯(記憶数が0個)の場合、第2特別図柄が既に変動開始可能な状態(停止表示時)で可変始動入賞装置28に遊技球が入球しても表示態様は変化しない。すなわち、各特別図柄作動記憶ランプ34a,35aの表示態様により表される記憶数(最大4個)は、その時点で未だ第1特別図柄又は第2特別図柄の変動が開始されていない入球の回数を表している。
また、遊技状態表示装置38には、例えば大当り種別表示ランプ38a1,38a2,38a3,38a4,38a5、確率変動状態表示ランプ38d、時短状態表示ランプ38e、発射位置指定ランプ38fにそれぞれ対応するLEDが含まれている。なお、本実施形態では、上述した普通図柄表示装置33や普通図柄作動記憶ランプ33a、第1特別図柄表示装置34、第2特別図柄表示装置35、第1特別図柄作動記憶ランプ34a、第2特別図柄作動記憶ランプ35a及び遊技状態表示装置38が1枚の統合表示基板89に実装された状態で遊技盤ユニット8に取り付けられている。
〔制御上の構成〕
次に、パチンコ機1の制御に関する構成について説明する。図5は、パチンコ機1に装備された各種の電子機器類を示すブロック図である。パチンコ機1は、制御動作の中枢となる主制御装置70(主制御用コンピュータ、制御装置)を備えており、この主制御装置70は主に、パチンコ機1における遊技の進行を制御する機能を有している。なお、主制御装置70は、主制御基板ユニット170に内蔵されている。
また、主制御装置70には、中央演算処理装置である主制御CPU72を実装した回路基板(主制御基板)が装備されており、主制御CPU72は、図示しないCPUコアやレジスタとともにROM74、RAM(RWM)76等の半導体メモリを集積したLSIとして構成されている。また、主制御装置70には、乱数発生器75やサンプリング回路77が装備されている。このうち乱数発生器75は、特別図柄抽選の大当り判定用や普通図柄抽選の当り判定用にハードウェア乱数(例えば10進数表記で0〜65535)を発生させるものであり、ここで発生された乱数は、サンプリング回路77を通じて主制御CPU72に入力される。その他にも主制御装置70には、入出力(I/O)ポート79や図示しないクロック発生回路、カウンタ/タイマ回路(CTC)等の周辺ICが装備されており、これらは主制御CPU72とともに回路基板上に実装されている。なお、回路基板上(又は内層部分)には、信号伝送経路や電源供給経路、制御用バス等が配線パターンとして形成されている。
上述した始動ゲート20には、遊技球の通過を検出するためのゲートスイッチ78が一体的に設けられている。また、遊技盤ユニット8には、中始動入賞口26、可変始動入賞装置28、第1可変入賞装置30及び第2可変入賞装置31にそれぞれ対応して中始動入賞口スイッチ80、右始動入賞口スイッチ82、第1カウントスイッチ84及び第2カウントスイッチ85が装備されている。各始動入賞口スイッチ80,82は、中始動入賞口26、可変始動入賞装置28(右始動入賞口28a)への遊技球の入球を検出するためのものである。また、第1カウントスイッチ84は、第1可変入賞装置30(第1大入賞口)への遊技球の入球を検出し、その数をカウントするためのものである。さらに、第2カウントスイッチ85は、第2可変入賞装置31(第2大入賞口31b)への遊技球の入球を検出し、その数をカウントするためのものである。
同様に遊技盤ユニット8には、普通入賞口22への遊技球の入球を検出する第1入賞口スイッチ86と、普通入賞口24への遊技球の入球を検出する第2入賞口スイッチ81(検出手段)とが装備されている。なお、左側の3つの普通入賞口22については、共通の入賞口スイッチ86を用いる構成を例に挙げているが、例えば3つの入賞口スイッチを設置して、各普通入賞口22に対する遊技球の入球を個別に検出してもよい。
いずれにしても、これらスイッチ類の入賞検出信号は、図示しない入出力ドライバを介して主制御CPU72に入力される。なお、遊技盤ユニット8の構成上、本実施形態ではゲートスイッチ78、第1カウントスイッチ84、第2カウントスイッチ85、第1入賞口スイッチ86、第2入賞口スイッチ81からの入賞検出信号は、パネル中継端子板87を経由して送信され、パネル中継端子板87には、それぞれの入賞検出信号を中継するための配線パターンや接続端子等が設けられている。
上述した普通図柄表示装置33や普通図柄作動記憶ランプ33a、第1特別図柄表示装置34、第2特別図柄表示装置35、第1特別図柄作動記憶ランプ34a、第2特別図柄作動記憶ランプ35a及び遊技状態表示装置38は、主制御CPU72からの制御信号に基づいて表示動作を制御されている。主制御CPU72は、遊技の進行状況に応じてこれら表示装置33,34,35,38及びランプ33a,34a,35aに対する制御信号を出力し、各LEDの点灯状態を制御している。また、これら表示装置33,34,35,38及びランプ33a,34a,35aは、上述したように1枚の統合表示基板89に実装された状態で遊技盤ユニット8に設置されており、この統合表示基板89にはパネル中継端子板87を中継して主制御CPU72から制御信号が送信される。
また、遊技盤ユニット8には、可変始動入賞装置28、第1可変入賞装置30及び第2可変入賞装置31のそれぞれに対応して普通電動役物ソレノイド88、第1大入賞口ソレノイド90及び第2大入賞口ソレノイド97が設けられている。これらソレノイド88,90,97は主制御CPU72からの制御信号に基づいて動作(励磁)し、それぞれ可変始動入賞装置28、第1可変入賞装置30及び第2可変入賞装置31を開閉動作(作動)させる。なお、これらソレノイド88,90,97についてもパネル中継端子板87を中継して主制御CPU72から制御信号が送信される。
その他に一体扉ユニット4にはガラス枠開放スイッチ91が設置されており、また、内枠アセンブリ7にはプラ枠開放スイッチ93が設置されている。一体扉ユニット4が単独で開放されると、ガラス枠開放スイッチ91からの接点信号が主制御装置70(主制御CPU72)に入力され、また、外枠ユニット2から内枠アセンブリ7が開放されると、プラ枠開放スイッチ93からの接点信号が主制御装置70(主制御CPU72)に入力される。主制御CPU72は、これら接点信号から一体扉ユニット4や内枠アセンブリ7の開放状態を検出することができる。なお、主制御CPU72は、一体扉ユニット4や内枠アセンブリ7の開放状態を検出すると、外部情報信号として扉開放情報信号を生成する。
パチンコ機1の裏側には、払出制御装置92が装備されている(払出手段)。この払出制御装置92(払出制御コンピュータ)は、上述した払出装置ユニット172の動作を制御する。払出制御装置92には、払出制御CPU94を実装した回路基板(払出制御基板)が装備されており、この払出制御CPU94もまた、図示しないCPUコアとともにROM96、RAM98等の半導体メモリを集積したLSIとして構成されている。払出制御装置92(払出制御CPU94)は、主制御CPU72からの賞球指示コマンドに基づいて払出装置ユニット172の動作を制御し、要求された個数の遊技球の払出動作を実行させる。なお、主制御CPU72は賞球指示コマンドとともに、外部情報信号として賞球情報信号を生成する。
払出装置ユニット172の図示しない賞球ケース内には、払出モータ102(例えばステッピングモータ、払出手段)とともに払出装置基板100が設置されており、この払出装置基板100には払出モータ102の駆動回路が設けられている。払出装置基板100は、払出制御装置92(払出制御CPU94)からの払出数指示信号に基づいて払出モータ102の回転角度を具体的に制御し、指示された数の遊技球を賞球ケースから払い出させる。払い出された遊技球は、流路ユニット173内の払出流路を通って受皿ユニット6に送られる。
また、例えば賞球ケースの上流位置には払出路球切れスイッチ104が設置されている他、払出モータ102の下流位置には払出計数スイッチ106が設置されている。払出モータ102の駆動により実際に賞球が払い出されると、その都度、払出計数スイッチ106からの計数信号が払出装置基板100に入力される。また、賞球ケースの上流位置で球切れが発生すると、払出路球切れスイッチ104からの接点信号が払出装置基板100に入力される。払出装置基板100は、入力された計数信号や接点信号を払出制御装置92(払出制御CPU94)に送信する。払出制御CPU94は、払出装置基板100から受信した信号に基づき、実際の払出数や球切れ状態を検知することができる。
また、パチンコ機1には、例えば下皿6cの内部(パチンコ機1の正面からみて奧の位置)に満タンスイッチ161が設置されている。実際に払い出された賞球(遊技球)は流路ユニット173を通じて上皿6bに放出されるが、上皿6bが遊技球で満杯になると、それ以上に払い出された遊技球は上述したように下皿6cへ流れ込む。さらに、下皿6cが遊技球で満杯になると、それによって満タンスイッチ161がONになり、満タン検出信号が払出制御装置92(払出制御CPU94)に入力される。これを受けて払出制御CPU94は、主制御CPU72から賞球指示コマンドを受信してもそれ以上の賞球動作を一旦保留とし、未払出の賞球残数をRAM98に記憶させておく。なお、RAM98の記憶は電源断時にもバックアップが可能であり、遊技中に停電(瞬間的な停電を含む)が発生しても、未払出の賞球残数情報が消失してしまうことはない。
また、パチンコ機1の裏側には、発射制御基板108とともに発射ソレノイド110が設置されている。また、受皿ユニット6内には球送りソレノイド111が設けられている。これら発射制御基板108、発射ソレノイド110及び球送りソレノイド111は上述した発射制御基板セット174を構成しており、このうち発射制御基板108には発射ソレノイド110及び球送りソレノイド111の駆動回路が設けられている。このうち球送りソレノイド111は、受皿ユニット6内に蓄えられた遊技球を1個ずつ、発射機ケース内で所定の発射位置に送り出す動作を行う。また、発射ソレノイド110は、発射位置に送り出された遊技球を打撃し、上述したように遊技領域8aに向けて遊技球を1個ずつ連続的(間欠的)に打ち出す動作を行う。なお、遊技球の発射間隔は、例えば0.6秒程度の間隔(1分間で100個以内)である。
一方、パチンコ機1の表側に位置するハンドルユニット16には、発射レバーボリューム112、タッチセンサ114及び発射停止スイッチ116が設けられている。このうち発射レバーボリューム112は、遊技者による発射ハンドルの操作量(いわゆるストローク)に比例したアナログ信号を生成する。また、タッチセンサ114は、静電容量の変化から遊技者の身体がハンドルユニット16(発射ハンドル)に触れていることを検出し、その検出信号を出力する。そして、発射停止スイッチ116は、遊技者の操作に応じて発射停止信号(接点信号)を生成する。
受皿ユニット6には発射中継端子板118が設置されており、発射レバーボリューム112やタッチセンサ114、発射停止スイッチ116からの各信号は、発射中継端子板118を経由して発射制御基板108に送信される。また、発射制御基板108からの駆動信号は、発射中継端子板118を経由して球送りソレノイド111に印加される。遊技者が発射ハンドルを操作すると、その操作量に応じて発射レバーボリューム112でアナログ信号(エンコードされたデジタル信号でもよい)が生成され、このときの信号に基づいて発射ソレノイド110が駆動される。これにより、遊技者の操作量に応じて遊技球を打ち出す強さが調整されるものとなっている。なお、発射制御基板108の駆動回路は、タッチセンサ114からの検出信号がオフ(ローレベル)の場合か、もしくは発射停止スイッチ116から発射停止信号が入力された場合は発射ソレノイド110の駆動を停止する。この他に、発射中継端子板118には遊技球等貸出装置接続端子板120が接続されており、この遊技球等貸出装置接続端子板120にCRユニットが接続されていない場合、同じく発射制御基板108の駆動回路は発射ソレノイド110の駆動を停止する。
また、受皿ユニット6には度数表示基板122及び貸出及び返却スイッチ基板123が内蔵されている。このうち度数表示基板122には、度数表示部の表示器(3桁分の7セグメントLED)が設けられている。また、貸出及び返却スイッチ基板123には球貸ボタン10や返却ボタン12にそれぞれ接続されるスイッチモジュールが実装されており、球貸ボタン10又は返却ボタン12が操作されると、その操作信号が貸出及び返却スイッチ基板123から遊技球等貸出装置接続端子板120を経由してCRユニットに送信される。また、CRユニットからは、有価媒体の残り度数を表す度数信号が遊技球等貸出装置接続端子板120を経由して度数表示基板122に送信される。度数表示基板122上の図示しない表示回路は、度数信号に基づいて表示器を駆動し、有価媒体の残り度数を数値表示する。また、CRユニットに有価媒体が投入されていなかったり、あるいは投入された有価媒体の残り度数が0になったりした場合、度数表示基板122の表示回路は表示器を駆動してデモ表示(有価媒体の投入を促す表示)を行うこともできる。
また、パチンコ機1は制御上の構成として、演出制御装置124(演出制御用コンピュータ)を備えている。この演出制御装置124は、パチンコ機1における遊技の進行に伴う演出の制御を行う。演出制御装置124にもまた、中央演算処理装置である演出制御CPU126を実装した回路基板(複合サブ制御基板)が装備されている。演出制御CPU126には、図示しないCPUコアとともにメインメモリとしてROM128やRAM130等の半導体メモリが内蔵されている。なお、演出制御装置124は、パチンコ機1の裏側で裏カバーユニット178に覆われる位置に設けられている。
また、演出制御装置124には、図示しない入出力ドライバや各種の周辺ICが装備されている他、ランプ駆動回路132や音響駆動回路134が装備されている。演出制御CPU126は、主制御CPU72から送信される演出用のコマンドに基づいて演出の制御を行い、ランプ駆動回路132や音響駆動回路134に指令を与えて各種ランプ46〜52や盤面ランプ53を発光させたり、スピーカ54,55,56から実際に効果音や音声等を出力させたりする処理を行う。
演出制御装置124と主制御装置70とは、例えば図示しない通信用ハーネスを介して相互に接続されている。ただし、これらの間の通信は、主制御装置70から演出制御装置124への一方向のみで行われ、逆方向への通信は行われない。なお、通信用ハーネスには、主制御装置70から演出制御装置124に対して送信される各種コマンドのバス幅に応じてパラレル形式を採用してもよいし、それぞれのドライバIC(I/O)のハード構成に合わせてシリアル形式を採用してもよい。
ランプ駆動回路132は、例えば図示しないPWM(パルス幅変調)ICやMOSFET等のスイッチング素子を備えており、このランプ駆動回路132は、LEDを含む各種ランプに印加する駆動電圧をスイッチング(又はデューティ切替)して、その発光・点滅等の動作を管理する。なお、各種ランプには、ガラス枠トップランプ46やガラス枠装飾ランプ48,50,52の他に、遊技盤ユニット8に設置された装飾・演出用の盤面ランプ53が含まれる。盤面ランプ53は演出ユニットに内蔵されるLEDや、可変始動入賞装置28、第1可変入賞装置30、第2可変入賞装置31等に内蔵されるLEDに相当するものである。
また、音響駆動回路134は、例えば図示しないサウンドROMや音響制御IC、アンプ等を内蔵したサウンドジェネレータであり、この音響駆動回路134は、ガラス枠上スピーカ54,55及び外枠スピーカ56を駆動して音響出力を行う。
本実施形態では一体扉ユニット4の内面にガラス枠電飾基板136が設置されており、ランプ駆動回路132や音響駆動回路134からの駆動信号はガラス枠電飾基板136を経由して各種ランプ46〜52やスピーカ54,55,56に印加されている。また、ガラス枠電飾基板136には、演出切替ボタン45が接続されており、遊技者が演出切替ボタン45を操作すると、その接点信号がガラス枠電飾基板136を通じて演出制御装置124に入力される。さらに、ガラス枠電飾基板136には、ジョグダイアル45aが接続されており、遊技者がジョグダイアル45aを回転させると、その回転信号がガラス枠電飾基板136を通じて演出制御装置124に入力される。なお、ここではガラス枠電飾基板136に演出切替ボタン45及びジョグダイアル45aを接続した例を挙げているが、受皿電飾基板を設置する場合、演出切替ボタン45及びジョグダイアル45aは受皿電飾基板に接続されていてもよい。
その他、遊技盤ユニット8にはパネル電飾基板138が設置されており、このパネル電飾基板138には盤面ランプ53の他に可動体モータ57が接続されている。可動体モータ57は、例えば図示しないリンク機構を介して可動体40fを駆動する。ランプ駆動回路132からの駆動信号は、パネル電飾基板138を経由して盤面ランプ53及び可動体モータ57にそれぞれ印加される。
液晶表示器42は遊技盤ユニット8の裏側に設置されており、遊技盤ユニット8に形成された略矩形の開口を通じてその表示画面が視認可能となっている。また、遊技盤ユニット8の裏側にはインバータ基板158が設置されており、このインバータ基板158は液晶表示器42のバックライト(例えば冷陰極管)に印加される交流電源を生成している。さらに、遊技盤ユニット8の裏側には演出表示制御装置144が設置されており、液晶表示器42による表示動作は、演出表示制御装置144により制御されている。演出表示制御装置144には、汎用の中央演算処理装置である表示制御CPU146とともに、表示プロセッサであるVDP152を実装した回路基板(演出表示制御基板)が装備されている。このうち表示制御CPU146は、図示しないCPUコアとともにROM148、RAM150等の半導体メモリを集積したLSIとして構成されている。また、VDP152は、図示しないプロセッサコアとともに画像ROM154やVRAM156等の半導体メモリを集積したLSIとして構成されている。なお、VRAM156は、その記憶領域の一部をフレームバッファとして利用することができる。
演出制御CPU126のROM128には、演出の制御に関する基本的なプログラムが格納されており、演出制御CPU126は、このプログラムに沿って演出の制御を実行する。演出の制御には、上述したように各種ランプ46〜53等やスピーカ54,55,56を用いた演出の制御が含まれる他、液晶表示器42を用いた画像表示による演出の制御が含まれる。演出制御CPU126は、表示制御CPU146に対して演出に関する基本的な情報(例えば演出番号)を送信し、これを受け取った表示制御CPU146は、基本的な情報に基づいて具体的に演出用の画像を表示する制御を行う。
表示制御CPU146は、VDP152に対してさらに詳細な制御信号を出力する。これを受け取ったVDP152は、制御信号に基づいて画像ROM154にアクセスし、そこから必要な画像データを読み出してVRAM156に転送する。さらに、VDP152は、VRAM156上で画像データを1フレーム(単位時間あたりの静止画像)ごとにフレームバッファに展開し、ここでバッファされた画像データに基づき液晶表示器42の各画素(フルカラー画素)を個別に駆動する。
その他、内枠アセンブリ7の裏側には電源制御ユニット162(電源制御手段)が装備されている。この電源制御ユニット162はスイッチング電源回路を内蔵し、電源コード164を通じて島設備から外部電力(例えばAC24V等)を取り込むと、そこから必要な電力(例えばDC+34V、+12V等)を生成することができる。電源制御ユニット162で生成された電力は、主制御装置70や払出制御装置92、演出制御装置124、インバータ基板158に分配されている。さらに、払出制御装置92を経由して発射制御基板108に電力が供給されている他、遊技球等貸出装置接続端子板120を経由してCRユニットに電力が供給されている。なお、ロジック用の低電圧電力(例えばDC+5V)は、各装置に内蔵された電源用IC(3端子レギュレータ等)で生成される。また、上述したように電源制御ユニット162は、アース線166を通じて島設備にアース(接地)されている。
外部端子板160は払出制御装置92に接続されており、主制御装置70(主制御CPU72)にて生成された各種の外部情報信号は、払出制御装置92を経由して外部端子板160から外部に出力されるものとなっている。主制御装置70(主制御CPU72)及び払出制御装置92(払出制御CPU94)は、外部端子板160を通じてパチンコ機1の外部に向けて外部情報信号を出力することができる。外部端子板160から出力される信号は、例えば遊技場のホールコンピュータ(図示していない)で集計される。なお、ここでは払出制御装置92を経由する構成を例に挙げているが、主制御装置70からそのまま外部情報信号が外部端子板160に出力される構成であってもよい。
以上がパチンコ機1の制御に関する構成例である。続いて、主制御装置70の主制御CPU72により実行される制御上の処理について説明する。
〔リセットスタート(メイン)処理〕
パチンコ機1に電源が投入されると、主制御CPU72はリセットスタート処理を開始する。リセットスタート処理は、前回の電源遮断時に保存されたバックアップ情報を元に遊技状態を復旧(いわゆる復電)したり、逆にバックアップ情報をクリアしたりすることで、パチンコ機1の初期状態を整えるための処理である。また、リセットスタート処理は、初期状態の調整後にパチンコ機1の安定した遊技動作を保証するためのメイン処理(メイン制御プログラム)として位置付けられる。
図6及び図7は、リセットスタート処理の手順例を示すフローチャートである。以下、主制御CPU72が行う処理について、各手順を追って説明する。
ステップS101:主制御CPU72は、先ずスタックポインタにスタック領域の先頭アドレスをセットする。
ステップS102:続いて主制御CPU72は、ベクタ方式の割込モード(モード2)を設定し、デフォルトであるRST方式の割込モード(モード0)を修正する。これにより、以後、主制御CPU72は任意のアドレス(ただし最下位ビットは0)を割込ベクタとして参照し、指定の割込ハンドラを実行することができる。
ステップS103:主制御CPU72は、ここでリセット時待機処理を実行する。この処理は、リセットスタート(例えば電源投入)時にある程度の待機時間(例えば数千ms程度)を確保しておき、その間に主電源断検出信号のチェックを行うためのものである。具体的には、主制御CPU72は待機時間分のループカウンタをセットすると、ループカウンタの値をデクリメントしながら主電源断検出信号の入力ポートをビットチェックする。主電源断検出信号は、例えば周辺デバイスである電源監視ICから入力される。そして、ループカウンタが0になる前に主電源断検出信号の入力を確認すると、主制御CPU72は先頭から処理を再開する。これにより、例えば図示しない主電源スイッチの投入と切断の操作が短時間(1〜2秒程度)内に繰り返し行われた場合のシステム保護を図ることができる。
ステップS104:次に主制御CPU72は、RAM76のワーク領域に対するアクセスを許可する。具体的には、ワーク領域のRAMプロテクト設定値をリセット(00H)する。これにより、以後はRAM76のワーク領域に対するアクセスが許可された状態となる。
ステップS105:また、主制御CPU72、割り込みマスクを設定するためにマスクレジスタの初期設定を行う。具体的には、CTC割り込みを有効にする値をマスクレジスタに格納する。
ステップS106:主制御CPU72は、先に退避しておいたRAMクリアスイッチからの入力信号を参照し、RAMクリアスイッチが操作(スイッチON)されたか否かを確認する。RAMクリアスイッチが操作されていなければ(No)、次にステップS107を実行する。
ステップS107:次に主制御CPU72は、RAM76にバックアップ情報が保存されているか否か、つまり、バックアップ有効判定フラグがセットされているか否かを確認する。前回の電源遮断処理でバックアップが正常に終了し、バックアップ有効判定フラグ(例えば「A55AH」)がセットされていれば(Yes)、次に主制御CPU72はステップS108を実行する。
ステップS108:主制御CPU72は、RAM76のバックアップ情報についてサムチェックを実行する。具体的には、主制御CPU72はRAM76のワーク領域(使用禁止領域及びスタック領域を含むユーザワーク領域)のうち、バックアップ有効判定フラグ及びサムチェックバッファを除く全ての領域をサムチェックする。サムチェックの結果が正常であれば(Yes)、次に主制御CPU72はステップS109を実行する。
ステップS109:主制御CPU72は、バックアップ有効判定フラグをリセット(例えば「0000H」)する。
ステップS110:また、主制御CPU72は、前回の電源断発生直前に送信待ちであったコマンドをクリアする。
ステップS111:次に主制御CPU72は、演出制御復帰処理を実行する。この処理では、主制御CPU72は演出制御装置124に対し、復帰用のコマンド(例えば機種指定コマンド、特別図柄確率状態指定コマンド、特図先判定演出コマンド、作動記憶数増加時演出コマンド、作動記憶数減少時演出コマンド、回数切りカウンタ残数コマンド、特別遊技状態指定コマンド、特図1保留指定コマンド、特図2保留指定コマンド、発射位置指定コマンド、電源投入時特フェーズ指定コマンド、客待ち指定コマンド等)を送信する。これを受けて演出制御装置124は、前回の電源遮断時に実行中であった演出状態(例えば、内部確率状態、演出図柄の表示態様、作動記憶数の演出表示態様、音響出力内容、各種ランプの発光状態、右打ち示唆演出等)を復帰させることができる。
ステップS112:主制御CPU72は、状態復帰処理を実行する。この処理では、主制御CPU72はバックアップ情報を元にRAM76のワーク領域に各種の値をセットし、前回の電源遮断時に実行中であった遊技状態(例えば、特別図柄の表示態様、内部確率状態、作動記憶内容、各種フラグ状態、乱数更新状態等)を復帰させる。また、主制御CPU72は、バックアップされていたPCレジスタの値を復旧する。
一方、電源投入時にRAMクリアスイッチが操作されていた場合(ステップS106:Yes)や、バックアップ有効判定フラグがセットされていなかった場合(ステップS107:No)、あるいは、バックアップ情報が正常でなかった場合(ステップS108:No)、主制御CPU72はステップS113に移行する。
ステップS113:主制御CPU72は、RAM76の使用禁止領域以外の記憶内容をクリアする。これにより、RAM76のワーク領域及びスタックエリアは全て初期化され、有効なバックアップ情報が保存されていても、その内容は消去される。
ステップS114:また、主制御CPU72は、RAM76の初期設定を行う。
ステップS115:主制御CPU72は、演出制御出力処理を実行する。この処理では、主制御CPU72が初期設定後に演出制御装置124に送信するべきコマンド(演出制御に必要なコマンド)を出力する。コマンドとしては、例えば、機種指定コマンド、特別図柄確率状態指定コマンド、特図先判定演出コマンド、作動記憶数増加時演出コマンド、作動記憶数減少時演出コマンド、回数切りカウンタ残数コマンド、特別遊技状態指定コマンド、特図1保留指定コマンド、特図2保留指定コマンド、発射位置指定コマンド、電源投入時特フェーズ指定コマンド、客待ち指定コマンド等がある。発射位置指定コマンドを受信した演出制御装置124は、発射位置指定コマンドの内容に基づいて、左打ち示唆演出を実行したり、右打ち示唆演出を実行したりすることができる。
ステップS116:主制御CPU72は、払出制御出力処理を実行する。この処理では、主制御CPU72は払出制御装置92に対して、賞球の払い出しを開始するための指示コマンドを出力する。
ステップS117:主制御CPU72は、CTC初期設定処理を実行し、周辺デバイスであるCTC(カウンタ/タイマ回路)の初期設定を行う。この処理では、主制御CPU72は割込ベクタレジスタを設定し、また、CTCに割り込みカウント値(例えば4ms)を設定する。これにより、次にCTC割り込みが発生すると、主制御CPU72はバックアップされていたPCレジスタのプログラムアドレスから処理を続行することができる。
リセットスタート処理において以上の手順を実行すると、主制御CPU72は図7に示されるメインループに移行する(接続記号A→A)。
ステップS118,ステップS119:主制御CPU72は割込を禁止した上で、電源断発生チェック処理を実行する。この処理では、主制御CPU72は主電源断検出信号の入力ポートをビットチェックし、電源遮断の発生(駆動電圧の低下)を監視する。電源遮断が発生すると、主制御CPU72は普通電動役物ソレノイド88や第1大入賞口ソレノイド90、第2大入賞口ソレノイド97等に対応する出力ポートバッファをクリアすると、RAM76のワーク領域のうちバックアップ有効判定フラグ及びサムチェックバッファを除く全体の内容をバックアップし、サムチェックバッファにサム結果値を保存する。そして、主制御CPU72はバックアップ有効判定フラグ領域に有効値(例えば「A55AH」)を格納し、RAM76のアクセスを禁止して処理を停止(NOP)する。一方、電源遮断が発生しなければ、主制御CPU72は次にステップS120を実行する。なお、このような電源断発生時の処理をマスク不能割込(NMI)処理としてCPUに実行させている公知のプログラミング例もある。
ステップS120:主制御CPU72は、初期値更新乱数更新処理を実行する。この処理では、主制御CPU72は、各種のソフトウェア乱数の初期値を更新(変更)するための乱数をインクリメントする。本実施形態では、大当り決定乱数(ハードウェア乱数)、及び普通図柄に対応する当り決定乱数(ハードウェア乱数)を除く各種の乱数(例えば、大当り図柄乱数、リーチ判定乱数、変動パターン決定乱数等)をプログラム上で発生させている。これらソフトウェア乱数は、別の割込処理(図14中のステップS201)で所定範囲内のループカウンタにより更新されているが、この処理において乱数値が1巡するごとにループカウンタの初期値(全ての乱数が対象でなくてもよい)を変更している。初期値更新用乱数は、この初期値をランダムに変更するために用いられており、ステップS120では、その初期値更新用乱数の更新を行っている。なお、ステップS118で割込を禁止した後にステップS120を実行しているのは、別の割込管理処理(図14中のステップS202)でも同様の処理を実行するため、これとの重複(競合)を防止するためである。なお、本実施形態において大当り決定乱数及び当り決定乱数は乱数発生器75により発生されるハードウェア乱数であり、その更新周期はタイマ割込周期(例えば数ms)よりもさらに高速(例えば数μs)であるため、大当り決定乱数及び当り決定乱数の初期値を更新する必要はない。
ステップS121,ステップS122:主制御CPU72は割込を許可し、その他乱数更新処理を実行する。この処理で更新される乱数は、ソフトウェア乱数のうち当選種類(当り種別)の判定に関わらない乱数(リーチ判定乱数、変動パターン決定乱数等)である。この処理は、メインループの実行中にタイマ割込が発生し、主制御CPU72が別の割込管理処理(図14)を実行した場合の残り時間で行われる。なお、割込管理処理の内容については後述する。
〔電源断発生チェック処理〕
図8は、電源断発生チェック処理の手順例を具体的に示すフローチャートである。
ステップS130:ここでは先ず、主制御CPU72は、電源断発生チェックのための条件を設定する。このチェック条件は、例えば主電源断検出信号が継続して出力されていることを確認するためのオンカウンタ値として設定することができる。
ステップS132:次に主制御CPU72は、主電源断検出スイッチ入力用ポートをリードし、主電源断検出信号が出力されているか否かを確認(特定のビットをチェック)する。特に図示していないが、主電源断検出スイッチは例えば主制御装置70に実装されており、この主電源断検出スイッチは、電源制御ユニット162から供給される駆動電圧を監視し、その電圧レベルが基準電圧を下回った場合に主電源断検出信号を出力する。なお、主電源断検出スイッチは電源制御ユニット162に内蔵されていてもよい。主制御CPU72は、現時点で主電源断検出信号が出力されていないことを確認すると(No)、この処理を抜けてリセットスタート処理に復帰する。一方、主電源断検出信号が出力されていることを確認した場合(Yes)、主制御CPU72は次のステップS134に進む。
ステップS134:主制御CPU72は、上述したチェック条件を満たすか否かを確認する。具体的には、先のステップS130で設定したオンカウンタ値を例えば1減算し、その結果が0になったか否かを確認する。現時点で未だオンカウンタ値が0でなければ(No)、主制御CPU72はステップS132に戻って主電源断検出スイッチ入力用ポートを改めて確認する。そして、ステップS134からステップS132へのループを繰り返してチェック条件が満たされると(ステップS134:Yes)、主制御CPU72は次にステップS136に進む。
ステップS136:主制御CPU72は、普通電動役物ソレノイド88や第1大入賞口ソレノイド90、第2大入賞口ソレノイド97に対応する出力ポートに加え、試験信号端子やコマンド制御信号に対応する出力ポートバッファをクリアする。
ステップS138,ステップS140:次に主制御CPU72は、RAM76のワーク領域のうち、バックアップ有効判定フラグ及びサムチェックバッファを除く全体の内容を1バイト単位で加算し、全領域について加算を完了するまで繰り返す。
ステップS142:全領域についてサムの算出が完了すると(ステップS140:Yes)、主制御CPU72はサムチェックバッファにサム結果値を保存する。
ステップS144:次に主制御CPU72は、バックアップ有効判定フラグ領域に有効値を格納する。
ステップS146:また、主制御CPU72は、RAM76のプロテクト値にアクセス禁止を表す「01H」を格納し、RAM76のワーク領域(使用禁止領域及びスタック領域を含む)に対するアクセスを禁止する。
ステップS148:そして、主制御CPU72は待機ループに入り、主電源断の遮断に備えて他の処理を全て停止する。主電源断の発生後は、図示しないバックアップ電源回路(例えば主制御装置70に実装された容量素子を含む回路)からバックアップ用電力が供給されるため、RAM76の記憶内容は主電源断後も消失することなく保持される。なお、バックアップ用電源回路は、例えば電源制御ユニット162に内蔵されていてもよい。
以上の処理を通じて、バックアップ対象(サム加算対象)となるRAM76のワーク領域に記憶されていた情報は、全て主電源断の後もRAM76に記憶として保持されることになる。また、保持されていた記憶は、先のリセットスタート処理(図6)でチェックサムの正常を確認した上で、電源断時のバックアップ情報として復元される。
〔電源投入時サブコマンドセット処理〕
図9及び図10は、電源投入時サブコマンドセット処理の手順例を示すフローチャートである。以下、各手順に沿って説明する。
電源投入時サブコマンドセット処理は、演出制御復帰処理(図6のS111)又は演出制御出力処理(図6のS115)の中で呼び出される処理である。
ステップS300:主制御CPU72は、機種コマンド設定処理を実行する。スペックの異なる遊技機がシリーズものとして存在している場合、機種コマンドによって演出の内容を異ならせることができる。
ステップS302:主制御CPU72は、特別図柄1保留球数カウンタ(第1特別図柄作動記憶数カウンタ)をロードする処理を実行する。
ステップS304:主制御CPU72は、サブコマンド(特図1保留指定コマンド)をセットする処理を実行する。
ステップS306:主制御CPU72は、サブコマンドセット処理を呼び出す処理を実行する。これにより、特別図柄1保留球数カウンタの値が反映された特図1保留指定コマンドが送信される。なお、サブコマンドセット処理では、サブコマンドバッファに対して指定されたコマンドをセットする処理を実行する。セットされたコマンドは、サブコマンドセット処理で送信してもよく別のモジュールで送信してもよい。
ステップS308:主制御CPU72は、特別図柄2保留球数カウンタ(第2特別図柄作動記憶数カウンタ)をロードする処理を実行する。
ステップS310:主制御CPU72は、サブコマンド(特図2保留指定コマンド)をセットする処理を実行する。
ステップS312:主制御CPU72は、サブコマンドセット処理を呼び出す処理を実行する。これにより、特別図柄2保留球数カウンタの値が反映された特図2保留指定コマンドが送信される。
ステップS314:主制御CPU72は、回数コマンドセット処理を呼び出す処理を実行する。この処理によって、時短回数切りカウンタや確変回数切りカウンタに関する回数切りカウンタ値コマンドが送信される。
ステップS316:主制御CPU72は、発射位置指定フラグをロードする処理を実行する。
ステップS318:主制御CPU72は、サブコマンド(発射位置指定コマンド)をセットする処理を実行する。次に、主制御CPU72は、ステップS320を実行する(接続記号A→A)。
ステップS320:主制御CPU72は、サブコマンドセット処理を呼び出す処理を実行する。これにより、発射位置指定フラグの値が反映された発射位置指定コマンドが送信される。
ステップS322:主制御CPU72は、特別遊技管理フェーズをロードする処理を実行する。
ステップS324:主制御CPU72は、サブコマンド(電源投入時特フェーズ指定コマンド)をセットする処理を実行する。
ステップS326:主制御CPU72は、サブコマンドセット処理を呼び出す処理を実行する。これにより、特別遊技管理フェーズの値が反映された発射位置指定コマンドが送信される。
ステップS328:主制御CPU72は、特別遊技管理フェーズをロードする処理を実行する。
ステップS330:主制御CPU72は、特別遊技管理フェーズの値が特別図柄変動待ち状態指定値(00H)でないか否かを確認する処理を実行する。
その結果、特別遊技管理フェーズの値が特別図柄変動待ち状態指定値でないことを確認した場合(Yes)、主制御CPU72は、呼び出し元に復帰する。
一方、特別遊技管理フェーズの値が特別図柄変動待ち状態指定値でないことを確認できない場合(No)、すなわち、特別遊技管理フェーズの値が特別図柄変動待ち状態指定値であることを確認した場合、主制御CPU72は、ステップS332を実行する。
ステップS332:主制御CPU72は、客待ち演出用コマンド要求フラグをクリアする処理を実行する。
ステップS334:主制御CPU72は、サブコマンド(客待ち指定コマンド)をセットする処理を実行する。
ステップS336:主制御CPU72は、サブコマンドセット処理を呼び出す処理を実行する。これにより、客待ち演出用コマンド要求フラグの値が反映された客待ち指定コマンドが送信される。
以上の処理を終えると、主制御CPU72は呼び出し元に復帰する。
図11は、実施形態の電源投入時サブコマンドセット処理のプログラムを示す図である。
本モジュールにおいて、入力レジスタ(引数)、出力レジスタ(戻り値)、及び、保護レジスタ(本モジュールで値が変化しないレジスタ)は、設定されていない。
最初の「RST KICMDST」は、機種コマンド設定処理を呼び出す処理である。
次の「LDQ A,(LOW R_TZ1_MEM)」は、特別図柄1保留球数カウンタをロードする処理であり、AレジスタにR_TZ1_MEMの値(特別図柄1保留球数カウンタの値)をロードする。
次の「LD DE,@CMD_TZ1_MEM」は、サブコマンド(特図1保留指定コマンド)をセットする処理であり、DEレジスタに@CMD_TZ1_MEM(特図1保留指定コマンド)の値をロードする。
次の「RST SBCMDST」は、リスタート領域に配置されているサブコマンドセット処理を呼び出す処理である。
次の「LDQ A,(LOW R_TZ2_MEM)」は、特別図柄2保留球数カウンタをロードする処理であり、AレジスタにR_TZ2_MEMの値(特別図柄2保留球数カウンタ)をロードする。
次の「LD DE,@CMD_TZ2_MEM」は、サブコマンド(特図2保留指定コマンド)をセットする処理であり、DEレジスタに@CMD_TZ2_MEM(特図2保留指定コマンド)の値をロードする。
次の「RST SBCMDST」は、リスタート領域に配置されているサブコマンドセット処理を呼び出す処理である。
次の「CALLF CTCMDST」は、回数コマンドセット処理を呼び出す処理である。
次の「LDQ A,(LOW R_HSY_FLG)」は、発射位置指定フラグをロードする処理であり、AレジスタにR_HSY_FLG(発射位置指定フラグ)の値をロードする。
次の「LD DE,@CMD_HSY_POS」は、サブコマンド(発射位置指定コマンド)をセットする処理であり、DEレジスタに@CMD_HSY_POS(発射位置指定コマンド)をロードする。
次の「RST SBCMDST」は、リスタート領域に配置されているサブコマンドセット処理を呼び出す処理である。
次の「LDQ A,(LOW R_TOK_PHS)」は、特別遊技管理フェーズをロードする処理であり、AレジスタにR_TOK_PHS(特別遊技管理フェーズ)の値をロードする。
次の「LD DE,@CMD_TOK_PHS」は、サブコマンド(電源投入時特フェーズ指定コマンド)をセットする処理であり、DEレジスタに@CMD_TOK_PHS(電源投入時特フェーズ指定コマンド)の値をロードする。
次の「RST SBCMDST」は、リスタート領域に配置されているサブコマンドセット処理を呼び出す処理である。
次の「LDQ A,(LOW R_TOK_PHS)」は、特別遊技管理フェーズをロードする処理であり、AレジスタにR_TOK_PHS(特別遊技管理フェーズ)の値をロードする。
次の「RET NTZ」は、特別図柄変動待ち状態指定値でなければリターンする処理である。
次の「CLRQ (LOW R_DEM_FLG)」は、客待ち演出用コマンド要求フラグをクリアする処理である。
次の「LD DE,@CMD_DEM_SET」は、サブコマンド(客待ち指定コマンド)をセットする処理であり、DEレジスタに@CMD_DEM_SET(客待ち指定コマンド)の値をロードする。
次の「RST SBCMDST」は、リスタート領域に配置されているサブコマンドセット処理を呼び出す処理である。
次の「RET」は、呼び出し元に復帰する処理である。
〔プログラムの解説〕
このモジュールは、電源投入時の遊技状態をサブコマンドとして設定するものである。
具体的には、保留球の数、時短等の残り回数、右打ち指示、特別遊技管理フェーズ(特別図柄・大当りの処理の状態)、客待ち指示に係るサブコマンドをセットする。
また、このモジュールは、RWMクリア起動時(RAMクリア時)、電源復帰時を問わず、電源投入時に呼び出されるモジュールである。
図12は、電源投入時サブコマンドセット処理のプログラム(比較例)を示す図である。
比較例のプログラムは、実施形態のプログラムと比較して、3行分の「RLCA命令」が追加されている点が異なる(図12中(1)〜(3))。
なお、比較例のプログラムは、確変領域付きの遊技機のプログラムであるため、実施形態の確変領域非搭載の遊技機とはプログラムの内容が異なるが、基本的な流れは変わっていない。また、比較例のプログラムは、本実施形態と比較するためのプログラムであって、従来技術を構成するものではない。
1つ目の「RLCA命令」は、後続コマンド加算値を算定する処理であり、1行前の「LDQ A,(LOW R_HSY_FLG)」によってAレジスタに設定されている発射位置指定フラグの値を1ビット左シフトする処理(上位側にローテーションする処理)である。
2つ目の「RLCA命令」もAレジスタに設定されている発射位置指定フラグの値を1ビット左シフトする処理である。
3つ目の「RLCA命令」もAレジスタに設定されている発射位置指定フラグの値を1ビット左シフトする処理である。
これにより、Aレジスタに「00H」が設定されている場合には、3回の「RLCA命令」によってAレジスタの値が変化することはなく、最終的にAレジスタに「00H」が設定される。
一方、Aレジスタに「20H」が設定されている場合には、1回目の「RLCA命令」によってAレジスタに「40H」が設定され、2回目の「RLCA命令」によってAレジスタに「80H」が設定され、3回目の「RLCA命令」によってAレジスタに「01H」が設定される。
そして、実施形態のプログラムは、比較例のプログラムのような3回分の「RLCA命令」が存在していないため、比較例のプログラムと比較して、コード量を3バイト削減することができる。なお、「RLCA命令」は1バイトの命令である。
また、発射位置指定管理処理においても同内容の処理を行っているため、それと合わせて、本実施形態ではコード量を合計6バイト削減することができる。
図13は、実施形態及び比較例の発射位置指定フラグと発射位置指定コマンドの関係を示す図である。
〔実施形態〕
実施形態では、図13中(A)に示すように、「打ち方」が「通常打ち(左打ち)」である場合、「発射位置指定フラグ」の値は「00H」となり、発射位置指定コマンドの値は「C0H00H」となる。なお、「C0H」は「発射位置指定フラグ」の種別を示す先行値であり、「00H」は「発射位置指定フラグ」の内容を示す後続値である。
また、「打ち方」が「右打ち」である場合、「発射位置指定フラグ」の値は「20H」となり、発射位置指定コマンドの値は「C0H20H」となる。
このように、本実施形態では、「発射位置指定フラグ」の値と「発射位置指定コマンド」の後続値の値が完全に一致している。
〔比較例〕
比較例では、図13中(B)に示すように、「打ち方」が「通常打ち」である場合、「発射位置指定フラグ」の値は「00H」となり、発射位置指定コマンドの値は「C0H00H」となる。この点は、実施形態と同様である。
一方、「打ち方」が「右打ち」である場合、「発射位置指定フラグ」の値は「20H」となり、発射位置指定コマンドの値は「C0H01H」となる。
このように、比較例では、「発射位置指定フラグ」の値と「発射位置指定コマンド」の後続値の値が完全に一致していない。
〔発射位置指定コマンドのまとめ〕
主制御装置70は、遊技の進行状況に応じて第1遊技領域(左打ち領域)に遊技球を発射すべきか、第1遊技領域とは異なる第2遊技領域(右打ち領域)に遊技球を発射すべきかを決定し、決定内容を発射位置指定フラグに設定する(発射位置指定フラグ設定手段)。本実施形態では、第1遊技領域に遊技球を発射すべきであると決定した場合、発射位置指定フラグに「00H」を設定し、第2遊技領域に遊技球を発射すべきであると決定した場合、発射位置指定フラグに「20H」を設定する。そして、主制御装置70は、発射位置指定フラグの値を変化させずに発射位置指定コマンドに格納し、発射位置指定コマンドを演出制御装置124に送信する(発射位置指定情報送信手段)。
また、主制御装置70は、発射位置指定フラグの値が特別な値(20H)である場合、第2遊技領域に遊技球を発射すべきことを示す態様の表示を行う発射位置指定ランプ38fを備える。そして、主制御装置70は、第2遊技領域に遊技球を発射すべきであると決定した場合、発射位置指定フラグに、発射位置指定ランプ38fを特定するための値(20H)を設定する。
さらに、主制御装置70は、主制御装置70の電源投入時又は発射位置指定フラグの値が変化した時に(演出制御復帰処理、演出制御出力処理又は発射位置指定管理処理において)発射位置指定コマンドを送信する。
〔割込管理処理(タイマ割込処理)〕
次に、割込管理処理(タイマ割込処理)について説明する。図14は、割込管理処理の手順例を示すフローチャートである。主制御CPU72は、カウンタ/タイマ回路からの割込要求信号に基づき、所定時間(例えば数ms)ごとに割込管理処理を実行する。以下、各手順を追って説明する。
ステップS200:先ず主制御CPU72は、メインループの実行中に使用していたレジスタ(アキュムレータAとフラグレジスタF、汎用レジスタB〜Lの各ペア)の値をRAM76の退避領域に退避させる。値を退避させた後のレジスタ(A〜L)には、割込管理処理の中で別の値を書き込むことができる。
ステップS201:主制御CPU72は、割込を許可する処理を実行する。
ステップS202:主制御CPU72は、ダイナミックポート出力処理を実行する。ダイナミックポート出力処理は、コモン出力バッファにセットされたコモンデータを出力ポートに出力し、普通図柄表示装置33、普通図柄作動記憶ランプ33a、第1特別図柄表示装置34、第2特別図柄表示装置35、第1特別図柄作動記憶ランプ34a、第2特別図柄作動記憶ランプ35a、遊技状態表示装置38等を点灯制御する処理である。
この処理では、主制御CPU72は普通図柄表示装置33、普通図柄作動記憶ランプ33a、第1特別図柄表示装置34、第2特別図柄表示装置35、第1特別図柄作動記憶ランプ34a、第2特別図柄作動記憶ランプ35a、遊技状態表示装置38等の点灯状態を制御する。具体的には、特別遊技管理処理や普通遊技管理処理においてポート出力要求バッファに格納されている駆動信号をポート出力する。なお、駆動信号は、各LEDに対して印加するバイトデータとしてポート出力要求バッファに格納されている。これにより、各LEDが所定の表示態様(図柄の変動表示や停止表示、作動記憶数表示、遊技状態表示等を行う態様)で駆動されることになる。
ステップS203:主制御CPU72は、ポート入力処理を実行する。ポート入力処理は、各種の入力ポート情報を読み込む処理である。この処理では、主制御CPU72は入出力(I/O)ポート79から各種スイッチ信号を入力する。具体的には、ゲートスイッチ78からの通過検出信号や、中始動入賞口スイッチ80、右始動入賞口スイッチ82、第1カウントスイッチ84、第2カウントスイッチ85、第1入賞口スイッチ86、第2入賞口スイッチ81からの入賞検出信号の入力状態(ON/OFF)をリードする。
ステップS204:主制御CPU72は、タイマ更新処理を実行する。タイマ更新処理は、各種タイマのカウンタを更新する処理である。
ステップS205:主制御CPU72は、初期値更新乱数更新処理を実行する。処理の内容は、先に述べたものと同じである。
ステップS206:主制御CPU72は、抽選乱数更新処理を実行する。この処理では、主制御CPU72は抽選用の各種乱数を発生させるためのカウンタの値を更新する。各カウンタの値は、RAM76のカウンタ領域にてインクリメントされ、それぞれ規定の範囲内でループする。各種乱数には、例えば大当り図柄乱数等が含まれる。
ステップS207:主制御CPU72は、スイッチ管理処理を実行する。この処理では、先の入力処理で入力したスイッチ信号のうち、ゲートスイッチ78、中始動入賞口スイッチ80、右始動入賞口スイッチ82からの入賞検出信号に基づいて遊技中に発生した事象の判定を行い、それぞれ発生した事象に応じて、さらに別の処理を実行する。なお、スイッチ管理処理の具体的な内容については、さらに別のフローチャートを用いて後述する。
本実施形態では、中始動入賞口スイッチ80又は右始動入賞口スイッチ82から入賞検出信号(ON)が入力されると、主制御CPU72はそれぞれ第1特別図柄又は第2特別図柄に対応した内部抽選の契機(抽選契機)となる事象が発生したと判定する。また、ゲートスイッチ78から通過検出信号(ON)が入力されると、主制御CPU72は普通図柄に対応した抽選契機となる事象が発生したと判定する。いずれかの事象が発生したと判定すると、主制御CPU72は、それぞれの発生事象に応じた処理を実行する。なお、中始動入賞口スイッチ80又は右始動入賞口スイッチ82から入賞検出信号が入力された場合に実行される処理については、さらに別のフローチャートを用いて後述する。
ステップS208,ステップS209:主制御CPU72は、割込管理処理中において特別遊技管理処理及び普通遊技管理処理を実行する。これら処理は、パチンコ機1における遊技を具体的に進行させるためのものである。このうち特別遊技管理処理(ステップS208)では、主制御CPU72は先に述べた第1特別図柄又は第2特別図柄に対応する内部抽選の実行を制御したり、第1特別図柄表示装置34及び第2特別図柄表示装置35による変動表示や停止表示を制御したり、その表示結果に応じて第1可変入賞装置30及び第2可変入賞装置31の作動を制御したりする。なお、特別遊技管理処理の詳細については、さらに別のフローチャートを用いて後述する。
また、普通遊技管理処理(ステップS209)では、主制御CPU72は先に述べた普通図柄表示装置33による変動表示や停止表示を制御したり、その表示結果に応じて可変始動入賞装置28の作動を制御したりする。例えば、主制御CPU72は先のスイッチ管理処理(ステップS207)の中で始動ゲート20の通過を契機として取得した乱数(普通図柄当り決定乱数)を記憶しておき、この普通遊技管理処理の中で記憶から乱数値を読み出し、所定の当り範囲内に該当するか否かの判定を行う(作動抽選実行手段)。乱数値が当り範囲内に該当する場合、普通図柄表示装置33により普通図柄を変動表示させて所定の当り態様で普通図柄の停止表示を行った後、主制御CPU72は普通電動役物ソレノイド88を励磁して可変始動入賞装置28を作動させる(可動片作動手段)。一方、乱数値が当り範囲外であれば、主制御CPU72は、変動表示の後にはずれの態様で普通図柄の停止表示を行う。
ステップS210:主制御CPU72は、状態管理処理(セキュリティ管理処理)を実行する。状態管理処理は、各種エラーの判定及びエラー判定結果に応じた設定を行う処理である。
ステップS211:主制御CPU72は、入賞口スイッチ処理を実行する。入賞口スイッチ処理は、一般入賞口や始動入賞口、大入賞口等のスイッチのチェックを行い、該当する賞球制御用のカウンタ等を加算する処理である。
ステップS212:主制御CPU72は、払出制御管理処理を実行する。払出制御管理処理は、入賞口スイッチ処理にて設定された賞球制御用のカウンタのカウンタ値等に基づく払出コマンドの生成及び出力を行う処理である。
この処理では、先のポート入力処理(ステップS203)において各種スイッチ80,81,82,84,85,86から入力された入賞検出信号に基づき、払出制御装置92に対して賞球個数を指示する賞球指示コマンドを出力する。
また、主制御CPU72は、払出制御管理処理において、演出制御装置124に対して賞球個数の内容を伝達する賞球内容コマンドを出力する。第1可変入賞装置30又は第2可変入賞装置31に対応する第1カウントスイッチ84又は第2カウントスイッチ85から入賞検出信号が入力された場合、第1利益(遊技球15個分)に対応する賞球内容コマンドを生成する。また、普通入賞口24に対応する第2入賞口スイッチ81から入賞検出信号が入力された場合、第2利益(遊技球4個分)に対応する賞球内容コマンドを生成する。賞球内容コマンドは、演出制御出力処理において演出制御装置124に送信される。
〔賞球数及び獲得遊技球数について〕
第1特別図柄の始動口の賞球数及び第2特別図柄の始動口の賞球数は、それぞれ1個以上の規定数に設定されている。また、第1特別図柄の始動口と第2特別図柄の始動口とでは、賞球数を異ならせてもよい。さらに、特別図柄の当選確率や、総獲得遊技球数の期待値(初当りから時間短縮状態が終了するまでの一連の期間に得られる平均出球数)に基づいて、最低賞球数を設定してもよい。さらにまた、特別図柄の当選確率、総獲得遊技球数の期待値、大入賞口の開放回数、大入賞口の開放時間、大入賞口の最大入賞数、大入賞口の賞球数が所定の条件を満たした場合、1回の大当りによる獲得遊技球数が最大の獲得遊技球数の1/4未満となる大当りを設定してもよい。
ステップS213:主制御CPU72は、発射位置指定管理処理を実行する。発射位置指定管理処理において、主制御CPU72は、遊技の進行状況に応じて(内部状態に応じて)第1遊技領域に遊技球を発射すべきか、第1遊技領域とは異なる第2遊技領域に遊技球を発射すべきかを決定し、決定内容を発射位置指定フラグに設定する(発射位置指定フラグ設定手段)。
例えば、大当り遊技又は小当り遊技により第1可変入賞装置30又は第2可変入賞装置31が作動状態となる場合や、時間短縮機能作動フラグに値(01H)がセットされている場合等に、主制御CPU72は発射位置指定フラグに右打ちを示す値(20H)を設定する。なお、その他の場合には、主制御CPU72は発射位置指定フラグに左打ちを示す値(00H)を設定する。
そして、主制御CPU72は、発射位置指定フラグの値が変化した場合には、変化後の発射位置指定フラグの値を変化させずに発射位置指定コマンドの後続値に格納し、発射位置指定コマンドを演出制御装置124に送信する(発射位置指定情報送信手段)。
また、主制御CPU72は、発射位置指定フラグの値に基づいて発射位置指定ランプ38fの点灯を制御する。発射位置指定フラグの値に右打ちを示す値(20H)が設定されている場合、主制御CPU72は発射位置指定ランプ38fに対応するLEDに対して点灯信号を出力する。これにより、発射位置指定ランプ38fは、発射位置指定フラグの値が特別な値(20H)である場合、第2遊技領域に遊技球を発射すべきことを示す態様の表示(点灯表示)を行う(発射位置指定表示手段)。なお、発射位置指定ランプ38fは、大当り遊技を経て「時間短縮状態」に移行する場合、大当り遊技開始から「時間短縮状態」が終了するまで点灯し、「時間短縮状態」の終了により非点灯(OFF)とすることができる。
ステップS214:主制御CPU72は、外部情報管理処理を実行する。この処理では、主制御CPU72は外部端子板160を通じて遊技場のホールコンピュータに対して外部情報信号(例えば賞球情報、扉開放情報、図柄確定回数情報、大当り情報、始動口情報等)をポート出力要求バッファに格納する。
なお、本実施形態では、各種の外部情報信号のうち、例えば大当り情報として「大当り1」〜「大当り5」を外部に出力することで、パチンコ機1に接続された外部の電子機器(データ表示器やホールコンピュータ)に対して多様な大当り情報を提供することができる(外部情報信号出力手段)。すなわち、大当り情報を複数の「大当り1」〜「大当り5」に分けて出力することで、これらの組み合わせから大当りの種別(当選種類)を図示しないホールコンピュータで集計・管理したり、内部的な確率状態(低確率状態又は高確率状態)や図柄変動時間の短縮状態の変化を認識したり、非当選以外であっても「大当り」に分類されない小当り(条件装置が作動しない当り)の発生を集計・管理したりすることが可能となる。また、大当り情報に基づき、例えば図示しないデータ表示装置によりパチンコ機1の台ごとに過去数営業日以内の大当り発生回数を計数及び表示したり、台ごとに現在大当り中であるか否かを認識したり、あるいは台ごとに現在図柄変動時間の短縮状態であるか否かを認識したりすることができる。この外部情報管理処理において、主制御CPU72は「大当り1」〜「大当り5」のそれぞれの出力状態(ON又はOFFのセット)を詳細に制御する。
ステップS215:主制御CPU72は、試験信号管理処理を実行する。この処理では、主制御CPU72が自己の内部状態(例えば、普通図柄遊技管理状態、特別図柄遊技管理状態、大当り中、確率変動機能作動中、時間短縮機能作動中)を表す各種の試験信号を生成し、これらをポート出力要求バッファに格納する。この試験信号により、例えば主制御装置70の外部で主制御CPU72の内部状態を試験することができる。
ステップS216:主制御CPU72は、LED表示設定処理を実行する。LED表示設定処理は、第1特別図柄表示装置や第2特別図柄表示装置等の各種表示装置(LED)を点灯制御するためのコモンデータをコモン出力バッファにセットするための処理である。
ステップS217:主制御CPU72は、ソレノイドデータ設定処理を実行する。ソレノイドデータ設定処理は、各種ソレノイドの出力用データを、出力ポートバッファに格納するための処理である。
ステップS218:主制御CPU72は、ポート出力処理を実行する。ポート出力処理は、各出力ポートバッファに格納されたコモン出力バッファの値を出力ポートに出力する処理である。この処理では、主制御CPU72は先の外部情報管理処理でポート出力要求バッファに格納された外部情報信号(バイトデータ)をポート出力する。また、主制御CPU72は、ポート出力要求バッファに格納されている普通電動役物ソレノイド88、第1大入賞口ソレノイド90及び第2大入賞口ソレノイド97の各駆動信号、試験信号等を合わせてポート出力する。
ステップS219:主制御CPU72は、演出制御出力処理を実行する。この処理では、コマンドバッファ内に主制御CPU72が演出制御装置124に送信するべきコマンド(演出制御に必要なコマンド)があるか否かを確認し、未送信コマンドがある場合は出力対象のコマンドをポート出力する。
ステップS220:以上の処理を終えると、主制御CPU72は、退避しておいたレジスタ(A〜L)の値を復帰し、次回の割込を許可する。
〔スイッチ管理処理〕
図15及び図16は、スイッチ管理処理の手順例を示すフローチャートである。以下、各手順を追って説明する。
ステップS350:主制御CPU72は、ゲートスイッチオン検出時でないか否か(普通図柄に対応するゲートスイッチ78から通過検出信号が入力されたか否か)を確認する。
その結果、ゲートスイッチオン検出時でないことを確認した場合(Yes)、主制御CPU72は、ステップS354を実行する。
一方、ゲートスイッチオン検出時でないことを確認できない場合(No)、すなわち、ゲートスイッチオン検出時であることを確認した場合、主制御CPU72は、ステップS352を実行する。
ステップS352:主制御CPU72は、ゲートスイッチ通過処理(普通図柄記憶更新処理)を実行する。ゲートスイッチ通過処理では、主制御CPU72は現在の普通図柄作動記憶数が上限数(例えば4個)未満であるか否かを確認し、上限数に達していなければ、普通図柄当り乱数を取得する。また、主制御CPU72は、普通図柄作動記憶数(普通図柄保留球数カウンタ)を1インクリメントする。そして、主制御CPU72は、取得した普通図柄当り乱数値をRAM76の乱数記憶領域(普通図柄当り決定乱数記憶1〜4(保留領域)のうち番号が小さい空いている領域)に記憶させる。
なお、主制御CPU72は、まず、普通図柄当り乱数を取得し、ついで、現在の普通図柄作動記憶数が上限数未満であるか否かを確認し、上限数に達していなければ、取得した普通図柄当り乱数値をRAM76の乱数記憶領域に記憶する手順で本処理を実行してもよい。このような処理手順は、その他の乱数(例えば、大当り決定乱数や大当り図柄乱数等)を取得して記憶する場合にも適用することができる。
ステップS354:主制御CPU72は、上始動口スイッチオン検出時でないか否か(第1特別図柄に対応する中始動入賞口スイッチ80から入賞検出信号が入力(抽選契機が発生)されたか否か)を確認する。なお、上始動口は中始動口に対応している。
その結果、上始動口スイッチオン検出時でないことを確認した場合(Yes)、主制御CPU72は、ステップS358を実行する。
一方、上始動口スイッチオン検出時でないことを確認できない場合(No)、すなわち、上始動口スイッチオン検出時であることを確認した場合、主制御CPU72は、ステップS356を実行する。
ステップS356:主制御CPU72は、始動口1通過処理(第1特別図柄記憶更新処理)を実行する。始動口1通過処理(第1特別図柄記憶更新処理)の具体的な処理の内容については、別のフローチャートを用いてさらに後述する。
ステップS358:主制御CPU72は、下始動口スイッチオン検出時でないか否か(第2特別図柄に対応する右始動入賞口スイッチ82から入賞検出信号が入力(抽選契機が発生)されたか否か)を確認する。なお、下始動口は右始動口に対応している。
その結果、下始動口スイッチオン検出時でないことを確認した場合(Yes)、主制御CPU72は、ステップS364を実行する(接続記号A→A)。
一方、下始動口スイッチオン検出時でないことを確認できない場合(No)、すなわち、下始動口スイッチオン検出時であることを確認した場合、主制御CPU72は、ステップS360を実行する。
ステップS360:主制御CPU72は、始動口2通過処理(第2特別図柄記憶更新処理)を実行する。始動口2通過処理(第2特別図柄記憶更新処理)の具体的な処理の内容については別のフローチャートを用いてさらに後述する。
ステップS362:主制御CPU72は、普通電動役物入賞時確認処理を実行する。特に図示はしていないが、普通電動役物入賞時確認処理では不正入賞に関する処理を実行する。次に、主制御CPU72は、ステップS364を実行する(接続記号A→A)。
ステップS364:主制御CPU72は、アウトスイッチ信号オン検出時でないか否かを確認する。特に図示はしていないが、アウト口32の内部にはアウトスイッチが配置されており、アウトスイッチは、アウト口32に入球した遊技球を検出する。
その結果、アウトスイッチ信号オン検出時でないことを確認した場合(Yes)、主制御CPU72は、ステップS366を実行する。
一方、アウトスイッチ信号オン検出時でないことを確認できない場合(No)、すなわち、アウトスイッチ信号オン検出時であることを確認した場合、主制御CPU72は、ステップS366を実行する。
ステップS366:主制御CPU72は、サブコマンド(アウトスイッチ通過指定コマンド)をセットする処理を実行する。
ステップS368:主制御CPU72は、サブコマンドセット処理を呼び出す処理を実行する。これにより、アウトスイッチ通過指定コマンドが送信される。
ステップS370:主制御CPU72は、入力ポート2オン検出フラグをロードする処理を実行する。入力ポート2オン検出フラグを確認することにより、第1大入賞口又は第2大入賞口に遊技球が入球したか否かを確認することができる。
ステップS372:主制御CPU72は、入力ポート2オン検出フラグの上カウントスイッチビットを確認する処理を実行する。
ステップS374:主制御CPU72は、上カウントスイッチ検出時であるか否か(第1可変入賞装置30の第1大入賞口に対応する第1カウントスイッチ84から入賞検出信号が入力されたか否か)を確認する。
その結果、上カウントスイッチ検出時であることを確認した場合(Yes)、主制御CPU72は、ステップS376を実行する。
一方、上カウントスイッチ検出時であることを確認できない場合(No)、主制御CPU72は、ステップS378を実行する。
ステップS376:主制御CPU72は、カウントスイッチ通過時処理を実行する。カウントスイッチ通過時処理では、主制御CPU72は大当り遊技中や小当り遊技中の第1可変入賞装置30への入賞球数をカウントする。
ステップS378:主制御CPU72は、入力ポート2オン検出フラグをロードする処理を実行する。
ステップS380:主制御CPU72は、入力ポート2オン検出フラグの下カウントスイッチビットを確認する処理を実行する。
ステップS382:主制御CPU72は、下カウントスイッチオン検出時であるか否か(第2可変入賞装置31の第2大入賞口に対応する第2カウントスイッチ85から入賞検出信号が入力されたか否か)を確認する。
その結果、下カウントスイッチオン検出時であることを確認した場合(Yes)、主制御CPU72は、ステップS384を実行する。
一方、下カウントスイッチオン検出時であることを確認できない場合(No)、主制御CPU72は、呼び出し元に復帰する。
ステップS384:主制御CPU72は、カウントスイッチ通過時処理を実行する。カウントスイッチ通過時処理では、主制御CPU72は大当り遊技中の第2可変入賞装置31への入賞球数をカウントする。
ここで、カウントスイッチ通過時処理は、上カウントスイッチと下カウントスイッチとで共通の処理としてもよく、別の処理としてもよい。
以上の処理を終えると、主制御CPU72は呼び出し元に復帰する。
図17は、実施形態のスイッチ管理処理のプログラムを示す図である。
本モジュールにおいて、入力レジスタ(引数)、出力レジスタ(戻り値)、及び、保護レジスタ(本モジュールで値が変化しないレジスタ)は、設定されていない。
最初の「JBITQ Z,@IN3_GAT_POS,(LOW R_IN3_PON),SWI_PRC_10」は、ゲートスイッチオン検出時でなければ「SWI_PRC_10:(ラベル)」まで分岐する処理である。
次の「CALLF GAT_PAS」は、ゲートスイッチ通過処理を呼び出す処理である。
次の「JBITQ Z,@IN3_ST1_POS,(LOW R_IN3_PON),SWI_PRC_20」は、中始動口スイッチオン検出時でなければ「SWI_PRC_20:(ラベル)」まで分岐する処理である。
次の「CALLF ST1_PAS」は、始動口1通過処理を呼び出す処理である。
次の「JBITQ Z,@IN3_ST2_POS,(LOW R_IN3_PON),SWI_PRC_30」は、右始動口スイッチオン検出時でなければ「SWI_PRC_30:(ラベル)」まで分岐する処理である。
次の「CALLF ST2_PAS」は、始動口2通過処理を呼び出す処理である。
次の「CALLF FDN_CHK」は、普通電動役物入賞時確認処理を呼び出す処理である。
次の「JBITQ Z,@IN2_OUT_POS,(LOW R_IN2_PON),SWI_PRC_40」は、アウトスイッチ信号オン検出時でなければ「SWI_PRC_40:(ラベル)」まで分岐する処理である。
次の「LD DE,@CMD_OUT_PAS」は、サブコマンド(アウトスイッチ通過指定コマンド)をセットする処理であり、DEレジスタに@CMD_OUT_PAS(アウトスイッチ通過指定コマンド)をロードする。
次の「RST SEC_SET」は、リスタート領域に配置されているサブコマンドセット処理を呼び出す処理である。
次の「LDQ A,(LOW R_IN2_PON)」は、入力ポート2オン検出フラグをロードする処理であり、AレジスタにR_IN2_PON(入力ポート2オン検出フラグ)をロードする。
次の「AND @IN2_AT1_BIT」は、上カウントスイッチビットを確認する処理である。
次の「CALL NZ,TDN_PAS」は、上カウントスイッチオン検出時であればカウントスイッチ通過処理を呼び出す処理である。
次の「LDQ A,(LOW R_IN2_PON)」は、入力ポート2オン検出フラグをロードする処理であり、AレジスタにR_IN2_PON(入力ポート2オン検出フラグ)をロードする。
次の「AND @IN2_AT2_BIT」は、下カウントスイッチビットを確認する処理である。
次の「CALL NZ,TDN_PAS」は、下カウントスイッチオン検出時であればカウントスイッチ通過処理を呼び出す処理である。
次の「RET」は、呼び出し元に復帰する処理である。
〔プログラムの解説〕
このモジュールは、タイマ割込み中の処理の1つで、始動口、ゲート及び大入賞口を遊技球が通過した場合の処理を呼び出すものである。なお、賞球については別処理で実行している。また、このモジュールは、毎回のタイマ割込み処理で呼び出される。
ここで、図17中(1)等で使用している「JBITQ命令」の詳細は以下の通りである。
例えば、「@IN3_GAT_POS」が「2」であり、「R_IN3_PON」が「F039H」であるとする。このとき、「JBITQ Z,@IN3_GAT_POS,(LOW R_IN3_PON),SWI_PRC_10」という命令は、以下の動作を行う。
(1)Qレジスタの値「F0H」と、R_IN3_PONの下位バイト「39H」を組み合わせて、「F039H」というアドレスを得る。
(2)アドレス「F039H」に格納されているデータについて、@IN3_GAT_POSで指定されたビット(この場合はビット2)が0であるか1であるかを調べる。そして、「0」である場合はゼロフラグをセットし、「1」である場合はゼロフラグをリセットする。
(3)ゼロフラグがセットされている場合(指定のビットが0である場合)、SWI_PRC_10へ分岐する。
(4)一方、ゼロフラグがセットされていない場合(指定のビットが1である場合)、次の命令に進み、対象となるモジュールを呼び出す。
また、図17中(2)等で使用している「CALLF命令」は、条件無しで対象となるモジュールを呼び出す命令である。
図18は、比較例のスイッチ管理処理のプログラムを示す図である。
ここで、比較例のプログラムは、確変領域付きの遊技機のプログラムであるため、実施形態の確変領域非搭載の遊技機とはプログラムの内容が異なるが、基本的な流れは変わっていない。また、比較例のプログラムは、本実施形態と比較するためのプログラムであって、従来技術を構成するものではない。
最初の「LDQ A,(LOW R_IN2_PON)」は、入力ポート2オン検出フラグをロードする処理である。
次の「AND @IN2_GAT_BIT」は、ゲートスイッチビットを確認する処理である。
次の「CALL NZ,GAT_PAS」は、ゲートスイッチオン検出時であればゲートスイッチ通過処理を呼び出す処理である。
次の「LDQ A,(LOW R_IN2_PON)」は、入力ポート2オン検出フラグをロードする処理である。
次の「AND @IN2_ST1_BIT」は、上始動口スイッチビットを確認する処理である。
次の「CALL NZ,ST1_PAS」は、上始動口スイッチオン検出時であれば始動口1通過処理を呼び出す処理である。
次の「LDQ A,(LOW R_IN2_PON)」は、入力ポート2オン検出フラグをロードする処理である。
次の「AND @IN2_ST2_BIT」は、下始動口スイッチビットを確認する処理である。
次の「CALL NZ,ST2_PAS」は、下始動口スイッチオン検出時であれば始動口2通過処理を呼び出す処理である。
次の「LDQ A,(LOW R_IN1_PON)」は、入力ポート1オン検出フラグをロードする処理である。
次の「AND @IN1_AT1_BIT」は、右カウントスイッチビットを確認する処理である。
次の「CALL NZ,TDN_PAS」は、右カウントスイッチオン検出時であればカウントスイッチ通過処理を呼び出す処理である。
次の「LDQ A,(LOW R_IN1_PON)」は、入力ポート1オン検出フラグをロードする処理である。
次の「AND @IN1_AT2_BIT」は、下カウントスイッチビットを確認する処理である。
次の「CALL NZ,TDN_PAS」は、下カウントスイッチオン検出時であればカウントスイッチ通過処理を呼び出す処理である。
次の「LDQ A,(LOW R_IN1_PON)」は、入力ポート1オン検出フラグをロードする処理である。
次の「AND @IN1_KRS_BIT」は、確変領域スイッチビットを確認する処理である。
次の「CALL NZ,KRS_PAS」は、確変領域スイッチオン検出時であれば確変領域スイッチ通過処理を呼び出す処理である。
次の「LDQ A,(LOW R_IN1_PON)」は、入力ポート1オン検出フラグをロードする処理である。
次の「RAND Z,A,@IN1_OTL_BIT」は、排出口スイッチ通過でなければリターンする処理である。
次の「JTQ Z,(LOW R_TD2_IOC),SWI_PRC_10」は、特電2入出球カウンタが0であれば「SWI_PRC_10:(ラベル)」まで分岐する処理である。
次の「DECQ (LOW R_TD2_IOC)」は、特電2入出球カウンタを1減算する処理である。
次の「RET」は、呼び出し元に復帰する処理である。
次の「CALLF EOESET」は、大入賞口異常排出エラー設定処理を呼び出す処理である。
次の「RET」は、呼び出し元に復帰する処理である。
比較例のプログラムにおいては、例えば、図18中(1)の「入力ポートの値をロード(2バイト)」、図18中(2)の「AND命令によるビットの確認(2バイト)」及び図18中(3)の「条件付CALL命令による子モジュールの呼び出し(3バイト)」の順番で処理を行っている。このため、1つのスイッチあたり7バイトを使用している。
一方、実施形態のプログラムにおいては、JBITQ命令(RWMの指定ビットが0か1かによって分岐を行う命令;4バイト)及び条件無しCALLF命令(2バイト)を組み合わせることにより、1つのスイッチあたり6バイトを使用している。
このため、本実施形態のプログラムでは、比較例のプログラムと比較して、ゲート、始動口1及び始動口2の処理に関するプログラムを1バイトずつ削減することができ、プログラム全体で、合計3バイトの容量を削減することができる。
本実施形態のプログラムにおいて、大入賞口に対応するカウントスイッチについては、2種類のいずれであるかを引数として使用するため、比較例のプログラムと同一の内容としているが、JBITQ命令及び条件無しCALLF命令を組み合わせたプログラムとしてもよい。
〔スイッチ管理処理のまとめ〕
このように、スイッチ管理処理(呼出モジュール)は、入力ポートの値が所定の値(所定のビットが「1」)である場合に入力ポートに対応する対応モジュール(ゲートスイッチ通過処理、始動口1通過処理、始動口2通過処理等)を呼び出すモジュールであって、対応モジュールを呼び出す前に、入力ポートの値が所定の値であるか否かを判断し、所定の値でないとの判断結果である場合(所定のビットが「0」であるとの判断結果)には特殊フラグ(ゼロフラグ)をセットし、特殊フラグがセットされている場合に対応モジュールを呼び出さない位置まで分岐する処理を1回の命令で実行する特別分岐命令(JBITQ命令)を用いて対応モジュールを呼び出すか否かを判定する。主制御装置70は、スイッチ管理処理(呼出モジュール)を備えている。
また、スイッチ管理処理は、対応モジュール(ゲートスイッチ通過処理、始動口1通過処理、始動口2通過処理等)を呼び出す場合、条件無しでモジュールを呼び出す条件無し呼出命令(CALLF命令)を用いて対応モジュールを呼び出す。
さらに、スイッチ管理処理は、入力ポートの値が、図柄の変動に関わる領域を遊技球が通過したことを示す値である場合に(普通図柄の変動に関わる始動ゲート20を遊技球が通過したことを示す値、第1特別図柄の変動に関わる中始動入賞口26に遊技球が入球したことを示す値、第2特別図柄の変動に関わる右始動入賞口28aに遊技球が入球したことを示す値である場合に)、JBITQ命令及びCALLF命令を実行する。
〔第1特別図柄記憶更新処理〕
図19は、第1特別図柄記憶更新処理(図15中のステップS12)の手順例を示すフローチャートである。以下、第1特別図柄記憶更新処理の手順について順を追って説明する。
ステップS30:ここでは先ず、主制御CPU72は第1特別図柄作動記憶数カウンタの値を参照し、作動記憶数が最大値(例えば4とする)未満であるか否かを確認する。作動記憶数カウンタは、RAM76の乱数記憶領域に記憶されている大当り決定乱数や大当り図柄乱数等の個数(組数)を表すものである。ここで、RAM76の乱数記憶領域は、第1特別図柄及び第2特別図柄で共通して使用する8つのセクション(例えば各2バイト)に分けられており、各セクションには大当り決定乱数及び大当り図柄乱数を1個ずつセット(組)で記憶可能である。このとき、第1特別図柄に対応する作動記憶数カウンタの値が最大値に達していれば(No)、主制御CPU72はスイッチ管理処理(図15)に復帰する。一方、作動記憶数カウンタの値が最大値未満であれば(Yes)、主制御CPU72は次のステップS31に進む。
ステップS31:主制御CPU72は、第1特別図柄作動記憶数を1つ加算する。第1特別図柄作動記憶数カウンタは、例えばRAM76の作動記憶数領域に記憶されており、主制御CPU72はその値をインクリメント(+1)する。ここで加算されたカウンタの値に基づき、ダイナミックポート出力処理(図14中のステップS202)で第1特別図柄作動記憶ランプ34aの点灯状態が制御されることになる。
ステップS32:そして、主制御CPU72は、サンプリング回路77を通じて乱数発生器75から第1特別図柄に対応する大当り決定乱数値を取得する(第1抽選要素取得手段、抽選要素取得手段)。乱数値の取得は、乱数発生器75のピンアドレスを指定して行う。主制御CPU72が8ビット処理の場合、アドレスの指定は上位及び下位で1バイトずつ2回に分けて行われる。主制御CPU72は、指定したアドレスから大当り決定乱数値をリードすると、これを第1特別図柄に対応する大当り決定乱数として転送先のアドレスにセーブする。
ステップS33:次に主制御CPU72は、RAM76の大当り図柄乱数カウンタ領域から第1特別図柄に対応する大当り図柄乱数値を取得する。この乱数値の取得もまた、大当り図柄乱数カウンタ領域のアドレスを指定して行う。主制御CPU72は、指定したアドレスから大当り図柄乱数値をリードすると、これを第1特別図柄に対応する大当り図柄乱数として転送先のアドレスにセーブする。
ステップS34:また、主制御CPU72は、RAM76の変動用乱数カウンタ領域から、第1特別図柄の変動条件に関する乱数値として、リーチ判定乱数及び変動パターン決定乱数を順番に取得する(変動パターン決定要素取得手段、要素取得手段)。これら乱数値の取得も同様に、変動用乱数カウンタ領域のアドレスを指定して行われる。そして、主制御CPU72は、指定したアドレスからリーチ判定乱数及び変動パターン決定乱数をそれぞれ取得すると、これらを転送先のアドレスにセーブする。
ステップS35:主制御CPU72は、セーブした大当り決定乱数、大当り図柄乱数、リーチ判定乱数及び変動パターン決定乱数をともに第1特別図柄に対応する乱数記憶領域に転送し、これら乱数を領域内の空きセクションにセットで記憶させる(記憶手段、抽選要素記憶手段)。複数のセクションには順番(例えば第1〜第4)が設定されており、現段階で第1〜第4の全てのセクションが空きであれば、第1セクションから順に各乱数が記憶される。あるいは、第1セクションが既に埋まっており、その他の第2〜第4セクションが空きであれば、第2セクションから順に各乱数が記憶されていく。なお、乱数記憶領域の読み出しはFIFO(First In First Out)形式である。
ステップS36:次に主制御CPU72は、現在の特別遊技管理フェーズ(遊技状態)が大当り中であるか否かを確認する。大当り中以外であれば(No)、主制御CPU72は次以降のステップS37,S38を実行する。大当り中であれば(Yes)、主制御CPU72はステップS37,S38をスキップしてステップS38aに進む。本実施形態においてこの判断を行っているのは、大当り中に発生した入球については先読みによる演出を行わないためである。
ステップS37:大当り中以外の場合(ステップS36:No)、主制御CPU72は第1特別図柄に関して取得時演出判定処理を実行する。この処理は、先のステップS32〜S34でそれぞれ取得した第1特別図柄の大当り決定乱数及び大当り図柄乱数に基づいて、事前(変動開始前)に内部抽選の結果を判定し、それによって演出内容を判定(いわゆる「先読み」)するためのものである。なお、具体的な処理の内容については別のフローチャートを参照しながらさらに後述する。
ステップS38:取得時演出判定処理から復帰すると、次に主制御CPU72は、第1特別図柄に関して特図先判定演出コマンドの上位バイト分(例えば「B8H」)をセットする。この上位バイトデータは、コマンド種別が「第1特別図柄に関する特図先判定演出用」であることを記述したものである。なお、特図先判定演出コマンドの下位バイト分は、先の取得時演出判定処理(ステップS37)においてセットされているので、ここでは下位バイトに上位バイトを合成することで例えば1ワード長のコマンドが生成されることになる。
ステップS38a:次に主制御CPU72は、第1特別図柄に関して作動記憶数増加時演出コマンドをセットする。具体的には、コマンドの種別を表す上位バイトの先行値(例えば「BBH」)に対し、増加後の作動記憶数(例えば「01H」〜「04H」)を下位バイトに付加した1ワード長の演出コマンドを生成する。このとき下位バイトについては、デフォルトで第2の位を「0」とすることにより、その値が「作動記憶数の増加による結果(変化情報)」であることを表している。つまり、下位バイトが「01H」であれば、それは前回までの作動記憶数「00H」から1つ増加した結果、今回の作動記憶数が「01H」となったことを表している。同様に、下位バイトが「02H」〜「04H」であれば、それは前回までの作動記憶数「01H」〜「03H」からそれぞれ1つ増加した結果、今回の作動記憶数が「02H」〜「04H」となったことを表している。なお、先行値「BBH」は、今回の演出コマンドが第1特別図柄についての作動記憶数コマンドであることを表す値である。
ステップS39:そして、主制御CPU72は、第1特別図柄に関して演出コマンド出力設定処理を実行する。この処理は、先のステップS38で生成した特図先判定演出コマンドや、ステップS38aで生成した作動記憶数増加時演出コマンド、始動口入賞音制御コマンドを演出制御装置124に対して送信するためのものである。
そして、以上の処理を終えると、主制御CPU72はスイッチ管理処理(図15)に復帰する。
〔第2特別図柄記憶更新処理〕
次に図20は、第2特別図柄記憶更新処理(図15中のステップS16)の手順例を示すフローチャートである。以下、第2特別図柄記憶更新処理の手順について順を追って説明する。
ステップS40:主制御CPU72は、第2特別図柄作動記憶数カウンタの値を参照し、作動記憶数が最大値未満であるか否かを確認する。第2特別図柄作動記憶数カウンタについても上記と同様に、RAM76の乱数記憶領域に記憶されている大当り決定乱数や大当り図柄乱数等の個数(組数)を表すものである。このとき第2特別図柄作動記憶数カウンタの値が最大値(例えば4とする)に達していれば(No)、主制御CPU72はスイッチ管理処理(図15)に復帰する。一方、未だ第2特別図柄作動記憶数カウンタの値が最大値未満であれば(Yes)、主制御CPU72は次のステップS41以降に進む。
ステップS41:主制御CPU72は、第2特別図柄作動記憶数を1つ加算(第2特別図柄作動記憶数カウンタの値をインクリメント)する。先のステップS31(図19)と同様に、ここで加算されたカウンタの値に基づき、ダイナミックポート出力処理(図14中のステップS202)で第2特別図柄作動記憶ランプ35aの点灯状態が制御されることになる。
ステップS42:そして、主制御CPU72は、サンプリング回路77を通じて乱数発生器75から第2特別図柄に対応する大当り決定乱数値を取得する(第2抽選要素取得手段、抽選要素取得手段)。乱数値を取得する手法は、先に説明したステップS32(図19)と同様である。
ステップS43:次に主制御CPU72は、RAM76の大当り図柄乱数カウンタ領域から第2特別図柄に対応する大当り図柄乱数値を取得する。乱数値を取得する方法は、先に説明したステップS33(図19)と同様である。
ステップS44:また、主制御CPU72は、RAM76の変動用乱数カウンタ領域から、第2特別図柄の変動条件に関するリーチ判定乱数及び変動パターン決定乱数を順番に取得する(変動パターン決定要素取得手段、要素取得手段)。これら乱数値の取得もまた、先に説明したステップS34(図19)と同様に行われる。
ステップS45:主制御CPU72は、セーブした大当り決定乱数、大当り図柄乱数、リーチ判定乱数及び変動パターン決定乱数をともに第2特別図柄に対応する乱数記憶領域に転送し、これら乱数を領域内の空きセクションにセットで記憶させる(記憶手段、抽選要素記憶手段)。記憶の手法は、先に説明したステップS35(図19)と同様である。
ステップS45a:次に主制御CPU72は、現在の特別遊技管理フェーズ(遊技状態)が大当り中であるか否かを確認する。そして、大当り中以外であれば(No)、主制御CPU72は次以降のステップS46,S47を実行する。逆に大当り中であれば(Yes)、主制御CPU72はステップS46,S47をスキップしてステップS48に進む。本実施形態においてこの判断を行っているのは、同じく大当り中に発生した入球については先読みによる演出を行わないためである。
ステップS46:大当り中以外である場合(ステップS45a:No)、次に主制御CPU72は、第2特別図柄に関して取得時演出判定処理を実行する。この処理は、先のステップS42〜S44でそれぞれ取得した第2特別図柄の大当り決定乱数及び大当り図柄乱数に基づいて、事前(変動開始前)に内部抽選の結果を判定し、それによって演出内容を判定するためのものである。なお、具体的な処理の内容は後述する。
ステップS47:取得時演出判定処理から復帰すると、次に主制御CPU72は特図先判定演出コマンドの上位バイト分(例えば「B9H」)をセットする。この上位バイトデータは、コマンド種別が「第2特別図柄に関する特図先判定演出用」であることを記述したものである。ここでも同様に、特図先判定演出コマンドの下位バイト分は、先の取得時演出判定処理(ステップS46)においてセットされているので、ここでは下位バイトに上位バイトを合成することで例えば1ワード長のコマンドが生成されることになる。
ステップS48:次に主制御CPU72は、第2特別図柄に関して作動記憶数増加時演出コマンドをセットする。ここでは、コマンドの種別を表す上位バイトの先行値(例えば「BCH」)に対し、増加後の作動記憶数(例えば「01H」〜「04H」)を下位バイトに付加した1ワード長の演出コマンドを生成する。第2特別図柄についても同様に、デフォルトで下位バイトの第2の位を「0」とすることにより、その値が「作動記憶数の増加による結果(変化情報)」であることを表すことができる。なお、先行値「BCH」は、今回の演出コマンドが第2特別図柄についての作動記憶数コマンドであることを表す値である。
ステップS49:そして、主制御CPU72は、第2特別図柄に関して演出コマンド出力設定処理を実行する。これにより、第2特別図柄に関して特図先判定演出コマンドや作動記憶数増加時演出コマンド、始動口入賞音制御コマンド等を演出制御装置124に対して送信する準備が行われる。
そして、以上の手順を終えると、主制御CPU72はスイッチ管理処理(図15)に復帰する。
〔取得時演出判定処理〕
図21は、取得時演出判定処理の手順例を示すフローチャートである。主制御CPU72は、先の第1特別図柄記憶更新処理及び第2特別図柄記憶更新処理(図19中のステップS37,図20中のステップS46)においてこの取得時演出判定処理を実行する(事前判定手段)。上述したように、この処理は第1特別図柄(中始動入賞口26への入球時)、第2特別図柄(可変始動入賞装置28への入球時)のそれぞれについて実行される。したがって以下の説明は、第1特別図柄に関する処理に該当する場合と、第2特別図柄に関する処理に該当する場合とがある。以下、各手順に沿って処理の内容を説明する。
ステップS50:主制御CPU72は、特図先判定演出コマンド(先判定情報)の下位バイト分(例えば「00H」)をセットする。なお、ここでセットしたバイトデータはコマンドの標準値(はずれ時)を表すものとなる。
ステップS52:次に主制御CPU72は、先判定用乱数値として大当り決定乱数をロードする。ここでロードする乱数は、先の第1特別図柄記憶更新処理(図19中のステップS35)又は第2特別図柄記憶更新処理(図20中のステップS45)でRAM76に記憶されているものである。
ステップS54:そして、主制御CPU72は、ロードした乱数が当り値の範囲外(ここでは下限値以下)であるか否かを判定する(抽選結果先判定手段、事前判定手段)。具体的には、主制御CPU72は比較値(下限値)をAレジスタにセットし、この比較値からロードした乱数値を減算する。なお、比較値(下限値)は、パチンコ機1における内部抽選の当選確率に応じて予め規定されている。次に主制御CPU72は、例えばフラグレジスタの値から演算結果が0又は正の値であるか否かを判別する。その結果、ロードした乱数が当り値の範囲外であれば(Yes)、主制御CPU72はステップS80に進む。
ステップS80:次に主制御CPU72は、はずれ時変動パターン情報事前判定処理を実行する(変動パターン先判定手段)。この処理では、主制御CPU72は、はずれ時の変動時間について変動パターン先判定コマンドを生成する。ここで生成される変動パターン先判定コマンドには、特に「時間短縮機能」の作動時における変動時間(又は変動パターン番号)に関する事前の判定情報が反映される。例えば、現在の状態が「時間短縮機能」の作動時であれば、主制御CPU72はロードしたリーチ判定乱数に基づいて、変動時間が「はずれリーチ変動(非短縮変動時間)」に対応するものであるか否かを判断する。その結果、変動時間が「はずれリーチ変動(非短縮変動時間)」に対応するものである場合、主制御CPU72は「時短中非短縮変動時間」に対応する特図先判定演出コマンドを生成する。なお、リーチ変動の場合はさらに、リーチモード乱数から「リーチグループ(リーチの種類)」をも判断し、その結果から特図先判定演出コマンドを生成することとしてもよい。一方、変動時間が「はずれリーチ変動(非短縮変動時間)」に対応するものでない場合、主制御CPU72は「時短中短縮変動時間」に対応する変動パターン先判定コマンドを生成する。あるいは、現在の状態が「時間短縮機能」の非作動時(低確率状態)であれば、主制御CPU72はロードしたリーチ判定乱数に基づいて、変動時間が「通常はずれリーチ変動」に対応するものであるか否かを判断する。その結果、変動時間が「通常はずれリーチ変動」に対応するものである場合、主制御CPU72は「通常はずれリーチ変動時間」に対応する変動パターン先判定コマンドを生成する。一方、変動時間が「通常はずれリーチ変動」に対応するものでない場合、主制御CPU72は「通常はずれ変動時間」に対応する変動パターン先判定コマンドを生成する。また、ここで生成された変動パターン先判定コマンドは、演出コマンド出力設定処理(ステップS39,S49)で送信バッファにセットされる。なお、この処理において、主制御CPU72は、小当り時の変動パターンについて、上述したはずれ時の処理と同様に変動パターン先判定コマンドを生成していもよい。
以上の手順を実行すると、主制御CPU72はステップS82の判定結果管理処理を実行した後に取得時演出判定処理を終了し、呼び出し元の第1特別図柄記憶更新処理(図19)又は第2特別図柄記憶更新処理(図20)に復帰する。一方、先のステップS54の判断において、ロードした乱数が当り値の範囲外でなく、範囲内であれば(ステップS54:No)、主制御CPU72は次にステップS56に進む。
ステップS56:主制御CPU72は、先判定結果による確率状態予定フラグがセットされているか否かを確認する。先判定結果による確率状態予定フラグは、未だ変動は開始されていないが、これまで記憶されている大当り決定乱数の中に当選値がある場合にセットされるものである。具体的には、これまでに記憶されている大当り決定乱数に当選値があった場合、これと組になる大当り図柄乱数が「確変図柄」に該当するものであれば、確率状態予定フラグに例えば「A0H」がセットされる。この値は、この大当り決定乱数よりも後に取得された大当り決定乱数の事前判定(先読み判定)に際して、高確率状態になることを予定として設定するためのフラグ値を表すものである。一方、これまでに記憶されている大当り決定乱数に当選値があった場合であって、これと組になる大当り図柄乱数が「非確変(通常)図柄」に該当するものであれば、確率状態予定フラグに例えば「01H」がセットされる。この値は、この大当り決定乱数よりも後に取得された大当り決定乱数の事前判定(先読み判定)に際して、通常(低)確率状態になることを予定として設定するためのフラグ値を表すものである。なお、これまでに記憶されている大当り決定乱数に当選値が未だ存在しなければ、フラグ値はリセット(00H)されている。また、確率状態予定フラグの値は、例えばRAM76のフラグ領域に格納されている。なお、ここでは「確率状態予定フラグ」を用いて厳密に事前の当り判定を行う例を挙げているが、単純に現在の確率状態に基づいて事前の当り判定を行う場合、このステップS56と以降のステップS58,ステップS60,ステップS62,ステップS76等を省略してもよい。
主制御CPU72は、未だ確率状態予定フラグがセットされていなければ(ステップS56:No)、次にステップS66を実行する。
ステップS66:この場合、主制御CPU72は次に低確率時(通常時)用比較値をAレジスタにセットする。なお、低確率時用比較値もまた、パチンコ機1における低確率時の当選確率に応じて予め規定されている。
ステップS68:次に主制御CPU72は、「現在の確率状態フラグ」をロードする。この確率状態フラグは、現在の内部状態が高確率(確変中)であるか否かを表すものであり、RAM76のフラグ領域内に記憶されているものである。現在の確率状態が高確率(確変中)であれば、状態フラグとして値「01H」がセットされており、低確率(通常中)であれば、状態フラグの値はリセットされている(「00H」)。
ステップS70:そして、主制御CPU72は、ロードした現在の特別図柄確率状態フラグが高確率を表すものでない(≠01H)か否かを確認し、その結果、高確率を表すものであれば(No)、次にステップS64を実行する。
ステップS64:主制御CPU72は、高確率時用比較値をセットする。これにより、先のステップS66でセットされた低確率時用比較値が書き換えられることになる。なお、高確率時用比較値は、パチンコ機1における高確率時の当選確率に応じて予め規定されている。
このように、先判定結果による確率状態予定フラグが未だセットされていない場合であって、現在の内部状態が高確率の場合は、比較値を高確率時用に書き換えた上で次のステップS72を実行することになる。これに対し、先のステップS70で現在の確率状態フラグが高確率を表すものでないことを確認した場合(Yes)、主制御CPU72はステップS64をスキップして次のステップS72を実行する。
ステップS72:主制御CPU72は、先のステップS52でロードした乱数が当り値の範囲外であるか否かを判定する(抽選結果先判定手段)。すなわち、主制御CPU72は状態別でセットした比較値から大当り決定乱数値を減算する。そして、主制御CPU72は、同様にフラグレジスタの値から演算結果が負の値(<0)であるか否かを判別し、その結果、ロードした乱数が当り値の範囲外であれば(Yes)、主制御CPU72は、はずれ時変動パターン情報事前判定処理(ステップS80)を実行する。これに対し、ロードした乱数が当り値の範囲外でなく、範囲内であれば(No)、主制御CPU72は次にステップS74に進む。
ステップS74:主制御CPU72は、大当り図柄種別判定処理を実行する。この処理は、大当り決定乱数と組になっている大当り図柄乱数に基づいて、そのときの大当り種別(当選種類)を判定するためのものである。例えば、主制御CPU72は先の第1特別図柄記憶更新処理(図19中のステップS35)又は第2特別図柄記憶更新処理(図20中のステップS45)で記憶した図柄別の大当り図柄乱数をロードすると、ステップS54と同様に比較値を用いた演算を実行し、その結果から大当り種別として「通常図柄」又は「確変図柄」のいずれに該当するかを判別する。主制御CPU72は、このときの判別結果を特別図柄先判定値として記憶し、次のステップS76に進む。
ステップS76:そして、主制御CPU72は、先判定結果による確率状態予定フラグの値をセットする。具体的には、先のステップS74で記憶した特別図柄先判定値が「通常図柄」を表す場合、主制御CPU72は確率状態予定フラグに値「01H」をセットする。一方、特別図柄先判定値が「確変図柄」を表す場合、主制御CPU72は確率状態予定フラグに値「A0H」をセットする。これにより、次回以降の処理ではステップS56において「フラグセット済み」と判定されることになる。
ステップS78:主制御CPU72は、特図先判定演出コマンドの下位バイトとして、先のステップS74で記憶した特別図柄先判定値をセットする。特別図柄先判定値は、例えば「通常図柄」に該当する場合は「01H」がセットされ、「確変図柄」に該当する場合は「A0H」がセットされる。いずれにしても、ここで下位バイト分のデータをセットすることにより、先のステップS50でセットした標準の下位バイトデータ「00H」が書き換えられることになる。
ステップS79:次に主制御CPU72は、大当り時変動パターン情報事前判定処理を実行する(変動パターン先判定手段)。この処理では、主制御CPU72は大当り時の変動時間について、変動パターン先判定コマンドを生成する。ここで生成される変動パターン先判定コマンドには、例えば大当り時のリーチ変動時間(又は変動パターン番号)に関する事前の判定情報が反映される。また、ここで生成された変動パターン先判定コマンドは、演出コマンド出力設定処理(ステップS39,S49)で送信バッファにセットされる。
以上は、先判定結果による確率状態予定フラグがセットされる前(内部初当り前)における手順である。これに対し、先のステップS76を経て確率状態予定フラグがセットされた場合、以下の手順が実行される。ただし、現在の確率状態だけで事前の当り判定を行う場合、以下のステップS56,ステップS58,ステップS60,ステップS62、及びステップS76を実行する必要はない。
ステップS56:主制御CPU72は、既に確率状態予定フラグに値がセットされていることを確認すると(Yes)、次にステップS58を実行する。
ステップS58:主制御CPU72は、先ず低確率時(通常時)用比較値をAレジスタにセットする。
ステップS60:次に主制御CPU72は、「確率状態予定フラグ」をロードする。確率状態予定フラグは、直前の先判定結果に基づきそれ以降の先判定において確率状態を予定的に設定するためのものであり、RAM76のフラグ領域内に記憶されているものである。直前の先判定結果に基づく確率状態が高確率(確変)に移行する予定であれば、確率状態予定フラグの値として「A0H」がセットされており、逆に直前の先判定結果に基づく確率状態が低確率(通常)に戻る予定であれば、確率状態予定フラグの値として「01H」がセットされている。
ステップS62:そして、主制御CPU72は、ロードした確率状態予定フラグが高確率の予定を表すものでない(≠01H)か否かを確認し、その結果、高確率の予定を表すものであれば(No)、次にステップS64を実行し、高確率時用比較値をセットする。
このように、先判定結果による確率状態予定フラグが既にセットされており、その値が高確率を予定するものである場合は、比較値を高確率時用に書き換えた上で次のステップS72以降を実行することになる。これに対し、先のステップS62で確率状態予定フラグが高確率の予定を表すものでなく、通常(低)確率の予定を表すものであることを確認した場合(Yes)、主制御CPU72はステップS64をスキップして次のステップS72以降を実行する。これにより本実施形態では、先判定結果に基づくその後の内部状態の変化(通常確率状態→高確率状態、高確率状態→通常確率状態)を考慮した上で、事前の大当り判定を行うことができる。
以上の手順を終えると、主制御CPU72は第1特別図柄記憶更新処理(図19)又は第2特別図柄記憶更新処理(図20)に復帰する。
〔大入賞口過剰入賞監視処理〕
次に図22及び図23は、大入賞口過剰入賞監視処理の手順例を示すフローチャートである。以下、各手順に沿って説明する。
大入賞口過剰入賞監視処理は、第1大入賞口カウント処理(図15のS20)又は第2大入賞口カウント処理(図15のS21b)の中で呼び出される処理である。
ステップS4250:主制御CPU72は、特別遊技管理フェーズをロードする処理を実行する。
〔特別遊技管理フェーズ〕
主制御CPU72は、特別図柄に対応する遊技の進行状況(1)〜(6)に応じて特別遊技管理フェーズの値(カギ括弧内)を例えば以下のようにセットする。
(1)特別図柄変動待ち状態:「00H」
(2)特別図柄変動中状態:「01H」
(3)特別図柄停止中状態:「02H」
(4)特別電動役物開放待ち状態:「03H」
(5)特別電動役物開放中状態:「04H(大当り大入賞口開放制御状態指定値)」
(6)特別電動役物閉鎖中状態:「05H」
(7)特別電動役物終了時間中状態:「06H(大当り大入賞口終了ウエイト状態指定値)」
なお、特別遊技管理フェーズの値は、大当り中と小当り中とを別にして、以下のように設定することもできる。
(1)特別図柄変動待ち状態:「00H」
(2)特別図柄変動中状態:「01H」
(3)特別図柄停止図柄表示状態:「02H」
(4)大当り大入賞口解放前状態:「03H」
(5)大当り大入賞口解放制御状態:「04H」
(6)大当り大入賞口閉鎖有効状態:「05H」
(7)大当り大入賞口閉鎖終了ウエイト状態:「06H」
(8)小当り大入賞口解放前状態:「07H」
(9)小当り大入賞口解放制御状態:「08H」
(10)小当り大入賞口閉鎖有効状態:「09H」
(11)小当り大入賞口閉鎖終了ウエイト状態:「0AH」
「特別図柄変動待ち状態」は、保留がある場合は、特別図柄の変動を開始する状態である。「特別図柄変動中状態」は、特別図柄が変動している状態である。「特別図柄停止図柄表示状態」は、特別図柄の変動が終了し、抽選結果を表示中の状態である。「大当り大入賞口解放前状態」は、特別図柄抽選で当選(大当り)し、特別電動役物の作動(アタッカの開放)を待つ状態である。「大当り大入賞口解放制御状態」は、特別電動役物が作動中の状態である。「大当り大入賞口閉鎖有効状態」は、特別電動役物の作動後の入賞有効状態である。大入賞口内のカウントスイッチを遊技球が通過しても、不正入賞としない状態である。「大当り大入賞口閉鎖終了ウエイト状態」は、特別電動役物の作動が終了した状態である。
「小当り大入賞口解放前状態」は、特別図柄抽選で当選(小当たり)し、特別電動役物の作動(アタッカの開放)を待つ状態である。「小当り大入賞口解放制御状態」は、特別電動役物が作動中の状態である。「小当り大入賞口閉鎖有効状態」は、特別電動役物の作動後の入賞有効状態である。大入賞口内のカウントスイッチを遊技球が通過しても、不正入賞としない状態である。「小当り大入賞口閉鎖終了ウエイト状態」は、特別電動役物の作動が終了した状態である。
ステップS4252:主制御CPU72は、特別遊技管理フェーズを確認する処理を実行する。
ステップS4254:主制御CPU72は、特別遊技管理フェーズの値が大当り大入賞口開放制御状態指定値であるか否かを確認する処理を実行する。
その結果、特別遊技管理フェーズの値が大当り大入賞口開放制御状態指定値であることを確認した場合(Yes)、主制御CPU72は、呼び出し元に復帰する。
一方、特別遊技管理フェーズの値が大当り大入賞口開放制御状態指定値であることを確認できない場合(No)、主制御CPU72は、ステップS4256を実行する。
ステップS4256:主制御CPU72は、特別遊技管理フェーズを確認する処理を実行する。
ステップS4258:主制御CPU72は、特別遊技管理フェーズの値が大当り大入賞口終了ウエイト状態指定値以上であるか否かを確認する処理を実行する。
その結果、特別遊技管理フェーズの値が大当り大入賞口終了ウエイト状態指定値以上であることを確認した場合(Yes)、主制御CPU72は、呼び出し元に復帰する。
一方、特別遊技管理フェーズの値が大当り大入賞口終了ウエイト状態指定値以上であることを確認できない場合(No)、主制御CPU72は、ステップS4260を実行する。
ステップS4260:主制御CPU72は、大当り大入賞口閉鎖中入賞球数カウンタのアドレスをセットする処理を実行する。
ステップS4262:主制御CPU72は、バイトカウンタ減算処理を実行する。処理の詳細は、後述する。次に、主制御CPU72は、ステップS4264を実行する(接続記号A→A)。
ステップS4264:主制御CPU72は、大当り大入賞口閉鎖中入賞球数カウンタの値が1から0に変化でないか否かを確認する。
その結果、大当り大入賞口閉鎖中入賞球数カウンタの値が1から0に変化でないことを確認した場合(Yes)、主制御CPU72は、呼び出し元に復帰する。
一方、大当り大入賞口閉鎖中入賞球数カウンタの値が1から0に変化でないことを確認できない場合(No)、すなわち、大当り大入賞口閉鎖中入賞球数カウンタの値が1から0に変化したことを確認した場合、主制御CPU72は、ステップS4266を実行する。
ステップS4266:主制御CPU72は、大入賞口過剰入賞回数カウンタのアドレスをセットする処理を実行する。
ステップS4268:主制御CPU72は、大入賞口過剰入賞回数カウンタを1加算する処理を実行する。
ステップS4270:主制御CPU72は、大入賞口過剰入賞回数カウンタの値が、大入賞口過剰入賞エラー検出判定値未満であるか否かを判定する。
その結果、大入賞口過剰入賞回数カウンタの値が、大入賞口過剰入賞エラー検出判定値未満であることを確認した場合(Yes)、主制御CPU72は、呼び出し元に復帰する。
一方、大入賞口過剰入賞回数カウンタの値が、大入賞口過剰入賞エラー検出判定値未満であることを確認できない場合(No)、すなわち、大入賞口過剰入賞回数カウンタの値が、大入賞口過剰入賞エラー検出判定値以上であることを確認した場合、主制御CPU72は、ステップS4272を実行する。
ステップS4272:主制御CPU72は、大入賞口過剰入賞回数カウンタを1減算する処理を実行する。
ステップS4274:主制御CPU72は、サブコマンド(大入賞口過剰入賞エラー発生指定)の下位バイト(後続値)をセットする処理を実行する。
ステップS4276:主制御CPU72は、セキュリティ設定処理を実行する。この処理では、主制御CPU72は、エラー判定処理やサブコマンドの生成・送信処理を実行する。
以上の処理を終えると、主制御CPU72は呼び出し元に復帰する。
〔バイトカウンタ減算選択処理〕
図24は、バイトカウンタ減算選択処理の手順例を示すフローチャートである。
ステップS4280:主制御CPU72は、減算対象ラムの内容をロードする処理を実行する。
ステップS4282:主制御CPU72は、減算対象ラムの内容が0か否かを判定する。
その結果、減算対象ラムの内容が0であることを確認した場合(Yes)、主制御CPU72は、呼び出し元に復帰する。
一方、減算対象ラムの内容が0であることを確認できない場合(No)、すなわち、減算対象ラムの内容が1以上である場合、主制御CPU72は、ステップS4284を実行する。
ステップS4284:主制御CPU72は、減算対象ラムの内容と「2(特殊値)」を比較する処理(比較後フラグ設定命令)を実行する。
ステップS4286:主制御CPU72は、減算対象ラムの内容を1減算する処理(演算命令)を実行する。
以上の処理を終えると、主制御CPU72は呼び出し元に復帰する。
図25は、大入賞口過剰入賞監視処理のプログラムの一部を示す図である。
なお、大入賞口過剰入賞監視処理のプログラムは、説明に必要な部分だけを抜き出して表示している。
図中において、最初の4つの命令は、大当り大入賞口閉鎖中入賞球数カウンタ更新処理に相当する。次の2つの命令は、大入賞口過剰入賞回数カウンタ更新処理に相当する。最後の4つの命令は、大入賞口過剰入賞エラー時処理に相当する。
最初の「LDQ HL,LOW R_TDO_CNT」は、大当り大入賞口閉鎖中入賞球数カウンタのアドレスをセットする処理であり、HLレジスタに、大当り大入賞口閉鎖中入賞球数カウンタ(LOW R_TDO_CNT)の値がロードする。
次の「CALLF BYTEDEC」は、バイトカウンタ減算処理を呼び出す処理である。
次の「RET NC」は、大当り大入賞口閉鎖中入賞球数カウンタが「1→0」に変化でなければリターンする処理である。具体的にはキャリーフラグの値が「0」であれば呼び出し元に復帰する処理である。
次の「INC HL」は、大入賞口過剰入賞回数カウンタのアドレスをセットする処理である。現状のHLレジスタに1を加算すると、大入賞口過剰入賞回数カウンタのアドレスがセットされることになる。
次の「INC (HL)」は、大入賞口過剰入賞回数カウンタを1加算する処理である。
次の「JCP C,(HL),@TDN_KNK_MAX,TDOVCHK_99」は、大入賞口過剰入賞回数カウンタが、大入賞口過剰入賞エラー検出判定値未満であれば、「TDOVCHK_99:(ラベル)」に分岐する処理である。
次の「LD E,LOW @CMD_ERR_TDO」は、サブコマンド(大入賞口過剰入賞エラー発生指定)の下位バイトをセットする処理であり、Eレジスタに、「大入賞口過剰入賞エラー発生指定(@CMD_ERR_TDO)」の下位バイトをロードする。
次の「RST SEC_SET」は、リスタート領域に配置されているセキュリティ設定処理を呼び出す処理である。
次の「RET」は、呼び出し元に復帰する処理である。
〔プログラムの解説〕
ここでは、大入賞口過剰入賞監視処理(TDOVCHK)におけるバイトカウンタ減算処理の使用方法について説明する。
大入賞口過剰入賞監視処理は、大入賞口に入賞があった場合に呼び出される処理である。大入賞口が閉鎖した直後の入賞を有効とする時間において、入賞球が多すぎる場合にエラー状態と判定する処理である。例えば、10個の入賞で大入賞口が閉鎖する場合、合計14個以上の入賞があった場合に異常であると判断する。
なお、このモジュール(大入賞口過剰入賞監視処理のプログラム)とは別の処理において、大入賞口が閉鎖したときに、大当り大入賞口閉鎖中入賞球数カウンタ(R_TDO_CNT)に判定値(例えば4)が設定される。
図25中(1)において、HLレジスタに「大当り大入賞口閉鎖中入賞球数カウンタ」のアドレスをセットする。
その後、図25中(2)において、バイトカウンタ減算処理を呼び出す。
バイトカウンタ減算処理を呼び出した結果、「大当り大入賞口閉鎖中入賞球数カウンタ」の値が1から0となった場合以外については、キャリーフラグが0となっているため、図25中(3)において、呼び出し元に復帰する。
一方、バイトカウンタ減算処理を呼び出した結果、「大当り大入賞口閉鎖中入賞球数カウンタ」の値が1から0となった場合は、キャリーフラグが1となっているため、異常発生と判定し、図25中(3)において、呼び出し元に復帰することなく、その後の処理を続けて実行する。
その後の処理を簡単に説明すると、この異常(1回のラウンド遊技で14個以上の入賞があるという異常)が、大入賞口過剰入賞エラー検出判定値(例えば大当り中に2回)に達した場合、エラー発生としてセキュリティ信号の出力及びサブコマンドのセットを実行する。
以上が、バイトカウンタ減算処理の呼び出し元の一例である。
図26は、バイトカウンタ減算処理のプログラム(第1例)を示す図である。
入力レジスタ(引数)は、呼び出し元で設定されるものであり、HLレジスタに減算対象ラムアドレス(例えば、大当り大入賞口閉鎖中入賞球数カウンタのアドレス)が設定される。
出力レジスタ(戻り値)は、本モジュールで設定されて呼び出し元で参照されるものであり、Aレジスタに減算前の対象ラムの内容が設定され、Fレジスタのキャリーフラグに更新結果フラグ値が設定され、Fレジスタのゼロフラグに更新結果フラグ値が設定される。
保護レジスタ(本モジュールで値が変化しないレジスタ)は、BCレジスタ、DEレジスタ、HLレジスタとなっている。
最初の「LD A,(HL)」は、減算対象ラムの内容をロードする処理であり、AレジスタにHLレジスタが示すアドレスに格納されているデータ(例えば、大当り大入賞口閉鎖中入賞球数カウンタ)をロードする。
次の「RT Z,A」は、減算対象ラムの内容が0であればリターンする処理であり、大当り大入賞口閉鎖中入賞球数カウンタの値が0であれば呼び出し元に復帰する。
次の「CP 2」は、減算対象ラムの内容と2を比較する処理である(比較後フラグ設定命令)。
次の「DEC (HL)」は、減算対象ラムの内容を1減算する処理であり、大当り大入賞口閉鎖中入賞球数カウンタの値が1減算される(演算命令)。
次の「RET」は、呼び出し元に復帰する処理である。
〔プログラムの解説〕
バイトカウンタ減算処理は、タイマカウンタ、回数等を減算していく場合に呼び出される処理である。
また、バイトカウンタ減算処理は、HLレジスタで指定した減算対象ラム(RWM)の値が0であれば何も処理を実行せずに呼び出し元に復帰し、HLレジスタで指定した減算対象ラムの値が0でなければ、減算対象ラムの値を1減算するモジュールである。また、減算対象ラムの値が1から0に変化した場合は、それを示すフラグ(キャリーフラグ)をセットする。
大入賞口過剰入賞監視処理(TDOVCHK)におけるバイトカウンタ減算処理は、大入賞口が閉鎖した直後に入賞数があった場合に検出してよい球数を減算するために使用する。そして、減算後の値が1から0になったときは、過剰入賞が発生したと判定する。
本実施形態のバイトカウンタ減算処理では、コード削減のため、「SCF命令」の使用を回避し、かつ、呼び出し元への復帰判定に「RT Z,A命令」を使用している。
図26中(1)の「RT Z,A命令」は、Aレジスタの値が0であれば呼び出し元に復帰し、そうでなければ次の処理に進む命令である。内部的には「OR A命令」と「RET Z命令」とを同等の内容を実行している。この場合、キャリーフラグは必ずリセットされ、ゼロフラグはA=0であればセットされ、A≠0であればリセットされる。
図26中(2)の「CP 2命令」は「SCF命令」を使用しないために用いている命令である。
以下、「CP 2命令」の処理の詳細を説明する。
(A)RWM(減算対象ラム)の値が0であった場合
RWMの値が0である場合は、図26中(1)で呼び出し元に戻るため、図26中(2)は実行されない。呼び出し元に復帰する場合、キャリーフラグはリセットされ、ゼロフラグはセットされる。
(B)RWMの値が1であった場合
「CP 2命令」によって「1」と「2」が比較される。「1<2」であるから、キャリーフラグはセットされ、ゼロフラグはリセットされる。その後、図26中(3)の「DEC (HL)命令」でRWMの値を1減算する。この命令は、キャリーフラグを一切変化させない命令であるため、キャリーフラグはセットされたままである。一方、RWMの値が1から0に変化したので、ゼロフラグはセットに変更となる。結果として、キャリーフラグはセットされ、ゼロフラグもセットされた状態で呼び出し元に復帰する。
(C)RWMの値が2であった場合
「CP 2命令」によって「2」と「2」が比較される。「2=2」であるから、キャリーフラグはリセットされ、ゼロフラグはセットされる。その後、図26中(3)の「DEC (HL)命令」でRWMの値を1減算する。この命令は、キャリーフラグを一切変化させない命令であるため、キャリーフラグはリセットされたままである。一方、RWMの値が2から1に変化し、変化した結果が0以外なので、ゼロフラグはリセットに変更となる。結果として、キャリーフラグはリセットされ、ゼロフラグもリセットされた状態で呼び出し元に復帰する。
(D)RWMの値が3又はそれ以上であった場合
ここではRWMの値が「3」の場合について述べる。「CP 2命令」によって「3」と「2」が比較される。「3>2」であるから、キャリーフラグはリセットされ、ゼロフラグはセットされる。その後、図26中(3)の「DEC (HL)命令」でRWMの値を1減算する。この命令はキャリーフラグを一切変化させないので、キャリーフラグはリセットされたままである。RWMの値が3から2に変化し、変化した結果が0以外なので、ゼロフラグもリセットされたままである。結果として、キャリーフラグはリセットされ、ゼロフラグもリセットされた状態で呼び出し元に復帰する。
以上をまとめると、以下の関係となる。
(A)RWMの値が0の場合
RWMの値は変化せず、ゼロフラグはセットされ、キャリーフラグはリセットされる。
(B)RWMの値が1の場合
RWMの値は0になり、ゼロフラグはセットされ、キャリーフラグもセットされる。
(C)RWMの値が2以上の場合
RWMの値は1減算され、ゼロフラグはリセットされ、キャリーフラグもリセットされる。
バイトカウンタ減算処理は、リスタート領域に配置してRST命令で呼び出すようにしてもよく、リスタート領域以外の領域に配置してCALL命令で呼び出すようにしてもよい。
図27は、バイトカウンタ減算処理のプログラム(第2例)を示す図である。
第1例と第2例との相違点は、出力レジスタのAレジスタが無くなった点である。
なお、プログラムの内容に変更はない。第2例は、呼び出し元でAレジスタの値を参照して処理を実行する場合に有効である。
〔バイトカウンタ減算処理のまとめ〕
このように、バイトカウンタ減算処理(値変化確認モジュール)は、所定レジスタ(Aレジスタ)の値と予め設定された特別データの値(2)とを比較し、所定レジスタの値の方が特別データの値よりも小さいという比較結果である場合には特別フラグ(キャリーフラグ)をセットし、所定レジスタの値の方が特別データの値よりも大きい又は所定レジスタの値と特別データの値とが同一であるという比較結果である場合には特別フラグをリセットする処理を1回の命令で実行する比較後フラグ設定命令(CP 2命令)を実行し、比較後フラグ設定命令によって特別フラグがセットされている場合には第1の値(1)が第2の値(0)に変化したこと(演算対象ラムの値が1から0に変化したこと)を示し、比較後フラグ設定命令によって特別フラグがリセットされている場合には第1の値が第2の値に変化していないことを示すモジュールである。主制御装置70は、バイトカウンタ減算処理(値変化確認モジュール)を備えている。
また、バイトカウンタ減算処理は、引数として、規定レジスタ(HLレジスタ)に、演算対象となる演算対象データが格納されている領域のアドレスが設定された状態で呼び出される。
さらに、バイトカウンタ減算処理は、戻り値として、特別レジスタ(Fレジスタ)に、特別フラグ(キャリーフラグ)の値を設定する(例えばFレジスタのビット0)。
さらにまた、バイトカウンタ減算処理は、比較後フラグ設定命令(CP 2命令)を実行した後に、演算対象となる演算対象データの値(減算対象ラムの値)を所定の演算命令(DEC (HL)命令)で演算する。
その上、バイトカウンタ減算処理は、演算対象となる演算対象データ(減算対象ラム)の値が0である場合には何も処理を実行せずに呼び出し元に復帰し、演算対象となる演算対象データの値が0でない場合には比較後フラグ設定命令(CP 2命令)を実行し、その後、演算対象となる演算対象データの値を1減算する処理を実行する。
しかも、バイトカウンタ減算処理は、特別データ(CP 2命令の「2」)の値として、所定の演算命令で演算する演算値(1減算に対応する「1」)と、所定レジスタの値の最終的な目標値(「0」)の直前の値(「1」)とを加算した特殊値(「2」)を設定する。
図28は、バイトカウンタ減算処理のプログラム(比較例)を示す図である。
比較例のバイトカウンタ減算処理は、減算対象ラムの値(RWMの値)が1から0になった場合に、キャリーフラグをセットするためにSCF命令を使用していた。このため全部で9バイトを使用していた。
最初の「LD A,(HL)」は、減算対象ラムの内容をロードする処理である。
次の「OR A」は、データを確認する処理である。
次の「RET Z」は、データが0ならばリターンする処理である。
次の「DEC (HL)」は、減算対象ラムの内容を1減算する処理である。
次の「RET NZ」は、減算結果が0でなければリターンする処理である。
次の「SCF」は、キャリーフラグをセットする処理である。
次の「RET」は、呼び出し元に復帰する処理である。
比較例プログラムでは、キャリーフラグをセットする場合には「SCF命令」を用いるという発想しかなかったため、プログラム容量が増加していたが、本実施形態の第1例及び第2例では「SCF命令」を使用しないという新たな発想を用いてキャリーフラグをセットしている。
第1例及び第2例のプログラムは、「LD A,(HL)」が「1バイト」であり、「RT Z,A」が「1バイト」であり、「CP 2」が「2バイト」であり、「DEC (HL)」が「1バイト」であり、「RET」が「1バイト」であり、合計のプログラム容量が「6バイト」である。
一方、比較例のプログラムは、「LD A,(HL)」が「1バイト」であり、「OR A」が「1バイト」であり、「RET Z」が「1バイト」であり、「DEC (HL)」が「1バイト」であり、「RET NZ」が「1バイト」であり、「SCF」が「2バイト」であり、「RET」が「1バイト」であり、合計のプログラム容量が「8バイト」である。
そして、第1例及び第2例と比較例とを比較した場合、当該モジュールのプログラム容量は「2バイト」削減している。
また、第1例,第2例と比較例とを比較した場合、当該モジュールの処理時間は「減算前のRWMの値が0又は1である場合は約19%削減」となる。
〔特別遊技管理処理〕
次に、割込管理処理(図14)の中で実行される特別遊技管理処理の詳細について説明する。図29は、特別遊技管理処理の構成例を示すフローチャートである。特別遊技管理処理は、実行選択処理(ステップS1000)、特別図柄変動前処理(ステップS2000)、特別図柄変動中処理(ステップS3000)、特別図柄停止表示中処理(ステップS4000)、大当り時可変入賞装置管理処理(ステップS5000)、小当り時可変入賞装置管理処理(ステップS6000)のサブルーチン(プログラムモジュール)群を含む構成である。ここでは先ず、各処理に沿って特別遊技管理処理の基本的な流れを説明する。
ステップS1000:実行選択処理において、主制御CPU72は次に実行するべき処理(ステップS2000〜ステップS5000のいずれか)のジャンプ先を「ジャンプテーブル」から選択する。例えば、主制御CPU72は次に実行するべき処理のプログラムアドレスをジャンプ先のアドレスとし、また、戻り先のアドレスとして特別遊技管理処理の末尾をスタックポインタにセットする。
いずれの処理を次のジャンプ先として選択するかは、これまでに行われた処理の進行状況(特別遊技管理フェーズ)によって異なる。例えば、未だ特別図柄が変動表示を開始していない状況であれば(特別遊技管理フェーズ:00H)、主制御CPU72は次のジャンプ先として特別図柄変動前処理(ステップS2000)を選択する。一方、既に特別図柄変動前処理が完了していれば(特別遊技管理フェーズ:01H)、主制御CPU72は次のジャンプ先として特別図柄変動中処理(ステップS3000)を選択し、特別図柄変動中処理まで完了していれば(特別遊技管理フェーズ:02H)、次のジャンプ先として特別図柄停止表示中処理(ステップS4000)を選択するといった具合である。なお、本実施形態ではジャンプ先のアドレスを「ジャンプテーブル」で指定して処理を選択しているが、このような選択手法とは別に、「プロセスフラグ」や「処理選択フラグ」等を用いてCPUが次に実行するべき処理を選択している公知のプログラミング例もある。このようなプログラミング例では、CPUが一通り各処理をCALLし、その先頭ステップで一々フラグを参照して条件分岐(継続/リターン)することになるが、本実施形態の選択手法では、主制御CPU72が各処理を一々呼び出す手間は不要である。
ステップS2000:特別図柄変動前処理では、主制御CPU72は特別図柄の変動表示を開始するための条件を整える作業を行う。なお、具体的な処理の内容は、別のフローチャートを用いて後述する。
ステップS3000:特別図柄変動中処理では、主制御CPU72は変動タイマをカウントしつつ、第1特別図柄表示装置34又は第2特別図柄表示装置35の駆動制御を行う。具体的には、7セグメントLEDの各セグメント及びドット(0番〜7番)に対してON又はOFFの駆動信号(1バイトデータ)を出力する。駆動信号のパターンは時間の経過に伴って変化し、それによって特別図柄の変動表示が行われる。
ステップS4000:特別図柄停止表示中処理では、主制御CPU72は第1特別図柄表示装置34又は第2特別図柄表示装置35の駆動制御を行う。ここでも同様に、7セグメントLEDの各セグメント及びドットに対してON又はOFFの駆動信号を出力するが、駆動信号のパターンは一定であり、これにより特別図柄の停止表示が行われる。
ステップS5000:大当り時可変入賞装置管理処理は、先の特別図柄停止表示中処理において大当りの態様で特別図柄が停止表示された場合に選択される。特別図柄が大当りの態様で停止表示されると、それまでの通常状態から大当り遊技状態(遊技者にとって有利な特別遊技状態)に移行する契機が発生する。大当り遊技中は、先の実行選択処理(ステップS1000)においてジャンプ先が大当り時可変入賞装置管理処理にセットされ、特別図柄の変動表示は行われない。大当り時可変入賞装置管理処理においては、第1大入賞口ソレノイド90又は第2大入賞口ソレノイド97が一定時間(例えば29秒間若しくは0.1秒間又は10個の遊技球の入球をカウントするまで)、予め設定された連続作動回数(例えば16回等)にわたって励磁され、これにより第1可変入賞装置30及び第2可変入賞装置31が決まったパターンで開閉動作する。この間に第1可変入賞装置30や第2可変入賞装置31に対して遊技球を集中的に入賞させることで、遊技者には、まとまって多くの賞球を獲得する機会が与えられる(特別遊技実行手段)。なお、このように大当り時に第1可変入賞装置30や第2可変入賞装置31が開閉動作することを「ラウンド」と称し、連続作動回数が全部で16回あれば、これらを「16ラウンド」と総称することがある。このように、大当り遊技は複数のラウンド遊技(単位遊技)により構成されており、各大入賞口には、1回のラウンド遊技における遊技球の入賞回数に関する上限数が設定されている。そして、上限数を超えた遊技球の入賞はオーバー入賞となり、遊技球の払い出しも通常通りに実行される。
本実施形態では、1ラウンド目から5ラウンド目まで、及び、7ラウンド目から16ラウンド目までは第1可変入賞装置30を開閉動作させ、6ラウンド目では第2可変入賞装置31を開閉動作させている。
また、主制御CPU72は大当り時可変入賞装置管理処理において大入賞口開放パターン(ラウンド数と1ラウンドごとの開閉動作の回数、開放時間等)を設定すると、1ラウンド分の第1可変入賞装置30又は第2可変入賞装置31の開閉動作を終了させるごとにラウンド数カウンタの値を1インクリメントする。ラウンド数カウンタの値は、例えば初期値を0としてRAM76のカウント領域に記憶されている。また、主制御CPU72は、ラウンド数カウンタの値を表すラウンド数コマンドを生成する。ラウンド数コマンドは、演出制御出力処理において演出制御装置124に送信される。ラウンド数カウンタの値が設定した連続作動回数に達すると、主制御CPU72はそのラウンド限りで大当り遊技(大役)を終了する。
そして、大当り遊技を終了すると、主制御CPU72は遊技状態フラグ(確率変動機能作動フラグ、時間短縮機能作動フラグ)に基づいて大当り遊技終了後の状態(高確率状態、時間短縮状態)を変化させる(高確率時間短縮状態移行手段、有利遊技状態移行手段、特別状態移行手段)。「高確率状態」では確率変動機能が作動し、内部抽選での当選確率が通常よりも例えば10倍程度に高くなる(特定遊技状態移行手段、高確率状態移行手段、高確率状態設定手段)。また、「時間短縮状態」では時間短縮機能が作動し、普通図柄の作動抽選が高確率になり、また、普通図柄の変動時間が短縮されるとともに可変始動入賞装置28の開放時間が延長されて開放回数が増加する(いわゆる電チューサポートが行われる)。なお、「高確率状態」及び「時間短縮状態」については、制御上でいずれか一方だけに移行する場合もあれば、これら両方に合わせて移行する場合もある。
ステップS6000:小当り時可変入賞装置管理処理は、先の特別図柄停止表示中処理において小当りの態様で特別図柄が停止表示された場合に選択される。例えば、特別図柄が小当りの態様で停止表示されると、それまでの通常状態から小当り遊技状態に移行する契機が発生する。小当り遊技中は、先の実行選択処理(ステップS1000)においてジャンプ先が小当り時可変入賞装置管理処理にセットされ、特別図柄の変動表示は行われない。小当り遊技においては、第1可変入賞装置30が所定の開放時間(例えば、0.1秒)で所定回数(例えば2回)だけ開閉動作するものの、第1大入賞口への入賞はほとんど発生しない。
〔複数の当選種類〕
本実施形態では、複数の当選種類として、以下の当選種類が設けられている。
(1)「4ラウンド確変大当り1」
(2)「7ラウンド通常大当り1」
(3)「7ラウンド確変大当り1」
(4)「7ラウンド確変大当り2」
(5)「7ラウンド確変大当り3」
(6)「10ラウンド確変大当り1」
(7)「13ラウンド通常大当り1」
(8)「13ラウンド確変大当り1」
(9)「13ラウンド確変大当り2」
(10)「13ラウンド確変大当り3」
(11)「16ラウンド確変大当り1」
(12)「16ラウンド確変大当り2」
(13)「16ラウンド確変大当り3」
なお、本実施形態において、これら以外の大当りが設けられていてもよい。
当選種類は、当選時に停止表示される第1特別図柄又は第2特別図柄の種類に対応している。例えば、「4ラウンド確変大当り1」は「4ラウンド確変図柄1」の大当りに対応し、「7ラウンド通常大当り1」は「7ラウンド通常図柄1」の大当りに対応し、「7ラウンド確変大当り1」は「7ラウンド確変図柄1」の大当りに対応し、「7ラウンド確変大当り2」は、「7ラウンド確変図柄2」の大当りに対応し、「7ラウンド確変大当り3」は、「7ラウンド確変図柄3」の大当りに対応し、「10ラウンド確変大当り1」は、「10ラウンド確変図柄1」の大当りに対応し、「13ラウンド通常大当り1」は、「13ラウンド通常図柄1」の大当りに対応し、「13ラウンド確変大当り1」は、「13ラウンド確変図柄1」の大当りに対応し、「13ラウンド確変大当り2」は、「13ラウンド確変図柄2」の大当りに対応し、「13ラウンド確変大当り3」は、「13ラウンド確変図柄3」の大当りに対応し、「16ラウンド確変大当り1」は、「16ラウンド確変図柄1」の大当りに対応し、「16ラウンド確変大当り2」は、「16ラウンド確変図柄2」の大当りに対応し、「16ラウンド確変大当り3」は、「16ラウンド確変図柄3」の大当りに対応する。このため以下では、「当選種類」のことを「当選図柄」として適宜呼称するものとする。
〔可変入賞装置の開放動作パターン〕
図30は、可変入賞装置の開放動作パターンを示す図である。以下、各当選図柄に対応する大入賞口の開放パターンについて説明する。
〔4ラウンド確変図柄1〕
特別図柄停止表示中処理において、特別図柄が「4ラウンド確変図柄1」の態様で停止表示されると、それまでの通常状態から大当り遊技状態に移行する契機が発生する(特別遊技実行手段)。この場合、1ラウンド目〜4ラウンド目では、第1可変入賞装置30の第1大入賞口(上大入賞口)がショート開放する(例えば0.06秒開放)。このため、「4ラウンド確変図柄1」の大当り遊技は、遊技者に対してほとんど出玉(賞球)を付与しない遊技となる。
〔7ラウンド通常図柄1〕
特別図柄停止表示中処理において、特別図柄が「7ラウンド通常図柄1」の態様で停止表示されると、それまでの通常状態から大当り遊技状態に移行する契機が発生する(特別遊技実行手段)。この場合、1ラウンド目〜4ラウンド目では、第1可変入賞装置30の第1大入賞口(上大入賞口)がロング開放する(例えば29.00秒開放)。このため、「7ラウンド通常図柄1」の大当り遊技は、7ラウンド分の出玉(賞球)を遊技者に付与する遊技となる。
〔7ラウンド確変図柄1〕
特別図柄停止表示中処理において、特別図柄が「7ラウンド確変図柄1」の態様で停止表示されると、それまでの通常状態から大当り遊技状態に移行する契機が発生する(特別遊技実行手段)。この場合、1ラウンド目〜7ラウンド目では、第1可変入賞装置30の第1大入賞口(上大入賞口)がショート開放する(例えば0.06秒開放)。このため、「7ラウンド確変図柄1」の大当り遊技は、遊技者に対してほとんど出玉(賞球)を付与しない遊技となる。
〔7ラウンド確変図柄2,3〕
特別図柄停止表示中処理において、特別図柄が「7ラウンド確変図柄2,3」の態様で停止表示されると、それまでの通常状態から大当り遊技状態に移行する契機が発生する(特別遊技実行手段)。この場合、1ラウンド目〜7ラウンド目では、第1可変入賞装置30の第1大入賞口(上大入賞口)がロング開放する(例えば29.00秒開放)。このため、「7ラウンド通常図柄2,3」の大当り遊技は、7ラウンド分の出玉(賞球)を遊技者に付与する遊技となる。
〔10ラウンド確変図柄1〕
特別図柄停止表示中処理において、特別図柄が「10ラウンド確変図柄1」の態様で停止表示されると、それまでの通常状態から大当り遊技状態に移行する契機が発生する(特別遊技実行手段)。この場合、1ラウンド目〜10ラウンド目では、第1可変入賞装置30の第1大入賞口(上大入賞口)がロング開放する(例えば29.00秒開放)。このため、「10ラウンド確変図柄1」の大当り遊技は、10ラウンド分の出玉(賞球)を遊技者に付与する遊技となる。
〔13ラウンド通常図柄1、13ラウンド確変図柄1,2〕
特別図柄停止表示中処理において、特別図柄が「13ラウンド通常図柄1」又は「13ラウンド確変図柄1,2」の態様で停止表示されると、それまでの通常状態から大当り遊技状態に移行する契機が発生する(特別遊技実行手段)。この場合、1ラウンド目〜7ラウンド目では、第1可変入賞装置30の第1大入賞口(上大入賞口)がロング開放する(例えば29.00秒開放)。また、8ラウンド目〜13ラウンド目では、第1可変入賞装置30の第1大入賞口(上大入賞口)がショート開放する(例えば0.06秒開放)。このため、「13ラウンド通常図柄1」又は「13ラウンド確変図柄1,2」の大当り遊技は、実質的に7ラウンド分の出玉(賞球)を遊技者に付与する遊技となる。
〔13ラウンド確変図柄3〕
特別図柄停止表示中処理において、特別図柄が「13ラウンド確変図柄3」の態様で停止表示されると、それまでの通常状態から大当り遊技状態に移行する契機が発生する(特別遊技実行手段)。この場合、1ラウンド目〜13ラウンド目では、第1可変入賞装置30の第1大入賞口(上大入賞口)がロング開放する(例えば29.00秒開放)。このため、「13ラウンド確変図柄3」の大当り遊技は、13ラウンド分の出玉(賞球)を遊技者に付与する遊技となる。
〔16ラウンド確変図柄1〕
特別図柄停止表示中処理において、特別図柄が「16ラウンド確変図柄1」の態様で停止表示されると、それまでの通常状態から大当り遊技状態に移行する契機が発生する(特別遊技実行手段)。この場合、1ラウンド目〜16ラウンド目では、第2可変入賞装置31の第2大入賞口(下大入賞口)がロング開放する(例えば29.00秒開放)。このため、「16ラウンド確変図柄1」の大当り遊技は、16ラウンド分の出玉(賞球)を遊技者に付与する遊技となる。
〔16ラウンド確変図柄2,3〕
特別図柄停止表示中処理において、特別図柄が「16ラウンド確変図柄2,3」の態様で停止表示されると、それまでの通常状態から大当り遊技状態に移行する契機が発生する(特別遊技実行手段)。この場合、1ラウンド目〜16ラウンド目では、第1可変入賞装置30の第1大入賞口(上大入賞口)がロング開放する(例えば29.00秒開放)。このため、「16ラウンド確変図柄2,3」の大当り遊技は、16ラウンド分の出玉(賞球)を遊技者に付与する遊技となる。
そして、いずれかの確変図柄に該当した場合、大当り遊技の終了後には「確率変動機能」が作動されて、「高確率状態」に移行する特典が遊技者に付与される。また、いずれかの当選図柄に該当した場合、それまでの遊技で「時間短縮機能」が非作動の状態であったとしても、大当り遊技の終了後に「時間短縮機能」を作動させることで、「時間短縮状態」に移行する特典が遊技者に付与される。
ここで、第1可変入賞装置30の第1大入賞口は、1ラウンド内に規定回数(例えば10回=遊技球10個)の入賞が発生すると、最長の開放時間の経過を待たずに閉鎖される。また、第2可変入賞装置31の第2大入賞口も同様に、1ラウンド内に規定回数(例えば10回=遊技球10個)の入賞が発生すると、最長の開放時間の経過を待たずに閉鎖される。
いずれにしても、当選図柄が「いずれかの確変図柄」に該当すると、大当り遊技終了後に、内部状態が「高確率時間短縮状態」に移行する。一方、当選図柄が「いずれかの通常図柄」に該当すると、大当り遊技終了後に、内部状態が「低確率時間短縮状態」に移行する。
〔可変入賞装置のオープニング時間等〕
図31は、可変入賞装置のオープニング時間、ラウンド間インターバル時間、エンディング時間の設定内容を示す図である。以下、各当選図柄に対応する設定値について説明する。
ここで、オープニング時間とは、大当り遊技の開始時に大入賞口が開放するまでの時間として設定される開始時間のことであり、ラウンド間インターバル時間とは、ラウンドとラウンドとの間に設定される待機時間のことであり、エンディング時間とは大当り遊技の終了時(最終ラウンドが終了した後)に設定される終了時間のことである。ラウンド間インターバル時間は、最終ラウンドが終了した後に設定してもよく設定しなくてもよい。
大当り遊技(特別遊技)は、大当り遊技の開始時に設定されるオープニング時間(開始時間)、複数のラウンド遊技(単位遊技)、及び、大当り遊技の終了時に設定されるエンディング時間(終了時間)により構成されている。
〔13ラウンド通常図柄1、13ラウンド確変図柄1,2〕
当選図柄が「13ラウンド通常図柄1」、「13ラウンド確変図柄1,2」に該当した場合、オープニング時間は10.000秒(ただし、時間短縮状態での当選時は5.000秒)に設定される。ラウンド間インターバル時間は、大入賞口閉鎖有効時間としての1.492秒(又は0.492秒)に、大入賞口閉鎖時間としての0.008秒を加えた時間として設定される。エンディング時間は、4.648秒に設定される。
〔16ラウンド確変図柄1,2〕
当選図柄が「16ラウンド確変図柄1,2」に該当した場合、オープニング時間は3.500秒に設定される。ラウンド間インターバル時間は、大入賞口閉鎖有効時間としての0.292秒に、大入賞口閉鎖時間としての0.008秒を加えた時間として設定される。エンディング時間は、9.000秒に設定される。
〔7ラウンド確変図柄1〕
当選図柄が「7ラウンド確変図柄1」に該当した場合、オープニング時間は8.500秒(ただし、時間短縮状態での当選時は0.500秒)に設定される。ラウンド間インターバル時間は、大入賞口閉鎖有効時間としての0.492秒に、大入賞口閉鎖時間としての0.008秒を加えた時間として設定される。エンディング時間は、3.588秒に設定される。
〔4ラウンド確変図柄1〕
当選図柄が「4ラウンド確変図柄1」に該当した場合、オープニング時間は8.500秒(ただし、時間短縮状態での当選時は0.500秒)に設定される。ラウンド間インターバル時間は、大入賞口閉鎖有効時間としての0.492秒に、大入賞口閉鎖時間としての0.008秒を加えた時間として設定される。エンディング時間は、5.268秒に設定される。
〔7ラウンド通常図柄1〕
当選図柄が「7ラウンド通常図柄1」に該当した場合、オープニング時間は5.000秒に設定される。ラウンド間インターバル時間は、大入賞口閉鎖有効時間としての1.492秒に、大入賞口閉鎖時間としての0.008秒を加えた時間として設定される。エンディング時間は、9.000秒に設定される。
〔16ラウンド確変図柄3、13ラウンド確変図柄3、10ラウンド確変図柄1、7ラウンド確変図柄2、7ラウンド確変図柄3〕
当選図柄が「16ラウンド確変図柄3」、「13ラウンド確変図柄3」、「10ラウンド確変図柄1」、「7ラウンド確変図柄2」又は「7ラウンド確変図柄3」に該当した場合、オープニング時間は3.500秒に設定される。ラウンド間インターバル時間は、大入賞口閉鎖有効時間としての1.492秒に、大入賞口閉鎖時間としての0.008秒を加えた時間として設定される。エンディング時間は、9.000秒に設定される。
このように、本実施形態では、当選図柄によって大入賞口の開放時間やオープニング時間、ラウンド間インターバル時間、エンディング時間等が異なっている。なお、こられの具体的な数値はあくまで例示であり、適宜変更することができる。
〔小当り〕
また、本実施形態では、非当選以外の当選種類として小当りが設けられている。小当りに当選すると、大当り遊技とは別に小当り遊技が行われて第1可変入賞装置30が開閉動作する(特例遊技実行手段)。すなわち、先の特別図柄停止表示中処理において、第1特別図柄が小当りの態様で停止表示されると、通常確率状態又は高確率状態の中で小当り遊技(第1可変入賞装置30が作動する遊技)が実行される。このような小当り遊技では第1可変入賞装置30が所定回数(例えば2回)だけ開閉動作するものの、第1大入賞口への入賞はほとんど発生しない。また、小当り遊技が終了しても、「確率変動機能」が作動することはなく、また、「時間短縮機能」が作動することもないので、「高確率状態」や「時間短縮状態」へ移行する特典は付与されない(そのための前提条件とはならない。)。また、「高確率状態」で小当りに当選しても、その小当り遊技終了後に「高確率状態」が終了することはないし、「時間短縮状態」で小当りに当選しても、その小当り遊技終了後に「時間短縮状態」が終了することもない(上限回数に達した場合を除く。)。なお、本実施形態では、小当りを設定する遊技仕様としているが、小当りを設定しない遊技仕様とすることもできる。
〔特別図柄変動前処理〕
図32は、特別図柄変動前処理の手順例を示すフローチャートである。以下、各手順に沿って説明する。
ステップS2100:先ず主制御CPU72は、第1特別図柄作動記憶数又は第2特別図柄作動記憶数が残存しているか(0より大であるか)否かを確認する。この確認は、RAM76に記憶されている作動記憶数カウンタの値を参照して行うことができる。第1特別図柄及び第2特別図柄の両方の作動記憶数が0であった場合(No)、主制御CPU72はステップS2500のデモ設定処理を実行する。
ステップS2500:この処理では、主制御CPU72はデモ演出用コマンドを生成する。デモ演出用コマンドは、演出制御出力処理において演出制御装置124に出力される。デモ設定処理を実行すると、主制御CPU72は特別遊技管理処理に復帰する。なお、復帰時は、上述したように末尾アドレスに復帰する(以降も同様)。
これに対し、第1特別図柄又は第2特別図柄のいずれかの作動記憶数カウンタの値が0より大きければ(Yes)、主制御CPU72は次にステップS2200を実行する。
ステップS2200:主制御CPU72は、特別図柄記憶エリアシフト処理を実行する。この処理では、主制御CPU72はRAM76の乱数記憶領域に記憶されている抽選用乱数(大当り決定乱数、大当り図柄乱数)のうち、第2特別図柄に対応する方を優先的に読み出す。このとき2つ以上のセクションに乱数が記憶されていれば、主制御CPU72は先頭のセクションから順に乱数を読み出して消去(消費)した後、残った乱数を1つずつ前のセクションに移動(シフト)させる。読み出した乱数は、例えば別の一時記憶領域に保存される。第2特別図柄に対応する乱数が記憶されていない場合、主制御CPU72は第1特別図柄に対応する乱数を読み出して一時記憶領域に保存する。一時記憶領域に保存された各乱数は、次の大当り判定処理で内部抽選に使用される。その結果、本実施形態では第1特別図柄よりも第2特別図柄の変動表示が優先的に行われることになる。なお、このような特別図柄別の優先順位を設けることなく、単純に記憶された順番で乱数が読み出されるプログラムであってもよい。また、この処理において、主制御CPU72はRAM76に記憶されている作動記憶数カウンタ(第1特別図柄又は第2特別図柄のうち、乱数のシフトを行った方)の値を1つ減算し、減算後の値を「変動開始時作動記憶数」に設定する。これにより、ダイナミックポート出力処理(図14中のステップS202)の中で第1特別図柄作動記憶ランプ34a又は第2特別図柄作動記憶ランプ35aによる記憶数の表示態様が変化(1減少)する。ここまでの手順を終えると、主制御CPU72は次にステップS2300を実行する。
ステップS2300:主制御CPU72は、大当り判定処理(内部抽選、所定の抽選)を実行する。この処理では、主制御CPU72は、先ず大当り値の範囲を設定し、この範囲内に読み出した乱数値が含まれるか否かを判断する(抽選実行手段)。このとき設定される大当り値の範囲は、通常確率状態と高確率状態(確率変動機能作動時)とで異なり、高確率状態では通常確率状態よりも大当り値の範囲が約10倍程度に拡大される。そして、このとき読み出した乱数値が大当り値の範囲内に含まれていれば、主制御CPU72は特別図柄当りフラグに大当りに対応する値(01H)をセットし、次にステップS2400に進む。
特別図柄当りフラグに大当りに対応する値をセットしない場合、主制御CPU72は同じ大当り判定処理において、次に小当り値の範囲を設定し、この範囲内に読み出した乱数値が含まれるか否かを判断する(抽選実行手段)。ここでいう「小当り」は、非当選(はずれ)以外であるが、「大当り」とは異なる性質のものである。すなわち、「大当り」は「高確率状態」や「時間短縮状態」に移行させる契機(遊技の節目)を発生させるものであるが、「小当り」はそのような契機を発生しない。ただし「小当り」は、「大当り」と同様に第1可変入賞装置30を作動させる条件を満たすものとして位置付けられている。なお、このとき設定される小当り値の範囲は、通常確率状態と高確率状態(確率変動機能作動時)とで異なっていてもよいし、同じでもよい。いずれにしても、読み出した乱数値が小当り値の範囲内に含まれていれば、主制御CPU72は特別図柄当りフラグに小当りに対応する値(02H)をセットし、次にステップS2400に進む。このように、本実施形態では非当選以外に該当する当り範囲として、大当り値と小当り値の範囲が予めプログラム上で規定されているが、予め状態別の大当り判定テーブル、小当り判定テーブルをそれぞれROM74に書き込んでおき、これを読み出して乱数値と対比しながら大当り判定を行ってもよい。
ステップS2400:主制御CPU72は、先の大当り判定処理で特別図柄当りフラグに大当りに対応する値(01H)がセットされたか否かを判断する。特別図柄当りフラグに大当りに対応する値(01H)がセットされていなければ(No)、主制御CPU72は次にステップS2402を実行する。
ステップS2402:主制御CPU72は、先の大当り判定処理で特別図柄当りフラグに小当りに対応する値(02H)がセットされたか否かを判断する。特別図柄当りフラグに小当りに対応する値(02H)がセットされていなければ(No)、主制御CPU72は次にステップS2404を実行する。なお、主制御CPU72は特別図柄当りフラグという共通当りフラグの値によって大当り又は小当りを判別するのではなく、個別の大当りフラグと小当りフラグとによって大当り又は小当りを判別してもよい。
ステップS2404:主制御CPU72は、はずれ時停止図柄決定処理を実行する。この処理では、主制御CPU72は、第1特別図柄表示装置34又は第2特別図柄表示装置35によるはずれ時の停止図柄番号データをセットする。また、主制御CPU72は、演出制御装置124に送信するための停止図柄コマンド及び抽選結果コマンド(はずれ時)を生成する。これらコマンドは、演出制御出力処理において演出制御装置124に送信される。
なお、本実施形態では、第1特別図柄表示装置34や第2特別図柄表示装置35に7セグメントLEDを用いているため、例えば、はずれ時の停止図柄の表示態様を常に1つのセグメント(中央のバー「−」)の点灯表示だけにしておき、停止図柄番号データを1つの値(例えば64H)に固定することができる。この場合、プログラム上で使用する記憶容量を削減し、主制御CPU72の処理負荷を軽減して処理速度を向上することができる。
ステップS2405:次に主制御CPU72は、はずれ時変動パターン決定処理を実行する。この処理では、主制御CPU72は、特別図柄について、はずれ時の変動パターン番号を決定する(変動パターン選択手段)。変動パターン番号は、特別図柄の変動表示の種類(パターン)を区別したり、変動表示にかかる変動時間に対応したりするものである。はずれ時の変動時間は、「時間短縮状態」であるか否かによって異なってくるため、この処理において主制御CPU72は、遊技状態フラグをロードし、現在の状態が「時間短縮状態」であるか否かを確認する。「時間短縮状態」であれば、基本的にリーチ変動を行う場合を除き、はずれ時の変動時間は短縮された時間(例えば、2.0秒程度)に設定される(短縮時変動時間決定手段)。また、「時間短縮状態」でなくとも、リーチ変動を行う場合を除き、はずれ時の変動時間は例えばステップS2200で設定した「変動表示開始時作動記憶数(0個〜3個)」に基づいて短縮される場合がある(例えば、変動表示開始時作動記憶数0個→12.5秒程度、変動表示開始時作動記憶数1個→8秒程度、変動表示開始時作動記憶数2個→5秒程度、変動表示開始時作動記憶数3個→2.5秒程度)。なお、はずれ時の図柄の停止表示時間は変動パターンに関わらず一定(例えば0.5秒程度)である。主制御CPU72は、決定した変動時間(はずれ時)の値を変動タイマにセットするとともに、はずれ時の停止表示時間の値を停止図柄表示タイマにセットする。
本実施形態では、内部抽選の結果、非当選に該当した場合、演出上で例えば「リーチ演出」を発生させてはずれとしたり、「リーチ演出」を発生させずにはずれとしたりする制御を行うこととしている。そして、「はずれ時変動パターン選択テーブル」には、予め複数種類の演出、例えば「非リーチ演出」、「リーチ演出」に対応した変動パターンが規定されており、非当選に該当した場合は、その中からいずれかの変動パターンが選択されることになる。なお、リーチ演出には、ノーマルリーチ演出、ロングリーチ演出、スーパーリーチ演出等といった様々なリーチ演出が含まれる。
〔はずれ時変動パターン選択テーブルの例〕
図33は、はずれ時変動パターン選択テーブル(低確率非時間短縮状態)の一例を示す図である。
この選択テーブルは、低確率非時間短縮状態でのはずれ時(非当選に該当した場合)に参照されるテーブルである(変動パターン規定手段)。また、この選択テーブルは、例えばその先頭アドレスから順番に「比較値」、「変動パターン番号」をそれぞれ1バイトずつセットにして記憶する構造である。「比較値」には、段階的に異なる値「101」,「201」,「211」,「221」,「231」,「241」,「251」,「255(FFH)」が設けられており、それぞれの「比較値」に対して「変動パターン番号」の「1」〜「8」が割り当てられている。
変動パターン番号「1」〜「5」は、リーチ演出が行われずに、はずれとなる変動パターンに対応しており、変動パターン番号「6」,「7」は、リーチ後にはずれとなる変動パターンに対応しており、変動パターン番号「8」は、スーパーリーチ後にはずれとなる変動パターン(例えば、リーチよりも変動時間が長い変動時間を有する変動パターン)に対応している。なお、変動パターン選択テーブルは、変動開始時作動記憶数に応じて異なるテーブル内容としてもよい(以下、同様)。
ここで、非リーチ変動パターンとリーチ変動パターンでは、設定される変動時間の長さが大きく異なっている。すなわち、「非リーチ変動パターン」は基本的に短い変動時間(例えば作動記憶数に応じて3〜12秒程度)に対応するものであるのに対し、「リーチ変動パターン」はそれよりも長い変動時間(例えば15〜180秒程度)に対応するものである。
そして、主制御CPU72は、取得した変動パターン決定乱数値を、変動パターン選択テーブル中の「比較値」と順番に比較していき、乱数値が比較値以下であれば、その比較値に対応する変動パターン番号を選択する(変動パターン決定手段)。例えば、そのときの変動パターン決定乱数値が「190」であった場合、最初の比較値「101」と比較すると、乱数値が比較値を超えているため、主制御CPU72は次の比較値「201」と乱数値を比較する。この場合、乱数値が比較値以下であるため、主制御CPU72は対応する変動パターン番号として「2」を選択する。
図34は、はずれ時変動パターン選択テーブル(低確率時間短縮状態)の一例を示す図である。
この選択テーブルは、低確率時間短縮状態でのはずれ時(非当選に該当した場合)に使用するテーブルである(変動パターン規定手段)。また、この選択テーブルは、例えばその先頭アドレスから順番に「比較値」、「変動パターン番号」をそれぞれ1バイトずつセットにして記憶する構造である。「比較値」には、例えば8つの段階的に異なる値「101」,「201」,「211」,「221」,「231」,「241」,「251」,「255(FFH)」が設けられており、それぞれの「比較値」に対して「変動パターン番号」の「21」〜「28」が割り当てられている。
変動パターン番号「21」〜「25」は、リーチ演出が行われずに、はずれとなる変動パターンに対応しており、変動パターン番号「26」〜「28」は、リーチ後にはずれとなる変動パターンに対応している。ただし、変動パターン番号「21」〜「25」は、時間短縮変動での非リーチ変動となるため、通常状態の変動時間として短縮した変動時間(例えば、2.0秒程度)が設定されている。
主制御CPU72は、取得した変動パターン決定乱数値を、上記の変動パターン選択テーブル中の「比較値」と順番に比較していき、乱数値が比較値以下であれば、その比較値に対応する変動パターン番号を選択する(変動パターン決定手段)。例えば、そのときの変動パターン決定乱数値が「190」であったとすると、最初の比較値「101」と比較すると、乱数値が比較値を超えているため、主制御CPU72は次の比較値「201」と乱数値を比較する。この場合、乱数値が比較値以下であるため、主制御CPU72は対応する変動パターン番号として「22」を選択する。
図35は、はずれ時変動パターン選択テーブル(高確率時間短縮状態)の一例を示す図である。
この選択テーブルは、高確率時間短縮状態でのはずれ時(非当選に該当した場合)に使用するテーブルである(変動パターン規定手段)。また、この選択テーブルは、例えばその先頭アドレスから順番に「比較値」、「変動パターン番号」をそれぞれ1バイトずつセットにして記憶する構造である。「比較値」には、例えば8つの段階的に異なる値「101」,「201」,「211」,「221」,「231」,「241」,「251」,「255(FFH)」が設けられており、それぞれの「比較値」に対して「変動パターン番号」の「41」〜「48」が割り当てられている。
変動パターン番号「41」〜「45」は、リーチ演出が行われずに、はずれとなる変動パターンに対応しており、変動パターン番号「46」〜「48」は、リーチ後にはずれとなる変動パターンに対応している。
主制御CPU72は、取得した変動パターン決定乱数値を、上記の変動パターン選択テーブル中の「比較値」と順番に比較していき、乱数値が比較値以下であれば、その比較値に対応する変動パターン番号を選択する(変動パターン決定手段)。例えば、そのときの変動パターン決定乱数値が「190」であったとすると、最初の比較値「101」と比較すると、乱数値が比較値を超えているため、主制御CPU72は次の比較値「201」と乱数値を比較する。この場合、乱数値が比較値以下であるため、主制御CPU72は対応する変動パターン番号として「42」を選択する。
〔図32:特別図柄変動前処理を参照〕
以上のステップS2404,ステップS2405は、大当り判定結果がはずれ時(非当選以外の場合)の制御手順であるが、判定結果が大当り(ステップS2400:Yes)又は小当り(ステップS2402:Yes)の場合、主制御CPU72は以下の手順を実行する。先ず、大当りの場合について説明する。
ステップS2410:主制御CPU72は、大当り時停止図柄決定処理を実行する(当選種類決定手段)。この処理では、主制御CPU72は大当り図柄乱数に基づき、特別図柄別(第1特別図柄又は第2特別図柄)に今回の当選図柄の種類(大当り時停止図柄番号)を決定する。大当り図柄乱数値と当選図柄の種類との関係は、予め特別図柄判定データテーブルで規定されている(当選種類規定手段)。このため主制御CPU72は、大当り時停止図柄決定処理において大当り時停止図柄選択テーブルを参照し、その記憶内容から大当り図柄乱数に基づいて当選図柄の種類を決定することができる。
〔大当り時の当選図柄〕
本実施形態では大当り時に選択的に決定される当選図柄として、大きく分けて13種類の当選図柄が用意されている。13種類の内訳は、以下の通りである。
(1)「4ラウンド確変図柄1」
(2)「7ラウンド通常図柄1」
(3)「7ラウンド確変図柄1」
(4)「7ラウンド確変図柄2」
(5)「7ラウンド確変図柄3」
(6)「10ラウンド確変図柄1」
(7)「13ラウンド通常図柄1」
(8)「13ラウンド確変図柄1」
(9)「13ラウンド確変図柄2」
(10)「13ラウンド確変図柄3」
(11)「16ラウンド確変図柄1」
(12)「16ラウンド確変図柄2」
(13)「16ラウンド確変図柄3」
なお、各当選図柄は、さらに複数の当選図柄を含んでいてもよい。例えば「4ラウンド確変図柄1」であれば、「4ラウンド確変図柄1a」、「4ラウンド確変図柄1b」、「4ラウンド確変図柄1c」、・・・といった具合である。
また、本実施形態では、第1特別図柄と第2特別図柄とでは、それぞれに対応する内部抽選の大当り時に選択される当選図柄の選択比率が異なっている。このため主制御CPU72は、今回の大当りの結果が第1特別図柄に対応するものであるか、第2特別図柄に対応するものであるかによって選択する当選図柄を区別している。
〔第1特別図柄大当り時停止図柄選択テーブル〕
図36は、第1特別図柄大当り時停止図柄選択テーブルの構成例を示す図である。主制御CPU72は、今回の大当りの結果が第1特別図柄に対応する場合、この第1特別図柄大当り時停止図柄選択テーブル(当選種類規定手段)を参照して当選図柄の種類を決定する。
第1特別図柄大当り時停止図柄選択テーブル中、左カラムには当選図柄別の振分値が示されており、各振分値「35」,「3」,「22」,「24」,「4」,「12」は分母を100とした場合の割合に相当する。また、左から2番目のカラムには、各振分値に対応する「13ラウンド通常図柄1」、「16ラウンド確変図柄1」、「13ラウンド確変図柄1」、「13ラウンド確変図柄2」、「7ラウンド確変図柄1」、「4ラウンド確変図柄1」が示されている。すなわち、第1特別図柄に対応する大当り時には、「13ラウンド通常図柄1」が選択される割合は100分の35(=35%)であり、「16ラウンド確変図柄1」が選択される割合は100分の3(=3%)であり、「13ラウンド確変図柄1」が選択される割合は100分の22(=22%)である。また、「13ラウンド確変図柄2」が選択される割合は100分の24(=24%)であり、「7ラウンド確変図柄1」が選択される割合は100分の4(=4%)であり、「4ラウンド確変図柄1」が選択される割合は100分の12(=12%)である。各振分値の大きさは、大当り図柄乱数を用いた当選図柄別の選択比率に相当する。
いずれにしても、今回の大当りの結果が第1特別図柄に対応する場合、主制御CPU72は大当り図柄乱数に基づいて選択抽選を行い、第1特別図柄大当り時停止図柄選択テーブルに示される選択比率で当選図柄を選択的に決定する。また、第1特別図柄大当り時停止図柄選択テーブルには、左から3番目のカラムに示されるように当選時の停止図柄コマンドとして例えば2バイトのコマンドデータが規定されている。停止図柄コマンドは、例えばMODE値−EVENT値の組み合わせで記述されており、このうち上位バイトのMODE値「B1H」は、今回の当選図柄が第1特別図柄の大当り時に選択されたものであることを表している。また、下位バイトのEVENT値「01H」〜「06H」は、それぞれ選択テーブル中で対応する当選図柄の種類を表している。このため例えば、今回の大当りの結果が第1特別図柄に対応するものであり、当選図柄として「13ラウンド通常図柄1」が選択された場合、当選時の停止図柄コマンドは「B1H01H」で記述されることになる。
以上のように、主制御CPU72は第1特別図柄大当り時停止図柄選択テーブルから当選図柄を選択すると、そのときの停止図柄コマンドを生成する。生成した停止図柄コマンドは、例えば演出制御出力処理において演出制御装置124に送信される。また、主制御CPU72は、選択した当選図柄に基づいて第1特別図柄についての大当り時停止図柄番号を決定する。
〔確変回数〕
第1特別図柄大当り時停止図柄選択テーブルの右から2番目のカラムには、大当り遊技の終了後に付与される確変回数(高確率状態の限度回数)の値が示されている。
「13ラウンド通常図柄1」に該当した場合、確変回数は付与されない(0回が付与される)。
一方、「16ラウンド確変図柄1」、「13ラウンド確変図柄1,2」、「7ラウンド確変図柄1」又は「4ラウンド確変図柄1」に該当した場合、確変回数は10000回付与される。
〔時短回数〕
第1特別図柄大当り時停止図柄選択テーブルの右カラムには、大当り遊技の終了後に付与される時短回数(時間短縮状態の限度回数)の値が示されている。
「13ラウンド通常図柄1」に該当した場合、特別図柄の当選確率が「低確率」又は「高確率」であっても、非時間短縮状態(非時短)又は時間短縮状態(時短)であっても、時短回数は100回付与される。
一方、「16ラウンド確変図柄1」、「13ラウンド確変図柄1」、「13ラウンド確変図柄2」、「7ラウンド確変図柄1」又は「4ラウンド確変図柄1」に該当した場合、特別図柄の当選確率が「低確率」又は「高確率」であっても、非時間短縮状態(非時短)又は時間短縮状態(時短)であっても、時短回数は10000回付与される。
なお、本実施形態では、特別図柄の当選確率が「高確率」であり、かつ、非時間短縮状態(非時短)という状態は存在しないが、このような状態を採用してもよい。
〔第2特別図柄大当り時停止図柄選択テーブル〕
図37は、第2特別図柄大当り時停止図柄選択テーブルの構成例を示す図である。主制御CPU72は、今回の大当りの結果が第2特別図柄に対応する場合、この第2特別図柄大当り時停止図柄選択テーブル(当選種類規定手段)を参照して当選図柄の種類を決定する。
第2特別図柄大当り時停止図柄選択テーブルにおいても、その左カラムには当選図柄別の振分値が示されており、各振分値「35」,「45」,「5」,「3」,「3」,「8」,「1」は分母を100とした場合の割合に相当する。同様に左から2番目のカラムには、振分値に対応する「7ラウンド通常図柄1」、「16ラウンド確変図柄2」、「16ラウンド確変図柄3」、「13ラウンド確変図柄3」、「10ラウンド確変図柄1」、「7ラウンド確変図柄2」、「7ラウンド確変図柄3」が示されている。すなわち、第2特別図柄に対応する大当り時においては、「7ラウンド通常図柄1」が選択される割合は100分の35(=35%)であり、「16ラウンド確変図柄2」が選択される割合は100分の45(=45%)であり、「16ラウンド確変図柄3」が選択される割合は100分の5(=5%)である。また、「13ラウンド確変図柄3」が選択される割合は100分の3(=3%)であり、「10ラウンド確変図柄1」が選択される割合は100分の3(=3%)であり、「7ラウンド確変図柄2」が選択される割合は100分の8(=8%)であり、「7ラウンド確変図柄3」が選択される割合は100分の1(=1%)である。
今回の大当りの結果が第2特別図柄に対応する場合、主制御CPU72は大当り図柄乱数に基づいて選択抽選を行い、第2特別図柄大当り時停止図柄選択テーブルに示される選択比率で当選図柄を選択的に決定する。同様に第2特別図柄大当り時停止図柄選択テーブルにも、その左から3番目のカラムに示されるように当選時の停止図柄コマンドとして例えば2バイトのコマンドデータが規定されている。ここでも停止図柄コマンドは、MODE値−EVENT値の組み合わせで記述されており、このうち上位バイトのMODE値「B2H」は、今回の当選図柄が第2特別図柄の大当り時に選択されたものであることを表している。また、下位バイトのEVENT値「01H」〜「07H」は、それぞれ選択テーブル中で対応する当選図柄の種類を表している。このため例えば、今回の大当りの結果が第2特別図柄に対応するものであり、当選図柄として「7ラウンド通常図柄1」が選択された場合、停止図柄コマンドは「B2H01H」で記述されることになる。
以上のように、主制御CPU72は第2特別図柄大当り時停止図柄選択テーブルから当選図柄を選択すると、そのときの停止図柄コマンドを生成する。生成した停止図柄コマンドは、例えば演出制御出力処理において演出制御装置124に送信される。また、主制御CPU72は、選択した当選図柄に基づいて第2特別図柄についての大当り時停止図柄番号を決定する。
〔確変回数〕
第2特別図柄大当り時停止図柄選択テーブルの右から2番目のカラムには、大当り遊技の終了後に付与される確変回数の値が示されている。
「7ラウンド通常図柄1」に該当した場合、確変回数は付与されない(0回が付与される)。
一方、「16ラウンド確変図柄2」、「16ラウンド確変図柄3」、「13ラウンド確変図柄3」、「10ラウンド確変図柄1」、「7ラウンド確変図柄2」又は「7ラウンド確変図柄3」に該当した場合、確変回数は10000回付与される。
〔時短回数〕
第2特別図柄大当り時停止図柄選択テーブルの右カラムには、大当り遊技の終了後に付与される時短回数の値が示されている。
「7ラウンド通常図柄1」に該当した場合、特別図柄の当選確率が「低確率」又は「高確率」であっても、非時間短縮状態(非時短)又は時間短縮状態(時短)であっても、時短回数は100回付与される。
一方、「16ラウンド確変図柄2」、「16ラウンド確変図柄3」、「13ラウンド確変図柄3」、「10ラウンド確変図柄1」、「7ラウンド確変図柄2」又は「7ラウンド確変図柄3」に該当した場合、特別図柄の当選確率が「低確率」又は「高確率」であっても、非時間短縮状態(非時短)又は時間短縮状態(時短)であっても、時短回数は10000回付与される。
〔図32:特別図柄変動前処理を参照〕
ステップS2412:次に主制御CPU72は、大当り時変動パターン決定処理を実行する。この処理では、主制御CPU72は先のステップS2200でシフトした変動パターン決定乱数に基づいて第1特別図柄又は第2特別図柄の変動パターン(変動時間と停止表示時間)を決定する。また、主制御CPU72は、決定した変動時間の値を変動タイマにセットするとともに、停止表示時間の値を停止図柄表示タイマにセットする。一般的に大当りリーチ変動の場合、はずれ時よりも長い変動時間が決定される。
本実施形態では、内部抽選の結果、大当りに該当した場合、演出上で例えば「リーチ演出」を発生させて大当りとする制御を行っている。そして、「大当り時変動パターン選択テーブル」には、複数種類の「リーチ演出」に対応した変動パターンが規定されており、大当りに該当した場合は、その中からいずれかの変動パターンが選択されることになる。
ここで、リーチ演出には、ノーマルリーチ演出、ロングリーチ演出、スーパーリーチ演出等といった様々なリーチ演出が含まれる。また、時間短縮機能が作動している状態での当選時には、長い変動時間を有する変動パターンを選択せずに、短い変動時間を有する変動パターン(リーチ演出を行わない変動パターン)を選択してもよい。
〔大当り時変動パターン選択テーブルの例〕
図38は、大当り時変動パターン選択テーブル(低確率非時間短縮状態)の一例を示す図である。
この選択テーブルは、低確率非時間短縮状態で大当りに当選した場合に参照されるテーブルである(変動パターン規定手段)。また、この選択テーブルは、例えばその先頭アドレスから順番に「比較値」、「変動パターン番号」をそれぞれ1バイトずつセットにして記憶する構造である。「比較値」には、段階的に異なる値「101」,「201」,「211」,「221」,「231」,「241」,「251」,「255(FFH)」が設けられており、それぞれの「比較値」に対して「変動パターン番号」の「61」〜「68」が割り当てられている。
変動パターン番号「61」〜「65」は、スーパーリーチ演出が行われて当りとなる変動パターンに対応しており、変動パターン番号「66」〜「68」は、リーチ演出(スーパーリーチ演出以外のリーチ演出)が行われて当りとなる変動パターンに対応している。
主制御CPU72は、取得した変動パターン決定乱数値を、変動パターン選択テーブル中の「比較値」と順番に比較していき、乱数値が比較値以下であれば、その比較値に対応する変動パターン番号を選択する(変動パターン決定手段)。例えば、そのときの変動パターン決定乱数値が「190」であった場合、最初の比較値「101」と比較すると、乱数値が比較値を超えているため、主制御CPU72は次の比較値「201」と乱数値を比較する。この場合、乱数値が比較値以下であるため、主制御CPU72は対応する変動パターン番号として「62」を選択する。
図39は、大当り時変動パターン選択テーブル(低確率時間短縮状態)の一例を示す図である。
この選択テーブルは、低確率時間短縮状態での当選時に使用するテーブルである(変動パターン規定手段)。また、この選択テーブルは、例えばその先頭アドレスから順番に「比較値」、「変動パターン番号」をそれぞれ1バイトずつセットにして記憶する構造である。「比較値」には、例えば8つの段階的に異なる値「101」,「201」,「211」,「221」,「231」,「241」,「251」,「255(FFH)」が設けられており、それぞれの「比較値」に対して「変動パターン番号」の「81」〜「88」が割り当てられている。
変動パターン番号「81」〜「88」は、いずれもリーチ演出が行われて当りとなる変動パターンに対応している。
主制御CPU72は、取得した変動パターン決定乱数値を、上記の変動パターン選択テーブル中の「比較値」と順番に比較していき、乱数値が比較値以下であれば、その比較値に対応する変動パターン番号を選択する(変動パターン決定手段)。例えば、そのときの変動パターン決定乱数値が「190」であったとすると、最初の比較値「101」と比較すると、乱数値が比較値を超えているため、主制御CPU72は次の比較値「201」と乱数値を比較する。この場合、乱数値が比較値以下であるため、主制御CPU72は対応する変動パターン番号として「82」を選択する。
図40は、大当り時変動パターン選択テーブル(高確率時間短縮状態)の一例を示す図である。
この選択テーブルは、高確率時間短縮状態での当選時に使用するテーブルである(変動パターン規定手段)。また、この選択テーブルは、例えばその先頭アドレスから順番に「比較値」、「変動パターン番号」をそれぞれ1バイトずつセットにして記憶する構造である。「比較値」には、例えば8つの段階的に異なる値「101」,「201」,「211」,「221」,「231」,「241」,「251」,「255(FFH)」が設けられており、それぞれの「比較値」に対して「変動パターン番号」の「101」〜「108」が割り当てられている。
変動パターン番号「101」〜「108」は、いずれもリーチ演出が行われて当りとなる変動パターンに対応している。
主制御CPU72は、取得した変動パターン決定乱数値を、上記の変動パターン選択テーブル中の「比較値」と順番に比較していき、乱数値が比較値以下であれば、その比較値に対応する変動パターン番号を選択する(変動パターン決定手段)。例えば、そのときの変動パターン決定乱数値が「190」であったとすると、最初の比較値「101」と比較すると、乱数値が比較値を超えているため、主制御CPU72は次の比較値「201」と乱数値を比較する。この場合、乱数値が比較値以下であるため、主制御CPU72は対応する変動パターン番号として「102」を選択する。
〔図32:特別図柄変動前処理を参照〕
ステップS2414:次に主制御CPU72は、大当り時その他設定処理を実行する。この処理では、主制御CPU72は、先のステップS2410で決定した当選図柄の種類(大当り時停止図柄番号)がいずれの当選図柄であっても、遊技状態フラグとして時間短縮機能作動フラグの値(01H)をRAM76のフラグ領域にセットする(時間短縮状態移行手段、時間短縮機能作動手段、有利遊技状態移行手段、特別状態移行手段)。また、主制御CPU72は、先のステップS2410で決定した当選図柄の種類(大当り時停止図柄番号)がいずれかの確変図柄である場合、遊技状態フラグとして確率変動機能作動フラグの値(01H)をRAM76のフラグ領域にセットする処理を実行する(高確率状態移行手段、確率変動機能作動手段、有利遊技状態移行手段、特別状態移行手段)。
また、ステップS2414の処理において、主制御CPU72は大当り時停止図柄番号に基づいて第1特別図柄表示装置34又は第2特別図柄表示装置35による停止図柄(大当り図柄)の表示態様を決定する。合わせて主制御CPU72は、停止図柄コマンド(大当り時)とともに抽選結果コマンド(大当り時)を生成する。これら停止図柄コマンド及び抽選結果コマンドもまた、演出制御出力処理において演出制御装置124に送信される。
次に、小当り時の処理について説明する。
ステップS2407:主制御CPU72は、小当り時停止図柄決定処理を実行する。この処理では、主制御CPU72は大当り図柄乱数に基づき、小当り時の当選図柄の種類(小当り時停止図柄番号)を決定する。ここでも同様に、大当り図柄乱数値と小当り時の当選図柄の種類との関係が予め小当り時特別図柄選択テーブルで規定されている(当選種類規定手段)。なお、本実施形態では、主制御CPU72の負荷を軽減するために大当り図柄乱数を用いて小当り時の当選図柄を決定しているが、別途専用の乱数を用いてもよい。
〔小当り時の当選図柄〕
本実施形態では、小当り時の当選図柄は「1回開放小当り図柄」の1種類だけである。ただし、これ以外に例えば「2回開放小当り図柄」や「3回開放小当り図柄」等の別の種類が用意されていてもよい。内部抽選の結果としての「小当り」は、その後の状態が「高確率状態」や「時間短縮状態」に変化する契機とはならないため、この種のパチンコ機で必須となる「2ラウンド(2回開放)以上」の規定にとらわれることなく、「1回開放小当り図柄」を設けることができる。
ステップS2408:次に主制御CPU72は、小当り時変動パターン決定処理を実行する。この処理では、主制御CPU72は先のステップS2200でシフトした変動パターン決定乱数に基づいて第1特別図柄又は第2特別図柄の変動パターン(変動時間と停止表示時間)を決定する(変動パターン選択手段)。また、主制御CPU72は、決定した変動時間の値を変動タイマにセットし、停止表示時間の値を停止図柄表示タイマにセットする。なお、本実施形態では小当りの場合にリーチ変動パターンを選択することもできるし、はずれ通常変動時と同等の変動パターンを選択することもできる。
ステップS2409:次に主制御CPU72は、小当り時その他設定処理を実行する。この処理では、主制御CPU72は小当り時停止図柄番号に基づき、第1特別図柄表示装置34又は第2特別図柄表示装置35による停止図柄(小当り図柄)の表示態様を決定する。合わせて主制御CPU72は、演出制御装置124に送信する停止図柄コマンド及び抽選結果コマンド(小当り時)を生成する。これら停止図柄コマンド及び抽選結果コマンドもまた、演出制御出力処理において演出制御装置124に送信される。
ステップS2415:次に主制御CPU72は、特別図柄変動開始処理を実行する。この処理では、主制御CPU72は変動パターン番号(はずれ時/当り時)に基づいて変動パターンデータを選択する。合わせて主制御CPU72は、RAM76のフラグ領域に特別図柄の変動開始フラグをセットする。そして、主制御CPU72は、演出制御装置124に送信する変動開始コマンドを生成する。この変動開始コマンドもまた、演出制御出力処理において演出制御装置124に送信される。以上の手順を終えると、主制御CPU72は特別図柄変動中処理(ステップS3000)を次のジャンプ先に設定し、特別遊技管理処理に復帰する。
〔図29:特別図柄変動中処理,特別図柄停止表示中処理〕
特別図柄変動中処理では、主制御CPU72は変動タイマの値をレジスタからタイマカウンタにロードし、その後、時間の経過(クロックパルスのカウント数又は割込カウンタの値)に応じてタイマカウンタの値をデクリメントする。そして、主制御CPU72は、タイマカウンタの値を参照しつつ、その値が0になるまで特別図柄の変動表示を制御する。そして、タイマカウンタの値が0になると、主制御CPU72は特別図柄停止表示中処理(ステップS4000)を次のジャンプ先に設定する。
また、特別図柄停止表示中処理では、主制御CPU72は停止図柄決定処理(図32中のステップS2404,ステップS2407,ステップS2410)で決定した停止図柄に基づいて特別図柄の停止表示を制御する。また、主制御CPU72は、演出制御装置124に送信する図柄停止コマンドを生成する。図柄停止コマンドは、演出制御出力処理において演出制御装置124に送信される。特別図柄停止表示中処理の中で停止図柄を所定時間にわたり表示させると、主制御CPU72は図柄変動中フラグを消去する。
〔特別図柄記憶エリアシフト処理〕
図41は、特別図柄記憶エリアシフト処理の手順例を示すフローチャートである。先の特別図柄変動前処理において、第1特別図柄又は第2特別図柄に対応する作動記憶カウンタの値が「0」より大であった場合(図32中のステップS2100:Yes)、主制御CPU72はこの特別図柄記憶エリアシフト処理を実行する。以下、各手順に沿って説明する。
ステップS2210:主制御CPU72は、現在ある作動記憶の中で最も古いものが第1特別図柄に対応するものであるか否かを確認する。すなわち、RAM76の記憶エリアにアクセスし、その中で最も古い作動記憶が第1特別図柄に対応するものでなく、第2特別図柄に対応するものであれば(No)、主制御CPU72は次にステップS2212に進む。
ステップS2212:主制御CPU72は、記憶エリアをシフトする対象の特別図柄として第2特別図柄を指定する。この指定は、例えば対象図柄指定値として「02H」をセットすることで行われる。
ステップS2214:一方、最も古い作動記憶が第1特別図柄に対応するものであった場合(ステップS2210:Yes)、主制御CPU72は記憶エリアをシフトする対象の特別図柄として第1特別図柄を指定する。この場合の指定は、例えば対象図柄指定値として「01H」をセットすることで行われる。
ステップS2216:ステップS2212又はステップS2214のいずれかで指定した対象の特別図柄について、主制御CPU72はRAM76の乱数記憶領域をシフトする。なお、具体的な処理の内容については、先の特別図柄変動前処理において既に述べたとおりである。
ステップS2218:次いで主制御CPU72は、対象の特別図柄について作動記憶カウンタの値を減算する。例えば、今回の記憶エリアをシフトする対象が第2特別図柄であれば、主制御CPU72は第2特別図柄に対応する作動記憶カウンタの値を減算(−1)する。
ステップS2220:そして、主制御CPU72は、減算後の作動記憶カウンタの値から「変動開始時作動記憶数」を設定する。なお、ここでは第1特別図柄と第2特別図柄の両方について、作動記憶カウンタの値を加算した上で「変動開始時作動記憶数」を設定してもよい。
ステップS2222:また、主制御CPU72は、今回の記憶エリアをシフトする対象の特別図柄が第2特別図柄であるか否かを確認する。
ステップS2224:対象が第2特別図柄であった場合(ステップS2222:Yes)、主制御CPU72は第2特別図柄に関して作動記憶数減少時演出コマンドをセットする。ここでセットされる演出コマンドもまた、1ワード長のコマンドとして生成されるが、その構成は上述した「作動記憶数増加時演出コマンド」と対照的である。すなわち、作動記憶数減少時演出コマンドは、コマンド種別を表す上位バイトの先行値(例えば「BCH」)に対して、減少後の作動記憶数を表す下位バイトの値(例えば「00H」〜「03H」)を付加するとともに、下位バイトの値については、「消費に伴う作動記憶数の減少」を意味する加算値(例えば「10H」)をさらに付加(論理和)したものである。したがって下位バイトについては、加算値「10H」を論理和することでその第2の位が「1」となり、この値によって「作動記憶数の減少による結果(変化情報)」であることを表したものとなる。つまり、コマンドの下位バイトが「13H」であれば、それは前回までの作動記憶数「4」(コマンド表記は「14H」)が1つ減少した結果、今回の作動記憶数が「3」(コマンド表記は「13H」)となったことを表している。同様に、下位バイトが「12H」〜「10H」であれば、それは前回までの作動記憶数「3」〜「1」(コマンド表記は「13H」〜「11H」)がそれぞれ1つ減少した結果、今回の作動記憶数が「2」〜「0」(コマンド表記は「12H」〜「10H」)となったことを表している。なお、先行値「BCH」は、今回の演出コマンドが第2特別図柄についての作動記憶数コマンドであることを表す値である。
ステップS2226:なお、今回の対象が第1特別図柄であった場合(ステップS2222:No)、主制御CPU72は第1特別図柄に関して作動記憶数減少時演出コマンドをセットする。この場合のコマンドは、先行値が第1特別図柄についての作動記憶数コマンドであることを表す値(例えば「BBH」)となる以外は上記と同じである。
ステップS2228:そして、主制御CPU72は、演出コマンド出力処理を実行する。この処理は、先のステップS2224又はステップS2226でセットした作動記憶数減少時演出コマンドを演出制御装置124に対して送信するためのものである(記憶数通知手段)。
以上の手順を終えると、主制御CPU72は特別図柄変動前処理(図32)に復帰する。
〔特別図柄停止表示中処理〕
次に図42及び図43は、特別図柄停止表示中処理の手順例を示すフローチャートである。以下、各手順に沿って説明する。
ステップS4100:主制御CPU72は、停止表示表示時間が終了したか否かを確認する処理を実行する。具体的には、減算後の停止図柄表示タイマの値が0以下でなければ、主制御CPU72は未だ停止表示時間が終了していないと判断する(No)。この場合、主制御CPU72は特別遊技管理処理に復帰し、次の割込周期においても実行選択処理(図29中のステップS1000)からジャンプして特別図柄停止表示中処理を繰り返し実行する。
これに対し、停止図柄表示タイマの値が0以下であれば、主制御CPU72は停止表示時間が終了したと判断する(Yes)。この場合、主制御CPU72は次にステップS4102を実行する。この場合、主制御CPU72は、図柄停止コマンド及び停止表示時間終了コマンドを生成する。図柄停止コマンド及び停止表示時間終了コマンドは、演出制御出力処理において演出制御装置124に送信される。また、主制御CPU72は、ここで図柄変動中フラグを消去する。なお、「停止表示時間終了コマンド」とは、特別図柄の停止表示時間が終了(経過)したことを示すコマンドである。停止図柄表示タイマの減算処理は、この特別図柄停止表示中処理で実行してもよいし、タイマ更新処理で実行してもよい。
ステップS4102:主制御CPU72は、大当り開始時ラムセットテーブルのアドレスをセットする処理を実行する。これにより、特別図柄当りフラグを参照することができる状態となる。
ステップS4104:主制御CPU72は、特別図柄当りフラグをロードする処理を実行する。
ステップS4106:主制御CPU72は、特別図柄当りフラグに、大当りに対応する値(01H)がセットされているか否かを確認する。特別図柄当りフラグに、大当りに対応する値がセットされている場合(Yes)、主制御CPU72は次にステップS4118を実行する(接続記号A→A)。一方、特別図柄当りフラグに、大当りに対応する値がセットされていない場合(No)、主制御CPU72は次にステップS4108を実行する。
ステップS4108:主制御CPU72は、回数切り管理処理を実行する。この処理において、主制御CPU72は、以下の処理を実行する。
主制御CPU72は、回数切りカウンタ値をロードし、ロードしたカウンタ値が0であるか否かを確認する。このとき、既に回数切りカウンタ値が0であれば何も処理を実行せずにリターンする。一方、回数切りカウンタ値が0でなかった場合、回数切りカウンタ値コマンドを生成してから、回数切りカウンタ値をデクリメント(1減算)する。そして、主制御CPU72は、減算結果が0であった場合、主制御CPU72は、回数切り機能作動時のフラグをリセットする。本実施形態では、「いずれかの確変図柄」に該当して「高確率時間短縮状態」に移行させる場合、高確率状態及び時間短縮状態に関する回数切りカウンタは所定の数値(例えば10000回)に設定されるため、リセットされるのは、確率変動機能作動フラグ及び時間短縮機能作動フラグである。また、「低確率時間短縮状態」に移行される場合、時間短縮状態に関する回数切りカウンタは所定の数値(例えば100回)に設定されるため、リセットされるのは、時間短縮機能作動フラグだけである。これにより、特別図柄の停止表示を経て時間短縮状態や高確率状態が終了する。
ステップS4110:主制御CPU72は、小当り開始時ラムセットテーブルのアドレスをセットする処理を実行する。これにより、特別図柄当りフラグを参照することができる状態となる。
ステップS4112:主制御CPU72は、特別図柄当りフラグをロードする処理を実行する。
ステップS4114:主制御CPU72は、特別図柄当りフラグに、小当りに対応する値(02H)がセットされているか否かを確認する。特別図柄当りフラグに、小当りに対応する値がセットされている場合(Yes)、主制御CPU72は次にステップS4118を実行する(接続記号A→A)。一方、小当りに対応する値がセットされていない場合(No)、主制御CPU72は次にステップS4116を実行する。
ステップS4116:主制御CPU72は、ジャンプテーブルのジャンプ先アドレスとして特別図柄変動前処理のアドレスをセットする。ステップS4116の処理を終えると、主制御CPU72は、特別遊技管理処理に復帰する。
ステップS4118:主制御CPU72は、ラムセット処理を実行する。ラムセット処理においては、大当り時や小当り時の特別図柄の停止時に更新が必要な各種RAMの値が一度に更新される処理が実行される。
例えば、大当り時の処理は、以下の通りである。
主制御CPU72は、ジャンプテーブルのジャンプ先を「大当り時可変入賞装置管理処理」に設定する。なお、主制御CPU72は、本処理にて各種機能を非作動に設定する処理を実行する。具体的には、確率変動機能を非作動とし、時間短縮機能を非作動とする。これにより、特別遊技(大役)が開始される前には、低確率非時間短縮状態に移行されることになる。また、主制御CPU72は、制御上の内部状態フラグとして「大役開始(大当り遊技中)」をセットする。また、主制御CPU72は、大当り図柄の種類に応じて連続作動回数ステータスの値をセットする。例えば、大当り図柄の種類が「4ラウンド確変図柄1」である場合、連続作動回数ステータスには「4ラウンド」に対応する値をセットする。大当り図柄の種類が「7ラウンド通常図柄1」、「7ラウンド確変図柄1〜3」である場合、連続作動回数ステータスには「7ラウンド」に対応する値をセットする。大当り図柄の種類が「10ラウンド確変図柄1」である場合、連続作動回数ステータスには「10ラウンド」に対応する値をセットする。大当り図柄の種類が「13ラウンド通常図柄1」、「13ラウンド確変図柄1〜3」である場合、連続作動回数ステータスには「13ラウンド」に対応する値をセットする。大当り図柄の種類が「16ラウンド確変図柄1〜3」である場合、連続作動回数ステータスには「16ラウンド」に対応する値をセットする。そして、主制御CPU72は、大当り中を表す状態コマンドを生成する。大当り中を表す状態コマンドは、演出制御出力処理において演出制御装置124に送信される。
さらに、主制御CPU72は、連続作動回数コマンドを生成する。連続作動回数コマンドは、先の大当り時停止図柄決定処理(図32中のステップS2410)で決定された大当り図柄の種類(停止図柄番号)に基づいて生成することができる。例えば、大当り図柄の種類が「4ラウンド確変図柄1」である場合、連続作動回数コマンドは「4ラウンド」を表す値として生成される。大当り図柄の種類が「7ラウンド通常図柄1」、「7ラウンド確変図柄1〜3」である場合、連続作動回数コマンドは「7ラウンド」を表す値として生成される。大当り図柄の種類が「10ラウンド確変図柄1」である場合、連続作動回数コマンドは「10ラウンド」を表す値として生成される。大当り図柄の種類が「13ラウンド通常図柄1」、「13ラウンド確変図柄1〜3」である場合、連続作動回数コマンドは「13ラウンド」を表す値として生成される。大当り図柄の種類が「16ラウンド確変図柄1〜3」である場合、連続作動回数コマンドは「16ラウンド」を表す値として生成される。生成された連続作動回数コマンドは、演出制御出力処理において演出制御装置124に送信される。
また、小当り時の処理は、以下の通りである。
主制御CPU72はジャンプテーブルのジャンプ先アドレスとして小当り時可変入賞装置管理処理のアドレスをセットする。そして、主制御CPU72は、制御上の内部状態フラグとして「小当り開始(小当り中)」をセットする。また、主制御CPU72は、小当り中を表す状態コマンドを生成する。小当り中を表す状態コマンドは、演出制御出力処理において演出制御装置124に送信される。
ステップS4120:主制御CPU72は、図柄オフセット取得処理を実行する。この処理を実行することにより、当選図柄に対応した図柄オフセットの値を取得することができる。
図柄オフセットの値は、以下の通りである。
第1特別図柄の「13ラウンド大当り(13ラウンド通常図柄1、13ラウンド確変図柄1,2)」に該当した場合の図柄オフセットは「0」である。
第1特別図柄の「16ラウンド大当り(16ラウンド確変図柄1)」に該当した場合の図柄オフセットは「1」である。
第1特別図柄の「7ラウンド大当り(7ラウンド確変図柄1)」に該当した場合の図柄オフセットは「2」である。
第1特別図柄の「4ラウンド大当り(4ラウンド確変図柄1)」に該当した場合の図柄オフセットは「3」である。
第2特別図柄の「7ラウンド大当り(7ラウンド通常図柄1)」に該当した場合の図柄オフセットは「4」である。
第2特別図柄の「16ラウンド大当り(16ラウンド確変図柄2,3)」に該当した場合の図柄オフセットは「5」である。
第2特別図柄の「13ラウンド大当り(13ラウンド確変図柄3)」に該当した場合の図柄オフセットは「6」である。
第2特別図柄の「10ラウンド大当り(10ラウンド確変図柄1)」に該当した場合の図柄オフセットは「7」である。
第2特別図柄の「7ラウンド大当り(7ラウンド確変図柄1,2)」に該当した場合の図柄オフセットは「8」である。
第1特別図柄抽選で「小当り」に該当した場合の図柄オフセットは「9」である。
ステップS4120:主制御CPU72は、図柄オフセットの値を退避する処理を実行する。
ステップS4124:主制御CPU72は、特別電動役物最大作動回数データテーブルのアドレスをセットする処理を実行する。この処理を実行することにより、バイトデータ選択処理に対する引数を設定することができる。
ステップS4126:主制御CPU72は、バイトデータ選択処理を実行する。この処理を実行することにより、「図柄オフセットの値」を「特別電動役物最大作動回数」に変換することができる。
ステップS4128:主制御CPU72は、バイトデータ選択処理で取得した特別電動役物最大作動回数の値を、特別電動役物最大作動回数カウンタにセーブする処理を実行する。
ここで、「特別電動役物最大作動回数カウンタ」については、大当り中の制御処理において使用することができるが、例えば、大当り中の「大入賞口閉鎖有効処理(大当り中にアタッカが閉じた後の一定時間の処理)」で使用することができる。この場合、現在の「特別電動役物連続作動回数カウンタ(現在何ラウンド目かを現す数値)」と「特別電動役物最大作動回数カウンタ」の値を比較し、その比較結果に応じて、次のラウンドに進むか、大当りを終了するかの分岐を行う。例えば、「特別電動役物最大作動回数カウンタ」の値が「13」である場合、「特別電動役物連続作動回数カウンタ」が「13未満(1〜12)」であれば、「大当り大入賞口開放前状態(大当り時大入賞口開閉動作処理)」に移行し、次のラウンドに移行する。一方、「特別電動役物連続作動回数カウンタ」の値が「13」であれば、「大当り大入賞口終了ウエイト状態(大当り時終了処理)」に移行し、大当り終了となる。
ステップS4130:主制御CPU72は、図柄オフセットの値を復帰する処理を実行する。
ステップS4132:主制御CPU72は、特別電動役物指定データテーブルのアドレスをセットする処理を実行する。この処理を実行することにより、バイトデータ選択処理に対する引数を設定することができる。
ステップS4134:主制御CPU72は、バイトデータ選択処理を実行する。この処理を実行することにより、「図柄オフセットの値」を「特別電動役物指定データ」に変換することができる。
ステップS4136:主制御CPU72は、バイトデータ選択処理で取得した特別電動役物指定データの値を、特別電動役物指定フラグにセーブする処理を実行する。
ここで、「特別電動役物指定フラグ」については、カウントスイッチ通過処理(遊技球がアタッカに入賞したときの処理)等で使用することができる。
例えば、「特別電動役物指定フラグ」を「カウントスイッチビットデータ」に変換し、「現在作動中のアタッカ」と「遊技球が入賞したアタッカ」が同一のものであるか確認し、同一でないと判断した場合、不正入賞としてカウントする。また、「特別電動役物指定フラグ」を「アタッカ入賞時のサブコマンド(第1大入賞口入賞指定コマンドデータ又は第2大入賞口入賞指定コマンドデータ)」に変換するために使用することもできる。
その他、「特別電動役物指定フラグ」は以下の処理で使用することもできる。
(1)大入賞口開放制御処理(大当り時大入賞口開閉動作処理)
この処理では、「特別電動役物指定フラグ」を参照して、大入賞口の規定入賞数を取得する。
(2)発射位置指定管理処理
この処理では、「特別電動役物指定フラグ」を参照して、右打ち指示を行うべきか判定する。
(3)試験信号管理処理
この処理では、「特別電動役物指定フラグ」を参照して、特別電動役物に係る試験信号の出力内容を取得する。
(4)大入賞口閉鎖有効時間選択処理(大入賞口閉鎖処理)
この処理では、「特別電動役物指定フラグ」を参照して、大入賞口閉鎖時の入賞有効時間(大入賞口が閉じた直後の不正入賞とならない期間)を取得する。
ステップS4138:主制御CPU72は、オープニング時間設定処理を実行する。この処理を実行することにより、当選図柄に応じたオープニング時間を設定することができる。
ステップS4140:主制御CPU72は、機種コマンド設定処理を実行する。この処理を実行することにより、遊技機のスペックに応じた機種コマンドを設定することができる。
ステップS4142:主制御CPU72は、オープニング指定コマンド生成処理を実行する。
ステップS4144:主制御CPU72は、サブコマンドセット処理を実行する。この処理により、機種コマンドやオープニング指定コマンド等が演出制御装置124に対して送信される。
以上の処理を終えると、主制御CPU72は特別遊技管理処理に復帰する。
〔バイトデータ選択処理〕
図44は、バイトデータ選択処理の手順例を示すフローチャートである。
ステップS4200:主制御CPU72は、選択アドレス(例えば、特別電動役物最大作動回数データテーブルや特別電動役物指定データテーブル等の先頭アドレス)に、選択オフセット(例えば図柄オフセット)を加算する処理を実行する。これにより、選択結果アドレスが算出される。
ステップS4202:主制御CPU72は、選択結果アドレスで示す選択結果データをロードする処理を実行する。具体的には、主制御CPU72は、選択結果アドレスが示しているアドレスのデータをロードする処理を実行する。
以上の処理を終えると、主制御CPU72は呼び出し元に復帰する。
図45は、特別図柄停止表示中処理のプログラムの一部を示す図である。なお、特別図柄停止表示中処理のプログラムは、説明に必要な部分だけを抜き出して表示している。
最初の「CALLF ZUGOFFS」は、図柄オフセット取得処理を呼び出す処理である。
次の「LD B,A」は、図柄オフセット取得処理で取得した図柄オフセットの値を退避する処理であり、Aレジスタの値をBレジスタにロードする。
次の「LD HL,D_ROU_MAX」は、特別電動役物最大作動回数データテーブルの先頭アドレスをセットする処理であり、特別電動役物最大作動回数データテーブルの先頭アドレスをHLレジスタにロードする。
次の「RST BYTESEL」は、バイトデータ選択処理を呼び出す処理であり、リスタート領域に配置されているバイトデータ選択処理を呼び出す。
次の「LDQ (LOW R_ROU_MAX),A」は、特別電動役物最大作動回数カウンタにセーブする処理であり、Aレジスタの値を特別電動役物最大作動回数カウンタに対応するRAMにロードする。
次の「LD A,B」は、図柄オフセットの値を復帰させる処理であり、Aレジスタの値をBレジスタにロードする。
次の「LD HL,D_TDN_FLG」は、特別電動役物指定データテーブルの先頭アドレスをセットする処理であり、特別電動役物指定データテーブルの先頭アドレスをHLレジスタにロードする。
次の「RST BYTESEL」は、バイトデータ選択処理を呼び出す処理であり、リスタート領域にっ配置されているバイトデータ選択処理を呼び出す。
次の「LDQ (LOW R_TDN_FLG),A」は、特別電動役物指定フラグにセーブする処理であり、Aレジスタの値を特別電動役物指定フラグに対応するRAMに保存する。
〔プログラムの解説〕
ここでは、特別図柄停止表示中処理におけるバイトデータ選択処理の使用方法について説明する。この処理では、二箇所でバイトデータ選択処理を呼び出している。ここでのバイトデータ選択処理の使用目的は、図柄オフセットの値(大当りの種類を表す数値)を、「特別電動役物最大作動回数(大当りのラウンド数)」及び「特別電動役物指定フラグ(いずれのアタッカが作動するかを示す値)」に変換することである。
バイトデータ選択処理を呼び出す前に、バイトデータ選択処理の引数として、HLレジスタにデータテーブルの先頭アドレスを設定し、Aレジスタに図柄オフセットの値を設定する必要がある。この例においては、Aレジスタに値を設定する代わりに、図45中(1)で「図柄オフセット取得処理」を呼び出している。図柄オフセット取得処理の詳細は省略するが、例えば「第1特別図柄1の13ラウンドの大当りであればAレジスタ=0」、「第1特別図柄の16ラウンドの大当りであればAレジスタ=1」、「第1特別図柄の7ラウンドの大当りであればAレジスタ=2」といったように、大当りの種類に応じた図柄オフセットの値がAレジスタに設定される。
HLレジスタにテーブルの先頭アドレスを設定するのは図45中(2)の部分である。ここで使用するテーブルは、特別電動役物最大作動回数データテーブルである。
図46は、特別電動役物最大作動回数データテーブルを示す図である。
特別電動役物最大作動回数データテーブルは、1バイトのデータ(DBで定義される)が並んだものである。
最初の「D_ROU_MAX:」は、特別電動役物最大作動回数データテーブルの先頭アドレスを示すラベルであり、一番上の「DB @BHT_ROU_13」とアドレスは一致している。
先頭の「DB @BHT_ROU_13」は、13R特別電動役物最大作動回数データであり、第1特別図柄抽選で「13ラウンド大当り(13ラウンド通常図柄1、13ラウンド確変図柄1,2)」に該当した場合に用いられるデータである。例えば、「@BHT_ROU_13(13R特別電動役物最大作動回数データ)」には、「13」の値が格納される。
次の「DB @BHT_ROU_16」は、16R特別電動役物最大作動回数データであり、第1特別図柄抽選で「16ラウンド大当り(16ラウンド確変図柄1)」に該当した場合に用いられるデータである。例えば、「DB @BHT_ROU_16(16R特別電動役物最大作動回数データ)」には、「16」の値が格納される。
次の「DB @BHT_ROU_7」は、7R特別電動役物最大作動回数データであり、第1特別図柄抽選で「7ラウンド大当り(7ラウンド確変図柄1)」に該当した場合に用いられるデータである。例えば、「DB @BHT_ROU_7(7R特別電動役物最大作動回数データ)」には、「7」の値が格納される。
次の「DB @BHT_ROU_4」は、4R特別電動役物最大作動回数データであり、第1特別図柄抽選で「4ラウンド大当り(4ラウンド確変図柄1)」に該当した場合に用いられるデータである。例えば、「DB @BHT_ROU_4(4R特別電動役物最大作動回数データ)」には、「4」の値が格納される。
次の「DB @BHT_ROU_7」は、7R特別電動役物最大作動回数データであり、第2特別図柄抽選で「7ラウンド大当り(7ラウンド通常図柄1)」に該当した場合に用いられるデータである。例えば、「DB @BHT_ROU_7(7R特別電動役物最大作動回数データ)」には、「7」の値が格納される。
次の「DB @BHT_ROU_16」は、16R特別電動役物最大作動回数データであり、第2特別図柄抽選で「16ラウンド大当り(16ラウンド確変図柄2,3)」に該当した場合に用いられるデータである。例えば、「DB @BHT_ROU_16(16R特別電動役物最大作動回数データ)」には、「16」の値が格納される。
次の「DB @BHT_ROU_13」は、13R特別電動役物最大作動回数データであり、第2特別図柄抽選で「13ラウンド大当り(13ラウンド確変図柄3)」に該当した場合に用いられるデータである。例えば、「@BHT_ROU_13(13R特別電動役物最大作動回数データ)」には、「13」の値が格納される。
次の「DB @BHT_ROU_10」は、10R特別電動役物最大作動回数データであり、第2特別図柄抽選で「10ラウンド大当り(10ラウンド確変図柄1)」に該当した場合に用いられるデータである。例えば、「@BHT_ROU_10(10R特別電動役物最大作動回数データ)」には、「10」の値が格納される。
次の「DB @BHT_ROU_7」は、7R特別電動役物最大作動回数データであり、第2特別図柄抽選で「7ラウンド大当り(7ラウンド確変図柄2,3)」に該当した場合に用いられるデータである。例えば、「DB @BHT_ROU_7(7R特別電動役物最大作動回数データ)」には、「7」の値が格納される。
次の「DB @SHT_ROU_MAX」は、小当り特別電動役物最大作動回数データであり、第1特別図柄抽選で「小当り」に該当した場合に用いられるデータである。例えば、「DB @SHT_ROU_MAX(小当り特別電動役物最大作動回数データ)」には、「2」の値が格納される。
そして、このような特別電動役物最大作動回数データテーブルの先頭アドレスをバイトデータ選択処理の引数として設定することより、バイトデータ選択処理を呼び出す準備ができるので(引数の設定が完了するので)、図45中(3)でバイトデータ選択処理を呼び出す。
バイトデータ選択処理では、戻り値として、Aレジスタに目的の「特別電動役物最大作動回数(大当りのラウンド数)」が設定されるので、それを図45中(4)でRAM(RWM)に保存する。
続いて、図45中(7)でバイトデータ選択処理を呼び出すための準備を行う。
引数に関しては、前回同様、図柄オフセットの値(大当りの種類)を設定する必要がある。この場合、もう一度、「図柄オフセット取得処理」を呼び出してもよいが、ここでは使用しないBレジスタに図柄オフセットの値を保存しておき、それを図45中(5)で取り出して使用している。
また、図45中(6)で特別電動役物指定データテーブルの先頭アドレスを設定する。
図47は、特別電動役物指定データテーブルを示す図である。
特別電動役物指定データテーブルは、1バイトのデータ(DBで定義される)が並んだものである。
最初の「D_TDN_FLG:」は、特別電動役物指定データテーブルの先頭アドレスを示すラベルであり、一番上の「DB @TDK_AT1」とアドレスは一致している。
先頭の「DB @TDK_AT1」は、上特別電動役物指定データであり、「13ラウンド大当り(13ラウンド通常図柄1、13ラウンド確変図柄1,2)」に該当した場合に用いられるデータである。例えば、「DB @TDK_AT1(上特別電動役物指定データ)」には、上大入賞口を示す「0」の値が格納される。
次の「DB @TDK_AT2」は、下特別電動役物指定データであり、第1特別図柄抽選で「16ラウンド大当り(16ラウンド確変図柄1)」に該当した場合に用いられるデータである。例えば、「DB @TDK_AT2(下特別電動役物指定データ)」には、下大入賞口を示す「1」の値が格納される。
次の「DB @TDK_AT1」は、上特別電動役物指定データであり、第1特別図柄抽選で「7ラウンド大当り(7ラウンド確変図柄1)」に該当した場合に用いられるデータである。例えば、「DB @TDK_AT1(上特別電動役物指定データ)」には、上大入賞口を示す「0」の値が格納される。
次の「DB @TDK_AT1」は、上特別電動役物指定データであり、4R特別電動役物最大作動回数データであり、第1特別図柄抽選で「4ラウンド大当り(4ラウンド確変図柄1)」に該当した場合に用いられるデータである。例えば、「DB @TDK_AT1(上特別電動役物指定データ)」には、上大入賞口を示す「0」の値が格納される。
次の「DB @TDK_AT1」は、上特別電動役物指定データであり、第2特別図柄抽選で「7ラウンド大当り(7ラウンド通常図柄1)」に該当した場合に用いられるデータである。例えば、「DB @TDK_AT1(上特別電動役物指定データ)」には、上大入賞口を示す「0」の値が格納される。
次の「DB @TDK_AT1」は、上特別電動役物指定データであり、第2特別図柄抽選で「16ラウンド大当り(16ラウンド確変図柄2,3)」に該当した場合に用いられるデータである。例えば、「DB @TDK_AT1(上特別電動役物指定データ)」には、上大入賞口を示す「0」の値が格納される。
次の「DB @TDK_AT1」は、上特別電動役物指定データであり、第2特別図柄抽選で「13ラウンド大当り(13ラウンド確変図柄3)」に該当した場合に用いられるデータである。例えば、「DB @TDK_AT1(上特別電動役物指定データ)」には、上大入賞口を示す「0」の値が格納される。
次の「DB @TDK_AT1」は、上特別電動役物指定データであり、第2特別図柄抽選で「10ラウンド大当り(10ラウンド確変図柄1)」に該当した場合に用いられるデータである。例えば、「DB @TDK_AT1(上特別電動役物指定データ)」には、上大入賞口を示す「0」の値が格納される。
次の「DB @TDK_AT1」は、上特別電動役物指定データであり、第2特別図柄抽選で「7ラウンド大当り(7ラウンド確変図柄2,3)」に該当した場合に用いられるデータである。例えば、「DB @TDK_AT1(上特別電動役物指定データ)」には、上大入賞口を示す「0」の値が格納される。
次の「DB @TDK_AT1」は、上特別電動役物指定データであり、第1特別図柄抽選で「小当り」に該当した場合に用いられるデータである。例えば、「DB @TDK_AT1(上特別電動役物指定データ)」には、上大入賞口を示す「0」の値が格納される。
そして、図45中(7)でバイトデータ選択処理を呼び出す。
バイトデータ選択処理からの戻り値として、Aレジスタには「特別電動役物指定フラグ」に対応する値が設定されるので、それを図45中(8)でRAM(RWM)に保存する。
以上が、バイトデータ選択処理の呼び出し元の一例である。
図48は、バイトデータ選択処理のプログラム(第1例)を示す図である。
入力レジスタ(引数)は、呼び出し元で設定されるものであり、Aレジスタに選択オフセット(例えば、図柄オフセット)が設定され、HLレジスタに選択アドレス(例えば、特別電動役物最大作動回数データテーブルの先頭アドレス、特別電動役物指定データテーブルの先頭アドレス等)が設定される。
出力レジスタ(戻り値)は、本モジュールで設定されて呼び出し元で参照されるものであり、Aレジスタに選択結果データ(特別電動役物最大作動回数カウンタの値、特別電動役物指定フラグの値)が設定され、HLレジスタに選択結果アドレス(特別電動役物最大作動回数データテーブルの先頭アドレスに図柄オフセットを加算した値、特別電動役物指定データテーブルの先頭アドレスに図柄オフセットを加算した値)が設定される。
保護レジスタ(本モジュールで値が変化しないレジスタ)は、BCレジスタ、DEレジスタとなっている。
最初の「ADDWB HL,A」は、選択アドレスに選択オフセットを加算する処理であり、HLレジスタの下位バイトとAレジスタのバイトを加算する。
次の「LD A,(HL)」は、選択結果アドレスで示す選択結果データをロードする処理であり、HLレジスタが示しているアドレスに格納されているデータをAレジスタにロードする。
次の「RET」は、呼び出し元に復帰する処理である。
〔プログラムの解説〕
バイトデータ選択処理は、遊技機で多用されるものであり、データテーブルの先頭アドレス(HLレジスタの値)と図柄オフセットの値(Aレジスタの値)をセットした状態で呼び出され、テーブル内の特定のデータ(1バイト)の値をAレジスタに上書きする。
本実施形態においては、8ビットレジスタ2つをペアにしたペアレジスタ(HL)と、別の8ビットレジスタ1つ(Aレジスタ)の加算を行う命令(ADDWB HL,A)を利用し、データテーブル内のデータに対するアクセスを容易に行えるようにしている。
バイトデータ選択処理は、リスタート領域に配置してRST命令で呼び出すようにしてもよく、リスタート領域以外の領域に配置してCALL命令で呼び出すようにしてもよい。
図49は、バイトデータ選択処理のプログラム(第2例)を示す図である。
第1例と第2例との相違点は、以下の点である。
(1)出力レジスタにFレジスタが加わり、Fレジスタには選択結果フラグ(ゼロフラグ)の値が格納される。
(2)「LD命令」と「RET命令」との間に「OR命令」が加えられている。
「OR A」は、選択結果データを確認し選択結果フラグの値をセットする処理である。「OR A」命令によって、特定のデータが0であるか否かを調べることができる。この結果は、フラグレジスタ内のゼロフラグに反映する。そして、ゼロフラグの値は、呼び出し元で分岐する場合に使用することができる。
なお、第1例は、バイトデータ選択処理の呼び出し元で、選択結果データが0であるか否かによる分岐を行わない場合に有効である。第1例は、「OR A」命令が不要であるため、第2例と比較して、プログラム容量を削減することができる。
〔バイトデータ選択処理のまとめ〕
このように、バイトデータ選択処理(データ取得モジュール)は、所定ビット数(8ビット)の第1レジスタ(Aレジスタ)のデータと所定ビット数とは異なる規定ビット数(16ビット)の第2レジスタ(HLレジスタ)のデータとを1回の命令で加算する加算命令(ADDWB命令)を用いて加算値を算出し、算出した加算値に基づいて所定のデータ(特別電動役物最大作動回数データ、特別電動役物指定データ)が格納されているデータテーブル(特別電動役物最大作動回数データテーブル、特別電動役物指定データテーブル)から所定のデータ(8ビットのバイトデータ)を取得するモジュールである。主制御装置70は、バイトデータ選択処理(データ取得モジュール)を備えている。
また、バイトデータ選択処理は、引数として、Aレジスタ(第1レジスタ)に図柄オフセットの値が格納され、かつ、HLレジスタ(第2レジスタ)にデータテーブルの先頭アドレスが格納された状態で呼び出される。
さらに、バイトデータ選択処理は、戻り値として、Aレジスタに選択結果データ(所定のデータ)を設定し、HLレジスタにデータテーブルの選択結果アドレス(所定のデータが格納されている領域のアドレス)を設定する。
Aレジスタ(第1レジスタ)は、8ビット分のデータを記憶することができる記憶回路を1つ用いた単独レジスタである。HLレジスタ(第2レジスタ)は、8ビット分のデータを記憶することができる記憶回路を2つ用いたペアレジスタである。
ADDWB命令(加算命令)は、Aレジスタ(第1レジスタ)の全8ビットとHLレジスタ(第2レジスタ)の下位8ビットとを加算する命令である。
そして、バイトデータ選択処理は、基本的には、引数として受け取った所定の分類に属するデータを、所定の分類とは異なる他の分類に属するデータに変換する。
より具体的には、バイトデータ選択処理は、引数として受け取った当選の種類を示すデータ(当選図柄に関するデータ)を、電動役物の作動回数に関するデータ(特別電動役物最大作動回数データ)、又は、作動する電動役物を指定するデータ(上又は下特別電動役物指定データ)の少なくとも一方に変換する。
図50は、バイトデータ選択処理のプログラム(比較例)を示す図である。
比較例のバイトデータ選択処理は、空き領域を作らないことを優先したコードである。
最初の「ADD A,L」は、選択オフセットと選択アドレスの下位バイトを加算する処理である。
次の「LD L,A」は、選択結果アドレスの下位バイトに演算結果値をセットする処理である。
次の「JR NC,BYTESEL_10」は、桁上がりがなければ、「BYTESEL_10(ラベル)」まで分岐する処理である。
次の「INC H」は、選択アドレスの上位バイトを1加算する処理である。
次の「BYTESEL_10:」は、分岐先のラベルである。
次の「LD A,(HL)」は、選択結果アドレスで示す選択結果データをロードする処理である。
次の「OR A」は、選択結果データを確認し選択結果フラグ値をセットする処理である。
次の「RET」は、呼び出し元に復帰する処理である。
比較例プログラムでは、レジスタ同士の加算処理を実行する場合、桁を揃えなければならないという発想しかなかったため、プログラム容量が増加していたが、本実施形態の第1例及び第2例では桁を揃えずに加算処理を実行するADDWB命令を使用するという新たな発想を用いて桁を揃えずに加算処理を実行している。
第1例のプログラムは、「ADDWB HL,A」が「1バイト」であり、「LD A,(HL)」が「1バイト」であり、「RET」が「1バイト」であり、合計のプログラム容量が「3バイト」である。
第2例のプログラムは、「ADDWB HL,A」が「1バイト」であり、「LD A,(HL)」が「1バイト」であり、「OR A」が「1バイト」であり、「RET」が「1バイト」であり、合計のプログラム容量が「4バイト」である。
一方、比較例のプログラムは、「ADD A,L」が「1バイト」であり、「LD L,A」が「1バイト」であり、「JR NC,BYTESEL_10」が「2バイト」であり、「INC H」が「1バイト」であり、「LD A,(HL)」が「1バイト」であり、「OR A」が「1バイト」であり、「RET」が「1バイト」であり、合計のプログラム容量が「8バイト」である。
そして、第1例,第2例と比較例とを比較した場合、当該モジュールのプログラム容量は「第1例においては5バイト、第2例においては4バイト」削減している。
また、第1例,第2例と比較例とを比較した場合、当該モジュールの処理時間を32.4〜37.5%削減することができる。
これによって、遊技機の動作を従来よりも安定させることができる。
〔オープニング時間設定処理〕
図51は、オープニング時間設定処理の手順例を示すフローチャートである。
ステップS4210:主制御CPU72は、オープニング時間データ1テーブルのアドレスをセットする処理を実行する。この処理を実行することにより、ワードデータ選択処理に対する引数を設定することができる(通常時)。
ステップS4212:主制御CPU72は、時間選択フラグをロードする処理を実行する。時間選択フラグは、RAM76に記憶されており、主制御CPU72は、時間短縮状態である場合に「1」を設定し、非時間短縮状態である場合に「0」を設定する。
ステップS4214:主制御CPU72は、時間選択フラグが「0」か否かを確認する。時間選択フラグが「0」である場合(Yes)、主制御CPU72は次にステップS4218を実行する。一方、時間選択フラグが「0」でない場合、すなわち、時間選択フラグが「1」である場合(No)、主制御CPU72は次にステップS4216を実行する。
ステップS4216:主制御CPU72は、オープニング時間データ2テーブルのアドレスをセットする処理を実行する。この処理を実行することにより、ワードデータ選択処理に対する引数を設定することができる(時短時)。
ステップS4218:主制御CPU72は、図柄オフセット取得処理を実行する。この処理を実行することにより、当選図柄に対応した図柄オフセットの値を取得することができる。処理の内容は、先に説明した内容と同様である。
ステップS4220:主制御CPU72は、ワードデータ選択処理を実行する。この処理を実行することにより、「図柄オフセットの値」を「オープニング時間」に変換することができる。
ステップS4222:主制御CPU72は、ワードデータ選択処理で取得したオープニング時間の値を、特別遊技タイマ(大当り時開始時間タイマ)にセーブする処理を実行する。セーブした特別遊技タイマは、オープニング時間として、時間の経過とともにカウントダウンされ、オープニング時間を管理する変数として使用される。
〔ワードデータ選択処理〕
図52は、ワードデータ選択処理の手順例を示すフローチャートである。
ステップS4230:主制御CPU72は、選択アドレス(例えば、オープニング時間データ1テーブルやオープニング時間データ2テーブル等の先頭アドレス)に、選択オフセット(例えば図柄オフセット)を2回加算する処理を実行する。これにより、選択結果アドレスが算出される。
ステップS4232:主制御CPU72は、選択結果アドレスで示す選択結果データをロードする処理を実行する。具体的には、主制御CPU72は、選択結果アドレスが示しているアドレスのデータをロードする処理を実行する。
ステップS4234:主制御CPU72は、選択結果データの下位バイト値をAレジスタにセットする処理を実行する。
以上の処理を終えると、主制御CPU72は呼び出し元に復帰する。
図53は、オープニング時間設定処理のプログラムを示す図である。
最初の「LD HL,D_STA_TMR1」は、オープニング時間データ1テーブルのアドレスをセットする処理であり、オープニング時間データ1テーブルの先頭アドレスをHLレジスタにロードする。
次の「LDQ A,(LOW R_TMR_FLG)」は、時間選択フラグをロードする処理であり、時間選択フラグの値をAレジスタにロードする。
次の「JR TZ,TSTATMR_10」は、時間選択フラグが0であれば、「TSTATMR_10:(ラベル)」まで分岐する処理である。
次の「LD HL,D_STA_TMR2」は、オープニング時間データ2テーブルのアドレスをセットする処理であり、オープニング時間データ2テーブルの先頭アドレスをHLレジスタにロードする。
次の「CALLF ZUGOFFS」は、図柄オフセット取得処理を呼び出す処理である。
次の「RST WORDSEL」は、ワードデータ選択処理を呼び出す処理であり、リスタート領域に配置されているワードデータ選択処理を呼び出す。
次の「LDQ (LOW R_TOK_TMR),HL」は、特別遊技タイマにセーブする処理であり、HLレジスタの値を特別遊技タイマにロードする処理である。
次の「RET」は、呼び出し元に復帰する処理である。
〔プログラムの解説〕
ここでは、オープニング時間設定処理におけるワードデータ選択処理の使用方法について説明する。この処理では、大当りの開始時に、オープニング時間(演出用の待ち時間)を決定する。
まず、HLレジスタにオープニング時間データ1テーブル又はオープニング時間データ2テーブルの先頭アドレスをセットする。いずれのテーブルの先頭アドレスを設定するかについては、時間選択フラグ(R_TMR_FLG)の値が0か否かによって変化する。
時間選択フラグは、非時間短縮状態の場合に「0」となり、時間短縮状態の場合に「1」となる。ここでは、仮に、非時間短縮状態であることから、オープニング時間データ1テーブルがセットされたものとする。
図54は、オープニング時間データ1テーブルを示す図である。
オープニング時間データ1テーブルには、2バイトのタイマ値が並んでいる(DWで定義される)。
最初の「D_STA_TMR1:」は、オープニング時間データ1テーブルの先頭アドレスを示すラベルであり、一番上の「DW @TMR_TDN_ST1」とアドレスは一致している。
先頭の「DW @TMR_TDN_ST1」は、オープニング時間データであり、第1特別図柄抽選で「13ラウンド大当り(13ラウンド通常図柄1、13ラウンド確変図柄1,2)」に該当した場合に用いられるデータである。例えば、「DW @TMR_TDN_ST1」には、「10.000」の値が格納される。
次の「DW @TMR_TDN_ST3」は、オープニング時間データであり、第1特別図柄抽選で「16ラウンド大当り(16ラウンド確変図柄1)」に該当した場合に用いられるデータである。例えば、「DW @TMR_TDN_ST3」には、「3.500」の値が格納される。
次の「DW @TMR_TDN_ST7」は、オープニング時間データであり、第1特別図柄抽選で「7ラウンド大当り(7ラウンド確変図柄1)」に該当した場合に用いられるデータである。例えば、「DW @TMR_TDN_ST7」には、「8.500」の値が格納される。
次の「DW @TMR_TDN_ST7」は、オープニング時間データであり、第1特別図柄抽選で「4ラウンド大当り(4ラウンド確変図柄1)」に該当した場合に用いられるデータである。例えば、「DW @TMR_TDN_ST7」には、「8.500」の値が格納される。
次の「DW @TMR_TDN_ST2」は、オープニング時間データであり、第2特別図柄抽選で「7ラウンド大当り(7ラウンド通常図柄1)」に該当した場合に用いられるデータである。例えば、「DW @TMR_TDN_ST2」には、「5.000」の値が格納される。
次の「DW @TMR_TDN_ST3」は、オープニング時間データであり、第2特別図柄抽選で「16ラウンド大当り(16ラウンド確変図柄2,3)」に該当した場合に用いられるデータである。例えば、「DW @TMR_TDN_ST3」には、「3.500」の値が格納される。
次の「DW @TMR_TDN_ST3」は、オープニング時間データであり、第2特別図柄抽選で「13ラウンド大当り(13ラウンド確変図柄3)」に該当した場合に用いられるデータである。例えば、「DW @TMR_TDN_ST3」には、「3.500」の値が格納される。
次の「DW @TMR_TDN_ST3」は、オープニング時間データであり、第2特別図柄抽選で「10ラウンド大当り(10ラウンド確変図柄1)」に該当した場合に用いられるデータである。例えば、「DW @TMR_TDN_ST3」には、「3.500」の値が格納される。
次の「DW @TMR_TDN_ST3」は、オープニング時間データであり、第2特別図柄抽選で「7ラウンド大当り(7ラウンド確変図柄2,3)」に該当した場合に用いられるデータである。例えば、「DW @TMR_TDN_ST3」には、「3.500」の値が格納される。
次の「DW @TMR_TDN_ST5」は、オープニング時間データであり、第1特別図柄抽選で「小当り」に該当した場合に用いられるデータである。例えば、「DW @TMR_TDN_ST5」には、「7.000」の値が格納される。
なお、オープニング時間データ2テーブルは、時短時の当選図柄別のオープニング時間が設定されているテーブルであり、オープニング時間データの値はオープニング時間データ1テーブルとは異なるが、テーブル構成はオープニング時間データ1テーブルと同様であるため、内容は省略する。
そして、このようなオープニング時間データ1テーブルの先頭アドレスをワードデータ選択処理の引数として設定することより、ワードデータ選択処理を呼び出すための1つ目の準備が完了する(2つある引数のうち一方の引数の設定が完了する)。
つづいて、図53中(1)で図柄オフセット取得処理を呼び出す。図柄オフセット取得処理の詳細は省略するが、例えば「第1特別図柄1の13ラウンドの大当りであればAレジスタ=0」、「第1特別図柄の16ラウンドの大当りであればAレジスタ=1」、「第1特別図柄の7ラウンドの大当りであればAレジスタ=2」といったように、大当りの種類に応じた図柄オフセットの値がAレジスタに設定される。これにより、ワードデータ選択処理を呼び出すための2つ目の準備が完了する(2つある引数のうち他方の引数の設定が完了する)。
そして、図53中(2)でワードデータ選択処理を呼び出す。
これによって、HLレジスタにオープニング時間(大当り開始時の演出待ち時間)が設定される。これをそのままRAM(RWM)に保存する。
以上が、ワードデータ選択処理の呼び出し元の一例である。
図55は、バイトデータ選択処理のプログラム(実施形態)を示す図である。
入力レジスタ(引数)は、呼び出し元で設定されるものであり、Aレジスタに選択オフセット(例えば、図柄オフセット)が設定され、HLレジスタに選択アドレス(例えば、オープニング時間データ1テーブルの先頭アドレス又はオープニング時間データ2テーブルの先頭アドレス)が設定される。
出力レジスタ(戻り値)は、本モジュールで設定されて呼び出し元で参照されるものであり、Aレジスタに選択結果データ下位バイト値(オープニング時間の下位8バイトのデータ)が設定され、HLレジスタに選択結果データ(オープニング時間の16ビットのデータ)が設定される。
保護レジスタ(本モジュールで値が変化しないレジスタ)は、BCレジスタ、DEレジスタとなっている。
最初の「ADDWB HL,A」及び次の「ADDWB HL,A」は、選択アドレスに選択オフセットを2回加算する処理であり、HLレジスタの下位バイトにAレジスタの値が加算され、さらにもう一回、HLレジスタの下位バイトにAレジスタの値が加算される。
例えば、オープニング時間データ1テーブルの先頭アドレスが「1000番地」であるとする。
そして、Aレジスタの値(図柄オフセットの値)が「0」である場合は、HLレジスタの値は、「1000(=1000+0+0)」となる。
また、Aレジスタの値(図柄オフセットの値)が「1」である場合は、HLレジスタの値は、「1002(=1000+1+1)」となる。
このように、Aレジスタの値を2回加算している理由は、取得するための対象データが2バイトで構成されているからである。
次の「LD HL,(HL)」は、選択結果データをロードする処理であり、HLレジスタが示しているアドレスに格納されているデータをHLレジスタにロードする。
次の「LD A,L」は、選択結果データの下位バイト値をセットする処理であり、LレジスタのデータをAレジスタにロードする。
次の「RET」は、呼び出し元に復帰する処理である。
〔プログラムの解説〕
ワードデータ選択処理は、データテーブルの先頭アドレス(HLレジスタの値)と図柄オフセット値(Aレジスタの値)をセットした状態で呼び出され、テーブル内の特定のデータ(2バイト)の値をHLレジスタに上書きする。
また、ワードデータ選択処理は、2バイトのデータの下位バイトをAレジスタに上書きする。この処理は必要に応じて実行しなくてもよい。この処理を実行する理由は、2バイトのデータが、ある1バイトのデータと別の1バイトのデータをペアにしたものである場合に、呼び出し元で分ける手間(分割する処理)を省くためである。
ワードデータ選択処理においては、8ビットレジスタ2つをペアにしたペアレジスタ(HLレジスタ)が示す番地のデータを、同一のペアレジスタ(HLレジスタ)にロードする命令(LD HL,(HL)命令)を利用し、短い処理時間で2バイトのデータ(ワードデータ)の抽出を行っている。
〔ワードデータ選択処理のまとめ〕
このように、ワードデータ選択処理(規定データ取得モジュール)は、規定ビット数(16ビット)の規定レジスタ(HLレジスタ)が示すアドレスに格納されている規定データ(オープニング時間データ)を、規定レジスタ(HLレジスタ)にロードするロード命令(LD HL,(HL)命令)を用いて、規定データが格納されているデータテーブル(オープニング時間データ1テーブル)から規定データ(オープニング時間データ)を取得するモジュールである。主制御装置70は、ワードデータ選択処理(規定データ取得モジュール)を備えている。
また、ワードデータ選択処理は、規定レジスタ(HLレジスタ)が示すアドレスを、所定レジスタ(Aレジスタ)のデータと規定レジスタ(HLレジスタ)のデータとを1回の命令で加算する加算命令(ADDWB命令)を用いて算出する。
さらに、ワードデータ選択処理は、規定レジスタ(HLレジスタ)が示すアドレスを、加算命令(ADDWB命令)を複数回連続して実行することにより算出する。
さらにまた、ワードデータ選択処理は、引数として、所定レジスタ(Aレジスタ)に図柄オフセットの値(差分値)が設定され、かつ、規定レジスタ(HLレジスタ)にデータテーブルの先頭アドレスが設定された状態で呼び出される。
その上、ワードデータ選択処理は、戻り値として、所定レジスタ(Aレジスタ)に規定データの下位の所定ビット数のデータ(選択結果データの下位8ビット)を設定し、規定レジスタ(HLレジスタ)に規定データ(選択結果データの16ビット)を設定する。
そして、ワードデータ選択処理は、基本的には、引数として受け取った所定の分類に属するデータを、所定の分類とは異なる他の分類に属するデータに変換する。
より具体的には、ワードデータ選択処理は、引数として受け取った当選の種類を示すデータ(当選図柄に関するデータ)を、特別電動役物の動作に関するデータ(オープニング時間に関するデータ)に変換する。
ワードデータ選択処理は、リスタート領域に配置してRST命令で呼び出すようにしてもよく、リスタート領域以外の領域に配置してCALL命令で呼び出すようにしてもよい。
図56は、ワードデータ選択処理のプログラム(比較例)を示す図である。
比較例のワードデータ選択処理は、リスタート領域に配置しているプログラムであるが、8バイトに収まらないものであり、前半部分と後半部分に分かれたプログラムとなっている。
最初の「PUSH DE」は、DEレジスタを退避する処理である。
次の「LD E,A」は、選択オフセットをセットする処理である。
次の「LD D,0」は、Dレジスタに0をロードする処理である。
次の「ADD HL,DE」及び次の「ADD HL,DE」は、選択アドレスに選択オフセットを2回加算し、選択結果データ格納アドレスを算定する処理である。
次の「JR WORDSEL_10」は、リスタート領域確保の為、別箇所(WORDSEL_10:(ラベル))にジャンプする処理である。以上で前半部分の処理が終了する。以下は、後半部分の処理である。
次の「LD A,(HL)」は、選択結果データ下位バイト値をロードする処理である。
次の「INC HL」は、選択結果データ上位バイト格納アドレスをセットする処理である。
次の「LD H,(HL)」は、選択結果データをセットする処理である。
次の「LD L,A」は、LレジスタにAレジスタのデータをロードする処理である。
次の「POP DE」は、DEレジスタの値を復帰する処理である。
次の「RET」は、呼び出し元に復帰する処理である。
比較例プログラムでは、HLレジスタが示すアドレスのデータをHLレジスタに格納するという発想がなかったため、プログラム容量が増加していた。
一方、本実施形態のプログラム例では、HLレジスタが示すアドレスのデータをHLレジスタに格納する「LD HL,(HL)命令を」使用するという新たな発想を用いてワードデータを取得し、プログラム容量を削減している。
実施形態のプログラムは、「ADDWB HL,A」が「1バイト」であり、「ADDWB HL,A」が「1バイト」であり、「LD HL,(HL)」が「2バイト」であり、「LD A,L」が「1バイト」であり、「RET」が「1バイト」であり、合計のプログラム容量が「6バイト」である。
一方、比較例のプログラムは、「PUSH DE」が「1バイト」であり、「LD E,A」が「1バイト」であり、「LD D,0」が「2バイト」であり、「ADD HL,DE」が「1バイト」であり、「ADD HL,DE」が「1バイト」であり、「JR WORDSEL_10」が「2バイト」であり、「LD A,(HL)」が「1バイト」であり、「INC HL」が「1バイト」であり、「LD H,(HL)」が「1バイト」であり、「LD L,A」が「1バイト」であり、「POP DE」が「1バイト」であり、「RET」が「1バイト」であり、合計のプログラム容量が「14バイト」である。
そして、実施形態と比較例とを比較した場合、当該モジュールのプログラム容量は「8バイト」削減している。
また、実施形態と比較例とを比較した場合、当該モジュールの処理時間を32.4〜37.5%削減することができる。
このように、使用領域については、比較例のプログラムではRST領域の8バイトのほか、一般の領域を6バイトを使用していたが、実施形態のプログラムではRST領域の8バイトのみを利用しているため、6バイトの容量削減を実現することができる。
また、処理時間については、比較例のプログラムが72ステートであり、実施形態のプログラムが36ステートであるため、50%の改善を実現することができる。
これによって、遊技機の動作を従来よりも安定させることができる。
〔ダイナミックポート出力処理〕
次に図57は、割込管理処理の中で実行されるダイナミックポート出力処理(図14中のステップS202)の構成例を示すフローチャートである。ダイナミックポート出力処理は、特別図柄表示設定処理(ステップS1200)、普通図柄表示設定処理(ステップS1210)、状態表示設定処理(ステップS1220)、作動記憶表示設定処理(ステップS1230)、連続作動回数表示設定処理(ステップS1240)のサブルーチン群を含む構成である。
このうち特別図柄表示設定処理(ステップS1200)と普通図柄表示設定処理(ステップS1210)、作動記憶表示設定処理(ステップS1230)、については、既に述べたように第1特別図柄表示装置34、第2特別図柄表示装置35、普通図柄表示装置33、普通図柄作動記憶ランプ33a、第1特別図柄作動記憶ランプ34a及び第2特別図柄作動記憶ランプ35aの各LEDに対して印加する駆動信号を生成及び出力する処理である。
状態表示設定処理(ステップS1220)及び連続作動回数表示設定処理(ステップS1240)については、遊技状態表示装置38の各LEDに対して印加する駆動信号を生成及び出力する処理である。先ず状態表示設定処理では、主制御CPU72は、確率変動機能作動フラグ又は時間短縮機能作動フラグの値に応じてそれぞれ確率変動状態表示ランプ38d、時短状態表示ランプ38eの点灯を制御する。例えば、パチンコ機1の電源投入時において確率変動機能作動フラグに値(01H)がセットされていれば、主制御CPU72は確率変動状態表示ランプ38dに対応するLEDに対して点灯信号を出力する。なお、確率変動状態表示ランプ38dは、特別図柄に関する大当り遊技が開始されるまで、もしくは、特別図柄の変動表示が規定回数行われた後に確率変動機能がOFFにされるまで点灯しつづけ、その後非表示に(消灯)切り替えられる。一方、時間短縮機能作動フラグに値(01H)がセットされていれば、特に電源投入時であるか否かに関わらず、主制御CPU72は時短状態表示ランプ38eに対応するLEDに対して点灯信号を出力する。
また、主制御CPU72は、連続作動回数表示設定処理において大当り種別表示ランプ38a1〜38a5の点灯を制御する。具体的には、主制御CPU72は連続作動回数ステータスの値に基づき、大当り種別表示ランプ38a1〜38a5のいずれかに対する点灯信号を出力する。このとき点灯信号を出力する対象となるのは、連続作動回数ステータスの値で指定された大当り図柄に対応するいずれかの表示ランプ38a1〜38a5である。例えば、連続作動回数ステータスの値が「4ラウンド」を指定するものであれば、主制御CPU72は「4ラウンド(4R)」を表すランプ38a1に対して点灯信号を出力する。連続作動回数ステータスの値が「7ラウンド」を指定するものであれば、主制御CPU72は「7ラウンド(7R)」を表すランプ38a2に対して点灯信号を出力する。連続作動回数ステータスの値が「10ラウンド」を指定するものであれば、主制御CPU72は「10ラウンド(10R)」を表すランプ38a3に対して点灯信号を出力する。連続作動回数ステータスの値が「13ラウンド」を指定するものであれば、主制御CPU72は「13ラウンド(13R)」を表すランプ38a4に対して点灯信号を出力する。連続作動回数ステータスの値が「16ラウンド」を指定するものであれば、主制御CPU72は「16ラウンド(16R)」を表すランプ38a5に対して点灯信号を出力する。
〔大当り時可変入賞装置管理処理〕
次に、大当り時可変入賞装置管理処理の詳細について説明する。図58は、大当り時可変入賞装置管理処理の構成例を示すフローチャートである。大当り時可変入賞装置管理処理は、大当り時遊技プロセス選択処理(ステップS5100)、大当り時大入賞口開放パターン設定処理(ステップS5200)、大当り時開始処理(ステップS5250)、大当り時大入賞口開閉動作処理(ステップS5300)、大当り時大入賞口閉鎖処理(ステップS5400)、大当り時終了処理(ステップS5500)のサブルーチン群を含む構成である。
ステップS5100:大当り時遊技プロセス選択処理において、主制御CPU72は次に実行するべき処理(ステップS5200〜ステップS5500のいずれか)のジャンプ先を選択する。すなわち主制御CPU72は、ジャンプテーブルから次に実行するべき処理のプログラムアドレスをジャンプ先のアドレスとして選択し、また、戻り先のアドレスとして大当り時可変入賞装置管理処理の末尾をスタックポインタにセットする。いずれの処理を次のジャンプ先として選択するかは、これまでに行われた処理の進行状況によって異なる。例えば、未だ第1可変入賞装置30又は第2可変入賞装置31の作動(開閉動作)を開始していない状況であれば、主制御CPU72は次のジャンプ先として、大当り時開始処理(ステップS5250)を選択する。また、主制御CPU72は、大当り時開始処理(ステップS5250)が終了していれば、次のジャンプ先として大当り時大入賞口開閉動作処理(ステップS5300)を選択し、大当り時大入賞口開閉動作処理まで完了していれば、次のジャンプ先として大当り時大入賞口閉鎖処理(ステップS5400)を選択する。また、設定された連続作動回数(ラウンド数)にわたって大当り時大入賞口開閉動作処理及び大当り時大入賞口閉鎖処理が繰り返し実行されると、主制御CPU72は次のジャンプ先として大当り時終了処理(ステップS5500)を選択する。以下、それぞれの処理についてさらに詳しく説明する。
〔大当り時大入賞口開放パターン設定処理〕
図59は、大当り時大入賞口開放パターン設定処理の手順例を示すフローチャートである。この処理は、大当り時に第1可変入賞装置30又は第2可変入賞装置31を開閉動作する回数や各開放の時間等の条件を設定するためのものである。以下、各手順に沿って説明する。
ステップS5204:主制御CPU72は、図柄別開放パターン選択処理を実行する。この処理では、主制御CPU72は今回の該当する当選図柄に応じて大入賞口の開放パターン(ラウンドごとの開放回数及び各開放の時間)やラウンド間のインターバル時間、1ラウンド中のカウント数(最大入賞回数)、エンディング時間を選択する。当選図柄別の大入賞口の開放パターンやラウンド間のインターバル時間、エンディング時間については、図31に示す大当り中の可変入賞装置の動作パターンで説明した通りである。なお、1ラウンド中のカウント数(最大入賞回数)は基本的には10個程度であるが、極端な短時間(0.1秒程度)の開放中に入賞が発生することはほとんどない(不能ではないが極めて困難である)。
ステップS5206:主制御CPU72は、先の大当り時停止図柄決定処理(図32中のステップS2410)で選択した大当り時の当選図柄に基づき、今回の大当り遊技における実行ラウンド数を設定する。具体的には、当選図柄として「4ラウンド確変図柄1」を選択していれば、主制御CPU72は実行ラウンド数を4回に設定する。また、当選図柄として「7ラウンド通常図柄1」、「7ラウンド確変図柄1〜3」を選択していれば、主制御CPU72は実行ラウンド数を7回に設定する。さらに、当選図柄として「10ラウンド確変図柄1」を選択していれば、主制御CPU72は実行ラウンド数を10回に設定する。さらにまた、当選図柄として「13ラウンド通常図柄1」、「13ラウンド確変図柄1〜3」を選択していれば、主制御CPU72は実行ラウンド数を13回に設定する。そして、当選図柄として「16ラウンド確変図柄1〜3」を選択していれば、主制御CPU72は実行ラウンド数を16回に設定する。ここで設定した実行ラウンド数は、プログラム上で対応する値を用いて例えばRAM76のバッファ領域に格納される。
ステップS5208:次に主制御CPU72は、先のステップS5204で設定した大入賞口開放パターンの作動パターンに基づき、大当り時開放タイマを設定する。ここで設定したタイマの値は、第1可変入賞装置30又は第2可変入賞装置31の開放時間となる。なお、大当り時開放タイマの値として20.0〜29.0秒程度の時間が設定されていれば、その開放時間は1回の開放中に大入賞口への入球が容易に発生する充分な時間(例えば発射制御基板セット174により遊技球が10個以上発射される時間、好ましくは6秒以上)となる。一方、大当り時開放タイマの値として0.1秒が設定されていれば、その開放時間は1回の開放中に大入賞口への入球が不能ではなくとも、ほとんど発生しない(困難となる)短時間(例えば1秒より短い時間、好ましくは発射制御基板セット174による遊技球の発射間隔よりも短い時間)となる。
ステップS5210:そして、主制御CPU72は、先のステップS5204で設定した大入賞口開放パターンの作動パターンに基づき、大当り時インターバルタイマを設定する。ここで設定したタイマの値は、大当り中のラウンド間での待機時間となる。
ステップS5212:以上の手順を終えると、主制御CPU72は次のジャンプ先を大当り時開始処理に設定し、大当り時可変入賞装置管理処理(図58)に復帰する。
〔大当り時開始処理〕
図60は、大当り時開始処理の手順例を示すフローチャートである。この処理は、大当り時のオープニング時間(開始時間)を制御するためのものである。以下、手順に沿って説明する。
ステップS5260:主制御CPU72は、大当り時開始時間タイマカウントダウン処理を実行する。この処理では、主制御CPU72は特別遊技タイマ(大当り時開始時間タイマ)の値を時間の経過に伴って(本モジュールの呼び出しごとに)カウントダウンする。なお、特別遊技タイマ(大当り時開始時間タイマ)の更新は、タイマ更新処理で実行してもよい。
ステップS5262:次に主制御CPU72は、大当り時開始時間が経過したか否かを確認する。具体的には、大当り時開始時間タイマの値が未だ0になっていなければ、主制御CPU72は大当り時開始時間が経過していないと判断する(No)。この場合、主制御CPU72は本モジュールを終了して大当り時可変入賞装置管理処理(図58)に復帰する。
この後、時間の経過に伴って大当り時開始時間タイマの値が0になると、主制御CPU72は大当り時開始時間が経過したと判断し(Yes)、ステップS5264の処理を実行する。
ステップS5264:主制御CPU72は、次のジャンプ先を大当り時大入賞口開閉動作処理に設定する。
以上の処理を終えると、主制御CPU72は、大当り時可変入賞装置管理処理(図58)に復帰する。
〔大当り時大入賞口開閉動作処理〕
図61は、大当り時大入賞口開閉動作処理の手順例を示すフローチャートである。この処理は、大当り時に第1可変入賞装置30又は第2可変入賞装置31の開閉動作を制御するためのものである。以下、手順に沿って説明する。
ステップS5301:主制御CPU72は、大入賞口インターバルタイマがカウントダウン中であるか否かを確認する。具体的には、以下のステップS5314で設定する大入賞口インターバルタイマが既に動作中であるか否かを確認することにより、大入賞口インターバルタイマがカウントダウン中であるか否かを確認することができる。
その結果、大入賞口インターバルタイマがカウントダウン中であることを確認した場合(Yes)、主制御CPU72はステップS5314を実行する。一方、大入賞口インターバルタイマがカウントダウン中であることを確認できない場合(No)、主制御CPU72はステップS5302を実行する。
ステップS5302:主制御CPU72は、第1大入賞口又は第2大入賞口を開放させる。具体的には、図30に示す大当り中の可変入賞装置の動作パターンに基づいて、第1大入賞口ソレノイド90又は第2大入賞口ソレノイド97に対して印加する駆動信号を出力する。これにより、第1可変入賞装置30又は第2可変入賞装置31が作動して閉鎖状態から開放状態に移行する。
ステップS5303:次に主制御CPU72は、開放タイマカウントダウン処理を実行する。この処理では、先の大当り時大入賞口開放パターン設定処理(図59中のステップS5208)で設定した開放タイマのカウントダウンを実行する。
ステップS5306:続いて主制御CPU72は、大入賞口開放時間が終了したか否かを確認する。具体的には、カウントダウン処理後の開放タイマの値が0以下であるか否かを確認し、未だ開放タイマの値が0以下になっていなければ(No)、主制御CPU72は次にステップS5308を実行する。
ステップS5308:主制御CPU72は、入賞球数カウント処理を実行する。この処理では、開放時間内に第1可変入賞装置30又は第2可変入賞装置31(開放中の第1大入賞口又は第2大入賞口)に入賞した遊技球の個数をカウントする。具体的には、主制御CPU72は開放時間内に第1カウントスイッチ84又は第2カウントスイッチ85から入力された入賞検出信号に基づいて、カウント数の値をインクリメントする。
ステップS5310:次に主制御CPU72は、現在のカウント数が所定数(10個)未満であるか否かを確認する。この所定数は、開放1回(大当り中の1ラウンド)あたりに許容する入賞球数の上限(賞球数の上限)を定めたものである。未だカウント数が所定数に達していなければ(Yes)、主制御CPU72は大当り時可変入賞装置管理処理に復帰する。そして、次に大当り時可変入賞装置管理処理を実行すると、現段階ではジャンプ先が大当り時大入賞口開閉動作処理に設定されているので、主制御CPU72はステップS5301〜ステップS5310の手順を繰り返し実行する。
ステップS5306で大入賞口開放時間が終了したと判断するか(Yes)、もしくはステップS5310でカウント数が所定数に達したことを確認すると(No)、主制御CPU72は次にステップS5312を実行する。
ステップS5312:主制御CPU72は、第1大入賞口又は第2大入賞口を閉鎖させる。具体的には、第1大入賞口ソレノイド90又は第2大入賞口ソレノイド97に印加していた駆動信号の出力を停止する。これにより、第1可変入賞装置30又は第2可変入賞装置31が開放状態から閉鎖状態に移行する。
ステップS5314:次に主制御CPU72は、インターバルタイマカウントダウン処理を実行する。この処理では、主制御CPU72は大当り時大入賞口開放パターン設定処理(図59中のステップS5210)で設定した大入賞口インターバルタイマのカウントダウンを実行する。
ステップS5315:主制御CPU72は、大入賞口インターバル時間が終了したか否かを確認する。具体的には、カウントダウン処理後の大入賞口インターバルタイマの値が0以下であるか否かを確認し、未だ大入賞口インターバルタイマの値が0以下になっていなければ(No)、主制御CPU72は大当り時可変入賞装置管理処理(図58)の末尾アドレスに復帰する。そして、次回の呼び出しで大当り時大入賞口開閉動作処理が実行されると、先頭のステップS5301からジャンプして直にステップS5314を実行する。一方、カウントダウン処理後の大入賞口インターバルタイマの値が0以下になったことを確認した場合(Yes)、主制御CPU72はステップS5318を実行する。
ステップS5318:主制御CPU72は、開放回数カウンタの値をインクリメントする。なお、開放回数カウンタの値は、例えば初期値を0としてRAM76のカウント領域に記憶されている。
ステップS5320:主制御CPU72は、インクリメント後の開放回数カウンタの値が現ラウンド内で設定した回数に達しているか否かを確認する。ここで、「現ラウンド内で設定した回数」を判断しているのは、例えば「大当り中の1ラウンド内で第1可変入賞装置30又は第2可変入賞装置31を複数回にわたり開放動作させる」という開放パターンに対応するためである。なお、このような開放パターンを採用していない場合には、「現ラウンド内で設定した回数」は、各ラウンドで1回ずつに設定される。したがって、大当り遊技中の各ラウンドでは1回の開閉動作でカウンタ値が設定した回数に達するため(Yes)、主制御CPU72は次にステップS5322に進むことになる。
一方、1ラウンド内で複数回の開閉動作を繰り返すパターンを採用している場合には、1回の開放終了時に未だカウンタ値が設定した回数に達していないことになる(No)。この場合、主制御CPU72は大当り時可変入賞装置管理処理に復帰すると、現段階ではジャンプ先が大当り時大入賞口開閉動作処理に設定されているので、ステップS5301〜ステップS5320までの手順を繰り返し実行する。その結果、ステップS5318で開放回数カウンタのインクリメントが進み、そして、カウンタ値が設定した回数に達すると(Yes)、主制御CPU72は次にステップS5322に進むことになる。
ステップS5322:主制御CPU72は次のジャンプ先を大当り時大入賞口閉鎖処理に設定し、大当り時可変入賞装置管理処理に復帰する。そして、次に大当り時可変入賞装置管理処理を実行すると、主制御CPU72は次に大当り時大入賞口閉鎖処理を実行する。
〔大当り時大入賞口閉鎖処理〕
図62は、大当り時大入賞口閉鎖処理の手順例を示すフローチャートである。この大当り時大入賞口閉鎖処理は、第1可変入賞装置30又は第2可変入賞装置31の作動を継続したり、その作動を終了したりするためのものである。以下、手順に沿って説明する。
ステップS5401a:主制御CPU72は、ラウンド間インターバルタイマカウントダウン処理を実行する。この処理では、主制御CPU72はラウンド間インターバルタイマにラウンド間インターバル時間の初期値を設定し、その後、時間の経過に伴って(本モジュールの呼び出しごとに)タイマをカウントダウンする。
ステップS5401b:次に主制御CPU72は、ラウンド間インターバル時間が経過したか否かを確認する。具体的には、ラウンド間インターバルタイマの値が未だ0になっていなければ、主制御CPU72はラウンド間インターバル時間が経過していないと判断する(No)。この場合、主制御CPU72は本モジュールを終了して大当り時可変入賞装置管理処理(図58)に復帰する。
この後、時間の経過に伴ってラウンド間インターバルタイマの値が0になると、主制御CPU72はラウンド間インターバル時間が経過したと判断し(Yes)、ステップS5402の処理を実行する。
ステップS5402:主制御CPU72は、ラウンド数カウンタをインクリメントする。これにより、例えば1ラウンド目が終了し、2ラウンド目に向かう段階でラウンド数カウンタの値は「1」となっている。
ステップS5404:主制御CPU72は、インクリメント後のラウンド数カウンタの値が設定した実行ラウンド数に達しているか否かを確認する。具体的には、主制御CPU72はインクリメント後のラウンド数カウンタの値(1〜15)を参照し、その値が設定した実行ラウンド数(1減算後の1〜15)未満であれば(No)、次にステップS5405を実行する。
ステップS5405:主制御CPU72は、現在のラウンド数カウンタの値からラウンド数コマンドを生成する。このコマンドは、演出制御出力処理において演出制御装置124に送信されるものである。演出制御装置124は、受信したラウンド数コマンドに基づいて現在のラウンド数を確認することができる。
ステップS5406:主制御CPU72は、次のジャンプ先を大当り時大入賞口開閉動作処理に設定する。
ステップS5408:そして、主制御CPU72は、入賞球数カウンタをリセットし、大当り時可変入賞装置管理処理に復帰する。
主制御CPU72が次に大当り時可変入賞装置管理処理を実行すると、大当り時遊技プロセス選択処理(図58中のステップS5100)で主制御CPU72は次のジャンプ先である大当り時大入賞口開閉動作処理を実行する。そして、大当り時大入賞口開閉動作処理の実行後は大当り時大入賞口閉鎖処理の実行を経て、主制御CPU72は再び大当り時大入賞口閉鎖処理を実行し、ステップS5402〜ステップS5408を繰り返し実行する。これにより、実際のラウンド数が設定した実行ラウンド数(9回又は16回)に達するまでの間、第1可変入賞装置30又は第2可変入賞装置31の開閉動作が連続して実行される。
実際のラウンド数が設定した実行ラウンド数に達した場合(ステップS5404:Yes)、主制御CPU72は次にステップS5410を実行する。
ステップS5410,ステップS5412:この場合、主制御CPU72はラウンド数カウンタをリセット(=0)すると、次のジャンプ先を大当り時終了処理に設定する。
ステップS5408:そして、主制御CPU72は、入賞球数カウンタをリセットし、大当り時可変入賞装置管理処理に復帰する。これにより、次に主制御CPU72が大当り時可変入賞装置管理処理を実行すると、今度は大当り時終了処理が選択されることになる。
〔大当り時終了処理〕
図63は、大当り時終了処理の手順例を示すフローチャートである。この大当り時終了処理は、大当り時の第1可変入賞装置30又は第2可変入賞装置31の作動を終了する際の条件を整えるためのものである。以下、手順例に沿って説明する。
ステップS5501:主制御CPU72は、大当り時終了時間タイマカウントダウン処理を実行する。この処理では、主制御CPU72は大当り時終了時間タイマに初期値を設定し、その後、時間の経過に伴って(本モジュールの呼び出しごとに)タイマをカウントダウンする。
ステップS5502:次に主制御CPU72は、大当り時終了時間が経過したか否かを確認する。具体的には、大当り時終了時間タイマの値が未だ0になっていなければ、主制御CPU72は大当り時終了時間が経過していないと判断する(No)。この場合、主制御CPU72は本モジュールを終了して大当り時可変入賞装置管理処理(図58)に復帰する。
この後、時間の経過に伴って大当り時終了時間タイマの値が0になると、主制御CPU72は大当り時終了時間が経過したと判断し(Yes)、ステップS5503以降を実行する。
ステップS5503,ステップS5504:主制御CPU72は特別図柄当りフラグをリセット(00H)する。これにより、主制御CPU72の制御処理上で大当り遊技状態は終了する。また、主制御CPU72は、ここで内部状態フラグから「大当り中」を消去し、制御処理上で内部状態としての大役終了を宣言する。なお、主制御CPU72は連続作動回数ステータスの値をリセットする。
ステップS5506:次に主制御CPU72は、確率変動機能作動フラグの値(01H)がセットされているか否かを確認する。このフラグは、先の特別図柄変動前処理中の大当り時その他設定処理(図32中のステップS2414)でセットされるものである。
ステップS5508:確率変動機能作動フラグの値がセットされている場合(ステップS5506:Yes)、主制御CPU72は確率変動回数(例えば10000回)を設定する。設定した確率変動回数の値は、例えばRAM76の確変カウンタ領域に格納されて回数切りカウンタ値となる。ここで設定した確率変動回数は、これ以降の遊技で特別図柄の変動(内部抽選)を高確率状態で行う上限回数となる。本実施形態では、高確率状態に実質的な上限を設けていないため、高確率状態で当選の結果が得られずに低確率状態に復帰する場合はほとんど発生しない(いわゆるループタイプの確変機)。なお、確率変動機能作動フラグの値がセットされていなければ(ステップS5506:No)、主制御CPU72はステップS5508を実行しない。
ステップS5510:次に主制御CPU72は、時間短縮機能作動フラグの値(01H)がセットされているか否かを確認する。このフラグは、先の特別図柄変動前処理中の大当り時その他設定処理(図32中のステップS2414)でセットされるものである。
ステップS5512:そして、時間短縮機能作動フラグの値がセットされている場合(ステップS5510:Yes)、主制御CPU72は時短回数(例えば100回又は10000回)を設定する。ここで、いずれの時短回数を設定するかについては、確率変動機能作動フラグの値に左右される。すなわち、主制御CPU72は確率変動機能作動フラグの値がセットされていれば時短回数として10000回を設定し(高確率時間短縮状態移行手段、有利遊技状態移行手段)、確率変動機能作動フラグの値がセットされてなければ時短回数として100回を設定する(低確率時間短縮状態移行手段、有利遊技状態移行手段)。設定した時短回数の値は、RAM76の時短カウント領域に格納される。ここで設定した時短回数は、これ以降の遊技で特別図柄の変動時間を短縮化する上限回数となる。なお、時間短縮機能作動フラグの値がセットされていなければ(ステップS5510:No)、主制御CPU72はステップS5512を実行しない。
ステップS5514:そして、主制御CPU72は、各種のフラグに基づいて状態指定コマンドを生成する。具体的には、特別図柄当りフラグのリセット又は大役終了に伴い、遊技状態として「通常中」を表す状態指定コマンドを生成する。また、確率変動機能作動フラグがセットされていれば、内部状態として「高確率中」を表す状態指定コマンドを生成し、時間短縮機能作動フラグがセットされていれば、内部状態として「時間短縮中」を表す状態指定コマンドを生成する。これら状態指定コマンドは、演出制御出力処理において演出制御装置124に送信される。
ステップS5516:以上の手順を経ると主制御CPU72は次のジャンプ先を大当り時大入賞口開放パターン設定処理に設定する。
ステップS5518:そして、主制御CPU72は、特別遊技管理処理の中の実行選択処理(図29中のステップS1000)でのジャンプ先を特別図柄変動前処理に設定する。以上の手順を終えると、主制御CPU72は大当り時可変入賞装置管理処理に復帰する。
〔小当り時可変入賞装置管理処理〕
図64は、小当り時可変入賞装置管理処理の構成例を示すフローチャートである。小当り時可変入賞装置管理処理は、小当り時遊技プロセス選択処理(ステップS6100)、小当り時大入賞口開放パターン設定処理(ステップS6200)、小当り時大入賞口開閉動作処理(ステップS6300)、小当り時大入賞口閉鎖処理(ステップS6400)、小当り時終了処理(ステップS6500)のサブルーチン群を含む構成である。
ステップS6100:小当り時遊技プロセス選択処理において、主制御CPU72は次に実行するべき処理(ステップS6200〜ステップS6500のいずれか)のジャンプ先を選択する。すなわち主制御CPU72は、ジャンプテーブルから次に実行するべき処理のプログラムアドレスをジャンプ先のアドレスとして選択し、また、戻り先のアドレスとして小当り時可変入賞装置管理処理の末尾をスタックポインタにセットする。いずれの処理を次のジャンプ先として選択するかは、これまでに行われた処理の進行状況によって異なる。例えば、未だ第1可変入賞装置30の作動(開閉動作)を開始していない状況であれば、主制御CPU72は次のジャンプ先として小当り時大入賞口開放パターン設定処理(ステップS6200)を選択する。一方、既に小当り時大入賞口開放パターン設定処理が完了していれば、主制御CPU72は次のジャンプ先として小当り時大入賞口開閉動作処理(ステップS6300)を選択し、小当り時大入賞口開閉動作処理まで完了していれば、次のジャンプ先として小当り時大入賞口閉鎖処理(ステップS6400)を選択する。また、設定された連続作動回数にわたって小当り時大入賞口開閉動作処理及び小当り時大入賞口閉鎖処理が繰り返し実行されると、主制御CPU72は次のジャンプ先として小当り時終了処理(ステップS6500)を選択する。以下、それぞれの処理についてさらに詳しく説明する。
〔小当り時大入賞口開放パターン設定処理〕
図65は、小当り時大入賞口開放パターン設定処理の手順例を示すフローチャートである。この処理は、小当り時に第1可変入賞装置30を開閉動作する回数や各開放の時間等の条件を設定するためのものである。以下、各手順に沿って説明する。
ステップS6212:主制御CPU72は、「小当り時開放パターン」を設定する。本実施形態の場合、「小当り時開放パターン」については、例えば1回目と2回目とでそれぞれ「0.1秒開放」の開放パターンが設定される。なお、「小当り」については「ラウンド」という概念がないことから、「開放パターン」についても「1回目の開放」、「2回目の開放」といった表記となる。
ステップS6214:主制御CPU72は、先のステップS6212で設定した大入賞口開放パターンに基づき、大入賞口の開放回数を例えば2回に設定する。ここで設定した開放回数は、例えばRAM76のバッファ領域に格納される。
ステップS6216:次に主制御CPU72は、小当り時開放タイマを設定する。ここで設定したタイマの値は、第1可変入賞装置30を作動する際の1回あたりの開放時間となる。なお、本実施形態では、小当り時開放タイマの値として0.1秒が設定されており、このような開放時間は1回の開放中に大入賞口への入賞がほとんど発生しない(困難となる)短時間(例えば1秒より短い時間、好ましくは発射装置ユニットによる遊技球の発射間隔よりも短い時間)となる。
ステップS6218:主制御CPU72は、小当り時インターバルタイマを設定する。ここで設定したタイマの値は、小当り時に第1可変入賞装置30を複数回にわたり開閉動作させる際の1回ごとの待機時間となるが、このタイマ値は例えば2秒程度に設定される。
ステップS6220:以上の手順を終えると、主制御CPU72は次のジャンプ先を小当り時大入賞口開閉動作処理に設定し、小当り時可変入賞装置管理処理(図64)に復帰する。そして、主制御CPU72は、次に小当り時大入賞口開閉動作処理(ステップS6300)を実行する。
〔小当り時大入賞口開閉動作処理〕
図66は、小当り時大入賞口開閉動作処理の手順例を示すフローチャートである。この処理は、小当り時に第1可変入賞装置30の開閉動作を制御するためのものである。以下、手順に沿って説明する。
ステップS6301:主制御CPU72は、インターバルタイマがカウントダウン中であるか否かを確認する。具体的には、以下のステップS6314で設定するインターバルタイマが既に動作中であるか否かを確認することにより、インターバルタイマがカウントダウン中であるか否かを確認することができる。
その結果、インターバルタイマがカウントダウン中であることを確認した場合(Yes)、主制御CPU72はステップS6314を実行する。一方、インターバルタイマがカウントダウン中であることを確認できない場合(No)、主制御CPU72はステップS6302を実行する。
ステップS6302:主制御CPU72は、第1大入賞口を開放させる。具体的には、第1大入賞口ソレノイド90に対して印加する駆動信号を出力する。これにより、第1可変入賞装置30が作動して閉鎖状態から開放状態に移行する。
ステップS6304:次に主制御CPU72は、開放タイマカウントダウン処理を実行する。この処理では、先の小当り時大入賞口開放パターン設定処理(図65中のステップS6216)で設定した開放タイマのカウントダウンを実行する。
ステップS6306:続いて主制御CPU72は、開放時間が終了したか否かを確認する。具体的には、カウントダウン処理後の開放タイマの値が0以下であるか否かを確認し、未だ開放タイマの値が0以下になっていなければ(No)、主制御CPU72は次にステップS6308を実行する。
ステップS6308:主制御CPU72は、入賞球数カウント処理を実行する。この処理では、開放時間内に第1可変入賞装置30(開放中の第1大入賞口)に入賞した遊技球の個数をカウントする。具体的には、主制御CPU72は開放時間内に第1カウントスイッチ84から入力された入賞検出信号に基づいて、カウント数の値をインクリメントする。
ステップS6310:次に主制御CPU72は、現在のカウント数が所定数(10個)未満であるか否かを確認する。この所定数は、開放1回(小当り時の開放1回)あたりに許容する入賞球数の上限(賞球数の上限)を定めたものである。未だカウント数が所定数に達していなければ(Yes)、主制御CPU72は小当り時可変入賞装置管理処理(図64)に復帰する。そして、次に小当り時可変入賞装置管理処理を実行すると、現段階ではジャンプ先が小当り時大入賞口開閉動作処理に設定されているので、主制御CPU72はステップS6301〜ステップS6310の手順を繰り返し実行する。
ステップS6306で開放時間が終了したと判断するか(Yes)、もしくはステップS6310でカウント数が所定数に達したことを確認すると(No)、主制御CPU72は次にステップS6312を実行する。ここで、小当り時の開放は、開放タイマの値が短時間に設定されているので、通常、主制御CPU72はステップS6310でカウント数が所定数に達したことを確認するより先に、ステップS6306で開放時間が終了したと判断する場合がほとんどである。
ステップS6312:主制御CPU72は、第1大入賞口を閉鎖させる。具体的には、第1大入賞口ソレノイド90に印加していた駆動信号の出力を停止する。これにより、第1可変入賞装置30が開放状態から閉鎖状態に復帰する。
ステップS6314:次に主制御CPU72は、インターバルタイマカウントダウン処理を実行する。この処理では、主制御CPU72は小当り時大入賞口開放パターン設定処理(図65中のステップS6218)で設定したインターバルタイマのカウントダウンを実行する。
ステップS6315:主制御CPU72は、インターバル時間が終了したか否かを確認する。具体的には、カウントダウン処理後のインターバルタイマの値が0以下であるか否かを確認し、未だインターバルタイマの値が0以下になっていなければ(No)、主制御CPU72は小当り時可変入賞装置管理処理(図64)の末尾アドレスに復帰する。そして、次回の呼び出しで小当り時大入賞口開閉動作処理が実行されると、先頭のステップS6301からジャンプして直にステップS6314を実行する。一方、カウントダウン処理後のインターバルタイマの値が0以下になったことを確認した場合(Yes)、主制御CPU72はステップS6316を実行する。
ステップS6316:主制御CPU72は次のジャンプ先を小当り時大入賞口閉鎖処理に設定し、小当り時可変入賞装置管理処理に復帰する。そして、次に小当り時可変入賞装置管理処理を実行すると、主制御CPU72は次に小当り時大入賞口閉鎖処理を実行する。
〔小当り時大入賞口閉鎖処理〕
図67は、小当り時大入賞口閉鎖処理の手順例を示すフローチャートである。この小当り時大入賞口閉鎖処理は、第1可変入賞装置30の作動を継続したり、その作動を終了したりするためのものである。以下、手順に沿って説明する。
ステップS6412:主制御CPU72は、開放回数カウンタの値をインクリメントする。
ステップS6414:次に主制御CPU72は、インクリメント後の開放回数カウンタの値が設定した開放回数に達したか否かを確認する。開放回数は、先の大入賞口開放パターン設定処理(図65中のステップS6214)で設定したものである。未だ開放回数カウンタの値が設定した開放回数に達していなければ(No)、主制御CPU72はステップS6416を実行する。
ステップS6416:主制御CPU72は、次のジャンプ先を小当り時大入賞口開閉動作処理に設定する。
ステップS6430:そして、主制御CPU72は、入賞球数カウンタをリセットし、小当り時可変入賞装置管理処理(図64)に復帰する。
主制御CPU72が次に可変入賞装置管理処理を実行すると、小当り時遊技プロセス選択処理(図64中のステップS6100)で主制御CPU72は次のジャンプ先である小当り時大入賞口開閉動作処理を実行する。そして、小当り時大入賞口開閉動作処理の実行後に、主制御CPU72は再び小当り時大入賞口閉鎖処理を実行し、実際の開放回数が設定した開放回数(2回)に達するまでの間、第1可変入賞装置30の開閉動作が繰り返し実行される。
小当り時の実際の開放回数が設定した開放回数に達した場合(ステップS6414:Yes)、主制御CPU72は次にステップS6418を実行する。
ステップS6418,ステップS6420:この場合、主制御CPU72は開放回数カウンタをリセット(=0)すると、次のジャンプ先を小当り時終了処理に設定する。
ステップS6430:そして、主制御CPU72は、入賞球数カウンタをリセットし、小当り時可変入賞装置管理処理(図64)に復帰する。これにより、次に主制御CPU72が可変入賞装置管理処理を実行すると、今度は小当り時終了処理が選択されることになる。
〔小当り時終了処理〕
図68は、小当り時終了処理の手順例を示すフローチャートである。この小当り時終了処理は、小当り時の第1可変入賞装置30の作動を終了する際の条件を整えるためのものである。以下、手順例に沿って説明する。
ステップS6502:主制御CPU72は、小当り時終了時間タイマカウントダウン処理を実行する。この処理では、主制御CPU72は小当り時終了時間タイマに初期値を設定し、その後、時間の経過に伴って(本モジュールの呼び出しごとに)タイマをカウントダウンする。
ステップS6504:次に主制御CPU72は、小当り時終了時間が経過したか否かを確認する。具体的には、小当り時終了時間タイマの値が未だ0になっていなければ、主制御CPU72は小当り時終了時間が経過していないと判断する(No)。この場合、主制御CPU72は本モジュールを終了して小当り時可変入賞装置管理処理(図64)に復帰する。
この後、時間の経過に伴って小当り時終了時間タイマの値が0になると、主制御CPU72は小当り時終了時間が経過したと判断し(Yes)、ステップS6506以降を実行する。
ステップS6506,ステップS6508:主制御CPU72は特別図柄当りフラグの値をリセット(00H)し、また、内部状態フラグから「小当り中」を消去して小当り遊技を終了させるる。なお、小当りの場合、特に内部的な条件装置は作動しないため、このような手順は単にフラグの消去を目的としたものである。
ステップS6510:以上の手順を経ると主制御CPU72は次のジャンプ先を小当り時大入賞口開放パターン設定処理に設定する。
ステップS6512:そして、主制御CPU72は、特別遊技管理処理の中の実行選択処理(図29中のステップS1000)でのジャンプ先を特別図柄変動前処理に設定する。以上の手順を終えると、主制御CPU72は小当り時可変入賞装置管理処理に復帰する。
〔普通遊技管理処理〕
図69は、普通遊技管理処理の手順例を示すフローチャートである。
ステップS7000:主制御CPU72は、普通遊技管理フェーズをロードする処理を実行する。この処理では、普通遊技管理フェーズをAレジスタに設定する。普通遊技管理フェーズの値は、以下の通りである。
〔普通遊技管理フェーズ〕
主制御CPU72は、普通図柄に対応する遊技の進行状況(1)〜(7)に応じて普通遊技管理フェーズの値(カギ括弧内)を例えば以下のようにセットする。
(1)普通図柄変動待ち状態:「00H」
(2)普通図柄変動表示中状態:「01H」
(3)普通図柄停止図柄表示状態:「02H」
(4)可変始動入賞装置(普通電動役物)入賞口開放前状態:「03H」
(5)可変始動入賞装置(普通電動役物)入賞口開放制御状態:「04H」
(6)可変始動入賞装置(普通電動役物)入賞口終了ウエイト状態:「05H」
「普通図柄変動待ち状態」は、保留がある場合に普通図柄の変動を開始する状態である。「普通図柄変動表示中状態」は、普通図柄が変動している状態である。「普通図柄停止図柄表示状態」は、普通図柄の変動が終了し、抽選結果を表示中の状態である。「普通電動役物入賞口解放前状態」は、普通図柄抽選で当選し、普通電動役物の作動(電チューの開放)を待つ状態である。「普通電動役物入賞口解放制御状態」は、普通電動役物が作動中の状態である。「普通電動役物入賞口終了ウエイト状態」は、普通電動役物の作動が終了した状態である。
ステップS7002:主制御CPU72は、普通遊技ジャンプテーブルのアドレスをセットする処理を実行する。この処理では、普通遊技ジャンプテーブルの先頭アドレスをHLレジスタに設定する。普通遊技ジャンプテーブルは、普通図柄に係る6個のモジュールの先頭アドレスが順番に記載されている。
ステップS7004:主制御CPU72は、ワードデータ選択処理を実行する処理を実行する。この処理では、事前に設定したHLレジスタ(普通遊技ジャンプテーブルのアドレス)及びAレジスタ(普通遊技管理フェーズの値)を元に、これから呼び出すモジュールの先頭アドレスがHLレジスタにセットされる。
ステップS7006:主制御CPU72は、普通遊技タイマをロードする処理を実行する。この処理では、普通遊技タイマ(現在の状態に留まる時間が設定されているタイマ)をDEレジスタに設定する。
ステップS7008:主制御CPU72は、普通遊技に関する対象モジュールをコールする処理を実行する。この処理では、設定された6種類のいずれかのモジュールを呼び出す処理を実行する。対象モジュールは、普通遊技管理フェーズの値に応じたモジュールであり、例えば、主制御CPU72は、普通遊技管理フェーズの値が「00H」であれば、普通図柄変動前処理を呼び出す処理を実行し、普通遊技管理フェーズの値が「01H」であれば、普通図柄変動中処理を呼び出す処理を実行し、普通遊技管理フェーズの値が「02H」であれば、普通図柄停止表示中処理を呼び出す処理を実行する。
以上の処理を終えると、主制御CPU72は、割込管理処理(図14)に復帰する。
〔普通図柄変動前処理〕
図70は、普通図柄変動前処理の手順例を示すフローチャートである。
ステップS7010:主制御CPU72は、普通図柄保留球数カウンタが0であるか否かを確認する処理を実行する。
その結果、普通図柄保留球数カウンタが0であることを確認した場合(Yes)、主制御CPU72は、普通遊技管理処理(図69)に復帰する。一方、普通図柄保留球数カウンタが0であることを確認できない場合(No)、主制御CPU72は、ステップS7012を実行する。
ステップS7012:主制御CPU72は、普通図柄記憶エリアシフト処理を実行する。この処理では、主制御CPU72はRAM76の乱数記憶領域(普通図柄当り決定乱数記憶1)に記憶されている抽選用乱数(普通図柄当り決定乱数)を読み出し、これを例えば普通図柄当り決定乱数記憶0(当該領域)に保存する。このとき2つ以上のセクションに乱数が記憶されていれば、主制御CPU72は第1セクション(普通図柄当り決定乱数記憶1)から乱数を読み出し、残った乱数(普通図柄当り決定乱数記憶2〜4)を1つずつ前のセクション(普通図柄当り決定乱数記憶1〜3)に移動(シフト)させる。普通図柄当り決定乱数記憶0に保存された乱数は、以降の普通図柄当り判定処理で当否抽選に使用される。
ステップS7014:主制御CPU72は、普通図柄当り判定処理を実行する。なお、処理の詳細は後述する。
ステップS7016:主制御CPU72は、普通図柄停止図柄番号決定処理を実行する。この処理では、主制御CPU72は、当否別の普通図柄停止図柄番号を決定する処理を実行する。主制御CPU72は、はずれの場合は、普通図柄表示装置33によるはずれ時の停止図柄番号データをセットし、当選の場合は、普通図柄表示装置33による当り時停止図柄番号を決定する。
ステップS7018:主制御CPU72は、普通図柄変動時間設定処理を実行する。変動時間は遊技状態及び普通図柄抽選の当否の結果を考慮して決定する。なお、変動時間は、当選時とはずれ時とで異なる変動時間としてもよいし、共通の変動時間としてもよい。
ステップS7020:主制御CPU72は、普通図柄変動開始時ラムセットテーブルのアドレスをセットする処理を実行する。
ステップS7022:主制御CPU72は、ラムセット処理を実行する。
ステップS7020及びステップS7022の処理を実行することにより、普通図柄の変動開始時に必要となるRAMの設定やコマンドの生成・送信処理が実行される。
以上の処理を終えると、主制御CPU72は、普通遊技管理処理(図69)に復帰する。
〔普通図柄当り判定処理〕
図71は、普通図柄当り判定処理の手順例を示すフローチャートである。
ステップS7020:主制御CPU72は、特別図柄状態フラグをロードする処理を実行する。特別図柄状態フラグの値は状態オフセットの値となる。なお、特別図柄状態フラグは、普通図柄の当選確率が低確率である場合(非時間短縮状態である場合)に「0」となり、普通図柄の当選確率が高確率である場合(時間短縮状態である場合)に「1」となる。主制御CPU72は、遊技状態が切り替わる際に特別図柄状態フラグの値を設定する。
ステップS7022:主制御CPU72は、普通図柄当り判定選択テーブルの先頭アドレスをセットする処理を実行する。
ステップS7024:主制御CPU72は、ダブルバイト選択処理を実行する処理を実行する。
ステップS7026:主制御CPU72は、普通図柄当り決定乱数記憶0をロード(Dレジスタにロード)する処理を実行する。
ステップS7028:主制御CPU72は、ワードデータ判定処理を実行する。この処理によって普通図柄抽選の結果が当りかはずれかが判定される。
ワードデータ判定処理の具体的な処理の内容は省略するが、簡単に説明すると、最初に、HLレジスタに格納されているアドレスが示すデータテーブルの内容(下限値)と、Dレジスタに格納されている乱数値とを比較する処理が実行され、次にHLレジスタの値に1が加算されて上限値と乱数値とを比較する処理が実行される。そして、当りの範囲に入っていれば「Cレジスタ=1」となり、当りの範囲に入っていなければ、「Cレジスタ=0」となる。このため、主制御CPU72は、「Cレジスタ」の値によって、普通図柄抽選の当否を判定することができる。
ステップS7030:主制御CPU72は、普通図柄当り情報〔01H〕をセットする処理を実行する。この処理により、当選時の値が仮に設定される。
ステップS7032:主制御CPU72は、普通図柄当り決定乱数記憶0に記憶されている乱数が当りの範囲内にあるか否かを判定する処理を実行する。具体的には、主制御CPU72は、「Cレジスタ=1」であるか否かを確認する処理を実行する。
その結果、普通図柄当り決定乱数記憶0に記憶されている乱数が当りの範囲内にあると判定した場合、すなわち、「Cレジスタ=1」であることを確認した場合(Yes)、主制御CPU72は、ステップS7036を実行する。一方、普通図柄当り決定乱数記憶0に記憶されている乱数が当りの範囲内にあると判定しなかった場合、すなわち、「Cレジスタ=0」であることを確認した場合(No)、主制御CPU72は、ステップS7034を実行する。
ステップS7034:主制御CPU72は、普通図柄はずれ情報〔00H〕をセットする処理を実行する。この処理により、当選時の値が仮に設定された状況が取り消される。
ステップS7036:主制御CPU72は、普通図柄当り情報〔01H〕又は普通図柄はずれ情報〔00H〕を普通図柄当りフラグにセーブする処理を実行する。普通図柄当りフラグの値は、その後の普通遊技管理処理の中で、当選したか否かを判定する際に使用される。
以上の処理を終えると、主制御CPU72は、普通図柄変動前処理(図70)に復帰する。
〔ダブルバイト選択処理〕
図72は、ダブルバイト選択処理の手順例を示すフローチャートである。
ステップS7030:主制御CPU72は、選択アドレスに選択オフセットを加算する処理を実行する。
ステップS7032:主制御CPU72は、加算結果アドレスで示すオフセットデータをロードする処理を実行する。
ステップS7034:主制御CPU72は、加算結果アドレスにオフセットデータを加算する処理を実行する。
以上の処理を終えると、主制御CPU72は、呼び出し元に復帰する。
〔普通図柄当り判定処理〕
図73は、普通図柄当り判定処理のプログラムを示す図である。
このプログラムにおいては、最初の3行の命令によって普通図柄当り判定テーブルを選択する処理を実行し、4行目以下の命令によって普通図柄当り判定処理を実行する。
最初の「LDQ A,(LOW R_ZTN_FLG)」は、特別図柄状態フラグ(状態オフセット)をロードする処理であり、特別図柄状態フラグ(R_ZTN_FLG)の値をAレジスタにロードする。
次の「LD HL,D_JDG_FHT」は、普通図柄当り判定選択テーブルのアドレスをセットする処理であり、普通図柄当り判定選択テーブルの先頭アドレスをHLレジスタにロードする。
次の「RST DBLBYTE」は、ダブルバイト選択処理を呼び出す処理であり、リスタート領域に配置されているダブルバイト選択処理を呼び出す。
次の「LDQ DE,(LOW R_MFZ_ATA_0)」は、普通図柄当り決定乱数記憶0に記憶されている乱数をロードする処理であり、普通図柄当り決定乱数記憶0に記憶されている普通図柄当り決定乱数をDEレジスタにロードする。
次の「CALLF WORDJDG」は、ワードデータ判定処理を呼び出す処理である。
次の「LD A,@FZ__HIT」は、普通図柄当り情報[01H]をセットする処理であり、Aレジスタに「@FZ__HIT」の値(01H)をロードする。
次の「JR C,FATAJDG_10」は、普通図柄当り決定乱数記憶0に記憶されている乱数が当りの範囲内であれば、「FATAJDG_10:(ラベル)」まで分岐する処理である。
次の「XOR A」は、普通図柄はずれ情報[00H]をセットする処理であり、Aレジスタに「00H」を設定している。ここで、Aレジスタに0を設定する場合に、LD命令ではなくXOR命令を利用しているのは、XOR命令の方がプログラム容量を少なくすることができるからである(XOR命令=1バイト、LD命令=2バイト)。
次の「LDQ (LOW R_FZ__HIT),A」は、普通図柄当りフラグにセーブする処理であり、Aレジスタの値を普通図柄当りフラグ(R_FZ__HIT)にロードする。
次の「RET」は、呼び出し元に復帰する処理である。
〔プログラムの解説〕
ここでは、普通図柄当り判定処理におけるダブルバイト選択処理の使用方法について説明する。この処理では、普通図柄抽選の当選確率が低確率である場合(非時間短縮状態)と普通図柄抽選の当選確率が高確率である場合(時間短縮状態)とで当りの範囲を異ならせて普通図柄抽選の当否を判定しているる。
普通図柄抽選の当選確率は、通常状態である非時間短縮状態(大当り中や潜伏中も含めてもよい。)では低確率であり、時間短縮状態(確率変動中及び時短中)では高確率となる。
図73中(1)では、特別図柄選択フラグを読み込み、それをオフセット値(状態オフセット)とする。
特別図柄状態フラグは時短状態を表しており、特別図柄状態フラグの値が「0」である場合、普通図柄抽選の当選確率は低確率であり、特別図柄状態フラグの値が「1」である場合、普通図柄抽選の当選確率は高確率となる。
図73中(2)では、状態別の抽選データテーブルへのオフセットをまとめたデータテーブル(普通図柄当り判定選択テーブル)の先頭アドレスを設定している。
図73中(3)では、ダブルバイト選択処理を呼び出し、目的のテーブル(普通図柄低確率時当り判定テーブル又は普通図柄高確率時当り判定テーブル)の先頭アドレスを取得する。
そして、それ以降のプログラムでは、目的のテーブルの先頭アドレスに基づいて、普通図柄抽選の当り判定を実行する。
ここで、本実施形態では、普通図柄当り判定処理に用いるテーブルとして、遊技状態に応じた2個のテーブルを用意している。2個のテーブルは、以下の通りである。
図74は、普通図柄低確率時当り判定テーブル及び普通図柄高確率時当り判定テーブルを示す図である。
普通図柄低確率時当り判定テーブルには、2バイトのデータが2並んで配置されている(DWで定義される)。
最初の「D_JDG_FHT_L:」は、普通図柄低確率時当り判定テーブルを示すラベルであり、一番上の「DW @FHT_BTM」とアドレスは一致している。
先頭の「DW @FHT_BTM」は、普通図柄当り下限値であり、低確率時(非時間短縮状態)での当選の下限値を示している。例えば、「DW @FHT_BTM」には、「0100H(1)」の値が格納される。なお、「01」が下位の値であり、「00」が上位の値を示している。
次の「DW @FHT_TOP_L」は、普通図柄当り上限値であり、低確率時(非時間短縮状態)での当選の上限値を示している。例えば、「DW @FHT_TOP_L」には、「0100H(1)」の値が格納される。
なお、下限値と上限値とが同じ値であるため、乱数が1の場合にしか当選とならない。
普通図柄高確率時当り判定テーブルには、2バイトのデータが2並んで配置されている(DWで定義される)。
最初の「D_JDG_FHT_H:」は、普通図柄高確率時当り判定テーブルを示すラベルであり、一番上の「DW @FHT_BTM」とアドレスは一致している。
先頭の「DW @FHT_BTM」は、普通図柄当り下限値であり、高確率時(時間短縮状態)での当選の下限値を示している。例えば、「DW @FHT_BTM」には、「0100H(1)」の値が格納される。この値は、低確率時と共通である。
次の「DW @FHT_TOP_H」は、普通図柄当り上限値であり、高確率時(時間短縮状態)での当選の上限値を示している。例えば、「DW @FHT_TOP_H」には、「FFFFH(65535)」の値が格納される。
そして、このような2個のテーブルとは別に、2個のテーブルの先頭アドレスへのオフセットをまとめたテーブルを用意する。オフセットをまとめたテーブルは、プログラム上では、前述の2個のテーブル(普通図柄低確率時当り判定テーブル及び普通図柄高確率時当り判定テーブル)の直前に配置する。
図75は、普通図柄当り判定選択テーブルを示す図である。
普通図柄当り判定選択テーブルには、1バイトのデータが2並んで配置されている(DBで定義される)。
先頭の「DB D_JDG_FHT_L − $」は、普通図柄低確率時当り判定テーブルへのオフセットであり、非時間短縮状態で普通図柄抽選を実行する場合に用いられるデータである。例えば、「DB D_JDG_FHT_L − $(普通図柄低確率時当り判定テーブルへのオフセット)」には、「02」の値が格納される。
次の「DB D_JDG_FHT_H − $」は、普通図柄高確率時当り判定テーブルへのオフセットであり、時間短縮状態で普通図柄抽選を実行する場合に用いられるデータである。例えば、「DB D_JDG_FHT_H − $」には、「05」の値が格納される。
なお、「D_JDG_FHT_L」は、普通図柄低確率時当り判定テーブルの先頭アドレスを示しており、「D_JDG_FHT_H」は、普通図柄高確率時当り判定テーブルの先頭アドレスを示しており、「$」は「$」が記載されている地点のアドレス(現在のアドレス)を示している。
このような方法(上記のようなテーブル構成を用いる方法)は、「個々のデータが大きい場合や、オフセット値が255(16進数でFF)では足りない場合」に対応できないが、遊技機で使用するプログラムデータテーブルは小さいものが多いため、多くの場合に使用可能である。
図76は、ダブルバイト選択処理のプログラム(実施形態)を示す図である。
入力レジスタ(引数)は、呼び出し元で設定されるものであり、Aレジスタに選択オフセット(例えば、状態オフセット)が設定され、HLレジスタに選択アドレス(例えば、普通図柄当り判定選択テーブルの先頭アドレス)が設定される。
出力レジスタ(戻り値)は、本モジュールで設定されて呼び出し元で参照されるものであり、HLレジスタに選択結果アドレス(普通図柄低確率時当り判定テーブルの先頭アドレス又は普通図柄高確率時当り判定テーブルの先頭アドレス)が設定される。
保護レジスタ(本モジュールで値が変化しないレジスタ)は、BCレジスタ、DEレジスタとなっている。
最初の「ADDWB HL,A」は、選択アドレスに選択オフセットを加算する処理であり、HLレジスタの下位バイトにAレジスタの値が加算される。
次の「LD A,(HL)」は、加算結果アドレスにオフセットデータを加算する処理であり、HLレジスタが示しているアドレスに格納されているデータをAレジスタのデータに加算する。
次の「ADDWB HL,A」は、加算結果アドレスにオフセットデータを加算する処理であり、HLレジスタの下位バイトにAレジスタの値が加算される。
次の「RET」は、呼び出し元に復帰する処理である。
〔プログラムの解説〕
ダブルバイト選択処理は、第2のオフセットを並べたデータテーブルの先頭アドレス(HLレジスタ)と第1のオフセット値(状態オフセット、Aレジスタ)をセットした状態で呼び出される。データテーブルの先頭アドレス(HLレジスタ)に第1のオフセット値(Aレジスタ)を加算した後、加算値が示すアドレスに格納されている第2のオフセット値を更に加算することで、目的のデータテーブルの先頭アドレスを得ることができる。
ダブルバイト選択処理は、遊技機において、プログラムデータの使用量を少なくするために使用する。
ダブルバイト選択処理は、例えば、複数存在するテーブルの中から1つを選択し、選択したテーブルの先頭アドレスを取得したい場合に利用する。
ダブルバイト選択処理は、リスタート領域に配置してRST命令で呼び出すようにしてもよく、リスタート領域以外の領域に配置してCALL命令で呼び出すようにしてもよい。
ここで、ダブルバイト選択処理のプログラムは、以下のように変形することもできる。
(プログラムの1行目)「RST BYTESEL」
この処理は、バイトデータ選択処理を呼び出す処理である。
(プログラムの2行目)「ADDWB HL,A」
この処理は、HLレジスタの下位バイトとAレジスタのバイトを加算する処理である。
(プログラムの3行目)「RET」
この処理は、呼び出し元に復帰する処理である。
変形例のダブルバイト選択処理のプログラムは、実施形態と同様の処理内容を実行することができ、実行時間については実施形態ほどの改善効果は得られないものの比較例のプログラムよりも実行時間を短縮することができ、しかも、実施形態のプログラムよりもプログラムの使用容量を抑えることができる。
図77は、普通図柄当り判定選択テーブル、普通図柄低確率時当り判定テーブル及び普通図柄高確率時当り判定テーブルの配置例を示す図である。
本実施形態では、普通遊技の抽選に用いるテーブルについて、3つの各テーブル(普通図柄当り判定選択テーブル、普通図柄低確率時当り判定テーブル及び普通図柄高確率時当り判定テーブル)が以下のように配置されている。なお、アドレス値はあくまで例示である。
第2のオフセット値をまとめた普通図柄当り判定選択テーブル(D_JDG_FHT)が1200H〜1201H番地に配置される。
普通図柄低確率時当り判定テーブル(D_JDG_FHT_L)が1202H〜1205H番地に配置される。
普通図柄高確率時当り判定テーブル(D_JDG_FHT_H)が1206H〜1209H番地に配置される。
1200H番地には、D_JDG_FHT(ラベル)が配置され、データとして「02」が格納され、データの内容は、低確率時(非時間短縮状態)の判定テーブルの番地(D_JDG_FHT_L)へのオフセット(02H=1202H−1200H)となる(低確率時に使用する第2のオフセット)。
1201H番地には、データとして「05」が格納され、データの内容は、高確率時(時間短縮状態)の判定テーブルの番地(D_JDG_FHT_H)へのオフセット(05H=1206H−1201H)となる(高確率時に使用する第2のオフセット)。
1202H番地には、D_JDG_FHT_L(ラベル)が配置され、データとして1202H番地及び1203H番地に「0100」が格納され、データの内容は、低確率時の当り下限値(1)となる。
1204H番地及び1205H番地には、データとして「0100」が格納され、データの内容は、低確率時の当り上限値(1)となる。
1206H番地には、D_JDG_FHT_H(ラベル)が配置され、データとして1206H番地及び1207H番地に「0100」が格納され、データの内容は、高確率時の当り下限値(1)となる。
1208H番地及び1209H番地には、データとして「FFFF」が格納され、データの内容は、高確率時の当り上限値(65535)となる。
そして、例えば、高確率(時間短縮状態)で普通図柄抽選を実行したい場合は、HLレジスタに1200H(オフセット値をまとめたテーブルの先頭番地)がセットされ、また、Aレジスタに01Hがセットされた状態で、ダブルバイト選択処理(図76)が呼び出される。
ダブルバイト選択処理では、図76中(1)において、まずHLレジスタの値にAレジスタの値が加算される。この結果、HLレジスタの値が1201Hになる。
次に、図76中(2)において、1201H番地に格納されているデータが、Aレジスタに読み込まれる。
最後に、図76中(3)において、HLレジスタの値にAレジスタの値が加算される。計算結果は、1201H+5H=1206Hとなり、これが最終的なHLレジスタの値となる。そして、この値は、普通図柄高確率時当り判定テーブル(D_JDG_FHT_H)の先頭アドレスとなっており、呼び出し元でこの普通図柄高確率時当り判定テーブルの先頭アドレスを参照しながら、普通図柄抽選の当り判定を実行する。
〔ダブルバイト選択処理のまとめ〕
このように、ダブルバイト選択処理(アドレス算出モジュール)は、第1レジスタ(Aレジスタ)の第1加算値データ(状態オフセットの値、特別図柄状態フラグの値)と第2レジスタ(HLレジスタ)の基本アドレスデータ(普通図柄当り判定選択テーブルの先頭アドレス)とを加算して第1アドレスデータ(第2加算値データ(普通図柄低確率時当り判定テーブルの先頭アドレスへのオフセット又は普通図柄高確率時当り判定テーブルの先頭アドレスへのオフセット)が格納されているアドレスのデータ)を算出し、第1アドレスデータが示すアドレスに格納されている第2加算値データ(第2のオフセット)をロードし、ロードした第2加算値データを第1アドレスデータに加算して第2アドレスデータ(普通図柄低確率時当り判定テーブルの先頭アドレス又は普通図柄高確率時当り判定テーブルの先頭アドレス)を算出する。主制御装置70は、ダブルバイト選択処理(アドレス算出モジュール)を備えている。
また、ダブルバイト選択処理は、第1レジスタ(Aレジスタ)のデータと第2レジスタ(HLレジスタ)のデータとを1回の命令で加算する加算命令を用いて、第1アドレスデータ又は第2アドレスデータを算出する。
さらに、ダブルバイト選択処理は、引数として、第1レジスタ(Aレジスタ)に差分値(状態オフセット、第1のオフセット)が設定され、かつ、第2レジスタ(HLレジスタ)に、データテーブル(普通図柄当り判定選択テーブル)の先頭アドレスが設定された状態で呼び出される。
さらにまた、ダブルバイト選択処理は、戻り値として、第2アドレスデータ(普通図柄低確率時当り判定テーブルの先頭アドレス又は普通図柄高確率時当り判定テーブルの先頭アドレス)を設定する。
そして、ダブルバイト選択処理は、データテーブル(普通図柄当り判定選択テーブル、普通図柄低確率時当り判定テーブル及び普通図柄高確率時当り判定テーブルを1つのテーブルとしたデータテーブル)に格納されている複数のテーブルの中から1つのテーブルを選択し、選択した1つのテーブルの先頭アドレス(普通図柄低確率時当り判定テーブルの先頭アドレス又は普通図柄高確率時当り判定テーブルの先頭アドレス)を算出する処理を実行する。
その上、ダブルバイト選択処理が参照するデータテーブル(普通図柄当り判定選択テーブル、普通図柄低確率時当り判定テーブル及び普通図柄高確率時当り判定テーブルを1つのテーブルとしたデータテーブル)は、引数として受け取るHLレジスタの基本アドレスが先頭アドレスとなっており、第2加算値データ(普通図柄低確率時当り判定テーブルの先頭アドレスへのオフセット又は普通図柄高確率時当り判定テーブルの先頭アドレスへのオフセット)の次に第2アドレスデータ(普通図柄低確率時当り判定テーブルの先頭アドレス又は普通図柄高確率時当り判定テーブルの先頭アドレス)が配置されているテーブルである。
図78は、ダブルバイト選択処理のプログラム(比較例)を示す図である。
比較例のダブルバイト選択処理は、バイトデータ選択処理を2回呼び出し、その後にリータンする処理であり、この部分の処理は3バイトであるが、通常であれば空き領域となる残りの5バイトについては、別モジュール(状態オフセット取得処理:CONDOFS)の後半部分として使用されている。
最初の「RST BYTESEL」は、バイトデータ選択処理を呼び出す処理である。
次の「RST BYTESEL」は、バイトデータ選択処理を呼び出す処理である。
次の「RET」は、呼び出し元に復帰する処理である。
次の「CONDOFS_10:」は、状態オフセット取得処理の後半部分のジャンプ先を示すラベルである。
次の「XOR H」は、特別図柄状態フラグ(時短か否かを示すフラグ)と特別図柄確率状態フラグ(確変か否かを示すフラグ)を排他的論理和する処理である。
次の「ADD A,H」及び次の「ADD A,H」は、状態オフセットを算定する処理である。
次の「POP HL」は、HLレジスタを復帰する処理である。
次の「RET」は、呼び出し元に復帰する処理である。
比較例プログラムでは、ダブルバイト選択処理の中で処理を完結させ、かつ、別モジュールのプログラムを記載しないという発想がなかったため、プログラム容量が増加していた。
一方、本実施形態のプログラム例では、ダブルバイト選択処理の中で処理を完結させ、かつ、別モジュールのプログラムを記載しないという新たな発想を用いることにより、ダブルバイト選択処理のプログラム容量を削減している。また、本実施形態のプログラム例では、動作速度を優先するために、バイトデータ選択処理の呼び出しを実行していない。
実施形態のプログラムは、「ADDWB HL,A」が「1バイト」であり、「LD A,(HL)」が「1バイト」であり、「ADDWB HL,A」が「1バイト」であり、「RET」が「1バイト」であり、合計のプログラム容量が「4バイト」である。
一方、比較例のプログラムにおける実施形態のプログラムに対応する部分は、「RST BYTESEL」が「1バイト」であり、「RST BYTESEL」が「1バイト」であり、「RET」が「1バイト」であり、合計のプログラム容量が「3バイト」である。
そして、実施形態と比較例とを比較した場合、当該モジュールのプログラム容量は「1バイト」増加している。
しかし、実施形態と比較例とを比較した場合、実施形態の必要ステート数は25ステートであり、比較例の必要ステート数は80ステートであり、処理速度(プログラムの実行速度)を大幅に(68.75%)改善することができる。
このように、実施形態のダブルバイト選択処理では、RST領域の空き領域に状態オフセット取得処理(CONDOFS)の後半部分を配置していない。これは、状態オフセット取得処理(CONDOFS)の使用頻度が下がり、RST領域に配置されなくなったためであり、RST領域に関する8バイトの制限がなくなったことが理由である。
〔入賞頻度異常エラー判定処理〕
図79は、入賞頻度異常エラー判定処理の手順例を示すフローチャートである。以下、各手順に沿って説明する。
入賞頻度異常エラー判定処理は、状態管理処理(図14のS210)の中で呼び出される処理である。入賞頻度異常エラー判定処理においてワードカウンタ減算処理を実行する場合、例えば「1分間にN個以上の入賞があったらエラー」と判定する場合における1分間に相当するタイマ割込みの回数をカウントするために使用する。
ステップS7100:主制御CPU72は、入賞頻度異常エラーカウンタをロードする処理を実行する。入賞頻度異常エラーカウンタは、異常入賞となる入賞の数をカウントする変数である。
ステップS7102:主制御CPU72は、入賞頻度異常エラーカウンタを確認する処理を実行する。
ステップS7104:主制御CPU72は、入賞頻度異常エラーカウンタの値が入賞頻度異常エラー検出球数未満であるか否かを確認する処理を実行する。入賞頻度異常エラー検出球数の値は、期定数(例えば5個等)といったように予め設定されている。
その結果、入賞頻度異常エラーカウンタの値が入賞頻度異常エラー検出球数未満であることを確認した場合(Yes)、主制御CPU72は、ステップS7116を実行する。
一方、入賞頻度異常エラーカウンタの値が入賞頻度異常エラー検出球数未満であることを確認できない場合(No)、主制御CPU72は、ステップS7106を実行する。
ステップS7106:主制御CPU72は、入賞頻度異常エラーカウンタのアドレスを退避する処理を実行する。
ステップS7108:主制御CPU72は、入賞頻度異常エラー監視タイマのアドレスを退避する処理を実行する。
ステップS7110:主制御CPU72は、セキュリティ設定処理を呼び出す処理を実行する。なお、セキュリティ設定処理の内容は省略するが、簡単に説明すると、セキュリティに関する処理(サブコマンドの生成・送信処理、セキュリティタイマの設定処理、エラー状態の設定及び解除等の処理)を実行する。
ステップS7112:主制御CPU72は、入賞頻度異常エラー監視タイマのアドレスを復帰する処理を実行する。
ステップS7114:主制御CPU72は、入賞頻度異常エラーカウンタのアドレスを復帰する処理を実行する。この処理を終えると、主制御CPU72は、ステップS7120を実行する。
ステップS7116:主制御CPU72は、ワードカウンタ減算処理を呼び出す処理を実行する。処理の詳細は、後述する。
ステップS7118:主制御CPU72は、入賞頻度異常エラー監視タイマの値が0でないか否かを確認する処理を実行する。特に図示はしていないが、入賞頻度異常エラー監視タイマの初期値(例えば1分)は上位のモジュールで予め設定してもよく、本モジュールで設定してもよい。
その結果、入賞頻度異常エラー監視タイマの値が0でないことを確認した場合(Yes)、主制御CPU72は、呼び出し元に復帰する。
一方、入賞頻度異常エラー監視タイマの値が0でないことを確認できない場合(No)、すなわち、入賞頻度異常エラー監視タイマの値が0であることを確認した場合、主制御CPU72は、ステップS7120を実行する。
ステップS7120:主制御CPU72は、入賞頻度異常エラーカウンタをクリアする処理を実行する。
ステップS7122:主制御CPU72は、入賞頻度異常エラー監視タイマに入賞口入賞頻度異常エラー監視タイマ値をセーブする処理を実行する。この処理を実行することにより、入賞口入賞頻度異常エラー監視タイマ値が再設定されることになる。
以上の処理を終えると、主制御CPU72は呼び出し元に復帰する。
〔ワードカウンタ減算処理〕
図80は、ワードカウンタ減算処理の手順例を示すフローチャートである。
ワードカウンタ減算処理は、1バイトで収まらないカウンタ値(例えば2バイトのカウンタ値(ワードカウンタ、ワードデータ))を取り扱う処理である。
ステップS7200:主制御CPU72は、減算前のワードデータが0であるか否かを確認する。
その結果、減算前のワードデータが0であるとことを確認した場合(Yes)、主制御CPU72は、呼び出し元に復帰する。
一方、減算前のワードデータが0であることを確認できない場合(No)、すなわち、減算前のワードデータが1以上であることを確認した場合、主制御CPU72は、ステップS7202を実行する。
ステップS7202:主制御CPU72は、ワードデータを1減算する処理を実行する。
ステップS7204:主制御CPU72は、減算後のワードデータが0でないか否かを確認する。
その結果、減算後のワードデータが0でないことを確認した場合(Yes)、主制御CPU72は、呼び出し元に復帰する。
一方、減算後のワードデータが0でないことを確認できない場合(No)、すなわち、減算後のワードデータが0であることを確認した場合、主制御CPU72は、ステップS7206を実行する。
ステップS7206:主制御CPU72は、キャリーフラグをセットする処理を実行する。
以上の処理を終えると、主制御CPU72は呼び出し元に復帰する。
図81は、入賞頻度異常エラー判定処理のプログラムを示す図である。
図中において、最初の3つの命令は、入賞頻度異常エラーカウンタ確認処理に相当する。次の6個の命令は、入賞頻度異常エラー時処理に相当する。次の2つの命令は、入賞頻度異常監視タイマ確認処理に相当する。最後の2つの命令は、入賞頻度異常エラー関連設定処理に相当する。
最初の「LD A,(BC)」は、入賞頻度異常エラーカウンタをロードする処理であり、Aレジスタに、BCレジスタが示すアドレスに格納されているデータをロードする。BCレジスタが示すアドレスには、入賞頻度異常エラーカウンタの値が格納されている。なお、BCレジスタの値は上位のモジュールで設定されている。
次の「CP D」は、入賞頻度異常エラーカウンタを確認する処理であり、Dレジスタが示す値とAレジスタが示す値を比較する。入賞頻度異常エラーカウンタの値が入賞頻度異常エラー検出球数未満であれば(A<Dであれば)、キャリーフラグ(C)が設定される。
次の「JR C,NHI_CHK_10」は、入賞頻度異常エラー検出球数未満であれば分岐する処理であり、キャリーフラグ(C)が設定されていれば「NHI_CHK_10:(ラベル)」までジャンプする。
次の「PUSH BC」は、入賞頻度異常エラーカウンタのアドレスを退避する処理であり、BCレジスタの値を退避する。
次の「PUSH HL」は、入賞頻度異常エラー監視タイマのアドレスを退避する処理であり、HLレジスタの値を退避する。
次の「RST SEC_SET」は、リスタート領域に配置されているセキュリティ設定処理を呼び出す処理である。
次の「POP HL」は、入賞頻度異常エラー監視タイマのアドレスを復帰する処理である。
次の「POP BC」は、入賞頻度異常エラーカウンタのアドレスを復帰する処理である。
次の「JR NHI_CHK_20」は、「NHI_CHK_20:(ラベル)」までジャンプする処理である。
次の「CALLF WORDDEC」は、ワードカウンタ減算処理を呼び出す処理である。
次の「RET NTZ」は、入賞頻度異常エラー監視タイマが0でなければリターンする処理であり、第2ゼロフラグが0でなければ、呼び出し元に復帰する。なお、第2ゼロフラグを判断対象にするのは、以下のワードカウンタ減算処理の第2例のプログラムを採用している場合であり、以下のワードカウンタ減算処理の第1例のプログラムを採用している場合には、ゼロフラグを判断対象にする。
次の「CLR (BC)」は、入賞頻度異常エラーカウンタをクリアする処理であり、BCレジスタが示すアドレスに格納されているデータをクリアする。
次の「LDW (HL),@TMR_CHK_PZF」は、入賞頻度異常エラー監視タイマに入賞口入賞頻度異常エラー監視タイマ値をセーブ処理であり、BCレジスタが示すアドレスに格納されているデータに、入賞口入賞頻度異常エラー監視タイマ値(@TMR_CHK_PZF、例えば、1分間に対応する値)をロードする。
次の「RET」は、呼び出し元に復帰する処理である。
〔プログラムの解説〕
ここでは、入賞頻度異常エラー判定処理におけるワードカウンタ減算処理の使用方法について説明する。
入賞頻度異常エラー判定処理は、タイマ割込み処理内(状態管理処理内)で実行される処理の1つである。
入賞頻度異常エラー判定処理が呼ばれるに際し、各レジスタには予め入賞頻度異常エラー監視タイマのアドレス等がセットされている(入力レジスタ)。
入賞頻度異常エラー監視タイマは、予め1分間に相当するタイマ割込みの回数が設定されている。タイマ割込みのたびに、図81中(1)でワードカウンタ減算処理を呼び出し、その値を減算する。1分間が経過していない場合、図81中(2)で呼び出し元に復帰する。1分間が経過した場合、あるいは入賞頻度異常エラーが発生した場合、図81中(3)で入賞個数を数えるカウンタをクリアし、また図81中(4)で1分間のタイマを再セットする。
以上が、ワードカウンタ減算処理の呼び出し元の一例である。
図82は、ワードカウンタ減算処理のプログラム(第1例)を示す図である。
入力レジスタ(引数)は、呼び出し元で設定されるものであり、HLレジスタに減算対象ラムアドレスが設定される。
出力レジスタ(戻り値)は、本モジュールで設定されて呼び出し元で参照されるものであり、Fレジスタのゼロフラグに更新結果フラグが設定され、Fレジスタのキャリーフラグに更新結果フラグが設定される。
保護レジスタ(本モジュールで値が変化しないレジスタ)は、BCレジスタ、HLレジスタとなっている。
最初の「JTW Z,(HL),WORDDEC_99」は、減算前のワードデータが0であれば分岐する処理であり、HLレジスタが示すアドレスに格納されているデータ(例えば、入賞頻度異常エラー監視タイマ)が0であればゼロフラグ(Z)が設定され、ゼロフラグが設定されていれば、「WORDDEC_99:(ラベル)」にジャンプする。
次の「DECW (HL)」は、ワードデータを減算する処理であり、HLレジスタが示すアドレスに格納されているデータ(入賞頻度異常エラー監視タイマ)を1減算する。
次の「JTW NZ,(HL),WORDDEC_99」は、減算後のワードデータが0でなければリターンする処理である。
次の「SCF」は、キャリーフラグをセットする処理である。
次の「RET」は、呼び出し元に復帰する処理である。
〔プログラムの解説〕
ワードカウンタ減算処理は、HLレジスタで指定した2バイトのRWMの値が0(0000H)であれば何もせず、0でなければ(0001H〜FFFFH)1減算するモジュールである。また、減算後の値が1(0001H)から0(0000H)に変化した場合、それを示すフラグとしてキャリーフラグをセットする。
図82中(1)及び(3)で使用している「JTW命令」は、16ビットのデータが0であるか否かによって分岐を行う命令である。
なお、プログラムの命令においては、16ビットのデータが0であるか否かによってリターンする命令は存在しない。そのようにしたい場合には、本プログラム例のように、「JTW命令」によって分岐し、分岐した先でリターン命令を実行する必要がある。
図82中(1)では、「JTW命令」を使用し、HLレジスタで指定されたRWM(とその次のRWM)に書かれている16ビットの値が0か否かを判定する。
そして、ワードデータの値が0である場合、ゼロフラグはセットされ、そうでない場合、ゼロフラグはリセットされる。また、キャリーフラグは必ずリセットされる。ゼロフラグがセットされていれば、ラベル「WORDDEC_99」へ移行し、リセットされていれば次の命令に進む。
図82中(2)の「DECW (HL)」命令では、HLレジスタで指定されたRWM(とその次のRWM)に書かれている16ビットの値から1を減算する。減算した結果が0となった場合、第2ゼロフラグをセットし、そうでない場合に第2ゼロフラグをリセットする。なお、ゼロフラグ及びキャリーフラグの値等は結果によらず変化しない。
第1例のモジュールでは、16ビットの値が0であるか否かについてゼロフラグを設定し、呼び出し元に返すものとしている。これを実現するために、図82中(3)ではもう一度「JTW命令」を実行し、16ビットの値が0であるか否かをゼロフラグに反映させている。
そして、更新後の16ビットの値が0でない場合、ゼロフラグがリセットされ、「WORDDEC_99」へ移行する。更新後の16ビットの値が0である場合、ゼロフラグがセットされ、次の命令に進む。
結局のところ、16ビットの値が1から0となった場合のみ、図82中(4)の「SCF命令」が実行され、キャリーフラグがセットされる。それ以外の場合は、図82中(1)又は(3)の「JTW命令」によってキャリーフラグはリセットされた状態のまま呼び出し元に復帰する。
図83は、ワードカウンタ減算処理のプログラム(第2例)を示す図である。
入力レジスタ(引数)は、呼び出し元で設定されるものであり、HLレジスタに減算対象ラムアドレスが設定される。
出力レジスタ(戻り値)は、本モジュールで設定されて呼び出し元で参照されるものであり、Fレジスタの第2ゼロフラグに更新結果フラグが設定され、Fレジスタのキャリーフラグに更新結果フラグが設定される。
保護レジスタ(本モジュールで値が変化しないレジスタ)は、BCレジスタ、HLレジスタとなっている。
最初の「JTW Z,(HL),WORDDEC_99」は、減算前のワードデータが0であれば分岐する処理であり、HLレジスタが示すアドレスに格納されているデータ(例えば、入賞頻度異常エラー監視タイマ)が0であればゼロフラグ(Z)が設定され、ゼロフラグが設定されていれば、「WORDDEC_99:(ラベル)」にジャンプする。
次の「DECW (HL)」は、ワードデータを減算する処理であり、HLレジスタが示すアドレスに格納されているデータ(例えば、入賞頻度異常エラー監視タイマ)を1減算する。
次の「RET NTZ」は、減算後のワードデータが0でなければリターンする処理である。この処理が、第1例のプログラムとは異なる。
次の「SCF」は、キャリーフラグをセットする処理である。
次の「RET」は、呼び出し元に復帰する処理である。
〔プログラムの解説〕
図83中(1)で、HLレジスタが示す2バイトのデータが0000Hであるかの判定を行う。内部的に2バイトのデータと0000Hの比較が行われ、データの値によらずキャリーフラグがリセットされる。2バイトのデータの値が0000Hである場合に限りゼロフラグがセットされ、「WORDDEC_99」へジャンプし、そのまま呼び出し元にリターンする。なお、「2バイトのデータの値が0000Hであればリターン」としたいが、そのような命令は存在しない。
また、JTW命令においては、第2ゼロフラグ(TZ)はゼロフラグ(Z)と同様に変化する。このため、2バイトのデータの値が0000Hである場合は、第2ゼロフラグがセットされた状態で呼び出し元にリターンする。
一方、2バイトのデータが0000Hでない場合、そのまま図83中(2)へ進む。
図83中(2)では、2バイトのデータから1を減算する。この命令では、ゼロフラグ及びキャリーフラグは変化しないが、第2ゼロフラグが変化する。2バイトのデータが0001Hから0000Hとなった場合、第2ゼロフラグはセットされ、それ以外の場合、第2ゼロフラグはリセットされる。
図83中(3)では、その第2ゼロフラグを確認し、リセットされている場合は呼び出し元にリターンする。2バイトのデータが0001Hから0000Hに変化した場合のみ、図83中(4)へ進み、「SCF命令」によってキャリーフラグがセットされる。
〔第1例と第2例の比較〕
第2例のプログラムでは、親モジュール(呼び出し元のモジュール)に返すフラグ(戻り値)について、ゼロフラグから第2ゼロフラグに変更している。
このため、図83中(3)の部分が第1例のプログラムとは処理が異なり、「RET NTZ」命令となっている。図83中(3)では、第2ゼロフラグの内容によってリターンするかしないかを決定している。
そして、16ビットの値が1から0になったときのみ、図83中(4)でキャリーフラグが設定され、その他の場合は図83中(1)でキャリーフラグがリセットされた状態で親モジュールに戻る。
ワードカウンタ減算処理は、リスタート領域に配置してRST命令で呼び出すようにしてもよく、リスタート領域以外の領域に配置してCALL命令で呼び出すようにしてもよい。
図84は、ワードカウンタ減算処理を呼び出す際のRWMの値とフラグの関係を示す図である。
〔0000H〕
減算前のRWMの値(減算対象ラムアドレスが示すデータ)が「0000H」である場合、減算後のRWMの値は「0000H」である。第2ゼロフラグはセット(TZ)され、キャリーフラグはリセット(NC)される。
〔0001H〕
減算前のRWMの値が「0001H」である場合、減算後のRWMの値は「0000H」である。第2ゼロフラグはセット(TZ)され、キャリーフラグはセット(C)される。
〔0002H〕
減算前のRWMの値が「0002H」である場合、減算後のRWMの値は「0001H」である。第2ゼロフラグはリセット(NTZ)され、キャリーフラグはリセット(NC)される。
〔0003H以上〕
減算前のRWMの値が「0003H以上」である場合、減算後のRWMの値は「0003H以上の値から1を減算した値」である。第2ゼロフラグはリセット(NTZ)され、キャリーフラグはリセット(NC)される。
ここで、第2ゼロフラグとは、ゼロフラグとは異なるフラグである。ゼロフラグが変化しない命令に対しても、第2ゼロフラグは変化する。例えば、ロード命令(「LD A,0」)を実行した場合、ゼロフラグは変化しないが、第2ゼロフラグはセットされる(変化する)。第2ゼロフラグは、便利な反面、単純なロード命令でもフラグの内容が変化してしまうので、第2ゼロフラグをセットした後は、その他の命令を実行せずに、第2ゼロフラグを判定に用いることが好ましい。
〔ワードカウンタ減算処理のまとめ〕
このように、ワードカウンタ減算処理(演算処理モジュール)は、規定ビット数(16ビット)の規定レジスタ(HLレジスタ)が示すアドレスに格納されている規定データ(減算対象のデータ)を演算処理(1減算)するモジュールであって、演算処理を実行する前に、規定データが特別な値(0)であるか否かを判断し、特別な値であるとの判断結果である場合には特殊フラグ(ゼロフラグ)をセットし、特殊フラグがセットされている場合に演算処理を実行しない位置まで分岐(ジャンプ)する処理を1回の命令で実行する分岐命令(JTW命令)を用いて演算処理を実行するか否かを判定する。主制御装置70は、ワードカウンタ減算処理(演算処理モジュール)を備えている。
また、ワードカウンタ減算処理は、規定レジスタ(HLレジスタ)が示すアドレスに格納されているワードデータ(規定データ)を1回の命令で演算する演算命令(DECW命令)を用いて演算処理を実行する。
さらに、ワードカウンタ減算処理は、引数として、規定レジスタ(HLレジスタ)に規定データが格納されている領域のアドレスが設定された状態で呼び出される。
さらにまた、ワードカウンタ減算処理は、戻り値として、規定レジスタ(HLレジスタ)とは異なる特別レジスタ(Fレジスタ)に、特殊フラグ(例えばFレジスタのビット6のゼロフラグ又はFレジスタのビット5の第2ゼロフラグ)の値又は演算処理の結果を示す特別フラグ(例えばFレジスタのビット0のキャリーフラグ)の値を設定する。
図85は、バイトカウンタ減算処理のプログラム(比較例)を示す図である。
最初の「PUSH HL」は、HLレジスタを退避する処理である。
次の「LD E,(HL)」は、減算対象ラムから下位バイトデータを取得する処理である。
次の「INC HL」は、上位バイトデータ格納アドレスをセットする処理である。
次の「LD D,(HL)」は、減算対象ラムから上位バイトデータを取得する処理である。
次の「LD A,E」及び「OR D」は、減算前のワードデータを確認する処理である。
次の「JR Z,WORDDEC_10」は、減算前のワードデータが0であれば分岐する処理である。
次の「DEC DE」は、ワードデータを1減算する処理である。
次の「LD (HL),D」は、ワードデータの上位バイトを減算対象ラムにセーブする処理である。
次の「DEC HL」は、下位バイトのデータ格納アドレスをセットする処理である。
次の「LD (HL),E」は、ワードデータの下位バイトを減算対象ラムにセーブする処理である。
次の「LD A,E」及び「OR D」は、1減算後のワードデータを確認する処理である。
次の「JR NZ,WORDDEC_10」は、1減算後のワードデータが0でなければ分岐する処理である。
次の「SCF」は、キャリーフラグをセットする処理である。
次の「WORDDEC_10:」は、ジャンプ先のラベルである。
次の「POP HL」は、HLレジスタを復帰する処理である。
次の「RET」は、呼び出し元に復帰する処理である。
比較例のワードカウンタ減算処理は、2バイトのデータが0であるかを判定する場合、上位バイトと下位バイトの論理和を取り、論理和の結果が0であるかによって判定している。DEレジスタが0000Hであるかを調べるために、「LD A,E」命令と「OR D」命令を組み合わせている。また、データを減算した後も、上位バイトと下位バイトを別々に戻す必要があり、処理が長くなっている。さらに、更新結果がゼロであるか否かについては、従来のCPUには第2ゼロフラグが存在していなかったため、ゼロフラグを使用している。
第1例のプログラムは、「JTW Z,(HL),WORDDEC_99」が「3バイト」であり、「DECW (HL)」が「2バイト」であり、「JTW NZ,(HL),WORDDEC_99」が「3バイト」であり、「SCF」が「2バイト」であり、「RET」が「1バイト」であり、合計のプログラム容量が「11バイト」である。
第2例のプログラムは、「JTW Z,(HL),WORDDEC_99」が「3バイト」であり、「DECW (HL)」が「2バイト」であり、「RET NTZ」が「1バイト」であり、「SCF」が「2バイト」であり、「RET」が「1バイト」であり、合計のプログラム容量が「9バイト」である。
一方、比較例のプログラムは、「PUSH HL」が「1バイト」であり、「LD E,(HL)」が「1バイト」であり、「INC HL」が「1バイト」であり、「LD D,(HL)」が「1バイト」であり、「LD A,E」が「1バイト」であり、「OR D」が「1バイト」であり、「JR Z,WORDDEC_10」が「2バイト」であり、「DEC DE」が「1バイト」であり、「LD (HL),D」が「1バイト」であり、「DEC HL」が「1バイト」であり、「LD (HL),E」が「1バイト」であり、「LD A,E」が「1バイト」であり、「OR D」が「1バイト」であり、「JR NZ,WORDDEC_10」が「2バイト」であり、「SCF」が「2バイト」であり、「POP HL」が「1バイト」であり、「RET」が「1バイト」であり、合計のプログラム容量が「20バイト」である。
そして、第1例と比較例とを比較した場合、当該モジュールのプログラム容量は「9バイト」削減している。また、第2例と比較例とを比較した場合、当該モジュールのプログラム容量は「11バイト」削減している。
〔ゲームフロー(その1)〕
図86は、通常モードにて第1特別図柄抽選で当選が得られた場合に展開されるゲームフローについて説明する図である。
パチンコ機1で遊技を開始する場合、〔F1〕通常モードから遊技が開始される。「通常モード」は、特別図柄の当選確率は「低確率状態」であり、かつ、普通図柄の当選確率は「低確率状態」である(低確率非時間短縮状態)。〔F1〕通常モードでは、中始動入賞口26に遊技球を入球させることにより、第1特別図柄が変動を開始して遊技が進行していく。
〔F1〕通常モードにて、〔F2〕「13ラウンド通常図柄1」の大当りに当選すると、当選図柄に応じた大当り遊技が実行され、大当り遊技の終了後に、〔F3〕海岸モードに移行する。
〔F3〕海岸モードは、特別図柄の当選確率は「低確率状態」であり、かつ、普通図柄の当選確率は「高確率状態」である(低確率時間短縮状態)。〔F3〕海岸モードにて、当選の結果が得られずに〔F4〕特別図柄が100回変動すると、〔F1〕通常モードに移行する。
〔F1〕通常モードにて、〔F5〕「16ラウンド確変図柄1」、「13ラウンド確変図柄1」、「13ラウンド確変図柄2」、「7ラウンド確変図柄1」、「4ラウンド確変図柄1」の大当りに当選すると、当選図柄に応じた大当り遊技が実行され、大当り遊技の終了後に、〔F6〕花火ラッシュに移行する。
〔F6〕花火ラッシュは、特別図柄の当選確率は「高確率状態」であり、かつ、普通図柄の当選確率は「高確率状態」である(高確率時間短縮状態)。〔F6〕花火ラッシュでは、時短回数及び確変回数が10000回に設定されているため、実質的に次回の大当りまで花火ラッシュが継続する。
〔ゲームフロー(その2)〕
図87は、花火ラッシュ又は海岸モードにて第2特別図柄抽選で当選が得られた場合に展開されるゲームフローについて説明する図である。
〔F3〕海岸モード又は〔F6〕花火ラッシュにて、〔G1〕「7ラウンド通常図柄1」の大当りに当選すると、当選図柄に応じた大当り遊技が実行され、大当り遊技の終了後に、〔F3〕海岸モードに移行する。
一方、〔F3〕海岸モード又は〔F6〕花火ラッシュにて、〔G2〕「16ラウンド確変図柄2」、「16ラウンド確変図柄3」、「13ラウンド確変図柄3」、「10ラウンド確変図柄1」、「7ラウンド確変図柄2」、「7ラウンド確変図柄3」の大当りに当選すると、当選図柄に応じた大当り遊技が実行され、大当り遊技の終了後に、〔F6〕花火ラッシュに移行する。
なお、以上のゲームフローに関しては、代表的なゲームフローの一例を示したものであり遊技の流れをすべて網羅しているものではない。
〔演出画像の例〕
次に、パチンコ機1において実際に液晶表示器42に表示される演出画像について、いくつかの例を挙げて説明する。以上のように、パチンコ機1において大当りの内部抽選が行われると、主制御CPU72による制御の下で変動パターン(変動時間)を決定し、第1特別図柄や第2特別図柄による変動表示が行われる(図柄表示手段)。ただし、第1特別図柄や第2特別図柄そのものは7セグメントLEDによる点灯・点滅表示であるため、見た目上の訴求力に乏しい。そこでパチンコ機1では、演出図柄を用いた変動表示演出が行われている。
演出図柄には、例えば左演出図柄、中演出図柄、右演出図柄の3つが含まれており、これらは液晶表示器42の画面上で左・中・右に並んで表示される(図1参照)。各演出図柄は、例えば数字の「1」〜「9」とともにキャラクターが付された絵札をデザインしたものとなっている。ここで、左演出図柄、中演出図柄、及び右演出図柄は、いずれも数字が「9」〜「1」の降順に並んだ図柄列を構成している。このような図柄列は、画面上の左領域・中領域・右領域でそれぞれ縦方向に流れる(スクロールする)ようにして変動表示される。
図88は、特別図柄の変動表示及び停止表示に対応させた演出画像の例を示す連続図である。なお、ここでは非当選(はずれ)時の特別図柄の変動について、演出図柄を用いて行われる変動表示演出と停止表示演出(結果表示演出)の一例を表している。この変動表示演出は、特別図柄(ここでは第1特別図柄とするが、第2特別図柄でもよい。)が変動表示を開始してから、停止表示(確定停止を含む)するまでの間に行われる一連の演出に該当する。また、停止表示演出は、特別図柄が停止表示されたことと、そのときの内部抽選の結果を演出図柄の組み合わせとして表す演出である。ここでは先ず、制御処理の具体的な内容を説明する前に、本実施形態で採用されている変動1回ごとの変動表示演出と停止表示演出の基本的な流れについて説明する。
〔変動表示前〕
図88中(A):例えば、第1特別図柄が変動を開始する前の状態(デモ演出中でない状態)で、液晶表示器42の画面内には3本の演出図柄の列が大きく表示されている。このとき第1特別図柄又は第2特別図柄の停止表示に合わせて、演出図柄も停止表示された状態にある。
〔記憶表示演出〕
また、液晶表示器42の画面下部の変動前表示領域X1には、第1特別図柄及び第2特別図柄それぞれの作動記憶数を表すマーカ(図中に参照符号M1,M2を付す)が表示されている。これらマーカM1,M2は、それぞれの表示個数が第1特別図柄、第2特別図柄の作動記憶数(第1特別図柄作動記憶ランプ34a、第2特別図柄作動記憶ランプ35aの表示数)を表しており、遊技中の作動記憶数の変化に連動して表示個数も増減する。
また、マーカM1,M2は、視覚的な判別を容易にするため第1特別図柄に対応するマーカM1が例えば円(○)の図形で表示され、第2特別図柄に対応するマーカM2が例えばハートの図形で表示されている。図示の例では、マーカM1が4つとも点灯表示されることで第1特別図柄の作動記憶数が4個であることを表し、マーカM2が全て非表示(破線で示す)となっていることで第2特別図柄の作動記憶数が0個であることを表している(記憶表示演出)。
また、演出図柄の変動表示中、例えば液晶表示器42の画面右上には第4図柄(図中に参照符号Z1,Z2を付す)が表示されている。この第4図柄Z1,Z2は、左・中・右演出図柄に続く「第4の演出図柄」であり、演出図柄の変動表示中はこれに同期して変動表示されている。なお、第4図柄Z1,Z2は、単純なマーク(例えば「□」の図形)に色彩を付しただけのものであり、例えばその表示色を変化させることで変動表示を表現することができる。第4図柄Z1は、第1特別図柄に対応しており、第4図柄Z2は、第2特別図柄に対応している。
また、第4図柄Z1,Z2については、はずれに対応する態様(例えば白表示色)で停止表示されている。これは、停止表示演出が正しく行われており、パチンコ機1が正常に動作しているということを客観的に明らかにするためのものである。したがって、「はずれ」ではなく、実際に内部抽選の結果が例えば「16ラウンド大当り」であれば、それらに対応する態様(例えば赤表示色等)で第4図柄Z1,Z2は停止表示される。
〔変動表示演出開始〕
図88中(B):例えば第1特別図柄の変動開始に同期して、液晶表示器42の表示画面上で3本の図柄列がスクロール変動することで変動表示演出が開始される(図柄演出実行手段)。すなわち、第1特別図柄の変動開始に同期して、液晶表示器42の表示画面内で左演出図柄、中演出図柄、右演出図柄の列が縦方向にスクロールする(流れる)ようにして変動表示演出が開始される。また、マーカM1,M2は、変動開始前は、液晶表示器42の下方部分における帯状部分の変動前表示領域X1に表示されているが、変動開始後は、液晶表示器42の左下部分に表示されている台座画像による変動中表示領域X2に移動して、特別図柄(演出図柄)の変動が停止表示されるまでて表示され続ける(記憶画像表示維持演出)。なお、図中、演出図柄の変動表示は単に下向きの矢印で示されている。また、変動表示中、個々の演出図柄が透けた状態で表示(透過表示)されることにより、このとき表示画面内には演出図柄の背景となる画像(背景画像)が視認しやすい状態で表示されている。
この場合の背景画像は、例えば浴衣を着こなした女性キャラクターが長椅子に腰掛け、夕涼みでもするかのようにリラックスしている風景を表現したものである。このような背景画像は、演出上での滞在モードが例えば「通常モード」であることを表現している。本実施形態において「通常モード」は、時間短縮機能が非作動であり、また、確率変動機能も非作動である通常状態に対応するものとする。この他にも演出上で各種のモードが設けられており、モードごとに風景や情景の異なる背景画像が用意されている(状態表示演出実行手段)。これらモードの違いは、内部的な「時間短縮状態」に対応するものであったり、「高確率状態」に対応するものであったりする。ここでは特に図示していないが、この後、例えば表示画面内にキャラクターやアイテム等の画像を表示させることで、予告演出が行われる態様であってもよい。
また、演出図柄の変動表示中、液晶表示器42の画面左上では第4図柄Z1が変動表示されており、第4図柄Z1は、その表示色を変化させることで変動表示を表現している。
〔左図柄停止〕
図88中(C):例えば、ある程度の時間(変動時間の半分程度)が経過すると、最初に左演出図柄が変動を停止する。この例では、画面の左側位置に数字の「8」を表す演出図柄が停止したことを表している。なお、ここでは背景画像の図示を省略している(これ以降も同様)。
〔作動記憶数減少時の演出例〕
ここで、先の図88中(B)に示されているように、変動開始に伴って第1特別図柄の作動記憶数が1個分減少するため、それに連動してマーカM1の表示個数が1個分減少されている。例えば、それまでに作動記憶数が4個あったとすると、マーカM1において最も以前(古い)の記憶数表示が1個だけ変動中表示領域X2に移動され、内部抽選によって消費される演出が合わせて行われる。これにより、第1特別図柄に関して作動記憶数が消費されたということを演出上でも遊技者に教示することができる。
そして、図88中(C)の例においては、記憶順で先頭にあったマーカM1が変動中表示領域X2に移動することにより、変動前表示領域X1での表示が残り3個になったため、画面上に残った3つのマーカM1がそれぞれ1個分ずつ一方向(ここでは左方向)へずれていく演出が行われている。これにより、作動記憶数の変化の前後関係を正確に演出上で表現するとともに、遊技者に対して「作動記憶が消費されて1つ減った」ということや「作動記憶が消費されて特別図柄が変動中である」ということを直感的に分かりやすく教示することができる。
〔右演出図柄停止〕
図88中(D):左演出図柄に続いて、その後に右演出図柄が変動を停止する。この例では、画面の中側位置に数字の「3」を表す演出図柄が停止したことを表している。この時点で既にリーチ状態が発生しないことは確定しているので、今回の変動が非リーチ(通常)変動であるということが見た目上でほとんど明らかとなっている。なお、ここではすべりパターン等によるリーチ変動を除くものとする。「すべりパターン」とは、例えば一旦は数字の「7」を表す演出図柄が停止した後、図柄列が1図柄分すべって数字の「8」を表す演出図柄が停止し、それによってリーチに発展するというものである。あるいは、一旦は数字の「9」を表す演出図柄が停止した後、図柄列が逆向きに1図柄分すべって数字の「8」を表す演出図柄が停止し、それによってリーチに発展するパターンもある。また、その他にも例えば「5」等の全くかけ離れた数字を表す演出図柄が一旦停止した後、画面上にキャラクターが出現して右演出図柄列を再変動させると、数字の「8」を表す演出図柄が停止してリーチに発展するといったパターンもある。
〔停止表示演出〕
図88中(E):第1特別図柄の停止表示に同期して、最後の中演出図柄が停止する。今回の内部抽選の結果が非当選であって、第1特別図柄が非当選(はずれ)の態様で停止表示される場合、演出図柄も同様に非当選(はずれ)の態様で停止表示演出が行われる。すなわち、図示の例では、画面の中段位置に数字の「1」を表す演出図柄が停止したことを表しており、この場合、演出図柄の組み合わせは「8」−「1」−「3」のはずれ目であるため、今回の変動は通常の「はずれ」に該当したことが演出上で表現されている。このとき、第4図柄Z1は、はずれに対応する態様(例えば白表示色)で停止表示される。
また、停止表示演出が行われると、変動中表示領域X2に移動して表示を継続していたマーカM1も非表示となる。したがって、遊技者に対して「特別図柄の変動が終了した」ということを直感的に分かりやすく教示することができる。
以上は、1回の変動ごとに演出図柄を用いて行われる変動表示演出と停止表示演出(非当選時)の一例である。このような演出を通じて、遊技者に当選に対する期待感を抱かせるとともに、最終的に内部抽選の結果を演出上で明確に教示することができる。
また、上述した例は非当選時についてのものであるが、大当り(当選)時には変動表示演出中にリーチ演出が実行された後、停止表示演出において演出図柄が大当りの態様で停止表示される。このとき演出図柄の停止表示態様は、基本的には主制御CPU72によって内部的に選択された当選図柄(第1特別図柄表示装置34又は第2特別図柄表示装置35の停止表示態様)に対応させて選択される。
〔大当り時の演出例〕
図89は、大当り(当選)時に実行されるリーチ演出(スーパーリーチ演出)の流れを示す連続図である。ここではリーチ演出の他に、変動表示演出や停止表示演出及び予告演出が含まれるものとする。その他にも、変動表示演出中に実行される予告演出(リーチ発生前予告演出、リーチ発生後予告演出)の一例を説明する。
以下のリーチ演出は、例えば第1特別図柄表示装置34において大当り時の変動パターンによる変動表示が行われた後、第1特別図柄が大当りの態様(例えば7セグメントLEDの「己」,「ヨ」,「口」,「巳」,「F」,「E」,「L」,「Γ」等)で停止表示されるまでに実行される(リーチ演出実行手段)。なお、図89中、各演出図柄を数字のみに簡略化して示している。また、マーカM1,M2、第4図柄Z1,Z2、変動前表示領域X1及び変動中表示領域X2については図示を省略している(以下の図面でも同様)。以下、演出の流れに沿って説明する。
〔変動表示演出〕
図89中(A):例えば、第1特別図柄の変動開始に略同期して、液晶表示器42の画面上で左演出図柄、中演出図柄、右演出図柄の列が縦方向(例えば上から下)にスクロールするようにして変動表示演出が開始される。
〔リーチ発生前予告演出(1段階目)〕
図89中(B):次に、変動表示演出の比較的初期において、キャラクターの絵柄画像(絵札)を用いた1段階目のリーチ発生前予告演出が行われる。このリーチ発生前予告演出は、予め定められた順序にしたがって1段階目から複数段階目(例えば2〜5段階目)まで、段階的に態様の変化が進行していく予告演出である。このリーチ発生前予告演出で用いられる絵柄画像は、画面上で変動表示されている演出図柄の手前に位置し、例えば画面の左端からひょっこりと出現するようにして表示される(その他の出現の態様でもよい。)。なお、ここでいう「リーチ発生前予告」とは、いずれかの演出図柄が停止表示される前にリーチの可能性や大当りの可能性を予告するという意味である。このような「リーチ発生前予告演出」を実行することで、遊技者に対して「リーチに発展するかも知れない=大当りの可能性が高まる」という期待感を抱かせる効果が得られる。
〔リーチ発生前予告演出(2段階目)〕
図89中(C):リーチ発生前予告演出の1段階目の態様が実行された後、続いてリーチ発生前予告演出の態様の変化が2段階目に進行する。ここでは2段階目のリーチ発生前予告演出として、先とは違うキャラクターの絵柄画像を用いた演出が行われている。具体的には、画面の右端から別の絵柄画像が追加で出現し、先に表示されていた絵柄画像の前面に重なって表示される。また、このとき表示される絵柄画像は、先に表示されていた絵柄画像よりもサイズが大きい。そして、絵柄画像で表現されたキャラクターが台詞(例えば「リーチになるよ」等)を発するという、音響出力による演出もあわせて行われる。
このような2つ目の絵柄画像を用いたリーチ発生前予告演出(2段階目)は、先の図89中(B)で行われたリーチ発生前予告演出(1段階目)からさらに一歩進んだ発展型である。このように発展していく「リーチ発生前予告演出」の態様を称して、一般的に「ステップアップ予告」等と表現することがある。ここではリーチ発生前予告演出で2段階目の絵柄画像が出現する例を挙げているが、3段階目、4段階目、5段階目の絵柄画像が次々と出現して表示される演出態様であってもよい。また、例えば3段階目、4段階目、5段階目の絵柄画像が次々と出現して表示されるごとに、そのサイズが拡大されるものとしてもよい。なお、この段階でも演出図柄の変動表示は継続されている。いずれにしても、リーチ発生前予告演出の態様の変化をより多くの段階まで進行させることにより、今回の変動で大当りになる可能性(期待度)が高いことを遊技者に示唆することができる(例えば、5段階目まで進行すると最大の期待度を示唆する等。)。
〔左演出図柄の停止〕
図89中(D):変動表示演出の中期にさしかかり、やがて左演出図柄の変動表示が停止される。なお、この時点で画面の左側位置に数字の「5」を表す演出図柄が停止している。
〔リーチ状態の発生〕
図89中(E):そして左演出図柄に続き、例えば右演出図柄の変動表示が停止される。この時点で、画面の右側位置に数字の「5」を表す演出図柄が停止していることから、「5」−「変動中」−「5」のリーチ状態が発生している。そして画面上には、リーチ状態となる1本のラインを強調する画像が合わせて表示される。また、合わせて「リーチ!」等の音声を出力する演出が行われる。
リーチ状態の発生後、当選時のリーチ演出が実行される(ただし、この時点では未だ当選の結果は表出されていない。)。リーチ演出では、テンパイした数字(ここでは「5」)に対応する演出図柄だけが画面上に表示され、それ以外は表示されなくなる。なお、このとき演出図柄が画面の四隅にそれぞれ縮小された状態で表示される場合もある。
〔リーチ発生後予告演出(1回目)〕
図89中(F):リーチ状態が発生して暫くすると、例えば「ハート」の図形を表す画像が群をなして画面上を斜めに過ぎっていくリーチ発生後予告演出(1回目)が行われる。この場合、突然、画面上に「ハート群」の画像が流れていくように表示されるため、これによって遊技者に対する視覚的な訴求力を高めることができる。このような視覚的に賑やかなリーチ予告発生後予告演出を実行することで、遊技者に対してさらに大きな期待感を抱かせる効果が得られる。
〔リーチ演出の進行〕
図89中(G):1回目のリーチ発生後予告演出に続いて、例えば数字の「2」〜「6」を表す画像が画面上で立体的な列を構成した状態で表示され、列の先頭(手前)から「2」、「3」、「4」・・・という順番に画面から数字の画像が消去されていく演出が行われる。このような演出もまた、数字の「5」が最後まで消去されずに残ると「大当り」であることを遊技者に示唆(暗示)したり、想起させたりする目的で行われる。また、数字の「4」まで消去されて「5」が画面手前に残ると「大当り」であり、そして数字の「5」も消去されてしまうと「はずれ」であることを意味する。なお、はずれの場合、数字の「5」が消去された後の画面上に例えば数字の「6」が表示される。したがって、この間、数字の「2」、「3」、「4」と順番に画像が消去されていくに連れて、遊技者の緊張感や期待感も高まっていくことになる。そして、実際に画面上で数字の「4」まで消去され、数字の「5」が画面上に残った状態で演出が進行すると、「大当り」の可能性が高まるため、そこで遊技者の緊張感も一気に高まる。
〔リーチ発生後予告演出(2回目)〕
図89中(H):リーチ演出が終盤に近付いたところで、突然、画面上にキャラクターの画像が大写しに割って入るようにして表示され、そのキャラクターが何らかの台詞を発するという内容(又は、無言で微笑むという内容でもよい)のリーチ発生後予告演出(2回目)が行われる。この時点で例えばリーチ演出の内容は、「数字の「5」が消去されずに残れば、そのまま「5」−「5」−「5」の大当りの可能性が高まる」という展開である。したがって、このタイミングで大きくキャラクターの画像を出現させることにより、遊技者に対して「大当りになるかもしれない」という期待感を抱かせる効果が得られる。
上記とは別のリーチ演出として、例えば「数字の「2」〜「4」までが消去されてしまい、最後に数字の「5」が消去されずに残れば大当りになる」という展開もある。このようなタイミングでキャラクターの画像を出現させると、遊技者に対して「いよいよ大当りが近いかもしれない」という期待感を抱かせる効果が得られる。
〔停止表示演出〕
図89中(I):そして、最後の中演出図柄が停止する。この例では、「5」を表す演出図柄を画面の中央に停止表示させることにより、遊技者に対して大当りであるということを伝達することができる。
図89中(J):そして、例えば第1特別図柄の停止表示に略同期して、演出図柄としての停止表示演出が行われる。演出図柄の停止表示演出は、例えば左・中・右演出図柄をそれぞれ初期の大きさに復元した状態で行われる。このような停止表示演出を行うことで、最終的な当選種類が演出上で確定したことを遊技者に対して教示することができる。逆に言えば、演出上で不明確な停止表示演出を行うことにより、いずれの当選図柄で当選したのかということを遊技者に対して非開示としておくことができる。
なお、内部抽選の結果が非当選であれば、今回の変動対象である第1特別図柄がはずれ図柄で停止表示されるため、演出図柄も同様にはずれの態様で停止表示演出が行われる。この場合、画面の中央には「5」以外の数字「4」や「6」を表示することで、残念ながら今回の変動では大当りにならなかったことを知らせる演出が行われる。なお、このような演出は「はずれリーチ演出」として実行されるものである。
〔花火ラッシュの演出例〕
図90は、花火ラッシュの演出例を示す連続図である。この花火ラッシュは、「いずれかの確変図柄」に当選した場合の大当り遊技後に移行されるモードである。花火ラッシュは、高確率時間短縮状態である。以下、演出の流れについて順を追って説明する。
図90中(A):例えば、「いずれかの確変図柄」での大当り遊技終了後、特別図柄の変動表示が行われることで、「花火ラッシュ」の状態で演出図柄の変動表示が行われている。花火ラッシュの背景画像は、遊技者に対して花火のモチーフを深く印象付けるために、「夜空に花火が打ち上げられる情景」とともに「女性キャラクターが花火を観賞している様子」が表現された背景画像となっている。また、液晶表示器42の画面左上では第4図柄Z2が変動表示されている。
図90中(B):そして、大当り遊技終了後から1回目の変動(非当選時)が終了したことにより、すべての演出図柄が停止表示されている(「3」−「1」−「7」)。また、第4図柄Z2は、非当選の態様(例えば白色表示色)で停止表示されている。
図90中(C):次回の変動が開始されると、大当り遊技終了後から2回目の変動表示が行われる。なお、花火ラッシュ(高確率時間短縮状態)では、可変始動入賞装置28の作動が高頻度で行われるため、遊技者が右打ちを継続する限り、第2特別図柄の変動表示に伴う演出図柄の変動表示が行われることが多い。また、花火ラッシュにて当選の結果が得られた場合は、リーチ演出が実行されて大当りとなる。
〔海岸モードの演出例〕
図91は、海岸モードの演出例を示す連続図である。この海岸モードは、「いずれかの通常図柄」に該当した場合の大当り遊技の終了後に移行されるモードである。海岸モードは、「低確率時間短縮状態」である。以下、演出の流れについて順を追って説明する。
図91中(A):例えば、「いずれかの通常図柄」での大当り遊技の終了後、特別図柄の変動表示が行われることで、「海岸モード」の状態で演出図柄の変動表示が行われている。海岸モードの背景画像は、海岸モードのコンセプトである癒しの印象を表現するために、「砂浜」や「海」、「山」等の画像をモチーフとした背景画像となっている。また、液晶表示器42の画面左上では第4図柄Z2が変動表示されている。
図91中(B):そして、今回の変動(非当選時)が終了したことにより、すべての演出図柄が停止表示されている(「1」−「1」−「5」)。また、第4図柄Z2は、非当選の態様(例えば白色表示色)で停止表示されている。
図91中(C):そして、次回の変動が開始される。この海岸モードは、当選の結果が得られずに特別図柄が100回変動すると終了となる。海岸モードが終了すると低確率非時間短縮状態の通常モードに移行する。なお、海岸モードにて当選の結果が得られた場合は、リーチ演出が実行されて大当りとなる。
次に、以上の演出を具体的に実現するための制御手法の例について説明する。上述した変動表示演出や停止表示演出、リーチ演出、予告演出、記憶画像に関する演出、大役中演出等は、いずれも以下の制御処理を通じて制御されている。
〔演出制御処理〕
図92は、演出制御CPU126により実行される演出制御処理の手順例を示すフローチャートである。この演出制御処理は、例えば図示しないリセットスタート(メイン)処理とは別にタイマ割込処理(割込管理処理)の中で実行される。演出制御CPU126は、リセットスタート処理の実行中に所定の割込周期(例えば数十μs〜数ms周期)でタイマ割込を発生させ、タイマ割込処理を実行する。
演出制御処理は、コマンド受信処理(ステップS400)、作動記憶演出管理処理(ステップS401)、演出図柄管理処理(ステップS402)、表示出力処理(ステップS404)、ランプ駆動処理(ステップS406)、音響駆動処理(ステップS408)、演出乱数更新処理(ステップS410)及びその他の処理(ステップS412)のサブルーチン群を含む構成である。以下、各処理に沿って演出制御処理の基本的な流れを説明する。
ステップS400:コマンド受信処理において、演出制御CPU126は主制御CPU72から送信される演出用のコマンドを受信する。また、演出制御CPU126は受信したコマンドを解析し、それらを種類別にRAM130のコマンドバッファ領域に保存する。なお、主制御CPU72から送信される演出用のコマンドには、例えば特図先判定演出コマンド、変動パターン先判定コマンド、(特別図柄)作動記憶数増加時演出コマンド、(特別図柄)作動記憶数減少時演出コマンド、始動口入賞音制御コマンド、デモ演出用コマンド、抽選結果コマンド、変動パターンコマンド、変動開始コマンド、停止図柄コマンド、図柄停止コマンド、状態指定コマンド、ラウンド数コマンド、エラー通知コマンド、大当り終了演出コマンド、回数切りカウンタ値コマンド、停止表示時間終了コマンド、賞球内容コマンド、機種コマンド、オープニング指定コマンド等がある。
ステップS401:作動記憶演出管理処理では、演出制御CPU126は、マーカM1,M2を用いた記憶表示演出の実行を制御する(記憶表示演出実行手段)。なお、作動記憶演出管理処理の内容については、別の図面を参照しながらさらに後述する。
ステップS402:演出図柄管理処理では、演出制御CPU126は演出図柄を用いた変動表示演出や停止表示演出の内容を制御したり、第1可変入賞装置30又は第2可変入賞装置31の開閉動作時の演出内容を制御したりする(演出実行手段)。また、この処理において、演出制御CPU126は各種予告演出(リーチ発生前予告演出、リーチ発生後予告演出等)の演出パターンを選択する。なお、演出図柄管理処理の内容については、別の図面を参照しながらさらに後述する。
ステップS404:表示出力処理では、演出制御CPU126は演出表示制御装置144(表示制御CPU146)に対して演出内容の基本的な制御情報(例えば、第1特別図柄及び第2特別図柄それぞれの作動記憶数、作動記憶演出パターン番号、先読み予告演出パターン番号、変動演出パターン番号、変動時予告演出番号、背景パターン番号等)を指示する。これにより、演出表示制御装置144(表示制御CPU146及びVDP152)は指示された演出内容に基づいて液晶表示器42による表示動作を制御する(演出実行手段)。
ステップS406:ランプ駆動処理では、演出制御CPU126はランプ駆動回路132に対して制御信号を出力する。これを受けてランプ駆動回路132は、制御信号に基づいて各種ランプ46〜52や盤面ランプ53等を駆動(点灯又は消灯、点滅、輝度階調変化等)する。
ステップS408:次の音響駆動処理では、演出制御CPU126は音響駆動回路134に対して演出内容(例えば変動表示演出中やリーチ演出中、モード移行演出中、大当り演出中のBGM、大当り演出中の入賞時の効果音、音声データ等)を指示する。これにより、スピーカ54,55,56から演出内容に応じた音が出力される。
ステップS410:演出乱数更新処理では、演出制御CPU126はRAM130のカウンタ領域において各種の演出乱数を更新する。演出乱数には、例えば予告選択に用いられる乱数や通常の背景チェンジ抽選(演出抽選)に用いられる乱数等がある。
ステップS412:その他の処理では、例えば演出制御CPU126は可動体40fの駆動用ICに対して制御信号を出力する。可動体40fは可動体モータ57を駆動源として動作し、液晶表示器42による画像の表示と同期して、又は単独で演出を行う。
以上の演出制御処理を通じて、演出制御CPU126はパチンコ機1における演出内容を統括的に制御することができる。次に、演出制御処理の中で実行される作動記憶演出管理処理の内容について説明する。
〔作動記憶演出管理処理〕
図93は、作動記憶演出管理処理の手順例を示すフローチャートである。以下、手順例に沿って内容を説明する。
ステップS700:先ず演出制御CPU126は、主制御CPU72から作動記憶数増加時演出コマンドを受信したか否かを確認する。具体的には、演出制御CPU126はRAM130のコマンドバッファ領域にアクセスし、作動記憶数増加時演出コマンドが保存されているか否かを確認する。作動記憶数増加時演出コマンドが保存されていることを確認した場合(ステップS700:Yes)、演出制御CPU126はステップS702を実行する。なお、作動記憶数増加時演出コマンドが保存されていることを確認できない場合(ステップS700:No)、演出制御CPU126はステップS702を実行しない。
ステップS702:演出制御CPU126は、作動記憶数増加時演出選択処理を実行する。この処理では、演出制御CPU126は、第1特別図柄及び第2特別図柄に対応したマーカM1,M2を表示させる演出を選択する。
ステップS704:演出制御CPU126は、主制御CPU72から作動記憶数減少時演出コマンドを受信したか否かを確認する。具体的には、演出制御CPU126はRAM130のコマンドバッファ領域にアクセスし、作動記憶数減少時演出コマンドが保存されているか否かを確認する。作動記憶数減少時演出コマンドが保存されていることを確認した場合(ステップS704:Yes)、演出制御CPU126はステップS706を実行する。なお、作動記憶数減少時演出コマンドが保存されていることを確認できない場合(ステップS704:No)、演出制御CPU126はステップS706を実行しない。
ステップS706:演出制御CPU126は、作動記憶数減少時演出選択処理を実行する。この処理では、演出制御CPU126は、第1特別図柄及び第2特別図柄に対応したマーカM1,M2をスライドさせる演出を実行する。また、演出制御CPU126は、内部抽選により消費した抽選要素に対応するマーカを変動前表示領域X1から変動中表示領域X2に移動させる演出を選択する。変動中表示領域X2に移動させた記憶マーカは変動終了時に消去される。
以上の手順を終えると、演出制御CPU126は、演出制御処理(図92)に復帰する。
〔演出図柄管理処理〕
図94は、演出図柄管理処理の手順例を示すフローチャートである。演出図柄管理処理は、実行選択処理(ステップS500)、演出図柄変動前処理(ステップS502)、演出図柄変動中処理(ステップS504)、演出図柄停止表示中処理(ステップS506)及び可変入賞装置作動時処理(ステップS508)のサブルーチン群を含む構成である。以下、各処理に沿って演出図柄管理処理の基本的な流れを説明する。
ステップS500:実行選択処理において、演出制御CPU126は次に実行するべき処理(ステップS502〜ステップS508のいずれか)のジャンプ先を選択する。例えば、演出制御CPU126は次に実行するべき処理のプログラムアドレスをジャンプ先のアドレスとし、また、戻り先のアドレスとして演出図柄管理処理の末尾を「ジャンプテーブル」にセットする。いずれの処理を次のジャンプ先として選択するかは、これまでに行われた処理の進行状況によって異なる。例えば、未だ変動表示演出を開始していない状況であれば、演出制御CPU126は次のジャンプ先として演出図柄変動前処理(ステップS502)を選択する。一方、既に演出図柄変動前処理が完了していれば、演出制御CPU126は次のジャンプ先として演出図柄変動中処理(ステップS504)を選択し、演出図柄変動中処理まで完了していれば、次のジャンプ先として演出図柄停止表示中処理(ステップS506)を選択する。また、可変入賞装置作動時処理(ステップS508)は、主制御CPU72において大当り時可変入賞装置管理処理(図29中のステップS5000)が選択された場合や小当り時可変入賞装置管理処理(図29中のステップS6000)が選択された場合にジャンプ先として選択される。この場合、ステップS502〜ステップS506は実行されない。
ステップS502:演出図柄変動前処理では、演出制御CPU126は演出図柄を用いた変動表示演出を開始するための条件を整える作業を行う。また、この処理において、演出制御CPU126は各種の条件(抽選結果、当選種類、変動パターン等)に応じてリーチ演出の内容を選択したり、予告演出についての演出パターン(先読み予告演出パターン以外のリーチ発生前予告パターン、リーチ発生後予告パターン等)を選択したりする。その他にも演出制御CPU126は、パチンコ機1がいわゆる客待ち状態である場合のデモ演出の制御も行う。なお、具体的な処理の内容は、別のフローチャートを用いて後述する。
ステップS504:演出図柄変動中処理では、演出制御CPU126は必要に応じて演出表示制御装置144(表示制御CPU146)に指示する制御情報を生成する。例えば、演出図柄を用いた変動表示演出を実行中に演出切替ボタン45を用いた演出を行う場合、遊技者による演出ボタンの操作の有無を演出制御CPU126が監視するとともに、その結果に応じた演出内容(ボタン演出)の制御情報を表示制御CPU146に対して指示する。
ステップS506:演出図柄停止表示中処理では、演出制御CPU126は内部抽選の結果に応じた態様で演出図柄や動画像を用いた停止表示演出の内容を制御する。すなわち、演出制御CPU126は演出表示制御装置144(表示制御CPU146)に対して変動表示演出の終了と停止表示演出の実行を指示する。これを受けて演出表示制御装置144(表示制御CPU146)は、実際に液晶表示器42の表示画面内でそれまで実行していた変動表示演出を終了させ、停止表示演出を実行する。これにより、特別図柄の停止表示に略同期して停止表示演出が実行され、遊技者に対して内部抽選の結果を演出的に教示(開示、告知、報知等)することができる(演出実行手段)。なお、小当り時には、はずれと同様か近似した態様で停止表示演出を実行することができる。
ステップS508:可変入賞装置作動時処理では、演出制御CPU126は小当り中又は大当り中の演出内容を制御する(特別遊技演出実行手段)。この処理において、演出制御CPU126は各種の条件(例えば当選種類)に応じて大役中演出の内容を選択する。例えば16ラウンド大当りの場合、演出制御CPU126は液晶表示器42に表示する演出内容として、16ラウンドの大役中演出パターンを選択し、これを演出表示制御装置144(表示制御CPU146)に対して指示する。これにより、液晶表示器42の表示画面では大役中演出の画像が表示されるとともに、ラウンドの進行に伴って演出内容が変化していくことになる。
〔演出図柄変動前処理〕
図95は、演出図柄変動前処理の手順例を示すフローチャートである。以下、手順例に沿って説明する。
ステップS600:演出制御CPU126は、主制御CPU72からデモ演出用コマンドを受信したか否かを確認する。具体的には、演出制御CPU126はRAM130のコマンドバッファ領域にアクセスし、デモ演出用コマンドが保存されているか否かを確認する。その結果、デモ演出用コマンドが保存されていることを確認した場合(Yes)、演出制御CPU126はステップS602を実行する。
ステップS602:演出制御CPU126は、デモ選択処理を実行する。この処理では、演出制御CPU126はデモ演出パターンを選択する。デモ演出パターンは、パチンコ機1がいわゆる客待ち状態であることを表す演出の内容を規定したものである。
以上の手順を終えると、演出制御CPU126は演出図柄管理処理の末尾のアドレスに復帰する。そして演出制御CPU126はそのまま演出制御処理に復帰し、続く表示出力処理(図92中のステップS404)、ランプ駆動処理(図92中のステップS406)においてデモ演出パターンに基づいてデモ演出の内容を制御する。
一方、ステップS600においてデモ演出用コマンドが保存されていないことを確認すると(No)、演出制御CPU126は次にステップS604を実行する。
ステップS604:演出制御CPU126は、今回の変動がはずれ(非当選)であるか否かを確認する。具体的には、演出制御CPU126はRAM130のコマンドバッファ領域にアクセスし、非当選時の抽選結果コマンドが保存されているか否かを確認する。その結果、非当選時の抽選結果コマンドが保存されていることを確認した場合(Yes)、演出制御CPU126はステップS612を実行する。逆に、非当選時の抽選結果コマンドが保存されていないことを確認した場合(No)、演出制御CPU126はステップS606を実行する。なお、今回の変動がはずれか否かの確認は、抽選結果コマンドの他に変動パターンコマンドや停止図柄コマンドに基づいて行うことも可能である。すなわち、今回の変動パターンコマンドがはずれ通常変動又ははずれリーチ変動に該当していれば、今回の変動がはずれであると判定することができる。あるいは、今回の停止図柄コマンドが非当選の図柄を指定するものであれば、今回の変動がはずれであると判定することができる。
ステップS606:抽選結果コマンドが非当選(はずれ)以外であれば(ステップS604:No)、次に演出制御CPU126は、今回の変動が大当りであるか否かを確認する。具体的には、演出制御CPU126はRAM130のコマンドバッファ領域にアクセスし、大当り時の抽選結果コマンドが保存されているか否かを確認する。その結果、大当り時の抽選結果コマンドが保存されていることを確認した場合(Yes)、演出制御CPU126はステップS610を実行する。逆に、大当り時の抽選結果コマンドが保存されていないことを確認した場合(No)、残るは小当り時の抽選結果コマンドだけであるので、この場合、演出制御CPU126はステップS608を実行する。なお、今回の変動が大当りであるか否かの確認もまた、変動パターンコマンドや停止図柄コマンドに基づいて行うことも可能である。すなわち、今回の変動パターンコマンドが大当り変動に該当していれば、今回の変動が大当りであると判定することができる。また、今回の停止図柄コマンドが大当り図柄に該当していれば、今回の変動が大当りであると判定することができる。
ステップS608:演出制御CPU126は、小当り時変動演出パターン選択処理を実行する。この処理では、演出制御CPU126は主制御CPU72から受信した変動パターンコマンド(例えば、「C0H00H」〜「D0H7FH」)に基づいて、そのときの演出パターン番号を決定する。演出パターン番号は、変動パターンコマンドに対応して予め用意されており、演出制御CPU126は図示しない演出パターン選択テーブルを参照して、そのときの変動パターンコマンドに対応した演出パターン番号を選択することができる。なお、演出パターン番号は、変動パターンコマンドと対になって用意されていてもよく、1つの変動パターンコマンドに対して複数のものが用意されていてもよい。
また、演出パターン番号を選択すると、演出制御CPU126は図示しない演出テーブルを参照し、そのときの変動演出パターン番号に対応する演出図柄の変動スケジュール(変動時間やリーチの種類とリーチ発生タイミング)、停止表示の態様等を決定する。なお、ここで決定される演出図柄の種類は、全て「小当り時の図柄の組み合わせ」に該当するものとなっている。
以上の手順は「小当り」に該当した場合であるが、大当りに該当した場合、演出制御CPU126はステップS606で「大当り」であることを確認する(Yes)。この場合、演出制御CPU126はステップS610を実行する。
ステップS610:演出制御CPU126は、大当り時変動演出パターン選択処理を実行する。この処理では、演出制御CPU126は主制御CPU72から受信した変動パターンコマンド(例えば、「E0H00H」〜「F0H7FH」)に基づいて、そのときの演出パターン番号を決定する。大当り時演出パターン選択処理の中では、さらに大当り時停止図柄別に処理を分岐させてもよい。
また、非当選時の場合は以下の手順が実行される。すなわち、演出制御CPU126はステップS604ではずれであることを確認すると(Yes)、次にステップS612を実行する。
ステップS612:演出制御CPU126は、はずれ時変動演出パターン選択処理を実行する。この処理では、演出制御CPU126は主制御CPU72から受信した変動パターンコマンド(例えば、「A0H00H」〜「A6H7FH」)に基づいて、はずれ時の演出パターン番号を決定する。はずれ時の演出パターン番号は、「はずれ通常変動」や「時短はずれ変動」、「はずれリーチ変動」等に分類されており、さらに「はずれリーチ変動」には細かいリーチ変動パターンが規定されている。なお、演出制御CPU126がいずれの演出パターン番号を選択するかは、主制御CPU72から送信された変動パターンコマンドによって決まる。
はずれ時の演出パターン番号を選択すると、演出制御CPU126は図示しない演出テーブルを参照し、そのときの変動演出パターン番号に対応する演出図柄の変動スケジュール(変動時間やリーチ発生の有無、リーチ発生の場合はリーチ種類とリーチ発生タイミング)、停止表示の態様(例えば「7」−「2」−「4」等)を決定する。
以上のステップS608,ステップS610,ステップS612のいずれかの処理を実行すると、演出制御CPU126は次にステップS614を実行する。
ステップS614:演出制御CPU126は、予告選択処理を実行する(予告演出実行手段)。この処理では、演出制御CPU126は今回の変動表示演出中に実行するべき予告演出の内容を抽選によって選択する。予告演出の内容は、例えば内部抽選の結果(当選又は非当選)や現在の内部状態(通常状態、高確率状態、時間短縮状態)に基づいて決定される。予告演出は、変動表示演出中にリーチ状態が発生する可能性を遊技者に予告したり、最終的に大当りになる可能性があることを予告したりするものである。したがって、非当選時には予告演出の選択比率は低く設定されているが、当選時には遊技者の期待感を高めるため、予告演出の選択比率は比較的高く設定されている。
以上の手順を終えると、演出制御CPU126は演出図柄管理処理(末尾アドレス)に復帰する。これにより、その後の演出図柄変動中処理(図94中のステップS504)において、実際に選択された変動演出パターンに基づいて変動表示演出及び停止表示演出が実行されるとともに(演出実行手段)、各種予告演出パターンに基づいて予告演出が実行される。
〔可変入賞装置作動時処理〕
図96は、可変入賞装置作動時処理の構成例を示すフローチャートである。可変入賞装置作動時処理は、実行選択処理(ステップS902)、可変入賞装置作動前処理(ステップS904)、可変入賞装置作動中処理(ステップS906)、可変入賞装置作動後処理(ステップS908)のサブルーチン(プログラムモジュール)群を含む構成である。ここでは先ず、各処理に沿って可変入賞装置作動時処理の基本的な流れを説明する。
ステップS902:実行選択処理において、演出制御CPU126は次に実行するべき処理(ステップS904〜ステップS908のいずれか)のジャンプ先を「ジャンプテーブル」から選択する。例えば、演出制御CPU126は次に実行するべき処理のプログラムアドレスをジャンプ先のアドレスとし、また戻り先のアドレスとして可変入賞装置作動時処理の末尾をスタックポインタにセットする。
いずれの処理を次のジャンプ先として選択するかは、これまでに行われた処理の進行状況によって異なる。例えば、未だ可変入賞装置作動前処理を開始していない状況であれば、演出制御CPU126は次のジャンプ先として可変入賞装置作動前処理(ステップS904)を選択する。また、既に可変入賞装置作動前処理が完了していれば、演出制御CPU126は次のジャンプ先として可変入賞装置作動中処理(ステップS906)を選択する。さらに、可変入賞装置作動中処理が完了していれば、演出制御CPU126は次のジャンプ先として可変入賞装置作動後処理(ステップS908)を選択する。
ステップS904:可変入賞装置作動前処理では、演出制御CPU126は大当り遊技中や小当り遊技中に実行する演出の内容を選択する処理を実行する。例えば、「いずれかの通常図柄」に該当した場合は、味方キャラクターが敵キャラクターに敗北する演出を選択する処理を実行する。「いずれかの確変図柄」に該当した場合は、味方キャラクターが敵キャラクターに勝利する演出を選択する処理を実行する。
ステップS906:可変入賞装置作動中処理では、演出制御CPU126は必要に応じて演出表示制御装置144(表示制御CPU146)に指示する制御情報を生成する。例えば、大当り演出の実行中に演出切替ボタン45を用いた演出を行う場合、遊技者による演出ボタンの操作の有無を演出制御CPU126が監視するとともに、その結果に応じた演出内容(ボタン演出)の制御情報を表示制御CPU146に対して指示する。
ステップS908:可変入賞装置作動後処理では、演出制御CPU126は、可変入賞装置の終了時間の間に移行先のモードを遊技者に対して伝達する演出を実行する。例えば、演出制御CPU126は、当選図柄に応じて海岸モード突入演出を実行したり、花火ラッシュ突入演出を実行したりする。例えば、いずれかの確変図柄に該当した場合には、花火ラッシュに突入することを示す演出を選択する処理を実行し、いずれかの通常図柄に該当した場合には、海岸モードに突入することを示す演出を選択する処理を実行する。
以上の処理を終えると、演出制御CPU126は、演出図柄管理処理(図94)に復帰する。
以上説明したように、本実施形態によれば、以下のような効果がある。
(1)本実施形態によれば、スイッチ管理処理(呼出モジュール)は、入力ポートの値が所定の値(所定のビットが「1」)であるか否かを判断し、所定の値でないとの判断結果である場合(「0」であるとの判断結果)には特殊フラグ(ゼロフラグ)をセットし、特殊フラグがセットされている場合に対応モジュールを呼び出さない位置まで分岐する処理を1回の命令で実行する特別分岐命令(JBITQ命令)を用いて対応モジュールを呼び出すか否かを判定しているため、入力ポートの値をロードし、入力ポートのビットを確認し、条件付き呼出命令の順番で処理を行う従来の方式と比較して、プログラムの容量を少なくすることができ、結果として、主制御装置70の容量を削減することができる。
(2)本実施形態によれば、スイッチ管理処理は、対応モジュール(ゲートスイッチ通過処理、始動口1通過処理、始動口2通過処理等)を呼び出す場合、条件無しでモジュールを呼び出す条件無し呼出命令(CALLF命令)を用いて対応モジュールを呼び出すため、条件付き呼出命令(CALL命令)を用いて対応モジュールを呼び出す従来の方式と比較して、プログラムの容量を少なくすることができ、結果として、主制御装置70の容量を削減することができる。
(3)本実施形態によれば、スイッチ管理処理は、入力ポートの値が、図柄の変動に関わる領域を遊技球が通過したことを示す値である場合に(普通図柄の変動に関わる始動ゲート20を遊技球が通過したことを示す値、第1特別図柄の変動に関わる中始動入賞口26に遊技球が入球したことを示す値、第2特別図柄の変動に関わる右始動入賞口28aに遊技球が入球したことを示す値である場合に)、JBITQ命令及びCALLF命令を実行するため、JBITQ命令及びCALLF命令の組み合わせを実行可能な部分にだけこれらの命令を適用することにより、柔軟な制御内容を実現することができる。
本発明は上述した一実施形態に制約されることなく、種々に変形して実施することができる。一実施形態で挙げた演出の態様や各種数値はあくまで例示であり、上述した内容に限定されるものではない。
上述した実施形態では、確変領域を有しない遊技機に本発明を適用する例で説明したが、確変領域を有する遊技機に本発明を適用してもよい。
上述した実施形態では、「第1特別図柄及び第2特別図柄の同時回し」を採用していない遊技機に本発明を適用する例で説明したが、同時回しを採用している遊技機に対しても本発明を適用することができる。
上述した実施形態では、いわゆるループタイプ(確変回数に実質的な上限を設定しないタイプ)の遊技機に本発明を適用する例で説明したが、STタイプ(確変回数に実質的な上限を設定するタイプ)の遊技機に本発明を適用してもよい。
本実施形態では、特別分岐命令として「JBITQ命令」を用いる例で説明したがその他の特別分岐命令(JBITQ命令以外の命令)を用いて特別分岐命令を実行してもよい。
本実施形態では、条件無し呼出命令として「CALLF命令」を用いる例で説明したがその他の条件無し呼出命令(CALLF命令以外の命令)を用いて条件無し呼出命令を実行してもよい。
本実施形態では、スイッチ管理処理において、普通図柄に対応するゲート及び特別図柄に対応する2つの始動入賞口に対して、「JBITQ命令」及び「CALLF命令」を実行する例で説明したが、大入賞口(特に、大入賞口が1つである場合)や、確変領域、特定領域(遊技球が通過することで大当りとなるV領域)、役物連続作動領域(遊技球が通過することでラウンド数が決定される領域)等に対しても、「JBITQ命令」及び「CALLF命令」を実行してもよい。
制御装置は、主制御装置70の例で説明したが、払出制御装置92や演出制御装置124であってもよい。また、遊技機はパチンコ機の例で説明したがスロット機であってもよい。
その他の演出例であげた画像はあくまで一例であり、これらは適宜に変形することができる。また、パチンコ機1の構造や盤面構成、具体的な数値等は図示のものも含めて好ましい例示であり、これらを適宜に変形可能であることはいうまでもない。