IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社オリンピアの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-08
(45)【発行日】2023-11-16
(54)【発明の名称】遊技機
(51)【国際特許分類】
   A63F 5/04 20060101AFI20231109BHJP
【FI】
A63F5/04 631
【請求項の数】 1
(21)【出願番号】P 2023070615
(22)【出願日】2023-04-24
(62)【分割の表示】P 2021019515の分割
【原出願日】2021-02-10
(65)【公開番号】P2023084146
(43)【公開日】2023-06-16
【審査請求日】2023-04-25
【早期審査対象出願】
(73)【特許権者】
【識別番号】390031772
【氏名又は名称】株式会社オリンピア
(74)【代理人】
【識別番号】110000936
【氏名又は名称】弁理士法人青海国際特許事務所
(72)【発明者】
【氏名】森山 翔太
(72)【発明者】
【氏名】谷川 義和
(72)【発明者】
【氏名】河江 大輔
(72)【発明者】
【氏名】土屋 諒
【審査官】木村 隆一
(56)【参考文献】
【文献】特開2021-010627(JP,A)
【文献】特開2020-103821(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 5/04
(57)【特許請求の範囲】
【請求項1】
複数種類の当選種別のいずれかを当選種別抽選により決定する当選種別抽選手段と、
スタートスイッチの操作に基づき、複数種類の図柄がそれぞれ配列された複数のリールを回転制御し、回転している前記リールに対応するストップスイッチの操作に応じ、操作された前記ストップスイッチに対応する前記リールをそれぞれ停止制御するリール制御手段と、
非内部遊技状態、前記非内部遊技状態においてボーナス役に当選したことに基づいて移行する内部中遊技状態、前記ボーナス役が入賞したことに基づいて移行する作動中遊技状態を含む複数種類の遊技状態のいずれかに移行させる遊技状態制御手段と、
特定の当選役の入賞を補助する補助演出を行うことが可能な有利区間、および、前記有利区間以外の遊技区間である非有利区間のいずれかの遊技区間を決定する演出状態制御手段と、
を備え、
前記複数のリールには、第1リール、第2リール、第3リールが含まれ、
前記内部中遊技状態において決定可能な前記当選種別には、第1当選種別、第2当選種別、第3当選種別、第4当選種別が含まれ、
前記第1当選種別は、
リプレイ役を含み、
前記非有利区間において前記有利区間への移行抽選ができない当選種別であり、
前記第2当選種別は、
配当が規定数以上である第1小役を含み、
前記非有利区間において前記有利区間への移行抽選が可能であり、
前記第2リールを第1停止するように前記ストップスイッチが操作されると前記第1小役が入賞可能となり、
前記第1リールを第1停止するように前記ストップスイッチが操作されると前記第1小役を入賞させることができない当選種別であり、
前記第3当選種別は、
配当が規定数以上である第2小役を含み、
前記非有利区間において前記有利区間への移行抽選が可能であり、
前記第3リールを第1停止するように前記ストップスイッチが操作されると前記第2小役が入賞可能となり、
前記第1リールを第1停止するように前記ストップスイッチが操作されると前記第2小役を入賞させることができない当選種別であり、
前記第4当選種別は、
配当が規定数以上であり、かつ、前記第1小役および前記第2小役と異なる配当の第3小役を含み、
前記非有利区間において前記有利区間への移行抽選が可能であり、
前記第1リールを第1停止するように前記ストップスイッチが操作されると前記第3小役が入賞可能となり、
前記第1当選種別、前記第2当選種別、および、前記第3当選種別は、前記第1リールを第1停止するように前記ストップスイッチが操作されると、有効ライン上に特定図柄が停止制御される当選種別であり、
前記第4当選種別は、前記第1リールを第1停止するように前記ストップスイッチが操作されると、有効ライン上に所定図柄が停止制御される当選種別であり、
前記特定図柄は、前記所定図柄と異なり、
前記特定図柄は、前記ボーナス役を構成する図柄と異なり、
前記所定図柄は、前記ボーナス役を構成する図柄と異なり、
前記特定図柄、前記所定図柄、および、前記ボーナス役を構成する図柄は、特定のタイミングで停止操作された場合に、いずれの図柄も停止可能となるように前記第1リールに配置される、遊技機。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、遊技者に遊技上の利益を付与するか否かを抽選により決定する遊技機に関する。
【背景技術】
【0002】
遊技機としてのスロットマシンでは、遊技者によるメダル(遊技媒体)のベットおよびスタートスイッチの操作に応じて、当選役の抽選を行うとともに、種々の図柄が記された複数のリールが回転制御される。そして、抽選結果と遊技者によるストップスイッチの操作に応じてリールが順次停止され、払い出しの対象となるライン上である有効ライン上に、当選役に対応する図柄組み合わせが表示されると、所定枚数のメダルが払い出されるなど、遊技上の利益(以下、単に遊技利益という)が遊技者に付与されることとなる。
【0003】
また、スロットマシンでは、遊技の進行に際し、遊技者の有利度合(遊技利益)を異にする複数の遊技状態が設けられている。例えば、遊技利益が大きい当選役(以下、正解役という)と他の当選役とが重複した当選種別(以下、選択当選種別という)に当選したときに、その正解役の入賞条件となるストップスイッチの操作態様(以下、正解操作態様という)が報知されることで(以下、このような所定の当選役の入賞条件となる操作態様を報知する(正解役の入賞を補助する)演出を単に補助演出という)、当該正解役に対応する図柄組み合わせを、遊技者が有効ライン上に容易に表示させることができる、所謂、AT(アシストタイム)が実行されるAT演出状態を設けているスロットマシンもある。また、リプレイ役の当選確率が高く設定されたRT(リプレイタイム)遊技状態を用いたり、上記のAT演出状態とRT遊技状態が同時に進行される所謂ART遊技状態を用いることもある(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2011-010751号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述したように、選択当選種別では複数の当選役が重複して含まれており、遊技者の操作態様に応じて有効ライン上に表示される図柄組み合わせが異なることとなる。スロットマシンでは、遊技者に所定の操作を促して、有効ライン上に様々な図柄組み合わせを表示させることができる。
【0006】
しかし、遊技者の操作と、有効ライン上に表示される図柄組み合わせとの対応関係が単調であると、遊技の興趣が低下するおそれがある。
【0007】
本発明は、このような課題に鑑み、遊技性を向上することが可能な遊技機を提供することを目的としている。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明の遊技機は、複数種類の当選種別のいずれかを当選種別抽選により決定する当選種別抽選手段と、スタートスイッチの操作に基づき、複数種類の図柄がそれぞれ配列された複数のリールを回転制御し、回転している前記リールに対応するストップスイッチの操作に応じ、操作された前記ストップスイッチに対応する前記リールをそれぞれ停止制御するリール制御手段と、非内部遊技状態、前記非内部遊技状態においてボーナス役に当選したことに基づいて移行する内部中遊技状態、前記ボーナス役が入賞したことに基づいて移行する作動中遊技状態を含む複数種類の遊技状態のいずれかに移行させる遊技状態制御手段と、特定の当選役の入賞を補助する補助演出を行うことが可能な有利区間、および、前記有利区間以外の遊技区間である非有利区間のいずれかの遊技区間を決定する演出状態制御手段と、を備え、前記複数のリールには、第1リール(例えば、左リール)、第2リール(例えば、中リール)、第3リール(例えば、右リール)が含まれ、前記内部中遊技状態において決定可能な前記当選種別には、第1当選種別(例えば、当選種別「リプレイ3」)、第2当選種別(例えば、当選種別「打順ベルB3」)、第3当選種別(例えば、当選種別「打順ベルB5」)、第4当選種別(例えば、当選種別「チャンス目」)が含まれ、前記第1当選種別は、リプレイ役を含み、前記非有利区間において前記有利区間への移行抽選ができない当選種別であり、前記第2当選種別は、配当が規定数以上(例えば、7枚)である第1小役(例えば、当選役「小役3」)を含み、前記非有利区間において前記有利区間への移行抽選が可能であり、前記第2リールを第1停止するように前記ストップスイッチが操作されると前記第1小役が入賞可能となり、前記第1リールを第1停止するように前記ストップスイッチが操作されると前記第1小役を入賞させることができない当選種別であり、前記第3当選種別は、配当が規定数以上(例えば、7枚)である第2小役(例えば、当選役「小役5」)を含み、前記非有利区間において前記有利区間への移行抽選が可能であり、前記第3リールを第1停止するように前記ストップスイッチが操作されると前記第2小役が入賞可能となり、前記第1リールを第1停止するように前記ストップスイッチが操作されると前記第2小役を入賞させることができない当選種別であり、前記第4当選種別は、配当が規定数以上であり、かつ、前記第1小役および前記第2小役と異なる配当(例えば、3枚)の第3小役(例えば、当選役「小役8」)を含み、前記非有利区間において前記有利区間への移行抽選が可能であり、前記第1リールを第1停止するように前記ストップスイッチが操作されると前記第3小役が入賞可能となり、前記第1当選種別、前記第2当選種別、および、前記第3当選種別は、前記第1リールを第1停止するように前記ストップスイッチが操作されると、有効ライン上に特定図柄(例えば、図柄「ベル」)が停止制御される当選種別であり、前記第4当選種別は、前記第1リールを第1停止するように前記ストップスイッチが操作されると、有効ライン上に所定図柄(例えば、図柄「ハート」または「ブランクA」)が停止制御される当選種別であり、前記特定図柄は、前記所定図柄と異なり、前記特定図柄は、前記ボーナス役を構成する図柄(例えば、図柄「黒7」および図柄「BAR」)と異なり、前記所定図柄は、前記ボーナス役を構成する図柄と異なり、前記特定図柄、前記所定図柄、および、前記ボーナス役を構成する図柄は、特定のタイミング(例えば、図柄番号9の図柄「黒7」が有効ライン上に位置するタイミング)で停止操作された場合に、いずれの図柄も停止可能となるように前記第1リールに配置される。
【発明の効果】
【0009】
本発明によれば、遊技性を向上することが可能となる。
【図面の簡単な説明】
【0010】
図1】スロットマシンの概略的な機械的構成を説明するための外観図である。
図2】スロットマシンの概略的な機械的構成を説明するための前面扉を開いた状態での外観図である。
図3】リールの図柄配列および有効ラインを説明する図である。
図4】スロットマシンの概略的な電気的構成を示したブロック図である。
図5】当選役を説明するための説明図である。
図6】当選種別抽選テーブルを示す図である。
図7】遊技状態の遷移を説明するための説明図である。
図8】演出状態の遷移を説明するための説明図である。
図9】主制御基板におけるCPU初期化処理を説明するフローチャートである。
図10】主制御基板におけるコールドスタート処理を説明するフローチャートである。
図11】主制御基板におけるエラー停止処理を説明するフローチャートである。
図12】主制御基板における設定値切り替え処理を説明するフローチャートである。
図13】主制御基板における初期化スタート処理を説明するフローチャートである。
図14】主制御基板における状態復帰処理を説明するフローチャートである。
図15】主制御基板における遊技開始処理を説明するフローチャートである。
図16】主制御基板における遊技メダル投入処理を説明するフローチャートである。
図17】主制御基板における内部抽選処理を説明するフローチャートである。
図18】主制御基板における図柄コード設定処理を説明するフローチャートである。
図19】主制御基板200における実行フラグ設定処理を説明するフローチャートである。
図20】状態別モジュール実行処理で実行される非有利区間処理を説明するフローチャートである。
図21】状態別モジュール実行処理で実行される通常演出状態処理を説明するフローチャートである。
図22】状態別モジュール実行処理で実行されるCZ演出状態処理を説明するフローチャートである。
図23】状態別モジュール実行処理で実行されるリール演出状態処理を説明するフローチャートである。
図24】状態別モジュール実行処理で実行される引戻演出状態処理を説明するフローチャートである。
図25】主制御基板における回胴回転中処理を説明するフローチャートである。
図26】主制御基板における回胴停止処理を説明するフローチャートである。
図27】主制御基板における表示判定処理を説明するフローチャートである。
図28】主制御基板における払出処理を説明するフローチャートである。
図29】主制御基板における遊技移行処理を説明するフローチャートである。
図30】主制御基板における電源断時退避処理を説明するフローチャートである。
図31】主制御基板におけるタイマ割込み処理を説明するフローチャートである。
図32】メインCPU周辺の電気的な接続を説明するための図である。
図33】CPUコアの内部構成を示したブロック図である。
図34】レジスタの構成を説明した図である。
図35】メモリマップを示す説明図である。
図36】当選役グループ設定処理の具体的な処理を示したプログラムコードである。
図37】抽選データ取得処理の具体的な処理を示したプログラムコードである。
図38】内部抽選オフセットテーブルを示すプログラムコードである。
図39】内部抽選オフセットテーブルの他の例を示すプログラムコードである。
図40】減算枚数取得処理の具体的な処理を示したプログラムコードである。
図41】当選役グループ設定処理の他の例を示したプログラムコードである。
図42】減算枚数取得処理の他の例を示したプログラムコードである。
図43】図柄コード初期設定処理の具体的な処理を示したプログラムコードである。
図44】図柄ビットオフセットテーブルを示すプログラムコードである。
図45】当選役グループ設定処理の他の例を示したプログラムコードである。
図46】図柄コード初期設定処理の他の例を示したプログラムコードである。
図47】図柄ビットオフセットテーブルの他の例を示すプログラムコードである。
図48】当選種別抽選テーブルを説明するための説明図である。
図49】当選役グループ設定処理の他の例を示したプログラムコードである。
【発明を実施するための形態】
【0011】
以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値等は、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書および図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。
【0012】
(スロットマシン100の機械的構成)
図1および図2の外観図に示すように、遊技機としてのスロットマシン100は、前面が開口した筐体102と、筐体102の前面一端に回動可能に上下に並んで配置される前面上扉104および前面下扉106とが設けられている。前面上扉104の下部略中央には、ガラス板や透明樹脂板等で構成された無色透明の図柄表示窓108が設けられており、筐体102内の図柄表示窓108に対応する位置には、3つのリール110(左リール110a、中リール110b、右リール110c)が、それぞれ独立して回動可能に設けられている。左リール110a、中リール110b、右リール110cの外周面には、図3(a)の図柄配列に示すように、20に等分された各領域に複数種類の図柄がそれぞれ配列されており、遊技者は、図柄表示窓108を通じて、上段、中段、下段に位置する、左リール110a、中リール110b、右リール110cそれぞれの3つの連続する合計9個の図柄を視認することができる。
【0013】
前面下扉106の上部には操作部設置台112が形成され、操作部設置台112には、メダル投入部114、ベットスイッチ116、スタートスイッチ118、ストップスイッチ120、演出スイッチ122等が設けられている。メダル投入部114は、メダル投入口114aを通じて遊技価値としてのメダルの投入を受け付ける。ベットスイッチ116は、スロットマシン100の内部に電気的に貯留(以下、単にクレジットという)されているメダルのうち、1遊技で必要とされる規定数のメダルを投入(ベット)する。
【0014】
スタートスイッチ118は、例えば傾倒操作を検出可能なレバーで構成され、遊技者による遊技の開始操作を検出する。ストップスイッチ120(ストップスイッチ120a、ストップスイッチ120b、ストップスイッチ120c)は、左リール110a、中リール110b、右リール110cそれぞれに対応して設けられており、遊技者の停止操作を検出する。なお、ストップスイッチ120の停止操作が可能な状態で、遊技者が、ストップスイッチ120a、ストップスイッチ120b、ストップスイッチ120cのいずれかを最初に停止操作することを第1停止といい、第1停止の後、停止操作されていない2つのストップスイッチ120のいずれかを停止操作することを第2停止といい、第2停止の後、最後に残ったストップスイッチ120を停止操作することを第3停止という。演出スイッチ122は、例えば、押圧スイッチと、その周囲に回転自在に配されたジョグダイヤルスイッチとから構成され、遊技者の押圧操作や回転操作を検出する。
【0015】
前面上扉104の上部略中央には、演出に伴う様々な画像を表示する液晶表示部124が設けられている。また、前面上扉104の上部や左右には、例えば高輝度の発光ダイオード(LED)によって構成される演出用ランプ126が設けられる。また、前面上扉104の裏面における液晶表示部124の左右位置や前面下扉106の裏面における左右位置には、効果音や楽音等による聴覚的な演出を行うスピーカ128が設けられている。
【0016】
操作部設置台112には、メインクレジット表示部130およびメイン払出表示部132が設けられている。また、図柄表示窓108と操作部設置台112との間には、サブクレジット表示部134およびサブ払出表示部136が設けられている。これらメインクレジット表示部130およびサブクレジット表示部134にはクレジットされているメダルの枚数(クレジット枚数)が表示され、メイン払出表示部132およびサブ払出表示部136にはメダルの払出枚数が表示される。
【0017】
筐体102内におけるリール110の下方には、メダル排出口140aからメダルを払い出すためのメダル払出装置(メダルホッパー)142が設けられている。また、前面下扉106の前面下部には、メダル排出口140aから払い出されたメダルを貯留するための受け皿部140が設けられている。また、筐体102内には、電源スイッチ144が設けられている。電源スイッチ144は、スロットマシン100を管理する管理者が操作し、電源の切断状態と電源の投入状態の2つの状態を切り換えるために用いられる。
【0018】
また、筐体102内には、後述する主制御基板200に、図示しない設定キーおよび設定変更スイッチ(これらを合わせて設定値設定手段という)が設けられている。スロットマシン100では、設定キーに所定の鍵(操作キー)が挿入されてオフの位置からオンの位置へ回転された状態で電源スイッチ144を介して電源が投入されると設定変更モードに移行し、設定値の変更(単に設定変更ともいう)が可能な状態となる。設定値は、遊技者の有利度合(機械割)を段階的に示したものであり、例えば、1~6の6段階で表され、一般に、設定値の数値が大きいほど遊技全体として有利度合が高い(期待獲得枚数が高い)ように設定されている。そして、設定変更が可能な状態において設定変更スイッチが押下される度に設定値が1ずつ加算され、例えば、6段階の設定値のうちのいずれかの設定値に変更され、スタートスイッチ118が操作されると、設定値が確定し、設定キーを元の位置(OFFの位置)に戻すことで設定変更モードが終了して遊技が可能となる。なお、設定変更は、電源スイッチ144が操作されて電源の投入状態となってから一定期間のみ可能となっている。
【0019】
スロットマシン100では、遊技が開始可能となり、規定数のメダルがベットされると、有効ラインが有効化するとともに、スタートスイッチ118に対する操作が有効となる。ここで、ベットは、ベットスイッチ116の操作を通じてクレジットされているメダルを投入する場合と、メダル投入部114を通じてメダルを投入する場合と、詳しくは後述するリプレイ役が有効ライン上に表示されたことに基づいてメダルを自動投入する場合のいずれも含む。また、有効ラインは、当選役の入賞を判定するためのラインであり、本実施形態では2本である。図3(b)に示すように、図柄表示窓108に臨む9つの図柄(3リール×上中下の3段)のうち、有効ラインAは、左リール110aの上段、中リール110bの中段、右リール110cの下段に停止する図柄に対応する位置を結んだラインに設定されている。無効ラインは、有効ラインA上に表示された図柄組み合わせのみでは当選役を把握しにくい場合に、当選役の把握を容易にする他の図柄組み合わせを表示する、当選役の入賞判定には用いられない有効ラインA以外のラインであり、本実施形態では、図3(b)に示す4つの無効ラインB1、B2、B3、C、D1、D2を想定している。
【0020】
そして、遊技者によりスタートスイッチ118が操作されると、遊技が開始され、左リール110a、中リール110b、右リール110cが回転制御されるとともに、当選種別抽選等が実行される。その後、ストップスイッチ120a、120b、120cの操作に応じて、対応する左リール110a、中リール110b、右リール110cをそれぞれ停止させる。そして、当選種別抽選の抽選結果および有効ラインAに表示された図柄の組み合わせによって、メダルの払い出しを受け得る当選役が入賞した場合にはメダルの払い出しが実行され、メダルの払い出しを受け得る当選種別に不当選であった場合または当選したが入賞しなかった場合には左リール110a、中リール110b、右リール110cが全て停止したことをもって、遊技が終了する。
【0021】
なお、本実施形態において、上記1遊技は、メダル投入部114を通じたメダルの投入、ベットスイッチ116の操作を通じたクレジットされているメダルの投入、または、リプレイ役が有効ラインA上に表示されたことに基づくメダルの自動投入のいずれかが行われてから、遊技者によるスタートスイッチ118の操作に応じて、左リール110a、中リール110b、右リール110cが回転制御されるとともに当選種別抽選が実行され、当選種別抽選の抽選結果および遊技者による複数のストップスイッチ120a、120b、120cの操作に応じて、操作されたストップスイッチ120a、120b、120cに対応する左リール110a、中リール110b、右リール110cがそれぞれ停止制御され、メダルの払い出しを受け得る当選役が入賞した場合、そのメダルの払い出しが実行されるまでの遊技をいう。また、メダルの払い出しを受け得る当選種別に不当選であった場合または当選したが入賞しなかった場合、左リール110a、中リール110b、右リール110cが全て停止したことをもって1遊技が終了する。ただし、1遊技の開始を、上記のメダルの投入、または、リプレイ役の当選の代わりに、遊技者によるスタートスイッチ118の操作と読み替えてもよい。また、かかる1遊技が繰り返される数を遊技数とする。また、このような、当選種別抽選が実行され1度の払い出しを受け得る1遊技を、後述する疑似遊技(擬似遊技)と区別するため、基本遊技という場合もある。ここで、基本遊技が単独で行われる場合であっても、基本遊技が疑似遊技と組合せて行われる場合であっても、基本遊技の消化をもって1遊技消化とする。したがって、疑似遊技の消化は、スロットマシン100内の遊技数の計数に影響しない。ただし、ホールコンピュータ(図示せず)が管理する遊技数については、仕様により、疑似遊技を遊技数として計数してもよいし、計数しないとしてもよい。
【0022】
図4は、スロットマシン100の概略的な電気的構成を示したブロック図である。図4に示すように、スロットマシン100は、遊技の進行を制御する主制御基板200(主制御部)と、遊技の進行に応じた演出を制御する副制御基板202(副制御部)とを含む制御基板が設けられている。また、主制御基板200と副制御基板202との間の電気的な信号の伝達は、不正防止等の観点から、主制御基板200から副制御基板202への一方向のみに制限される。
【0023】
(主制御基板200)
主制御基板200は、中央処理装置であるメインCPU200a、プログラム等が格納されたメインROM200b、ワークエリアとして機能するメインRAM200c等を含む半導体集積回路を有し、スロットマシン100全体を統括的に制御する。なお、メインRAM200cは、電源が切断された場合においても、設定変更が行われてRAMクリアが実行されない限り、データが消去されることなく保持される。
【0024】
また、主制御基板200は、メインCPU200aが、メインROM200bに格納されたプログラムに基づきメインRAM200cと協働することで機能する、初期化手段300、ベット手段302、当選種別抽選手段304、リール制御手段306、判定手段308、払出制御手段310、遊技状態制御手段312、演出状態制御手段314、コマンド送信手段316等の機能部を有する。
【0025】
主制御基板200では、メダル投入口114aへのメダルの投入を検出する投入メダル検出部414b、ベットスイッチ116、スタートスイッチ118およびストップスイッチ120a、120b、120cから各種の検出信号を受信しており、受信した検出信号に基づいて、メインCPU200aが種々の処理を実行する。
【0026】
初期化手段300は、主制御基板200における初期化処理を実行する。ベット手段302は、遊技に使用するためのメダルをベットする。当選種別抽選手段304は、スタートスイッチ118の操作に基づき、詳しくは後述するように、当選役の当否、より詳しくは、当選役が含まれる当選種別の当否を決定する当選種別抽選を行う。
【0027】
リール制御手段306は、スタートスイッチ118の操作に応じて、左リール110a、中リール110b、右リール110cを回転制御し、回転している左リール110a、中リール110b、右リール110cにそれぞれ対応したストップスイッチ120a、120b、120cの操作に応じて、対応する左リール110a、中リール110b、右リール110cを停止制御する。また、リール制御手段306は、スタートスイッチ118の操作に応じて、前回の遊技においてストップスイッチ120a、120b、120cの操作を有効化してから、当選種別抽選の抽選結果を表示するために遊技者によるストップスイッチ120a、120b、120cの操作を有効化するまで(前回の遊技におけるストップスイッチ120a、120b、120cの操作完了により無効化されている)の時間を規定の時間より延長し、その間、リール110a、110b、110cを多彩な態様で回転制御するリール演出(フリーズ演出)を行う場合がある。リール演出は、本来有効となるべき任意のスイッチを所定時間有効にしなかったり、本来実行されるべき処理を所定時間保留したり、本来送受信されるべき任意のスイッチの信号を所定時間送信または受信させなかったりすることで実現できる。また、本実施形態においては、リール演出として、基本遊技におけるスタートスイッチ118の操作に応じ、基本遊技を中断して、リール110a、110b、110cを回転制御し、ストップスイッチ120a、120b、120cの操作に応じてリール110a、110b、110cを停止制御(仮停止制御)する、基本遊技に似せた疑似遊技を行う場合がある。なお、疑似遊技は、再度のスタートスイッチ118の操作、または、仮停止制御から所定時間が経過したことを条件に終了し、基本遊技におけるリール110a、110b、110cの回転制御が再開する。また、疑似遊技の一例として、ストップスイッチ120a、120b、120cの操作に応じて、各リール110a、110b、110cにおける所定の図柄(例えば、ボーナス役を構成する図柄)を、自動的に仮停止制御することもできる。かかる疑似遊技では、基本遊技と類似の回転制御および停止態様あるいは異なる回転制御および停止態様で演出を実行することができるので、遊技の興趣を高めることができる。なお、仮停止は、一見停止しているように見えるが、リール110a、110b、110cのステッピングモータ152の位相信号を500msec以内で変化させ続けることで、完全停止していない状態を示し、仮停止制御は、リール110a、110b、110cを仮停止させる制御を示す。ただし、特に区別する場合を除き、一方向に回転することなく、その位置を維持しているという意味で停止も仮停止も単に停止として扱い、また、スタートスイッチ118の操作に応じて、左リール110a、中リール110b、右リール110cを回転制御し、回転している左リール110a、中リール110b、右リール110cにそれぞれ対応したストップスイッチ120a、120b、120cの操作に応じて、対応する左リール110a、中リール110b、右リール110cを停止させる意味で、停止制御も仮停止制御も単に停止制御として扱う。
【0028】
また、主制御基板200には、リール駆動制御部150が接続されている。このリール駆動制御部150は、スタートスイッチ118の操作信号に応じ、リール制御手段306から送信される、左リール110a、中リール110b、右リール110cの回転開始信号に基づいて、ステッピングモータ152を駆動する。また、リール駆動制御部150は、ストップスイッチ120の操作信号に応じ、リール制御手段306から送信される、左リール110a、中リール110b、右リール110cそれぞれの停止信号および回転位置検出回路154の検出信号に基づいて、ステッピングモータ152の駆動を停止する。
【0029】
判定手段308は、当選役に対応する図柄組み合わせが有効ラインA上に表示されたか否か判定する。ここで、当選役に対応する図柄組み合わせが有効ラインA上に表示されることを単に入賞という場合がある。払出制御手段310は、当選役に対応する図柄組み合わせが有効ラインA上に表示されたこと(入賞したこと)に基づいて、当該当選役に対応する数(価値量)だけメダルを払い出す。また、主制御基板200には、メダル払出装置142が接続されており、払出制御手段310は、メダルの払出枚数を計数しながらメダルを排出する。
【0030】
遊技状態制御手段312は、当選種別抽選の結果や判定手段308の判定結果を参照し、複数種類の遊技状態のいずれかに遊技状態を移行させる。また、演出状態制御手段314は、当選種別抽選の結果、判定手段308の判定結果、遊技状態の遷移情報を参照し、複数種類の演出状態のいずれかに演出状態を移行させる。
【0031】
コマンド送信手段316は、ベット手段302、当選種別抽選手段304、リール制御手段306、判定手段308、払出制御手段310、遊技状態制御手段312、演出状態制御手段314等の動作に伴う、遊技に関するコマンドを順次決定し、決定したコマンドを副制御基板202に順次送信する。
【0032】
また、主制御基板200には、乱数発生器(乱数生成手段)200dが設けられる。乱数発生器200dは、計数値を順次インクリメントし、所定回数分計数すると計数値をリセットする(数列を変更して初期値を定める)ことで、所定の数値範囲内で計数値をループさせる。主制御基板200では、所定の時点において乱数発生器200dから計数値を抽出することで乱数値を得る。主制御基板200の乱数発生器200dによって生成される乱数値(以下、当選種別抽選乱数という)は、遊技者に付与する遊技利益、例えば、当選種別抽選手段304が当選種別を決定するために用いられる。
【0033】
(副制御基板202)
また、副制御基板202は、主制御基板200と同様に、中央処理装置であるサブCPU202a、プログラム等が格納されたサブROM202b、ワークエリアとして機能するサブRAM202c等を含む各種半導体集積回路を有し、主制御基板200からのコマンドに基づき、特に演出を制御する。また、サブRAM202cにもメインRAM200c同様、不図示のバックアップ電源が接続されており、電源が切断された場合においても、データが消去されることなく保持される。なお、副制御基板202にも、主制御基板200同様、乱数発生器(乱数生成手段)202dが設けられており、乱数発生器202dによって生成される乱数値(以下、演出抽選乱数という)は、主に演出の態様を決定するために用いられる。
【0034】
また、副制御基板202では、サブCPU202aが、サブROM202bに格納されたプログラムに基づき、サブRAM202cと協働することで機能する、初期化決定手段330、コマンド受信手段332、演出制御手段334等の機能部を有する。
【0035】
初期化決定手段330は、副制御基板202における初期化処理を実行する。コマンド受信手段332は、主制御基板200等、他の制御基板からのコマンドを受信し、コマンドに対する処理を行う。演出制御手段334は、演出スイッチ122から検出信号を受信するとともに、受信されたコマンドに基づいて液晶表示部124、スピーカ128、演出用ランプ126の各デバイスで行われる遊技の演出を決定する。具体的に、演出制御手段334は、液晶表示部124に表示される画像データや、演出用ランプ126、サブクレジット表示部134、サブ払出表示部136等の電飾機器を通じた演出のための電飾データを決定するとともに、スピーカ128から出力すべき音声を構成する音声データを決定する。そして、演出制御手段334は、決定した遊技の演出を実行する。なお、演出には、補助演出も含まれる。補助演出は、当選種別抽選において、正解役と不正解役とが重複した選択当選種別に当選したときに、その正解役の入賞条件となるストップスイッチ120a、120b、120cの正解操作態様を報知する演出である。かかる補助演出により、遊技者は、正解役に対応する図柄組み合わせを、遊技者が有効ラインA上に容易に表示させることができる。なお、正解役は、その当選役が入賞したことによるメダルの払い出しのみならず、その当選役が入賞することで得られる全ての遊技利益を含めて不正解役より有利な当選役を言う。かかる補助演出を実行する演出状態をAT(アシストタイム)演出状態という。また、AT演出状態とリプレイ役の当選確率が高いRT(リプレイタイム)遊技状態が並行して進行される所謂ART遊技状態を用いることもある。
【0036】
なお、以下では、液晶表示部124、演出用ランプ126、スピーカ128、サブクレジット表示部134、サブ払出表示部136といった、副制御基板202を含む、主制御基板200以外の基板で管理される報知手段を他報知手段という場合がある。これに対し、メインクレジット表示部130、メイン払出表示部132といった、主制御基板200で管理される報知手段を主報知手段(指示モニタ)という場合がある。また、補助演出を実行可能な主報知手段および他報知手段を合わせて補助演出実行手段という場合もある。演出状態制御手段314は、AT演出状態において、補助演出を補助演出実行手段に実行させる。特に、本実施形態においては、主報知手段(指示モニタ)として、メイン払出表示部132に、操作態様(打順)を特定可能な数値(指示番号)を表示し、他報知手段として、液晶表示部124、演出用ランプ126、スピーカ128を通じて操作順を報知する。
【0037】
(主制御基板200で用いられるテーブル)
図5は、当選役を説明するための説明図であり、図6は、当選種別抽選テーブルを説明するための説明図である。
【0038】
スロットマシン100においては、詳しくは後述するように、複数種類の遊技状態および演出状態が設けられており、遊技の進行に応じて遊技状態および演出状態が移行される。そして、主制御基板200では、遊技状態制御手段312により管理、制御される遊技状態に対応する複数の当選種別抽選テーブル等がメインROM200bに格納されている。当選種別抽選手段304は、メインRAM200cに記憶された現在の設定値(遊技利益を得る容易性を段階的に示したもの)と現在の遊技状態に応じて、対応する当選種別抽選テーブルをメインROM200bから抽出し、抽出した当選種別抽選テーブルに基づき、スタートスイッチ118の操作信号に応じて取得された当選種別抽選乱数が当選種別抽選テーブル内のいずれの当選種別に対応するか判定する。
【0039】
ここで、当選種別抽選テーブルで抽出される当選種別を構成する当選役には、リプレイ役、小役、ボーナス役が含まれる。リプレイ役は、リプレイ役に対応する図柄組み合わせが有効ラインA上に表示されると、遊技者によるメダルの新たなるベットを行わずして再度遊技を実行できる役である。小役は、その小役に対応する図柄組み合わせが有効ラインA上に表示されることにより、図柄組み合わせに応じて所定枚数のメダルの払い出しを受けることができる役である。また、ボーナス役は、そのボーナス役に対応する図柄組み合わせが有効ラインA上に表示されることにより、遊技状態制御手段312により管理される遊技状態をボーナス遊技状態(後述するRBB作動中遊技状態)に移行させることができる役である。
【0040】
本実施形態における当選役は、図5に示すように、ボーナス役として、当選役「RBB1」が設けられている。また、リプレイ役として、当選役「リプレイ1」~「リプレイ14」が設けられている。また、小役として、当選役「小役1」~「小役37」が設けられている。図5では、左リール110a、中リール110b、右リール110cそれぞれに、各当選役を構成する1または複数の図柄が対応付けられている。なお、以下では、当選役「小役1」~「小役6」を当選役「7枚役」、当選役「小役7」を当選役「15枚役」、当選役「小役8」を当選役「3枚役」、当選役「小役9」~「小役37」を当選役「1枚役」と略す場合がある。
【0041】
ここで、本実施形態においては、遊技者によってストップスイッチ120が操作されたときに、入賞可能な当選役に対応する図柄組み合わせを構成する図柄が有効ラインA上にある場合には、リール制御手段306によって、当該図柄が有効ラインA上に停止するように停止制御がなされる。また、ストップスイッチ120が操作されたときに、入賞可能な当選役に対応する図柄組み合わせを構成する図柄が、有効ラインA上にはないが、リール110の回転方向と反対の方向の図柄4コマ分に相当する範囲(引込範囲)内に存在している場合には、リール制御手段306によって、離れている図柄数が滑りコマ数となり、当該当選役に対応する図柄組み合わせを構成する図柄を有効ラインA上に引き込むように滑りコマ数分回転を維持した後に停止するように停止制御がなされる。また、入賞可能な当選役に対応する図柄がリール110中に複数あり、いずれもリール110の引込範囲内に存在している場合には、予め定められた優先順位に従っていずれの図柄を有効ラインA上に引き込むか決定され、当該優先された図柄を有効ラインA上に引き込むように滑りコマ数分回転を維持した後に停止するように停止制御がなされる。なお、ストップスイッチ120が押圧操作されたときに、入賞可能な当選役以外の当選役に対応する図柄組み合わせを構成する図柄が有効ラインA上にある場合には、リール制御手段306によって、その図柄を有効ラインA上に停止させないようにする、所謂蹴飛ばし処理も並行して実行される。また、後述するように、当選種別に含まれる当選役に操作態様(操作順や操作タイミング)が入賞条件として設定されている場合、リール制御手段306は、遊技者の操作態様に応じて当選役に対応する図柄組み合わせを有効ラインA上に表示可能に停止制御する。
【0042】
そして、例えば、当選役「リプレイ1」、「リプレイ2」、「リプレイ7」~「リプレイ10」、「リプレイ12」~「リプレイ14」、当選役「小役1」~「小役7」、「小役33」、「小役34」に対応する図柄組み合わせを構成する図柄は、各リール110において、上記の停止制御によって、必ず有効ラインA上に表示可能なように配列されている。このような当選役をPB=1と表す場合がある。一方、例えば、当選役「RBB1」、当選役「リプレイ3」~「リプレイ6」、「リプレイ11」、当選役「小役8」~「小役32」、「小役35」~「小役37」に対応する図柄組み合わせを構成する図柄は、各リール110において、上記の停止制御によって、必ずしも有効ラインA上に表示可能なように配列されていないので、所謂取りこぼしが発生する場合がある。このような当選役をPB≠1と表す場合がある。
【0043】
図6に示すように、当選種別抽選テーブルでは、複数の当選領域が区画されており、各遊技状態によって抽選の対象となる当選種別が異なったり、不当選(ハズレ)の有無が異なったりする。図6では、各遊技状態(非内部遊技状態(非内部)、RBB内部中遊技状態(RBB内部中)、RBB作動中遊技状態(RBB作動中))毎に割り当てられた当選領域(当選種別)を「◎」や「○」で表しているが、実際には、複数の遊技状態それぞれに対応する当選種別抽選テーブルがメインROM200bに記憶されている。なお、「◎」は有利区間に移行させる抽選を行うことが可能な有利区間抽選可当選種別であることを示し、「○」は有利区間に移行させる抽選を行うことが不可な有利区間抽選不可当選種別であることを示している。
【0044】
当選種別抽選テーブルでは、区画化された各当選領域にはそれぞれ当選範囲を示す数値である所定の置数(当選範囲値)と当選種別が対応付けられており、遊技状態毎に割り当てられた全ての当選領域の置数を合計すると当選種別抽選乱数の総数(65536)となる。したがって、当選種別それぞれが決定される確率は、当選領域に対応付けられた置数を当選種別抽選乱数の総数で除算した値となる。当選種別抽選手段304は、その時点の遊技状態に基づいて、当該当選種別抽選テーブルにおける複数の当選領域のうち番号の高い方から、順次、置数を取得し、その置数を当選種別抽選乱数から減算して、減算後の値が0未満となると、その時点の当選領域に対応付けられた当選種別を当選種別抽選の抽選結果としている。また、当選領域1以上の全ての当選領域の置数を当選種別抽選乱数から減算して、減算後の値が0以上となっていれば、当選領域0の当選種別「ハズレ」が当選種別抽選の抽選結果となる。
【0045】
ここで、当選役「RBB1」について補足する。所定の第1種特別役物(RB)は、規定数ごとの入賞に係る図柄の組み合わせの数を増加させ、または規定数ごとの入賞に係る条件装置が作動する確率を上昇させる役物で、あらかじめ定められた場合に作動し、12回を超えない回数の遊技の結果が得られるまで作動を継続することができるものをいう。ここで、条件装置は、その作動が入賞、再遊技、役物または役物連続作動装置の作動に係る図柄の組み合わせが表示されるために必要な条件とされている装置で、当選種別抽選(遊技機内で行われる電子計算機によるくじ)に当選した場合に作動するもの、すなわち、当選フラグを意味する。
【0046】
図6の当選種別抽選テーブルによれば、例えば当選領域0には、当選種別「ハズレ」が対応付けられており、かかる当選種別に当選すると、図5に示したいずれの当選役に対応する図柄組み合わせも有効ラインA上に表示されることはなく、メダルの払い出し等が行われることはない。
【0047】
また、当選領域1には、当選役「小役1」~「小役37」が重複して含まれる当選種別「小役ALL」が対応付けられ、当選領域2には、当選役「小役1」~「小役6」「小役37」が重複して含まれる当選種別「ベルALL」が対応付けられ、当選領域3には、当選役「小役9」~「小役32」、「小役35」~「小役37」が重複して含まれる当選種別「1枚ALL」が対応付けられている。
【0048】
また、当選領域4~15には、払出枚数が7枚となる正解役(当選役「小役1」~「小役6」)のいずれかと、払出枚数が1枚の不正解役(当選役「小役9」~「小役32」)のいずれかとが重複して含まれる選択当選種別(当選種別「ベルA1」~「ベルA6」、当選種別「ベルB1」~「ベルB6」)がそれぞれ対応付けられている。なお、以下では、当選領域4~15の12個の当選種別を単に当選種別「打順ベル」と略す場合がある。
【0049】
また、当選領域16~18には、払出枚数が1枚となる正解役(当選役「小役33」~「小役36」)のいずれかと、払出枚数が15枚の不正解役(当選役「小役7」)のいずれかとが重複して含まれる選択当選種別(当選種別「打順チャンス1」~「打順チャンス3」がそれぞれ対応付けられている。なお、以下では、当選領域16~18の3個の当選種別を単に当選種別「打順チャンス」と略す場合がある。
【0050】
また、当選領域19には、当選役「小役1」~「小役6」が重複して含まれる当選種別「共通ベル」が対応付けられ、当選領域20には、当選役「小役4」が含まれる当選種別「強ベル1」が対応付けられ、当選領域21には、当選役「小役5」が含まれる当選種別「強ベル2」が対応付けられ、当選領域22には、当選役「小役8」が含まれる当選種別「チャンス目」が対応付けられている。
【0051】
また、当選領域23には、当選役「リプレイ1」、「リプレイ13」が重複して含まれる当選種別「弱チャンリプ」が対応付けられ、当選領域24には、当選役「リプレイ1」、「リプレイ7」が重複して含まれる当選種別「上段スイカリプ」が対応付けられ、当選領域25には、当選役「リプレイ1」、「リプレイ8」が重複して含まれる当選種別「中段スイカリプ」が対応付けられ、当選領域26には、当選役「リプレイ1」、「リプレイ9」が重複して含まれる当選種別「上段スイカチャンリプ」が対応付けられ、当選領域27には、当選役「リプレイ1」、「リプレイ10」が重複して含まれる当選種別「中段スイカチャンリプ」が対応付けられ、当選領域28には、当選役「リプレイ1」、「リプレイ10」~「リプレイ12」、「リプレイ14」が重複して含まれる当選種別「ハート煽りチャンリプ1」が対応付けられ、当選領域29には、当選役「リプレイ1」、「リプレイ10」~「リプレイ14」が重複して含まれる当選種別「ハート煽りチャンリプ2」が対応付けられている。なお、以下では、当選領域20~29の10個の当選種別を単に当選種別「レア役」と略す場合がある。
【0052】
また、当選領域30には、当選役「リプレイ1」~「リプレイ12」、「リプレイ14」が重複して含まれる当選種別「ハート煽りリプ1」が対応付けられ、当選領域31には、当選役「リプレイ1」~「リプレイ14」が重複して含まれる当選種別「ハート煽りリプ2」が対応付けられ、当選領域32には、当選役「リプレイ1」、「リプレイ14」が重複して含まれる当選種別「リプレイ1」が対応付けられ、当選領域33には、当選役「リプレイ1」、「リプレイ7」、「リプレイ13」、「リプレイ14」が重複して含まれる当選種別「リプレイ2」が対応付けられ、当選領域34には、当選役「リプレイ1」、「リプレイ8」、「リプレイ13」、「リプレイ14」が重複して含まれる当選種別「リプレイ3」が対応付けられている。なお、以下では、当選領域30~34の5個の当選種別を単に当選種別「リプレイ」と略す場合がある。
【0053】
また、当選領域35には、当選役「RBB1」と、払出枚数が1枚の当選役(当選役「小役9」~「小役12」、「小役17」~「小役24」、「小役37」)とが重複して含まれる当選種別「RBB1枚役」が対応付けられ、当選領域36には、当選役「RBB1」が含まれる当選種別「RBB」が対応付けられている。
【0054】
そして、複数の当選役が重複して含まれる当選種別に当選した場合には、いずれの当選役に対応する図柄組み合わせを有効ラインA上に優先的に表示させるかについての入賞条件、例えば、ストップスイッチ120a、120b、120cが操作される順番、および、ストップスイッチ120a、120b、120cの操作タイミング(リール110の操作位置)が設定されている。
【0055】
以下の説明において、左リール110a、中リール110b、右リール110cの順にリールを停止させるストップスイッチ120a、120b、120cの操作を「打順1」とし、左リール110a、右リール110c、中リール110bの順にリールを停止させるストップスイッチ120a、120b、120cの操作を「打順2」とし、中リール110b、左リール110a、右リール110cの順にリールを停止させるストップスイッチ120a、120b、120cの操作を「打順3」とし、中リール110b、右リール110c、左リール110aの順にリールを停止させるストップスイッチ120a、120b、120cの操作を「打順4」とし、右リール110c、左リール110a、中リール110bの順にリールを停止させるストップスイッチ120a、120b、120cの操作を「打順5」とし、右リール110c、中リール110b、左リール110aの順にリールを停止させるストップスイッチ120a、120b、120cの操作を「打順6」とする。
【0056】
例えば、当選領域4の当選種別「打順ベルA1」に当選し、正解操作態様(打順1)での操作が行われた場合、払出枚数が7枚の正解役である当選役「小役1」に対応する図柄組み合わせが有効ラインA上に優先的に表示されるように停止制御がなされる。また、打順2~6での操作が行われた場合、払出枚数1枚の不正解役である当選役「1枚役」に対応する図柄組み合わせが有効ラインA上に1/2もしくは1/4の確率で表示されるように停止制御がなされる。
【0057】
なお、当選領域4~15の各当選種別の当選確率(置数)は等しくなるように設定されている。遊技者は、通常、いずれの当選種別に当選しているのかを知ることができないため、上記のような当選領域4~15を設けることにより、正解役を入賞させにくくしている。また、上記のように、不正解役が優先的に表示される操作態様でストップスイッチ120a、120b、120cが操作されても、必ずしも不正解役に対応する図柄組み合わせを有効ラインA上に表示させられるとは限らないので、その操作態様によっては、取りこぼしが発生することがある(PB≠1)。
【0058】
また、当選領域16の当選種別「打順チャンス1」に当選し、正解操作態様(打順1、2)での操作が行われた場合、払出枚数が1枚の当選役「小役33」に対応する図柄組み合わせ、および、当選役「小役34」に対応する図柄組み合わせが同時に有効ラインA上に優先的に表示されるように停止制御がなされる。また、打順3~6での操作が行われた場合、払出枚数が15枚の当選役「小役7」に対応する図柄組み合わせが有効ラインA上に優先的に表示されるように停止制御がなされる。
【0059】
なお、当選領域16~18の各当選種別の当選確率(置数)は等しくなるように設定されている。遊技者は、通常、いずれの当選種別に当選しているのかを知ることができないため、上記のような当選領域16~18を設けることにより、取りこぼしは発生しないものの(PB=1)、遊技者が無作為に操作した場合には、2つの当選役「1枚役」が同時に入賞するか当選役「15枚役」に入賞するか予め把握することはできない。
【0060】
なお、上述したいずれかの当選種別に当選すると、それぞれの当選種別に対応する内部当選フラグが成立(ON)するとともに、この内部当選フラグの成立状況に応じて、各リール110の停止制御がなされることとなる。このとき、小役が含まれる当選種別に当選したものの、これら当選役に対応する図柄組み合わせを、その遊技内で有効ラインA上に表示させることができなかった場合には、当該遊技の終了後に内部当選フラグがオフされる。つまり、小役の当選の権利は小役が含まれる当選種別に当選した遊技内のみに限られ、当該権利を次遊技に持ち越すことはできない。これに対して、当選役「RBB1」が含まれる当選種別に当選した場合には、RBB内部当選フラグが成立(ON)するとともに、当選役「RBB1」に対応する図柄組み合わせが有効ラインA上に表示されるまで、RBB内部当選フラグが遊技を跨いで持ち越される。なお、リプレイ役が含まれる当選種別に対応する内部当選フラグが成立した場合には、その当選種別に含まれるリプレイ役のうちのいずれかのリプレイ役に対応する図柄組み合わせが必ず有効ラインA上に表示され、メダルを要することなく次遊技を行うために必要となる処理が行われた後に、当該内部当選フラグがオフされる。
【0061】
(遊技状態の遷移)
ここで、図7を用い、遊技状態の遷移について説明する。ここでは、非内部遊技状態、RBB内部中遊技状態、RBB作動中遊技状態といった複数の遊技状態が準備されている。各遊技状態は、後述するように、ボーナス役の当選、入賞(作動)、終了に応じて遷移させる。なお、各遊技状態において当選可能な当選種別は、図6において「◎」や「○」で表される。
【0062】
非内部遊技状態は、複数の遊技状態における初期状態に相当する遊技状態である。かかる非内部遊技状態では、リプレイ役の当選確率が約1/7.3に設定されている。また、非内部遊技状態では、当選役「RBB1」が所定の確率(例えば約1/30)で決定されている。遊技状態制御手段312は、当選役「RBB1」の当選に応じて遊技状態を遷移させる。例えば、当選役「RBB1」に当選した遊技において、当選役「RBB1」に対応する図柄組み合わせが有効ラインA上に表示されると、遊技状態制御手段312は、遊技状態をRBB作動中遊技状態に移行させる(1)。
【0063】
RBB作動中遊技状態では、リプレイ役の当選確率が0に設定されている。なお、かかるRBB作動中遊技状態では、当選可能な当選種別として、当選領域1に当選種別「小役ALL」が、当選領域2に当選種別「ベルALL」が、当選領域3に「1枚ALL」が設定されている。当選種別「小役ALL」に当選すると、当選役「小役1」~「小役37」のいずれかに対応する図柄組み合わせが有効ラインA上に表示され、当選種別「ベルALL」に当選すると、当選役「小役1」~「小役6」、「小役37」のいずれかに対応する図柄組み合わせが有効ラインA上に表示され、当選種別「1枚ALL」に当選すると、当選役「小役9」~「小役32」、「小役35」~「小役37」のいずれかに対応する図柄組み合わせが有効ラインA上に表示されるように停止制御される。ここでは、かかる小役の構成によりRBB作動中遊技状態での単位遊技当たりの期待獲得枚数を低くしている。
【0064】
RBB作動中遊技状態の終了条件が成立すると、すなわち、獲得枚数が所定枚数(例えば22枚)を超えると、遊技状態制御手段312は、遊技状態を非内部遊技状態に移行させる(2)。
【0065】
一方、当選役「RBB1」に当選した遊技において、当選役「RBB1」に対応する図柄組み合わせを有効ラインA上に表示することができなかった場合、遊技状態制御手段312は、遊技状態をRBB内部中遊技状態に移行させる(3)。
【0066】
RBB内部中遊技状態では、リプレイ役の当選確率が約1/7.3に設定されている。また、RBB内部中遊技状態では当選種別「ハズレ」に当選することはない。換言すれば、当選役「RBB1」の当選遊技で当選役「RBB1」に対応する図柄組み合わせを有効ラインA上に表示することができなかった場合、その後は、当選役「RBB1」より小役やリプレイ役の方が優先して有効ラインA上に停止制御されるので、当選役「RBB1」に対応する図柄組み合わせを有効ラインA上に表示することができない。したがって、一旦、遊技状態がRBB内部中遊技状態に移行すると、その後、遊技状態が遷移することなく、RBB内部中遊技状態が維持されることとなる。ここでは、かかるRBB内部中遊技状態を維持しつつ、そのRBB内部中遊技状態においてAT演出状態を実現する。
【0067】
ここでは、RBB内部中遊技状態において、複数種類の正解役が互いに重複せずに当選するため、正解役を入賞させることができる機会を多くすることができ、その結果、例えば、RBB内部中遊技状態におけるAT演出状態において補助演出が行われることで、メダルを獲得しやすくできる。一方、RBB作動中遊技状態では、複数種類の正解役が重複して当選するため、正解役を入賞させることができる機会が少ないので、他の遊技状態におけるAT演出状態よりも正解役を入賞させることができる機会が減り、遊技者が所有するメダルを増やしにくくしている。したがって、RBB内部中遊技状態よりも入賞に係る当選役の当選確率が高いというRBB作動中遊技状態の機能を備えつつ、メダルの獲得性能の面ではRBB作動中遊技状態がRBB内部中遊技状態に劣るという仕様(アクセルRBB)を実現することができる。
【0068】
(演出状態の遷移)
図8は、演出状態の遷移を説明するための説明図である。以下、主制御基板200において演出状態制御手段314により遷移される演出状態について詳述する。
【0069】
ここで、メダルの獲得性能が高い遊技状態が偏っているか否かを統括的かつ画一的に判定すべく、指示機能に係る性能を有する遊技区間、すなわち、補助演出(指示機能)を実行する遊技区間等を含む、遊技者にとって有利な遊技区間を有利区間として定義する。なお、有利区間は、主制御基板200で補助演出の作動に係る抽選等を行った結果、補助演出が作動した場合には、主制御基板200において指示の内容が識別できるよう、例えば、主報知手段に表示したときに限り、指示の内容を示す情報を、副制御基板202等の周辺基板に送信してもよい遊技区間である。また、有利区間と異なり、補助演出(指示機能)を実行することができない遊技区間を非有利区間とする。したがって、複数の演出状態は、遊技区間である有利区間および非有利区間のいずれかに属することとなる。本実施形態では、ほぼ全ての演出状態が有利区間に属し、一部の演出状態(ここでは引戻演出状態から移行した通常演出状態の開始から数遊技)で非有利区間を実現している。
【0070】
なお、有利区間において、補助演出がないと正解役を取りこぼしてしまう当選態様のうち、正解役の配当が最大(ここでは、7枚)となる選択当選種別において、正解役の入賞を補助する補助演出(最大払出枚数を獲得できる補助演出)を行う場合、例えば、区間表示器160を点灯させることによって、その旨を報知しなければならない。
【0071】
また、非有利区間においては、当選種別の当選確率を設定値毎に異ならせることは可能であるが、同一の当選種別において補助演出を伴う演出状態(AT演出状態)への移行を決定する確率は設定値毎に異ならせてはならない。一方、有利区間においては、当選種別の当選確率、および、同一の当選種別における補助演出を伴う演出状態(AT演出状態)への移行(または追加)を決定する確率のいずれも設定値毎に異ならせることは可能である。
【0072】
したがって、演出状態制御手段314は、演出状態の移行の管理に加え、非有利区間と有利区間との移行も管理することとなる。また、有利区間は、このような管理に拘わらず、以下の終了条件が成立することで強制的に終了する。例えば、有利区間において計数される値が所定値に達したこと(例えば、滞在遊技数が1500遊技に達したり、純増枚数が2400枚を超えたこと)に基づいて強制的に終了する。いずれの場合においても、演出状態制御手段314は、有利区間から非有利区間に移行することで、有利区間で更新された情報(指示機能に係る性能に影響を及ぼす全ての変数)を全てリセットする。
【0073】
(非AT演出状態、AT演出状態)
非AT演出状態においては、AT演出状態より、補助演出の実行頻度が極めて低く、補助演出がほぼ行われないので、獲得できるメダルの枚数が制限される。ここでは、非AT演出状態として通常演出状態、CZ演出状態(チャンスゾーン演出状態)、リール演出状態、引戻演出状態といった4つの演出状態が設けられている。
【0074】
AT演出状態においては、選択当選種別の当選時において補助演出実行手段に補助演出を実行させることで、メダルの消費を抑えつつ、多くのメダルを獲得することが可能となる。したがって、遊技者は、AT演出状態に移行することで、非AT演出状態と比べ、遊技を有利に進行することができる。ここでは、AT演出状態として、特化AT演出状態、通常AT演出状態、チャンスAT演出状態、バトルAT演出状態といった4つの演出状態が設けられている。以下、各演出状態について個々に説明する。
【0075】
(各演出状態)
通常演出状態は、複数の演出状態のうち、初期状態に相当する演出状態である。演出状態制御手段314は、通常演出状態の開始時にCZ抽選を行う。CZ抽選は、CZ演出状態への移行を決定する抽選である。本実施形態において、演出状態制御手段314は、CZ抽選として、CZ演出状態へ移行する移行遊技数(例えば、600)を抽選により決定し、通常演出状態に滞在している遊技数が移行遊技数に到達すると、演出状態をCZ演出状態に移行させる(1)。
【0076】
CZ演出状態では、演出状態制御手段314は、AT抽選を行う。AT抽選は、AT演出状態(通常AT演出状態)への移行を決定する抽選であり、演出状態制御手段314は、当選種別抽選により決定された当選種別ごとに異なる確率でAT抽選を行う。そして、CZ演出状態においてAT抽選に当選した場合、演出状態制御手段314は、演出状態をAT演出状態である特化AT演出状態に移行させる(2)。なお、CZ演出状態は、補助演出が実行されるAT演出状態への移行が決定されることがあるため、通常演出状態よりも有利な演出状態と言える。
【0077】
一方、演出状態制御手段314は、CZ演出状態において所定の終了条件(例えば、AT抽選に当選することなく所定の遊技数を経過すること)が成立すると、演出状態を通常演出状態に移行させる(3)。
【0078】
また、通常演出状態において所定の条件を満たすと(後述するレア役カウンタの点灯数が4になると)、演出状態制御手段314は、演出状態をリール演出状態に移行させる(4)。リール演出状態では、演出状態制御手段314は、少なくともCZ演出状態への移行を決定しつつAT抽選を行い、その抽選結果を、回転および停止を1または複数回繰り返すリール演出を通じて報知する。例えば、演出状態制御手段314は、CZ演出状態への移行、特化AT演出状態への移行当選、特化AT演出状態への移行当選+所定の遊技利益等、AT抽選の結果に応じ、遊技利益が高い程、回転および停止の繰り返し回数が多いリール演出を実行する。
【0079】
そして、リール演出状態においてAT抽選に当選した場合、演出状態制御手段314は、演出状態をAT演出状態である特化AT演出状態に移行させる(5)。また、リール演出状態においてAT演出状態への移行が決定されなかった場合、演出状態制御手段314は、演出状態をCZ演出状態に移行させる(6)。このように、一旦、リール演出状態に移行すると、演出状態制御手段314は、演出状態を、特化AT演出状態もしくはCZ演出状態のいずれかに移行させる。なお、リール演出状態は、AT演出状態またはCZ演出状態のいずれかへの移行が決定されるため、通常演出状態よりも有利な演出状態と言える。
【0080】
また、特化AT演出状態(AT演出状態)に移行することなく所定の天井条件を満たすと、例えば、通常演出状態、CZ演出状態、リール演出状態、および、引戻演出状態のいずれかの演出状態(非AT演出状態)に連続して滞在し、天井遊技数(例えば、1500)を消化すると(所謂、天井到達)、演出状態制御手段314は、演出状態を特化AT演出状態へ移行させる(7)。
【0081】
特化AT演出状態では、所定の終了条件(例えば、4遊技消化)が成立するまでの間、後に移行される通常AT演出状態において取得可能な所定差枚数を抽選により決定する。特化AT演出状態において所定の終了条件を満たすと、演出状態制御手段314は、演出状態を、通常AT演出状態に移行させる(8)。
【0082】
通常AT演出状態では、所定の終了条件(例えば、差枚数が、特化AT演出状態で決定された所定差枚数に到達すること)が成立するまで、補助演出が実行される。そして、通常AT演出状態において、チャンスAT演出状態への所定の移行条件を満たすと(例えば、当選した当選種別による抽選に当選すると)、演出状態制御手段314は、演出状態を、チャンスAT演出状態に移行させる(9)。
【0083】
チャンスAT演出状態では、演出状態制御手段314は、通常AT演出状態を継続する継続率を段階的に高める(結果的に期待獲得枚数が多くなる)か否かを抽選により決定する。チャンスAT演出状態において継続率を高めることが決定された場合、演出状態制御手段314は、演出状態を特化AT演出状態に移行させる(10)。また、チャンスAT演出状態において継続率を高めることが決定されなかった場合、演出状態制御手段314は、演出状態を通常AT演出状態に戻す(11)。
【0084】
また、通常AT演出状態において、バトルAT演出状態への所定の移行条件を満たすと(例えば、当選した当選種別による抽選に当選すると)、演出状態制御手段314は、演出状態を、バトルAT演出状態に移行させる(12)。
【0085】
バトルAT演出状態において、演出状態制御手段314は、バトルを模擬した演出を実行し、その勝敗を抽選により決定する。バトルAT演出状態においてバトルに勝利すると(チャンスAT演出状態への移行が決定されると)、演出状態制御手段314は、演出状態をチャンスAT演出状態に移行させる(13)。また、バトルAT演出状態においてバトルに敗北すると、演出状態制御手段314は、演出状態を通常AT演出状態に戻す(14)。
【0086】
通常AT演出状態において所定の終了条件が成立すると、演出状態制御手段314は、演出状態を引戻演出状態に移行させる(15)。
【0087】
引戻演出状態では、演出状態制御手段314は、チャンスAT演出状態等で決定された継続率に基づいて、AT演出状態(特化AT演出状態)に再度移行させる(継続させるか)か否かの継続抽選を行う。そして、継続抽選に当選した場合、演出状態制御手段314は、有利区間を継続させ、演出状態を特化AT演出状態に戻す(16)。一方、継続抽選に当選しなかった場合、演出状態制御手段314は、演出状態を通常演出状態に移行する(17)。なお、この場合、演出状態制御手段314は、有利区間を一旦、非有利区間に移行させるとともに、有利区間に移行するまで、高確率で有利区間移行抽選を行う。したがって、本実施形態の有利区間移行抽選は、いずれ必ず有利区間に移行するようになっている。
【0088】
以下、主制御基板200、副制御基板202における具体的処理をフローチャートに基づいて説明する。
【0089】
(主制御基板200のCPU初期化処理)
図9は、主制御基板200におけるCPU初期化処理を説明するフローチャートである。電源基板より電源が供給されると、メインCPU200aにシステムリセットが発生し、メインCPU200aは、以下のCPU初期化処理(S100)を行う。
【0090】
(ステップS100-1)
メインCPU200aは、電源投入に応じて、初期設定処理として、メインROM200bから起動プログラムを読み込むとともに、各種処理を実行するために必要な設定処理を行う。
【0091】
(ステップS100-3)
メインCPU200aは、タイマカウンタにウェイト処理時間を設定する。
【0092】
(ステップS100-5)
メインCPU200aは、電源断予告信号を検出しているかを判定する。なお、主制御基板200には、電源断検知回路が設けられており、電源電圧が所定値以下になると、電源断検知回路から電源断予告信号が出力される。電源断予告信号を検出している場合には、上記ステップS100-3に処理を移し、電源断予告信号を検出していない場合には、ステップS100-7に処理を移す。
【0093】
(ステップS100-7)
メインCPU200aは、上記ステップS100-3で設定したウェイト処理時間が経過したか否かを判定する。その結果、ウェイト処理時間が経過したと判定した場合にはステップS100-9に処理を移し、ウェイト時間は経過していないと判定した場合には上記ステップS100-5に処理を移す。
【0094】
(ステップS100-9)
メインCPU200aは、メインRAM200cへのアクセスを許可するために必要な処理を実行する。
【0095】
(ステップS100-11)
メインCPU200aは、チェックサム確認処理を実行する。ここでは、メインCPU200aは、チェックサムを算出し、算出したチェックサムが、電源断時に保存されたチェックサムと一致しない(異常である)か、ならびに、バックアップが異常であるかを判定する。そして、メインCPU200aは、バックアップおよびチェックサムのいずれか一方または双方が異常であると判定した場合、バックアップ異常フラグをオンにし、バックアップおよびチェックサムの双方が異常でないと判定した場合、バックアップ異常フラグをオフにする。
【0096】
(ステップS100-13)
メインCPU200aは、バックアップ異常フラグがオンであるかを判定する。その結果、バックアップ異常フラグがオンであると判定した場合にはステップS110に処理を移し、バックアップ異常フラグがオンでないと判定した場合にはステップS120に処理を移す。
【0097】
(ステップS110)
メインCPU200aは、コールドスタート処理を実行する。なお、このコールドスタート処理については後述する。
【0098】
(ステップS120)
メインCPU200aは、設定値を切り替える設定値切り替え処理を実行する。なお、この設定値切り替え処理については後述する。
【0099】
(ステップS130)
メインCPU200aは、電源断直前の状態に戻す状態復帰処理を実行する。なお、この状態復帰処理については後述する。
【0100】
図10は、主制御基板200におけるコールドスタート処理(S110)を説明するフローチャートである。
【0101】
(ステップS110-1)
メインCPU200aは、メインRAM200cにおける使用領域をクリアするとともに、使用領域の異常を検出する使用領域RAMチェック処理を実行する。
【0102】
(ステップS110-3)
メインCPU200aは、メインRAM200cにおける別領域(使用外領域)をクリアするとともに、別領域の異常を検出する別領域RAMチェック処理を実行する。なお、別領域RAMチェック処理において別領域に異常が検出された場合、メインCPU200aは、RAMリードライトエラーフラグをオンにする。
【0103】
(ステップS110-5)
メインCPU200aは、メインRAM200cの異常を示すエラーコード「EA」をセットする。
【0104】
(ステップS110-7)
メインCPU200aは、上記ステップS110-1において異常が検出されたかを判定する。その結果、上記ステップS110-1において異常が検出されたと判定した場合にはステップS112に処理を移し、上記ステップS110-1において異常が検出されていないと判定された場合にはステップS110-9に処理を移す。
【0105】
(ステップS110-9)
メインCPU200aは、上記ステップS110-3において異常が検出されたときにオンになるRAMリードライトエラーフラグを取得する。
【0106】
(ステップS110-11)
メインCPU200aは、RAMリードライトエラーフラグがオンであるかを判定する。その結果、RAMリードライトエラーフラグがオンであると判定した場合にはステップS112に処理を移し、RAMリードライトエラーフラグがオンでないと判定された場合にはステップS120に処理を移す。
【0107】
(ステップS120)
メインCPU200aは、設定値を切り替える設定値切り替え処理を実行する。なお、この設定値切り替え処理については後述する。
【0108】
(ステップS110-13)
メインCPU200aは、バックアップエラーであることを示すエラーコード「E7」をセットする。
【0109】
(ステップS112)
メインCPU200aは、エラーにより遊技の進行を停止させるためのエラー停止処理を実行する。なお、このエラー停止処理については後述する。
【0110】
図11は、主制御基板200におけるエラー停止処理(S112)を説明するフローチャートである。
【0111】
(ステップS112-1)
メインCPU200aは、スタックポインタのアドレスとして、初期スタックポインタ値をセットする。
【0112】
(ステップS112-3)
メインCPU200aは、エラー表示および警告音設定を行うエラー設定処理を実行する。
【0113】
(ステップS112-5)
メインCPU200aは、外部信号1~3に対応するビットの出力イメージをオフにする外部信号1~3出力ビットオフをセットする。
【0114】
(ステップS112-7)
メインCPU200aは、上記ステップS112-5でセットしたビットについて、出力イメージを更新する出力ポートイメージセット処理を実行する。
【0115】
(ステップS112-9)
メインCPU200aは、永久ループに移行する。これにより、遊技の進行が停止することになる。
【0116】
図12は、主制御基板200における設定値切り替え処理(S120)を説明するフローチャートである。
【0117】
(ステップS120-1)
メインCPU200aは、入力ポート1の信号を取得し、取得した入力ポート1の信号に基づいて、設定値切り替え条件が成立していないかを判定する。その結果、設定値切り替え条件が成立していないと判定した場合には当該設定値切り替え処理を終了し、設定値切り替え条件が成立していると判定した場合にはステップS120-3に処理を移す。ここで、入力ポート1の信号には、前面上扉104および前面下扉106が開放されているか否かを示す信号、および、設定キーがオンにされているか否かを示す信号が含まれる。そして、ここでは、前面上扉104および前面下扉106が開放されていることを示す信号、ならびに、設定キーがオンにされていることを示す信号を取得した場合に、設定値切り替え条件が成立していると判定している。
【0118】
(ステップS120-3)
メインCPU200aは、メインRAM200cにおいて設定変更時にクリアすべき使用領域をクリアするRAMクリア処理を実行する。
【0119】
(ステップS120-5)
メインCPU200aは、設定値切り替え時データテーブルのテーブルデータをメインRAM200cに転送するテーブル内容セット処理を実行する。
【0120】
(ステップS120-7)
メインCPU200aは、設定値の変更を開始することを示す設定変更開始コマンドを送信バッファにセットする。
【0121】
(ステップS120-9)
メインCPU200aは、入力ポートの信号の立ち下がりエッジ(オンエッジ)を検出するエッジチェック処理を実行する。
【0122】
(ステップS120-11)
メインCPU200aは、現在の設定値を示す設定値データを取得する。
【0123】
(ステップS120-13)
メインCPU200aは、上記ステップS120-9において設定変更スイッチのオンエッジを検出していないかを判定する。その結果、設定変更スイッチのオンエッジを検出していないと判定した場合にはステップS120-17に処理を移し、設定変更スイッチのオンエッジを検出したと判定した場合にはステップS120-15に処理を移す。
【0124】
(ステップS120-15)
メインCPU200aは、設定値データを1インクリメントする。
【0125】
(ステップS120-17)
メインCPU200aは、設定値データが、設定値として設定可能な範囲(1~6)内であるかを判定する。その結果、設定値データが範囲内であると判定した場合にはステップS120-21に処理を移し、設定値データが範囲内でないと判定した場合にはステップS120-19に処理を移す。
【0126】
(ステップS120-19)
メインCPU200aは、設定値データを0にセットする。
【0127】
(ステップS120-21)
メインCPU200aは、上記ステップS120-15または上記ステップS120-19でインクリメントまたはセットされた値に設定値データを更新する。
【0128】
(ステップS120-23)
メインCPU200aは、設定値をメインクレジット表示部130に表示する表示データ変換処理を実行する。
【0129】
(ステップS120-25)
メインCPU200aは、設定変更スイッチのオンエッジを検出していないかを判定する。その結果、設定変更スイッチのオンエッジを検出していないと判定した場合にはステップS120-31に処理を移し、設定変更スイッチのオンエッジを検出していると判定した場合にはステップS120-27に処理を移す。
【0130】
(ステップS120-27)
メインCPU200aは、設定変更スイッチがオンであるかを判定する。その結果、設定変更スイッチがオンであると判定した場合にはステップS120-27に処理を移し、設定変更スイッチがオンでないと判定した場合にはステップS120-29に処理を移す。
【0131】
(ステップS120-29)
メインCPU200aは、設定変更スイッチ間隔タイマをセットする。
【0132】
(ステップS120-31)
メインCPU200aは、設定変更スイッチ間隔タイマが0になるまで待つタイマウェイト処理を実行する。
【0133】
(ステップS120-33)
メインCPU200aは、スタートスイッチ118のオンエッジを検出していないかを判定する。その結果、スタートスイッチ118のオンエッジを検出していないと判定した場合にはステップS120-9に処理を移し、スタートスイッチ118のオンエッジを検出していると判定した場合にはステップS120-35に処理を移す。
【0134】
(ステップS120-35)
メインCPU200aは、設定キーがオフであるかを判定する。その結果、設定キーがオフであると判定した場合にはステップS120-35に処理を移し、設定キーがオフでないと判定した場合にはステップS120-37に処理を移す。
【0135】
(ステップS120-37)
メインCPU200aは、設定キーがオンであるかを判定する。その結果、設定キーがオンであると判定した場合にはステップS120-37に処理を移し、設定キーがオンでないと判定した場合にはステップS122に処理を移す。
【0136】
(ステップS122)
メインCPU200aは、初期化スタートを開始する初期化スタート処理を実行する。なお、この初期化スタート処理については後述する。
【0137】
図13は、主制御基板200における初期化スタート処理(S122)を説明するフローチャートである。
【0138】
(ステップS122-1)
メインCPU200aは、設定値の変更が終了したことを示す設定変更終了コマンドを送信バッファにセットする。
【0139】
(ステップS122-3)
メインCPU200aは、設定値の変更が終了したときの状態を示す設定変更状態コマンドを送信バッファにセットする。
【0140】
(ステップS122-5)
メインCPU200aは、初期化スタート時ウェイトタイマをセットする。
【0141】
(ステップS122-7)
メインCPU200aは、初期化スタート時ウェイトタイマが0になるまで待つタイマウェイト処理を実行する。
【0142】
(ステップS122-9)
メインCPU200aは、メインRAM200cのうちの別領域をクリアする設定変更時RAMクリア処理を実行する。
【0143】
(ステップS122-11)
メインCPU200aは、メインRAM200cにおいて設定変更時にクリアすべき使用領域をクリアするRAMクリア処理を実行する。
【0144】
(ステップS122-13)
メインCPU200aは、現在の遊技状態を示す遊技状態コマンドを送信バッファにセットする。
【0145】
(ステップS200)
メインCPU200aは、遊技を開始するための遊技開始処理を実行する。なお、この遊技開始処理については後述する。
【0146】
図14は、主制御基板200における状態復帰処理(S130)を説明するフローチャートである。
【0147】
(ステップS130-1)
メインCPU200aは、スタックポインタを復帰させる。
【0148】
(ステップS130-3)
メインCPU200aは、メインRAM200cのうちの未使用領域をクリアする未使用領域クリア処理を実行する。
【0149】
(ステップS130-5)
メインCPU200aは、スタックポインタ保存バッファをクリアする。
【0150】
(ステップS130-7)
メインCPU200aは、電源断復帰後フラグを設定(オン)する。
【0151】
(ステップS130-9)
メインCPU200aは、入力ポートのイメージを更新するポート入力処理を実行する。
【0152】
(ステップS130-11)
メインCPU200aは、上記ステップS130-9で更新された入力ポートのイメージに基づいて、操作対象ビットの情報を抽出する操作対象ビット抽出処理を実行する。
【0153】
(ステップS130-13)
メインCPU200aは、上記ステップS130-11で抽出した操作対象ビットを、前回状態の操作対象ビットとしてセットする。
【0154】
(ステップS130-15)
メインCPU200aは、リール110a、110b、110cのモータフェーズを取得する。ここで、リール110a、110b、110cの状態として、モータフェーズが設定されている。モータフェーズは、リール110a、110b、110cの動作状態、すなわち、加速中、定常回転中、停止中、待機中を示す。具体的に、モータフェーズに割り当てられた1バイト(記憶単位)の変数が、そのステッピングモータ152の動作状態に応じて、加速中=3、定常回転中=2、停止中=1、待機中=0といった値に変化する。
【0155】
(ステップS130-17)
メインCPU200aは、上記ステップS130-15で取得したモータフェーズに基づいて、リール110a、110b、110cのいずれもが定常回転中および加速中でないかを判定する。その結果、リール110a、110b、110cのいずれもが定常回転中および加速中でないと判定した場合にはステップS130-21に処理を移し、リール110a、110b、110cのいずれかが定常回転中または加速中であると判定した場合にはステップS130-19に処理を移す。
【0156】
(ステップS130-19)
メインCPU200aは、リール110a、110b、110cのエラー検出時の設定を行う回転エラー処理を実行する。
【0157】
(ステップS130-21)
メインCPU200aは、退避していたレジスタ群を復帰させる。
【0158】
(ステップS130-23)
メインCPU200aは、割込みを許可し、当該状態復帰処理を終了する。これにより、メインCPU200aは、電源断直前の状態に復帰する。
【0159】
図15は、主制御基板200における遊技開始処理(S200)を説明するフローチャートである。
【0160】
(ステップS200-1)
メインCPU200aは、再遊技であるか否かを示す再遊技状態識別信号を出力するための再遊技状態識別信号出力設定処理を実行する。
【0161】
(ステップS200-3)
メインCPU200aは、メダルの投入枚数(ベット枚数)を表示する投入枚数表示器に対応するビットをオフ(消灯)するための投入枚数表示器出力ビットオフをセットする。
【0162】
(ステップS200-5)
メインCPU200aは、上記ステップS200-3でセットしたビットについて、出力イメージを更新する出力ポートイメージセット処理を実行する。
【0163】
(ステップS200-7)
メインCPU200aは、遊技開始ウェイトタイマをセットする。
【0164】
(ステップS200-9)
メインCPU200aは、遊技開始ウェイトタイマが0になるまで待つタイマウェイト処理を実行する。
【0165】
(ステップS200-11)
メインCPU200aは、メインRAM200cにおける使用領域のうち、1遊技毎にクリアすべき領域をクリアする1遊技RAMクリア処理を実行する。
【0166】
(ステップS200-13)
メインCPU200aは、ボーナス信号を設定するボーナス信号設定処理を実行する。
【0167】
(ステップS200-15)
メインCPU200aは、入力ポートイメージのエッジ情報をクリアするエッジクリア処理を実行する。
【0168】
(ステップS210)
メインCPU200aは、メダルの投入を受け付ける遊技メダル投入処理を実行する。なお、この遊技メダル投入処理については後述する。
【0169】
図16は、主制御基板200における遊技メダル投入処理(S210)を説明するフローチャートである。
【0170】
(ステップS210-1)
メインCPU200aは、各種エラーの検出結果の確認を行うエラー確認処理を実行する。
【0171】
(ステップS210-3)
メインCPU200aは、入力ポートの信号の立ち下がりエッジ(オンエッジ)を検出するエッジチェック処理を実行する。
【0172】
(ステップS210-5)
メインCPU200aは、前面上扉104または前面下扉106が開放されているときに1が立つドア開放エラー検出フラグを取得する。
【0173】
(ステップS210-7)
メインCPU200aは、上記ステップS210-5で取得したドア開放エラー検出フラグに基づき、前面上扉104および前面下扉106が閉鎖されているかを判定する。その結果、前面上扉104および前面下扉106が閉鎖されていると判定した場合にはステップS210-17に処理を移し、前面上扉104または前面下扉106の少なくとも一方が閉鎖されていないと判定した場合にはステップS210-9に処理を移す。
【0174】
(ステップS210-9)
メインCPU200aは、前面上扉104または前面下扉106の少なくとも一方が開放されていることを示すエラーコード「E8」をセットする。
【0175】
(ステップS210-11)
メインCPU200aは、エラー表示、警告音の要求、ならびに、エラー復帰待ちを行うエラーウェイト処理を実行する。
【0176】
(ステップS210-13)
メインCPU200aは、設定値を確認する設定値確認処理を実行する。
【0177】
(ステップS210-15)
メインCPU200aは、入力ポートイメージのエッジ情報をクリアするエッジクリア処理を実行する。
【0178】
(ステップS210-17)
メインCPU200aは、貯留(クレジット)されているメダルを払い戻すためのクレジットスイッチ(不図示)が押下されている場合に、貯留されているメダルを払い戻すクレジットボタンチェック処理を実行する。
【0179】
(ステップS210-19)
メインCPU200aは、メダルをベットする遊技メダル投入ボタン関連処理を実行する。ここでは、ベットスイッチ116が押下された場合に、貯留(クレジット)されているメダルを規定数までベットするとともに、ベットした枚数分だけ貯留枚数を減算する。また、メダル投入口114aを通じてメダルが投入された場合、規定数までメダルをベットし、規定数よりも多くメダルが投入された場合、その分だけ貯留枚数に加算する。
【0180】
(ステップS210-21)
メインCPU200aは、投入枚数が規定数であるかを確認する遊技メダル取得処理を実行する。
【0181】
(ステップS210-23)
メインCPU200aは、上記ステップS210-21の確認結果に基づき、投入枚数が規定数でないかを判定する。その結果、投入枚数が規定数でないと判定した場合にはステップS210-1に処理を移し、投入枚数が規定数であると判定した場合にはステップS210-25に処理を移す。
【0182】
(ステップS210-25)
メインCPU200aは、スタートスイッチ118の操作が有効になったか否かを示すスタート表示器(不図示)をオン(点灯)するためのスタート表示器出力ビットをセットする。
【0183】
(ステップS210-27)
メインCPU200aは、スタートスイッチ118の立ち下がりエッジ(押下)を検出していなかを判定する。その結果、スタートスイッチ118の立ち下がりエッジを検出していないと判定した場合にはステップS210-1に処理を移し、スタートスイッチ118の立ち下がりエッジを検出していると判定した場合にはステップS210-29に処理を移す。
【0184】
(ステップS210-29)
メインCPU200aは、メイン払出表示部132の表示をクリアするためにメイン払出表示部バッファをクリアする。
【0185】
(ステップS210-31)
メインCPU200aは、再遊技状態識別信号をクリアする再遊技状態識別信号クリア処理を実行する。
【0186】
(ステップS210-33)
メインCPU200aは、スタート表示器をオフ(消灯)するためのブロッカー閉塞前処理を実行する。
【0187】
(ステップS210-35)
メインCPU200aは、スタートスイッチ118が押下されたことを示すレバー押下コマンドを送信バッファにセットする。
【0188】
(ステップS220)
メインCPU200aは、当選種別抽選を行う内部抽選処理を実行する。なお、この内部抽選処理については後述する。
【0189】
図17は、主制御基板200における内部抽選処理(S220)を説明するフローチャートである。
【0190】
(ステップS220-1)
メインCPU200aは、設定値データを取得する。
【0191】
(ステップS220-3)
メインCPU200aは、設定値異常エラーを示すエラーコード「EC」をセットする。
【0192】
(ステップS220-5)
メインCPU200aは、上記ステップS220-1で取得した設定値データが異常であるかを判定する。その結果、設定値データが異常であると判定した場合にはステップS112に処理を移し、設定値データが異常でないと判定した場合にはステップS220-7に処理を移す。
【0193】
(ステップS220-7)
メインCPU200aは、乱数発生器200dによって更新された当選種別抽選乱数を取得する。
【0194】
(ステップS220-9)
メインCPU200aは、遊技状態に係るオフセット値を取得する状態オフセット取得処理を実行する。
【0195】
(ステップS220-11)
メインCPU200aは、内部抽選エリア定義テーブル(当選種別抽選テーブル)のアドレスをセットする。
【0196】
(ステップS220-13)
メインCPU200aは、上記ステップS220-11でセットしたアドレスに対して、上記ステップS220-9で取得したオフセット値を加算したアドレスに示される値を当選領域の初期値としてセットする。ここでは、現在の遊技状態の当選種別抽選テーブルにおける最初の当選領域が初期値としてセットされることになる。
【0197】
(ステップS220-15)
メインCPU200aは、その当選領域の当選範囲を示す数値である抽選データを取得するとともに、当選領域を1ずらす抽選データ取得処理を実行する。
【0198】
(ステップS220-17)
メインCPU200aは、当選種別抽選を行わないかを判定する。その結果、当選種別抽選を行わないと判定した場合にはステップS220-21に処理を移し、当選種別抽選を行うと判定した場合にはステップS220-19に処理を移す。
【0199】
(ステップS220-19)
メインCPU200aは、乱数値から抽選データを減算する。
【0200】
(ステップS220-21)
メインCPU200aは、上記ステップS220-19の減算結果が負であるか、すなわち、当選種別抽選によって、その当選領域に当選しているかを判定する。その結果、当選種別抽選に当選していると判定した場合にはステップS230に処理を移し、当選種別抽選に当選していないと判定した場合にはステップS220-23に処理を移す。
【0201】
(ステップS220-23)
メインCPU200aは、当選種別抽選が終了でないかを判定する。その結果、当選種別抽選が終了でないと判定した場合にはステップS220-15に処理を移し、当選種別抽選が終了であると判定した場合にはステップS220-25に処理を移す。
【0202】
(ステップS220-25)
メインCPU200aは、トリガー役種別をクリアする。
【0203】
(ステップS230)
メインCPU200aは、当選領域および遊技状態に基づいて、図柄コードを設定する図柄コード設定処理を実行する。なお、この図柄コード設定処理については後述する。
【0204】
図18は、主制御基板200における図柄コード設定処理(S230)を説明するフローチャートである。
【0205】
(ステップS230-1)
メインCPU200aは、上記ステップS220で当選した当選領域を取得し、取得した当選領域にボーナス役が含まれる場合には遊技状態を内部中遊技状態に設定する遊技状態設定処理を実行する。
【0206】
(ステップS230-3)
メインCPU200aは、上記ステップS230-1で取得した当選領域を停止制御番号として設定する。
【0207】
(ステップS230-5)
メインCPU200aは、上記ステップS230-1で取得した当選領域に基づいて、当選役グループを決定(設定)する。なお、決定された当選役グループによって、メインCPU200aは、疑似遊技実行フラグをオンにすることがある。なお、疑似遊技実行フラグは、オンのときには疑似遊技を実行することを示し、オフのときには疑似遊技を実行しないことを示す。
【0208】
(ステップS230-7)
メインCPU200aは、上記ステップS230-3で設定した停止制御番号に基づいて、表示可能な図柄、および、引き込み対象の図柄を示す図柄コードを設定する図柄コード初期設定処理を実行する。
【0209】
(ステップS230-9)
メインCPU200aは、表示図柄ビットを設定する表示図柄ビット初期値設定処理を実行する。
【0210】
(ステップS231)
メインCPU200aは、実行フラグの設定、演出状態に関する各種処理、補助演出に関する処理等を行う実行フラグ設定処理を実行する。なお、この実行フラグ設定処理については後述する。
【0211】
(ステップS230-13)
メインCPU200aは、有利区間に関するコマンドである演出コマンドを送信バッファにセットする。
【0212】
(ステップS230-15)
メインCPU200aは、当選種別を示す当選情報コマンドを送信バッファにセットする。
【0213】
(ステップS230-17)
メインCPU200aは、1遊技間タイマを確認する。
【0214】
(ステップS230-19)
メインCPU200aは、リール110a、110b、110cが回転前であることを示す回胴回転前コマンドを送信バッファにセットする。
【0215】
(ステップS230-21)
メインCPU200aは、ステッピングモータ152の励磁解放を待つ励磁解放待ち処理を実行する。
【0216】
(ステップS236)
メインCPU200aは、疑似遊技を実行する回胴演出処理を実行する。具体的に、ストップスイッチ120a、120b、120cの操作に応じて、各リール110a、110b、110cにおける所定の図柄(例えば、ボーナス役を構成する図柄)を、自動的に仮停止制御し、全てのリール110a、110b、110cが仮停止したら、もしくは、仮停止終了後にランダム遅延処理を通じて回転開始したら、疑似遊技実行フラグをオフする。
【0217】
(ステップS230-23)
メインCPU200aは、1遊技間タイマが0でないかを判定する。その結果、1遊技間タイマが0でないと判定した場合にはステップS230-23に処理を移し、1遊技間タイマが0であると判定した場合にはステップS230-25に処理を移す。
【0218】
(ステップS230-25)
メインCPU200aは、リール110a、110b、110cの回転を開始させるための回胴開始処理を実行する。ここでは、リール110a、110b、110cのモータフェーズを加速中に設定して各リールの回転を開始させたり、1遊技間タイマを4.1秒に相当する値にセットしたりする。
【0219】
(ステップS230-27)
メインCPU200aは、リール110a、110b、110cの回転が開始したことを示す回胴開始コマンドを送信バッファにセットする。
【0220】
(ステップS240)
メインCPU200aは、リール110a、110b、110cの回転中の処理である回胴回転中処理を実行する。なお、この回胴回転中処理については後述する。
【0221】
図19は、主制御基板200における実行フラグ設定処理(S231)を説明するフローチャートである。
【0222】
(ステップS231-1)
メインCPU200aは、次回ATフラグに基づいて演出状態を更新する(移行させる)AT状態更新処理を実行する。なお、次回ATフラグは、次遊技において設定する演出状態を示すものであり、下記の処理で設定されることになる。
【0223】
(ステップS232~ステップS236)
メインCPU200aは、演出状態、遊技区間ごとのモジュールを実行する状態別モジュール実行処理を実行し、当該実行フラグ設定処理を終了する。なお、状態別モジュール実行処理では、移行されている演出状態、遊技区間に対応するモジュール(処理)がメインROM200bから読み出されて実行される。以下では、本実施形態の特徴に関係するモジュールについて詳細に説明し、本実施形態の特徴と無関係のモジュールについては説明を省略する。
【0224】
図20は、状態別モジュール実行処理で実行される非有利区間処理(S232)を説明するフローチャートである。非有利区間処理は、遊技区間が非有利区間であるときに実行される。
【0225】
(ステップS232-1)
メインCPU200aは、有利区間抽選を行う。
【0226】
(ステップS232-3)
メインCPU200aは、上記ステップS232-1において有利区間抽選に当選したかを判定する。その結果、有利区間抽選に当選したと判定した場合にはステップS232-5に処理を移し、有利区間抽選に当選していないと判定した場合には当該非有利区間処理を終了する。
【0227】
(ステップS232-5)
メインCPU200aは、有利区間であることを示す有利区間フラグをオンにし、当該非有利区間処理を終了する。これにより、後述するステップS280-7の有利区間更新処理において、有利区間に移行される。
【0228】
図21は、状態別モジュール実行処理で実行される通常演出状態処理(S233)を説明するフローチャートである。通常演出状態処理は、演出状態が通常演出状態であるときに実行される。
【0229】
(ステップS233-1)
メインCPU200aは、継続遊技数をカウントするための継続遊技数カウンタを1インクリメントする。なお、継続遊技数カウンタは、下記のCZ演出状態処理、および、引戻演出状態であるときに実行される不図示の引戻演出状態処理でも、1遊技毎に1インクリメントされる。また、継続遊技数カウンタは、特化AT演出状態に移行される際にリセットされる。
【0230】
(ステップS233-3)
メインCPU200aは、継続遊技数カウンタの値が天井遊技数以上であるかを判定する。その結果、継続遊技数カウンタの値が天井遊技数以上であると判定した場合にはステップS233-5に処理を移し、継続遊技数カウンタの値が天井遊技数以上でないと判定した場合にはステップS233-7に処理を移す。
【0231】
(ステップS233-5)
メインCPU200aは、次回ATフラグを特化AT演出状態に対応する値に設定し、当該通常演出状態処理を終了する。
【0232】
(ステップS233-7)
メインCPU200aは、現時点の遊技が通常演出状態の開始タイミングであるか否か判定する。その結果、通常演出状態の開始タイミングであると判定した場合にはステップS233-9に処理を移し、通常演出状態の開始タイミングではないと判定した場合にはステップS233-11に処理を移す。
【0233】
(ステップS233-9)
メインCPU200aは、CZ演出状態へ移行する移行遊技数を抽選により決定するCZ抽選を行う。
【0234】
(ステップS233-11)
メインCPU200aは、通常演出状態に滞在している遊技数が移行遊技数に到達したか否かを判定する。その結果、移行遊技数に到達したと判定した場合にはステップS233-13に処理を移し、移行遊技数に到達していないと判定した場合にはステップS233-15に処理を移す。
【0235】
(ステップS233-13)
メインCPU200aは、次回ATフラグをCZ演出状態に対応する値に設定する。
【0236】
(ステップS233-15)
メインCPU200aは、リール演出状態への移行条件を満たしているかを判定する。その結果、移行条件を満たしていると判定した場合にはステップS233-17に処理を移し、移行条件を満たしていないと判定した場合には当該通常演出状態処理を終了する。
【0237】
(ステップS233-17)
メインCPU200aは、次回ATフラグをリール演出状態に対応する値に設定し、当該通常演出状態処理を終了する。
【0238】
図22は、状態別モジュール実行処理で実行されるCZ演出状態処理(S234)を説明するフローチャートである。CZ演出状態処理は、演出状態がCZ演出状態であるときに実行される。なお、CZ演出状態処理における各処理のうち、通常演出状態処理と同一の処理に同一の符号を付し、その説明は省略する。
【0239】
(ステップS234-1)
メインCPU200aは、当選種別抽選により決定された当選種別に基づきAT抽選を行う。
【0240】
(ステップS234-3)
メインCPU200aは、上記ステップS234-1においてAT抽選に当選したかを判定する。その結果、AT抽選に当選したと判定した場合にはステップS234-5に処理を移し、AT抽選に当選していないと判定した場合にはステップS234-7に処理を移す。
【0241】
(ステップS234-5)
メインCPU200aは、次回ATフラグを特化AT演出状態に対応する値に設定し、当該CZ演出状態処理を終了する。
【0242】
(ステップS234-7)
メインCPU200aは、CZ演出状態の最終遊技であるかを判定する。その結果、CZ演出状態の最終遊技であると判定した場合にはステップS234-9に処理を移し、CZ演出状態の最終遊技でないと判定した場合には当該CZ演出状態処理を終了する。
【0243】
(ステップS234-9)
メインCPU200aは、次回ATフラグを通常演出状態に対応する値に設定する。
【0244】
図23は、状態別モジュール実行処理で実行されるリール演出状態処理(S235)を説明するフローチャートである。リール演出状態処理は、演出状態がリール演出状態であるときに実行される。なお、リール演出状態処理における各処理のうち、通常演出状態処理と同一の処理に同一の符号を付し、その説明は省略する。
【0245】
(ステップS235-1)
メインCPU200aは、当選種別抽選により決定された当選種別に基づきAT抽選を行う。
【0246】
(ステップS235-3)
メインCPU200aは、上記ステップS235-1においてAT抽選に当選したかを判定する。その結果、AT抽選に当選したと判定した場合にはステップS235-5に処理を移し、AT抽選に当選していないと判定した場合にはステップS235-7に処理を移す。
【0247】
(ステップS235-5)
メインCPU200aは、次回ATフラグを特化AT演出状態に対応する値に設定し、当該リール演出状態処理を終了する。
【0248】
(ステップS235-7)
メインCPU200aは、リール演出状態の最終遊技であるかを判定する。その結果、リール演出状態の最終遊技であると判定した場合にはステップS235-9に処理を移し、リール演出状態の最終遊技でないと判定した場合には当該リール演出状態処理を終了する。
【0249】
(ステップS235-9)
メインCPU200aは、次回ATフラグをCZ演出状態に対応する値に設定する。
【0250】
図24は、状態別モジュール実行処理で実行される引戻演出状態処理(S236)を説明するフローチャートである。引戻演出状態処理は、演出状態が引戻演出状態であるときに実行される。
【0251】
(ステップS236-1)
メインCPU200aは、当選種別抽選により決定された当選種別に基づき、AT演出状態に再度移行させる(継続させるか)か否かの継続抽選を行う。
【0252】
(ステップS236-3)
メインCPU200aは、上記ステップS236-1において継続抽選に当選したかを判定する。その結果、継続抽選に当選したと判定した場合にはステップS236-5に処理を移し、継続抽選に当選していないと判定した場合にはステップS236-7に処理を移す。
【0253】
(ステップS236-5)
メインCPU200aは、次回ATフラグを特化AT演出状態に対応する値に設定し、当該引戻演出状態処理を終了する。
【0254】
(ステップS236-7)
メインCPU200aは、引戻演出状態の最終遊技であるかを判定する。その結果、引戻演出状態の最終遊技であると判定した場合にはステップS236-9に処理を移し、引戻演出状態の最終遊技でないと判定した場合には当該引戻演出状態処理を終了する。
【0255】
(ステップS236-9)
メインCPU200aは、次回ATフラグを通常演出状態に対応する値に設定し、有利区間フラグをオフにする。
【0256】
図25は、主制御基板200における回胴回転中処理(S240)を説明するフローチャートである。
【0257】
(ステップS240-1)
メインCPU200aは、ストップスイッチ120a、120b、120cの表示器(不図示)に対応するビットをオフ(消灯)するために停止表示器出力ビットオフ(出力イメージ)をセットする。ここで、停止表示器出力ビットは、3ビットのビット列で構成され、各ビットがそれぞれ3つのストップスイッチ120a、120b、120cの発光色に対応付けられており、青色=1、赤色=0で表される。
【0258】
(ステップS240-3)
メインCPU200aは、上記ステップS240-1でセットしたビットについて、出力イメージを更新する出力ポートイメージセット処理を実行する。
【0259】
(ステップS240-5)
メインCPU200aは、各種エラーの検出結果の確認を行うエラー確認処理を実行する。
【0260】
(ステップS240-7)
メインCPU200aは、インデックスフラグを参照し、回転しているリール110a、110b、110cのインデックスを取得する。なお、インデックスフラグは、リール110a、110b、110cが定常回転速度に到達した後にしか立たないので、換言すれば、インデックスフラグが立っているということは、リール110a、110b、110cが定常回転速度に到達していることも示すこととなる。
【0261】
(ステップS240-9)
メインCPU200aは、リール110a、110b、110c全てのインデックスフラグを検出済みでないかを判定する。その結果、全てのインデックスフラグを検出済みでないと判定した場合にはステップS240-1に処理を移し、全てのインデックスフラグを検出済みであると判定した場合にはステップS240-11に処理を移す。
【0262】
(ステップS240-11)
メインCPU200aは、停止または停止開始しているリール110a、110b、110cを示す停止回胴ビットを取得する。ここで、停止回胴ビットは、3ビットのビット列で構成され、各ビットがそれぞれ3つのリール110a、110b、110cのいずれかに対応付けられており、定常状態=1、加速状態、減速状態または停止状態=0で表される。
【0263】
(ステップS240-13)
メインCPU200aは、上記ステップS240-11で取得した停止回胴ビットを回胴回転中フラグとして保存する。
【0264】
(ステップS240-15)
メインCPU200aは、ストップスイッチ120a、120b、120cの表示器(不図示)に対応するビットをオン(消灯)するために停止表示器出力ビットオン(出力イメージ)をセットする。
【0265】
(ステップS240-17)
メインCPU200aは、入力ポート0のイメージを取得し、取得したイメージから、操作対象ビットを抽出する操作対象ビット抽出処理を実行する。ここで、操作対象ビットは、3ビットのビット列で構成され、各ビットがそれぞれ3つのストップスイッチ120a、120b、120cのいずれかに対応付けられており、操作されている=1、操作されていない=0で表される。
【0266】
(ステップS240-19)
メインCPU200aは、上記ステップS240-13で取得した回胴回転中フラグと、上記ステップS240-17で抽出した操作対象ビットとの論理積を演算する。ここで、リール110が回転中であり、かつ、そのリールに対応するストップスイッチ120が操作されていれば、すなわち、操作したストップスイッチ120が有効に回転しているリール110に対応していれば、論理積は1となる。
【0267】
(ステップS240-21)
メインCPU200aは、上記ステップS240-19で演算した論理積が0である、すなわち、回転しているリール110に対応したストップスイッチ120が操作されていないかを判定する。その結果、回転しているリール110に対応したストップスイッチ120が操作されていないと判定した場合にはステップS240-3に処理を移し、回転しているリール110に対応したストップスイッチ120が操作されていると判定した場合にはステップS240-23に処理を移す。
【0268】
(ステップS240-23)
メインCPU200aは、停止表示器出力ビットが含まれる出力イメージを取得し、取得した出力イメージと、上記ステップS240-19で演算した論理積との論理積を演算する。ここでは、操作されたストップスイッチ120が、赤色点灯中である場合に論理積のビットが0となり、青色点灯中である場合に論理積のビットが1となる。
【0269】
(ステップS240-25)
メインCPU200aは、上記ステップS240-23で演算した論理積が0であるか、すなわち、操作されたストップスイッチ120が赤色点灯中であるかを判定する。その結果、操作されたストップスイッチ120が赤色点灯中であると判定した場合にはステップS240-1に処理を移し、操作されたストップスイッチ120が赤色点灯中でないと判定した場合にはステップS240-27に処理を移す。
【0270】
(ステップS240-27)
メインCPU200aは、操作されたストップスイッチ120が有効でないかを判定する。その結果、操作されたストップスイッチ120が有効でないと判定した場合にはステップS240-1に処理を移し、操作されたストップスイッチ120が有効であると判定した場合にはステップS240-29に処理を移す。なお、ここでは、操作されたストップスイッチ120が1つであるか否かを判定している。そして、操作されたストップスイッチ120が1つであると判定した場合にはステップS240-29に処理を移し、操作されたストップスイッチ120が1つでない、すなわち、2つ以上であると判定した場合にはステップS240-1に処理を移す。
【0271】
(ステップS240-29)
メインCPU200aは、操作されたストップスイッチ120に対応するリール110を停止させるための各種パラメータを取得する停止制御回胴設定処理を実行する。
【0272】
(ステップS240-31)
メインCPU200aは、割込みを禁止する。
【0273】
(ステップS240-33)
メインCPU200aは、有効ラインA上に位置する図柄の図柄番号を押下基準位置として導出する押下基準位置取得処理を実行する。
【0274】
(ステップS240-35)
メインCPU200aは、リール110の滑りコマ数を決定する滑りコマ数取得処理を実行する。
【0275】
(ステップS250)
メインCPU200aは、操作されたストップスイッチ120に対応するリール110を停止させる回胴停止処理を実行する。なお、この回胴停止処理については後述する。
【0276】
図26は、主制御基板200における回胴停止処理(S250)を説明するフローチャートである。
【0277】
(ステップS250-1)
メインCPU200aは、上記ステップS240-35で導出した押下基準位置を取得する。
【0278】
(ステップS250-3)
メインCPU200aは、上記ステップS250-1で取得した押下基準位置に対して、上記ステップS240-37で決定した滑りコマ数を補正することにより、停止要求番号を算定する。
【0279】
(ステップS250-5)
メインCPU200aは、停止要求フラグを設定する(1にする)。停止要求フラグは、並行して動作するプログラムに対し、対象となるリール110の停止処理を要求するためのフラグであり、停止要求フラグを1とすることで、停止要求番号に対応する図柄を有効ラインA上に停止することが可能となる。かかる停止要求フラグおよび上記の停止要求番号は、並行して動作するプログラムにより読み出され、リール110の停止処理が行われる。なお、停止処理が完了すると、そのプログラムによって、停止要求フラグは0(OFF)にリセットされる。
【0280】
(ステップS250-7)
メインCPU200aは、割込みを許可する。
【0281】
(ステップS250-9)
メインCPU200aは、リール110の停止順序を示す停止情報コマンドを送信バッファにセットする。
【0282】
(ステップS250-11)
メインCPU200aは、ストップスイッチ120の表示器(不図示)に対応するビットをオフ(消灯)するために停止表示器出力ビットオフ(出力イメージ)をセットする。
【0283】
(ステップS250-13)
メインCPU200aは、上記ステップS250-11でセットしたビットについて、出力イメージを更新する出力ポートイメージセット処理を実行する。
【0284】
(ステップS250-15)
メインCPU200aは、表示図柄ビットを設定する表示図柄ビット設定処理を実行する。
【0285】
(ステップS250-17)
メインCPU200aは、次のリール110を停止させるための次回胴設定前処理を実行する。
【0286】
(ステップS250-19)
メインCPU200aは、全てのリール110の停止処理が終了済みでないかを判定する。その結果、全てのリール110の停止処理が終了済みでないと判定した場合にはステップS240に処理を移し、全てのリール110の停止処理が終了済みであると判定した場合にはステップS250-21に処理を移す。
【0287】
(ステップS250-21)
メインCPU200aは、いずれかのリール110について停止要求フラグがオンである、すなわち、全てのリール110が停止済みでないかを判定する。その結果、全てのリール110が停止済みでないと判定した場合にはステップS250-21に処理を移し、全てのリール110が停止済みであると判定した場合にはステップS250-23に処理を移す。
【0288】
(ステップS250-23)
メインCPU200aは、各種エラーの検出結果の確認を行うエラー確認処理を実行する。
【0289】
(ステップS250-25)
メインCPU200aは、操作対象ビットの情報を抽出する操作対象ビット抽出処理を実行する。
【0290】
(ステップS250-27)
メインCPU200aは、上記ステップS250-25で取得した操作対象ビットに基づいて、ストップスイッチ120が押下されているかを判定する。その結果、ストップスイッチ120が押下されていると判定した場合にはステップS250-23に処理を移し、ストップスイッチ120が押下されていないと判定した場合にはステップS260に処理を移す。
【0291】
(ステップS260)
メインCPU200aは、入賞した当選役を判定する表示判定処理を実行する。なお、この表示判定処理については後述する。
【0292】
図27は、主制御基板200における表示判定処理(S260)を説明するフローチャートである。
【0293】
(ステップS260-1)
メインCPU200aは、メイン払出表示部132のバッファをクリアする。
【0294】
(ステップS260-3)
メインCPU200aは、有効ラインA上に表示された図柄組み合わせと、有効ラインA上に表示許可された図柄組み合わせとが一致するか否かによって、表示判定異常が発生しているかを判定する表示判定異常検出処理を実行する。
【0295】
(ステップS260-5)
メインCPU200aは、表示判定異常(エラー)であることを示すエラーコード「EE」をセットする。
【0296】
(ステップS260-7)
メインCPU200aは、上記ステップS260-3の判定結果に基づき、表示判定異常であるかを判定する。その結果、表示判定異常であると判定した場合にはステップS112に処理を移し、表示判定異常でないと判定した場合にはステップS260-9に処理を移す。
【0297】
(ステップS260-9)
メインCPU200aは、有効ラインA上に停止(表示)された図柄組み合わせに基づいて、入賞した当選役を決定する表示図柄識別生成処理を実行する。
【0298】
(ステップS260-11)
メインCPU200aは、払出枚数の初期値として0をセットする。
【0299】
(ステップS260-13)
メインCPU200aは、小役が入賞したかを判定する。その結果、小役が入賞したと判定した場合にはステップS260-15に処理を移し、小役が入賞していないと判定した場合にはステップS260-35に処理を移す。
【0300】
(ステップS260-15)
メインCPU200aは、小役が入賞したことを示す入賞フラグをオンにする。
【0301】
(ステップS260-17)
メインCPU200aは、入賞した小役に応じた払出枚数を設定する払出枚数設定処理を実行する。
【0302】
(ステップS260-19)
メインCPU200aは、有利区間でないかを判定する。その結果、有利区間でないと判定した場合にはステップS270に処理を移し、有利区間であると判定した場合にはステップS260-21に処理を移す。
【0303】
(ステップS260-21)
メインCPU200aは、有利区間中の純増枚数をカウントする有利区間MYカウンタの値を取得する。
【0304】
(ステップS260-23)
メインCPU200aは、上記ステップS260-23で取得した有利区間MYカウンタの値に払出枚数を加算する。
【0305】
(ステップS260-25)
メインCPU200aは、当該遊技の投入枚数を取得する。
【0306】
(ステップS260-27)
メインCPU200aは、上記ステップS260-23で加算した値から投入枚数を減算する。
【0307】
(ステップS260-29)
メインCPU200aは、上記ステップS260-27の減算結果が負でないかを判定する。その結果、減算結果が負でないと判定した場合にはステップS260-33に処理を移し、減算結果が負であると判定した場合にはステップS260-31に処理を移す。
【0308】
(ステップS260-31)
メインCPU200aは、有利区間MYカウンタの値をクリアする(0にする)。
【0309】
(ステップS260-33)
メインCPU200aは、上記ステップS260-27で減算した値、または、上記ステップS260-31でクリアした値に、有利区間MYカウンタの値を更新する。
【0310】
(ステップS260-35)
メインCPU200aは、リプレイ役が入賞していなかを判定する。その結果、リプレイ役が入賞していないと判定した場合にはステップS270に処理を移し、リプレイ役が入賞していると判定した場合にはステップS260-37に処理を移す。
【0311】
(ステップS260-37)
メインCPU200aは、払出枚数に投入枚数をセットする。
【0312】
(ステップS260-39)
メインCPU200aは、再遊技作動中フラグをオンにする。
【0313】
(ステップS260-41)
メインCPU200aは、自動投入枚数をセットする。
【0314】
(ステップS270)
メインCPU200aは、メダルを払い出す払出処理を実行する。なお、この払出処理については後述する。
【0315】
図28は、主制御基板200における払出処理(S270)を説明するフローチャートである。
【0316】
(ステップS270-1)
メインCPU200aは、再遊技作動中フラグを取得する。
【0317】
(ステップS270-3)
メインCPU200aは、メダルの払い出しが開始されたことを示す払出開始コマンドを送信バッファにセットする。
【0318】
(ステップS270-5)
メインCPU200aは、上記ステップS270-1で取得した再遊技作動中フラグに基づいて、リプレイ役が入賞したかを判定する。その結果、リプレイ役が入賞したと判定した場合にはステップS270-41に処理を移し、リプレイ役が入賞していないと判定した場合にはステップS270-7に処理を移す。
【0319】
(ステップS270-7)
メインCPU200aは、メイン払出表示部132に0を表示するためのメイン表示器表示処理を実行する。
【0320】
(ステップS270-9)
メインCPU200aは、払い出しがない(払出枚数が0枚)を判定する。その結果、払い出しがないと判定した場合にはステップS270-35に処理を移し、払い出しがあると判定した場合にはステップS270-11に処理を移す。
【0321】
(ステップS270-11)
メインCPU200aは、貯留枚数が50枚以上であるかを判定する。その結果、貯留枚数が50枚以上であると判定した場合にはステップS270-13に処理を移し、貯留枚数が50枚以上でないと判定した場合にはステップS270-15に処理を移す。
【0322】
(ステップS270-13)
メインCPU200aは、メダル払出装置142からメダルを1枚払い出させるメダル払出装置制御処理を実行し、ステップS270-23に処理を移す。
【0323】
(ステップS270-15)
メインCPU200aは、払出開始間隔タイマをセットする。
【0324】
(ステップS270-17)
メインCPU200aは、払出開始タイマが0でない、すなわち、初回払出時であるかを判定する。その結果、初回払出時であると判定した場合にはステップS270-21に処理を移し、初回払出時でないと判定した場合にはステップS270-19に処理を移す。
【0325】
(ステップS270-19)
メインCPU200aは、払出開始間隔タイマが0になるまで待つタイマウェイト処理を実行する。
【0326】
(ステップS270-21)
メインCPU200aは、貯留枚数を1インクリメントする。
【0327】
(ステップS270-23)
メインCPU200aは、1枚のメダルが払い出されたことを示す払出実行コマンドを送信バッファにセットする。
【0328】
(ステップS270-25)
メインCPU200aは、既に払い出された払出枚数をメイン払出表示部132に表示するためのメイン表示器表示前処理を実行する。
【0329】
(ステップS270-27)
メインCPU200aは、ボーナス遊技状態でないかを判定する。その結果、ボーナス遊技状態でないと判定した場合にはステップS270-31に処理を移し、ボーナス遊技状態であると判定した場合にはステップS270-29に処理を移す。
【0330】
(ステップS270-29)
メインCPU200aは、ボーナス遊技状態において払い出されたメダルの枚数であるボーナス作動中獲得枚数を1インクリメントする。
【0331】
(ステップS270-31)
メインCPU200aは、払出枚数のメダルの払い出しが終了していないかを判定する。その結果、払い出しが終了していないと判定した場合にはステップS270-11に処理を移し、払い出しが終了していると判定した場合にはステップS270-33に処理を移す。
【0332】
(ステップS270-33)
メインCPU200aは、メダルの払い出しを終了するための払出終了処理を実行する。
【0333】
(ステップS270-35)
メインCPU200aは、オーバーエラーが検出されていないかを判定する。その結果、オーバーエラーが検出されていないと判定した場合にはステップS270-41に処理を移し、オーバーエラーが検出されていると判定した場合にはステップS270-37に処理を移す。
【0334】
(ステップS270-37)
メインCPU200aは、オーバーエラーを示すエラーコード「E5」をセットする。
【0335】
(ステップS270-39)
メインCPU200aは、エラー表示、警告音の要求、ならびに、エラー復帰待ちを行うエラーウェイト処理を実行する。
【0336】
(ステップS270-41)
メインCPU200aは、メダルの払い出しが終了したことを示す払出終了コマンドを送信バッファにセットする。
【0337】
(ステップS280)
メインCPU200aは、遊技状態の移行、有利区間を管理する処理等を行う遊技移行処理を実行する。なお、この遊技移行処理については後述する。
【0338】
図29は、主制御基板200における遊技移行処理(S280)を説明するフローチャートである。
【0339】
(ステップS280-1)
メインCPU200aは、再遊技作動中フラグを取得し、取得した再遊技作動中フラグに基づいて、次遊技が再遊技であることを示すリプレイ表示器(不図示)に対応するビットをオンまたはオフするために停止表示器出力ビットオフ(出力イメージ)をセットし、セットした出力イメージの出力ビットを更新するリプレイ表示器制御処理を実行する。
【0340】
(ステップS280-3)
メインCPU200aは、ボーナス役が入賞した場合に、ボーナス遊技状態を制御するための各種パラメータを設定する役物作動図柄表示処理を実行する。
【0341】
(ステップS281)
メインCPU200aは、演出状態、区間状態ごとのモジュールを実行する状態別モジュール実行処理を実行する。なお、状態別モジュール実行処理では、移行されている演出状態に対応するモジュール(処理)がメインROM200bから読み出されて実行される。
【0342】
(ステップS280-5)
メインCPU200aは、ボーナス遊技状態において、ボーナス作動中獲得枚数が所定枚数に到達した場合に、遊技状態を非内部遊技状態に移行させるボーナス作動終了処理を実行する。
【0343】
(ステップS280-7)
メインCPU200aは、有利区間を管理する有利区間更新処理を実行する。
【0344】
(ステップS280-9)
メインCPU200aは、次遊技がAT演出状態でないかを判定する。その結果、次遊技がAT演出状態でないと判定した場合にはステップS280-15に処理を移し、次遊技がAT演出状態であると判定した場合にはステップS280-11に処理を移す。
【0345】
(ステップS280-11)
メインCPU200aは、ボーナス遊技状態でないかを判定する。その結果、ボーナス遊技状態でないと判定した場合にはステップS280-15に処理を移し、ボーナス遊技状態であると判定した場合にはステップS280-13に処理を移す。
【0346】
(ステップS280-13)
メインCPU200aは、区間表示器160を点灯させるための有利ランプフラグをオンにセットする。
【0347】
(ステップS280-15)
メインCPU200aは、有利区間に関するコマンドである演出コマンドを送信バッファにセットする演出コマンド設定処理を実行する。
【0348】
(ステップS280-17)
メインCPU200aは、1遊技が終了したことを示す遊技終了コマンドを送信バッファにセットする。
【0349】
(ステップS280-19)
メインCPU200aは、外部信号を出力するための端子板信号出力処理を実行する。
【0350】
(ステップS280-21)
メインCPU200aは、上記ステップS280-7において有利区間を終了させるときに設定される演出用ウェイトタイマが0でないかを判定する。その結果、演出用ウェイトタイマが0でないと判定した場合にはステップS280-21に処理を移し、演出用ウェイトタイマが0であると判定した場合にはステップS280-23に処理を移す。
【0351】
(ステップS280-23)
メインCPU200aは、遊技状態を示す遊技状態コマンドを送信バッファにセットする。
【0352】
(ステップS280-25)
メインCPU200aは、次遊技の開始を示す遊技開始コマンドを送信バッファにセットし、ステップS200に処理を移す。
【0353】
ステップS200からステップS280までの一連の処理を通じて1遊技が実行される。以後は、ステップS200からステップS280までを繰り返すこととなる。
【0354】
次に、主制御基板200における電源断時退避処理およびタイマ割込み処理について説明する。
【0355】
(主制御基板200の電源断時退避処理)
図30は、主制御基板200における電源断時退避処理を説明するフローチャートである。メインCPU200aは、電源断検知回路を監視しており、電源電圧が所定値以下になると、割り込んで電源断時退避処理を実行する。
【0356】
(ステップS300-1)
電源断予告信号が入力されると、メインCPU200aは、レジスタを退避する。
【0357】
(ステップS300-3)
メインCPU200aは、電源断予告信号をチェックする。
【0358】
(ステップS300-5)
メインCPU200aは、電源断予告信号を検出しているかを判定する。その結果、電源断予告信号を検出していると判定した場合にはステップS300-11に処理を移し、電源断予告信号を検出していないと判定した場合にはステップS300-7に処理を移す。
【0359】
(ステップS300-7)
メインCPU200aは、レジスタを復帰させる。
【0360】
(ステップS300-9)
メインCPU200aは、割込みを許可するための処理を行い、当該電源断時退避処理を終了する。
【0361】
(ステップS300-11)
メインCPU200aは、出力ポートの出力を停止する出力ポートクリア処理を実行する。
【0362】
(ステップS300-13)
メインCPU200aは、別領域についての電源断時の退避処理を実行する。
【0363】
(ステップS300-15)
メインCPU200aは、メインRAM200cへのアクセスを禁止するために必要なRAMプロテクト設定処理を実行する。
【0364】
(ステップS300-17)
メインCPU200aは、電源断発生監視時間を設定すべく、ループカウンタのカウンタ値に所定の電源断検出信号検出回数をセットする。
【0365】
(ステップS300-19)
メインCPU200aは、上記ステップS300-17でセットしたループカウンタの値を1減算する。
【0366】
(ステップS300-21)
メインCPU200aは、ループカウンタのカウンタ値が0でないかを判定する。その結果、カウンタ値が0ではないと判定した場合にはステップS300-19に処理を移し、カウンタ値が0であると判定した場合には上記したCPU初期化処理(ステップS1000)に移行する。
【0367】
なお、実際に電源断が生じた場合には、ステップS300-19~ステップS300-21をループしている間にスロットマシン100の稼働が停止する。
【0368】
(主制御基板200のタイマ割込み処理)
図31は、主制御基板200におけるタイマ割込み処理を説明するフローチャートである。主制御基板200には、所定の周期(同時回し参考例では1.49ミリ秒、以下「1.49ms」という)毎にクロックパルスを発生させるリセット用クロックパルス発生回路が設けられている。そして、リセット用クロックパルス発生回路によって、クロックパルスが発生すると、割り込んで、以下のタイマ割込み処理が実行される。
【0369】
(ステップS400-1)
メインCPU200aは、レジスタを退避する。
【0370】
(ステップS400-3)
メインCPU200aは、割込みフラグをクリアする。
【0371】
(ステップS400-5)
メインCPU200aは、各種の入力ポートイメージを読み込み、最新のスイッチ状態を正確に取得するためのポート入力処理を実行する。
【0372】
(ステップS400-7)
メインCPU200aは、セットされた出力イメージを出力ポートに出力し、メインクレジット表示部130、メイン払出表示部132、投入枚数表示器、スタート表示器、ストップスイッチ120a、120b、120cの表示器、リプレイ表示器、区間表示器160を点灯制御するダイナミックポート出力処理を実行する。
【0373】
(ステップS400-9)
メインCPU200aは、タイマ割込み処理用フェーズを更新する。なお、タイマ割込み処理用フェーズは、0~3のいずれかであり、ここでは、タイマ割込み処理用フェーズが0、1、2の場合には1加算され、タイマ割込み処理用フェーズが3の場合には0に変更される。
【0374】
(ステップS400-11)
メインCPU200aは、送信バッファに格納されたコマンドを副制御基板202に送信するためのサブコマンド送信処理を行う。
【0375】
(ステップS400-13)
メインCPU200aは、ステッピングモータ152を制御するステッピングモータ制御処理を実行する。
【0376】
(ステップS400-15)
メインCPU200aは、メダル払出装置142へ出力する出力イメージを出力する出力ポートイメージ出力処理を実行する。
【0377】
(ステップS400-17)
メインCPU200aは、各種乱数値を更新する乱数更新処理を実行する。
【0378】
(ステップS400-19)
メインCPU200aは、エラーに対応する外部信号(外部信号4、5)を外部に出力するためにエラーを検出する不正監視処理を実行する。
【0379】
(ステップS400-21)
メインCPU200aは、上記ステップS400-9で更新したタイマ割込み処理用フェーズに対応するモジュール(サブルーチン)を実行する。ここで、タイマ割込み処理用フェーズは0~3のいずれかに設定されており、タイマ割込み処理用フェーズ0~3それぞれに対応するモジュールが1つずつ設けられているため(合計4つ)、1つのモジュールは、タイマ割込み処理の4回に1回(5.96ms毎に)実行されることになる。例えば、各種タイマを減算する時間監視処理を実行するモジュールが1つのタイマ割込み処理用フェーズに対応付けられている。
【0380】
(ステップS400-23)
メインCPU200aは、試験信号を外部に出力する試験信号出力処理を実行する。
【0381】
(ステップS400-25)
メインCPU200aは、各種の入力ポートイメージを読み込み、最新のスイッチ状態を正確に取得するためのポート入力処理を実行する。
【0382】
(ステップS400-27)
メインCPU200aは、レジスタを復帰する。
【0383】
(ステップS400-29)
メインCPU200aは、割込みを許可し、当該タイマ割込み処理を終了する。
【0384】
<主制御基板のCPU周辺の構成>
図32は、メインCPU200a周辺の電気的な接続を説明するための図である。メインCPU200aは、CPUコア700とバスコントローラ702とを含む。CPUコア700は、BC端子から出力されるバス制御信号(Bus Cont)を通じてバスコントローラ702を制御し、メインROM200b、メインRAM200c、もしくは、入出力部704からデータを読み出し、または、メインRAM200cや入出力部704にデータを書き込む。なお、ここでは、メインCPU200aとして、Z80系CPUをベースとするエルイーテック(LETech)社が販売するマイクロプロセッサを用いている。
【0385】
例えば、メインROM200b、メインRAM200c、または、入出力部704からデータを読み出す場合、バスコントローラ702は、16ビットのアドレス(A[16])信号を出力し、デコーダ706a、706b、706cを通じてメインROM200b、メインRAM200c、または、入出力部704のいずれかを特定するとともに、リード(RD)信号を制御して、メインROM200b、メインRAM200c、または、入出力部704からデータ(D[8])信号を読み出す。また、メインRAM200c、または、入出力部704にデータを書き込む場合、バスコントローラ702は、アドレス(A[16])信号およびデータ(D[8])信号を出力し、デコーダ706b、706cを通じてメインRAM200c、または、入出力部704のいずれかを特定するとともに、ライト(WR)信号を制御して、メインRAM200c、または、入出力部704にデータ(D[8])信号を書き込む。
【0386】
ここでは、後述するように、入出力部704のアドレス空間を、メインROM200bおよびメインRAM200cのアドレス空間と一体化している。したがって、従来、メモリとI/Oのいずれにアクセスするかを特定するための信号を出力するメモリリクエスト(MREQ)端子およびI/Oリクエスト(IORQ)端子を設けていない。かかる2端子を任意の他の信号に割り当て直すことで、プログラム開発の自由度を高めることができる。
【0387】
また、CPUコア700には、割込処理の開始トリガとなる割り込み/待ち(INT/WAIT)信号、最優先で割込処理を実行できるマスク不可割込(NMI)信号、バス信号をハイインピーダンスに遷移可能なバスリクエスト(BUSREQ)信号等の外部信号も入力される。
【0388】
図33は、CPUコア700の内部構成を示したブロック図である。CPUコア700は、外部入力ユニット710、状態制御ユニット712、中央制御ユニット714、レジスタユニット716、算術論理演算装置(ALU)718を含む。外部入力ユニット710は、外部信号を受信し、その外部信号に基づいた制御情報を状態制御ユニット712および中央制御ユニット714に出力する。
【0389】
状態制御ユニット712は、入力された制御情報に基づいて、内部状態(RESET、命令フェッチ、命令デコード、演算、メモリロード、メモリストア、HALT等)を管理および遷移させてCPUコア700の動作状態を決定するとともに、その動作状態に基づいた制御情報を中央制御ユニット714に出力する。
【0390】
中央制御ユニット714は、バスコントローラ702を経由して入力された入力データ(DI[8])からオペコード(命令)を抽出し、命令デコーダによってデコードしたコマンドに基づいてALU718を制御する。また、中央制御ユニット714は、デコードしたコマンドによりレジスタユニット716の各レジスタから必要な情報を取得したり、各レジスタを更新したりする。
【0391】
レジスタユニット716は、セレクタポート722a、722b、722c、入力側バンクセレクタ724、第1レジスタバンク726、第2レジスタバンク728、出力側バンクセレクタ730、アドレスポート732、個別レジスタ734を含む。なお、個別レジスタ734には、次に実行すべきプログラムのアドレスを示す16ビットのプログラムカウンタ(PC)、割込モード時に使用される8ビットのインタラプト(I)レジスタ、オペコードフェッチサイクルを計数する8ビットのリフレッシュ(R)レジスタ、割込の許可/禁止を制御する8ビットの割込許可(IFF)レジスタが含まれる。
【0392】
また、レジスタユニット716には、大役抽選に係る種々の乱数値(大当たり決定乱数、当たり図柄乱数、リーチグループ決定乱数、リーチモード決定乱数、変動パターン乱数、当たり決定乱数)を取得するための乱数発生器(図示せず)が対応付けられ、入力ポート(FE73h~FE9Ch)を介してラッチされた乱数値が取得される。
【0393】
乱数発生器は、システムクロック(外部入力を2分周したクロック)で動作し、所定の最大値未満の乱数を発生する。なお、乱数発生器は、乱数の最大値を設定可能な乱数発生器である最大値設定乱数発生器として、16ビットの最大値を設定可能な乱数発生器が4チャンネル、8ビットの最大値を設定可能な乱数発生器が8チャンネル準備されている。ここで、16ビットの最大値設定乱数発生器は、乱数更新周期が32~47クロックの範囲で選択でき、最大値の設定範囲が256~65535の範囲で設定できる。また、8ビットの最大値設定乱数発生器は、乱数更新周期が16~31クロックの範囲で選択でき、最大値の設定範囲が4チャンネルで16~255の範囲で設定でき、他の4チャンネルで64~255の範囲で設定できる。また、乱数の最大値が固定された乱数発生器である最大値固定乱数発生器として、16ビットの最大値を設定可能な乱数発生器が4チャンネル、8ビットの最大値を設定可能な乱数発生器が8チャンネル準備されている。ここで、16ビットの最大値固定乱数発生器は、乱数更新周期が1クロックに、最大値が65535に固定されている。また、8ビットの最大値固定乱数発生器は、乱数更新周期が1クロックに、最大値が255に固定されている。
【0394】
なお、乱数の種類が足りない場合、ハードウェア乱数生成部(乱数発生器)から取得した乱数値に、プログラム内において所定の数値を乗じ、また、除算することで他の乱数を生成する(ソフトウェア乱数生成部)ことも可能である。
【0395】
図34は、レジスタの構成を説明した図である。レジスタユニット716には、第1レジスタバンク(バンク0)726と、第1レジスタバンク726と対(ペア)となる第2レジスタバンク(バンク1)728が設けられている。また、第1レジスタバンク726には、メインレジスタ群(表レジスタ群)726aと、メインレジスタ群726aと対となるサブレジスタ群(裏レジスタ群)726bが設けられ、第2レジスタバンク728には、メインレジスタ群728aと、メインレジスタ群728aと対となるサブレジスタ群728bが設けられている。第1レジスタバンク726のメインレジスタ群726aおよびサブレジスタ群726b、ならびに、第2レジスタバンク728のメインレジスタ群728aおよびサブレジスタ群728bには、いずれも、8ビットのレジスタ(Q、A、F、B、C、D、E、H、L)と、16ビットのレジスタ(IX、IY)が含まれる。ただし、メインレジスタ群726a、728aには、サブレジスタ群726b、728bと異なり、さらに、8ビットのレジスタ(U)と16ビットのレジスタ(SP)が含まれている。メインCPU200aは、第1レジスタバンク726と第2レジスタバンク728とを切り換えて利用し、後述するFレジスタにおけるレジスタバンク指定レジスタRBの示す一方のレジスタバンクのみにアクセスでき、そのレジスタバンクと対になる他方のレジスタバンクには同時にアクセスすることができない。
【0396】
図34に示すレジスタのうち、Qレジスタは、拡張レジスタとして、各レジスタバンクに2セット設けられ、一部のコマンドにおいて用いられるアドレスの上位バイトを格納する8ビットのレジスタである。かかるQレジスタの値として、例えば、F0hが設定されている場合、メインCPU200aは、メインRAM200cのF000h~F0FFhへのアクセスにQレジスタを利用することができる。Uレジスタは、拡張レジスタとして、各レジスタバンクに1セット設けられ、一部のコマンドにおいて用いられるアドレスの上位バイトを格納する8ビットのレジスタである。かかるUレジスタの値として、例えば、FEhが設定されている場合、メインCPU200aは、FE00h~FEFFhの入出力部704に接続された内蔵デバイス(タイマ、乱数発生器、外部入出力回路等)へのアクセスにUレジスタを利用することができる。Aレジスタは、演算処理やデータ転送に使う8ビットのアキュムレータとしても機能する汎用レジスタである。Fレジスタは、各種演算結果を保持する8ビットのフラグレジスタである。ここで、Fレジスタの各ビットは、図34に示すように、最上位ビット(MSB:Most Significant Bit)から最下位ビット(LSB:Least Significant Bit)にかけて、Sは、演算結果が負のとき1にセットされるサインフラグであり、Zは、演算の結果、全ビットが0のとき1にセットされるゼロフラグ(第1ゼロフラグ)であり、TZは、データ転送命令(LD;ロード)の実行により、全ビットが0のとき1にセットされる(値の変わる)遊技機用拡張仕様の特定ビットフラグ(第2ゼロフラグ)であり、ティーゼットフラグと呼ぶ場合もある。Hは、プログラマーが関与できないハーフキャリーフラグであり、RB(レジスタバンク指定レジスタ)は、現在のレジスタバンク(第1レジスタバンク726=0、第2レジスタバンク728=1)を示すレジスタバンクモニタであり、P/Vは、パリティオーバーフローフラグであり、Nは、プログラマーが関与できない加減算フラグであり、Cは、演算の結果、桁上げまたはボロー発生時に1がセットされるキャリーフラグである。なお、Fレジスタは、AレジスタとペアレジスタAFを構成する。
【0397】
また、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタは、各レジスタバンクに2セット設けられた8ビットの汎用レジスタであり、それぞれ予め組合せが定められている16ビットのペアレジスタ(例えば、レジスタBC、DE、HL、その他複数の組み合わせが存在する)を構成して利用される。IXレジスタ、IYレジスタは、インデックスアドレッシングに用いられる16ビットの汎用レジスタである。SP(スタックポインタ)レジスタは、16ビットであり、スタックポインタとなるアドレスを格納する。Q’レジスタ、A’レジスタ、F’レジスタ、B’レジスタ、C’レジスタ、D’レジスタ、E’レジスタ、H’レジスタ、L’レジスタ、IX’レジスタ、IY’レジスタは、Qレジスタ、Aレジスタ、Fレジスタ、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ、IXレジスタ、IYレジスタのメインレジスタ群726a、728aとの交換命令または転送命令によりデータ(内容)交換またはデータ転送可能なサブレジスタ群726b、728bであり、A’レジスタとF’レジスタでペアレジスタAF’を構成し、B’レジスタとC’レジスタでペアレジスタBC’を構成し、D’レジスタとE’レジスタでペアレジスタDE’を構成し、H’レジスタとL’レジスタでペアレジスタHL’を構成して利用される。なお、ペアレジスタはBC’、DE’、HL’に限らず、その他複数の組み合わせが存在する。一方、Uレジスタ、SPレジスタについては、各レジスタバンクに1セット設けられている。
【0398】
ところで、上述したように、主制御基板200においては、メインCPU200aが、メインROM200bに格納されたプログラムに基づきメインRAM200cと協働して遊技の進行を制御する。これらの機能部を実行するためのプログラムは、メインROM200bおよびメインRAM200cの所定の領域(使用領域)に配される。
【0399】
図35は、メモリマップを示す説明図である。メインROM200bには、0000h~3FFFh(12kbyte)のメモリ空間が割り当てられ、メインRAM200cには、F000h~F3FFh(1kbyte)のメモリ空間が割り当てられ、入出力部704には、FE00h~FEFFh(256byte)のメモリ空間が割り当てられている。なお、プログラムの命令コードはアセンブラ言語で記述されている。ここで、プログラムは、命令コードで構成されたものであり、コンピュータに読み出され、データやワークエリアと協働して所定の処理を実現することができる。
【0400】
メインROM200bの0000h~1DF3hのメモリ空間には使用領域が割り当てられている。使用領域は、遊技の進行を制御する遊技制御処理を実行するためのプログラムやデータを格納する領域である。具体的に、0000h~11FFh(4.5kbyte)に制限されたメモリ空間(制御領域)に、初期化手段300、ベット手段302、当選種別抽選手段304、リール制御手段306、判定手段308、払出制御手段310、遊技状態制御手段312、演出状態制御手段314、コマンド送信手段316を機能させて遊技の進行を制御する遊技制御処理を実行するためのプログラムの命令コードが格納され、1200h~1DF3h(3.0kbyte)に制限されたメモリ空間(データ領域)に、遊技制御処理のプログラムに用いられるデータが格納されている。また、1E00h~1FFFhのメモリ空間にはコメント領域が割り当てられ、3FC0h~3FFFhのメモリ空間にはプログラム管理領域が割り当てられている。また、2000h~3FBFhのメモリ空間には別領域(使用外領域)が割り当てられている。別領域は、後述するように、使用領域に格納することが定められていないプログラムやデータを格納する領域である。具体的に、2000h~3FBFhのメモリ空間には、遊技の進行に影響を及ぼさない、遊技機用試験処理やセキュリティ関連処理のうち一部または全部の処理(以降では、単に遊技制御外処理という場合がある)を遂行するプログラムの命令コードおよびプログラムデータが格納されている。
【0401】
また、メインRAM200cのF000h~F1FFhのメモリ空間には使用領域が割り当てられている。具体的に、F000h~F13Fhのメモリ空間には、上記遊技制御処理のワークエリアが割り当てられ、タイマ、カウンタ、フラグ等の変数管理に用いられる。F1C0h~F1FFhのメモリ空間には、上記遊技制御処理のスタック領域が割り当てられている。また、メインRAM200cのF200h~F3FFhのメモリ空間には別領域が割り当てられている。具体的に、F210h~F22Fhのメモリ空間には、上記セキュリティ関連処理のうち一部または全部の処理のワークエリアが割り当てられ、タイマ、カウンタ、フラグ等の変数管理に用いられる。F230h~F246hのメモリ空間には、上記セキュリティ関連処理のうち一部または全部の処理のスタック領域が割り当てられている。
【0402】
また、FE00h~FEFFhのメモリ空間には入出力部704が割り当てられている。従来、入出力部704に対応するデバイスにアクセスするため、メモリ空間と独立して256バイトのI/O空間が設けられていた。これに対し、本実施形態では、MREQ、IORQの信号をなくし、メモリ、入出力部704へのアクセスを共通化してRD、WR信号で行うこととした。また、入出力部704に接続されたデバイスにアクセスするための上位8ビットのアドレスを指定するハードウェアとしてのUレジスタを設け、ここに予め8ビットの上位アドレスを指定しておく。これにより、メモリ空間とは独立して設けられていたI/O空間を、メモリ空間に統合して一つのアドレス空間とし、IN命令、OUT命令を実行するとメモリ空間に割り当てられた入出力部704に対し、上位8ビットをUレジスタで指定し下位8ビットはIN命令、OUT命令のオペランドで指定した下位8ビットを用いてアクセス可能とした。
【0403】
本実施形態では、LDQ命令ではQレジスタの値を用いてメモリ空間(主にデータエリア、ワークエリア)にアクセスし、IN命令、OUT命令ではUレジスタを用いてデバイス(タイマ、乱数発生器、外部入出力回路等)のI/Oにアクセスするようにプログラムを記述できるようになる。かかる構成により、設計時にプログラムを把握し易くなる。また、メモリおよびI/Oを、16ビットのアドレスで特定してアクセスしていたものを下位8ビットのオペランドでアクセスすることが可能になり、プログラム容量を圧縮することができる。さらにQレジスタ、Q’レジスタ、Uレジスタと複数の上位指定レジスタを持つことにより、上位レジスタが1つだけの時よりも上位レジスタの使い回しによる入れ替えの回数が少なくなり、プログラム容量をさらに圧縮することができる。
【0404】
上記の例ではIN命令、OUT命令でI/O空間に対応するメモリ空間にアクセスしたが、IN命令、OUT命令で直接メモリ空間にアクセスしてもよい。このことは、例えばメモリ上の3つの256バイト領域にアクセスする場合に、Qレジスタ、Q’レジスタ、Uレジスタにそれぞれの上位8ビットを指定しておき、LDQ命令とIN命令、OUT命令でそれぞれの領域にアクセスすることで実現できる。
【0405】
<各種テーブルの参照>
メインCPU200aは、図9図31に示した各処理において、それぞれ必要な情報が配列されたテーブルを参照し、遊技の進行に要する様々な情報を抽出する。ここでは、エリア別データテーブル、内部抽選オフセットテーブル、枚数取得テーブル、図柄ビットオフセットテーブル等の各種テーブルを例に挙げ、情報を抽出する具体的な処理を説明する。
【0406】
(内部抽選オフセットテーブル)
メインCPU200aは、図18の図柄コード設定処理S230における当選役グループ設定処理S230-5において、エリア別データテーブル(「T_CMD_SET」)を参照し、遊技状態設定処理S230-1で取得した当選領域の値に基づいて、当選役グループを決定する。そして、メインCPU200aのコマンド送信手段(情報送信手段)316は、毎遊技、決定された当選役グループ(グループ情報)を当選情報コマンドとして副制御基板202に送信する。なお、当選領域の値は、当選種別抽選手段304により、複数の当選種別それぞれに対応して決定される。したがって、当選種別抽選手段304は、当選領域を抽選により決定する当選領域抽選手段としても機能する。
【0407】
図36は、当選役グループ設定処理S230-5の具体的な処理を示したプログラムコードである。図36(a)の1行目の指標「GET_ARD:」は、当該当選役グループ設定処理の先頭アドレスを示す。2行目のコマンド「LD HL,T_CMD_SET」によって、HLレジスタに、エリア別データテーブルの先頭アドレス(「T_CMD_SET」)が設定される。3行目のコマンド「RST CALADRS」によって、レジスタの加算処理を行うサブルーチン「CALADRS」が呼び出される。このときAレジスタには、遊技状態設定処理S230-1で取得した当選領域を特定可能な識別番号(以下、単に、当選領域の値、もしくは、当選領域という)が設定されている。なお、当選領域の値は0~36の連番で示されている。かかるサブルーチン「CALADRS」では、HLレジスタの値とAレジスタの値が加算され、エリア別データテーブル(「T_CMD_SET」)における、加算した値が示すアドレスの内容がAレジスタに設定される。そして、4行目のコマンド「RET」によって、呼び出し元の処理に復帰する。
【0408】
図36(b)のエリア別データテーブル(「T_CMD_SET」)では、図6の当選種別テーブルのうち、当選領域と、当選役グループの値とが対応付けられている。また、その記述順は、当選領域の値(0~36)が昇順となるように連番で配置されている。したがって、当選領域の値を、そのままエリア別データテーブル内における、データが格納されたアドレスへのオフセット値とすることで、当選役グループの値が示されるデータが格納されたアドレスを特定することができる。例えば、当選領域が「0」の場合、図36(a)の3行目のコマンド「RST CALADRS」により、アドレスとして、図36(b)の2行目のデータ「DEFB 0」を示すアドレス(「T_CMD_SET」+当選領域「0」)が特定され、当選役グループの値として「0」がAレジスタに設定される。また、当選領域が「10」の場合、図36(a)の3行目のコマンド「RST CALADRS」により、アドレスとして、図36(b)の12行目のデータ「DEFB 4」を示すアドレス(「T_CMD_SET」+当選領域「10」)が特定され、当選役グループの値として「4」がAレジスタに設定される。こうして、メインCPU200aは、当選役グループの値を取得でき、当選役グループを示す当選情報コマンド(_HIT_CMD)を副制御基板202に送信することができる。
【0409】
ここで、当選役グループは、当選役の種別(リプレイ役、小役、ボーナス役)、遊技の進行における機能、または、遊技利益(有利区間移行、CZ演出状態移行、AT演出状態移行等)が付与される確率等が等しい複数の当選領域をグループ化したものである。図6によれば、例えば、当選領域4~当選領域15は、当選種別「打順ベル」として機能が等しく、当選役グループ4としてグループ化されている。ここで、当選領域10の当選種別「打順ベルB1」に当選した場合、メインCPU200aは、正解操作態様を把握可能な当選種別「打順ベルB1」を示す情報ではなく、当選領域10に対応する当選役グループ4を示す情報を副制御基板202に送信する。また、メインCPU200aは、AT演出状態においては当選役グループ4とは別に、正解操作態様を把握可能なコマンドを副制御基板202に送信し、非AT演出状態においてはそのようなコマンドを送信しない。かかる構成により、非AT演出状態において、遊技者が正解役を不正に入賞させることを防止することができる。
【0410】
また、メインCPU200aは、図17の内部抽選処理S220における抽選データ取得処理S220-15において、当選種別抽選乱数がいずれの当選領域に対応するか判定するため、内部抽選オフセットテーブル(「T_MAP_NML」)を参照し、所定の当選領域の当選範囲を示す数値である抽選データ(置数)を取得する。
【0411】
図37は、抽選データ取得処理S220-15の具体的な処理を示したプログラムコードであり、図38は、内部抽選オフセットテーブルを示すプログラムコードである。図38の内部抽選オフセットテーブルでは、当選領域と、抽選データ群へのオフセット値とが対応付けられている。また、その記述順は、当選領域の値(1~36)が昇順となるように連番で配置されている。したがって、当選領域の値を、そのまま内部抽選オフセットテーブル内における、データが格納されたアドレスへのオフセット値とすることで、抽選データ群へのオフセット値が示されるデータが格納されたアドレスを特定することができる。ここで、抽選データ群は、当選領域に対応する抽選データ(置数)が単独、または、設定値の昇順に纏めて配置されたデータ群である。
【0412】
図37の1行目の指標「LOTDATA:」は、当該抽選データ取得処理の先頭アドレスを示す。2行目のコマンド「LD A,B」によって、Bレジスタに設定された当選領域の値(0~36)がAレジスタに複製される。3行目のコマンド「LD HL,T_MAP_NML-1」によって、HLレジスタに、内部抽選オフセットテーブルの先頭アドレス(「T_MAP_NML」)-1が設定される。ここで、1を減算しているのは、当選領域1~36と、抽選データ群へのオフセット値のアドレスとの整合をとるためである。4行目のコマンド「RST CALADRS」によって、サブルーチン「CALADRS」が呼び出され、HLレジスタの値とAレジスタの値が加算され、図38の内部抽選オフセットテーブル(「T_MAP_NML」)における、加算した値によって示されるアドレスの内容(内部抽選オフセットテーブル内におけるオフセット値)がAレジスタに設定される。こうして、当選領域の値(1~36)にそれぞれ対応する抽選データ群へのオフセット値が抽出される。
【0413】
例えば、当選領域が「4」であった場合、内部抽選オフセットテーブルの先頭アドレス「T_MAP_NML」-1に「4」が加算されたアドレス、すなわち、図38の5行目に記述された値である、オフセット値「T_SEL_NML_AT1-$」を2倍して、ビット0に0が設定された値がAレジスタに設定される。また、当選領域が「20」であった場合、内部抽選オフセットテーブルの先頭アドレス「T_MAP_NML」-1に「20」が加算されたアドレス、すなわち、図38の21行目に記述されたオフセット値「T_SEL_NML_BA2-$」を2倍して、ビット0に0が設定された値がAレジスタに設定される。なお、「$」は、そのコードが記述されているアドレス自体の値を示す。
【0414】
続いて、図37の5行目のコマンド「SRL」によってAレジスタの値が1ビットシフトされる。こうして、Aレジスタには抽選データ群へのオフセット値のみが残る。6行目のコマンド「JR NC,LOTDATA01」によって、内部抽選オフセットテーブル「T_MAP_NML」から参照した値のビット0が1であれば、すなわち、ボーナス種別確認時でなければ、7行目の処理を行うことなく、8行目の指標「LOTDATA01」にジャンプする。ビットシフトされたキャリーが0であれば、7行目のコマンド「RTQ Z,(LOW _BNS_KND)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_BNS_KND」の下位1バイトの値をアドレスの下位1バイトとし、その2バイトのアドレスが示すメモリ領域に格納された値(ボーナス種別)が0であれば、呼び出し元に戻る。
【0415】
図37の9行目のコマンド「RST CALADRS」によって、サブルーチン「CALADRS」が呼び出され、HLレジスタの値とAレジスタの値(抽選データ群へのオフセット)が加算され、図38の内部抽選オフセットテーブル(「T_MAP_NML」)における、加算した値によって示されるアドレスの内容がAレジスタに設定される。例えば、当選領域が「4」であった場合、内部抽選オフセットテーブルの先頭アドレス「T_MAP_NML」にオフセット値「T_SEL_NML_AT1-$」が加算されたアドレス、すなわち、図38の39行目~46行目に示される抽選データ群のうち、40行目に記述された「@RNK_FLG+@LOT_OFS_NHT」がAレジスタに設定される。また、当選領域が「20」であった場合、内部抽選オフセットテーブルの先頭アドレス「T_MAP_NML」にオフセット値「T_SEL_NML_BA2-$」が加算されたアドレス、すなわち、図38の48行目~50行目に示される抽選データ群のうち、49行目に記述された「@BYT_FLG+@YME_FLG+@LOT_OFS_1FK」がAレジスタに設定される。
【0416】
図37の10行目のコマンド「LD C,A」によって、Aレジスタの値が一旦Cレジスタに退避され、11行目のコマンド「AND 0FH」によって、Aレジスタの下位4ビットがマスクされ、トリガー役種別が生成される。12行目のコマンド「LDQ (LOW _TRG_KND),A」によって、Aレジスタの値(生成したトリガー役種別)が、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_TRG_KND」の下位1バイトの値をアドレスの下位1バイトとした2バイトのアドレスが示すメモリ領域に格納される。13行目のコマンド「INC HL」によって、HLレジスタの値が1だけインクリメントされる。
【0417】
図37の14行目のコマンド「JBIT NZ,@YME_BIT,C,LOTDATA02」によって、Cレジスタのビット「@YME_BIT」が1であれば、すなわち、遊技区間抽選が許可されていれば、16行目の処理を行うことなく、17行目の指標「LOTDATA02」にジャンプする。また、15行目のコマンド「JTQ NZ,(LOW _YRI_KND),LOTDATA02」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_YRI_KND」の下位1バイトの値をアドレスの下位1バイトとした2バイトのアドレスが示すメモリ領域に格納された値、すなわち、有利区間種別が0でなければ、16行目の処理を行うことなく、17行目の指標「LOTDATA02」にジャンプする。14行目および15行目のコマンドの条件を満たさなければ、16行目のコマンド「CLRQ (LOW _TRG_KND)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_TRG_KND」の下位1バイトの値をアドレスの下位1バイトとしたアドレスに0が格納され、トリガー役種別がクリアされる。
【0418】
図37の18行目のコマンド「LDQ A,(LOW _GAM_RNK)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_GAM_RNK」の下位1バイトの値をアドレスの下位1バイトとしたアドレスが示すメモリ領域に格納された値、すなわち、設定値データ(0~5)がAレジスタに設定される。19行目のコマンド「JBIT NZ,@RNK_BIT,C,LOTDATA03」によって、Cレジスタのビット「@RNK_BIT」が1であれば、すなわち、設定差が存在していれば、20行目の処理を行うことなく、21行目の指標「LOTDATA03」にジャンプする。Cレジスタのビット「@RNK_BIT」が0であれば、すなわち、設定差が存在していなければ、20行目のコマンド「XOR A」によって、Aレジスタが0に設定される。こうして、設定差が無い場合の設定値データが0に設定される。
【0419】
図37の22行目のコマンド「BIT @BYT_BIT,C」によって、Cレジスタのビット「@BYT_BIT」が1であるか、すなわち、データサイズが1バイトであるか確認され、23行目のコマンド「JR NZ,LOTDATA04」によって、確認されたビットが1であれば、すなわち、データサイズが1バイトであれば、24行目~28行目の処理を行うことなく、29行目の指標「LOTDATA04」にジャンプする。確認されたビットが0であれば、すなわち、データサイズが2バイトであれば、設定値データに対応する抽選データを読み出すためのオフセット値を2バイト単位とするため、24行目のコマンド「ADD A,A」によってAレジスタの値が2倍にされ、25行目のコマンド「RST CALADRS」によって、サブルーチン「CALADRS」が呼び出され、HLレジスタの値とAレジスタの値が加算され、図38の内部抽選オフセットテーブル(「T_MAP_NML」)における、加算した値が示すアドレスの内容(抽選データ)がAレジスタに設定される。例えば、当選領域が「4」であり、設定値が「2」であった場合、13行目でインクリメントされたHLレジスタにAレジスタの値2(設定値「2」を示す値「1」×オフセット値「2」)が加算されたアドレス、すなわち、図38の39行目~46行目に示される抽選データ群のうち、42行目に記述された抽選データ「3218」の下位1バイトの値「92H」がAレジスタに設定される。
【0420】
続いて、図37の26行目のコマンド「INC HL」によって、HLレジスタの値が1だけインクリメントされる。27行目のコマンド「LD H,(HL)」によって、HLレジスタにより示されるアドレスのメモリ領域に格納された値がHレジスタに設定される。例えば、当選領域が「4」であり、設定値が「2」であった場合、図38の42行目に記述された抽選データ「3218」の上位1バイトの値「0CH」がHレジスタに設定される。図37の28行目のコマンド「JR LOTDATA05」によって、32行目の指標「LOTDATA05」にジャンプする。
【0421】
続いて、図37の30行目のコマンド「RST CALADRS」によって、サブルーチン「CALADRS」が呼び出され、HLレジスタの値とAレジスタの値が加算され、図38の内部抽選オフセットテーブル(「T_MAP_NML」)における、加算した値が示すアドレスの内容(抽選データ)がAレジスタに設定される。例えば、当選領域が「20」であり、設定差がなかった場合、図37の13行目でインクリメントされたHLレジスタに、Aレジスタの値0が加算されたアドレス、すなわち、図38の48行目~50行目に示される抽選データ群のうち、50行目に記述された抽選データ「16」がAレジスタに設定される。そして、図37の31行目のコマンド「LD H,0」によって、Hレジスタに0が設定される。
【0422】
図37の33行目のコマンド「LD L,A」によって、Aレジスタの値がLレジスタに設定される。こうして、HLレジスタに抽選データが設定されることとなる。34行目のコマンド「OR H」によって、AレジスタとHレジスタとの論理和が計算され、両レジスタが0であると、Aレジスタの値が0となるよう(ゼロフラグが成立するよう)に設定される。そして、35行目のコマンド「RET」によって、呼び出し元の処理に復帰する。
【0423】
上述したように、ここでは、引数としてBレジスタに当選領域の値(1~36)を設定している状態で、抽選データ取得処理S220-15を実行することで、その結果としてHLレジスタに抽選データを取り込みことができる。具体的に、メインCPU200aは、図38の2行目~37行目に示すように、当選領域と同数の内部抽選オフセットテーブルを用いて、当選領域の値(1~36)にそれぞれ対応する抽選データ群へのオフセット値を抽出する。そして、その抽出したオフセット値に基づいて、当選領域に対応する抽選データが定められた複数の抽選データ群(例えば、39行目~46行目、48行目~50行目)から1の抽選データ群が特定され、当選領域に設定差が存在するか否か、および、抽選データのデータサイズが1バイトであるか2バイトであるかに基づいて、当選領域に対応する1の抽選データが特定される。
【0424】
ところで、複数の当選領域において、抽選データ(抽選データ群)が共通するものもある。例えば、図38を参照して理解できるように、図38の5行目~16行目に記述された当選領域4~15については、共通する抽選データ群へのオフセット値(「T_SEL_NML_AT1-$」)が抽出され、また、図38の17行目~19行目に記述された当選領域16~18については、共通する抽選データ群へのオフセット値(「T_SEL_NML_AT2-$」)が抽出されている。
【0425】
このように、メインCPU200aは、当選領域4~15に対し、共通の抽選データを参照している。また、これとは別に、当選領域4~15は、図6図36を参照して理解できるように、当選役グループの値が「4」で等しい。したがって、少なくとも、当選役グループが共通する当選領域は、抽選データも共通すると言える。ここでは、当選役グループが共通する当選領域は、抽選データも共通するという特性を利用し、当選領域4~15の代わりに当選役グループ「4」を用いることで、内部抽選オフセットテーブルを簡略化することが可能である。
【0426】
具体的に、図36を用いて説明したように、当選役グループ設定処理S230-5では、当選領域と当選役グループの値とが対応付けられたエリア別データテーブル(「T_CMD_SET」)を用い、当選領域に基づいて当選役グループを特定し、その当選役グループを当選情報コマンドとして副制御基板202に送信する。したがって、当選役グループ設定処理S230-5によって、当選領域の一部をグループ化した当選役グループが既に特定されていることとなる。ここでは、図37に示した抽選データ取得処理S220-15において、当選領域1~36の代わりに、当選役グループ1~23を、引数としてBレジスタに設定し、抽選データ取得処理S220-15を実行し、その結果としてHLレジスタに抽選データを取り込むことができる。
【0427】
図39は、内部抽選オフセットテーブルの他の例を示すプログラムコードである。図39の内部抽選オフセットテーブルでは、当選役グループと、抽選データ群へのオフセットとが対応付けられている。また、その記述順は、当選役グループを特定可能な識別番号(以下、単に、当選役グループの値、もしくは、当選役グループという)が昇順となるように1~23の連番で配置されている。したがって、当選役グループの値を、そのまま内部抽選オフセットテーブル内における、データが格納されたアドレスへのオフセット値とすることで、抽選データ群へのオフセット値が示されるデータが格納されたアドレスを特定することができる。
【0428】
例えば、当選領域が「4」であった場合、当選役グループ設定処理S230-5によって当選役グループ「4」が特定される。図37の抽選データ取得処理S220-15における4行目のコマンド「RST CALADRS」によって、内部抽選オフセットテーブルの先頭アドレス「T_MAP_NML」-1に「4」が加算されたアドレス、すなわち、図39の5行目に記述された値である、オフセット「T_SEL_NML_AT1-$」を2倍して、ビット1に0が設定された値がAレジスタに設定される。そして、図37の9行目のコマンド「RST CALADRS」によって、HLレジスタの値にオフセット値「T_SEL_NML_AT1-$」が加算された値に示されるアドレスの内容、すなわち、図39の27行目に記述された「@RNK_FLG+@LOT_OFS_NHT」がAレジスタに設定される。設定値が「2」であった場合、図37の13行目でインクリメントされたHLレジスタに、Aレジスタの値2(設定値「2」を示す値「1」×2)が加算されたアドレス、すなわち、図39の29行目に記述された抽選データ「3218」の下位1バイトの値「92H」がAレジスタに設定され、図37の27行目のコマンド「LD H,(HL)」によって、図39の29行目に記述された抽選データ「3218」の上位1バイトの値「0CH」がHレジスタに設定される。こうして、当選領域4(当選役グループ4)に対応する抽選データ「3218」を取得することができる。
【0429】
また、当選領域が「20」であった場合、当選役グループ設定処理S230-5によって当選役グループ「7」が特定される。図37の抽選データ取得処理S220-15における4行目のコマンド「RST CALADRS」によって、内部抽選オフセットテーブルの先頭アドレス「T_MAP_NML」-1に「7」が加算されたアドレス、すなわち、図39の8行目に記述された値である、オフセット「T_SEL_NML_BA2-$」を2倍して、ビット1に0が設定された値がAレジスタに設定される。そして、図37の9行目のコマンド「RST CALADRS」によって、HLレジスタにオフセット値「T_SEL_NML_BA2-$」が加算されたアドレス、すなわち、図39の36行目に記述された「@BYT_FLG+@YME_FLG+@LOT_OFS_1FK」がAレジスタに設定される。かかる抽選データは設定差がないので、図37の13行目でインクリメントされたHLレジスタに、Aレジスタの値0が加算されたアドレス、すなわち、図39の37行目に記述された抽選データ「16」がAレジスタに設定され、図37の31行目のコマンド「LD H,0」によって、Hレジスタに0が設定される。こうして、当選領域20(当選役グループ5)に対応する抽選データ「16」を取得することができる。
【0430】
図38の内部抽選オフセットテーブルと図39の内部抽選オフセットテーブルとを比較すると、図39の内部抽選オフセットテーブルでは、当選領域の代わりに当選役グループの値を引数として用いることで、メモリの容量を、当選領域1~36と、当選役グループ1~23との差、すなわち、13バイト削減することができる。
【0431】
なお、ここでは、複数の当選領域0~36の一部、例えば、当選領域4~15をグループ化した1または複数の当選役グループ(グループ情報)が定められ、決定された当選領域が含まれる当選役グループを特定する主体(メインCPU200aの機能)をグループ特定部とする。また、抽選データ(当選領域に関する情報)を配置した内部抽選オフセットテーブル(テーブル)が記憶される主体(メインROM200bの機能)を記憶手段とする。また、内部抽選オフセットテーブルの先頭アドレス「T_MAP_NML」を基準とし、抽選データに対応する当選役グループの値(グループ情報を特定可能な識別番号:1~23)をオフセット値として、抽選データを導出する主体を情報導出手段とする。また、内部抽選オフセットテーブルでは、抽選データに対応する当選役グループの値(1~23)が昇順となるように抽選データが配置されている。また、識別番号は、他と識別可能な識別情報であれば足り、様々な数値を適用できる。また、上記では、内部抽選オフセットテーブルにおいて、抽選データに対応する当選役グループの値が昇順となるように、抽選データを配置したが、昇順に限らず、オフセット値や、内部抽選オフセットテーブルの基準アドレス(先頭アドレスや末尾アドレス)の定義に応じて、抽選データに対応する当選役グループの値が降順になるように配置してもよい。
【0432】
このように、ここでは、決定された当選領域が含まれる当選役グループを特定し、特定された当選役グループを副制御基板202に送信することを前提とし、そのように特定された当選役グループを有効利用して内部抽選オフセットテーブルから抽選データを特定している。かかる構成により、グループ化した情報を改めて生成することなく、すなわち、新たなプログラムや処理負荷の増加を抑制しつつ、適切に抽選データを特定することができる。また、当選領域の代わりに、当選領域より個数の少ない当選役グループをオフセット値として抽選データを抽出しているので、上記のように、内部抽選オフセットテーブルのメモリ容量を大幅に削減することが可能となる。
【0433】
(枚数取得テーブル)
上述した実施形態では、当選領域を、当選役グループに変換するために必要な当選役グループ設定処理S230-5を利用し、内部抽選オフセットテーブルのメモリ容量を削減する例を挙げて説明した。以下では、当選役グループ設定処理S230-5を利用し、当選役グループと異なるグルーピングにより、新たなパラメータを生成することで、テーブルのメモリ容量を削減する。
【0434】
例えば、上述したように、本実施形態では、AT演出状態において差枚数管理が行われている。差枚数管理においては、意図しないAT演出状態の延長を防止するため、補助演出が実行されると、遊技者がその補助演出に実際に従ったか否かに拘わらず、補助演出に従った場合において獲得可能な差枚数が計数(減算)される。したがって、AT演出状態における差枚数は、当選領域から一意に求めることができる。例えば、当選領域4の当選種別「打順ベルA1」に当選し、当選役「7枚役」を入賞可能な正解操作態様(打順1)の補助演出が実行された場合、遊技者が補助演出に実際に従ったか否かに拘わらず、補助演出に従った場合において獲得可能な差枚数である7枚が一意に特定され、その7枚が計数される。ここでは、当選領域に基づいて減算すべき差枚数を取得する減算枚数取得処理を説明する。
【0435】
図40は、減算枚数取得処理の具体的な処理を示したプログラムコードである。図40(a)の1行目のコマンド「LDQ A,(LOW _HIT_NUM)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_HIT_NUM」の下位1バイトの値をアドレスの下位1バイトとしたアドレスが示すメモリ領域に格納された値、すなわち、当選領域の値(停止制御番号)がAレジスタに設定される。2行目のコマンド「LD HL,T_CLC_MDL」によって、HLレジスタに、枚数取得テーブルの先頭アドレス(「T_CLC_MDL」)が設定される。3行目のコマンド「ADDWB HL,A」によって、HLレジスタの値にAレジスタの値が加算されてHLレジスタの値が更新される。4行目のコマンド「LD A,(HL)」によって、HLレジスタが示すアドレスのメモリ領域に格納された値がAレジスタに読み込まれる。
【0436】
図40(b)の枚数取得テーブル(「T_CLC_MDL」)では、当選領域と、減算すべき差枚数とが対応付けられている。また、その記述順は、当選領域の値(0~36)が昇順となるように連番で配置されている。したがって、当選領域の値を、そのまま枚数取得テーブル内における、データが格納されたアドレスへのオフセット値とすることで、差枚数が示されるデータが格納されたアドレスを特定することができる。例えば、当選領域が「0」の場合、減算枚数取得処理では、アドレスとして、図40(b)の2行目(「T_CLC_MDL」+当選領域「0」)が特定され、差枚数として「0」がAレジスタに設定される。また、当選領域が「10」の場合、減算枚数取得処理では、アドレスとして、図40(b)の12行目(「T_CLC_MDL」+当選領域「10」)が特定され、差枚数として「7」がAレジスタに設定される。
【0437】
上述したように、ここでは、引数としてAレジスタに当選領域の値(0~36)を設定し、減算枚数取得処理を実行することで、その結果としてAレジスタに差枚数を設定することができる。具体的に、メインCPU200aは、図40(b)の2行目~38行目に示すように、当選領域0~36と同数の枚数取得テーブルを用いて、当選領域の値(0~36)にそれぞれ対応する差枚数を抽出する。なお、ここでは、複数の当選領域において、差枚数が共通するものもある。例えば、図40を参照して理解できるように、図40(b)の2行目~5行目に記述された当選領域0~3については、共通して同一の差枚数「0」が抽出され、また、図40の6行目~17行目に記述された当選領域4~15については、共通して同一の差枚数「7」が抽出されている。そこで、差枚数が共通する当選領域をグループ化して、差枚数を一意に特定可能な差枚数グループとし、例えば、当選領域0~36の代わりに、差枚数グループを用いることで、枚数取得テーブルを簡略化することが可能である。
【0438】
差枚数グループは、差枚数「0」、「1」、「3」、「7」、「15」に対し、それぞれ0~4(@MDL_000、@MDL_001、@MDL_003、@MDL_007、@MDL_015)の値を割り当てている。そして、当選領域に基づいて差枚数グループを取得する処理を、当選領域を、当選役グループに変換するために必要な当選役グループ設定処理S230-5を利用して実行する。具体的に、本実施形態において当選役グループは0~23の範囲で定められている。すなわち、当選役グループを識別するために、5ビットの領域を要する。換言すれば、エリア別データテーブルに準備された単位データである1バイト(8ビット)のうち、当選役グループの識別には5ビットしか利用していない。そこで、当選役グループの識別に利用していない3ビットを用い、差枚数グループ0~4を記述する。そして、メインCPU200aは、当選役グループ設定処理S230-5によって、当選役グループと共に差枚数グループも抽出する。
【0439】
図41は、当選役グループ設定処理S230-5の他の例を示したプログラムコードである。図41(a)の1行目の指標「GET_ARD:」は、当該当選役グループ設定処理の先頭アドレスを示す。2行目のコマンド「LD HL,T_CMD_SET」によって、HLレジスタに、エリア別データテーブルの先頭アドレス(「T_CMD_SET」)が設定される。3行目のコマンド「RST CALADRS」によって、レジスタの加算処理を行うサブルーチン「CALADRS」が呼び出され、HLレジスタの値とAレジスタの値が加算され、エリア別データテーブル(「T_CMD_SET」)における、加算した値が示すアドレスの内容(差枚数グループ×32+当選役グループ)がAレジスタに設定される。4行目のコマンド「AND 00011111B」によって、下位5ビットがマスクされ、当選役グループのみがAレジスタに残る。そして、5行目のコマンド「RET」によって、呼び出し元の処理に復帰する。
【0440】
図41(b)のエリア別データテーブル(「T_CMD_SET」)では、当選領域に対し、当選役グループの値に加え、差枚数グループの値が対応付けられている。また、その記述順は、当選領域の値(0~36)が昇順となるように連番で配置されている。したがって、当選領域の値を、そのままエリア別データテーブル内における、データが格納されたアドレスへのオフセット値とすることで、差枚数グループおよび当選役グループを特定することができる。例えば、当選領域が「0」の場合、サブルーチン「CALADRS」では、アドレスとして、図41(b)の2行目(「T_CMD_SET」+当選領域「0」)が特定され、差枚数グループの値である「@MDL_000」(0に相当)と、当選役グループの値である「0」が設定される。また、当選領域が「10」の場合、サブルーチン「CALADRS」では、アドレスとして、図41(b)の12行目(「T_CMD_SET」+当選領域「10」)が特定され、差枚数グループである「@MDL_007」(「3」に相当)と、当選役グループである「4」が設定される。
【0441】
こうして、当選領域に基づいて当選役グループを取得する当選役グループ設定処理S230-5を利用し、当選領域に基づいて差枚数グループも取得することができる。続いて、取得した差枚数グループを用い、図40と異なる態様で減算枚数取得処理を行う。
【0442】
図42は、減算枚数取得処理の他の例を示したプログラムコードである。図42(a)の1行目のコマンド「CALLF GET_HTD」によって、サブルーチン「GET_HTD」が呼び出されて、当選役グループ設定処理S230-5と同様の処理が実行され、当選役グループの値がAレジスタに設定される。2行目のコマンド「XOR (HL)によって、HLレジスタに示されるアドレスのメモリ領域に格納された値、すなわち、図41(a)の3行目のコマンド「RST CALADRS」において設定されたHLレジスタが示すアドレスのメモリ領域に格納された値(差枚数グループ×32+当選役グループ)と、Aレジスタの値(当選役グループ)とが排他的論理和で導出される。こうして、下位5ビットが0にクリアされ、上位3ビットの差枚数グループ(差枚数グループ×32)のみが残る。図42(a)の3行目のコマンド「SRLA 5」によって、Aレジスタの値が右に5ビットシフトされる。こうして、Aレジスタに差枚数グループの値のみが残る。4行目のコマンド「LD HL,T_CLC_MDL」によって、HLレジスタに、枚数取得テーブルの先頭アドレス(「T_CLC_MDL」)が設定される。5行目のコマンド「ADDWB HL,A」によって、HLレジスタの値にAレジスタの値が加算されてHLレジスタの値が更新される。6行目のコマンド「LD A,(HL)」によって、HLレジスタが示すアドレスのメモリ領域に格納された値をAレジスタに読み込む。
【0443】
図42(b)の枚数取得テーブル(「T_CLC_MDL」)では、差枚数グループと、減算すべき差枚数とが対応付けられている。また、その記述順は、差枚数グループを特定可能な識別番号(以下、単に、差枚数グループの値、もしくは、差枚数グループという)が昇順となるよう0~4の連番で配置されている。したがって、差枚数グループの値を、そのまま枚数取得テーブル内における、データが格納されたアドレスへのオフセット値とすることで、差枚数を特定することができる。
【0444】
例えば、当選領域が「0」の場合、差枚数グループは「0」となり、減算枚数取得処理では、アドレスとして、図42(b)の3行目(「T_CLC_MDL」+差枚数グループ「0」)が特定され、差枚数として「0」が設定される。また、当選領域が「10」の場合、差枚数グループは「3」となり、減算枚数取得処理では、アドレスとして、図42(b)の9行目(「T_CLC_MDL」+差枚数グループ「3」)が特定され、差枚数として「7」が設定される。
【0445】
図40の枚数取得テーブルと図42の枚数取得テーブルとを比較すると、図42の枚数取得テーブルでは、当選領域の代わりに差枚数グループの値を引数として用いることで、図42(a)の2、3行目のコマンド4バイト分が追加されるものの、メモリの容量を、当選領域0~36と、差枚数グループ0~4との差、すなわち、32バイト削減することができる。したがって、総合すると、28バイトのメモリの容量を削減することが可能となる。
【0446】
このように、ここでは、決定された当選領域が含まれる当選役グループを特定し、特定された当選役グループを副制御基板202に送信することを前提とし、当選役グループを特定する処理を利用して差枚数グループを特定し、そのように特定された差枚数グループに基づいて枚数取得テーブルから差枚数を特定している。また、エリア別データテーブルにおいて、当選役グループと差枚数グループとを結合し、単位データ(1バイト)で表している。かかる構成により、新たなプログラムや処理負荷の増加を抑制しつつ、適切に差枚数を特定することができる。また、当選領域の代わりに、当選領域0~36より個数の少ない差枚数グループ0~4をオフセット値として差枚数を抽出しているので、上記のように、枚数取得テーブルのメモリ容量を大幅に削減することが可能となる。
【0447】
(図柄ビットオフセットテーブル)
以下、当選役グループ設定処理S230-5を利用し、当選役グループおよび差枚数グループと異なる他のグルーピングにより、新たなパラメータを生成することで、テーブルのメモリ容量を削減する他の例を挙げて説明する。
【0448】
メインCPU200aは、図18の図柄コード設定処理S230における図柄コード初期設定処理S230-7において、図柄ビットオフセットテーブルを参照し、停止制御に係る図柄配列データを停止制御RWMに転送する。
【0449】
図43は、図柄コード初期設定処理S230-7の具体的な処理を示したプログラムコードであり、図44は、図柄ビットオフセットテーブル(T_JUG_OFS)を示すプログラムコードである。図44の図柄ビットオフセットテーブル(T_JUG_OFS)では、当選領域と、図柄配列データ群へのオフセット値とが対応付けられている。また、その記述順は、当選領域の値(0~36)が昇順となるように連番で配置されている。したがって、当選領域の値を、そのまま図柄ビットオフセットテーブル内における、データが格納されたアドレスへのオフセット値とすることで、図柄配列データ群へのオフセット値が示されるデータが格納されたアドレスを特定することができる。ここで、図柄配列データ群は、当選領域に対応する図柄配列データが纏めて配置されたデータ群である。
【0450】
図43の1行目のコマンド「LDQ A,(LOW _HIT_NUM)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_HIT_NUM」の下位1バイトの値をアドレスの下位1バイトとしたアドレスが示すメモリ領域に格納された値、すなわち、当選領域の値(停止制御番号)がAレジスタに設定される。2行目のコマンド「LD HL,T_JUG_OFS」によって、HLレジスタに、図柄ビットオフセットテーブルの先頭アドレス(「T_JUG_OFS」)が設定される。3行目のコマンド「RST CALADRS」によって、サブルーチン「CALADRS」が呼び出され、HLレジスタの値とAレジスタの値が加算され、図44の図柄ビットオフセットテーブル(「T_JUG_OFS」)における、加算した値が示すアドレスの内容(図柄配列データ群へのオフセット値)がAレジスタに設定される。例えば、当選領域が「0」であった場合、アドレス「T_JUG_OFS」に「0」が加算されたアドレス、すなわち、図44の2行目に記述されたオフセット値「T_JUG_DRW_000-$」がAレジスタに設定される。図43の4行目のコマンド「ADDWB HL,A」によって、HLレジスタの値にAレジスタの値が加算されてHLレジスタの値が更新される。
【0451】
図43の5行目のコマンド「LDQ DE,LOW _JUG_BIT」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_JUG_BIT」の下位1バイトの値をアドレスの下位1バイトとしたアドレスが示すメモリ領域に格納された値、すなわち、保存先の停止制御RWMのアドレスがDEレジスタに設定される。そして、6行目のコマンド「CALLF GET_DAT」によって、8行目の指標「GET_DAT」がサブルーチンとして呼び出される。
【0452】
図43の8行目の指標「GET_DAT:」は、当該図柄コード初期設定処理の先頭アドレスを示す。9行目のコマンド「LD B,7」によって、ループ回数「7」をBレジスタに設定する。10行目のコマンド「LD C,(HL)」によって、HLレジスタで示されるアドレスの内容がCレジスタに設定される。例えば、当選領域が「0」であった場合、HLレジスタの値(「T_JUG_OFS」)に、図44の2行目に記述されたオフセット「T_JUG_DRW_000-$」が加算された値がHLレジスタに設定され、そのアドレス、すなわち、図44の41行目に記述された図柄管理ビット(ここでは「1111100B)がCレジスタに設定される。ここで、図柄管理ビットは、最大8バイトある図柄配列データのうち、いずれのバイトを転送するかを示す。例えば、図柄管理ビット「1111100B」は、ビットが立っている位置に対応するアドレスに有意な値を転送する。したがって、図柄管理ビット「1111100B」の対象となる図柄配列データは5バイトとなる。図43の11行目のコマンド「EX DE,HL」によって、DEレジスタとHLレジスタの内容を切り換え、DEレジスタで転送元となるアドレスを管理するとともに、HLレジスタで転送先となるアドレスを管理する。
【0453】
図43の13行目のコマンド「XOR A」によって、Aレジスタがクリアされ、14行目のコマンド「SRL C」によってCレジスタの値が右に1ビットシフトされる。15行目のコマンド「JR NC,GET_DAT02」によって、1ビットシフトした結果、キャリーが立っていなければ、すなわち、シフト前のビット0が「0」であれば、18行目の指標「GET_DAT02」にジャンプする。1ビットシフトした結果、キャリーが立っていれば、16行目のコマンド「INC DE」によって、DEレジスタの値(転送元アドレス)が1だけインクリメントされる。17行目のコマンド「LD A,(DE)」によって、DEレジスタが示すアドレスのメモリ領域に格納された値(図柄配列データ)がAレジスタに設定される。例えば、当選領域が「0」であった場合、図44の41行目に示される図柄管理ビット「1111100B」の1ビットシフトを繰り返した結果、キャリーが発生していれば、その時点のアドレス値がAレジスタに設定される。
【0454】
図43の19行目のコマンド「LD (HL),A」によって、HLレジスタで示される転送先アドレスにAレジスタの値(図柄配列データ)を設定する。20行目のコマンド「INC HL」によってHLレジスタの値(転送先アドレス)が1だけインクリメントされる。21行目のコマンド「DJNZ GET_DAT01」によって、Bレジスタの値を1だけ減算し、Bレジスタの値が0となるまでは、12行目の指標「GET_DAT01」にジャンプし、Bレジスタの値が0となれば、次のコマンドに移行する。すなわち、12行目から21行目までの処理が7回繰り返される。そして、22行目のコマンド「RET」によって、呼び出し元の処理に復帰する。
【0455】
上述したように、ここでは、引数としてAレジスタに当選領域の値(0~36)を設定し、図柄コード初期設定処理S230-7を実行することで、図柄配列データを停止制御RWMに転送することができる。具体的に、メインCPU200aは、図44の2行目~38行目に示すように、当選領域0~36と同数の図柄ビットオフセットテーブルを用いて、当選領域の値(0~36)にそれぞれ対応する、図柄配列データ群へのオフセット値を抽出する。そして、その抽出したオフセット値に基づいて、当選領域に対応する図柄配列データが定められた複数の図柄データ群(例えば、40行目~43行目、45行目~48行目、50行目~53行目)から1のグループが特定され、図柄管理ビットに基づいて図柄配列データが転送される。
【0456】
なお、ここでは、複数の当選領域において、図柄配列データ群のデータサイズが共通するものもある。例えば、図44を参照して理解できるように、3行目に記述された当選領域1に対応する45行目~48行目に定義されている図柄配列データのデータサイズと、4行目に記述された当選領域2に対応する50行目~53行目に定義されている図柄配列データのデータサイズとは等しくなっている。
【0457】
ここでは、図示しないが、当選領域0、当選領域1~15、当選領域16~18、当選領域19~22、当選領域23~35、当選領域36といった組合せでデータサイズが共通する。そこで、データサイズが共通する当選領域をグループ化してデータサイズグループとし、例えば、当選領域0~36の代わりに、データサイズグループを用いることで、図柄ビットオフセットテーブルを簡略化することが可能である。
【0458】
データサイズグループは、データサイズ「5」、「4」、「2」、「1」、「2」、「3」に対し、それぞれ0~5の値を割り当てている。なお、ここでは、データサイズが連続して等しい当選領域同士をグループ化しているので、連続する当選領域同士のデータサイズが異なるとデータサイズグループも異ならせる。また、上記のように、異なるデータサイズグループ間で同一のデータサイズ(例えば「2」)を有する場合もある。
【0459】
そして、当選領域に基づいてデータサイズグループを取得する処理を、当選領域を、当選役グループに変換するために必要な当選役グループ設定処理S230-5を利用して実行する。具体的に、当選役グループに占有されていない(利用されていない)3ビットを用い、図41を用いて説明した差枚数グループ0~4に代えて、データサイズグループ0~5を記述する。そして、当選役グループ設定処理S230-5によって、当選役グループと共にデータサイズグループも抽出する。
【0460】
図45は、当選役グループ設定処理S230-5の他の例を示したプログラムコードである。図45(a)の1行目の指標「GET_ARD:」は、当該当選役グループ設定処理の先頭アドレスを示す。2行目のコマンド「LD HL,T_CMD_SET」によって、HLレジスタに、エリア別データテーブルの先頭アドレス(「T_CMD_SET」)が設定される。3行目のコマンド「RST CALADRS」によって、レジスタの加算処理を行うサブルーチン「CALADRS」が呼び出される。このときAレジスタには、ステップS230-1で取得した当選領域の値が設定されている。かかる「CALADRS」では、HLレジスタの値とAレジスタの値が加算され、エリア別データテーブル(「T_CMD_SET」)における、加算した値が示すアドレスの内容(データサイズグループ×32+当選役グループ)がAレジスタに設定される。4行目のコマンド「AND 00011111B」によって、下位5ビットがマスクされ、当選役グループのみがAレジスタに残る。そして、5行目のコマンド「RET」によって、呼び出し元の処理に復帰する。
【0461】
図45(b)のエリア別データテーブル(「T_CMD_SET」)では、当選領域に対し、当選役グループの値に加え、データサイズグループの値が対応付けられている。また、その記述順は、当選領域の値(0~36)が昇順となるように連番で配置されている。したがって、当選領域の値を、そのままエリア別データテーブル内における、データが格納されたアドレスへのオフセット値とすることで、データサイズグループおよび当選役グループの値を特定することができる。例えば、当選領域が「0」の場合、サブルーチン「CALADRS」では、アドレスとして、図45(b)の2行目(「T_CMD_SET」+当選領域「0」)が特定され、データサイズグループの値である「0」と当選役グループの値である「0」が設定される。また、当選領域が「10」の場合、サブルーチン「CALADRS」では、アドレスとして、図45(b)の12行目(「T_CMD_SET」+当選領域「10」)が特定され、データサイズグループの値である「1」と当選役グループの値である「4」が設定される。
【0462】
こうして、当選領域に基づいて当選役グループを取得する当選役グループ設定処理S230-5を利用し、当選領域に基づいてデータサイズグループも取得することができる。続いて、取得したデータサイズグループを用い、図43と異なる態様で図柄コード設定処理S230を行う。
【0463】
図46は、図柄コード初期設定処理S230-7の他の例を示したプログラムコードであり、図47は、図柄ビットオフセットテーブルの他の例を示すプログラムコードである。図47の図柄ビットオフセットテーブル(T_JUG_OFS)では、データサイズグループと、図柄配列データ群へのオフセット値とが対応付けられている。また、その記述順は、データサイズグループを特定可能な識別番号(以下、単に、データサイズグループの値、もしくは、データサイズグループという)が昇順となるように0~5の連番で配置されている。したがって、データグループの値を、そのまま図柄ビットオフセットテーブル内における、データが格納されたアドレスへのオフセット値とすることで、図柄配列データ群へのオフセット値が示されるデータが格納されたアドレスを特定することができる。
【0464】
図46の1行目のコマンド「LDQ A,(LOW _HIT_NUM)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_HIT_NUM」の下位1バイトの値をアドレスの下位1バイトとしたアドレスが示すメモリ領域に格納された値、すなわち、当選領域の値(停止制御番号)がAレジスタに設定される。2行目のコマンド「LD D,A」によって、Aレジスタの値がDレジスタに退避される。3行目のコマンド「LD HL,T_CMD_SET」によって、HLレジスタに、エリア別データテーブルの先頭アドレス(「T_CMD_SET」)が設定される。4行目のコマンド「RST CALADRS」によって、レジスタの加算処理を行うサブルーチン「CALADRS」が呼び出され、HLレジスタの値とAレジスタの値が加算され、エリア別データテーブル(「T_CMD_SET」)における、加算した値が示すアドレスの内容がAレジスタに設定される。5行目のコマンド「AND 00011111B」によって、下位5ビットがマスクされ、当選役グループのみがAレジスタに残る。6行目のコマンド「XOR (HL)によって、HLレジスタに示されるアドレスのメモリ領域に格納された値、すなわち、4行目のコマンド「RST CALADRS」において設定されたHLレジスタが示す、図45(b)のアドレスのメモリ領域に格納された値(データサイズグループ×32+当選役グループ)と、Aレジスタの値とが排他的論理和で導出される。こうして、下位5ビットが0にクリアされ、上位3ビットの差枚数グループ(差枚数グループ×32)のみが残る。図46の7行目のコマンド「SWP A」によって、Aレジスタの上位4ビットと下位4ビットが置き換わる。こうして、Aレジスタにはデータサイズグループを2倍した値のみが残る。
【0465】
図46の8行目のコマンド「LD HL,T_JUG_OFS-1」によって、HLレジスタに、図柄ビットオフセットテーブルの先頭アドレス(「T_JUG_OFS」)から1減算した値が設定される。9行目のコマンド「ADDWB HL,A」によって、HLレジスタの値にAレジスタの値が加算されてHLレジスタの値が更新される。10行目のコマンド「INLD AE,(HL)」によって、HLレジスタの値を1だけインクリメントしたアドレスが示すメモリ領域に格納された値(当選領域毎の図柄配列データ群のデータサイズ)がEレジスタに設定され、HLレジスタの値をさらに1だけインクリメントしたアドレスが示すメモリ領域に格納された値(図柄配列データ群までのオフセット値)がAレジスタに設定される。このため、8行目のコマンド「LD HL,T_JUG_OFS-1」では先頭アドレス(「T_JUG_OFS」)から予め1が減算されている。例えば、当選領域が「0」の場合、データサイズグループは「0」となり、図47の2行目に相当する「5」がEレジスタに設定され、3行目に相当する「(T_JUG_DRW_1-$)」がAレジスタに設定される。また、当選領域が「10」の場合、データサイズグループは「1」となり、図47の5行目に相当する「4」がEレジスタに設定され、6行目に相当する「(T_JUG_DRW_2-$)―1*4」がAレジスタに設定される。
【0466】
図46の11行目のコマンド「ADDWB HL,A」によって、HLレジスタの値にAレジスタの値が加算されてHLレジスタの値が更新される。12行目のコマンド「MUL D,E」によって、Dレジスタの値(2行目で退避した当選領域の値)と、Eレジスタの値(当選領域毎のオフセット値)を乗じてDEレジスタを更新する。13行目のコマンド「ADD HL,DE」によって、11行目で更新されたHLレジスタの値に、DEレジスタを加算して、HLレジスタに、転送元となるデータサイズグループの先頭アドレスが設定される。なお、ここでは、Dレジスタの値、すなわち、当選領域の値をそのまま乗算に用いているので、オフセット値が大きくなってしまう。そこで、例えば、図47の6行目「-1*4」のように、その差分を、図柄配列データ群までのオフセット値から予め減算することで、整合をとっている。ここでは、予め差分を計算しておくことで、メモリ容量と処理負荷の削減が可能となる。
【0467】
図46の14行目のコマンド「LDQ DE,LOW _JUG_BIT」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_JUG_BIT」の下位1バイトの値をアドレスの下位1バイトとしたアドレスが示すメモリ領域に格納された値、すなわち、保存先の停止制御RWMのアドレスがDEレジスタに設定される。そして、15行目のコマンド「CALLF GET_DAT」によって、17行目の指標「GET_DAT」がサブルーチンとして呼び出される。
【0468】
図46の17行目の指標「GET_DAT:」は、当該図柄コード初期設定処理の先頭アドレスを示す。18行目のコマンド「LD B,7」によって、ループ回数「7」をBレジスタに設定する。19行目のコマンド「LD C,(HL)」によって、HLレジスタで示されるアドレスの内容がCレジスタに設定される。例えば、当選領域が「0」であった場合、HLレジスタで示される図47の21行目に記述された図柄管理ビット(ここでは「1111100B)がCレジスタに設定される。図46の20行目のコマンド「EX DE,HL」によって、DEレジスタとHLレジスタの内容を切り換え、DEレジスタで転送元となるアドレスを管理するとともに、HLレジスタで転送先となるアドレスを管理する。
【0469】
図46の22行目のコマンド「XOR A」によって、Aレジスタがクリアされ、23行目のコマンド「SRL C」によってCレジスタの値が右に1ビットシフトされる。24行目のコマンド「JR NC,GET_DAT02」によって、1ビットシフトした結果、キャリーが立っていなければ、すなわち、シフト前のビット0が「0」であれば、27行目の指標「GET_DAT02」にジャンプする。1ビットシフトした結果、キャリーが立っていれば、25行目のコマンド「INC DE」によって、DEレジスタの値(転送元アドレス)が1だけインクリメントされる。26行目のコマンド「LD A,(DE)」によって、DEレジスタが示すアドレスのメモリ領域に格納された値(図柄配列データ)がAレジスタに設定される。
【0470】
図46の28行目のコマンド「LD (HL),A」によって、HLレジスタで示される転送先アドレスにAレジスタの値(図柄配列データ)を設定する。29行目のコマンド「INC HL」によってHLレジスタの値(転送先アドレス)が1だけインクリメントされる。30行目のコマンド「DJNZ GET_DAT01」によって、Bレジスタの値を1だけ減算し、Bレジスタの値が0となるまでは、21行目の指標「GET_DAT01」にジャンプし、Bレジスタの値が0となれば、次のコマンドに移行する。すなわち、21行目から30行目までの処理が7回繰り返される。そして、31行目のコマンド「RET」によって、呼び出し元の処理に復帰する。
【0471】
図43の図柄コード初期設定処理S230-7および図44の図柄ビットオフセットテーブルと、図46の図柄コード初期設定処理S230-7および図47の図柄ビットオフセットテーブルとを比較すると、後者では、図46の2、3、5~7、10~13行目のコマンド14バイト分が追加されるものの、メモリの容量を、当選領域0~36と、データサイズグループ0~5との差、すなわち、31バイト削減することができる。したがって、総合すると、17バイトのメモリの容量を削減することが可能となる。
【0472】
このように、ここでは、決定された当選領域が含まれる当選役グループを特定し、特定された当選役グループを副制御基板202に送信することを前提とし、当選役グループを特定する処理を利用してデータサイズグループを特定し、そのように特定されたデータサイズグループに基づいて図柄ビットオフセットテーブルから図柄配列データを特定している。また、エリア別データテーブルにおいて、当選役グループとデータサイズグループとを結合し、単位データ(1バイト)で表している。かかる構成により、新たなプログラムや処理負荷の増加を抑制しつつ、適切に図柄配列データを特定することができる。また、当選領域の代わりに、当選領域0~36より個数の少ないデータサイズグループ0~5をオフセット値として図柄配列データを抽出しているので、上記のように、図柄ビットオフセットテーブルのメモリ容量を大幅に削減することが可能となる。
【0473】
(当選領域の他のグルーピング例)
以下、当選役グループ設定処理S230-5を利用し、当選役グループ、差枚数グループ、および、データサイズグループと異なる他のグルーピングにより、新たなパラメータを生成する他の例を挙げて説明する。
【0474】
図36を参照して説明した当選役グループ設定処理S230-5では、当選領域に基づいて当選役グループを生成した。当選役グループは、当選役の種別(リプレイ役、小役、ボーナス役)等が等しい複数の当選種別をグループ化したものであり、生成された当選役グループは副制御基板202に送信される。
【0475】
このような当選領域、当選役グループ以外にも、所定の判定の際にグループ化することで、処理の効率化とメモリ容量の削減とを実現できる場合がある。例えば、本実施形態においては、図6における当選領域4~15の当選種別「打順ベル」および当選領域19の当選種別「共通ベル」というグループに対し、共通して、AT演出状態への移行または継続に関する抽選(例えば、ポイントの蓄積量に応じて抽選が実行される)等、任意の抽選が行われる。この場合、任意の抽選を行うか否かの判定時に、当選した当選領域が、13個の当選領域4~15、19のいずれかであるか否か判定しなければならない。かかる当選領域4~15、19の数値である4~15、19は、他の数値を排他する共通性を有していないので、かかる判定を行う場合、当選領域4~15、19を1つずつ抽出し、当選した当選領域と繰り返し比較して、いずれかと等しければ抽選を行い、いずれとも等しくなければ抽選を行わないという処理を実行しなければならない。
【0476】
なお、当選領域4~15については当選役グループが「4」で等しいので、当選役グループを用いれば処理負荷は少なくなるものの、当選領域19が1の当選役グループ6と対応しているので、結局、当選役グループが、当選役グループ4、6のいずれかであるか否かを判定しなければならず、複数回に及ぶ比較処理によって処理が煩雑になるのは変わらない。
【0477】
また、同様に、本実施形態においては、図6における当選領域33の当選種別「リプレイ2」および当選領域34の当選種別「リプレイ3」というグループが当選したことを条件に、共通して、遊技者に所定の操作(例えば、所定の図柄組合せの停止を狙わせる操作)を促す場合がある。この場合、条件を満たしたか否かの判定時に、当選した当選領域が、当選領域33、34のいずれかであるか否か判定しなければならない。かかる当選領域33、34は当選役グループもそれぞれ20、21と異なっているので、判定に当選役グループを採用したとしても、条件を満たしたか否かの判定時に、当選した当選役グループが、当選役グループ20、21のいずれかであるか否か判定しなければならなず、複数回に及ぶ比較処理によって処理が煩雑になるのは変わらない。
【0478】
また、同様に、本実施形態においては、図6における当選領域30の当選種別「ハート煽りリプ1」と当選領域31の当選種別「ハート煽りリプ2」とというグループが当選したことを条件に、共通して、遊技者に所定の操作(例えば、所定の図柄組合せの停止を狙わせる操作)を促す場合がある。この場合、条件を満たしたか否かの判定時に、当選した当選領域が、当選領域30、31のいずれかであるか否か判定しなければならない。かかる当選領域30、31は当選役グループもそれぞれ17、18と異なっているので、判定に当選役グループを採用したとしても、条件を満たしたか否かの判定時に、当選した当選役グループが、当選役グループ17、18のいずれかであるか否か判定しなければならなず、複数回に及ぶ比較処理によって処理が煩雑になるのは変わらない。
【0479】
また、同様に、本実施形態においては、図6における当選領域20の当選種別「強ベル1」、当選領域21の当選種別「強ベル2」、当選領域22の当選種別「チャンス目」、当選領域25の当選種別「中段スイカリプ」、当選領域26の当選種別「上段スイカチャンリプ」、当選領域27の当選種別「中段スイカチャンリプ」、当選領域28の当選種別「ハート煽りチャンリプ1」、当選領域29の当選種別「ハート煽りチャンリプ2」、当選領域30の当選種別「ハート煽りリプ1」、当選領域31の当選種別「ハート煽りリプ2」といった、所謂、強レア役に相当するグループに当選すると、共通して、AT演出状態への移行または継続に関する抽選等、任意の抽選が行われる。この場合、任意の抽選を行うか否かの判定時に、当選した当選領域が、当選領域20~22、25~31のいずれかであるか否か判定しなければならない。かかる当選領域20~22、25~31は当選役グループもそれぞれ7~9、12~18となっているので、判定に当選役グループを採用したとしても、任意の抽選を行うか否かの判定時に、当選した当選役グループが、当選役グループ7~9、12~18のいずれかであるか否か判定しなければならなず、複数回に及ぶ比較処理によって処理が煩雑になるのは変わらない。
【0480】
そこで、これらの当選領域を個別にグループ化する。例えば、当選領域4~15の当選種別「打順ベル」と当選領域19の当選種別「共通ベル」をグループ化してベルグループとし、特定の識別番号を与える。同様に、当選領域33の当選種別「リプレイ2」と当選領域34の当選種別「リプレイ3」をグループ化してバー揃いグループとし、特定の識別番号を与える。また、当選領域30の当選種別「ハート煽りリプ1」と当選領域31の当選種別「ハート煽りリプ2」をグループ化してハート揃いグループとし、特定の識別番号を与える。また、当選領域20の当選種別「強ベル1」、当選領域21の当選種別「強ベル2」、当選領域22の当選種別「チャンス目」、当選領域25の当選種別「中段スイカリプ」、当選領域26の当選種別「上段スイカチャンリプ」、当選領域27の当選種別「中段スイカチャンリプ」、当選領域28の当選種別「ハート煽りチャンリプ1」、当選領域29の当選種別「ハート煽りチャンリプ2」、当選領域30の当選種別「ハート煽りリプ1」、当選領域31の当選種別「ハート煽りリプ2」をグループ化して強レアグループとし、特定の識別番号を与える。
【0481】
ここで、ベルグループ、バー揃いグループ、ハート揃いグループ、強レアグループ(以下、ベルグループ、バー揃いグループ、ハート揃いグループ、強レアグループを纏めて、演出状態の移行について判定するための情報として、演出判定グループと略す場合がある)を昇順の数値に割り当てることが考えられる。例えば、ベルグループ=「0」、バー揃いグループ=「1」、ハート揃いグループ=「2」、強レアグループ=「3」といったように昇順の数値に割り当てる。こうすることで、全ての演出判定グループを2ビットで表現できる。
【0482】
しかし、例えば、当選領域30の当選種別「ハート煽りリプ1」と当選領域31の当選種別「ハート煽りリプ2」に関しては、ハート揃いグループと強レアグループの両方のグループに含まれている。したがって、上記のように昇順の数値に割り当てると、当選領域30、31に当選しても、いずれか一方の演出判定グループに含まれることしか特定できない。そこで、本実施形態では、演出判定グループ(ベルグループ、バー揃いグループ、ハート揃いグループ、強レアグループ)に対し、他と独立して特定可能なビットを割り当てる。したがって、4つの演出判定グループを表現するのに4ビット必要となる。
【0483】
ここで、上述した差枚数グループ、データサイズグループ同様、上記の演出判定グループをエリア別データテーブルに割り当てることを検討する。こうすることで、当選領域に基づいて演出判定グループを取得する処理を、当選領域を、当選役グループに変換するために必要な当選役グループ設定処理S230-5を利用して実行することが可能となる。
【0484】
ところで、差枚数グループ、データサイズグループはいずれも3ビットしか要さないので、5ビットで表される当選役グループの余りの3ビットに割り当てることができたが、演出判定グループは4ビット要するので、5ビットで表される当選役グループの余りの3ビットに割り当てることができない。そこで、エリア別データテーブルに許容される8ビットのうち、演出判定グループに4ビット分占有させ、当選役グループは残りの4ビットを用い、他の手段で特定する。
【0485】
図48は、当選種別抽選テーブルを説明するための説明図であり、図49は、当選役グループ設定処理S230-5の他の例を示したプログラムコードである。具体的に、演出判定グループについて、例えば、ベルグループ=ビット7、バー揃いグループ=ビット6、ハート揃いグループ=ビット5、強レアグループ=ビット4といったように上位4ビットに割り当てる。こうして、演出判定グループについては、それぞれ1ビット分の情報で判定することができる。
【0486】
また、当選役グループについて、下位4ビットに加え、上位4ビットを含めて当選役グループを識別させる。例えば、当選領域0、4~15、20、30に共通して下位4ビットに「0」を割り当てる。ここでは、当選領域0の上位4ビットに「0000B」が割り当てられ、当選領域4~15の上位4ビットに「1000B」が割り当てられ、当選領域20の上位4ビットに「0001B」が割り当てられ、当選領域30の上位4ビットに「0011B」が割り当てられているので、当選領域0と、当選領域4~15と、当選領域20と、当選領域30と、他の当選領域とを当選役グループとして区別することが可能となる。
【0487】
また、当選領域1、19、21、31、33に共通して下位4ビットに「1」を割り当てる。ここでは、当選領域1の上位4ビットに「0000B」が割り当てられ、当選領域19の上位4ビットに「1000B」が割り当てられ、当選領域21の上位4ビットに「0001B」が割り当てられ、当選領域31の上位4ビットに「0011B」が割り当てられ、当選領域33の上位4ビットに「0100B」が割り当てられているので、当選領域1と、当選領域19と、当選領域21と、当選領域31と、当選領域33と、他の当選領域とを当選役グループとして区別することが可能となる。
【0488】
また、当選領域2、22、34に共通して下位4ビットに「2」を割り当てる。ここでは、当選領域2の上位4ビットに「0000B」が割り当てられ、当選領域22の上位4ビットに「0001B」が割り当てられ、当選領域34の上位4ビットに「0100B」が割り当てられているので、当選領域2と、当選領域22と、当選領域34と、他の当選領域とを当選役グループとして区別することが可能となる。
【0489】
また、当選領域3、25に共通して下位4ビットに「3」を割り当てる。ここでは、当選領域3の上位4ビットに「0000B」が割り当てられ、当選領域2の上位4ビットに「0001B」が割り当てられているので、当選領域3と、当選領域25と、他の当選領域とを当選役グループとして区別することが可能となる。
【0490】
また、当選領域16~18、26に共通して下位4ビットに「4」を割り当てる。ここでは、当選領域16~18の上位4ビットに「0000B」が割り当てられ、当選領域26の上位4ビットに「0001B」が割り当てられているので、当選領域16~18と、当選領域26と、他の当選領域とを当選役グループとして区別することが可能となる。
【0491】
また、当選領域23、27に共通して下位4ビットに「5」を割り当てる。ここでは、当選領域23の上位4ビットに「0000B」が割り当てられ、当選領域27の上位4ビットに「0001B」が割り当てられているので、当選領域23と、当選領域27と、他の当選領域とを当選役グループとして区別することが可能となる。
【0492】
また、本実施形態では、当選役グループが23個存在するが、下位4ビットだけで最大16個のグループは識別可能なので、当選役グループの一部は、当選領域に対し下位4ビットに一意に特定できる数値を割り当てる。例えば、当選領域24、28、29、32、35、36それぞれに対し、下位4ビットで表される6、7、8、9、10、11を割り当てる。こうして、当選領域24と、当選領域28と、当選領域29と、当選領域32と、当選領域35と、当選領域36とを、少なくとも下位4ビットだけで当選役グループとして区別することが可能となる。
【0493】
ここでは、以下のような手順で、当選役グループの値を決定する。まず、演出判定グループによって定められた上位4ビットによって識別可能な当選役グループに同一の数値、例えば、「0」を割り当てる。これを所定値(ここでは「5」)まで繰り返すことで、下位4ビットの共通化を図ることができる。そして、残りの当選役グループの数が、下位4ビットで識別できる数以下となると、当選領域に下位4ビットのみで識別させる。
【0494】
このような識別子をエリア別データテーブルに反映すると、図49のようになり、差枚数グループ、データサイズグループの代わりに、演出判定グループをエリア別データテーブルに割り当てることができる。こうすることで、当選領域に基づいて演出判定グループを取得する処理を、当選領域を、当選役グループに変換するために必要な当選役グループ設定処理S230-5を利用して実行することが可能となる。
【0495】
ここでは、演出判定グループを上位4ビットで識別しつつ、さらに、当選役グループについて、下位4ビットに加え、上位4ビットを含めて当選役グループを識別させることができるので、メモリの有効利用を図り、メモリの容量を削減することが可能となる。
【0496】
なお、ここでは、複数の当選領域0~36の一部、例えば、当選領域4~15、19をグループ化した複数の演出判定グループ(第1グループ情報)、および、複数の当選領域0~36の一部、例えば、当選領域4~15をグループ化した複数の特定識別子(第2グループ情報)のうち、決定された当選領域が含まれる演出判定グループおよび特定識別子を特定する主体(メインCPU200aの機能)をグループ特定部とする。また、演出判定グループに基づいて、AT演出状態への移行または継続に関する抽選の対象であるか判定する処理(第1処理)を実行する主体を第1処理実行部とする。また、演出判定グループと識別子との組み合わせ、すなわち、当選役グループに基づいて、AT演出状態への移行または継続に関する抽選の対象であるか判定する処理(第2処理)を実行する第2処理実行部とする。また、ここでは、演出判定グループと特定識別子とが1バイト(単位データ)内に排他的に配されている。
【0497】
このように、ここでは、決定された当選領域が含まれる当選役グループを特定し、特定された当選役グループを副制御基板202に送信することを前提とし、当選役グループを特定する処理を利用して演出判定グループを特定し、そのように特定された演出判定グループ、すなわち、所定のビットが1であるか0であるかに基づいて判定処理を実行している。かかる構成により、新たなプログラムや処理負荷の増加を抑制しつつ、適切に判定処理を実行することができる。また、特定識別子では当選役グループを全て識別できないところ、特定識別子と演出判定グループとの組み合わせによって当選役グループを識別する構成により、エリア別データテーブルにおいて、当選役グループと演出判定グループとを、単位データ(1バイト)で表すことが可能となる。
【0498】
なお、演出判定グループ(ベルグループ、バー揃いグループ、ハート揃いグループ、強レアグループ)は、いずれも、当選領域が、演出判定の対象となる当選領域であるという情報と、対象となる当選領域ではないという情報のいずれかにグループ化されている。例えば、ベルグループは、当選領域4~15、19にベルグループであることを示すビット「1」が対応付けられ、その他の当選領域にベルグループではないことを示す「0」が対応付けられている。
【0499】
また、ここでは、図48を参照して理解できるように、演出判定グループと特定識別子とが組み合わされた当選役グループは、他の当選役グループと排他的な数値となれば足り、連番であることを要さない。また、特定識別子は演出判定グループと結合することで、他と識別できれば足り、そのビット数は4ビットに限らず、1~7ビットのいずれであってもよい。
【0500】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる実施形態に限定されないことはいうまでもない。当業者であれば、特許請求の範囲に記載された範疇において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【0501】
例えば、上述した実施形態では、複数の当選領域の一部をグループ化した複数のグループ情報として当選役グループを挙げ、複数の当選領域の一部をグループ化した複数の第1グループ情報として、演出判定グループ(ベルグループ、バー揃いグループ、ハート揃いグループ、強レアグループ)を挙げて説明した。しかし、かかる場合に限らず、グループ情報または第1グループ情報として、当選役グループ、差枚数グループ、データサイズグループ、演出判定グループ(ベルグループ、バー揃いグループ、ハート揃いグループ、強レアグループ)のいずれを採用してもよい。
【0502】
また、上述した実施形態では、複数の当選領域の一部をグループ化した複数の第2グループ情報として特定識別子を挙げ、第1グループ情報と第2グループ情報との組み合わせ、すなわち、当選役グループに基づいて第2処理を実行する例を挙げて説明したが、特定識別子は、第1グループ情報との組合せで他と識別できれば足り、第1グループ情報と第2グループ情報との組み合わせとして、当選役グループのみならず、当選役グループ、差枚数グループ、データサイズグループ、演出判定グループ(ベルグループ、バー揃いグループ、ハート揃いグループ、強レアグループ)のいずれを採用してもよい。
【0503】
また、上述した実施形態では、第1処理や第2処理として、AT演出状態への移行または継続に関する抽選の対象であるか判定する処理を挙げて説明したが、かかる処理に限らず、第1処理や第2処理として、第1グループ情報や第2グループ情報に基づいて複数の処理のいずれかに移行したり、第1グループ情報や第2グループ情報に基づいてテーブルから所定の情報を抽出したり、第1グループ情報や第2グループ情報を演算対象としたり、第1グループ情報や第2グループ情報を所定の表示部に表示したりといったように、スロットマシン100において実行される様々な処理に適用することができる。
【0504】
また、上述した実施形態では、主制御基板200と副制御基板202とが、遊技を進行するための機能部を分担するように配したが、主制御基板200の機能部を副制御基板202に配しても、副制御基板202の機能部を主制御基板200に配してもよく、また、全ての機能部を1の制御基板に纏めて配することもできる。
【0505】
また、上記した実施形態では、遊技価値としてのメダルを用いて遊技を行うようにしたが、遊技価値は電気的な情報であってもよい(所謂メダルレスであってもよい)。この場合、当選役が入賞したときに、当選役に対応する価値量を遊技者に電気的な情報で付与すればよい。
【0506】
また、上述した主制御基板200および副制御基板202が行う各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいはサブルーチンによる処理を含んでもよい。
【符号の説明】
【0507】
100 スロットマシン(遊技機)
110 リール
116 ベットスイッチ
118 スタートスイッチ
120 ストップスイッチ
124 液晶表示部
132 メイン払出表示部
304 当選種別抽選手段
306 リール制御手段
314 演出状態制御手段
334 演出制御手段
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42
図43
図44
図45
図46
図47
図48
図49