JP2016209035A - 遊技機 - Google Patents

遊技機 Download PDF

Info

Publication number
JP2016209035A
JP2016209035A JP2015092413A JP2015092413A JP2016209035A JP 2016209035 A JP2016209035 A JP 2016209035A JP 2015092413 A JP2015092413 A JP 2015092413A JP 2015092413 A JP2015092413 A JP 2015092413A JP 2016209035 A JP2016209035 A JP 2016209035A
Authority
JP
Japan
Prior art keywords
rom
ram area
area
data
cpuc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015092413A
Other languages
English (en)
Other versions
JP6572611B2 (ja
Inventor
賢佑 近藤
Kensuke Kondo
賢佑 近藤
吉野 純一
Junichi Yoshino
純一 吉野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sammy Corp
Original Assignee
Sammy Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sammy Corp filed Critical Sammy Corp
Priority to JP2015092413A priority Critical patent/JP6572611B2/ja
Publication of JP2016209035A publication Critical patent/JP2016209035A/ja
Application granted granted Critical
Publication of JP6572611B2 publication Critical patent/JP6572611B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Slot Machines And Peripheral Devices (AREA)

Abstract

【課題】遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとが混在して配置されているため、これらプログラムの正当性を検証することができる遊技機を提供する。【解決手段】遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとのROM上における配置位置を切り分け、プログラムソースコード上或いはメモリマップ上において互いが混在しないよう構成された遊技機。【選択図】図73

Description

遊技機に関する。
回胴式遊技機(スロットマシン)は、所定数の遊技メダルを投入後に遊技開始指示装置(スタートレバー)が操作されたことを契機として、複数の図柄が外周上に配置された複数列の回胴(リール)が回転動作し、当該回転動作を停止させるための回胴停止装置(ストップボタン)を駆使して回胴を停止させた結果、有効ライン上に所定の図柄の組合せ(例えば「777」)が並んだ場合には、通常遊技状態よりも遊技者にとって利益状態の高い特別遊技状態{通常時よりも当選役の抽選確率が上昇する遊技状態}に移行するタイプのものが一般的である。ここで、スロットマシンにおいては、遊技の興趣性を高めるための演出用の画像等が、リールの回転動作及び停止動作とシンクロした形で、液晶等のディスプレイ上にて表示される場合があり、ストップボタン等を操作した際に、リール上に表示された図柄とディスプレイ上に表示された演出用の画像等とを見比べながら、遊技の結果を予測して楽しむよう構成されているものが多い。
また、ぱちんこ遊技機は、始動口(スタートチャッカー)に遊技球が入球したことを契機として、7セグ等の表示部上で「特別図柄」と称される図柄が変動表示され、当該特別図柄が特定態様(例えば「7」)となった場合、通常遊技状態よりも遊技者にとって利益状態の高い特別遊技状態{通常時は閉状態にある大入賞口(アタッカー)が所定条件で開放する内容の遊技}に移行するタイプの、いわゆる「デジパチ」と呼ばれている機種(従来の「第一種遊技機」)が一般的である。ここで、遊技者の利益に直結する特別図柄の表示制御の負担を軽減するために、前記の「特別図柄」とは別に、遊技の興趣性を高めるための演出用の「装飾図柄」と称される図柄が、前記特別図柄の変動とシンクロした形で、前記表示部よりもサイズが大きい液晶等のディスプレイ上で変動表示される場合がある。そして、特別図柄の変動が開始されると装飾図柄もこれに合わせて変動を開始し、特別図柄が特定態様(例えば「7」)で停止した場合、装飾図柄もこれに合わせて所定態様(例えば「777」)で停止することとなる。そして、装飾図柄が所定態様で停止したことにより、特別遊技へ移行が確定したことを遊技者が明確に認識できるよう構成されているものが多い。
このような仕組みはこの種の多くの遊技機で共通するのであるが、遊技機の動作制御等を司るプログラム容量は、不正プログラムの混入防止(遊技機メーカーが提供するプログラムの正当性保障)の観点からその容量上限が厳しく規制されていると共に、遊技性仕様を実装するためのプログラムの他にも、遊技機に対して不正行為がなされる(例えば、遊技媒体の投入口や払出口に対して不正にアクセスして遊技媒体を不正な手段で得る、等)ことを防御するための不正行為防止用のプログラムも数多く実装されている。
特開2011−147675
しかしながら、現状では、遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとが混在してROM上に配置されていることが多く、その結果これらプログラムの正当性を検証することが困難となっているという課題が存在する。
本態様に係る遊技機は、
ROM(例えば、内蔵ROMC110)と、RAM(例えば、内蔵RAMC120)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、前記CPUに対する命令を司るプログラムと、プログラムに従い読みだされるデータとが記憶され、
前記ROMは(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例において)、
プログラムが記憶されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
データが記憶されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
プログラムが記憶されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
データが記憶されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
を有し、
前記RAMは、
前記第一制御領域に記憶されているプログラムによる処理結果データを記憶する第一情報格納領域(例えば、第1RAM領域)と、
前記第二制御領域に記憶されているプログラムによる処理結果データを記憶する第二情報格納領域(例えば、第2RAM領域)と、
レジスタに記憶されているデータを退避可能なスタック領域(例えば、スタックエリア)と
を有し、
電源断からの復帰後において前記第一制御領域に記憶されている所定のプログラム処理によって、前記第一情報格納領域に記憶された処理結果データ、前記第二情報格納領域に記憶された処理結果データ、及び前記スタック領域に退避されたデータの誤り検出が行われるよう構成されている
ことを特徴とする遊技機である。
本態様に係る遊技機によれば、遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとの正当性を検証することが容易となるという効果を奏する。
図1は、本実施形態に係る回胴式遊技機の斜視図である。 図2は、本実施形態に係る回胴式遊技機の扉を開いた状態の斜視図である。 図3は、本実施形態に係る回胴式遊技機における、メダル投入口内部の斜視図である。 図4は、本実施形態に係る回胴式遊技機における、メダル払出装置の正面図及び上面図である。 図5は、本実施形態に係る回胴式遊技機の電気的全体構成図である。 図6は、本実施形態に係る回胴式遊技機の主制御チップに係る電気的構成図である。 図7は、本実施形態に係る回胴式遊技機における、主制御チップのメモリマップ構成図である。 図8は、本実施形態に係る回胴式遊技機における、主制御基板側でのメインフローチャートである。 図9は、本実施形態に係る回胴式遊技機における、主制御基板側での設定変更装置制御処理のフローチャートである。 図10は、本実施形態に係る回胴式遊技機における、主制御基板側での遊技進行制御処理(1枚目)のフローチャートである。 図11は、本実施形態に係る回胴式遊技機における、主制御基板側での遊技進行制御処理(2枚目)のフローチャートである。 図12は、本実施形態に係る回胴式遊技機における、主制御基板側での遊技進行制御処理(3枚目)のフローチャートである。 図13は、本実施形態に係る回胴式遊技機における、主制御基板側での復帰不可能エラー処理のフローチャートである。 図14は、本実施形態に係る回胴式遊技機における、主制御基板側でのメダル投入エラー検出処理のフローチャートである。 図15は、本実施形態に係る回胴式遊技機における、主制御基板側でのメダル払出エラー検出処理のフローチャートである。 図16は、本実施形態に係る回胴式遊技機における、主制御基板側での投入・払出エラー検出処理のフローチャートである。 図17は、本実施形態に係る回胴式遊技機における、主制御基板側でのタイマ割り込み時処理のフローチャートである。 図18は、本実施形態に係る回胴式遊技機における、主制御基板側でのメダル投入チェック処理のフローチャートである。 図19は、本実施形態に係る回胴式遊技機における、主制御基板側でのメダル払出チェック処理のフローチャートである。 図20は、本実施形態に係る回胴式遊技機における、主制御基板側での投入・払出エラーチェック処理のフローチャートである。 図21は、本実施形態に係る回胴式遊技機における、主制御基板側での電源断時処理のフローチャートである。 図22は、第2実施形態に係る回胴式遊技機における、主制御基板側でのメインフローチャート(1枚目)である。 図23は、第2実施形態に係る回胴式遊技機における、主制御基板側でのメインフローチャート(2枚目)である。 図24は、第2実施形態に係る回胴式遊技機における、主制御基板側での遊技進行制御処理(2枚目)のフローチャートである。 図25は、第2実施形態に係る回胴式遊技機における、主制御基板側でのメダル投入エラー検出処理のフローチャートである。 図26は、第2実施形態に係る回胴式遊技機における、主制御基板側でのメダル払出エラー検出処理のフローチャートである。 図27は、第2実施形態に係る回胴式遊技機における、主制御基板側での投入・払出エラー検出処理のフローチャートである。 図28は、第2実施形態に係る回胴式遊技機における、主制御基板側での遊技進行制御処理(3枚目)のフローチャートである。 図29は、第2実施形態に係る回胴式遊技機における、主制御基板側での復帰不可能エラー処理のフローチャートである。 図30は、第2実施形態に係る回胴式遊技機における、主制御基板側でのタイマ割り込み時処理のフローチャートである。 図31は、第2実施形態に係る回胴式遊技機における、主制御基板側での電源断時処理のフローチャートである。 図32は、第3実施形態に係る回胴式遊技機における、基本仕様一覧である。 図33は、第3実施形態に係る回胴式遊技機における、リール配列一覧である。 図34は、第3実施形態に係る回胴式遊技機における、小役出現率一覧である。 図35は、第3実施形態に係る回胴式遊技機における、図柄組み合わせ一覧1である。 図36は、第3実施形態に係る回胴式遊技機における、図柄組み合わせ一覧2である。 図37は、第3実施形態に係る回胴式遊技機における、条件装置一覧1である。 図38は、第3実施形態に係る回胴式遊技機における、条件装置一覧2である。 図39は、第3実施形態に係る回胴式遊技機における、条件装置一覧3である。 図40は、第3実施形態に係る回胴式遊技機における、主制御基板側での遊技進行制御処理(2枚目)のフローチャートである。 図41は、第3実施形態に係る回胴式遊技機における、主制御基板側での当選時ゲーム数上乗せ実行処理のフローチャートである。 図42は、第3実施形態に係る回胴式遊技機における、主制御基板側での押し順ナビ制御処理のフローチャートである。 図43は、第3実施形態に係る回胴式遊技機における、主制御基板側でのリール回転開始準備処理のフローチャートである。 図44は、第3実施形態に係る回胴式遊技機における、主制御基板側でのART抽選実行処理のフローチャートである。 図45は、第3実施形態に係る回胴式遊技機における、主制御基板側での入賞時ゲーム数上乗せ実行処理のフローチャートである。 図46は、第3実施形態に係る回胴式遊技機における、主制御基板側での遊技状態移行制御処理のフローチャートである。 図47は、第3実施形態に係る回胴式遊技機における、主制御基板側での遊技状態遷移図である。 図48は、第3実施形態に係る回胴式遊技機における、主制御基板側でのタイマ割り込み時処理のフローチャートである。 図49は、第3実施形態に係る回胴式遊技機における、主制御基板側での第1試験信号出力処理のフローチャートである。 図50は、第3実施形態に係る回胴式遊技機における、主制御基板側での第2試験信号出力処理のフローチャートである。 図51は、第3実施形態に係る回胴式遊技機における、主制御基板側での押し順ナビあり時信号制御処理のフローチャートである。 図52は、第3実施形態に係る回胴式遊技機における、主制御基板側での押し順ナビなし時信号制御処理のフローチャートである。 図53は、第3実施形態に係る回胴式遊技機における、操作態様情報一覧である。 図54は、第3実施形態からの変更例1に係る回胴式遊技機における、主制御基板側での遊技進行制御処理(2枚目)のフローチャートである。 図55は、第3実施形態からの変更例1に係る回胴式遊技機における、主制御基板側での押し順ナビ制御処理のフローチャートである。 図56は、第3実施形態からの変更例1に係る回胴式遊技機における、主制御基板側での第1試験信号出力処理のフローチャートである。 図57は、第3実施形態からの変更例1に係る回胴式遊技機における、主制御基板側での第2試験信号出力処理のフローチャートである。 図58は、第3実施形態からの変更例1に係る回胴式遊技機における、主制御基板側での操作態様情報制御処理のフローチャートである。 図59は、第3実施形態からの変更例1に係る回胴式遊技機における、主制御基板側での押し順ナビあり時信号制御処理のフローチャートである。 図60は、第3実施形態からの変更例1に係る回胴式遊技機における、主制御基板側での押し順ナビなし時信号制御処理のフローチャートである。 図61は、第3実施形態からの変更例1に係る回胴式遊技機における、操作態様情報一覧である。 図62は、第3実施形態からの変更例2に係る回胴式遊技機における、主制御基板側での遊技進行制御処理(2枚目)のフローチャートである。 図63は、第3実施形態からの変更例2に係る回胴式遊技機における、主制御基板側でのタイマ割り込み時処理のフローチャートである。 図64は、第3実施形態からの変更例2に係る回胴式遊技機における、主制御基板側での押し順ナビあり時信号制御処理のフローチャートである。 図65は、第3実施形態からの変更例2に係る回胴式遊技機における、主制御基板側での押し順ナビなし時信号制御処理のフローチャートである。 図66は、第3実施形態からの変更例2に係る回胴式遊技機における、操作態様情報一覧である。 図67は、第4実施形態に係る回胴式遊技機における、主制御基板側での主制御装置側メイン処理のフローチャートである。 図68は、第4実施形態に係る回胴式遊技機における、主制御基板側での設定変更装置制御処理のフローチャートである。 図69は、第4実施形態に係る回胴式遊技機における、主制御基板側での設定変更なしRAM初期化処理のフローチャートである。 図70は、第4実施形態に係る回胴式遊技機における、主制御基板側での設定変更ありRAM初期化処理のフローチャートである。 図71は、第4実施形態に係る回胴式遊技機における、主制御基板側での遊技進行制御処理(1枚目)のフローチャートである。 図72は、第4実施形態に係る回胴式遊技機における、主制御基板側での遊技進行制御処理(3枚目)のフローチャートである。 図73は、第4実施形態に係る回胴式遊技機における、主制御基板側での第2試験信号出力処理のフローチャートである。 図74は、第4実施形態に係る回胴式遊技機における、主制御基板側での第2試験信号出力情報の一例である。 図75は、第4実施形態に係る回胴式遊技機における、主制御基板側での電源断時処理のフローチャートである。 図76は、第4実施形態に係る回胴式遊技機における、主制御基板側でのタイマ割り込み時処理のフローチャートである。 図77は、第4実施形態に係る回胴式遊技機における、主制御基板側での第1試験信号出力処理のフローチャートである。 図78は、第5実施形態に係る回胴式遊技機における、主制御基板側での第2ROM領域を呼び出す際の処理の一例である。 図79は、第5実施形態に係る回胴式遊技機における、主制御基板側でのスタックエリアイメージ図である。 図80は、第6実施形態に係る回胴式遊技機における、主制御基板側での第1・第2メイン処理のフローチャートである。 図81は、第6実施形態に係る回胴式遊技機における、主制御基板側での第1割り込み処理のフローチャートである。 図82は、第6実施形態に係る回胴式遊技機における、主制御基板側での第2割り込み処理のフローチャートである。 図83は、第6実施形態に係る回胴式遊技機における、主制御基板側でのメイン処理イメージ図Aである。 図84は、第6実施形態に係る回胴式遊技機における、主制御基板側での第1スタック設定中割り込みイメージ図Aである。 図85は、第6実施形態に係る回胴式遊技機における、主制御基板側での第2スタック設定中割り込みイメージ図Aである。 図86は、第7実施形態に係る回胴式遊技機における、主制御基板側での第1・第2メイン処理のフローチャートである。 図87は、第7実施形態に係る回胴式遊技機における、主制御基板側での第1割り込み処理のフローチャートである。 図88は、第7実施形態に係る回胴式遊技機における、主制御基板側での第2割り込み処理のフローチャートである。 図89は、第7実施形態に係る回胴式遊技機における、主制御基板側でのメイン処理イメージ図Bである。 図90は、第7実施形態に係る回胴式遊技機における、主制御基板側での第1スタック設定中割り込みイメージ図Bである。 図91は、第7実施形態に係る回胴式遊技機における、主制御基板側での第2スタック設定中割り込みイメージ図Bである。 図92は、第8実施形態に係る回胴式遊技機における、主制御基板側での第1・第2メイン処理のフローチャートである。 図93は、第8実施形態に係る回胴式遊技機における、主制御基板側での第1割り込み処理のフローチャートである。 図94は、第8実施形態に係る回胴式遊技機における、主制御基板側での第2割り込み処理のフローチャートである。 図95は、第8実施形態に係る回胴式遊技機における、主制御基板側でのメイン処理イメージ図Cである。 図96は、第8実施形態に係る回胴式遊技機における、主制御基板側での第1メイン処理中割り込みイメージ図Cである。 図97は、第8実施形態に係る回胴式遊技機における、主制御基板側での第2メイン処理中割り込みイメージ図Cである。 図98は、第9実施形態に係る回胴式遊技機における、主制御基板側での第1・第2メイン処理のフローチャートである。 図99は、第9実施形態に係る回胴式遊技機における、主制御基板側での第1割り込み処理のフローチャートである。 図100は、第9実施形態に係る回胴式遊技機における、主制御基板側での第2割り込み処理のフローチャートである。 図101は、第9実施形態に係る回胴式遊技機における、主制御基板側でのメイン処理イメージ図Dである。 図102は、第9実施形態に係る回胴式遊技機における、主制御基板側での第1メイン処理中割り込みイメージ図Dである。 図103は、第9実施形態に係る回胴式遊技機における、主制御基板側での第2メイン処理中割り込みイメージ図Dである。 図104は、第10実施形態に係る回胴式遊技機における、主制御基板側での第1・第2メイン処理のフローチャートである。 図105は、第10実施形態に係る回胴式遊技機における、主制御基板側での第1割り込み処理のフローチャートである。 図106は、第10実施形態に係る回胴式遊技機における、主制御基板側での第2割り込み処理のフローチャートである。 図107は、第11実施形態に係る回胴式遊技機における、主制御基板側での第1・第2メイン処理のフローチャートである。
はじめに、本明細書における各用語の意義について説明する。「乱数」とは、回胴式遊技機において何らかの遊技内容を決定するための抽選(電子計算機によるくじ)に使用される乱数であり、狭義の乱数の他に擬似乱数も含む(例えば、乱数としてはハード乱数、擬似乱数としてはソフト乱数)。例えば、遊技の結果に影響を与えるいわゆる「基本乱数」、具体的には、特別遊技の移行や入賞役と関連した「当選乱数」、等を挙げることができる。「CPU」とは、当業界において周知であるものと同義であり、使用されているアーキテクチャ(CISC、RISC、ビット数等)や処理性能等には何ら限定されない。「電断(電源断)」とは、遊技機に設けられた電源スイッチの操作実行有無に係らず、遊技機に供給される電源電圧が一定レベル以下となったことを指し、例えば、電源供給ユニットの破損や停電等による不測の事態による電源供給の遮断をも包含する。「ROM」とは、当業界において周知であるものと同義であり、情報を物理的に保持する(例えば、データ読み出し用の電流を与えた場合、導通する素子構成であれば「1」、導通しない素子構成であれば「0」となる)。RAMとは、当業界において周知であるものと同義であり、情報を電気的に保持する(例えば、データ読み出し用の電流を与えた場合、蓄電されていれば「1」、蓄電されていなければ「0」となる。尚、RAM内で保持されているデータの一部又はすべてに対して、電断時にはバックアップ電源が供給されるよう構成されていることが一般的である)。「遊技状態」とは、例えば、遊技メダルが獲得容易であり遊技者にとって有利な特別遊技状態(いわゆる大当り遊技であり、ボーナス遊技や第1種BB・第2種BB等と呼ばれるものが該当する)、再遊技の当選率があらかじめ定められた値である通常遊技状態よりも再遊技当選率が高い(又は低い)状態である再遊技確率変動遊技状態(RT状態)、当選した役を入賞させるためのリールの停止順を報知し得るAT(アシストタイム)状態、前記RT状態とAT状態とが複合したART(アシストリプレイタイム)状態、等が挙げられる。また、前記通常遊技状態においても、前記RT状態、AT状態、ART状態への移行抽選確率が異なる、高確率通常遊技状態、低確率通常遊技状態、等が挙げられる。また、前記遊技状態は複合しても問題ない{更に、これらの遊技状態や機能(例えば、AT状態への移行抽選や、リールの停止順に係る報知指示の出力等)は、遊技進行を制御する主制御基板側ですべて実装してしまっても問題ない}。
以下の実施形態は、回胴式遊技機(いわゆるスロットマシン)を前提としたものとなっているが、これには何ら限定されず、他の遊技機(例えば、ぱちんこ遊技機、雀球、アレンジボール等)に応用された場合も範囲内であり、即ち、遊技進行を制御するマイコンチップ(CPU、ROM、RAMを搭載したチップ)を備え、当該マイコンチップにてプログラムを動作させるものに対して応用することができる技術である。尚、本実施形態は、あくまで一例であり、各手段が存在する場所や機能等、各種処理に関しての各ステップの順序、フラグのオン・オフのタイミング、各ステップの処理を担う手段名等に関し、以下の態様に限定されるものではない。また、上記した実施形態や変更例は、特定のものに対して適用されると限定的に解すべきでなく、どのような組み合わせであってもよい。例えば、ある実施形態についての変更例は、別の実施形態の変更例であると理解すべきであり、また、ある変更例と別の変更例が独立して記載されていたとしても、当該ある変更例と当該別の変更例を組み合わせたものも記載されていると理解すべきである。
ここで本発明の詳細な説明に先立ち、本発明に係る簡潔な構成を説明する。
本発明に係る回胴式遊技機のうち、第2ROM領域にて配置されているプログラムコードに基づくCPUC100の処理にて、第1RAM領域(又は、レジスタ領域)を更新及び参照し得る構成を(本実施形態)にて詳細に説明する。
本発明に係る回胴式遊技機のうち、第1ROM領域にて配置されているプログラムコードに基づくCPUC100の処理にて、第2RAM領域を参照可能に構成し、且つ、第2ROM領域にて配置されているプログラムコードに基づくCPUC100の処理にて、第1RAM領域を参照し得る構成を(第2実施形態)にて詳細に説明する。
本発明に係る回胴式遊技機のうち、試験基板に出力する信号に係る処理を第2プログラム領域にて実行し、且つ、第1試験基板に出力する条件装置情報として、いずれの条件装置情報を出力するタイミングであるかに係る識別値(小役識別値、ボーナス識別値)を第1プログラム領域における処理によって第1RAM領域に一時記憶し、且つ、第1プログラム領域にて実行された押し順表示装置D270による押し順ナビに基づいて、第2試験基板への出力信号を制御するような構成を(第3実施形態)にて詳細に説明する。
本発明に係る回胴式遊技機のうち、第3実施形態をベースとして、且つ、第1試験基板に出力する条件装置情報として、いずれの条件装置情報を出力するタイミングであるかに係る識別値(小役識別値、ボーナス識別値)を第2プログラム領域における処理によってレジスタ領域に一時記憶し、且つ、第1プログラム領域における押し順ナビに拘らず、第2プログラム領域にて第2試験基板への出力信号を制御するような構成を(第3実施形態からの変更例1)にて詳細に説明する。
本発明に係る回胴式遊技機のうち、第3実施形態からの変更例1をベースとして、且つ、第2試験基板に出力する操作態様情報として、停止するリールに係る情報、即ちリール停止順に係る情報を一回の出力にて第2試験基板へ送信するような構成を(第3実施形態からの変更例2)にて詳細に説明する。
本発明に係る回胴式遊技機のうち、第3実施形態をベースとして、電断復帰時のRAM初期化範囲の決定及びRAMクリアを、第1ROM・RAM領域に係る範囲は第1ROM・RAM領域における処理によって実行し、第2ROM・RAM領域に係る範囲は第2ROM・RAM領域による処理によって実行するような構成を(第4実施形態)にて詳細に説明する。
本発明に係る回胴式遊技機のうち、第1ROM領域の処理を実行中に第2ROM領域の処理を呼び出した場合のスタックポインタのアドレスと、第2ROM領域の処理を終了してから第1ROM領域の呼び出し元に復帰する場合のスタックポインタのアドレスとが一致しているか否かを判定して、一致していた場合にのみ、第2ROM領域における処理が正常に実行されたと判断するような構成を(第5実施形態)にて詳細に説明する。
本発明に係る回胴式遊技機のうち、スタックエリアを2つ用いることによって第1ROM・RAM領域の処理と第2ROM・RAM領域の処理とを切り分けるような構成を(第6実施形態)にて詳細に説明する。
本発明に係る回胴式遊技機のうち、第6実施形態をベースとして、レジスタの退避又は復帰タイミングを相違させたような構成を(第7実施形態)にて詳細に説明する。
本発明に係る回胴式遊技機のうち、第6実施形態をベースとして、第2ROM領域を呼び出す際に割り込みを禁止することによって第1ROM・RAM領域の処理と第2ROM・RAM領域の処理とを切り分けるような構成を(第8実施形態)にて詳細に説明する。
本発明に係る回胴式遊技機のうち、第8実施形態をベースとして、レジスタの退避又は復帰タイミングを相違させたような構成を(第9実施形態)にて詳細に説明する。
本発明に係る回胴式遊技機のうち、第6実施形態をベースとして、レジスタの退避又は復帰タイミングを相違させたような構成を(第10実施形態)にて詳細に説明する。
本発明に係る回胴式遊技機のうち、第6実施形態をベースとして、第2ROM領域を呼び出す際に割り込みを禁止することによって第1ROM・RAM領域の処理と第2ROM・RAM領域の処理とを切り分けるような構成を(第11実施形態)にて詳細に説明する。
(本実施形態)
ここで、各構成要素について説明する前に、本実施形態に係る回胴式遊技機Pの特徴(概略)を説明する。以下、図面を参照しながら、各要素について詳述する。
まず、図1(一部の構成については図2)を参照しながら、本実施形態に係る回胴式遊技機の前面側の基本構造を説明する。まず、回胴式遊技機Pは、主に前扉(フロントドアとも称す)と、裏箱(キャビネット、基体とも称す)と裏箱内に設置されたリールユニット、ホッパ装置、電源ユニット、主制御基板M(主制御チップCが搭載されている基板)で構成される。以下、これらを順に説明する。
次に、回胴式遊技機Pの前扉DUは、装飾ランプユニットD150、メダル受け皿D230、を含む。まず、装飾ランプユニットD150は、回胴式遊技機Pの遊技の進行に応じて発光する発光源を有したものである。また、前扉DUの開閉状態を検出可能な扉スイッチD80が設けられている。また、前扉DUには鍵穴D260が設けられており、鍵穴D260の形状と整合するキー(ドアキー)を鍵穴D260に差し込む{加えて、所定の方向(例えば、時計回り)に捻る}ことで、前扉DUを開放し得るよう構成されている。更に、本実施形態においては、ドアキーを鍵穴D260に差し込む{加えて、所定の方向(例えば、反時計回り)に捻る}ことで、エラー状態(後述する、ドア開放エラー等)を解除し得るよう構成されている。次に、メダル受け皿D230は、放出口D240から放出された遊技メダル(或いは単にメダルと呼ぶことがある)の受け皿である。
次に、前扉DUは、遊技状態を視認可能にするための機構、遊技媒体の入力を可能にするための機構、リールユニットを操作するための機構、等を含む。具体的には、遊技状態を視認可能にするための機構として、リール窓D160、投入数表示灯D210、操作状態表示灯D180、特別遊技状態表示装置D250、払出数表示装置D190、クレジット数表示装置D200、押し順表示装置D270、ARTカウンタ値表示装置D280等が取り付けられている。また、遊技媒体の投入や賭け数(ベット数)の入力を可能にするための機構として、メダル投入口D170、ベットボタンD220、投入された遊技媒体の払い出しを可能にするための機構として、精算ボタンD60が取り付けられている。そして、リールユニットを操作するための機構として、スタートレバーD50、停止ボタンD40が取り付けられている。以下、各要素について詳述する。
<遊技状態を視認可能にするための機構>
次に、リール窓D160は、前扉DUの一部を構成する合成樹脂等によって形成された透明な部材であり、リール窓D160を通して遊技機枠内に設置されたリールユニットを視認可能に構成されている。また、投入数表示灯D210は、LEDによって構成されており、現在ベット(一の遊技を開始するために必要な遊技メダルを投入すること)されているメダル数と同数のLEDが点灯するよう構成されている。また、操作状態表示灯D180は、LEDによって構成されており、現在の操作状態(メダル受付可否状態、再遊技入賞状態、遊技開始ウェイト状態等)に応じて点灯・消灯するよう構成されている。また、特別遊技状態表示装置D250は、7セグメントディスプレイによって構成されており、特別遊技中に払い出された払出数の総数が表示されるよう構成されている。尚、特別遊技状態表示装置D250を設けない構成としてもよく、そのように構成した場合には、演出表示装置S40にて当該払出数の総数を表示するよう構成することで遊技者は特別遊技中に払い出された払出数の総数を認識することができユーザーフレンドリーな遊技機とすることができる。また、払出数表示装置D190は、7セグメントディスプレイによって構成されており、現在払出されている遊技メダル数が表示されるよう構成されている。また、クレジット数表示装置D200は、7セグメントディスプレイによって構成されており、遊技者の持ちメダルとして遊技機内に貯留されているメダル数の総数(クレジット数)が表示されるよう構成されている。また、押し順表示装置D270は、リール停止順(左停止ボタンD41、中停止ボタンD42、右停止ボタンD43の停止順)によって入賞する役が相違し得る条件装置{いわゆる押し順小役であるが、入賞する役が相違した場合には、遊技者に付される利益率(払出枚数、その後のRT状態等)が異なり得るよう構成されているものが一般的である}が成立したゲームにて、遊技者に最も有利となるリール停止順を報知し得るよう構成されている。また、ARTカウンタ値表示装置D280は、押し順表示装置D270に表示された押し順ナビ表示に従って遊技を進行した場合に保障されることとなるART状態(詳細は後述)に滞在し得るゲーム数を表示し得るよう構成されている。尚、押し順表示装置D270は、払出数表示装置D190と兼用してもよいし、兼用しない場合、払出数表示装置D190には、後述するART状態中における入賞によって払出されたメダルの合計枚数(又は純増枚数)が表示されるよう構成されていてもよい。
<遊技媒体の入力を可能にするための機構>
次に、メダル投入口D170は、遊技メダルの投入口であり、メダル受付可能状態である状況下において当該投入口に投入された遊技メダルは遊技機枠内部へと誘導される。また、遊技機枠内部にはメダルの投入を検出するセンサとして、投入受付センサD10sと、第1投入センサD20sと、第2投入センサD30sと、が設けられており、当該遊技機枠内部へと誘導された遊技メダルが正常に投入されたと判断した場合に、当該投入されたメダルをベットされたメダルとして検出し得るよう構成されている。また、ベットボタンD220は、遊技者によって操作可能に構成されており、当該操作によって、貯留されているメダル(クレジットのメダル)をベットすることができるよう構成されている。また、精算ボタンD60は、遊技者によって操作可能に構成されており、当該操作によって、貯留されているメダル(クレジットのメダル)及び/又はベットされているメダルを遊技者に払い戻すことが可能となっている。尚、精算ボタンD60の操作によって払い戻された遊技メダルは、放出口D240に払い出されるよう構成されている。
<リールユニットを操作するための機構>
次に、スタートレバーD50は、遊技者によって操作可能に構成されており、当該操作によってリールユニットの動作を開始可能に構成されている。また、停止ボタンD40は、遊技者によって操作可能な左停止ボタンD41、中停止ボタンD42、右停止ボタンD43を備えており、夫々の停止ボタンを操作することによってリールユニットの動作を順次停止可能に構成されている。
次に、回胴式遊技機Pのリールユニットは、リールM50とリールM50の駆動源(ステッピングモータ等)とを備えている。また、リールM50は、左リールM51、中リールM52、右リールM53を備えている。ここで、夫々のリール部は合成樹脂等により形成され、当該リール部の外周上(リール帯上)には複数の図柄が描かれている。そして、スタートレバーD50及び停止ボタンD40における各停止ボタンの操作に基づき、夫々のリール部の回転動作及び停止動作を可能とするよう構成されている。また、図示しないが、左リールM51、中リールM52及び右リールM53の内部にはLED(以下、リールバックライトと呼ぶことがある)が設けられており、当該LEDが点灯した際にはリール部外周を透過した光によって、リール部外周が点灯したように視認できるよう構成されている。
<その他の機構>
また、回胴式遊技機Pの遊技機枠の内外には、遊技の興趣性を高めるための機構として、予告演出や背景演出等の演出を表示するための演出表示装置S40、様々な点灯態様にて点灯し得るLEDランプS10、サウンドを出力し得るスピーカS20、合成樹脂等によって形成された部材である、上パネルD130及び下パネルD140、等が設けられている。
次に、図2は、前扉DUを開いて回胴式遊技機Pの内部の構成を示した斜視図である。前扉DUの裏面側上部には、演出表示装置S40が取り付けられている。前扉DUのほぼ中央にはリール窓D160が設けられており、その下方には、後述する扉基板Dが設けられている。また、扉基板Dには、前述した停止ボタンD40や、スタートレバーD50、精算ボタンD60等の入力信号が入力される。また、扉基板Dの下方には、スピーカS20が設けられている。
また、詳細は後述するが、扉基板Dの付近には、メダル投入口D170から投入された遊技メダルの通路となる投入受付センサD10sが設けられており、当該投入受付センサD10sの下方には、遊技メダルを放出口D240に導くためのコインシュータD90などが設けられている。投入受付センサD10sは、メダル投入口D170から投入された遊技メダルを主に寸法に基づいて選別し、規格寸法に適合した遊技メダルだけを受け入れる機能を有しており、当該機能により適合しないと判断されたメダル(又は、その他の異物)は、ブロッカD100により放出口D240に払い戻されるよう構成されている。遊技者がスタートレバーD50を操作する前に(遊技メダルの投入が有効である状態にて)遊技メダルを投入すると、遊技メダルは投入受付センサD10sによって選別され、規格を満足しているものだけがホッパH40内に投入され、規格を満たしていないメダルは、コインシュータD90を通って、放出口D240に返却されるようになっている。これに対して、スタートレバーD50が操作された後に(遊技メダルの投入が有効でない状態にて)遊技メダルが投入された場合は、投入された遊技メダルはコインシュータD90を通って、放出口D240に返却される。また、投入受付センサD10sの内部(流路の奥)には、詳細後述するメダル投入に係るセンサが設けられており、寸法規格を満たして受け入れられた遊技メダルが通過すると、第1投入センサD20s及び第2投入センサD30sによって検出されて、その信号が後述する主制御基板Mに供給されるようになっている。
リールM50の上方には、遊技全体の制御を司る後述する主制御基板Mが格納されており、リールM50の背後には、各リール(左リールM51、中リールM52、右リールM53)を駆動するための後述する回胴基板Kが格納されている。また、リールM50の左方には、図1に示した演出表示装置S40や、LEDランプS10、スピーカS20等を用いて行われる各種演出の制御を司る後述する副制御基板Sが格納されている。また、主制御基板Mには、後述する設定変更装置制御処理を実行するため(設定変更を行うため)に使用する設定キースイッチM20、設定値の変更やエラー解除等を実行し得る設定/リセットボタンM30、設定キースイッチM20や設定/リセットボタンM30等を保護するための設定扉(不図示)の開閉を判定する設定扉スイッチM10が接続されている。尚、設定キースイッチM20、設定/リセットボタンM30、設定扉スイッチM10については何れも不図示としているが、主制御基板Mの基板上等の適宜位置に設けられていればよい(即ち、前扉DUを開かなければ人為的なアクセスが困難な位置に設けられていればよい)。
リールM50の下方には、投入された遊技メダルが集められるホッパH40や、遊技メダルを払い出すメダル払出装置Hが設けられており、回胴式遊技機P全体に電源を供給するための電源基板Eが格納されている。メダル払出装置Hから払い出された遊技メダルは、コインシュータD90を通って、放出口D240から払い出されるようになっている。また、電源基板Eの前面には、回胴式遊技機Pの電源を投入するための電源スイッチE10も設けられている。
次に、図3は、回胴式遊技機内部における、メダル投入口D170に投入された遊技メダルの経路(セレクタ)を示した斜視図である。メダル投入口D170に投入された遊技メダルは、まず投入受付センサD10sを通過する。当該投入受付センサD10sは機械式のダブルセンサになっており、遊技メダルが通過することによって、2つの突起した機構が押下されることによりオンとなり遊技メダルが正常に通路を通過することができることとなる。また、このような構成により、遊技メダルではない異物(例えば、遊技メダルよりも径が小さいもの)が投入された場合には、前記2つの突起した機構が押下されない。このようなメダルは、起立した状態をメダルが維持できないため、通路を通過できず(メダルが倒れこむ)放出口D240に払い戻されることとなる。そのほかにも、投入受付センサD10sは、オンとなっている時間が所定時間以上連続した場合等にも、エラーであると判定し得る(その結果、ブロッカD100がオフとなり得る)よう構成されている。
遊技メダルがブロッカD100を正常に通過した場合に、当該通過直後に第1投入センサD20s及び第2投入センサD30sを通過することとなる。この投入センサ(第1投入センサD20s及び第2投入センサD30s)は2つのセンサで構成されており(遊技メダルの規格上の直径よりも小さい間隔で隣接配置されており)、夫々のセンサのオン・オフ状況(第1投入センサD20s及び第2投入センサD30sのオン・オフの組み合わせの遷移していく順序、等)及びオン・オフとなっている時間を監視することにより様々なエラー(後述する、投入メダル滞留エラー、投入メダル逆流エラー、等)を検出可能に構成されている。
次に、図4は、回胴式遊技機における、メダル払出装置Hの正面図及び斜視図である。メダル払出装置Hは、クレジット(遊技機内部に電子的に貯留されている遊技メダル)又はベットされているメダル(遊技を開始するために投入されたメダル)が存在する状態で、精算ボタンが操作された、又は、入賞により遊技メダルが払い出される場合に作動することとなる。作動する場合には、まず、ホッパモータH80が駆動することにより、ディスク回転軸H50aを中心にディスクH50が回転する。当該回転によりメダル払出装置H内の遊技メダルは放出付勢手段H70を変位させて遊技メダル出口H60から放出口D240に向かって流下していくこととなる。尚、払出センサ(第1払出センサH10s及び第2払出センサH20s)は2つのセンサで構成されており、夫々のセンサのオン・オフ状況(第1払出センサH10s及び第2払出センサH20sのオン・オフの組み合わせの遷移していく順序、等)及びオン・オフとなっている時間を監視することにより様々なエラー(後述する、払出メダル滞留エラー、等)を検出可能に構成されている。より具体的には、例えば、遊技メダル出口H60を正常に通過する際には、放出付勢手段H70の変位により、第1払出センサH10s=オフ・第2払出センサH20s=オフの状態から、第1払出センサH10s=オフ・第2払出センサH20s=オフ→第1払出センサH10s=オン・第2払出センサH20s=オフ→第1払出センサH10s=オン・第2払出センサH20s=オン→第1払出センサH10s=オン・第2払出センサH20s=オフ→第1払出センサH10s=オフ・第2払出センサH20s=オフ、というセンサ状態遷移となるため、このセンサ状態遷移と反する動きを検出した場合には、エラーとするよう構成することを例示することができる。
次に、図5のブロック図を参照しながら、本実施形態に係る回胴式遊技機Pの電気的な概略構成を説明する。はじめに、本実施形態に係る回胴式遊技機は、遊技の進行を制御する主制御基板Mを中心として、副制御基板S、扉基板D、回胴基板K、電源基板E、中継基板IN、設定扉スイッチM10、設定キースイッチM20、設定/リセットボタンM30等がデータをやり取り可能に接続されて構成されている。尚、図中の実線部がデータのやり取りに関する動きを示したものであり、図中の破線部が電源供給ルートを示したものである。尚、電源供給ルートはこれに限られたものではなく、例えば電源基板Eから主制御基板を介さずに中継基板INや扉基板Dに電源を供給しても良い。
主制御基板Mは、回胴式遊技機Pで行われる遊技全体の進行を司る基板である。当該主制御基板Mには、主制御チップCが搭載されており、主制御チップCには、CPUC100、内蔵ROMC110、内蔵RAMC120等がバスによって互いにデータをやり取り可能に接続されて搭載されている(図示及び詳細については後述する)。そして、主制御基板Mは、前扉DUに搭載された扉基板Dから、スタートレバーD50等が操作されたことを示す信号等を受け取って、副制御基板Sや、扉基板D、回胴基板K等に向かって制御コマンド(あるいは制御信号)を出力することにより、これら各種基板の動作を制御している。
また、副制御基板Sにも、前述した主制御基板Mと同様に、副制御チップSCが搭載されており、副制御チップSCには、CPUや、ROM、RAM等が設けられていて、バスによって互いにデータをやり取り可能に接続されて構成されている。また、副制御基板Sには、各種LEDランプS10、スピーカS20、演出表示装置S40、回胴バックライトS30等が接続されている。ここで回胴バックライトS30とは、左リールM51、中リールM52、右リールM53夫々の内部に設けられ、当該リールの表面に描かれた図柄を裏側から照らすライトである。副制御基板Sは、主制御基板Mから受け取った制御コマンドを解析して、各種LEDランプS10、スピーカS20、演出表示装置S40、回胴バックライトS30等にそれぞれ駆動信号を出力することにより、各種の演出を行っている。
扉基板Dには、前述した投入受付センサD10s、第1投入センサD20s、第2投入センサD30s、回転しているリールM50を停止するための停止ボタンD40、リールM50の回転を開始するためのスタートレバーD50、貯留されている遊技メダル(クレジット)や投入された遊技メダルを払い出して遊技を終了するための精算ボタンD60、遊技の状態を表示する各種の表示パネルD70(前述した、投入数表示灯D210、操作状態表示灯D180、特別遊技状態表示装置D250、払出数表示装置D190は、クレジット数表示装置D200、等の表示装置の集合体)、前扉の開閉の判定やエラーの解除や設定値の変更を実行するための扉スイッチD80、投入された後に適合しないと判断された遊技メダル(又は、その他の異物)を放出口D240に払い戻すためのブロッカD100等が接続されている。また、この扉基板Dは、前述した主制御基板Mとデータをやり取り可能に接続されている。このため、前扉DUに設けられたスタートレバーD50や、停止ボタンD40、精算ボタンD60等を操作すると、扉基板Dを介して、当該操作に係る信号が主制御基板Mに供給されるようになっている。また、投入受付センサD10sが遊技メダルの通過を検出した信号も、扉基板Dを介して主制御基板Mに供給される。
また、回胴基板Kには、リールM50を回転させるための回胴モータK10と、リールM50の回転位置を検出するための回胴センサK20等が接続されている。回胴基板Kは、当該回胴センサK20によって、リールM50の回転位置を検出しながら回胴モータK10を駆動することにより、リールM50を、決定された停止位置で停止させることが可能となっている。また、本実施形態の回胴式遊技機においては、回胴モータK10には、所謂ステップモータ(ステッピングモータ)が使用されている。尚、ステップモータは、リールM50が1回転するステップ数として、504ステップが設定されている。また、各リール(左リールM51、中リールM52、右リールM53)には略均一の大きさで所定数(例えば、21個)の図柄が設定されており、1図柄分に相当するステップ数としては、24ステップ(=21/504)が設定されている。尚、ステップ数、リール1周あたりの図柄の数は変更しても何ら問題ない。
また、メダル払出装置Hは、中継基板INを介して、主制御基板Mに接続されており、主制御基板Mからの制御信号に基づいて、所定枚数(例えば、10枚)の遊技メダルを払い出す動作を行う。尚、メダル払出装置Hにはメダルが正常に払い出されたか否かの判定や払い出された遊技メダルの数の計測を実行する第1払出センサH10s及び第2払出センサH20sと、ディスクH50を回転させるためのホッパモータH80と、が接続されている。
これら各種制御基板、及び基板で消費される電力は、電源基板E(電源スイッチE10により電源供給の有無を制御する基板)から供給されている。図5では、電源基板Eから電力が供給される様子を破線の矢印で表している。図示されているように、主制御基板Mおよび副制御基板Sには、電源基板Eから電力が直接供給されており、各種基板(扉基板D、回胴基板K、中継基板IN)には、主制御基板Mを介して電力が供給されている。電源基板Eには所定量(例えば、100V)の交流電圧が供給されており、この電力を規定電圧の直流電圧に変換した後、夫々の制御基板及び基板に供給している。
また、主制御基板Mには、後述する設定変更装置制御処理を実行するため(設定変更を行うため)に使用する設定キースイッチM20、設定値の変更やエラー解除等を実行し得る設定/リセットボタンM30、設定キースイッチM20や設定/リセットボタンM30等を保護するための設定扉(不図示)の開閉を判定する設定扉スイッチM10が接続されている。
<主制御部の基本回路の構成例>
次に、図6を用いて、主制御基板Mの主制御チップCの構成例について説明する。
まず、図6に示す主制御チップCには、CPUC100、内蔵ROMC110(第1ROM領域C111、第2ROM領域C112)、内蔵RAMC120(第1RAM領域C121、第2RAM領域C122)、外部バス制御回路C190、パラレル入力ポートC130、アドレスデコード回路C150、タイマ回路C170、カウンタ回路C180、リセット制御回路C220に加え、割込み制御回路C160、クロック回路C210、乱数生成回路C140、照合用ブロックC230、固有情報C240、演算回路C250が備えられており、これら全てが内部バスC200を介して互いに接続されている。
以下、上記説明した各部の詳細について説明する。
まず、CPUC100は、内蔵ROMC110や内蔵RAMC120のプログラムやデータによって様々な数値計算や情報処理、制御処理などを実行する。内蔵ROMC110は、制御プログラムや各種データを記憶する。内蔵RAMC120は、一時的にデータを記憶する。また、内蔵ROMC110及び内蔵RAMC120はアドレスとデータとをセットとして保持しており、アドレス範囲で用途が区切られている。尚、当該用途として主なものは、プログラム領域とデータ領域であるが、この点の詳細については、後述するメモリマップの説明に譲る。
外部バス制御回路C190は、IOリクエスト端子(XIORQ端子)、メモリリクエスト端子(XMREQ端子)、リード信号端子(XRD端子)、ライト信号端子(XWR端子)、16ビット幅のアドレス出力端子(A0端子〜A15端子)、および8ビット幅の入出力端子であるデータ入出力端子(D0端子〜D7端子)を有する。本実施形態では、このうちデータ入出力端子(D0端子〜D7端子)は、各駆動回路(例えば、中継基板INを介しての回胴基板K)へのデータ出力と、各周辺制御回路(例えば、扉基板Dを介しての各種センサや各種操作部材)からのデータ入力に用いられている。このデータ入出力端子(D0端子〜D7端子)によるデータの入出力先は、アドレス出力端子(A0端子〜A15端子)から出力されるアドレス信号、およびアドレスデコード回路C150から出力されるチップセレクト信号を用いて切り替えられる。
パラレル入力ポートC130は、4つの入力端子(P0端子〜P3端子)を有する。これらの入力端子(P0端子〜P3端子)は、例えば、その入力端子のいずれかがスタートレバーD50に接続されており、乱数生成回路C140が生成する乱数をCPUC100に取得させるためのラッチ信号として、乱数生成回路C140に出力する。
アドレスデコード回路C150は、所定数(例えば、14)の出力端子(XCS0端子〜XCS13端子)を有する。当該出力端子(XCS0端子〜XCS13端子)は、主制御チップCの外部にある周辺制御回路に接続されており、外部バス制御回路C190のデータ入出力端子(D0端子〜D7端子)から出力されるデータの送信先を切り替えるためのチップセレクト信号等の出力に用いられている。
タイマ回路C170は、時間の計測に用いられる。尚、タイマ回路C170は設定された計測時間を過ぎると、タイムアウト信号をカウンタ回路C180に出力する。一方、カウンタ回路C180は、各種信号の立ち上がり(あるいは立ち下がり)の回数の計測に用いられる。当該カウンタ回路で計測される信号には、主制御チップCのシステムクロックの他、前記タイマ回路からのタイムアウト信号、メモリの読み書き信号、メモリリクエスト信号、外部入出力の信号、割り込みに対する応答信号等も計測することができる。
リセット制御回路C220は、システムリセット入力端子(XSRST端子)と、リセット出力端子(XRSTO端子)の2つの端子を有する。このシステムリセット入力端子(XSRST端子)は電圧監視回路(電圧を監視するための回路であり、不図示となっている)に接続されている。当該システムリセット入力端子(XSRST端子)からシステムリセット信号(例えば一定時間Lレベルの信号)が入力されると、リセット制御回路C220は、主制御チップCの内部の回路に対してこのシステムリセット信号を出力するとともに、主制御チップCの外部にある周辺制御回路に対してリセット出力端子(XRSTO端子)からリセット信号(例えば、LレベルからHレベルへの立ち上がり信号)が出力される。この場合、主制御チップCでは、システムリセットと称する処理が実行され、各回路が初期化される。当該システムリセットが実行される一例として、電源投入時が挙げられる。
また、リセット制御回路C220は、ウォッチドッグタイマC222と、指定エリア外走行禁止回路C221とを備えている。ウォッチドッグタイマC222がタイムアウトになった場合や、CPUC100が所定の範囲以外のアドレスを参照(指定エリア外走行)した場合には、リセット制御回路C220は、主制御チップCの内部の回路に対してシステムリセット信号およびユーザリセット信号のいずれかを出力する。尚、システムリセット信号およびユーザリセット信号のどちらを出力するかは、内蔵ROMC110内のプログラム領域(詳細は後述する)の設定に従う。また、主制御チップCの外部にある周辺制御回路に対しては、リセット出力端子(XRSTO端子)からリセット信号が出力される。
主制御チップCでは、設定によって上記のシステムリセットか、或いはユーザリセットと称する処理のいずれかを実行させることができる。
上記指定エリア外走行は、プログラムが想定外の動作をしていることを意味する。この場合、CPUC100が本来プログラムとして扱われるはずのないコードにより動作することになる。このような状況は、プログラムミスによる所謂暴走した状態の他に、何らかの不正によって生じている可能性がある。この場合、上記のシステムリセットおよびユーザリセットのいずれかの処理により、正常な動作に復帰させることができるようになっている。また、ウォッチドッグタイマC222がタイムアウトになった場合としては、プログラムミスによる暴走した状態や、電圧降下によりCPUC100が本来設計した動作を行うことができなくなった場合等がある。この場合にも、上記のシステムおよびユーザリセットのいずれかの処理により、正常な動作に復帰させることができるように構成されている。
割込み制御回路C160は、外部入力や内部状態の変化に応じて適宜処理を実行させるために割り込みを発生させる。この割り込み処理には、例えば外部からの入力(センサによる信号)を受け付けた場合に実行する処理がある。本実施形態では、タイマ回路からの割り込み要求により実行されるタイマ割り込み処理を実行するようにしている。尚、割込み制御回路C160は、内部情報レジスタC161を備えており、当該内部情報レジスタC161には、乱数生成回路C140で乱数更新周期を決める外部クロック(カウントクロック)の周期の異常、および乱数の更新に関する異常、さらに、直前に発生したユーザリセットのリセット要因の情報等が格納される。
クロック回路C210は、水晶発振器(不図示)から外部クロック入力端子(EX端子)を介して入力される外部クロック(この例では、24MHzのクロック)を所定の分周比(例えば、1/2)で分周し、分周後のシステムクロック(この例では、12MHzのクロック)をこの主制御チップC内部の各回路に供給する。また、このシステムクロックをシステムクロック出力端子(CLKO端子)を介して主制御チップC外部の周辺制御回路に出力する。
乱数生成回路C140は、乱数を更新するためのクロック信号(カウントクロック)を用いて、乱数のラッチ信号を受信したときにこの更新された乱数を乱数レジスタ内に保持するものである。本実施形態では、水晶発振器から外部クロック入力端子(RCK端子)を介して入力される外部クロック信号を所定の分周比(例えば、1/2)で分周してこのカウントクロックに用いているが、主制御チップC内部のクロック信号を用いることもでき、この場合は水晶発振器は不要となる。乱数レジスタに保持された値は、乱数として読み出して使用することができる。尚、乱数レジスタから乱数を読み出すと、乱数レジスタが次の乱数をラッチすることを許容する許容状態とすることができる。
照合用ブロックC230は、主制御チップCが型式認定で合格した正規のものかどうかの真贋検査であるセキュリティチェックを実行するものであり、SC端子及びBRC端子を介して当該セキュリティチェックに係る信号を外部端子板に送信又は外部端子板から受信し得るよう構成されている。
固有情報C240には、主制御チップCの製造時に書き込まれた固有の識別番号が格納されており、当該識別番号は書き換えができないよう構成されている。また、演算回路C250は、四則演算や論理演算を実行する回路である。
<メモリマップ>
次に、図7を用いて、図6に示す主制御チップCのメモリマップの一例について説明する。当該メモリマップには、「0000H」から「FFFFH」までのアドレス空間が示されている。このうち、「0000H」から「27FFH」までの空間には内蔵ROMC110が割り当てられ、「2800H」から「28FFH」までの空間には主制御チップC内の各回路に内蔵されているレジスタ領域が割り当てられ、「F000H」から「F2FFH」までの空間には内蔵RAMC120が割り当てられ、「FDD0H」から「FDFBH」までの空間にはXCSデコードエリア(与えられた機械語を内部表現として解釈することであるデコードを実行する領域)が割り当てられている。CPUC100に、これらの番地に対してアクセスする命令を実行させることにより、対応するハードウェアに対するアクセスを実行させることができる。
尚、内蔵ROMC110は、主として遊技の進行を制御する領域である第1ROM領域と、主としてエラー関連等の遊技の正常な進行とは異なる処理を制御する領域である第2ROM領域と、を有しており、「0000H」から「1FFFH」までの空間には第1ROM領域が割り当てられ、「2000H」から「27FFH」までの空間には第2ROM領域が割り当てられている。尚、第1ROM領域は、第2ROM領域よりも容量が大きくなるよう構成されている(換言すれば、第1ROM領域内に存在しCPUC100からアクセスされるデータ容量は、第2ROM領域内に存在しCPUC100からアクセスされるデータ容量よりも大きくなるよう構成されている)。
また、第1ROM領域は、プログラムコード(CPUC100に対する命令コードセット)が格納されている第1制御領域と、プログラムが使用する(このプログラムコードに基づくCPUC100の処理によって読みだされる)プログラムデータが格納されている第1データ領域と、各種識別情報(会社名、製造日、型式名等)が格納される領域と、主制御チップCを動作させる際に用いられる各種設定(乱数生成回路C140の動作設定、ウォッチドッグタイマC222の動作設定等)が格納されているプログラム管理エリアとを有している。尚、同図にて、第1ROM領域におけるメモリマップイメージを図示しておくが、各領域のバイト数や未使用領域の有無はあくまでも一例である。
また、第2ROM領域は、プログラムコード(CPUC100に対する命令コードセット)が格納されている第2制御領域と、プログラムが使用する(このプログラムコードに基づくCPUC100の処理によって読みだされる)プログラムデータが格納されている第2データ領域と、を有しており、第2制御領域は、第1制御領域よりも容量が小さくなるよう構成されており(換言すれば、第2制御領域内に存在しCPUC100からアクセスされるプログラムコード容量は、第1制御領域内に存在しCPUC100からアクセスされるプログラムコード容量よりも小さくなり)、第2データ領域は、第1データ領域よりも容量が小さくなるよう構成されている(換言すれば、第2データ領域内に存在しCPUC100からアクセスされるプログラムデータ容量は、第1データ領域内に存在しCPUC100からアクセスされるプログラムデータ容量よりも小さくなる)。
他方、内蔵RAMC120は、主として遊技の進行に基づく情報を格納する領域である第1RAM領域と、主としてエラー関連等の遊技の正常な進行とは異なる処理に基づく情報を格納する領域である第2RAM領域と、プログラムが内部的にデータを保存しておく必要がある場合使用されるスタックエリアと、を有しており、「F000H」から「F1FFH」までの空間には第1RAM領域が割り当てられ、「F200H」から「F2C9H」までの空間には第2RAM領域が割り当てられ、「F2CAH」から「F2FFH」までの空間にはスタックエリアが割り当てられている(但し、各領域のバイト数はあくまでも一例である)。
また、第1RAM領域は、主として遊技の進行に係る情報を一時記憶するための作業領域である第1作業領域を有しており、第2RAM領域は、主としてエラー関連等に係る情報を一時記憶するための作業領域である第2作業領域と、第1RAM領域及び第2RAM領域に一時記憶された情報の誤り検出を行うための作業領域であるチェックサム領域を有している。尚、第1RAM領域は、第2RAM領域よりも容量が大きくなるよう構成されている。また、本実施形態においては、チェックサム領域は第2RAM領域のみが有しており(第1RAM領域は有しておらず)、当該チェックサム領域が第1RAM領域と第2RAM領域との双方の(双方に一時記憶された情報を通算した)チェックサムを管理するよう構成されている。また、本実施形態においては、後述するように、チェックサムを算出する際、未使用領域をも含めて算出しているが、これには限定されず、未使用領域を除いた領域(第1作業領域及び第2作業領域)についてチェックサムを算出するよう構成してもよい。また、誤り検出を行う手法は、チェックサムチェックを行う手法に限らず、その他の手法(例えば、パリティチェック等)を行う手法を用いてもよく、その場合には、当該チェックサム領域が、これら手法を用いる際に必要となる誤り検出用の情報(例えば、パリティビット等)を格納する領域となる。
尚、各種識別情報(会社名、製造日、型式名等)が格納される領域のアドレスは、内蔵RAMのアドレス以降としても何ら問題ない。また、未使用領域となっているアドレスも変更しても問題ないが、第1データ領域と第2制御領域との間(間のアドレス)には未使用領域を設けることが好適である。即ち、図7に示すようなメモリマップ構成である場合、第1制御領域内に存在しCPUC100からアクセスされるプログラムコードと、第2制御領域内に存在しCPUC100からアクセスされるプログラムコードとは、メモリマップ上において離隔して(アドレスが連続しない配置で)配置されており、未使用領域を間に挟んでいるため、プログラムソースコード上又はダンプリスト上において、双方のプログラムコードの配置位置を視覚上明確に切り分けることができる(その他、未使用領域を間に挟んでいる場合には、同様のことがいえる)。
ここで、主制御基板Mが搭載するROMに関しては、不正行為によって改造されたプログラム等を書き込まれることを防止するため、未使用の領域(充填されていない領域)を設けないよう構成することが好適である(例えば、未使用領域を全て0によって充填、使用している領域を若い番地に詰めて書き込む、等)。また、第1制御領域及び第1データ領域には、ノイズや不正行為によって、通常時には参照しないデータを参照してしまうことを防止するため、未使用のデータ(例えば、スペック違いの遊技機において参照するデータや、開発段階でのテストにのみ使用するデータ等)を設けないよう構成することが好適である。また、第1制御領域、第1データ領域、第2制御領域、第2データ領域、第1作業領域及び第2作業領域は、若い番地に詰めて領域を使用し、当該領域内(当該領域内のアドレス)に未使用の領域を設けない(例えば、「0000H」〜「0FA7H」の範囲となっている第1制御領域内の、「0010H」〜「0050H」を未使用領域としない)よう構成することが好適である。尚、本例における、未使用領域は、すべてのビットが「0」となっており、当該未使用領域以外の領域は、いずれかのビットが「1」となっている(「0」ではなくなっている)。
次に、図8〜31は、本実施形態における、主制御基板Mが行う一般的な処理の流れを示したフローチャートである。はじめに、これら処理の流れを示したフローチャートにおいては、第1ROM領域にて配置されているプログラムコード及びプログラムデータに基づき、CPUC100が処理を実行する場合、もしくは、その処理結果をCPUC100内のレジスタ(レジスタ領域)や第1RAM領域へ格納(更新)したり、第1ROM領域にて配置されているプログラムコードに基づくCPUC100の処理にてその処理結果を参照する場合を、「第1ROM・RAM領域における処理」として点線で囲んで図示し、「第1ROM・RAM領域内のデータに基づき」CPUC100が処理を実行する旨を記載している。また、これら処理の流れを示したフローチャートにおいては、第2ROM領域にて配置されているプログラムコード及びプログラムデータに基づき、CPUC100が処理を実行する場合、もしくは、その処理結果をCPUC100内のレジスタ(レジスタ領域)や第2RAM領域へ格納(更新)したり、第2ROM領域にて配置されているプログラムコードに基づくCPUC100の処理にてその処理結果を参照する場合を、「第2ROM・RAM領域における処理」として点線で囲んで図示し、「第2ROM・RAM領域内のデータに基づき」CPUC100が処理を実行する旨を記載している。
また、フローチャートは主に、処理ステップ(長方形にて図示)、判断(ひし形にて図示)、流れ線(矢印)、開始・終了・復帰等を示す端子(角丸長方形にて図示)によって構成されている。また、処理ステップの内、別のフローチャートにて詳細を図示している場合、当該別のフローチャートを参照するものをサブルーチン(左右の線が二重線である長方形にて図示)として図示している。ここで、遊技機の開発段階においては、スペック違いの遊技機を同時に開発することも行われているが、本例においては、メイン側の処理内に、スペック違いの遊技機で実行するサブルーチン(通常は使用しないサブルーチン)を残さないよう構成しており、ノイズや不正行為によって、通常時には実行されない未使用サブルーチンに係る処理が実行されることを防止している。
そして、これらの動きに沿わない場合であり、例えば、第1ROM領域にて配置されているプログラムコードに基づくCPUC100の処理にて、第2RAM領域を更新又は参照する場合や、逆に、第2ROM領域にて配置されているプログラムコードに基づくCPUC100の処理にて、第1RAM領域を更新又は参照する場合には、その更新・参照先がいずれのものであるかを特記している(又は、これらの動きに沿う場合であっても、明確化のため必要に応じて特記している場合がある)。尚、以下に示す実施形態における処理の動きを概念的に纏めておくと、次のようなケースに分かれる。
<動作1>第1ROM領域(特に、第1制御領域)にて配置されているプログラムコードに基づくCPUC100の処理によって、第1ROM領域(特に、第1データ領域)にて配置されているプログラムデータが読みだされる、又は、第2ROM領域(特に、第2制御領域)にて配置されているプログラムコードに基づくCPUC100の処理によって、第2ROM領域(特に、第2データ領域)にて配置されているプログラムデータが読みだされる。但し、第1ROM領域(特に、第1制御領域)にて配置されているプログラムコードに基づくCPUC100の処理によっては、第2ROM領域(特に、第2データ領域)にて配置されているプログラムデータが読みだされない、及び、第2ROM領域(特に、第2制御領域)にて配置されているプログラムコードに基づくCPUC100の処理によっては、第1ROM領域(特に、第1データ領域)にて配置されているプログラムデータが読みだされない。
<動作2>第1ROM領域にて配置されているプログラムコード及びプログラムデータに基づくCPUC100の処理にて、第1RAM領域を更新及び参照する。また、第2ROM領域にて配置されているプログラムコード及びプログラムデータに基づくCPUC100の処理にて、第2RAM領域を更新及び参照する。
<動作3>第1ROM領域にて配置されているプログラムコードにおける呼び出し命令(例えば、ニーモニックでいうCALL命令)によって、第2ROM領域にて配置されているプログラムコードに基づくCPUC100の処理が実行され得るが、第2ROM領域にて配置されているプログラムコードにおける呼び出し命令(例えば、ニーモニックでいうCALL命令)によって、第1ROM領域にて配置されているプログラムコードに基づくCPUC100の処理が実行され得ない。即ち、第1ROM領域にて配置されているプログラムコードと第2ROM領域にて配置されているプログラムコードとは、主従関係にあり、主となる第1ROM領域にて配置されているプログラムコードにおける呼び出し命令があってはじめて、従となる第2ROM領域にて配置されているプログラムコードに基づくCPUC100の処理が実行され得る状態となる。
<動作4>主となる第1ROM領域にて配置されているプログラムコードにおける呼び出し命令があって、従となる第2ROM領域にて配置されているプログラムコードに基づくCPUC100の処理が実行される場合、当該従となる第2ROM領域にて配置されているプログラムコードに基づくCPUC100の処理の実行時には、当該呼び出し命令があった時点で記憶されている情報(例えば、レジスタ領域内の情報)を参照する。或いは、当該従となる第2ROM領域にて配置されているプログラムコードに基づくCPUC100の処理が実行された後、当該主となる第1ROM領域にて配置されているプログラムコードに基づくCPUC100の処理に復帰する場合、当該主となる第1ROM領域にて配置されているプログラムコードに基づくCPUC100の処理の実行時には、当該復帰した時点で記憶されている情報(例えば、レジスタ領域内の情報)を参照する。
<動作5>前述の<動作4>において、レジスタ領域内の情報を参照しない場合には、<動作5−1>主となる第1ROM領域にて配置されているプログラムコードに基づくCPUC100の処理結果を、第1RAM領域に格納しておき、従となる第2ROM領域にて配置されているプログラムコードに基づくCPUC100の処理の実行時には、当該第1RAM領域に格納された処理結果を参照及び更新可能としておく(当該主となる第1ROM領域にて配置されているプログラムコードに基づくCPUC100の処理の復帰時には、当該更新された第1RAM領域を参照する)、<動作5−2>主となる第1ROM領域にて配置されているプログラムコードに基づくCPUC100の処理結果を、第1RAM領域に格納しておき、従となる第2ROM領域にて配置されているプログラムコードに基づくCPUC100の処理の実行時には、当該第1RAM領域に格納された処理結果を参照可能としておく、且つ、従となる第2ROM領域にて配置されているプログラムコードに基づくCPUC100の処理結果を、第2RAM領域に格納しておき、当該主となる第1ROM領域にて配置されているプログラムコードに基づくCPUC100の処理の復帰時には、当該第2RAM領域に格納された処理結果を参照可能としておく、のいずれかで動作する。
以上のような前提(説明を行う上での前提)に基づき、主制御基板Mが行う一般的な処理の流れについて説明を行っていくこととするが、上記した<動作1>乃至<動作3>は必須となる前提となる一方で、<動作4>と<動作5>とは、CPUC100での処理結果を主従関係にあるプログラムコード間で、如何にして引き継いでいくかの実装方法によって取捨選択できる前提であるため、以下の処理の流れにおいて、<動作4>及び<動作5>のいずれか一方のみで例示されていた場合であっても、他方で代替することが可能であることを予め補足しておく。
まず、図8は、回胴式遊技機Pの電源を投入した後(或いはシステムリセットやユーザリセット時において)、主制御基板MのCPUC100にて初めて実行される処理の流れを示したフローチャートである。この場合、一般的には、内蔵ROMC110の0000Hとなるアドレス(即ち、第1制御領域)に配置されているプログラムコードから順番に実行されていくこととなる。尚、主制御基板Mにおける主制御チップCの構成によっては、回胴式遊技機Pの電源を投入した後(或いはシステムリセットやユーザリセット時において)、前述したセキュリティチェックを実行するよう構成される場合があり、当該セキュリティチェックを実行するためのプログラムコードが先に実行されるよう構成される場合も想定できるが、そのような構成であっても、本実施形態において示す第1制御領域に配置されているプログラムコードから順番に実行されていくことには変わりない(加えて、内蔵ROMC110の初期アドレスが、0000Hではない場合であっても、前述したメモリマップの全体構成に変わりない=各アドレスが適宜ずれるのみ)。また、本実施形態においては、内蔵RAMC120に格納されているデータが電源断時においても保持されるよう、内蔵RAMC120に対してバックアップ電源が供給されるよう構成されているものとしている。
<第1ROM・RAM領域における処理>
まず、ステップ1000で、回胴式遊技機Pの電源を投入した後、ステップ1002で、CPUC100は、第1ROM・RAM領域内のデータに基づき、タイマ割り込みをセットする(ここでは、タイマ割り込みの種類をセットするのみであり、以降の処理において、タイマ割り込みが開始されると定期的に後述するタイマ割り込み時処理に係るフローチャートが実行される)。次に、ステップ1004で、CPUC100は、第1ROM・RAM領域内のデータに基づき、主制御チップCの機能設定を実行する。次に、ステップ1006で、CPUC100は、第2ROM領域の電源断復帰処理を呼び出す。
<第2ROM・RAM領域における処理>
次に、ステップ1008で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1RAM領域の先頭アドレスからチェックサム領域直前のアドレスまでのチェックサムを算出する。次に、ステップ1010で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1RAM及び第2RAMをチェックし(例えば、当該算出したチェックサムとチェックサム領域に保持されているチェックサムデータとに基づき、電源断・電源断復帰により内蔵RAMC120に格納されているデータが正しく保持されているか否かをチェックし)、電源断復帰データを生成する(当該チェック結果やステップ1800の電源断時処理にて実行した処理に基づいて生成し、第2RAM領域内で保持する)。次に、ステップ1012で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1ROM領域の呼び出し元に復帰し、ステップ1014に移行する。
<第1ROM・RAM領域における処理>
次に、ステップ1014で、CPUC100は、第1ROM・RAM領域内のデータに基づき、扉スイッチD80、設定扉スイッチM10及び設定キースイッチM20のスイッチ状態を確認する。次に、ステップ1016で、CPUC100は、第1ROM・RAM領域内のデータを参照し、扉スイッチD80、設定扉スイッチM10及び設定キースイッチM20のいずれかがオフであるか否かを判定する。ステップ1016でYesの場合、ステップ1018で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域内の非設定変更時初期化処理を呼び出し、ステップ1022に移行する。他方、ステップ1016でNoの場合には、ステップ1020で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域内の設定変更時初期化処理を呼び出し、ステップ1030に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ1022で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM内の電源断処理済みフラグのオン・オフ(ステップ1904でオンとなる)及び全RAMのチェックサム状態(ステップ1010でのチェック結果)を参照し、第2RAM内の電源断復帰データは正常ではないか否かを判定する。ステップ1022でYesの場合、ステップ1026で、CPUC100は、第2ROM・RAM領域内のデータに基づき、バックアップエラー表示をセットする(例えば、レジスタ領域内にエラー番号をセットする)。次に、ステップ1300で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、復帰不可能エラー処理を実行する。他方、ステップ1022でNoの場合、ステップ1028で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM及び第2RAMの初期化範囲を未使用RAM範囲(図中欄外にて示す、第1RAM領域における未使用領域と第2RAM領域における未使用領域)に決定してセットし(例えば、レジスタ領域内にセットし)、ステップ1036に移行する。
他方、ステップ1020の処理の後、ステップ1030で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM内の電源断処理済みフラグのオン・オフ(ステップ1904でオンとなる)及び全RAMのチェックサム状態(ステップ1010でのチェック結果)を参照し、第2RAM内の電源断復帰データは正常であるか否かを判定する。ステップ1030でYesの場合、ステップ1032で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM及び第2RAMの初期化範囲をRAM内における設定値を除くすべての範囲に決定してセットし(例えば、レジスタ領域内にセットし)、ステップ1036に移行する。尚、設定値は第1RAM領域の先頭アドレスに格納されている。他方、ステップ1030でNoの場合、ステップ1034で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM及び第2RAMの初期化範囲をRAMのすべての範囲に決定してセットし(例えば、レジスタ領域内にセットし)、ステップ1036に移行する。
次に、ステップ1036で、CPUC100は、第2ROM・RAM領域内のデータに基づき、決定された初期化範囲で第2RAM領域のみの初期化を実行する。次に、ステップ1038で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1ROM領域の呼び出し元に復帰し、ステップ1040に移行する。
<第1ROM・RAM領域における処理>
次に、ステップ1040で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ステップ1028、ステップ1032又はステップ1034にて決定された初期化範囲で、第1RAM領域のみの初期化を実行する。次に、ステップ1041で、CPUC100は、第1ROM・RAM領域内のデータに基づき、扉スイッチD80、設定扉スイッチM10及び設定キースイッチM20のいずれかがオフであるか否かを判定する。ステップ1041でYesの場合、ステップ1042で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域内の設定値チェック処理を呼び出し、ステップ1044に移行する。他方、ステップ1041でNoの場合には、ステップ1100で、CPUC100は、第1ROM・RAM領域内のデータに基づき、後述する、設定変更装置制御処理(設定変更処理とも称す)を実行する。
<第2ROM・RAM領域における処理>
次に、ステップ1044で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域内を参照し、第1RAM領域内の設定値に係るデータは正常範囲内(本例では、1〜6)であるか否かを判定する。ステップ1044でYesの場合、ステップ1046で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1ROM領域の呼び出し元に復帰し、ステップ1050に移行する。他方、ステップ1044でNoの場合、ステップ1048で、CPUC100は、第2ROM・RAM領域内のデータに基づき、設定値エラー表示(例えば、払出数表示装置D190に表示されることとなる)をセットする(例えば、レジスタ領域内にセットする)。次に、ステップ1300で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する復帰不可能エラー処理を実行する。
<第1ROM・RAM領域における処理>
次に、ステップ1050で、CPUC100は、第1ROM・RAM領域内のデータに基づき、電源断時の処理(ステップ1902)にて保存したスタックポインタに係るデータに基づき、スタックポインタを復帰する。次に、ステップ1052で、CPUC100は、第1ROM・RAM領域内のデータに基づき、入力ポートの読み込みを実行する。次に、ステップ1054で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ステップ1002にてセットしたタイマ割り込みを開始する。次に、ステップ1056で、CPUC100は、第1ROM・RAM領域内のフラグエリア内にある電源断処理済みフラグをオフにし、復帰したスタックポインタに従い電源断時の処理に復帰する。
尚、不図示ではあるが、主制御基板Mが搭載する一時記憶領域(RAM領域等)の初期値(処理開始時の値)は、特別遊技が実行される値とならないよう構成することが好適である(プログラムの処理開始直後に、ノイズや不正行為により、特別遊技の実行判定を行う処理を実行してしまった場合に特別遊技が誤って実行されることを防止するため)。また、不図示ではあるが、主制御基板MのRAM領域内に当選乱数等の乱数を記憶する場合には、専用の記憶領域を確保し、乱数に係る情報を記憶しているバイト内には当該乱数に係る情報のみを記憶する(各種タイマ値等、その他の情報を記憶しない)よう構成することが好適である(同じ1バイト内に記憶した別のデータを操作する際に、ノイズ等によって乱数に係る情報が書き換わってしまうことを防止するため)。
<第1ROM・RAM領域における処理>
次に、図9は、図8におけるステップ1100のサブルーチンに係る、設定変更装置制御処理のフローチャートである。まず、ステップ1102で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタックポインタをセットする(当該処理の先頭アドレスで初期化する)。次に、ステップ1118で、CPUC100は、第1ROM・RAM領域内のデータに基づき、タイマ割り込みを開始する。次に、ステップ1120で、CPUC100は、第1ROM・RAM領域内のデータを参照し、第1RAM領域内の設定値は正常範囲内(本例では、1〜6)ではないか否かを判定する。ステップ1120でYesの場合、ステップ1122で、CPUC100は、第1ROM・RAM領域内のデータに基づき、設定値に所定値(例えば、1=遊技者にとって最も不利となる値)をセットし、ステップ1124に移行する。他方、ステップ1120でNoの場合にもステップ1124に移行する。次に、ステップ1124で、CPUC100は、第1ROM・RAM領域内のデータに基づき、エラー表示LED(不図示)に設定変更装置作動中である旨を表示し、設定表示LED(不図示)に設定値を表示し、ステップ1126に移行する。
次に、ステップ1126で、CPUC100は、第1ROM・RAM領域内のデータに基づき、設定/リセットボタンM30がオフからオンに切り替わったか否かを判定する。ステップ1126でYesの場合、ステップ1128で、CPUC100は、第1ROM・RAM領域内のデータに基づき、現在の設定値に1を加算し(加算した結果設定値が6を超過した場合には、設定値は1となる)、ステップ1130に移行する。尚、ステップ1126でNoの場合にも、ステップ1130に移行する。次に、ステップ1130で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタートレバーD50がオフからオンに切り替わったか否かを判定する。ステップ1130でYesの場合、ステップ1132で、CPUC100は、第1ROM・RAM領域内のデータに基づき、設定キースイッチM20がオンからオフに切り替わったか否かを判定する。ステップ1132でNoの場合には、ステップ1132の処理をループする。他方、ステップ1132でYesの場合、ステップ1134で、CPUC100は、第1ROM・RAM領域内のデータに基づき、エラー表示LED(不図示)に設定変更装置の作動が終了した旨を表示し、設定表示LED(不図示)の設定値の表示を消去し、ステップ1200の遊技進行制御処理に移行する。尚、ステップ1130でNoの場合には、ステップ1126に移行する。
<第1ROM・RAM領域における処理>
次に、図10は、図9におけるステップ1200のサブルーチンに係る、遊技進行制御処理(1枚目)のフローチャートである。まず、ステップ1202で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタックポインタをセットする(当該処理の先頭アドレスで初期化する)。次に、ステップ1204で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該ゲームに必要な第1RAM領域内のデータ(例えば、ベット上限数、入賞の有効ライン、等)をセットする。次に、ステップ1206で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該ゲームにおける遊技状態(例えば、通常遊技中、大当り遊技中、再遊技確率変動遊技中、AT遊技中等)をセットする。次に、ステップ1208で、CPUC100は、第1ROM・RAM領域内のデータに基づき、メダル払出装置Hが遊技メダルで満杯ではないか否かを判定する。具体的には、メダル払出装置Hから溢れ出たメダルを格納するサブタンク(不図示)を備え、サブタンクに設けられた複数の満杯検知センサによる電流の導通/非導通にて判定する(メダルを介して電流が導通した場合には、満杯と判定する)。ステップ1208でYesの場合、ステップ1218に移行する。
他方、ステップ1208でNoの場合、ステップ1210で、CPUC100は、第1ROM・RAM領域内のデータに基づき、メダル満杯エラーフラグをオンにする(例えば、第1RAM領域のメダル満杯エラーフラグ領域内をオンに相当する値で更新する)。次に、ステップ1212で、CPUC100は、第1ROM・RAM領域内のデータに基づき、メダル満杯エラーに対応したエラー番号の表示を7セグLED(例えば、貯留表示LED又は獲得枚数LED)で実行する。次に、ステップ1214で、CPUC100は、第1ROM・RAM領域内のデータを参照して、メダル満杯エラーが解除されたか否か(例えば、サブタンクによる電流が非導通、且つ、設定/リセットボタンM30が押下されたか否か)を判定する。ステップ1214でYesの場合、ステップ1216で、CPUC100は、第1ROM・RAM領域内のデータに基づき、メダル満杯エラーフラグをオフにし(例えば、第1RAM領域のメダル満杯エラーフラグ領域内をオフに相当する値で更新し)、ステップ1218に移行する。他方、ステップ1214でNoの場合には、ステップ1212に移行する。次に、ステップ1218で、CPUC100は、第1ROM・RAM領域内のデータに基づき、メダル投入受付を許可し(再遊技の次ゲームにおいては自動にて投入動作が実行されることとなる)、次の処理(ステップ1220の処理)に移行する。ここで、ステップ1218では、ブロッカD100のオン処理(メダル流路が形成する処理)を行う。具体的には、前回遊技で再遊技役が成立した場合には、現在の貯留数(クレジット)が所定値(本例では、50枚)未満であることを条件として、ブロッカD100のオン処理を実行する。換言すると、現在の貯留数(クレジット)が所定値である場合には、ブロッカD100のオン処理を実行しない。一方、前回遊技で再遊技役が成立しなかった場合には、一律にブロッカD100のオン処理を実行するようにしている。このように構成することにより、再遊技が成立した場合であっても貯留数(クレジット)が所定値に達していない場合には、遊技メダルが投入できるように構成され、通常遊技状態よりも再遊技確率の高いRT状態に滞在しているときや、見た目では再遊技とは分かり辛い再遊技(小役に見せかけた再遊技:無効ライン上にベル−ベル−ベルや、左リールにチェリーが停止した図柄組合せ)が停止した場合であっても、遊技者はリズム良く(違和感なく)遊技を行うことができる。
<第1ROM・RAM領域における処理>
次に、図11は、図9におけるステップ1200のサブルーチンに係る、遊技進行制御処理(2枚目)のフローチャートである。まず、ステップ1220で、CPUC100は、第1ROM・RAM領域内のデータに基づき、遊技メダルがベットされていない、且つ、クレジットが存在していないか否かを判定する。ステップ1220でYesの場合、ステップ1221で、CPUC100は、第1ROM・RAM領域内のデータに基づき、設定表示条件を充足している(例えば、扉スイッチD80、設定扉スイッチM10、設定キースイッチM20がすべてオンとなると当該条件を充足する)か否かを判定する。ステップ1221でYesの場合、ステップ1222で、CPUC100は、第1ROM・RAM領域内のデータに基づき、設定表示LED(不図示だが、払出数表示装置D190、クレジット数表示装置D200、投入数表示灯D210としてもよい)に設定値を表示し、ステップ1221に移行する。ステップ1220又はステップ1221でNoの場合、ステップ1224で、CPUC100は、第1ROM・RAM領域内のデータに基づき、遊技メダルの投入及び精算に係る管理を実行する。次に、ステップ1225で、CPUC100は、第1ROM・RAM領域内のデータに基づき、遊技メダルの受付可能枚数を確認する。次に、ステップ1226で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ブロッカD100がオンか否かを判定する。ステップ1226でYesの場合、ステップ1227で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1投入センサD20s又は第2投入センサD30sがオンであるか否かを判定する(第1投入センサD20s又は第2投入センサD30sがオンとなると、遊技メダルを1枚受け付けたと判定する)。ステップ1227でYesの場合、ステップ1228で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域のメダル投入エラー検出処理を呼び出し、ステップ1400に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ1400で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、メダル投入エラー検出処理を実行する。次に、ステップ1229で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1ROM領域の呼び出し元に復帰し、ステップ1230に移行する。
<第1ROM・RAM領域における処理>
次に、ステップ1230で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1投入センサD20s及び第2投入センサD30sがオフであるか否かを判定する(第1投入センサD20s又は第2投入センサD30sがオンとなった後、第1投入センサD20s及び第2投入センサD30sがオフとなると、受け付けた1枚の遊技メダルが第1投入センサD20s及び第2投入センサD30sを通過したと判定する)。ステップ1230でYesの場合、ステップ1231で、CPUC100は、第1ROM・RAM領域内のデータに基づき、1枚の正常な遊技メダルの投入を受け付けたと判定する。不図示であるが、ステップ1231の後、CPUC100は、第1ROM・RAM領域内のデータに基づき、クレジットが上限数(本例では、50)、且つ、ベット数が最大数(本例では、3)ではないか否かを判定し、Yesと判定した場合にはブロッカD100をオフ(メダル流路を形成しない状態)に制御する。尚、ステップ1230でNoの場合には、ステップ1228に移行し、ステップ1226またはステップ1227でNoの場合には、ステップ1232に移行する。
次に、ステップ1232で、CPUC100は、第1ROM・RAM領域内のデータに基づき、精算ボタンD60の操作があったか否かを判定する。ステップ1232でYesの場合、ステップ1233で、CPUC100は、第1ROM・RAM領域内のデータに基づき、クレジットの残り枚数又はベットされている遊技メダルが存在するか否かを判定する。ステップ1233でYesの場合、ステップ1234で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ホッパ駆動フラグ(第1RAM領域内のフラグであり、ホッパモータH80を駆動している際にオンとするフラグ)をオンにし、遊技メダル1枚の払出を実行する。次に、ステップ1236で、CPUC100は、第1ROM・RAM領域内のデータを参照し、第1払出センサH10s又は第2払出センサH20sがオンであるか否かを判定する(第1払出センサH10s又は第2払出センサH20sがオンとなると、遊技メダル1枚の払出動作が行われていると判定する)。ステップ1236でYesの場合、ステップ1238で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域内のメダル払出エラー検出処理を呼び出し、ステップ1450に移行する。ここで、フローチャート上には明記してはいないが、前回遊技が再遊技役であった場合にはクレジットの残り枚数のみが精算の対象となる。
<第2ROM・RAM領域における処理>
次に、ステップ1450で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、メダル払出エラー検出処理を実行する。次に、ステップ1240で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1ROM領域内の呼び出し元に復帰し、ステップ1247に移行する。
<第1ROM・RAM領域における処理>
他方、ステップ1236でNoの場合、ステップ1241で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ホッパ駆動後(ステップ1234の処理のタイミング後)から所定時間(例えば、5秒)経過したか否かを判定する。具体的には、ホッパ駆動信号をホッパモータH80に送信している(ホッパモータH80が回転している)のにもかかわらず、メダルが払い出されていないと判定している状況が所定時間継続したか否かを判定する。ステップ1241でYesの場合、ステップ1242で、CPUC100は、第1ROM・RAM領域内のデータに基づき、メダル空エラーフラグをオンにする(例えば、第1RAM領域のメダル空エラーフラグ領域内をオンに相当する値で更新する)。次に、ステップ1244で、CPUC100は、第1ROM・RAM領域内のデータに基づき、メダル空エラー表示を実行する。次に、ステップ1245で、CPUC100は、第1ROM・RAM領域内のデータに基づき、メダル空エラーが解除されたか否か(例えば、設定/リセットボタンM30が押下されたか否か)を判定する。ステップ1245でYesの場合、ステップ1246で、CPUC100は、第1ROM・RAM領域内のフラグエリア内にある、メダル空エラーフラグをオフにし(例えば、第1RAM領域のメダル空エラーフラグ領域内をオフに相当する値で更新し)、ステップ1247に移行する。他方、ステップ1245でNoの場合、ステップ1244に移行する。
<第1ROM・RAM領域における処理>
次に、ステップ1247で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1払出センサH10s及び第2払出センサH20sがオフであるか否かを判定する(第1払出センサH10s又は第2払出センサH20sがオンとなった後、第1払出センサH10s及び第2払出センサH20sがオフとなると、払出動作が行われていた1枚の遊技メダルの払出動作が完了したと判定する)。ステップ1247でYesの場合、ステップ1248で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ホッパ駆動フラグをオフにし、ステップ1233に移行する。尚、ステップ1241又はステップ1247でNoの場合には、ステップ1236に移行する。
他方、ステップ1232又はステップ1233でNoの場合、ステップ1249で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域の投入・払出エラー検出処理を呼び出し、ステップ1500に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ1500で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、投入・払出エラー検出処理を実行する。次に、ステップ1250で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1ROM領域の呼び出し元に復帰し、ステップ1251に移行する。
<第1ROM・RAM領域における処理>
次に、ステップ1251で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタートレバーD50が有効であり(例えば、ゲームを開始するための規定枚数の遊技メダルが投入された等)、且つ、当該スタートレバーD50の操作があったか否かを判定する。ステップ1251でYesの場合、ステップ1252で、CPUC100は、第1ROM・RAM領域内のデータに基づき、乱数の取得、ブロッカD100をオフにする処理を実行した後に、第2ROM領域の設定値チェック処理を呼び出し、ステップ1253に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ1253で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域内の設定値は正常範囲内(本例では、1〜6)であるか否かを判定する。ステップ1253でYesの場合、ステップ1254で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1ROM領域の呼び出し元に復帰し、次の処理(ステップ1257の処理)に移行する。他方、ステップ1253でNoの場合、ステップ1256で、CPUC100は、第2ROM・RAM領域内のデータに基づき、設定値エラー表示をセットする(例えば、レジスタ領域内にエラー番号をセットする)。次に、ステップ1300で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、復帰不可能エラー処理を実行する。
<第1ROM・RAM領域における処理>
次に、図12は、図9におけるステップ1200のサブルーチンに係る、遊技進行制御処理(3枚目)のフローチャートである。まず、ステップ1257で、CPUC100は、第1ROM・RAM領域内のデータに基づき、内部抽選(当該ゲームにおいて入賞可能となる役を決定するための抽選)を開始する。次に、ステップ1258で、CPUC100は、第1ROM・RAM領域内のデータに基づき、全リール(リールM50)の回転を開始し、ステップ1260に移行する。次に、ステップ1260で、CPUC100は、第1ROM・RAM領域内のデータに基づき、引き込みポイント作成要求(回転している左リールM51、中リールM52、右リールM53の停止位置を決定するために要求され、停止順番や他のリールの停止位置に応じて適宜要求される)があったか否かを判定する。ステップ1260でYesの場合、ステップ1261で、CPUC100は、第1ROM・RAM領域内のデータに基づき、引き込みポイントを作成し、ステップ1262に移行する。他方、ステップ1260でNoの場合にも、ステップ1262に移行する。次に、ステップ1262で、CPUC100は、第1ROM・RAM領域内のデータに基づき、リール停止受付可否チェックを実行する。次に、ステップ1263で、CPUC100は、第1ROM・RAM領域内のデータに基づき、いずれかの停止ボタン(左停止ボタンD41、中停止ボタンD42、右停止ボタンD43)の操作があったか否かを判定する。ステップ1263でYesの場合、ステップ1264で、CPUC100は、第1ROM・RAM領域内のデータに基づき、操作があった停止ボタンに対応したリール(例えば、左停止ボタンD41には左リールM51が対応)の停止位置を決定し、ステップ1265に移行する。他方、ステップ1263でNoの場合にも、ステップ1265に移行する。次に、ステップ1265で、CPUC100は、第1ROM・RAM領域内のデータに基づき、全リール停止チェック処理を実行する。次に、ステップ1266で、CPUC100は、第1ROM・RAM領域内のデータに基づき、すべてのリール(左リールM51、中リールM52、右リールM53)が停止したか否かを判定する。ステップ1266でYesの場合、ステップ1267で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域の表示判定チェック処理を呼び出し、ステップ1268に移行する。尚、ステップ1266でNoの場合、ステップ1260に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ1268で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM内の図柄停止位置データと、内部成立役停止可能位置データとを比較する。次に、ステップ1269で、CPUC100は、第2ROM・RAM領域内のデータを参照し、表示された図柄の組み合わせが正常であるか否かを判定する(内部抽選によって決定された入賞可能となる役と一致していなければ異常であると判定される)。ステップ1269でYesの場合、ステップ1500で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、投入・払出エラー検出処理を実行する。次に、ステップ1270で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1ROM領域の呼び出し元に復帰し、ステップ1274に移行する。他方、ステップ1269でNoの場合、ステップ1272で、CPUC100は、第2ROM・RAM領域内のデータに基づき、表示判定エラー表示をセットする(例えば、レジスタ領域内にセットする)。次に、ステップ1300で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、復帰不可能エラー処理を実行する。
<第1ROM・RAM領域における処理>
次に、ステップ1274で、CPUC100は、第1ROM・RAM領域内のデータに基づき、入賞による遊技メダルの払出処理を実行する。次に、ステップ1275で、CPUC100は、第1ROM・RAM領域内のデータに基づき、遊技メダルを払い出す入賞があったか否かを判定する{入賞によって獲得した遊技メダルが、クレジットの最大数(本例では、50)を超過した場合に、遊技メダルの払出が実行される}。ステップ1275でYesの場合、ステップ1276で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ホッパ駆動フラグ(第1RAM領域内のフラグであり、ホッパモータH80を駆動している際にオンとするフラグ)をオンにし、遊技メダル1枚の払出を実行する。次に、ステップ1277で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1払出センサH10s又は第2払出センサH20sがオンであるか否かを判定する(第1払出センサH10s又は第2払出センサH20sがオンとなると、遊技メダル1枚の払出動作が行われていると判定する)。ステップ1277でYesの場合、ステップ1278で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域内のメダル払出エラー検出処理を呼び出し、ステップ1450に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ1450で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、メダル払出エラー検出処理を実行する。次に、ステップ1284で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1ROM領域内に呼び出し元に復帰し、ステップ1286に移行する。
<第1ROM・RAM領域における処理>
他方、ステップ1277でNoの場合、ステップ1279で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ホッパ駆動後(ステップ1276の処理のタイミング後)から所定時間(例えば、5秒)経過したか否かを判定する。ステップ1279でYesの場合、ステップ1280で、CPUC100は、第1ROM・RAM領域内のデータに基づき、メダル空エラーフラグをオンにする(例えば、第1RAM領域のメダル空エラーフラグ領域内をオンに相当する値で更新する)。次に、ステップ1281で、CPUC100は、第1ROM・RAM領域内のデータに基づき、メダル空エラー表示を7セグLEDで実行する。次に、ステップ1282で、CPUC100は、第1ROM・RAM領域内のデータに基づき、メダル空エラーが解除されたか否か(例えば、設定/リセットボタンM30が押下されたか否か)を判定する。ステップ1282でYesの場合、ステップ1283で、CPUC100は、第1ROM・RAM領域内のデータに基づき、メダル空エラーフラグをオフにし(例えば、第1RAM領域のメダル空エラーフラグ領域内をオフに相当する値で更新し)、ステップ1286に移行する。他方、ステップ1282でNoの場合、ステップ1281に移行する。
<第1ROM・RAM領域における処理>
次に、ステップ1286で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1払出センサH10s及び第2払出センサH20sがオフであるか否かを判定する(第1払出センサH10s又は第2払出センサH20sがオンとなった後、第1払出センサH10s及び第2払出センサH20sがオフとなると、払出動作が行われていた1枚の遊技メダルの払出動作が完了したと判定する)。ステップ1286でYesの場合、ステップ1288で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ホッパ駆動フラグをオフにし、ステップ1290に移行する。尚、ステップ1279又はステップ1286でNoの場合には、ステップ1277に移行する。次に、ステップ1290で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該入賞(ステップ1275でYesとなった入賞)に対応した払出が完了したか否かを判定する。ステップ1290でYesの場合、ステップ1292で、CPUC100は、第1ROM・RAM領域内のデータに基づき、遊技終了処理(例えば、ベット数のクリア、遊技状態の移行処理等)を実行し、次の処理(ステップ1202の処理)に移行する。尚、ステップ1286でNoの場合には、ステップ1277に移行し、ステップ1275でNoの場合には、ステップ1292に移行する。
<第1ROM・RAM領域における処理>
次に、図13は、図8におけるステップ1300の(及び他のフローチャートにおいて呼び出された)サブルーチンに係る、復帰不可能エラー処理のフローチャートである。まず、ステップ1302で、CPUC100は、第1ROM・RAM領域内のデータに基づき、割り込みを禁止する(以降は、後述するタイマ割り込み時処理に係るフローチャートが実行されない)。次に、ステップ1304で、CPUC100は、第1ROM・RAM領域内のデータに基づき、出力ポートアドレス及び出力ポート数をセットする。次に、ステップ1306で、CPUC100は、第1ROM・RAM領域内のデータに基づき、出力ポート(本例では、0〜6であり、各種LEDへの表示出力や各種モータへの駆動出力)をオフにする。次に、ステップ1308で、CPUC100は、第1ROM・RAM領域内のデータに基づき、次のポート出力アドレスをセットする(この繰り返しにより、各種LEDへの表示出力や各種モータへの駆動出力が順次停止される)。次に、ステップ1310で、CPUC100は、第1ROM・RAM領域内のデータに基づき、各出力ポートへの出力が終了したか否かを判定する。ステップ1310でYesの場合には、ステップ1312で、CPUC100は、第1ROM・RAM領域内のデータに基づき、セットされているエラー表示を実行し(本処理を実行する際には何らかのエラーが発生している)、当該処理の実行を繰り返し、電源電圧が低下することでリセット信号が入力されて終了する。(即ち、無限ループに突入するので、復帰を促す一切の操作を受け付けない)。尚、ステップ1310でNoの場合には、ステップ1306に移行する。尚、ステップ1306〜ステップ1310の処理は、LED・モータへの出力をクリアする処理である(但し、外部出力信号はクリアしないので、エラーに関する情報やエラー発生時における遊技進行状況等をホールコンピュータ側へ出力することは可能である)。
<第2ROM・RAM領域における処理>
次に、図14は、図11におけるステップ1400のサブルーチンに係る、メダル投入エラー検出処理のフローチャートである。まず、ステップ1402で、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入メダル逆流エラーフラグ(ステップ1706でオンとなるフラグであり、本実施形態においては、第2RAM領域内のフラグ)がオンであるか否かを判定する。ステップ1402でYesの場合、ステップ1404で、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入メダル逆流エラー(投入された遊技メダルが逆流したことによるエラーであり、例えば、第1投入センサD20sオフ且つ第2投入センサD30sオン→第1投入センサD20sオン且つ第2投入センサD30sオンとなった場合にエラーとなる)表示を実行する。次に、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入メダルエラー逆流エラーが解除されたか否か(例えば、設定/リセットボタンM30が押下されたか否か)を判定する。ステップ1406でYesの場合、ステップ1408で、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入メダル逆流エラーフラグをオフにし、次の処理(ステップ1229の処理)に移行する。
他方、ステップ1402でNoの場合、ステップ1410で、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入メダル滞留エラーフラグ(ステップ1710でオンとなるフラグであり、本実施形態においては、第2RAM領域内のフラグ)がオンであるか否かを判定する。ステップ1410でYesの場合、ステップ1412で、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入メダル滞留エラー(投入された遊技メダルが滞留したことによるエラーであり、例えば、第1投入センサD20sオン且つ第2投入センサD30sオンである状態が所定時間継続した場合にエラーとなる)表示を実行する。次に、ステップ1414で、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入メダル滞留エラーが解除されたか否か(例えば、設定/リセットボタンM30が押下されたか否か)を判定する。ステップ1414でYesの場合、ステップ1416で、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入メダル滞留エラーフラグをオフにし、次の処理(ステップ1229の処理)に移行する。
他方、ステップ1410でNoの場合、ステップ1418で、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入枚数エラーフラグ(ステップ1716でオンとなるフラグであり、本実施形態においては、第2RAM領域内のフラグ)がオンであるか否かを判定する。ステップ1418でYesの場合、ステップ1420で、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入枚数エラー(投入された遊技メダルの枚数と正常通過した遊技メダルの枚数とが一致しないことによるエラーであり、例えば、投入受付センサD10sが検知した遊技メダルの枚数と第2投入センサD30sが検知した遊技メダルの枚数とが一致しない場合又は所定の許容範囲外となった場合にエラーとなる)表示を実行する。次に、ステップ1422で、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入枚数エラーが解除されたか否か(例えば、設定/リセットボタンM30が押下されたか否か)を判定する。ステップ1422でYesの場合、ステップ1424で、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入枚数エラーフラグをオフにし、次の処理(ステップ1229の処理)に移行する。
<第2ROM・RAM領域における処理>
次に、図15は、図11及び図12におけるステップ1450のサブルーチンに係る、メダル払出エラー検出処理のフローチャートである。まず、ステップ1452で、CPUC100は、第2ROM・RAM領域内のデータに基づき、払出メダル滞留エラーフラグ(ステップ1756でオンとなるフラグであり、本実施形態においては、第2RAM領域内のフラグ)がオンであるか否かを判定する。ステップ1452でYesの場合、ステップ1456で、CPUC100は、第2ROM・RAM領域内のデータに基づき、払出メダル滞留エラー(払い出された遊技メダルが滞留したことによるエラーであり、例えば、第1払出センサH10sオン且つ第2払出センサH20sオンである状態が所定時間継続した場合にエラーとなる)表示を実行する。次に、ステップ1458で、CPUC100は、第2ROM・RAM領域内のデータに基づき、払出メダル滞留エラーが解除されたか否か(例えば、設定/リセットボタンM30が押下されたか否か)を判定する。ステップ1458でYesの場合、ステップ1460で、CPUC100は、第2ROM・RAM領域内のデータに基づき、払出メダル滞留エラーフラグをオフにし、次の処理(ステップ1240又はステップ1284の処理)に移行する。
<第2ROM・RAM領域における処理>
次に、図16は、図11及び図12におけるステップ1500のサブルーチンに係る、投入・払出エラー検出処理のフローチャートである。まず、ステップ1502で、CPUC100は、第2ROM・RAM領域内のデータに基づき、異常投入エラーフラグ(ステップ1806でオンとなるフラグであり、本実施形態においては、第2RAM領域内のフラグ)がオンであるか否かを判定する。ステップ1502でYesの場合、ステップ1504で、CPUC100は、第2ROM・RAM領域内のデータに基づき、異常投入エラー(遊技メダルが投入されないはずのタイミングにて遊技メダルの投入を検出したことによるエラー)表示を実行する。次に、ステップ1506で、CPUC100は、第2ROM・RAM領域内のデータに基づき、異常投入エラーが解除されたか否か(例えば、設定/リセットボタンM30が押下されたか否か)を判定する。ステップ1506でYesの場合、ステップ1508で、CPUC100は、第2ROM・RAM領域内のデータに基づき、異常投入エラーフラグをオフにし、ステップ1510に移行する。尚、ステップ1502でNoの場合にも、ステップ1510に移行する。
次に、ステップ1510で、CPUC100は、第2ROM・RAM領域内のデータに基づき、異常払出エラーフラグ(ステップ1816でオンとなるフラグであり、本実施形態においては、第2RAM領域内のフラグ)がオンであるか否かを判定する。ステップ1510でYesの場合、ステップ1514で、CPUC100は、第2ROM・RAM領域内のデータに基づき、異常払出エラー(遊技メダルが払い出されないはずのタイミングにて遊技メダルの払出を検出したことによるエラー)表示を実行する。次に、ステップ1516で、CPUC100は、第2ROM・RAM領域内のデータに基づき、異常払出エラーが解除されたか否か(例えば、設定/リセットボタンM30が押下されたか否か)を判定する。ステップ1516でYesの場合、ステップ1518で、CPUC100は、第2ROM・RAM領域内のデータに基づき、異常払出エラーフラグをオフにし、次の処理(ステップ1250又はステップ1270の処理)に移行する。尚、ステップ1510でNoの場合にも、次の処理(ステップ1250又はステップ1270の処理)に移行する。
次に、図17は、本実施形態におけるステップ1600のサブルーチンに係る、タイマ割り込み時処理のフローチャートである。当該サブルーチンの処理は、ステップ1054又はステップ1118の処理にて、タイマ割り込みが開始された場合に実行開始され、以降、所定時間(本例では、Tとしているが、例えば、2ms程度の時間が設定される)を周期として定期的に実行されるよう構成されている。
<第1ROM・RAM領域における処理>
まず、ステップ1602で、CPUC100は、第1ROM・RAM領域内のデータに基づき、割り込み開始時の処理(例えば、CPUC100内のレジスタで保持されているデータの退避、電源断検知信号の入力ポートチェック等)を実行する。次に、ステップ1604で、CPUC100は、第1ROM・RAM領域内のデータに基づき、現在(今回の割り込み処理にて)電源断を検知していないか否かを判定する。ステップ1604でNoの場合、ステップ1900で、CPUC100は、第1ROM・RAM領域内のデータに基づき、後述する、電源断時処理を実行する。他方、ステップ1604でYesの場合、ステップ1606で、CPUC100は、第1ROM・RAM領域内のデータに基づき、タイマ計測(ソフトウエアで管理する各種タイマの更新処理)を開始する。次に、ステップ1608で、CPUC100は、第1ROM・RAM領域内のデータに基づき、入力ポートデータを生成して、当該データを記憶する(第1RAM領域内の各入力ポートデータの格納領域を更新する)。ここで、入力ポートデータとは、精算ボタンD60、スタートレバーD50、停止ボタンD40、扉スイッチD80、設定扉スイッチM10、設定キースイッチM20、設定/リセットボタンM30、電源断検知信号、投入受付センサD10s、第1投入センサD20s、第2投入センサD30s、第1払出センサH10s、第2払出センサH20s、等の検出に係る情報である(即ち、これらの操作部材での操作有無やセンサ検知状態が、割り込み間隔Tでサンプリングされる)。
次に、ステップ1610で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1RAM領域内の入力ポートデータを参照し、各入力ポートデータのサンプリング結果に応じて、扉スイッチフラグ、設定扉スイッチフラグ、設定キースイッチフラグのオン・オフを切り替える(例えば、扉スイッチD80のスイッチ状態が複数回のサンプリングに亘って連続してオンである場合に、扉スイッチフラグをオンとすることで、ノイズの影響を受けることなく前扉DUが開状態であることを検出することもできる)。次に、ステップ1612で、CPUC100は、第1ROM・RAM領域内のデータに基づき、全リール(左リールM51、中リールM52、右リールM53)の回胴駆動制御処理(リールM50の駆動の制御に係る処理)を実行する。次に、ステップ1614で、CPUC100は、第1ROM・RAM領域内のデータに基づき、出力データを出力ポートに出力する。ここで、出力データとは、リールM50、ブロッカD100、等を駆動するためのデータである。ステップ1616で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域のエラーチェック処理を呼び出し、ステップ1700に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ1700で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、メダル投入チェック処理を実行する。次に、ステップ1750で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、メダル払出チェックを実行する。次に、ステップ1800で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、投入・払出エラーチェック処理を実行する。次に、ステップ1618で、CPUC100は、第2ROM・RAM領域内のデータに基づき、すべてのエラーフラグがオフ(投入メダル逆流フラグ、投入枚数エラーフラグ、メダル滞留エラーフラグ、投入異常エラーフラグ、払出異常エラーフラグ、払出メダル滞留エラーフラグ、扉スイッチフラグ、等のエラーに係るフラグが全てオフ)であるか否かを判定する(但し、本実施形態では、扉スイッチフラグに関しては、第1RAM領域内で格納されているため、第1RAM領域を参照して判定する)。ステップ1618でYesの場合、ステップ1620で、CPUC100は、第2ROM・RAM領域内のデータに基づき、エラー未検出コマンド(サブ側へのコマンドであり、エラーが検出されていない旨に係るコマンド)をセットし(例えば、レジスタ領域内にセットし)、ステップ1624に移行する。他方、ステップ1618でNoの場合、ステップ1622で、CPUC100は、第2ROM・RAM領域内のデータに基づき、エラー検出コマンド(サブ側へのコマンドであり、エラーが検出されている旨に係るコマンド)をセットし(例えば、レジスタ領域内にセットし)、ステップ1624に移行する。尚、ステップ1622においては、オンとなっているエラーフラグに対応したエラー(現在発生しているエラー)に係る情報がサブ側に送信されるよう構成されている。また、エラー未検出コマンドはエラーが発生していた状態からエラーが解除された場合にのみ(フラグがオフになったと判定された場合にのみ)セットしても良いし、エラー未検出のときには当該情報のセット処理を実行しなくても良い(S1620が無くても良い)。更に、エラー検出コマンドはエラーが発生していない状態からエラーが発生した場合にのみセット処理を実行しても良いし、第1のエラー(例えば、投入メダル滞留エラー)が発生している状態から第2のエラー(例えば、払出メダル滞留エラー)のようにエラーの種類が変わった場合にセット処理を実行しても良い。次に、ステップ1624で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1ROM領域の呼び出し元に復帰し、ステップ1626に移行する。
<第1ROM・RAM領域における処理>
次に、ステップ1626で、CPUC100は、第1ROM・RAM領域内のデータに基づき、制御コマンド(サブ側のコマンド)を送信する(例えば、ステップ1620やステップ1622でレジスタ領域内にセットされている場合には、そのセットされた制御コマンドを引き継ぐこととなる)。次に、ステップ1628で、CPUC100は、第1ROM・RAM領域内のデータに基づき、外部信号(回胴式遊技機Pから外部のホールコンピュータ等へ情報伝達するための信号)を出力する。尚、当該外部信号にて出力されるエラーに係る情報としては、ドア開放エラー、投入異常エラー、払出異常エラー、設定扉開放エラー(不図示)、投入受付センサ滞留エラー(不図示)、等が出力される。尚、ドア開放エラーは、前扉DUが開放されドアスイッチフラグがオンとなった場合にエラーとなるよう構成されており、設定扉開放エラーは設定扉が開放され設定扉スイッチフラグがオンとなった場合にエラーとなるよう構成されており、投入受付センサ滞留エラーは投入受付センサが遊技メダルの滞留を検出した場合にエラーとなるよう構成されている。次に、ステップ1630で、CPUC100は、第1ROM・RAM領域内のデータに基づき、LED(7セグLEDランプ、等)の出力データ(例えば、複数の7セグLEDユニットのうち、所定の7セグLEDユニットを点灯させ、7セグの所定のセグメントを点灯させる)を出力する(所謂、ダイナミック点灯)。次に、ステップ1632で、CPUC100は、第1ROM・RAM領域内のデータに基づき、LEDの点灯態様(例えば、LEDの点灯色を変更)を実行する。尚、ステップ1632は実行されなくても良い。次に、ステップ1634で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ソフト乱数管理処理(ソフトウエアで管理する乱数値の更新処理等)を実行する。次に、ステップ1636で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域の乱数チェック処理を呼び出し、ステップ1638に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ1638で、CPUC100は、第2ROM・RAM領域内のデータに基づき、内部情報レジスタデータを取得する(内部情報レジスタには、乱数発生回路に異常が出ると異常フラグ用ビットが立つ領域が存在している)。次に、ステップ1640で、CPUC100は、第2ROM・RAM領域内のデータに基づき、乱数更新用クロックの周波数は正常であるか否か(当該周波数異常を示す異常フラグ用ビットが立っていないか否か)を判定する。具体的には、乱数更新用クロックの周波数が所定値を下回った場合に異常用フラグビットが立つ。ステップ1640でYesの場合、ステップ1642で、CPUC100は、第2ROM・RAM領域内のデータに基づき、内蔵乱数の更新状態は正常であるか否か(当該更新状態異常を示す異常フラグ用ビットが立っていないか否か)を判定する。ステップ1642でYesの場合、ステップ1644で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1ROM領域の呼び出し元に復帰する。他方、ステップ1640又はステップ1642でNoの場合には、ステップ1646で、CPUC100は、第2ROM・RAM領域内のデータに基づき、内蔵乱数エラー表示をセットする(例えば、レジスタ領域内にエラー番号をセットする)。次に、ステップ1300で、CPUC100は、第2ROM・RAM領域内のデータに基づき、前述した、復帰不可能エラー処理を実行する。
<第1ROM・RAM領域における処理>
次に、ステップ1648で、CPUC100は、第1ROM・RAM領域内のデータに基づき、割り込み終了処理を実行し、次の処理(ステップ1602の処理)に移行する。
<第2ROM・RAM領域における処理>
次に、図18は、図17におけるステップ1700のサブルーチンに係る、メダル投入チェック処理のフローチャートである。まず、ステップ1702で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1投入センサD20sがオンであるか否か(検出しているか否か)を判定する(但し、第1投入センサD20sの入力ポートデータ自体が、第1RAM領域内で格納されている場合には、第1RAM領域を参照して判定する)。ステップ1702でYesの場合、ステップ1704で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1投入センサD20s及び第2投入センサD30sが、投入された遊技メダルの逆流を検知している(例えば、第1投入センサD20sオフ、且つ、第2投入センサD30sオン→第1投入センサD20sオン、且つ、第2投入センサD30sオンとなった場合に検知するものであり、この検知状態の時系列データ自体は第2RAM領域内で保持されている)か否かを判定する。ステップ1704でYesの場合、ステップ1706で、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入メダル逆流エラーフラグをオンにし(例えば、第2RAM領域の投入メダル逆流エラーフラグ領域内をオンに相当する値で更新し)、ステップ1708に移行する。他方、ステップ1704でNoの場合にも、ステップ1708に移行する。
次に、ステップ1708で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1投入センサD20s及び第2投入センサD30sが、投入されたメダルの滞留を検出している(例えば、第1投入センサD20sオンである状態が所定時間継続した場合、又は第2投入センサD30sオンである状態が所定時間継続した場合に検知するものであり、この検知状態のデータ自体は第2RAM領域内で保持されている)か否かを判定する。ステップ1708でYesの場合、ステップ1710で、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入メダル滞留エラーフラグをオンにし(例えば、第2RAM領域の投入メダル滞留エラーフラグ領域内をオンに相当する値で更新し)、ステップ1712に移行する。他方、ステップ1708でNoの場合にも、ステップ1712に移行する。次に、ステップ1712で、CPUC100は、第2ROM・RAM領域内のデータに基づき、受付メダル枚数(遊技メダルの投入を受け付けた枚数)から正常通過枚数(正常に投入されたとみなされた遊技メダルの枚数)を減算した値が所定範囲内(例えば、0〜2枚)でないか否かを判定する。ステップ1712でYesの場合、ステップ1716で、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入枚数エラーフラグをオンにし(例えば、第2RAM領域の投入枚数エラーフラグ領域内をオンに相当する値で更新し)、次の処理(ステップ1750の処理)に移行する。尚、ステップ1712でNoの場合にも、次の処理(ステップ1750の処理)に移行する。尚、所定時間(例えば、5秒)の投入枚数エラー監視期間を設けて、当該監視期間中に、受付メダル枚数から正常通過枚数を減算した値が所定範囲内(例えば、0〜2枚)ではなくなった場合に投入枚数エラーとなるよう構成してもよい。
<第2ROM・RAM領域における処理>
次に、図19は、図17におけるステップ1750のサブルーチンに係る、メダル払出チェック処理のフローチャートである。まず、ステップ1752で、CPUC100は、第2ROM・RAM領域内のデータに基づき、ホッパ駆動フラグがオンであるか否か(検出しているか否か)を判定する(但し、ホッパ駆動フラグ自体が、第1RAM領域内で格納されている場合には、第1RAM領域を参照して判定する)。ステップ1752でYesの場合、ステップ1754で、CPUC100は、第2ROM・RAM領域内のデータに基づき、払い出されたメダルの滞留を検出(例えば、第1払出センサH10sオンである状態が所定時間継続した場合、且つ、第2払出センサH20sオンである状態が所定時間継続した場合に検知するものであり、この検知状態のデータ自体は第2RAM領域内で保持されている)しているか否かを判定する。ステップ1754でYesの場合、ステップ1756で、CPUC100は、第2ROM・RAM領域内のデータに基づき、払出メダル滞留エラーフラグをオンにし(例えば、第2RAM領域の払出メダル滞留エラーフラグ領域内をオンに相当する値で更新し)、次の処理(ステップ1800の処理)に移行する。尚、ステップ1752又はステップ1754でNoの場合も、次の処理(ステップ1800の処理)に移行する。
<第2ROM・RAM領域における処理>
次に、図20は、図17におけるステップ1800のサブルーチンに係る、投入・払出エラーチェック処理のフローチャートである。まず、ステップ1802で、CPUC100は、第2ROM・RAM領域内のデータに基づき、ブロッカD100がオフであるか否かを判定する(但し、ブロッカD100の出力ポートデータ自体が、第1RAM領域内で格納されている場合には、第1RAM領域を参照して判定する)。ステップ1802でYesの場合、ステップ1804で、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入センサの異常検出(第1投入センサD20s又は第2投入センサD30sが遊技メダルの検出をしないはずのタイミングにおける検出)があるか否かを判定する。ステップ1804でYesの場合、ステップ1806で、CPUC100は、第2ROM・RAM領域内のデータに基づき、異常投入エラーフラグをオンにし(例えば、第2RAM領域の異常投入エラーフラグ領域内をオンに相当する値で更新し)、ステップ1808に移行する。尚、ステップ1802又はステップ1804でNoの場合にも、ステップ1808に移行する。
次に、ステップ1808で、CPUC100は、第2ROM・RAM領域内のデータに基づき、ホッパ駆動フラグがオフであるか否かを判定する(但し、ホッパ駆動フラグ自体が、第1RAM領域内で格納されている場合には、第1RAM領域を参照して判定する)。ステップ1808でYesの場合、ステップ1810で、CPUC100は、第2ROM・RAM領域内のデータに基づき、払出センサの異常検出(第1払出センサH10s又は第2払出センサH20sが遊技メダルの検出をしないはずのタイミングにおける検出)があるか否かを判定する。ステップ1810でYesの場合、ステップ1812で、CPUC100は、第2ROM・RAM領域内のデータに基づき、異常払出エラーフラグをオンにし(例えば、第2RAM領域の異常払出エラーフラグ領域内をオンに相当する値で更新し)、次の処理(ステップ1618の処理)に移行する。尚、ステップ1808又はステップ181でNoの場合にも、次の処理(ステップ1618の処理)に移行する。
<第1ROM・RAM領域における処理>
次に、図21は、図17におけるステップ1900のサブルーチンに係る、電源断時処理のフローチャートである。まず、ステップ1902で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタックポインタを保存する。次に、ステップ1904で、CPUC100は、第1ROM・RAM領域内のデータに基づき、電源断処理済みフラグをオンにする(例えば、第1RAM領域の電源断処理済みフラグ領域内をオンに相当する値で更新する)。次に、ステップ1906で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域のチェックサム算出処理を呼び出し、ステップ1908に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ1908で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域の先頭アドレスからチェックサム領域直前アドレスまでのチェックサムを算出し、当該算出したチェックサムに基づく誤り検出用情報(例えば、当該算出したチェックサムにおける下位1バイト、或いは、その補数となるもの)をチェックサム領域にてセットする(チェックサム領域に係るアドレスは同図下段の「RAMに係るメモリマップ」を参照)。次に、ステップ1910で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1ROM領域の呼び出し元に復帰し、ステップ1912に移行する。
<第1ROM・RAM領域における処理>
次に、ステップ1912で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1RAM・第2RAMの書き込みを禁止し、ステップ1914に移行する。次に、ステップ1914で、CPUC100は、第1ROM・RAM領域内のデータに基づき、リセットを待機するための無限ループ処理を実行する。
以上のように構成することで、本実施形態に係る回胴式遊技機によれば、第2ROM領域にて配置されているプログラムコードに基づくCPUC100の処理にて、第1RAM領域(又は、レジスタ領域)を更新及び参照可能に構成し、エラー検出、エラー表示等の遊技機に対して不正行為がなされる(例えば、遊技媒体の投入口や払出口に対して不正にアクセスして遊技媒体を不正な手段で得る、等)ことを防御するための不正行為防止用のプログラムを第2ROM・RAM領域における処理にて実行し得るよう構成することで、遊技の進行に係る処理と領域を明確に分けることができ、当該不正行為防止用のプログラムの正当性を検証することが容易となる。
(第2実施形態)
尚、本実施形態においては、エラー表示処理等も不正行為防止用のプログラムとして見做し、第2ROM領域にて配置されているプログラムコードとして実装するための一例を示したが、エラー表示処理等は遊技進行を制御する上でも必要不可欠な処理であるため、不正行為防止用のプログラムではなく遊技性仕様を実装するためのプログラムとして見做した方が、人為的な検証が容易になる可能性がある。そこで、このような事情に鑑み、本実施形態で示した一例をベースとし、遊技性仕様を実装するためのプログラムとして見做した方が好適となり得る処理を、第1ROM領域にて配置されているプログラムコードとして実装するための一例を第2実施形態とし、以下、本実施形態からの変更点について詳述していく。
<第1ROM・RAM領域における処理>
はじめに、図22は、第2実施形態に係る回胴式遊技機Pの電源を投入した後(或いはシステムリセットやユーザリセット時において)、主制御基板MのCPUC100にて初めて実行される処理の流れを示したフローチャート(1枚目)である。本実施形態との相違点は、ステップ1005‐1(第2)、ステップ1005‐2(第2)、ステップ1009‐1(第2)、ステップ1009‐2(第2)、ステップ1017(第2)、ステップ1019‐1(第2)〜ステップ1019‐3(第2)、ステップ1021‐1(第2)、ステップ1021‐2(第2)、ステップ1027(第2)、ステップ1029(第2)、ステップ1035‐1(第2)及びステップ1035‐2(第2)であり、即ち、ステップ1004で、チップの機能設定を実行した後、ステップ1005‐1(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1RAM領域の先頭アドレスから第1チェックサム領域直前アドレスまでのチェックサムを算出する。ここで、同図右(RAMに係るメモリマップ)に示されるように、第2実施形態においては、第1RAM領域のチェックサム領域(第1チェックサム領域)と第2RAM領域のチェックサム領域(第2チェックサム領域)とが別々になっており、後述する第2実施形態における電源断時処理にて、第1RAM領域のチェックサム算出と第2RAM領域のチェックサム算出とが別々に行われ、夫々の算出結果に基づく誤り検出用情報が夫々の領域に格納される。次に、ステップ1005‐2で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1RAMをチェックし、第1RAM電源断復帰データ(第1RAMに係る電源断復帰データ)を生成し、ステップ1006に移行する。よって、ここでの「第1RAMをチェック」とは、第1RAM領域を対象としたチェックサムと、第1チェックサム領域に保持されている誤り検出用情報とに基づき、電源断・電源断復帰により内蔵RAMC120に格納されているデータが正しく保持されているか否かをチェックする処理となる。
<第2ROM・RAM領域における処理>
他方、ステップ1006で電源断復帰処理を呼び出した後、ステップ1009‐1(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAM領域の先頭アドレスから、第2チェックサム領域を除く最終アドレスまでのチェックサムを算出する。次に、ステップ1009‐2(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAMをチェックし、第2RAM電源断復帰データ(第1RAMに係る電源断復帰データ)を生成し、ステップ1012に移行する。即ち、ここでの「第2RAMをチェック」とは、第2RAM領域を対象としたチェックサムと、第2チェックサム領域に保持されている誤り検出用情報とに基づき、電源断・電源断復帰により内蔵RAMC120に格納されているデータが正しく保持されているか否かをチェックする処理となる。
<第1ROM・RAM領域における処理>
また、ステップ1016ですべてのスイッチがオンであった場合、ステップ1017(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、設定変更操作ありフラグをオンにし(例えば、第1RAM領域の設定変更操作ありフラグ領域内をオンに相当する値で更新し)、ステップ1018に移行する。
<第2ROM・RAM領域における処理>
また、ステップ1018で非設定変更時初期化処理を呼び出した後、ステップ1019‐1(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域内の設定操作ありフラグがオフであるか否かを判定する。ステップ1019‐1(第2)でYesの場合、ステップ1019‐2(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域内の電源断復帰データは正常であるか否か(特に、第1RAM領域を対象とした誤り検出結果が正常であるか否か)を判定する。ステップ1019‐2(第2)でYesの場合、ステップ1019‐3(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAM領域内の電源断復帰データは正常であるか否か(特に、第2RAM領域を対象とした誤り検出結果が正常であるか否か)を判定する。ステップ1019‐3(第2)でYesの場合、ステップ1028で、第1RAM領域及び第2RAM領域の初期化範囲を未使用RAM範囲に決定してセットし、ステップ1027(第2)で、第2RAM領域内の電源断異常フラグをオフにし、ステップ1036に移行する。他方、ステップ1019‐2(第2)又はステップ1019‐3(第2)でNoの場合、ステップ1029(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAM領域内の電源断異常フラグをオンにし、ステップ1036に移行する。
他方、ステップ1019‐1(第2)でNoの場合、ステップ1021‐1(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域内の電源断復帰データは正常であるか否か(特に、第1RAM領域を対象とした誤り検出結果が正常であるか否か)を判定する。ステップ1021‐1(第2)でYesの場合、ステップ1021‐2(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAM領域内の電源断復帰データは正常であるか否か(特に、第2RAM領域を対象とした誤り検出結果が正常であるか否か)を判定する。ステップ1021‐2(第2)でYesの場合、ステップ1032で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域及び第2RAM領域の初期化範囲を第1RAM領域内の設定値を除くすべての範囲に決定してセットし、ステップ1035‐1(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAM領域内の電源断異常フラグをオフにし、ステップ1036に移行する。他方、ステップ1021‐1(第2)又はステップ1021‐2(第2)でNoの場合、ステップ1034で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域及び第2RAM領域の初期化範囲をすべての範囲に決定してセットし、ステップ1035‐2(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAM領域内の電源断異常フラグをオンにし、ステップ1036に移行する。
<第1ROM・RAM領域における処理>
次に、図23は、第2実施形態に係る回胴式遊技機Pの電源を投入した後(或いはシステムリセットやユーザリセット時において)、主制御基板MのCPUC100にて初めて実行される処理の流れを示したフローチャート(2枚目)である。本実施形態との相違点は、ステップ1039‐1(第2)、ステップ1039‐2(第2)、ステップ1026(第2)、ステップ1300(第2)、ステップ1045(第2)、ステップ1046(第2)及びステップ1047(第2)であり、即ち、ステップ1039‐1(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1RAM領域内の設定操作ありフラグがオフであるか否かを判定する。ステップ1039‐1(第2)でYesの場合、ステップ1039‐2(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2RAM領域内の電源断異常フラグがオフであるか否かを判定する。ステップ1039‐2(第2)でYesの場合又はステップ1039‐1(第2)でNoの場合には、ステップ1040に移行し(即ち、設定変更装置を作動させる場合か、設定変更装置を作動させない場合において第1RAM領域及び第2RAM領域を対象とした別個の誤り検出結果が正常であることを含め、正常に電断復帰している場合には以降の処理を続行し)、ステップ1039‐2(第2)でNoの場合、ステップ1026(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、バックアップエラー表示をセットする(例えば、レジスタ領域内にエラー番号をセットする)。次に、ステップ1300(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、後述する、復帰不可能エラー処理をセットする(即ち、設定変更装置を作動させない場合において第1RAM領域及び第2RAM領域を対象とした別個の誤り検出結果が異常であることを含め、正常に電断復帰していない場合には復帰不可能な状態へと移行する)。ここで、本例においては、設定変更装置を作動させない場合において第1RAM領域及び第2RAM領域を対象とした別個の誤り検出結果がいずれも正常である場合において以降の処理を続行するよう構成されているが、これには限定されず、例えば、第1RAM領域を対象とした誤り検出結果が正常であれば、第2RAM領域を対象とした誤り検出結果が異常であっても(第2RAM領域の全領域を初期化した上で)以降の処理を続行するよう構成してもよい。
<第2ROM・RAM領域における処理>
また、ステップ1044で、第1RAM領域内の設定値が正常範囲内であった場合、ステップ1045(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAM領域内の設定値異常フラグをオフにし、第1ROM領域の呼び出し元に復帰し、ステップ1047(第2)に移行する。他方、ステップ1044でNoの場合、ステップ1046(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAM領域内の設定値異常フラグをオンにし、第1ROM領域の呼び出し元に復帰し、ステップ1047(第2)に移行する。
<第1ROM・RAM領域における処理>
次に、ステップ1047(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2RAM領域内の設定値異常フラグがオフであるか否かを判定する。ステップ1047(第2)でYesの場合には、ステップ1050に移行し、Noの場合には、ステップ1048(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、設定値エラー表示をセットする(例えば、レジスタ領域内にエラー番号をセットする)。次に、ステップ1300(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、後述する、復帰不可能エラー処理をセットする。このように、第2実施形態においては、復帰不可能エラー処理及び発生している復帰不可能エラー表示(バックアップエラー表示、設定値エラー表示)のセット処理を、第1ROM・RAM領域にて実行するよう構成している。
<第1ROM・RAM領域における処理>
次に、図24は、第2実施形態におけるステップ1200のサブルーチンに係る、遊技進行制御処理(2枚目)のフローチャートである。本実施形態との相違点は、ステップ1228(第2)、ステップ1700(第2)、ステップ1400(第2)、ステップ1237(第2)、ステップ1750(第2)、ステップ1450(第2)、ステップ1249‐1(第2)、ステップ1800(第2)、ステップ1500(第2)、ステップ1254‐1(第2)〜ステップ1254‐3(第2)、ステップ1256(第2)及びステップ1300(第2)であり、即ち、ステップ1227で遊技メダルの投入を受け付けた後、又は、ステップ1230で第1投入センサD20s及び第2投入センサD30sがオフでなかった場合に、ステップ1228(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域のメダル投入チェック処理を呼び出し、ステップ1700(第2)に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ1700(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、メダル投入チェック処理を実行し、ステップ1229に移行する。尚、この第2ROM領域のメダル投入チェック処理の趣旨としては、本実施形態において、遊技進行制御処理(ループ処理)とタイマ割り込み時処理(非ループ処理)とで分けて実装されていたメダル投入チェック関連の処理を、遊技進行制御処理(ループ処理)にて纏めて実装する方法の一例を示すことにある。
<第1ROM・RAM領域における処理>
また、ステップ1229で第1ROM領域の呼び出し元に復帰した後、ステップ1400(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、後述する、メダル投入エラー検出処理を実行し、ステップ1230に移行する。尚、第2実施形態においては、メダル投入エラー検出処理を、第1ROM・RAM領域にて実行するよう構成している。
また、ステップ1236で第1払出センサH10s又は第2払出センサH20sがオンであった場合、ステップ1241でホッパ駆動後所定時間が経過していない場合、又は、ステップ1247で第1払出センサH10s及び第2払出センサH20sがオフでなかった場合に、ステップ1237(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域のメダル払出チェック処理を呼び出し、ステップ1750(第2)に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ1750(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、メダル払出チェック処理を実行し、ステップ1240に移行する。尚、この第2ROM領域のメダル払出チェック処理の趣旨としては、本実施形態において、遊技進行制御処理(ループ処理)とタイマ割り込み時処理(非ループ処理)とで分けて実装されていたメダル払出チェック関連の処理を、遊技進行制御処理(ループ処理)にて纏めて実装する方法の一例を示すことにある。
<第1ROM・RAM領域における処理>
また、ステップ1240で第1ROM領域の呼び出し元に復帰した後、ステップ1450(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、後述する、メダル払出エラー検出処理を実行し、ステップ1247に移行する。尚、第2実施形態においては、メダル払出エラー検出処理を、第1ROM・RAM領域にて実行するよう構成している。
また、ステップ1232で精算ボタンD60の操作がなかった場合、又は、ステップ1233で残りクレジット及びベットメダルがなかった場合に、ステップ1249‐1(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域の投入・払出エラーチェック処理を呼び出し、ステップ1800(第2)に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ1800(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入・払出エラーチェック処理を実行し、ステップ1250に移行する。尚、この第2ROM領域の投入・払出エラーチェック処理の趣旨としては、本実施形態において、遊技進行制御処理(ループ処理)とタイマ割り込み時処理(非ループ処理)とで分けて実装されていた投入・払出エラーチェック関連の処理を、遊技進行制御処理(ループ処理)にて纏めて実装する方法の一例を示すことにある。
<第1ROM・RAM領域における処理>
また、ステップ1250で第1ROM領域の呼び出し元に復帰した後、ステップ1500(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、後述する、投入・払出エラー検出処理を実行し、ステップ1251に移行する。尚、第2実施形態においては、投入・払出エラー検出処理を、第1ROM・RAM領域にて実行するよう構成している。
<第2ROM・RAM領域における処理>
また、ステップ1253で第1RAM領域内の設定値が正常範囲内であった場合、ステップ1254‐2(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAM領域内の設定値異常フラグをオフにし、第1ROM領域の呼び出し元に復帰し、ステップ1254‐3(第2)に移行する。他方、ステップ1253で第1RAM領域内の設定値が正常範囲内でなかった場合、ステップ1254‐1(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAM領域内の設定値異常フラグをオンにし、第1ROM領域の呼び出し元に復帰し、ステップ1254‐3(第2)に移行する。
<第1ROM・RAM領域における処理>
次に、ステップ1254‐3(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAM領域内の設定値異常フラグがオフであるか否かを判定する。ステップ1254‐3(第2)でYesの場合、次の処理(ステップ1257の処理)に移行し、Noの場合には、ステップ1256(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、設定値エラー表示をセットする(例えば、レジスタ領域内にエラー番号をセットする)。次に、ステップ1300(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、後述する、復帰不可能エラー処理をセットする。このように、第2実施形態においては、復帰不可能エラー処理及び発生している復帰不可能エラー表示(設定値エラー表示)のセット処理を、第1ROM・RAM領域にて実行するよう構成している。
<第1ROM・RAM領域における処理>
次に、図25は、第2実施形態における、図24のステップ1400(第2)のサブルーチンに係る、メダル投入エラー検出処理のフローチャートである。本実施形態との相違点は、本サブルーチンの処理を、第1ROM・RAM領域における処理としていることである。即ち、本実施形態においては、メダル投入エラー関連のエラー表示処理を実行する場合、第2ROM領域において実装された当該処理を呼び出していたのであるが、第2実施形態においては、当該処理が第1ROM領域において実装されており、第2ROM・RAM領域における各種エラー検出処理にてエラーが検出された場合には、エラーが検出された旨の情報を第1ROM領域において実装された当該処理へ引き渡して実行しているのである。このように構成した場合、遊技進行を制御する上でも必要不可欠な処理であるエラー表示処理を、遊技性仕様を実装するためのプログラム(遊技進行を制御するためのプログラム)として実装することができ、換言すれば、従来から実装されているエラー表示処理プログラムを流用することが可能となる。尚、エラーが検出された旨の情報を第1ROM領域において実装されたエラー表示処理へと引き渡すための第2RAM領域内のフラグである、投入メダル逆流エラーフラグ、投入メダル滞留エラーフラグ及び投入枚数エラーフラグは、エラーが解除された場合には、本例のように第1ROM領域において実装されたエラー表示処理から直接オフとしてもよいし、第2ROM領域の処理であり当該フラグをオフとするための処理を呼び出してオフにするよう構成してもよい。
<第1ROM・RAM領域における処理>
次に、図26は、第2実施形態における、図24のステップ1450(第2)のサブルーチンに係る、メダル払出エラー検出処理のフローチャートである。本実施形態との相違点は、本サブルーチンの処理を、第1ROM・RAM領域における処理としていることである。即ち、本実施形態においては、メダル払出エラー関連のエラー表示処理を実行する場合、第2ROM領域において実装された当該処理を呼び出していたのであるが、第2実施形態においては、当該処理が第1ROM領域において実装されており、第2ROM・RAM領域における各種エラー検出処理にてエラーが検出された場合には、エラーが検出された旨の情報を第1ROM領域において実装された当該処理へ引き渡して実行しているのである。このように構成した場合、遊技進行を制御する上でも必要不可欠な処理であるエラー表示処理を、遊技性仕様を実装するためのプログラム(遊技進行を制御するためのプログラム)として実装することができ、換言すれば、従来から実装されているエラー表示処理プログラムを流用することが可能となる。尚、エラーが検出された旨の情報を第1ROM領域において実装されたエラー表示処理へと引き渡すための第2RAM領域内のフラグである、払出メダル滞留エラーフラグは、エラーが解除された場合には、本例のように第1ROM領域において実装されたエラー表示処理から直接オフとしてもよいし、第2ROM領域の処理であり当該フラグをオフとするための処理を呼び出してオフにするよう構成してもよい。
<第1ROM・RAM領域における処理>
次に、図27は、第2実施形態における、図24のステップ1500(第2)のサブルーチンに係る、投入・払出エラー検出処理のフローチャートである。本実施形態との相違点は、本サブルーチンの処理を、第1ROM・RAM領域における処理としていることである。即ち、本実施形態においては、投入・払出エラー関連のエラー表示処理を実行する場合、第2ROM領域において実装された当該処理を呼び出していたのであるが、第2実施形態においては、当該処理が第1ROM領域において実装されており、第2ROM・RAM領域における各種エラー検出処理にてエラーが検出された場合には、エラーが検出された旨の情報を第1ROM領域において実装された当該処理へ引き渡して実行しているのである。このように構成した場合、遊技進行を制御する上でも必要不可欠な処理であるエラー表示処理を、遊技性仕様を実装するためのプログラム(遊技進行を制御するためのプログラム)として実装することができ、換言すれば、従来から実装されているエラー表示処理プログラムを流用することが可能となる。尚、エラーが検出された旨の情報を第1ROM領域において実装されたエラー表示処理へと引き渡すための第2RAM内のフラグである、異常投入エラーフラグ及び異常払出エラーフラグは、エラーが解除された場合には、本例のように第1ROM領域において実装されたエラー表示処理から直接オフとしてもよいし、第2ROM領域の処理であり当該フラグをオフとするための処理を呼び出してオフにするよう構成してもよい。
<第2ROM・RAM領域における処理>
次に、図28は、第2実施形態における、遊技進行制御処理(3枚目)のフローチャートである。本実施形態との相違点は、ステップ1269‐1(第2)〜ステップ1269‐4(第2)、ステップ1272(第2)、ステップ1300(第2)、ステップ1800(第2)、ステップ1500(第2)、ステップ1277‐1(第2)、ステップ1750(第2)及びステップ1450(第2)であり、即ち、ステップ1269で、表示された図柄の組み合わせが正常である場合、ステップ1269‐1(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAM領域内の表示判定異常フラグをオフにし、第1ROM領域の呼び出し元に復帰し、ステップ1269‐3(第2)に移行する。他方、ステップ1269で、表示された図柄の組み合わせが正常でない場合、ステップ1269‐2(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAM領域内の表示判定異常フラグをオンにし、第1ROM領域の呼び出し元に復帰し、ステップ1269‐3(第2)に移行する。
<第1ROM・RAM領域における処理>
次に、ステップ1269‐3(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2RAM領域内の表示判定異常フラグがオフであるか否かを判定する。ステップ1269‐3(第2)でYesの場合、ステップ1269‐4(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域の投入・払出エラーチェック処理を呼び出し、ステップ1500(第2)に移行する。他方、ステップ1269‐3(第2)でNoの場合には、ステップ1272(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、表示判定エラー表示をセットする(例えば、レジスタ領域内にエラー番号をセットする)。次に、ステップ1300(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、前述した、復帰不可能エラー処理をセットする。このように、第2実施形態においては、復帰不可能エラー処理及び発生している復帰不可能エラー表示(表示判定エラー表示)のセット処理を、第1ROM・RAM領域にて実行するよう構成している。
<第2ROM・RAM領域における処理>
次に、ステップ1800(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、投入・払出エラーチェック処理を実行し、ステップ1270に移行する。尚、この第2ROM領域の投入・払出エラーチェック処理の趣旨としては、本実施形態において、遊技進行制御処理(ループ処理)とタイマ割り込み時処理(非ループ処理)とで分けて実装されていた投入・払出エラーチェック関連の処理を、遊技進行制御処理(ループ処理)にて纏めて実装する方法の一例を示すことにある。
<第1ROM・RAM領域における処理>
また、ステップ1270で第1ROM領域の呼び出し元に復帰した後、ステップ1500(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、前述した、投入・払出エラー検出処理を実行し、ステップ1274に移行する。尚、第2実施形態においては、投入・払出エラー検出処理を、第1ROM・RAM領域にて実行するよう構成している。
他方、ステップ1277で第1払出センサH10s又は第2払出センサH20sがオンであった場合、ステップ1277‐1(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域のメダル払出チェック処理を呼び出し、ステップ1750(第2)に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ1750(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、メダル払出チェック処理を実行し、ステップ1284に移行する。尚、この第2ROM領域のメダル払出チェック処理の趣旨としては、本実施形態において、遊技進行制御処理(ループ処理)とタイマ割り込み時処理(非ループ処理)とで分けて実装されていたメダル払出チェック関連の処理を、遊技進行制御処理(ループ処理)にて纏めて実装する方法の一例を示すことにある。
<第1ROM・RAM領域における処理>
また、ステップ1284で第1ROM領域の呼び出し元に復帰した後、ステップ1450(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、後述する、メダル払出エラー検出処理を実行し、ステップ1286に移行する。尚、第2実施形態においては、メダル払出エラー検出処理を、第1ROM・RAM領域にて実行するよう構成している。
<第1ROM・RAM領域における処理>
次に、図29は、第2実施形態における、図23、図24、図28及び図30のステップ1300(第2)のサブルーチンに係る、復帰不可能エラー処理のフローチャートである。本実施形態との相違点は、本サブルーチンの処理を、第1ROM・RAM領域における処理としていることである。即ち、本実施形態においては、復帰不可能エラー処理を実行する場合、第2ROM領域において実装された当該処理を呼び出していたのであるが、第2実施形態においては、当該処理が第1ROM領域において実装されており、第2ROM・RAM領域における各種エラー検出処理にてエラーが検出された場合には、エラーが検出された旨の情報を第1ROM領域において実装された当該処理へ引き渡して実行しているのである。このように構成した場合、復帰不可能な(即ち、回胴式遊技機Pを動作不能とする)状態へと移行させるという強制力をもった処理を、遊技性仕様を実装するためのプログラム(遊技進行を制御するためのプログラム)として実装することができる。
<第2ROM・RAM領域における処理>
次に、図30は、第2実施形態におけるステップ1600のサブルーチンに係る、タイマ割り込み時処理のフローチャートである。本実施形態との相違点は、ステップ1648(第2)、ステップ1650(第2)及びステップ1654(第2)であり、即ち、ステップ1642で、内蔵乱数の更新状態が正常であった場合、ステップ1648(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAM領域内の内蔵乱数異常フラグをオフにし、第1ROM領域の呼び出し元に復帰し、ステップ1654(第2)に移行する。他方、ステップ1640で、乱数更新用クロックの周波数が正常でなかった、又は、ステップ1642で、内蔵乱数の更新状態が正常でなかった場合に、ステップ1650(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAM領域内の内蔵乱数異常フラグをオンにし、第1ROM領域の呼び出し元に復帰し、ステップ1654(第2)に移行する。
<第1ROM・RAM領域における処理>
次に、ステップ1654(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、内蔵乱数異常フラグがオフであるか否かを判定する。ステップ1654(第2)でYesの場合には、ステップ1636に移行し、Noの場合には、ステップ1648(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、内蔵乱数エラー表示をセットする(例えば、レジスタ領域内にエラー番号をセットする)。次に、ステップ1300(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、前述した、復帰不可能エラー処理をセットする。このように、第2実施形態においては、復帰不可能エラー処理及び発生している復帰不可能エラー表示(内蔵乱数エラー表示)のセット処理を、第1ROM・RAM領域にて実行するよう構成している。
<第1ROM・RAM領域における処理>
次に、図31は、第2実施形態における、図30のステップ1900のサブルーチンに係る、電源断時処理のフローチャートである。本実施形態との相違点は、ステップ1905(第2)及びステップ1909(第2)であり、即ち、ステップ1904で、電源断処理済みフラグをオンにした後、ステップ1905(第2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1RAM領域の先頭アドレスから第1チェックサム領域直前アドレスまでのチェックサムを算出し、当該算出したチェックサムに基づく誤り検出用情報(例えば、当該算出したチェックサムにおける下位1バイト、或いは、その補数となるもの)を第1チェックサム領域にてセットする。次に、ステップ1906で、第2ROM領域のチェックサム算出処理を呼び出し、ステップ1909(第2)に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ1909(第2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAM領域の先頭アドレスから第2チェックサム領域直前アドレスまでのチェックサムを算出し、当該算出したチェックサムに基づく誤り検出用情報(例えば、当該算出したチェックサムにおける下位1バイト、或いは、その補数となるもの)を第2チェックサム領域にてセットし、ステップ1910に移行する。前述したように、第2実施形態においては、チェックサム領域は第1チェックサム領域と第2チェックサム領域とに分かれており、同図下段に示されるように、第1チェックサム領域は第1RAM領域の最終アドレスに、第2チェックサム領域は第2RAM領域の最終アドレスに夫々存在している。また、第1RAM領域のチェックサム算出及びセットは第1ROM領域における処理が実行し、第2RAM領域のチェックサム算出及びセットは第2ROM領域における処理が実行するよう構成されている。
以上のように構成することで、第2実施形態に係る回胴式遊技機によれば、第1ROM領域にて配置されているプログラムコードに基づくCPUC100の処理にて、第2RAM領域を参照可能に構成し、且つ、第2ROM領域にて配置されているプログラムコードに基づくCPUC100の処理にて、第1RAM領域を参照可能に構成し、エラー検出等の遊技機に対して不正行為がなされる(例えば、遊技媒体の投入口や払出口に対して不正にアクセスして遊技媒体を不正な手段で得る、等)ことを防御するための不正行為防止用のプログラムを第2ROM・RAM領域における処理にて実行し得るよう構成することで、遊技の進行に係る処理と領域を明確に分けることができ、本実施形態と同様に、当該不正行為防止用のプログラムの正当性を検証することが容易となる。
(第3実施形態)
尚、本実施形態においては、エラー表示処理等も不正行為防止用のプログラムとして見做し、第2ROM領域にて配置されているプログラムコードとして実装するための一例を示したが、第2ROM領域にて配置されるべきプログラムは、エラー表示処理以外にも概念できる。特に、出玉試験(遊技者の射幸心を著しく煽るような社会的不適合機でないことを認定するための試験)のみに供される出玉試験用プログラムは、本来市場(量産時)では必要とされないプログラムであるため、第2ROM領域にて配置した方が好適となる場合がある。そこで、本実施形態で示した一例をベースとし、さらなるプログラムを第2ROM領域にて実行するような構成の一例を第3実施形態とし、以下、本実施形態からの相違点について詳述していく。
はじめに、図32は、第3実施形態における、回胴式遊技機の基本仕様一覧である。第3実施形態に係る回胴式遊技機は、規定数(1ゲームにてベットできる遊技メダルの最大枚数)が3枚、左リールM51、中リールM52及び右リールM53のコマ数はいずれも20コマ、入賞判定される有効ラインは「左リールM51中段、中リールM52中段、右リールM53中段」の1ライン、最大払出枚数は9枚、最小払出枚数は1枚であり(入賞役と払出枚数との対応付けは後述)、ボーナス図柄は「羊・羊・羊」(450枚を超える払出で終了)と「セブン・セブン・セブン」(300枚を超える払出で終了)とでありどちらも第1種BB(いわゆる第1種特別役物に係る役物連続作動装置)となっている。また、優先入賞順(引き込み優先順)は、「再遊技→小役(ベル、スイカ)→ボーナス」となっており、例えば、再遊技とボーナスが同時に成立している場合には、再遊技が入賞し且つボーナスは入賞不能である。また、ベルとスイカが成立している場合には、どちらも引き込める位置(入賞する停止位置まで4コマ以内の位置)で停止ボタンを押した場合には払出枚数が多い小役を優先して引きこむよう構成されている。尚、同図に示した構成はあくまで一例であり、各リールのコマ数を変更(例えば、21コマに変更)したり、有効ラインの構成を変更(例えば、横3ライン、斜め2ラインの5ラインに変更)しても何ら問題ない。
次に、図33は、第3実施形態における、回胴式遊技機のリール配列一覧である。同図に示されるように、左リールM51、中リールM52及び右リールM53のコマ数はいずれも20コマ(0番〜19番)であり、図柄は「セブン」、「羊」、「ブランクB」、「ベル」、「リプレイA」、「リプレイB」、「スイカ」、「チェリー」、「ブランクA」の9種類となっている。尚、同図に示した構成はあくまで一例であり、図柄の種類を増減・変更しても何ら問題ない。
次に、図34は、第3実施形態における小役出現率一覧である。同図に示すように第3実施形態においては、遊技状態によって小役(特に、再遊技)の出現率(抽選確率)が相違し得るよう構成されており、「再遊技01、02」はART準備状態及びART状態の場合において、ボーナス後状態及び通常状態よりも出現率が高くなっている。また、「再遊技03、04」(いわゆる転落再遊技であり、当該再遊技が入賞すると、以降通常遊技状態に移行することとなる)はボーナス後状態では出現せず、ART状態で最も出現し易くなっている。また、「再遊技05」(いわゆる準備状態移行再遊技であり、通常遊技状態にて当該再遊技が入賞すると、以降ART準備状態に移行することとなる)は通常遊技状態でのみ出現するよう構成されている。また、「再遊技06」(いわゆる昇格再遊技であり、ART準備状態にて当該再遊技が入賞すると、以降ART状態に移行することとなる)はART準備状態でのみ出現するよう構成されている。尚、これら再遊技役の入賞に伴う遊技状態遷移については別途、遊技状態遷移フローを示して後述する。また、同図に示した出現率はあくまで一例であり、実際の役抽選で当選する当選役は、図37〜図39に示す条件装置番号(当選番号、当選役とも称する)のように、例えば、「再遊技‐A、再遊技‐B1、・・・」のように構成されている。換言すると、図37〜図39に示すように、当選役の抽選確率と停止操作態様(停止操作位置、停止操作順序)に応じて停止表示される図柄組合せの出現率は変動し得るよう構成されている。尚、当該抽選確率を適宜変更しても何ら問題ない。
次に、図35、図36は、第3実施形態における図柄組み合わせ一覧1、2である。第3実施形態においては、夫々の条件装置に対して複数の図柄組み合わせが存在しており、後述するように、左リールM51、中リールM52及び右リールM53の停止順番や停止位置に応じて、いずれか一の図柄組み合わせが有効ライン(前述した1ライン)上に停止表示されるよう構成されている。尚、有効ライン上に同一種類の図柄が揃っていない場合にも遊技者から見ると有効ライン以外のライン上にて一列に同一の図柄が揃いやすく構成されている(スイカの場合には上段に横一直線に揃う等、リール上のいずれかに一直線にスイカ図柄が3つ揃うよう構成されている)。
次に、図37〜図39は、第3実施形態における条件装置一覧1〜3である。第3実施形態においては、再遊技は再遊技‐A〜再遊技I3(条件装置番号1〜18)まで設けられており、左リールM51、中リールM52及び右リールM53の停止順番や停止位置に応じて、入賞する再遊技役が相違し得るよう構成されている。また、「押し順等」の項目には、停止順によって入賞することとなる再遊技の種類が記載されており、例えば、「左リールM51:1、中リールM52:2、右リールM53:3」となっており「123」の場合「左リールM51→中リールM52→右リールM53」の押し順で停止させるという意味であり、例えば、「再遊技C‐1」(条件装置番号7)の場合には、「123」=「左→中→右」の順に停止させると「再遊技06」が入賞することとなる。さらに、「左→右→中」の順に停止させると「再遊技04」が入賞し、中第1停止を行うと、第2停止及び第3停止のリールの種別によらず「再遊技04」が入賞し、右第1停止を行うと、第2停止及び第3停止のリールの種別によらず「再遊技03」が入賞することとなる。このように構成することによって、押し順に正解できれば遊技状態が昇格(遊技者にとって高利益な遊技状態へ移行)したり、押し順に正解できなければ遊技状態が転落(遊技者にとって低利益な遊技状態へ移行)するような遊技性を創出することができる。また、「入賞‐A1(ベル)」(条件装置番号19)の場合には、「123」=「左→中→右」の順で停止させる、即ち、押し順に正解すると9枚の払出となり、その他の押し順で停止させる、即ち、押し順に正解できないと1枚の払出となるよう構成されており、このように構成することで、ART状態及びART準備状態にてベルの押し順をナビ(押し順表示装置D270にて最高利益となる押し順を表示)し、通常遊技状態及びボーナス後状態には押し順をナビしないという遊技者の利益率が異なる複数の遊技状態を創出することができる。
<第1ROM・RAM領域における処理>
次に、図40は、第3実施形態における、図9におけるステップ1200のサブルーチンに係る、遊技進行制御処理(2枚目)のフローチャートである。本実施形態との相違点は、ステップ1257‐1(第3)、ステップ1257‐2(第3)、ステップ3100(第3)、ステップ3150(第3)、ステップ3200(第3)、ステップ1291‐1(第3)〜ステップ1291‐3(第3)、ステップ3250(第3)、ステップ3300(第3)及びステップ3350(第3)であり、その目的は、従来の回胴式遊技機においては副制御基板S側で制御していた押し順ナビ機能を、主制御基板M側へ移行させることである。即ち、ステップ1257で内部抽選(条件装置番号の決定処理)を実行した後、ステップ1257‐1(第3)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該実行した内部抽選の結果及び条件装置識別値(ボーナス識別値、小役識別値、等であり、図49の条件装置情報の一例を参照)を第1RAM領域に一時記憶する。尚、本例では、当該実行した内部抽選の結果に関して、当該決定された条件装置番号を、図49の条件装置情報の一例における「D0〜D5ビット」へセットする(小役に関しては小役状態情報としてセットし、ボーナスに関してはボーナス状態情報としてセットする)と共に、当該実行した内部抽選の結果が小役に関するものであるかボーナス(本例では、第一種BB)に関するものであるかを識別するためのビット列を「D6〜D7ビット」へセットする(小役に関しては「D6〜D7ビット」=「10」を小役状態情報としてセットし、ボーナスに関しては「D6〜D7ビット」=「01」ボーナス状態情報としてセットする)よう構成されている。次に、ステップ1257‐2(第3)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ARTカウンタM60(押し順表示装置D270に表示された押し順ナビ表示に従って遊技を進行した場合に保障されることとなるART状態に滞在し得るゲーム数の計測するカウンタ)のカウンタ値が0より大きい値であるか否かを判定する。ステップ1257‐2(第3)でYesの場合、換言すると、ART状態の場合、ステップ3100(第3)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、後述する、当選時ゲーム数上乗せ実行処理を実行する。次に、ステップ3150(第3)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、後述する、押し順ナビ制御処理を実行し、ステップ3200(第3)に移行する。他方、ステップ1257‐2(第3)でNoの場合にも、ステップ3200(第3)に移行する。次に、ステップ3200(第3)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、後述する、リール回転開始準備処理を実行し、ステップ1258に移行する。
<第1ROM・RAM領域における処理>
また、ステップ1290で、当該ゲームに係る条件装置の入賞に対応した払出が完了した後、ステップ1291‐1(第3)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、現在の遊技状態が通常遊技状態中であるか否かを判定する。ステップ1291‐1(第3)でYesの場合、ステップ3250(第3)で、後述する、ART抽選実行制御処理を実行し、ステップ3350(第3)に移行する。他方、ステップ1291‐1(第3)でNoの場合、ステップ1291‐2(第3)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ARTカウンタM60のカウンタ値が0より大きいか否か、換言すると、現在の遊技状態がART状態であるか否かを判定する。ステップ1291‐2(第3)でYesの場合、ステップ3300(第3)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、後述する、入賞時ゲーム数上乗せ実行処理を実行する。次に、ステップ1291‐3(第3)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ARTカウンタM60のカウンタ値を1減算し、ステップ3350(第3)に移行する。他方、ステップ1291‐2(第3)でNoの場合、換言すると、現在の遊技状態が通常遊技状態とART状態以外(例えば、ART準備状態、ボーナス後状態)である場合にもステップ3350(第3)に移行する。次に、ステップ3350(第3)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、後述する、遊技状態移行制御処理を実行し、ステップ1292に移行する。
<第1ROM・RAM領域における処理>
次に、図41は、第3実施形態における、図40におけるステップ3100(第3)のサブルーチンに係る、当選時ゲーム数上乗せ実行処理のフローチャートである。まず、ステップ3102で、CPUC100は、第1ROM・RAM領域内のデータ(例えば、条件装置番号)に基づき、当該ゲームに係る条件装置は当選時上乗せ役(入賞するか否かに拘らず、当選することによってARTゲーム数を上乗せし得る条件装置)であるか否かを判定する。尚、第3実施形態では、スイカ=条件装置番号25を当選時上乗せ役としているが、当選時上乗せ役はこれに限られるものではなく、再遊技役や押し順ベル役、また第3実施形態では図示していない他の小役等でも上乗せ抽選を実行しても問題ない。ステップ3102でYesの場合、ステップ3104で、CPUC100は、第1ROM・RAM領域内のデータ(例えば、第1ROM領域内の第1データ領域に設けられた抽選テーブル)に基づき、所定確率(1/4)で当選するARTゲーム数上乗せ抽選(ARTカウンタM60のカウンタ値を増加させるか否かの抽選)を実行する。尚、第3実施形態では、スイカのみを当選時上乗せ役としたが、再遊技役や押し順ベル役等も当選時上乗せ役として構成した場合には、当選した当選時上乗せ役の種類によってARTゲーム数上乗せ抽選の当選率(及び/又は、ART上乗せゲーム数の振分)を相違させてもよい。次に、ステップ3106で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該実行したARTゲーム数上乗せ抽選に当選したか否かを判定する(例えば、ラッチした乱数値が当選範囲内に収まっているか否かを判定する)。ステップ3106でYesの場合、ステップ3108で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スイカ時上乗せゲーム数抽選テーブル(例えば、第1ROM領域内の第1データ領域に設けられた抽選テーブルであって、スイカの成立によりARTゲーム数が上乗せされる場合に参照されるテーブル)を参照し、ART上乗せゲーム数を決定する(例えば、欄外にて示す抽選テーブルにおいて、ラッチした乱数値がいずれの範囲内に収まっているか否かを判定する)。次に、ステップ3110で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該決定したART上乗せゲーム数をARTカウンタM60のカウンタ値に加算し、当該加算後のARTカウンタ値をARTカウンタにセットし、次の処理{ステップ3150(第3)の処理}に移行する。尚、ステップ3102又はステップ3106でNoの場合にも次の処理{ステップ3150(第3)の処理}に移行する。
ここで、同図欄外にて示す抽選テーブルは、スイカ時上乗せゲーム数抽選テーブルの一例であり、同図に示されるように、ART上乗せ抽選に当選した場合には、ART上乗せゲーム数は「10」〜「300」が抽選によって決定され、当該決定された値がARTカウンタM60のカウンタ値に加算されることとなる。尚、スイカ時のART上乗せ抽選に1回当選した場合の平均のART上乗せゲーム数は「28.9」となっている。尚、第3実施形態においては、ART上乗せゲーム数を決定する場合に、「ARTゲーム数上乗せ抽選に当選→当選した場合に上乗せゲーム数抽選テーブルに基づいてゲーム数を抽選により決定」、という2段階に分けた抽選を実行しているが、上乗せゲーム数抽選テーブルにハズレ領域(ART上乗せゲーム数=0)を設けることにより、一度の抽選によりART上乗せゲーム数(及びARTゲーム数上乗せの実行可否)を決定するよう構成しても良い。
<第1ROM・RAM領域における処理>
次に、図42は、第3実施形態における、図40におけるステップ3150(第3)のサブルーチンに係る、押し順ナビ制御処理のフローチャートである。まず、ステップ3152で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ARTカウンタM60のカウンタ値が0より大きいか否か、換言すると、ART状態であるか否かを判定する。ステップ3152でYesの場合、ステップ3156に移行する。他方、ステップ3152でNoの場合、ステップ3154で、CPUC100は、第1ROM・RAM領域内のデータに基づき、現在ART準備状態中であるか否かを判定する。ステップ3154でYesの場合にも、ステップ3156に移行する。次に、ステップ3156で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該ゲームに係る条件装置は押し順あり上乗せ役(ART状態にて押し順に正解することによりARTゲーム数が上乗せされる条件装置であり、本例では、チェリー再遊技=条件装置番号16〜18)であるか否かを判定する。尚、本例における押し順とは、1回のゲームにおいてリールを停止させる順序のことである。ステップ3156でYesの場合、ステップ3158で、CPUC100は、第1ROM・RAM領域内のデータ(例えば、第1ROM領域内の第1データ領域に設けられた抽選テーブル)に基づき、所定確率(例えば、1/5)にて当選する押し順ナビ実行抽選を実行する。次に、ステップ3160で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該押し順ナビ実行抽選に当選したか否かを判定する(例えば、ラッチした乱数値が当選範囲内に収まっているか否かを判定する)。ステップ3160でYesの場合、ステップ3163に移行する。他方、ステップ3156でNoの場合、ステップ3162で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該ゲームに係る条件装置は押し順あり小役(押し順によって遊技者の利益率が相違する条件装置)であるか否かを判定する。ステップ3162でYesの場合、換言すると、当該ゲームの条件装置が再遊技03、04、06又はベルを含む(例えば、条件装置番号7〜14又は19〜24である)場合にはステップ3163に移行する。
<第1ROM・RAM領域における処理>
次に、ステップ3163で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該ゲームに係る条件装置情報に基づき、最高機械割押し順あり操作態様情報(第1〜第3停止操作態様情報)を生成し、第1RAM領域に一時記憶する。ここで、最高機械割押し順あり操作態様情報とは、押し順あり小役(押し順によって遊技者の利益率が相違する条件装置)が成立したゲームにおいて、最も遊技者にとって利益率の高いリール停止順及びリール停止位置に係る情報であり、第3実施形態においては、後述するように、主制御基板M側から回胴式遊技機外に当該情報を送信し得るよう構成されている(従来では、出玉試験機と回胴式遊技機との情報伝達を仲介する第2試験基板に対して、副制御基板S側から当該情報を送信している)。尚、最高機械割操作態様情報(最高機械割押し順あり操作態様情報、最高機械割押し順なし操作態様情報)は、最適操作態様情報、有利操作態様情報、高利益操作態様情報、等と称することもできる。次に、ステップ3164で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1RAM領域内の最高機械割押し順あり操作態様情報に基づき、当該ゲーム中において押し順表示装置D270にて押し順ナビ表示を実行(例えば、「2」の表示の場合、「左→中→右」の順、「7」の表示の場合、「左→フリー→フリー」の順にリール停止すると利益率が最高になる)する。次に、ステップ3165で、CPUC100は、第1ROM・RAM領域内のデータに基づき、最高機械割押し順あり操作態様情報に係るコマンド(サブ側へのコマンド)をセットし、次の処理{ステップ3200(第3)の処理}に移行する。
<第1ROM・RAM領域における処理>
他方、ステップ3154でNoの場合、ステップ3166で、CPUC100は、第1ROM・RAM領域内のデータに基づき、内部ART当選中フラグ(ART状態への移行が確定的になることでオンとなるフラグである)がオンであるか否かを判定する。ステップ3166でYesの場合、ステップ3168で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該ゲームに係る条件装置は準備状態移行再遊技(通常遊技状態からART準備状態に移行し得る再遊技であり、本例では、再遊技05を含む条件装置であって、例えば、条件装置番号2〜6)であるか否かを判定する。ステップ3168でYesの場合、ステップ3170で、CPUC100は、第1ROM・RAM領域内のデータに基づき、内部ART当選中フラグをオフにする。次に、ステップ3171で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該ゲームに係る条件装置情報に基づき、最高機械割押し順あり操作態様情報(第1〜第3停止操作態様情報)を生成し、第1RAM領域に一時記憶する。次に、ステップ3172で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1RAM領域内の最高機械割押し順あり操作態様情報に基づき、当該ゲーム中において押し順表示装置D270にて押し順ナビ表示を実行{例えば、条件装置番号が「2」の場合は、「2」の表示(「左→中→右」の順)、条件装置番号が「3」の場合は、「3」の表示(「左→右→中」の順)となり、表示に従ってリールを停止することによりART準備状態に移行することとなる}する。次に、ステップ3174で、CPUC100は、第1ROM・RAM領域内のデータに基づき、最高機械割押し順あり操作態様情報に係るコマンド(サブ側へのコマンド)をセットし、次の処理{ステップ3200(第3)の処理}に移行する。尚、ステップ3160、ステップ3162、ステップ3166又はステップ3168でNoの場合にも、次の処理{ステップ3200(第3)の処理}に移行する。
<第1ROM・RAM領域における処理>
次に、図43は、第3実施形態における、図40におけるステップ3200(第3)のサブルーチンに係る、リール回転開始準備処理のフローチャートである。まず、ステップ3204で、CPUC100は、第1ROM・RAM領域内のデータに基づき、遊技間隔最小時間タイマM70(減算タイマ)のタイマ値が0であるか否かを判定する。ここで、遊技間隔最小時間タイマM70は、あるゲーム開始タイミング(リール回転開始タイミング)から次のゲーム開始タイミング(リール回転開始タイミング)までに担保されるべき時間(本例では、4.1秒)を計測するタイマである。ステップ3204でYesの場合、ステップ3206で、CPUC100は、第1ROM・RAM領域内のデータに基づき、遊技間隔最小時間タイマM70のタイマ値に新たに最小時間(本例では、4.1秒)をセットしてスタートする。次に、ステップ3208で、CPUC100は、第1ROM・RAM領域内のデータに基づき、出力時間タイマM80(減算タイマ)に、新たに条件装置情報出力時間(本例では、24割り込み)をセットし、ステップ3210に移行する。ここで、本例においては、詳細は後述することとなるが、ステップ3208にて条件装置情報出力時間をセットした後、出力時間タイマM80のタイマ値に応じて、主制御基板M側から回胴式遊技機外へ送信される情報の出力制御が行われるよう構成されている。尚、ステップ3204でNoの場合には、ステップ3204の処理を再度繰り返す。よって、第3実施形態においては、遊技間隔最小時間(本例では、4.1秒)が経過した後に条件装置出力時間をセットするよう構成されている。
<第1ROM・RAM領域における処理>
次に、ステップ3210で、CPUC100は、第1ROM・RAM領域内のデータに基づき、終了したゲームに係るリール停止順に係る情報及び押し順に係る情報をクリアする。次に、ステップ3212で、CPUC100は、第1ROM・RAM領域内のデータに基づき、終了したゲームに係るリール停止中に係る情報及び引き込みポイント作成要求をクリアする。次に、ステップ3214で、CPUC100は、第1ROM・RAM領域内のデータに基づき、終了したゲームに係る図柄停止位置データを初期化する。次に、ステップ3218で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該ゲームに係るリール回転開始待機時の出力要求をセットする。次に、ステップ3220で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該ゲームに係るリール制御コマンドをセットする。換言すると、ステップ3218及びステップ3220の処理によって、副制御基板Sにリールが回転開始することを示すためのコマンドが送信可能となる。次に、ステップ3222で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1RAM領域内に記憶されているリール駆動状態をリール停止状態からリール回転開始待機状態に更新し、次の処理(ステップ1258の処理)に移行する。
<第1ROM・RAM領域における処理>
次に、図44は、第3実施形態における、図40におけるステップ3250(第3)のサブルーチンに係る、ART抽選実行制御処理のフローチャートである。まず、ステップ3252で、CPUC100は、第1ROM・RAM領域内のデータに基づき、内部ART当選中フラグがオフであるか否かを判定する。ステップ3252でYesの場合、ステップ3254で、CPUC100は、第1ROM・RAM領域内のデータに基づき、現在の遊技状態(低確率状態と高確率状態とのいずれの遊技状態であるか)を確認する。次に、ステップ3256で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該ゲームに係る条件装置はART抽選役{通常遊技状態においてART状態への移行が確定していない(内部ART中フラグがオフである)場合に、ART状態への移行抽選を実行し得る小役であり、本例では、スイカ=条件装置番号25}であるか否かを判定する。尚、ステップ3100(第3)の処理と同様に、ART抽選役は条件装置番号25(スイカ)に限られるものではなく、再遊技役や押し順ベル役、また第3実施形態では図示していない他の小役等をART抽選役としても問題ない。また、そのように構成した際には、当選したART抽選役の種類によって、ART移行抽選の当選率を相違させてもよい。ステップ3256でYesの場合、ステップ3258で、CPUC100は、第1ROM・RAM領域内のデータに基づき、現在の遊技状態は高確率状態であるか否かを判定する。ステップ3258でYesの場合、ステップ3260で、CPUC100は、第1ROM・RAM領域内のデータ(例えば、第1ROM領域内の第1データ領域に設けられた高確率状態用抽選テーブル)に基づき、所定確率A(1/3)にて当選するART移行抽選を実行し、ステップ3264に移行する。他方、ステップ3258でNoの場合、換言すると、現在の遊技状態が低確率状態の場合、ステップ3262で、CPUC100は、第1ROM・RAM領域内のデータ(例えば、第1ROM領域内の第1データ領域に設けられた低確率状態用抽選テーブル)に基づき、所定確率B(1/50)にて当選するART移行抽選を実行し、ステップ3264に移行する。このように、第3実施形態においては、低確率状態よりも高確率状態の方がART移行抽選に当選し難く構成されており、前記所定確率A及び/又は所定確率Bは変更しても問題ないが、「所定確率A>所定確率B」となるよう構成することが望ましい。
<第1ROM・RAM領域における処理>
次に、ステップ3264で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該実行されたART抽選に当選したか否かを判定する(例えば、ラッチした乱数値が当選範囲内に収まっているか否かを判定する)。ステップ3264でYesの場合、ステップ3266で、CPUC100は、第1ROM・RAM領域内のデータに基づき、内部ART当選中フラグをオンにし、次の処理{ステップ3350(第3)の処理}に移行する。尚、ステップ3252、ステップ3256又は、ステップ3264でNoの場合にも、次の処理{ステップ3350(第3)の処理}に移行する。尚、内部ART当選中フラグがオンとなることによって、その後、ART状態に移行することとなる。
<第1ROM・RAM領域における処理>
次に、図45は、第3実施形態における、図40におけるステップ3300(第3)のサブルーチンに係る、入賞時ゲーム数上乗せ実行処理のフローチャートである。まず、ステップ3302で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該ゲームに係る条件装置は押し順あり上乗せ役(本例では、チェリー再遊技=条件装置番号16〜18)であるか否かを判定する。ステップ3302でYesの場合、ステップ3306で、CPUC100は、第1ROM・RAM領域内のデータに基づき、チェリー再遊技の押し順に正解した(再遊技09、10、11のいずれかが入賞した)か否かを判定する。ステップ3306でYesの場合、ステップ3308で、CPUC100は、第1ROM・RAM領域内のデータ(例えば、第1ROM領域内の第1データ領域に設けられた抽選テーブル)に基づき、チェリー再遊技時上乗せゲーム数抽選テーブル(チェリー再遊技の入賞によりARTゲーム数が上乗せされた場合に参照されるテーブル)を参照し、ART上乗せゲーム数を決定する(例えば、欄外にて示す抽選テーブルにおいて、ラッチした乱数値がいずれの範囲内に収まっているか否かを判定する)。次に、ステップ3310で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該決定したART上乗せゲーム数をARTカウンタM60のカウンタ値に加算し、当該加算後のARTカウンタ値をARTカウンタM60にセットし、次の処理{ステップ1291‐3(第3)の処理}に移行する。尚、ステップ3302又はステップ3306でNoの場合にも次の処理{ステップ1291‐3(第3)の処理}に移行する。
ここで、同図欄外にて示す抽選テーブルは、チェリー再遊技時上乗せゲーム数抽選テーブルの一例であり、同図に示されるように、ART上乗せ抽選に当選した場合には、ART上乗せゲーム数は「30」〜「300」が抽選によって決定され、当該決定された値がARTカウンタM60のカウンタ値に加算されることとなる。尚、チェリー再遊技時のART上乗せ抽選に1回当選した場合の平均のART上乗せゲーム数は「57.8」となっており、スイカ時の平均のART上乗せゲーム数よりも大きい値となっている。
<第1ROM・RAM領域における処理>
次に、図46は、第3実施形態における、図40におけるステップ3350(第3)のサブルーチンに係る、遊技状態移行制御処理のフローチャートである。まず、ステップ3352で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該ゲームにてRT状態移行可能条件が充足した{ベルの取りこぼし(押し順不正解で9枚の払出が得られなかった場合)、再遊技の入賞にて充足し得る}か否かを判定する。ステップ3352でYesの場合、ステップ3353で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該充足したRT状態移行可能条件及び現在の遊技状態に基づき、遊技状態移行可否(図47の遊技状態移行遷移図にて詳述する)及び次ゲーム以降の遊技状態を決定する。次に、ステップ3354で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ART状態に移行したか否かを判定する。ステップ3354でYesの場合、ステップ3355で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ART初期ゲーム(本例では、50)をARTカウンタM60にセットし、ステップ3376に移行する。他方、ステップ3354でNoの場合にもステップ3376に移行する。
<第1ROM・RAM領域における処理>
また、ステップ3352でNoの場合、ステップ3356で、CPUC100は、第1ROM・RAM領域内のデータに基づき、現在の遊技状態は低確率状態であるか否かを判定する。ステップ3356でYesの場合、ステップ3358で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該ゲームに係る条件装置は状態昇格役(当選することによって低確率状態から高確率状態に移行し得る小役であり、本例では、スイカ)であるか否かを判定する。ステップ3358でYesの場合、ステップ3360で、CPUC100は、第1ROM・RAM領域内のデータ(例えば、第1ROM領域内の第1データ領域に設けられた抽選テーブル)に基づき、所定確率(本例では、1/4)にて当選する高確率状態移行抽選を実行する。ステップ3360でYesの場合、ステップ3362で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該高確率移行抽選に当選したか否かを判定する(例えば、ラッチした乱数値が当選範囲内に収まっているか否かを判定する)。ステップ3362でYesの場合、ステップ3364で、CPUC100は、第1ROM・RAM領域内のデータに基づき、次ゲーム以降の遊技状態を高確率状態に決定し、ステップ3376に移行する。尚、ステップ3358又はステップ3362でNoの場合には、遊技状態は低確率状態のままとなり、ステップ3376に移行する。
<第1ROM・RAM領域における処理>
また、ステップ3356でNoの場合、ステップ3366で、CPUC100は、第1ROM・RAM領域内のデータに基づき、現在の遊技状態は高確率状態であるか否かを判定する。ステップ3366でYesの場合、ステップ3368で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該ゲームに係る条件装置は、状態転落役(入賞することによって高確率状態から低確率状態に移行し得る小役であり、本例では、チェリー再遊技と昇格再遊技を除いた再遊技)であるか否かを判定する。ステップ3368でYesの場合、ステップ3370で、CPUC100は、第1ROM・RAM領域内のデータ(例えば、第1ROM領域内の第1データ領域に設けられた抽選テーブル)に基づき、所定確率(本例では、1/7)にて当選する低確率状態移行抽選を実行する。ステップ3370でYesの場合、ステップ3372で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該低確率移行抽選に当選したか否かを判定する(例えば、ラッチした乱数値が当選範囲内に収まっているか否かを判定する)。ステップ3372でYesの場合、ステップ3374で、CPUC100は、第1ROM・RAM領域内のデータに基づき、次ゲーム以降の遊技状態を低確率状態に決定し、ステップ3376に移行する。尚、ステップ3366、ステップ3368又はステップ3372でNoの場合には、次ゲームの遊技状態は低確率状態以外となり、ステップ3376に移行する。
<第1ROM・RAM領域における処理>
次に、ステップ3376で、CPUC100は、第1ROM・RAM領域内のデータに基づき、現在の作動状態情報(再遊技役が入賞したか、ボーナス中であるか、ART状態であるか等の情報であり、図49の「作動状態情報の一例」を参照)を第1RAM領域に一時記憶し、次の処理(ステップ1292の処理)に移行する。即ち、今回のゲーム終了時において、再遊技役が入賞した場合には、図49の作動状態情報の一例における「D0ビット」へ「1」をセットする一方で、再遊技役が入賞しなかった場合には、図49の作動状態情報の一例における「D0ビット」へ「0」をセットする。また、今回のゲーム終了時において、第1種BB役が入賞した場合には、図49の作動状態情報の一例における「D1ビット」へ「1」をセットする一方で、第1種BBの終了条件を充足した(第1種BB役が入賞した後、所定枚数を超える払出しが完了した場合)場合には、図49の作動状態情報の一例における「D1ビット」へ「0」をセットする。また、今回のゲーム終了時において、ARTカウンタM60のカウンタ値が0より大きい場合(現在の遊技状態がART状態である場合)には、図49の作動状態情報の一例における「D2ビット」へ「1」をセットする一方で、ARTカウンタM60のカウンタ値が0である場合には、図49の作動状態情報の一例における「D2ビット」へ「0」をセットする。尚、第3実施形態にて示した遊技状態の移行態様はあくまで一例であり、変更しても何ら問題なく、例えば、RT状態移行可能条件を特定の小役の入賞により充足し得るよう構成してもよいし、状態昇格役や状態転落役を変更・追加してもよいし、移行し得る遊技状態の種類を変更・追加してもよい(高確率状態よりもART状態に移行し易い超高確率状態を設ける、等)。
次に、図47は、第3実施形態における、遊技状態遷移図(遊技状態遷移フロー)である、同図に示されるように、通常遊技状態には低確率状態と高確率状態とが存在しており、高確率状態は低確率状態よりも、ART状態に移行し易いよう構成されている(前述したように、高確率状態及び低確率状態は、主制御基板M側で管理されている)。尚、前述したように、低確率状態から高確率状態へは、スイカの入賞によって移行し得るよう構成されており、高確率状態から低確率状態へは、再遊技の入賞によって移行し得るよう構成されている。また、ボーナス終了後にはボーナス後状態に移行し、ベル成立ゲームにて押し順に正解できない(押し順不正解する)ことで、通常遊技状態に移行するよう構成されている。尚、ART状態又はART準備状態にてボーナスが成立した場合にも、当該ボーナス後には、ボーナス後状態に移行し、ベルの押し順不正解することで、通常遊技状態に移行した後に、「再遊技05」が成立することでART準備状態に再度移行するよう構成されている(ART状態にてボーナスが成立した場合には、その後「再遊技06」が成立することでART状態に再度移行する)。尚、通常遊技状態からART準備状態には「再遊技05」の入賞で移行し、ART準備状態からART状態には「再遊技06」の入賞で移行し、ART準備状態から通常遊技状態及びART状態から通常遊技状態には「再遊技03又は再遊技04」の入賞、又は、ベルの押し順不正解(9枚の払出とならなかった場合)で移行するよう構成されている。即ち、以上で示した遊技状態は、すべて主制御基板M側にて(特に、第1ROM・RAM領域内のデータに基づき)管理されており、従来の回胴式遊技機において副制御基板S側で制御していた、いわゆるAT機能(押し順ナビ機能を含む)が、すべて主制御基板M側へ移行されている(出玉に関する情報が、すべて主制御基板M側で管理されている)ことになる。
<第1ROM・RAM領域における処理>
次に、図48は、第3実施形態における、ステップ1600のサブルーチンに係る、タイマ割り込み時処理のフローチャートである。本実施形態との相違点は、ステップ1656(第3)〜ステップ1660(第3)、ステップ3450(第3)、ステップ3500(第3)及びステップ1662(第3)であり、その目的は、主制御基板M側から回胴式遊技機外へ出玉に関する情報を送信可能とすることにある。即ち、ステップ1612で全リールの回胴駆動制御処理を実行した後、ステップ1656(第3)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ARTカウンタM60のカウンタ値が0より大きいか否かを判定する。ステップ1656(第3)でYesの場合、ステップ1658(第3)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ARTカウンタ値表示装置D280にてART残りゲーム数(ARTカウンタM60のカウンタ値)を表示し、ステップ1614に移行する。他方、ステップ1656(第3)でNoの場合にも、ステップ1614に移行する。尚、第3実施形態においては、ARTカウンタM60のカウンタ値が0より大きい場合にARTカウンタ値表示装置D280にてART残りゲーム数を表示するよう構成したが、ART状態中にのみART残りゲーム数を表示するよう構成してもよい。
<第1ROM・RAM領域における処理>
また、ステップ1628で外部信号を出力した後(いわゆる外部出力端子板への信号出力であり、詳細後述する出玉試験用プログラムとは別個のものである)、ステップ1660(第3)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域の試験信号出力処理を呼び出し、ステップ3450(第3)に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ3450(第3)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、第1試験信号出力処理を実行する。次に、ステップ3500(第3)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、第2試験信号出力処理を実行する。次に、ステップ1662(第3)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1ROM領域の呼び出し元に復帰し、ステップ1630に移行する。尚、第3実施形態においては、ステップ1606のタイマ計測を実行した場合に、ステップ3208にてセットされた出力時間タイマM80の条件装置出力時間が1減算されることとなる(即ち、タイマ割り込み間隔=約2msで、出力時間タイマM80のカウント値が1減算される)。
<第2ROM・RAM領域における処理>
次に、図49は、第3実施形態における、図48のステップ3450(第3)のサブルーチンに係る、第1試験信号出力処理のフローチャートである。はじめに、回胴式遊技機における出玉試験は、出玉試験申請した回胴式遊技機の実機と出玉試験機とを、中継基板(以下、試験基板)を介して相互に接続し、回胴式遊技機の実機での動作内容を出玉試験機にて抽出することで出玉試験が実施されている。また、従来では、内部抽選の結果や遊技状態に関する情報は、主制御基板M→第1試験基板→出玉試験機との伝達経路を採る一方で、押し順ナビに関する情報(特に、停止ボタンD40の操作順序や操作タイミングに係る情報)は、副制御基板S→第2試験基板→出玉試験機との伝達経路を採っている。そして、第3実施形態のように構成した場合には、前述したように、出玉に関する情報が、すべて主制御基板M側で管理されているため、この伝達経路を簡素化したり或いは出玉試験機へ送信する情報をより詳細化することも可能となる。そこで、第3実施形態のように構成した場合における出玉試験機(試験基板)への情報出力制御方法の一例を、以下、第1試験信号出力処理及び第2試験信号出力処理として示すこととする。尚、以下に示す態様においては、第1試験基板及び第2試験基板の双方において、これら基板はマイコン制御されないよう構成されており、即ち、出玉試験機側が認識できる情報出力内容及び情報出力タイミングにて、主制御基板Mから出力されるよう構成されている例示となる(但し、これら基板がマイコン制御される場合には、主制御基板Mから試験基板側に対して、出玉試験機側へ出力すべき情報の生データを一括して出力し、出玉試験機側が認識できる情報出力内容及び情報出力タイミングとなるよう試験基板側で調整して出力するよう構成してもよい)。
まず、ステップ3452で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM内領域内の作動状態情報をレジスタ領域(例えば、Aレジスタ)に一時記憶する。次に、ステップ3454で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、Aレジスタ)に一時記憶されている作動状態情報を第1試験基板に出力する(例えば、主制御基板Mにおける第1試験基板への出力ポートである第1出力ポートにAレジスタの値をセットする)。ここで、同図右上段は作動状態情報の一例であり、同図に示されるように、「D0」〜「D7」が「1」(作動)であるか「0」(未作動)であるかによって遊技状態(作動状態)を管理可能としている。尚、作動状態情報は、これには限定されず、例えば、「2種BB」(いわゆる第2種特別役物に係る役物連続作動装置)、「CB」(いわゆる第2種特別役物)、「SB」(いわゆる普通役物)、「ART内部当選状態」(第3実施形態でいうところの内部ART当選中フラグのフラグ状態)、「ART作動状態」(第3実施形態でいうところのARTカウンタM60のカウンタ値が0より大きい状態)、「擬似遊技(演出としてのリールの駆動、等)」、等の第1試験基板に送信する様々な作動状態を設けてもよい。尚、第3実施形態においては、作動状態情報として、「RB」(いわゆる第1種特別役物)に係る情報を第1試験基板に送信するよう構成しているが、第3実施形態に係る回胴式遊技機は、「1種BB」が作動すると「RB」が自動的に作動する(いわゆる、1種BBのRB連続作動)よう構成されており、「1種BB」の図柄(本例では、「羊」、「セブン」)が表示されると、「RB」も作動し(「RB」に係る作動状態情報を「1」にし)、当該「RB」が作動した旨を試験信号として第1試験基板に送信するよう構成している。また、「RB」には終了条件{例えば8回の入賞、又は12回の遊技(ゲーム)の終了}が定められており、「RB」が終了した後に当該「RB」に係る作動状態情報を所定時間(例えば、6割り込み)の間「0」にしている。その後、「1種BB」の終了条件を満たしていない(「1種BB」が継続して作動している)場合には、「RB」に係る作動状態情報を再度「1」に設定する。このように構成することにより、第1試験基板に送信する試験信号を通じて、試験機が「RB」の終了条件に係る規則を満たしているか否かを判定することができることとなる。
<第2ROM・RAM領域における処理>
次に、ステップ3456で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域内の出力時間タイマM80のタイマ値(条件装置情報の出力タイミングが終了した時点で0となるよう構成されている)をレジスタ領域(例えば、Aレジスタ)に一時記憶する。次に、ステップ3458で、CPUC100は、第2ROM・RAM領域内のデータに基づき、条件装置情報の出力タイミングであるか否かを判定する(出力時間タイマM80のタイマ値に基づく判定であり、Noの場合には、Aレジスタにはすべて「0」が入っていることになる)。ステップ3458でYesの場合、ステップ3460で、CPUC100は、第2ROM・RAM領域内のデータに基づき、条件装置情報として、ボーナス状態情報アドレス(本例では、2834)をレジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3462で、CPUC100は、第2ROM・RAM領域内のデータに基づき、ボーナス状態情報の出力タイミングであるか否かを判定する[例えば、Aレジスタの出力時間タイマ値情報に係る値から{(23/2)+1})を減算した値が0より大きいか否かを判定する]。ステップ3462でYesの場合、ステップ3466に移行する。他方、ステップ3462でNoの場合、ステップ3464で、CPUC100は、第2ROM・RAM領域内のデータに基づき、条件装置情報として、小役状態情報アドレス(本例では、2833)をレジスタ領域(例えば、HLレジスタ)に一時記憶し、ステップ3466に移行する(ボーナス状態情報の下位8ビットを「−1」した値が小役状態情報アドレスとなっている)。次に、ステップ3466で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されているアドレスに対応する条件装置情報を別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、ステップ3468に移行する。尚、ステップ3458でNoの場合にも、ステップ3468に移行する。次に、ステップ3468で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、Aレジスタ)に一時記憶されている条件装置情報を第1試験基板に出力し(例えば、主制御基板Mにおける第1試験基板への出力ポートである第2出力ポートにAレジスタの値をセットし)、次の処理{ステップ3500(第3)の処理}に移行する。ここで、同図右下段は、条件装置情報の一例であり、同図に示されるように、「D0」〜「D5」に関しては、前述した処理によって、当該ゲームにおける抽選結果となる条件装置番号がセットされている。また、小役状態情報の場合には「D6」が「1」、「D7」が「0」とセットされており、ボーナス状態情報の場合には「D7」が「0」、「D6」が「1」とセットされており、ステップ3468で出力される情報が、小役とボーナスとのどちらの条件装置情報であるかを(出玉試験機側が)判別可能に構成されている。尚、不図示であるが、第3実施形態においては、あるゲームにおいて、ボーナスが当該あるゲーム以前に当選している状態(内部中)である場合には、当該当選しているボーナスをボーナス状態情報として第1試験基板に出力するよう構成している。また、第3実施形態においては、ボーナス状態情報を格納しているアドレス(2834)と、小役状態情報を格納しているアドレス(2833)が隣合わせになるように構成されている。このため、第3実施形態では、ボーナス状態情報のアドレスをHLレジスタに記憶した後、小役状態情報を出力する場合には、HLレジスタの値を「−1」するだけで小役状態情報を出力することができる。尚、第3実施形態ではボーナス状態情報をHLレジスタに記憶しているが小役状態情報をHLレジスタに記憶するよう構成しても良いし、ボーナス状態情報のアドレスの次のアドレスに小役状態情報のアドレスとしても良い。このように構成することにより、少ない論理演算により、出力したい情報が格納されているアドレスを指定することができる。
尚、出力時間タイマM80及び当該タイマ値に係る情報は、割り込み時処理であるステップ3468にて常に出力するよう構成されており、遊技進行制御処理において、前回のゲームに係るリールM50の回転開始から最小時間(あるゲームに係るリールM50の回転開始タイミングから、次のゲームに係るリールM50の回転開始タイミングまでに最低限担保されていなければならない時間であり、本例では、4.1秒)が経過したタイミング(条件装置情報の最適な出力開始タイミング)であるステップ3208にて出力時間タイマM80に条件装置情報出力時間(本例では、24割り込み)をセットすることにより、当該セットタイミング直後の割り込み時処理であるステップ3468の処理によって、適切なタイミングで第1試験基板に条件装置情報を出力可能に構成されている。また、ステップ3208にて出力時間タイマM80にセットされた条件装置情報出力時間(本例では、24割り込み)が1回の割り込み毎に1減算されていき、出力時間タイマM80のタイマ値から{(23/2)+1})を減算した値が0より大きい場合(当該タイマ値が「0」となるまでの期間の前半である場合)には、ボーナス状態情報を出力し、出力時間タイマM80のタイマ値から{(23/2)+1})を減算した値が0より小さい場合(当該タイマ値が「0」となるまでの期間の後半である場合)には、小役状態情報を出力するよう構成しており、小役状態情報の出力時間が終了(条件装置の出力時間が終了)すると、出力時間タイマM80のタイマ値が0となるよう構成されている。このように構成することで、条件装置情報の出力タイミングが終了して条件装置情報に係るOFF信号を出力する際に、出力時間タイマ値情報をAレジスタにセットすれば、Aレジスタにすべて「0」をセットするための固定値を持たずとも条件装置情報に係るOFF信号が出力できることとなり、簡素化された処理によって条件装置情報に係るOFF信号を出力できることとなる。また、条件装置情報出力時間(本例では、24割り込み)が出力時間タイマM80にセットされるのは、ステップ3204にて遊技間隔最小時間タイマ値が0となった直後、即ち、最小時間(あるゲームに係るリールM50の回転開始タイミングから、次のゲームに係るリールM50の回転開始タイミングまでに最低限担保されていなければならない時間であり、本例では、4.1秒)が経過した直後のタイミングであるよう構成されているため、最小時間を担保した信号を第1試験基板に出力するための手段を新たに設けずとも、出力時間タイマM80を用いた簡素化された処理によって最小遊技時間を担保した試験を実行することができることとなる。
<第2ROM・RAM領域における処理>
次に、図50は、第3実施形態における、図48のステップ3500(第3)のサブルーチンに係る、第2試験信号出力処理のフローチャートである。まず、ステップ3508で、CPUC100は、第2ROM・RAM領域内のデータに基づき、操作態様情報の出力タイミング(例えば、リールM50の回転開始から2秒間)であるか否かを判定する。ステップ3508でYesの場合、ステップ3510で、CPUC100は、第2ROM・RAM領域内のデータに基づき、押し順表示装置D270に押し順情報が表示されているか否か(押し順表示装置D270に表示するための押し順に係る情報が第1RAM領域に格納されているか否か)を判定する(又は、押し順情報が第1RAM領域内に一時記憶されているのであれば、その押し順情報を参照する)。ステップ3510でYesの場合、ステップ3550(第3)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、押し順ナビあり時信号制御処理を実行し、ステップ3512に移行する。他方、ステップ3510でNoの場合、ステップ3600(第3)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、押し順ナビなし時信号制御処理を実行し、ステップ3512に移行する。尚、ステップ3508でNoの場合にも、ステップ3512に移行する。次に、ステップ3512で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、Aレジスタ)に一時記憶されている操作態様情報(後述する押し順ナビあり時信号制御処理又は押し順ナビなし時信号制御処理でセットされたもの)を第2試験基板に出力し(例えば、主制御基板Mにおける第2試験基板への出力ポートである第3出力ポートにAレジスタの値をセットし)、次の処理{ステップ1662(第3)の処理}に移行する。尚、主制御基板Mと第2試験基板との情報送受信方法(コマンド通信方法)は、パラレル通信であってもシリアル通信であっても問題ない。
<第2ROM・RAM領域における処理>
次に、図51は、第3実施形態における、図50のステップ3550(第3)のサブルーチンに係る、押し順ナビあり時信号制御処理のフローチャートである。まず、ステップ3552で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第1停止操作態様情報出力タイミングであるか否かを判定する。ステップ3552でYesの場合、ステップ3554で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域内の最高機械割押し順あり操作態様情報{押し順ナビが実行されるゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)}の第1停止操作態様情報(第1停止に係る操作態様情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3556で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順あり操作態様情報の第1停止操作態様情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。
<第2ROM・RAM領域における処理>
他方、ステップ3552でNoの場合、ステップ3558で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第2停止操作態様情報出力タイミングであるか否かを判定する。ステップ3558でYesの場合、ステップ3560で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域内の最高機械割押し順あり操作態様情報{押し順ナビが実行されるゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)}の第2停止操作態様情報(第2停止に係る操作態様情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3562で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順あり操作態様情報の第2停止操作態様情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。
<第2ROM・RAM領域における処理>
他方、ステップ3558でNoの場合、ステップ3564で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第3停止操作態様情報出力タイミングであるか否かを判定する。ステップ3564でYesの場合、ステップ3566で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域内の最高機械割押し順あり操作態様情報{押し順ナビが実行されるゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)}の第3停止操作態様情報(第3停止に係る操作態様情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3568で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順あり操作態様情報の第3停止操作態様情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。尚、ステップ3564でNoの場合にも、次の処理(ステップ3512の処理)に移行する。ここで、第3実施形態においては、押し順ナビあり時における操作態様情報出力タイミングの順序は、「第1停止操作態様情報出力タイミング→第2停止操作態様情報出力タイミング→第3停止操作態様情報出力タイミング」の順となっている。
<第2ROM・RAM領域における処理>
次に、図52は、第3実施形態における、図50のステップ3600(第3)のサブルーチンに係る、押し順ナビなし時信号制御処理のフローチャートである。まず、ステップ3602で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第1停止操作態様情報出力タイミングであるか否かを判定する。ステップ3602でYesの場合、ステップ3604で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM領域内の最高機械割押し順なし操作態様情報{押し順ナビが実行されないゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)であるが、遊技者は押し順ナビが表示されていない場合には、成立している条件装置や押し順を判別できない状況にて最適な操作態様を実行することとなる}の第1停止操作態様情報(第1停止に係る操作態様情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3606で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順なし操作態様情報の第1停止操作態様情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。
<第2ROM・RAM領域における処理>
他方、ステップ3602でNoの場合、ステップ3608で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第2停止操作態様情報出力タイミングであるか否かを判定する。ステップ3608でYesの場合、ステップ3610で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM領域内の最高機械割押し順なし操作態様情報{押し順ナビが実行されないゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)であるが、遊技者は押し順ナビが表示されていない場合には、成立している条件装置や押し順を判別できない状況にて最適な操作態様を実行することとなる}の第2停止操作態様情報(第2停止に係る操作態様情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3612で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順なし操作態様情報の第2停止操作態様情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。
<第2ROM・RAM領域における処理>
他方、ステップ3608でNoの場合、ステップ3614で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第3停止操作態様情報出力タイミングであるか否かを判定する。ステップ3614でYesの場合、ステップ3616で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM領域内の最高機械割押し順なし操作態様情報{押し順ナビが実行されないゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)であるが、遊技者は押し順ナビが表示されていない場合には、成立している条件装置や押し順を判別できない状況にて最適な操作態様を実行することとなる}の第3停止操作態様情報(第3停止に係る操作態様情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3616で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順なし操作態様情報の第3停止操作態様情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。尚、ステップ3614でNoの場合にも、次の処理(ステップ3512の処理)に移行する。ここで、第3実施形態においては、押し順ナビなし時における操作態様情報出力タイミングの順序は、「第1停止操作態様情報出力タイミング→第2停止操作態様情報出力タイミング→第3停止操作態様情報出力タイミング」の順となっている。尚、第3実施形態においては、第1試験基板に条件装置情報を出力した後のタイミングで、第2試験基板に操作態様情報を出力するよう構成したが、第2試験基板に操作態様情報を出力した後のタイミングで、第1試験基板に条件装置情報を出力するよう構成してもよい。
<第2ROM・RAM領域における処理>
次に、図53は、第3実施形態における、操作態様情報一覧である。第3実施形態においては、最高機械割押し順あり操作態様情報は、押し順表示装置D270に表示される押し順と同様の順にてフリー打ち(どの位置にて停止ボタンD40を操作するかが決められておらず、停止可能であれば停止ボタンD40を操作する打ち方)を実行するよう構成されている。また、最高機械割押し順なし操作態様情報は、すべて「左→中→右」の押し順となり、ボーナスが成立していない場合には、第1停止は「左19番」(左リールM51の19番が下段のタイミングにて左停止ボタンD41を操作する)となり、スイカが成立している場合には、第2停止は「中5番」(中リールM52の5番が下段のタイミングにて中停止ボタンD42を操作する)、第3停止は「右3番」(右リールM53の3番が下段のタイミングにて右停止ボタンD43を操作する)、となっており、スイカが成立していない場合には、第2停止は中リールM52をフリー打ち、第3停止は右リールM53をフリー打ちとなっている。他方、ボーナスが成立している場合には、成立しているボーナス図柄が上段のタイミングで停止ボタンD40を操作するよう構成されており、このように操作することで、ボーナスが成立した場合には、すぐに当該成立したボーナスを揃える(開始させる)よう構成されている。また、具体的に送信する操作態様情報の内容については、上位3ビットが停止させるリール(押し順)に係る情報であり、下位5ビットが停止させる位置に係る情報である。例えば、左リールは上位3ビットが「001」、「18番」が下段のタイミングで停止ボタンD40を操作する場合には、「10010」、フリー打ちの場合には「11111」となっている。また、1回のゲームに係る操作態様情報の出力例は、例えば、「左→右→中」の押し順ベルを揃える場合(ベルの場合は全リール停止位置に拘らずフリー打ちで入賞可能)には、第1停止用信号(第1停止操作態様情報):「00111111」、第2停止用信号(第2停止操作態様情報):「01111111」、第3停止用信号(第3停止操作態様情報):「01011111」となる。また、左リール第1停止のチェリー再遊技を揃える場合(チェリー再遊技の場合は全リール停止位置に拘らずフリー打ちで入賞可能)には、第1停止用信号(第1停止操作態様情報):「00111111」、第2停止用信号(第2停止操作態様情報):「01011111」、第3停止用信号(第3停止操作態様情報):「01111111」となる。尚、第3実施形態においては、上位3ビットにて停止リールの種別を示していたが、例えば「01」が「左リールM51」、「10」が「中リールM52」、「11」が「右リールM53」のように上位2ビットでも表現することが可能であり、その場合には、下位6ビットにて停止させる位置に係る情報を表現しても良い。
以上のように構成することで、第3実施形態に係る回胴式遊技機によれば、第1試験基板及び第2試験基板に出力する信号を制御する処理を第2ROM・RAM領域における処理にて実行することにより、実際に遊技場に設置された遊技機を遊技者が遊技する際には必要のない処理、即ち、遊技の進行に差支えのない処理を第2プログラム領域に実装することができ、第1プログラム領域の使用容量の削減ができることとなる。
また、第3実施形態に係る回胴式遊技機によれば、遊技間隔最小時間(本例では、4.1秒)が経過した後に条件装置情報出力時間をセットするよう構成し、且つ、第1試験基板への出力時において、当該条件装置情報出力時間を参照して小役状態情報とボーナス状態情報との出力タイミングを判定し、出力時間タイマ値が0の場合にはAレジスタを「0」として出力することにより、第1試験基板によって型式試験を実行する際に、簡素化された処理によって最小遊技時間を担保した試験を実行することができるよう構成されている。
また、第3実施形態においては、条件装置情報が第1RAM領域にセットされたタイミング以降の割り込み処理にてサブ側(副制御基板S側)に当該条件装置情報を送信可能になるのに対して、「遊技間隔最小時間の経過→遊技間隔最小時間を遊技間隔最小時間タイマM70にセット→条件装置情報出力時間を出力時間タイマM80にセット」を実行した以降の割り込み処理にて第1試験基板に当該条件装置情報を送信可能になるよう構成されており、副制御基板Sと第1試験基板とで条件装置情報送信可能タイミングが相違し得るよう構成されている。
(第3実施形態からの変更例1)
尚、第3実施形態においては、第1試験基板に出力する条件装置情報として、いずれの条件装置情報を出力するタイミングであるかに係る識別値(小役識別値、ボーナス識別値)を第1プログラム領域における処理によって、第1RAM領域に一時記憶し、且つ、第1プログラム領域にて実行された押し順表示装置D270による押し順ナビと対応する形で、第2試験基板への出力信号を制御するよう構成したが、第2プログラム領域にて第1試験基板及び第2試験基板に出力する信号を制御する構成はこれには限定されない。そこで、そのような処理の一例を第3実施形態からの変更例1とし、以下、第3実施形態からの変更点について詳述していく。
<第1ROM・RAM領域における処理>
はじめに、図54は、第3実施形態からの変更例1における、図9におけるステップ1200のサブルーチンに係る、遊技進行制御処理(2枚目)のフローチャートである。第3実施形からの変更点は、ステップ1294(第3変1)であり、即ち、ステップ3400(第3)で遊技状態移行制御処理を実行した後、ステップ1294(第3変1)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、押し順ナビ{ステップ3176(第3変1)でオンとなるフラグである}当選フラグをオフにし、ステップ1292に移行する。
<第1ROM・RAM領域における処理>
次に、図55は、第3実施形態からの変更例1における、図54におけるステップ3150(第3)のサブルーチンに係る、押し順ナビ制御処理のフローチャートである。第3実施形からの変更点は、ステップ3176(第3変1)であり、即ち、ステップ3160で押し順ナビ抽選に当選した場合、ステップ3176(第3変1)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、押し順ナビ当選フラグをオンにし、ステップ3163に移行する。このように構成することで、第3実施形態からの変更例1においては、押し順ナビ抽選に当選し、押し順ナビを実行する場合に、押し順表示装置D270を参照せずに第2試験基板に押し順に係る情報を送信することが可能となっている(詳細は後述する)。
<第2ROM・RAM領域における処理>
次に、図56は、第3実施形態からの変更例1における、図48におけるステップ3450(第3)のサブルーチンに係る、第1試験信号出力処理のフローチャートである。第3実施形からの変更点は、ステップ3464(第3変1)、ステップ3470(第3変1)〜ステップ3476(第3変1)、であり、即ち、ステップ3462でボーナス状態情報の出力タイミングであった場合、ステップ3464(第3変1)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、ボーナス状態情報の条件装置情報アドレスをレジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3466で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されているボーナス状態情報の条件装置情報アドレスを、別のレジスタ領域(例えば、Aレジスタ)に一時記憶する。次に、ステップ3470(第3変1)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、Aレジスタの「D6」及び「D7」)をボーナス識別値に書き換えて(「D6」を「0」、「D7」を「1」に書き換え)ステップ3468に移行する。
<第2ROM・RAM領域における処理>
また、ステップ3462で、ボーナス状態情報の出力タイミングでなかった場合、ステップ3472(第3変1)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、小役状態情報の条件装置情報アドレスをレジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3474(第3変1)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている小役状態情報の条件装置情報アドレスを、別のレジスタ領域(例えば、Aレジスタ)に一時記憶する。次に、ステップ3476(第3変1)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、Aレジスタの「D6」及び「D7」)を小役識別値に書き換えて(「D6」を「1」、「D7」を「0」に書き換え)ステップ3468に移行する。尚、遊技の進行に係る条件装置情報(内部抽選結果等)の記憶領域と、試験基板に出力するための条件装置情報の記憶領域とは別々に設けてもよいし、条件装置情報の記憶領域を兼用してもよい。このように構成することにより、第1RAM領域の記憶領域を削減することができる。
<第2ROM・RAM領域における処理>
次に、図57は、第3実施形態からの変更例1における、図48におけるステップ3500(第3)のサブルーチンに係る、第2試験信号出力処理のフローチャートである。第3実施形からの変更点は、ステップ3650(第3変1)であり、即ち、ステップ3508で操作態様情報の出力タイミングであった場合、ステップ3650(第3変1)で、後述する、操作態様情報制御処理を実行し、ステップ3512に移行する。
<第2ROM・RAM領域における処理>
次に、図58は、第3実施形態からの変更例1における、図57におけるステップ3650(第3)のサブルーチンに係る、操作態様情報制御処理のフローチャートである。まず、ステップ3652で、CPUC100は、第2ROM・RAM領域内のデータに基づき、ARTカウンタM60のカウンタ値が0より大きいか否か、換言すると、ART状態であるか否かを判定する。ステップ3652でYesの場合、ステップ3656に移行する。他方、ステップ3652でNoの場合、ステップ3654で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在ART準備状態中であるか否かを判定する。ステップ3654でYesの場合、ステップ3656で、CPUC100は、第2ROM・RAM領域内のデータに基づき、当該ゲームに係る条件装置は押し順あり上乗せ役(ART状態にて押し順に正解することによりARTゲーム数が上乗せされる条件装置であり、本例では、チェリー再遊技)であるか否かを判定する。ステップ3656でYesの場合、ステップ3658で、CPUC100は、第2ROM・RAM領域内のデータに基づき、押し順ナビ当選フラグがオンであるか否かを判定する。ステップ3658でYesの場合、ステップ3550(第3変1)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、押し順ナビあり時信号制御処理を実行し、次の処理(ステップ3512の処理)に移行する。他方、ステップ3656でNoの場合、ステップ3660で、CPUC100は、第2ROM・RAM領域内のデータに基づき、当該ゲームに係る条件装置は押し順あり小役(押し順によって遊技者の利益率が相違する条件装置)ではないか否かを判定する。ステップ3660でYesの場合、換言すると、当該ゲームの条件装置が再遊技03、04、06又はベルではない場合には、ステップ3600(第3変1)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、押し順ナビなし時信号制御処理を実行し、次の処理(ステップ3512の処理)に移行する。尚、ステップ3658でNoの場合にもステップ3600(第3変1)に移行する。
<第2ROM・RAM領域における処理>
また、ステップ3654でNoの場合、ステップ3662で、CPUC100は、第2ROM・RAM領域内のデータに基づき、内部ART当選中フラグ(ステップ3166にてオンとなるフラグであり、ART状態への移行が確定的になることでオンとなるフラグである)がオンであるか否かを判定する。ステップ3662でYesの場合、ステップ3664で、CPUC100は、第2ROM・RAM領域内のデータに基づき、当該ゲームに係る条件装置は準備状態移行再遊技(通常遊技状態からART準備状態に移行し得る再遊技であり、本例では、再遊技05)であるか否かを判定する。ステップ3664でYesの場合、ステップ3550(第3変1)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、押し順ナビあり時信号制御処理を実行し、次の処理(ステップ3512の処理)に移行する。尚、ステップ3660でNoの場合には、ステップ3550(第3変1)に移行する。また、ステップ3662又はステップ3664でNoの場合には、次の処理(ステップ3512の処理)に移行する。
<第2ROM・RAM領域における処理>
次に、図59は、第3実施形態からの変更例1における、図50のステップ3550(第3変1)のサブルーチンに係る、押し順ナビあり時信号制御処理のフローチャートである。まず、ステップ3570で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第1停止リール情報出力タイミングであるか否かを判定する。ステップ3570でYesの場合、ステップ3572で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域内の最高機械割押し順あり操作態様情報{押し順ナビが実行されるゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)}の第1停止リール情報(第1停止に係るリール情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3574で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順あり操作態様情報の第1停止リール情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。
<第2ROM・RAM領域における処理>
他方、ステップ3570でNoの場合、ステップ3576で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第1停止ステップ情報出力タイミングであるか否かを判定する。ステップ3576でYesの場合、ステップ3578で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域内の最高機械割押し順あり操作態様情報{押し順ナビが実行されるゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)}の第1停止ステップ情報(第1停止に係るステップ情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3580で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順あり操作態様情報の第1停止ステップ情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。
<第2ROM・RAM領域における処理>
他方、ステップ3576でNoの場合、ステップ3582で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第2停止リール情報出力タイミングであるか否かを判定する。ステップ3582でYesの場合、ステップ3583で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域内の最高機械割押し順あり操作態様情報{押し順ナビが実行されるゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)}の第2停止リール情報(第2停止に係るリール情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3584で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順あり操作態様情報の第2停止リール情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。
<第2ROM・RAM領域における処理>
他方、ステップ3582でNoの場合、ステップ3585で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第2停止ステップ情報出力タイミングであるか否かを判定する。ステップ3585でYesの場合、ステップ3586で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域内の最高機械割押し順あり操作態様情報{押し順ナビが実行されるゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)}の第2停止ステップ情報(第2停止に係るステップ情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3588で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順あり操作態様情報の第2停止ステップ情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。
<第2ROM・RAM領域における処理>
他方、ステップ3585でNoの場合、ステップ3589で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第3停止リール情報出力タイミングであるか否かを判定する。ステップ3589でYesの場合、ステップ3590で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域内の最高機械割押し順あり操作態様情報{押し順ナビが実行されるゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)}の第3停止リール情報(第3停止に係るリール情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3592で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順あり操作態様情報の第3停止リール情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。
<第2ROM・RAM領域における処理>
他方、ステップ3589でNoの場合、ステップ3594で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第3停止ステップ情報出力タイミングであるか否かを判定する。ステップ3594でYesの場合、ステップ3596で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域内の最高機械割押し順あり操作態様情報{押し順ナビが実行されるゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)}の第3停止ステップ情報(第3停止に係るステップ情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3598で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順あり操作態様情報の第3停止ステップ情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。尚、ステップ3594でNoの場合にも、次の処理(ステップ3512の処理)に移行する。このように、第3実施形態からの変更例1においては、停止リールに関する情報と停止ステップ(停止位置)に関する情報とを別々に送信しており、出力タイミングは「第1停止リール情報→第1停止ステップ情報→第2停止リール情報→第2停止ステップ情報→第3停止リール情報→第3停止ステップ情報」の順となっている。
<第2ROM・RAM領域における処理>
次に、図60は、第3実施形態からの変更例1における、図50のステップ3600(第3変1)のサブルーチンに係る、押し順ナビなし時信号制御処理のフローチャートである。まず、ステップ3620で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第1停止リール情報出力タイミングであるか否かを判定する。ステップ3570でYesの場合、ステップ3622で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM領域内の最高機械割押し順なし操作態様情報{押し順ナビが実行されないゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)}の第1停止リール情報(第1停止に係るリール情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3624で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順なし操作態様情報の第1停止リール情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。
<第2ROM・RAM領域における処理>
他方、ステップ3620でNoの場合、ステップ3626で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第1停止ステップ情報出力タイミングであるか否かを判定する。ステップ3626でYesの場合、ステップ3628で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM領域内の最高機械割押し順なし操作態様情報{押し順ナビが実行されないゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)}の第1停止ステップ情報(第1停止に係るステップ情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3630で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順なし操作態様情報の第1停止ステップ情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。
<第2ROM・RAM領域における処理>
他方、ステップ3626でNoの場合、ステップ3632で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第2停止リール情報出力タイミングであるか否かを判定する。ステップ3632でYesの場合、ステップ3634で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM領域内の最高機械割押し順なし操作態様情報{押し順ナビが実行されないゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)}の第2停止リール情報(第2停止に係るリール情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3636で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順なし操作態様情報の第2停止リール情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。
<第2ROM・RAM領域における処理>
他方、ステップ3632でNoの場合、ステップ3638で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第2停止ステップ情報出力タイミングであるか否かを判定する。ステップ3638でYesの場合、ステップ3640で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM領域内の最高機械割押し順なし操作態様情報{押し順ナビが実行されないゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)}の第2停止ステップ情報(第2停止に係るステップ情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3641で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順なし操作態様情報の第2停止ステップ情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。
<第2ROM・RAM領域における処理>
他方、ステップ3538でNoの場合、ステップ3642で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第3停止リール情報出力タイミングであるか否かを判定する。ステップ3642でYesの場合、ステップ3643で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM領域内の最高機械割押し順なし操作態様情報{押し順ナビが実行されないゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)}の第3停止リール情報(第3停止に係るリール情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3644で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順なし操作態様情報の第3停止リール情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。
<第2ROM・RAM領域における処理>
他方、ステップ3642でNoの場合、ステップ3645で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在第3停止ステップ情報出力タイミングであるか否かを判定する。ステップ3645でYesの場合、ステップ3646で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM領域内の最高機械割押し順なし操作態様情報{押し順ナビが実行されないゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)}の第3停止ステップ情報(第3停止に係るステップ情報)アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3648で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順なし操作態様情報の第3停止ステップ情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。尚、ステップ3645でNoの場合にも、次の処理(ステップ3512の処理)に移行する。このように、第3実施形態からの変更例1においては、停止リールに関する情報と停止ステップ(停止位置)に関する情報とを別々に送信しており、出力タイミングは「第1停止リール情報→第1停止ステップ情報→第2停止リール情報→第2停止ステップ情報→第3停止リール情報→第3停止ステップ情報」の順となっている。
<第2ROM・RAM領域における処理>
次に、図61は、第3実施形態からの変更例1における、操作態様情報一覧である。第3実施形態からの変更例1における、具体的に送信する操作態様情報の内容については、停止リール情報は3ビットからなる情報であり、例えば、左リールは「001」となっている。また、停止ステップ情報は9ビットからなる情報であり、例えば、リールM50の基準位置(例えば、0番と19番の境目の位置)が下段の最下部となる状態から65ステップ駆動したタイミングで停止ボタンを操作する場合には「001000001」、フリー打ちの場合には「111111111」となっている。尚、本例における停止ステップ情報についてはあくまで一例であり、当該停止ステップ情報によって、リールM50の停止位置が判別できれば問題なく、リールM50の基準位置(例えば、0番と19番の境目の位置)が下段の最下部となる状態から駆動した分に係るステップ情報には限定されず、リールM50の基準位置(例えば、0番と19番の境目の位置)が中段の最下部となる状態から駆動した分に係るステップ情報や、リールM50の基準位置(例えば、0番と19番の境目の位置)が上段の最下部となる状態から駆動した分に係るステップ情報としても問題ないし、リールM50の基準位置(例えば、0番と19番の境目の位置)が上段の最上部となる状態から駆動した分に係るステップ情報としても問題ない。また、1回のゲームに係る操作態様情報の出力例は、例えば、「右→左→中」の押し順ベルを揃える場合(ベルの場合は全リール停止位置に拘らずフリー打ちで入賞可能)には、押し順ナビありの場合には、第1停止リール情報に停止ステップ情報の最上位ビットを加えた:「01100001」、第1停止ステップ情報:「11111111」、第2停止リール情報に停止ステップ情報の最上位ビットを加えた:「00100001」、第2停止ステップ情報:「11111111」、第3停止リール情報に停止ステップ情報の最上位ビットを加えた:「01000001」、第3停止ステップ情報:「11111111」となり、押し順ナビなしの場合には、第1停止リール情報に停止ステップ情報の最上位ビットを加えた:「00100001」、第1停止ステップ情報:「11111111」、第2停止リール情報に停止ステップ情報の最上位ビットを加えた:「01000001」、第2停止ステップ情報:「11111111」、第3停止リール情報に停止ステップ情報の最上位ビットを加えた:「01100001」、第3停止ステップ情報:「11111111」となっている。このように、第3実施形態からの変更例1においては、「第1信号:上位3ビットを停止リールの種類、下位1ビットを上位のステップ番号」、「第2信号:8ビットが下位のステップ番号」として、1つのリールの停止に係る情報を送信することにより、停止リール及び停止ステップに係る情報を送信可能に構成されている。
以上のように構成することで、第3実施形態からの変更例1に係る回胴式遊技機によれば、第1試験基板に出力する条件装置情報として、いずれの条件装置情報を出力するタイミングであるかに係る識別値(小役識別値、ボーナス識別値)を第2プログラム領域における処理によってレジスタ領域に一時記憶し、且つ、第1プログラム領域における押し順ナビに拘らず、第2プログラム領域にて第2試験基板への出力信号を制御するよう構成することにより、第3実施形態より多くの試験基板へ出力する信号に係る処理を第2プログラム領域にて実行することができ、より多くの第1プログラム領域の使用容量の削減ができることとなる。
(第3実施形態からの変更例2)
尚、3実施形態からの変更例1においては、第2試験基板に出力する操作態様情報として、停止するリールに係る情報と当該リールの停止位置に係る情報をすべての停止(第1停止〜第3停止)について出力するよう構成したが、第2試験基板への操作態様情報の出力態様はこれには限定されない。また、副制御基板Sへ出力する情報と第1試験基板へ出力する情報とを相違させてもよい。そこで、第3実施形態及び/又は第3実施形態からの変更例1とは異なる第2試験基板への操作態様情報の出力態様及び副制御基板Sへの条件装置情報の出力態様である構成を第3実施形態からの変更例2とし、以下、第3実施形態、又は、第3実施形態からの変更例1からの変更点について詳述していく。
<第2ROM・RAM領域における処理>
はじめに、図62は、第3実施形態からの変更例2における、図9におけるステップ1200のサブルーチンに係る、遊技進行制御処理(2枚目)のフローチャートである。第3実施形態からの変更点は、ステップ1296(第3変2)及びステップ1257‐1(第3変2)であり、即ち、ステップ1257で内部抽選を実行した後、ステップ1296(第3変2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、内部抽選の抽選結果及び条件装置識別値(ボーナス識別値、小役識別値、等)に係るコマンド(サブ側へのコマンド)を第1RAM領域に一時記憶する。次に、ステップ1257‐1(第3変2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1試験基板への出力用の内部抽選の抽選結果及び条件装置識別値(ボーナス識別値、小役識別値、等)を第1RAM領域に一時記憶する。ここで、同図右上段はサブ側への出力用の条件装置情報の一例である。同図に示されるように、第3実施形態からの変更例2においては、第1試験基板への出力用の条件装置情報とサブ側への出力用の条件装置情報とは異なるアドレスに格納されている。また、第1試験基板への出力用の条件装置情報と第1試験基板への条件装置識別値(ボーナス識別値、小役識別値、等)とは同じアドレスに格納されている(「D0」〜「D5」に条件装置情報、「D6」〜「D7」に条件装置識別値となっている)ことに対し、サブ側への出力用の条件装置情報とサブ側への出力用の条件装置識別値(ボーナス識別値、小役識別値、等)とは異なるアドレスに格納されている。
<第2ROM・RAM領域における処理>
次に、図63は、第3実施形態からの変更例2における、ステップ1600のサブルーチンに係る、タイマ割り込み時処理のフローチャートである。第3実施形態からの変更点は、ステップ1664(第3変2)であり、即ち、ステップ1626で制御コマンド(サブ側へのコマンド)を送信した後、ステップ1664(第3変2)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ステップ1296(第3変2)にてセットされた内部抽選の抽選結果及び条件装置識別値(ボーナス識別値、小役識別値、等)に係るコマンド(サブ側へのコマンド)を送信し、ステップ1628に移行する。尚、サブ側への内部抽選の抽選結果及び条件装置識別値(ボーナス識別値、小役識別値、等)に係るコマンドの送信タイミングは、ステップ1296(第3変2)の処理の実行直後のタイマ割り込み処理である一方、第1試験基板への内部抽選の抽選結果及び条件装置識別値(ボーナス識別値、小役識別値、等)に係るコマンドの送信タイミングは、ステップ3208の処理の実行直後のタイマ割り込み処理であり、あるゲームに係る内部抽選の抽選結果及び条件装置識別値(ボーナス識別値、小役識別値、等)に係るコマンドの送信タイミングは、サブ側への送信タイミングの方が第1試験基板への送信タイミングよりも早いタイミングとなっている。
<第2ROM・RAM領域における処理>
次に、図64は、第3実施形態からの変更例2における、図50のステップ3550(第3変1)のサブルーチンに係る、押し順ナビあり時信号制御処理のフローチャートである。第3実施形態からの変更例1からの変更点は、ステップ3599‐1(第3変2)〜ステップ3599‐3(第3変2)であり、その目的は、第2試験基板に停止リール情報を出力せずに、リール停止順情報を出力して、一回の情報の出力により3回すべてのリール停止順を出力することであり、即ち、ステップ3599‐1(第3変2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在リール停止順情報出力タイミングであるか否かを判定する。ステップ3599‐1(第3変2)でYesの場合、ステップ3599‐2(第3変2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域内の最高機械割押し順あり操作態様情報{押し順ナビが実行されるゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)}のリール停止順情報アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3599‐3(第3変2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順あり操作態様情報のリール停止順情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。
<第2ROM・RAM領域における処理>
次に、図65は、第3実施形態からの変更例2における、図50のステップ3600(第3変1)のサブルーチンに係る、押し順ナビなし時信号制御処理のフローチャートである。第3実施形態からの変更例1からの変更点は、ステップ3649‐1(第3変2)〜ステップ3649‐3(第3変2)であり、その目的は、第2試験基板に停止リール情報を出力せずに、リール停止順情報を出力して、一回の情報の出力により3回すべてのリール停止順を出力することであり、即ち、ステップ3649‐1(第3変2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在リール停止順情報出力タイミングであるか否かを判定する。ステップ3649‐1(第3変2)でYesの場合、ステップ3649‐2(第3変2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM領域内の最高機械割押し順なし操作態様情報{押し順ナビが実行されないゲームにおける最も遊技者にとって利益率が高い操作態様(押し順、停止位置、等)}のリール停止順情報アドレスを、レジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3649‐3(第3変2)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている、最高機械割押し順なし操作態様情報のリール停止順情報を、別のレジスタ領域(例えば、Aレジスタ)に一時記憶し、次の処理(ステップ3512の処理)に移行する。
<第2ROM・RAM領域における処理>
次に、図66は、第3実施形態からの変更例2における、操作態様情報一覧である。第3実施形態からの変更例2における、具体的に送信する操作態様情報の内容については、リール停止順情報は8ビットからなる情報であり、例えば、「中→左→右」の押し順の場合には、「00000010」、「左→中→右」の押し順の場合には、「00000000」となっている。また、停止ステップ情報は8ビットからなる情報であり、504ステップを2ステップ毎に区切って、252区切りのステップに係る情報を送信し得るよう構成されている。具体的には、リールM50の基準位置(例えば、0番と19番の境目の位置)が下段の最下部となる状態から2ステップ駆動したタイミングで停止ボタンを操作する場合には「00000001」(10進数で「1」)、リールM50の基準位置(例えば、0番と19番の境目の位置)が下段の最下部となる状態から64ステップ駆動したタイミングで停止ボタンを操作する場合には「00100000」(10進数で「32」)、リールM50の基準位置(例えば、0番と19番の境目の位置)が下段の最下部となる状態から504ステップ駆動したタイミングで停止ボタンを操作する場合には「11111100」(10進数で「252」)、フリー打ちの場合には「11111111」となっている。また、1回のゲームに係る操作態様情報の出力例は、例えば、「中→左→右」の押し順ベルを揃える場合(ベルの場合は全リール停止位置に拘らずフリー打ちで入賞可能)には、押し順ナビありの場合には、リール停止順情報:「00000010」、第1停止ステップ情報:「11111111」、第2停止ステップ情報:「11111111」、第3停止ステップ情報:「11111111」となり、押し順ナビなしの場合も同様に、リール停止順情報:「00000010」、第1停止ステップ情報:「11111111」、第2停止ステップ情報:「11111111」、第3停止ステップ情報:「11111111」となっている。
以上のように構成することで、第3実施形態からの変更例2に係る回胴式遊技機によれば、第2試験基板に出力する操作態様情報として、停止するリールに係る情報、即ちリール停止順に係る情報を一回の出力にて第2試験基板へ送信するよう構成することにより、第2試験基板へ出力する回数を減少させることができ、ノイズ等による送信情報化けといった不測の事態が発生する恐れを軽減することができることとなる。また、あるゲームに係る内部抽選の抽選結果及び条件装置識別値(ボーナス識別値、小役識別値、等)に係るコマンドの送信タイミングについて、サブ側への送信タイミングの方が第1試験基板への送信タイミングよりも早いタイミングとなるよう構成することにより、当該あるゲームに係る当選役(スタートレバーの操作)に基づいた演出の実行を遅延させないよう構成することができる。
尚、本例においては、毎ゲームに関する操作態様情報の出力態様として、「左→中→右」の押し順に係る操作態様情報(停止位置に関する情報も含む)を出力し、その後、当該ゲームにおける最適な(最高機械割となる)操作態様情報を出力するよう構成してもよい。また、試験基板(第1試験基板、第2試験基板)への信号の出力態様としては、1回の割り込み処理にて、すべての情報を出力してもよいし、所定バイト(例えば、1バイト)毎に分割して出力するよう構成してもよい。
また、本例においては、操作態様情報の出力態様として、ステップ番号に関する情報を2回に分けて送信する構成として、例えば、「上位2ビットを、下位の識別情報(上位・下位のどちらのステップ番号の情報であるかの識別情報)とし、残りのビットを下位のステップ番号」、「上位2ビットを、上位の識別情報(上位・下位のどちらのステップ番号の情報であるかの識別情報)とし、残りのビットを上位のステップ番号」として送信してもよく、具体的には、「中→左→右」の押し順のベルの場合、押し順ナビあり時においては、「中→左→右」の押し順に係る情報:「00000011」→第1停止上位のステップ番号:「00000001」→第1停止下位のステップ番号:「11111111」(フリー打ち)→第2停止上位のステップ番号:「00000001」→第2停止下位のステップ番号:「11111111」(フリー打ち)→第3停止上位のステップ番号:「00000001」→第3停止下位のステップ番号:「11111111」(フリー打ち)のように送信してもよく、押し順ナビなし時においては、「左→中→右」の押し順に係る情報:「00000001」→第1停止上位のステップ番号:「00000000」→第1停止下位のステップ番号:「01000001」(65ステップ)→第2停止上位のステップ番号:「00000001」→第2停止下位のステップ番号:「11111111」(フリー打ち)→第3停止上位のステップ番号:「00000001」→第3停止下位のステップ番号:「11111111」(フリー打ち)のように送信してもよい。
また、本例においては、押し順ナビあり時と押し順ナビなし時とで、第2試験基板への信号の出力態様(信号の制御処理)が相違し得るよう構成したが、当該出力態様(信号の制御処理)の分類方法はこれには限定されず、例えば、ART中(ART状態)であるか否かによって当該出力態様(信号の制御処理)が相違し得るよう構成してもよい。
また、本例における構成は、遊技メダルを用いて遊技する回胴式遊技機のみに限定される構成ではなく、例えば、ぱちんこ遊技機にて使用する遊技球を用いて遊技する回胴式遊技機(いわゆるパロット)や、遊技媒体を用いない封入式遊技機にも適用可能である。
また、本例においては、ベルや再遊技等の小役の押し順(遊技者に最も高利益となる押し順)を押し順表示装置D270にて報知(ナビ)し得るようなART状態を設けるよう構成したが、これには限定されず、再遊技の当選率があらかじめ定められた値である通常遊技状態よりも再遊技当選率が高い(又は低い)状態である再遊技確率変動遊技状態(RT状態)や、当選した役を入賞させるためのリールの停止順を報知し得るAT(アシストタイム)状態を設けるよう構成してもよいし、前記AT状態又はART状態において、当該ゲームにて当選している小役の種類(又は、小役を入賞させるための停止位置)を報知し得る状態(いわゆる、目押し型AT状態、目押し型ART状態)を設けるよう構成してもよい。
(第4実施形態)
尚、本実施形態から第3実施形態においては、第2ROM領域にて配置されているプログラムコードに基づくCPUC100の処理にて、第1RAM領域(又は、レジスタ領域)を更新及び参照可能に構成し、エラー検出、エラー表示等の遊技機に対して不正行為がなされる(例えば、遊技媒体の投入口や払出口に対して不正にアクセスして遊技媒体を不正な手段で得る、等)ことを防御するための不正行為防止用のプログラムを第2ROM・RAM領域における処理にて実行し得るよう構成したが、実際の回胴式遊技機にてこのような構成を適用する場合には、前述した構成とは異なる構成を適用する場合も考えられる。そこで、そのような構成を第4実施形態とし、以下、第3実施形態との相違点について詳述していく。
<第1ROM・RAM領域における処理>
はじめに、図67は、第4実施形態における、ステップ1000(第4)のサブルーチンに係る、主制御装置メイン処理のフローチャートである。まず、ステップ1000(第4)で、回胴式遊技機Pの電源を投入した後、ステップ1057で、CPUC100は、第1ROM・RAM領域内のデータに基づき、タイマ割り込みをセットする(ここでは、タイマ割り込みの種類をセットするのみであり、以降の処理において、タイマ割り込みが開始されると定期的に後述するタイマ割り込み時処理に係るフローチャートが実行される)。次に、ステップ1058で、CPUC100は、第1ROM・RAM領域内のデータに基づき、主制御チップCの機能設定を実行する。次に、ステップ1060で、CPUC100は、第1RAM内の先頭アドレスからスタックエリアの最終アドレスまでを加算して(チェックサムを算出して)、電源断復帰データを生成する。次に、ステップ1061で、CPUC100は、第1ROM・RAM領域内のデータに基づき、扉スイッチD80、設定扉スイッチM10及び設定キースイッチM20のスイッチ状態を確認する。次に、ステップ1076で、CPUC100は、第1ROM・RAM領域内のデータを参照し、扉スイッチD80、設定扉スイッチM10及び設定キースイッチM20のいずれかがオフであるか否かを判定する。ステップ1076でYesの場合、ステップ3700(第4)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、後述する、設定変更なしRAM初期化処理を実行する。次に、ステップ1077で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域の設定値チェック処理を呼び出し、ステップ1078に移行する。他方、ステップ1076でNoの場合、ステップ1100で、CPUC100は、第1ROM・RAM領域内のデータに基づき、後述する設定変更装置制御処理を実行する。
<第2ROM・RAM領域における処理>
次に、ステップ1078で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM内の設定値は正常範囲内(本例では、1〜6)であるか否かを判定する。ステップ1078でYesの場合、ステップ1079で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1ROM領域の呼び出し元に復帰し、ステップ1081に移行する。他方、ステップ1078でNoの場合、ステップ1080で、CPUC100は、第2ROM・RAM領域内のデータに基づき、設定値エラー表示(例えば、払出数表示装置D190に表示されることとなる)をセットする(例えば、レジスタ領域内にセットする)。次に、ステップ1300で、CPUC100は、第2ROM・RAM領域内のデータに基づき、前述した、復帰不可能エラーを実行する。尚、第4実施形態においては、チェックサム領域は、第1RAM領域に存在しており、先頭アドレス以外なら当該チェックサム領域のアドレスを変更しても問題ない。換言すると、図67ではF102H番地にチェックサム領域を配置しているが、図67の第1作業領域内の所定のアドレスに記憶しても良く、また、チェックサム領域として1バイトデータを記憶するだけでなく2バイトデータを記憶するように構成してもよい。
<第1ROM・RAM領域における処理>
次に、ステップ1081で、CPUC100は、第1ROM・RAM領域内のデータに基づき、入力ポートの読み込みを実行する。次に、ステップ1082で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ステップ1057にてセットしたタイマ割り込みを開始する。次に、ステップ1083で、CPUC100は、第1ROM・RAM領域内のフラグエリア内にある電源断処理済みフラグをオフにし、復帰したスタックポインタに従い電源断時の処理に復帰する。
<第1ROM・RAM領域における処理>
次に、図68は、第4実施形態における、図67のステップ1100のサブルーチンに係る、設定変更装置制御処理のフローチャートである。第3実施形態との相違点は、ステップ3750(第4)であり、即ち、ステップ3750(第4)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、後述する設定変更ありRAM初期化処理を実行し、ステップ1118に移行する。尚、ステップ1102で実行していたスタックポインタのセットは、ステップ3750(第4)のサブルーチン内の処理にて実行している。
<第1ROM・RAM領域における処理>
次に、図69は、第4実施形態における、図67のステップ3700(第4)のサブルーチンに係る、設定変更なしRAM初期化処理のフローチャートである。まず、ステップ3704で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1RAM内の電断復帰データは正常ではないか否かを判定する。尚、第4実施形態においては、第1RAM領域の先頭アドレスからスタックエリアの最終アドレスまで(全RAM領域の先頭アドレスから最終アドレスまで)を加算した結果が0である場合に、電断復帰データが正常であると判定するよう構成されている。ステップ3704でYesの場合、ステップ3706で、CPUC100は、第1ROM・RAM領域内のデータに基づき、バックアップエラー表示をセットする(例えば、レジスタ領域内にエラー番号をセットする)。次に、ステップ1300で、CPUC100は、第1ROM・RAM領域内のデータに基づき、前述した、復帰不可能エラー処理を実行する。尚、本処理における復帰不可能エラー処理は図29の処理と同様に、すべて第1ROM・RAM領域における処理となっている。このように、第1ROM・RAM領域内のデータに基づき、エラー(ここでは電源断復帰データの異常)と判断した場合には、第2ROM・RAM領域の処理を呼び出す(CALL、CALL命令、呼び出し命令とも称する)ことなく、エラー処理を行うように構成する。つまり、エラーの場合に複雑な処理を実行しないよう構成することにより、プログラム構成の簡素化(複雑化の防止、プログラムの暴走防止)につながる。
<第1ROM・RAM領域における処理>
他方、ステップ3704でNoの場合、ステップ3707で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタックポインタを復帰する。より詳細に説明すると、スタックポインタは所謂レジスタの一種であり、電源断によりクリアされるCPUに備えられた記憶領域である。そのため、図76のステップ1902により、電源断時に、第1RAM領域における所定アドレスにスタックポインタを記憶することにより、電源断前にスタックエリアに記憶していた、戻り番地や各種レジスタの値を復帰することができる。次に、ステップ3708で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1RAMの初期化範囲を第1RAM内の未使用RAM範囲に決定してセットする。次に、ステップ3710で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該決定された初期化範囲で第1RAMの初期化を実行する。次に、ステップ3712で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域の第2RAM初期化処理を呼び出し、ステップ3713に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ3713で、CPUC100は、第2ROM・RAM領域内のデータに基づき、PUSH命令により、複数のレジスタ上のデータをスタックエリアに退避させる(退避する順序は、例えば、A、F、B、C、D、E、H、Lの順)。次に、ステップ3714で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAMの初期化範囲を、第2RAM内の未使用RAM範囲に決定してセットし、ステップ3736に移行する。ここで、PUSH命令とは、今までのレジスタをスタックエリアに退避(記憶)する命令をさす。具体的には、「PUSH GPR」という命令により、図69に記載の8個のレジスタを記憶する。このとき、各レジスタをスタックエリアに退避することから、実行前のスタックポインタから1(合計で8)を減算し、次にスタックポインタで指定されたアドレスに実効アドレスやレジスタを格納することとなる。また、POP命令は、スタックエリアに退避していたスタック領域の最上段(スタックポインタの示すアドレス)からデータを取り出し(復帰)する命令を指す。具体的には、「POP GPR」という命令により、図69に記載の8個のレジスタを復帰させ、スタックポインタの値に1(合計で8)を加算することである。
<第2ROM・RAM領域における処理>
次に、ステップ3736で、CPUC100は、第2ROM・RAM領域内のデータに基づき、決定された初期化範囲で第2RAMの初期化を実行する。次に、ステップ3738で、CPUC100は、第2ROM・RAM領域内のデータに基づき、POP命令により、複数のレジスタ上のデータをスタックエリアから復帰させる(復帰する順序は、例えば、L、H、E、D、C、B、F、Aの順であり、退避させた順序と逆の順序にて復帰する)。次に、ステップ3740で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAMの呼び出し元に復帰し、次の処理(ステップ1077の処理)に移行する。このように、第4実施形態においては、第1RAM領域の初期化範囲の決定及び初期化の実行は第1ROM・RAM領域における処理によって実行し、第2RAM領域の初期化範囲の決定及び初期化の実行は第2ROM・RAM領域における処理によって実行するよう構成されている。尚、第4実施形態においては、電源投入直後の復帰不可能エラー処理は、第1ROM・RAM領域内の処理として実行している一方、他のタイミングにおける復帰不可能エラー処理は第1ROM・RAM領域内の処理として実行しているのだが、これは、電源投入直後に実行する復帰不可能エラー処理においては、第2ROM・RAM領域内の処理として実行する準備ができていないためスタックポインタの初期値をセットしてよいか否かの判断ができていないためである。尚、未使用領域に仮スタックエリアを設けて、電源投入時のチェックサム算出の際にのみ当該仮スタックエリアをスタックエリアとして使用するよう構成してもよい。
<第1ROM・RAM領域における処理>
次に、図70は、第4実施形態における、図68のステップ3750(第4)のサブルーチンに係る、設定変更ありRAM初期化処理のフローチャートである。まず、ステップ3752で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1RAM内の電源断復帰データは正常であるか否かを判定する(電源断処理済みフラグ状態及び全RAMのチェックサムの状態を参照して判定している)。ステップ3752でYesの場合、ステップ3754で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタックエリアをクリアしてスタックポインタの初期値をセットする。次に、ステップ3756で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1RAMの初期化範囲を、第1RAM内の設定値を除くすべての範囲に決定してセットする。尚、設定値だけでなく、その他の範囲(例えば、ボーナスの持越しに関する持越し情報)を初期化範囲から除いてもよい。次に、ステップ3758で、CPUC100は、第1ROM・RAM領域内のデータに基づき、決定された初期化範囲で第1RAMの初期化を実行する。次に、ステップ3760で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域の第2RAM初期化処理を呼び出し、ステップ3762に移行する。尚、初期化の順序は、スタックエリアのクリアの前に第1RAMの初期化範囲の決定及び初期化の実行をしてもよく、初期化の順序は図70の順序に限定されるものではない。
<第2ROM・RAM領域における処理>
次に、ステップ3762で、CPUC100は、第2ROM・RAM領域内のデータに基づき、PUSH命令により、複数のレジスタ上のデータをスタックエリアに退避させる(退避する順序は、例えば、A、F、B、C、D、E、H、Lの順)。次に、ステップ3764で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAMの初期化範囲を、第2RAM内のすべての範囲に決定してセットし、ステップ3778に移行する。尚、本例においては、設定値に係る情報は第2RAM領域には格納されておらず、第1RAM領域にのみ格納されている。
<第1ROM・RAM領域における処理>
他方、ステップ3752でNoの場合、ステップ3766で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタックエリアをクリアしてスタックポインタの初期値をセットする。次に、ステップ3768で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1RAMの初期化範囲を第1RAMのすべての範囲に決定してセットする。次に、ステップ3770で、CPUC100は、第1ROM・RAM領域内のデータに基づき、決定された初期化範囲で第1RAMの初期化を実行する。次に、ステップ3772で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域の第2RAM初期化処理を呼び出し、ステップ3774に移行する。尚、初期化の順序は、スタックエリアのクリアの前に第1RAMの初期化範囲の決定及び初期化の実行をしてもよく、初期化の順序は図70の順序に限定されるものではない。
<第2ROM・RAM領域における処理>
次に、ステップ3774で、CPUC100は、第2ROM・RAM領域内のデータに基づき、PUSH命令により、複数のレジスタ上のデータをスタックエリアに退避させる(退避する順序は、例えば、A、F、B、C、D、E、H、Lの順)。次に、ステップ3776で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2RAMの初期化範囲を、第2RAM内のすべての範囲に決定してセットし、ステップ3778に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ3778で、CPUC100は、第2ROM・RAM領域内のデータに基づき、決定された初期化範囲で第2RAMの初期化を実行する。次に、ステップ3780で、CPUC100は、第2ROM・RAM領域内のデータに基づき、POP命令により、複数のレジスタ上のデータをスタックエリアから復帰させる(復帰する順序は、例えば、L、H、E、D、C、B、F、Aの順であり、退避させた順序と逆の順序にて復帰する)。次に、ステップ3782で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAMの呼び出し元に復帰し(RETURN、RETURN命令、復帰命令とも称する)、次の処理(ステップ1118の処理)に移行する。
<第1ROM・RAM領域における処理>
次に、図71は、第4実施形態における、遊技進行制御処理(1枚目)のフローチャートである。第3実施形態との相違点は、ステップ1206(第4)であり、即ち、ステップ1204で、当該ゲームに必要なRAMのデータをセットした後、ステップ1206(第4)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、当該ゲームにおける遊技状態を第1RAM領域に一時記憶し、ステップ1208に移行する。尚、当該処理は、遊技状態に係る情報をサブ側に出力する場合と試験基板側に出力する場合とに用いられることとなる。
<第1ROM・RAM領域における処理>
次に、図72は、第4実施形態における、遊技進行制御処理(3枚目)のフローチャートである。第3実施形態との相違点は、ステップ1293(第4)、ステップ3500(第4)、ステップ1294(第4)〜ステップ1296(第4)及びステップ1300であり、即ち、ステップ3150(第3)で押し順ナビ制御処理を実行した後、又は、ステップ1257‐2(第3)でARTカウンタ値が0であった場合、ステップ1293(第4)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域の第2試験信号出力処理を呼び出し、ステップ3500(第4)に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ3500(第4)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、後述する、第2試験信号出力処理を実行する。次に、ステップ1294(第4)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1ROM領域の呼び出し元に復帰する。このように、第4実施形態においては、第2試験信号出力処理は、割り込み処理ではなくメインループの処理(遊技進行制御処理)として実行されるよう構成されている。
<第2ROM・RAM領域における処理>
また、ステップ1500で投入・払出エラー検出処理を実行した後、ステップ1295(第4)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM内の設定値は正常範囲内(本例では、1〜6)であるか否かを判定する。ステップ1295(第4)でYesの場合にはステップ1270に移行し、Noの場合には、ステップ1296(第4)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、設定値エラー表示(例えば、払出数表示装置D190に表示されることとなる)をセットする(例えば、レジスタ領域内にセットする)。次に、ステップ1300で、CPUC100は、第2ROM・RAM領域内のデータに基づき、前述した、復帰不可能エラー処理を実行する。このように、第4実施形態においては、すべてのリールが停止したタイミングにおいても、設定値異常をチェックするよう構成されている。すべてのリールが停止したタイミングで設定値異常チェックを実行する理由としては、例えば、すべてのリールが停止したときの所定のタイミング(例えば、第3停止操作後)に停止表示された図柄の組み合わせの結果等に応じて、第1ROM・RAM領域内のデータに基づいて、ARTに関する抽選{ARTの当選/非当選、ARTの抽選に用いる抽選テーブル(低確率状態、高確率状態))を、設定値に基づいて実行する場合があるためである。換言すると、このときの設定値が「7」等の異常の設定値が選択されていた場合に意図しない抽選テーブルを用いてARTの抽選を実行してしまう可能性があり、このような事態を防止するために実行している。
<第2ROM・RAM領域における処理>
次に、図73は、第4実施形態における、図70のステップ3500(第4)のサブルーチンに係る、第2試験基板信号出力処理のフローチャートである。まず、ステップ3518で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM領域内の情報に基づきステップ数指定コマンド(各リールの有するステップ数に係るコマンド)を出力する。次に、ステップ3520で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM領域内のコマ数指定コマンド(各リールの有するコマ数に係るコマンド)を出力する。このように構成することにより、試験機側に試験の対象となる遊技機で使用しているステップ数やコマ数を通知することができ、その他の試験信号とに基づいて当選役等に応じてどの位置で停止すればよいか等を把握することができる。このように、第4実施形態においては、ステップ数指定コマンドとコマ数指定コマンドとを第2試験基板側に出力するよう構成しているが、これには限定されず、例えば、生産する遊技機の種類によってステップ数及びコマ数に相違がない場合には、ステップ数情報とリールコマ数情報とは第2試験基板側に出力しないよう構成しても問題ない。
<第2ROM・RAM領域における処理>
次に、ステップ3522で、CPUC100は、第2ROM・RAM領域内のデータに基づき、押し順指定コマンドを出力する。次に、ステップ3524で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1RAM領域内の左回胴受付位置指定コマンドを出力する。次に、ステップ3526で、CPUC100は、第2ROM・RAM領域内のデータに基づき、中回胴受付位置指定コマンドを出力する。次に、ステップ3528で、CPUC100は、第2ROM・RAM領域内のデータに基づき、右回胴受付位置指定コマンドを出力し、次の処理{ステップ1294(第4)の処理}に移行する。このように、第4実施形態においては、「ステップ数指定コマンド→コマ数指定コマンド→押し順指定コマンド→左回胴受付位置指定コマンド→中回胴受付位置指定コマンド→右回胴受付位置指定コマンド」の順に第2試験基板に出力するよう構成されている。また、押し順指定コマンド、左回胴受付位置指定コマンド、中回胴受付位置指定コマンド及び右回胴受付位置指定コマンドについては、押し順ナビありの場合には、ステップ3150(第3)にて生成された情報に基づいてコマンド内容を決定し、押し順ナビなしの場合には、ステップ3600(第3)にて生成された情報に基づいてコマンド内容を決定する。尚、押し順指定コマンドやコマ数指定コマンドの内容として、前述したような、最高機械割押し順あり情報、最高機械割押し順なし情報や、最も遊技者にとって不利益となる押し順である最低機械割押し順あり情報、最高機械割押し順あり情報等の同様の押し順、停止コマとなるような情報を出力するよう構成してもよい。尚、第4実施形態においては、不図示であるが、第2試験基板に出力された回胴受付位置指定コマンドは、第2試験基板によって停止ステップ数情報に変換(リール停止位置を指示する際の単位をコマ数からステップ数に変換)して出玉試験機に出力されるよう構成されており、第2試験基板によって停止ステップ数指定コマンドに変換しないよう構成する場合には、第2試験信号として停止ステップ数指定コマンドを第2試験基板に出力するよう構成してもよい。
次に、図74は、第4実施形態における、第2試験信号出用情報の一例である。同図においては、第2試験基板に出力する信号(情報)の具体的な一例を示している。まず、ステップ数情報のコマンド名は「ステップ数指定」となっており、ステッピングモータのステップ数を実際のステップ数を8で除算した値を出力するよう構成されている。次に、リールコマ数情報のコマンド名は「コマ数指定」となっており、1リールあたりの図柄数を出力するよう構成されている。次に、リール停止順情報のコマンド名は「押し順指定」となっており、例えば、「左→中→右」の押し順の場合には「0」を出力するよう構成されている。次に、停止コマ情報のコマンド名は「回胴受付位置指定」(「左回胴受付位置指定」、「中回胴受付位置指定」、「右回胴受付位置指定」)となっており、停止受付位置として、「0〜20」を出力して押し位置を指定するか「127」を出力して押し順を指定しない(ランダムに停止されるよう指定する)よう構成されている。また、第4実施形態においては、1つのコマンドにつき「第1コマンド→第2コマンド→sumコマンド」の順に送信するよう構成されている。尚、sumコマンドは、第1コマンドと第2コマンドとをOR演算し、当該演算結果と「10000000」とをOR演算したものとなっている。また、同図下段に示すように、第1コマンド及び第2コマンドは先頭ビットが0である「0*******」の8ビット列で構成されており、sumコマンドは先頭ビットが1である「1*******」の8ビット列で構成されており、出力するコマンド内容に係る「0〜127」の10進数の数値を2進数に変換した数値が下位7ビットとなるよう構成されている。このように構成されていることにより、第2試験基板は、第1コマンドと第2コマンドとsumコマンドとは、最上位ビットの違いにより区別が可能となっている。そして、sumコマンドを送信することにより、1つの情報(例えば第1コマンドと第2コマンドで構成されたステップ数指定コマンド)が送信し終わったことを第2試験基板側で把握することができることとなる。また、試験機側で算出したsum値と受信したsumコマンドの値に相違があった場合には、予め定められた特定の操作順序で操作するように第2試験基板に送信しておいても良い。
<第1ROM・RAM領域における処理>
次に、図75は、第4実施形態におけるステップ1600のサブルーチンに係る、タイマ割り込み時処理のフローチャートである。第3実施形態との相違点はステップ1666(第4)〜ステップ1680(第4)であり、即ち、ステップ1614で出力ポートへ出力データを出力した後、ステップ1666(第4)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、制御コマンド(サブ側のコマンド)を送信する{例えば、ステップ1672(第4)やステップ1674(第4)、ステップ1678(第4)、ステップ1680(第4)でレジスタ領域内にセットされている場合には、そのセットされた制御コマンドを引き継ぐこととなる}。次に、ステップ1667(第4)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、セットされている内部抽選の結果、条件装置識別値及び遊技状態に係るコマンド(サブ側へのコマンド)を送信する。次に、ステップ1668(第4)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、遊技進行に関するタイマ計測(遊技が正常に進行している場合に必要なタイマ計測であり、例えば、遊技間隔最小時間タイマM70等のタイマ計測。第1のタイマ計測とも称す)を実行し、ステップ1616に移行する。
<第2ROM・RAM領域における処理>
また、ステップ1800で投入・払出エラーチェック処理を実行した後、ステップ1670(第4)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、遊技進行に関係のないエラーフラグ(正常に遊技が進行した場合には発生し得ないエラーに係るフラグであり、例えば、投入メダル逆流エラーフラグ等)がオフであるか否かを判定する。ステップ1670(第4)でYesの場合、ステップ1672(第4)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2エラー未検出コマンド(サブ側のコマンドであり、正常に遊技が進行していない場合に係るエラーが未検出であった場合に係るコマンド)をセットし、ステップ1638に移行する。他方、ステップ1670(第4)でNoの場合には、ステップ1674(第4)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2エラー検出コマンド(サブ側のコマンドであり、正常に遊技が進行していない場合に係るエラーが検出された場合に係るコマンド)をセットし、ステップ1638に移行する。尚、ステップ1672(第4)に基づくコマンドはセットしないよう構成してもよい。また、ステップ1674(第4)に基づくコマンドはエラーを検出したときに1回だけコマンドをセットするように構成してもよい。
<第2ROM・RAM領域における処理>
また、ステップ1642で内蔵乱数の更新状態が正常であった場合、ステップ1675(第4)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、遊技進行に関係のないタイマ計測{前述した遊技進行に関係のないエラー(例えば、セレクタ内のメダル滞留エラー等)に係るタイマ計測等。第2のタイマ計測とも称す。}を実行し、ステップ3450(第3)に移行する。
<第1ROM・RAM領域における処理>
また、ステップ1644で第1ROM領域の呼び出し元に復帰した後、ステップ1676(第4)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、遊技進行に関わるエラーフラグ{正常に遊技が進行した場合には発生し得るエラーに係るフラグであり、例えば、扉スイッチフラグ、ホッパエンプティエラー(ホッパH40のメダルが空になったことを示すエラー)フラグ}等がオフであるか否かを判定する。ステップ1676(第4)でYesの場合、ステップ1678(第4)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1エラー未検出コマンド(サブ側のコマンドであり、正常に遊技が進行している場合に係るエラーが未検出であった場合に係るコマンド)をセットし、ステップ1628に移行する。他方、ステップ1676(第4)でNoの場合には、ステップ1680(第4)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1エラー検出コマンド(サブ側のコマンドであり、正常に遊技が進行している場合に係るエラーが検出された場合に係るコマンド)をセットし、ステップ1628に移行する。このように、第4実施形態においては、エラーの発生有無に係るコマンドをセットする場合には、遊技の正常な進行時に発生し得るエラーに係るコマンドは第1ROM・RAM領域に係る処理によって実行する一方、遊技の正常な進行時に発生しないエラーに係るコマンドは第2ROM・RAM領域に係る処理によって実行するよう構成されている。
<第1ROM・RAM領域における処理>
次に、図76は、第4実施形態における、図75のステップ1900のサブルーチンに係る、電源断時処理のフローチャートである。第3実施形態との相違点はステップ1918(第4)であり、即ち、ステップ1904で電源断処理済みフラグをオンにした後、ステップ1918(第4)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1RAM領域の先頭アドレスから第2RAMアドレスの最終アドレスまでを加算した値の補数を算出し、当該補数を第1RAM領域のチェックサム領域に記憶する(当該補数はステップ1060の処理にて使用される)。換言すると、図76ではF102H番地にチェックサム領域を配置しているが、図76の第1作業領域内の所定のアドレスに記憶しても良く、また、チェックサム領域として1バイトデータを記憶するだけでなく2バイトデータを記憶するように構成してもよい。
<第2ROM・RAM領域における処理>
次に、図77は、第4実施形態におけるステップ3450(第3)のサブルーチンに係る、第1試験信号出力処理のフローチャートである。第3実施形態との相違点はステップ3469(第4)〜ステップ3476(第4)であり、即ち、ステップ3456で第1RAM領域内の出力時間タイマM80のタイマ値情報をレジスタ領域に一時記憶した後、ステップ3469(第4)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1条件装置情報の出力タイミングであるか否かを判定する。ここで、第4実施形態においては、第1試験信号として、「第1ボーナス状態情報→第1小役状態情報→第2ボーナス状態情報→第2小役状態情報」の順に出力するよう構成されている。また、出力タイミングの判定方法としては、Aレジスタの出力時間タイマM80のタイマ値(初期値は48となっている)を12で除算した商が、(1)3の場合には第1ボーナス状態情報の出力タイミング、(2)2の場合には第1小役状態情報の出力タイミング、(3)1の場合には第2ボーナス状態情報の出力タイミング、(4)0且つ余りがある場合には第1小役状態情報の出力タイミングであると判定し、(5)0且つ余りがない場合にはボーナス状態情報及び小役状態情報の出力タイミングではないと判定するよう構成されている。尚、図面上の○で囲まれた数字が、当該記載の(1)〜(5)と対応している。ステップ3469(第4)でYesの場合、ステップ3470(第4)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、条件装置情報として、第1ボーナス状態情報アドレスをレジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3471‐1(第4)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1ボーナス状態情報の出力タイミングであるか否かを判定する。ステップ3471‐1(第4)でYesの場合にはステップ3466に移行し、Noの場合、即ち、1回目の小役状態情報である第1小役状態情報の出力タイミングである場合、ステップ3471‐2(第4)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、条件装置情報として、第1小役状態情報アドレスをレジスタ領域(例えば、HLレジスタ)に一時記憶して、ステップ3466に移行する。
<第2ROM・RAM領域における処理>
また、ステップ3466で条件装置情報を別のレジスタ領域(例えば、Aレジスタ)に一時記憶した後、又は、ステップ3469でNoの場合、ステップ3472(第4)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2条件装置情報の出力タイミングであるか否かを判定する。ステップ3472(第4)でYesの場合、ステップ3473(第4)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、条件装置情報として、第2ボーナス状態情報アドレスをレジスタ領域(例えば、HLレジスタ)に一時記憶する。次に、ステップ3474(第4)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ボーナス状態情報の出力タイミングであるか否かを判定する。ステップ3474(第4)でYesの場合にはステップ3476(第4)に移行し、Noの場合、即ち、2回目の小役状態情報である第2小役状態情報の出力タイミングである場合、ステップ3475(第4)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、条件装置情報として、第2小役状態情報アドレスをレジスタ領域(例えば、HLレジスタ)に一時記憶して、ステップ3476(第4)に移行する。次に、ステップ3476(第4)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、レジスタ領域(例えば、HLレジスタ)に一時記憶されている条件装置情報を別のレジスタ領域(例えば、Aレジスタ)に一時記憶しステップ3468に移行する。尚、ステップ3472(第4)でNoの場合にもステップ3468に移行する。尚、当該4つの条件装置情報の出力イメージとしては、同図右下段のようにボーナス状態情報と小役状態情報とが交互にオン・オフとなるよう構成されている。また、同図右中段に示されるように、第1小役状態情報の下位6ビット、第2小役情報の上位6ビットを結合して、12ビットの1つの小役状態情報、第1ボーナス状態情報の下位6ビット、第2ボーナス情報の上位6ビットのを結合して、12ビットの1つのボーナス状態情報としており、このように構成することにより、6ビット以上の種類、換言すると0〜63を超える数の種類で構成されるボーナス状態情報及び小役状態情報を出力することが可能となっている。尚、本実施形態では、ボーナスに係る条件装置番号は0〜2、小役に係る情報装置番号は0〜25で構成されているが、遊技機の開発段階によって条件装置の数を変更した(増加した)場合にも対応が可能である。これは、プログラム容量の制限を受けない第2ROM領域に記憶されたプログラムであることからこそ可能なプログラム制御である。さらに、条件装置数が異なる別の遊技機を開発する場合にも条件装置の数に応じて別のプログラムにする必要もなく、どの遊技機においても万能に対応することができることとなる。
以上のように構成することで、第4実施形態に係る回胴式遊技機によれば、第1試験基板に出力する条件装置情報として、ボーナス状態情報と小役状態情報とを2回ずつ出力して、当該2回のコマンドを結合(第1ボーナス状態情報と第2ボーナス状態情報とを結合、又は、第1小役状態情報と第2小役状態情報とを結合)することにより、1回ずつの出力ではなし得なかった種類数の条件装置情報を出力可能に構成されている。また、設定変更キーをON(右方向に回した状態)にしたときの電源投入直後(設定変更装置制御処理)に実行されるRAM初期化処理を、第1RAM領域の初期化に関する処理は第1ROM・RAM領域における処理にて実行し、第2RAM領域の初期化に関する処理は第2ROM・RAM領域における処理にて実行するよう構成することにより、第2ROM・RAM領域における処理は遊技の進行に差支えのない処理のみであることを明確にすることができることとなる。
尚、第4実施形態に係る回胴式遊技機においては、試験信号を出力する際には、作動状態情報だけではなく、他のアドレスや、点灯したランプ(例えば、再遊技ランプ)から取得するよう構成してもよい。
尚、第4実施形態に係る回胴式遊技機においては、割り込み処理により第1ROM・RAM領域の処理を実行する場合には、PUSH命令により複数のレジスタをスタックエリアに記憶し、第2ROM領域における処理を呼び出す場合には、さらにPUSH命令により複数のレジスタをスタックエリアに記憶するよう構成されている。
(第5実施形態)
尚、本実施形態から第4実施形態においては、遊技の進行に影響を及ぼす処理は第1ROM・RAM領域にて実行し、遊技の進行に影響を及ぼさない処理は第2ROM・RAM領域にて実行するよう構成したが、当該構成をより明確にするよう構成することも可能である。そこで、そのような構成を第5実施形態とし、以下、第3実施形態との相違点について詳述していく。尚、第5実施形態から第11実施形態では、主にスタックポインタについての詳細な説明を行う。その為、第1メイン処理で実行される処理や第2メイン処理で実行される処理、第1割り込み処理や第2割り込み処理で実際に実行される処理の詳細な説明は割愛している。
<第1ROM・RAM領域における処理>
はじめに、図78は、第5実施形態における、第2ROM領域の処理を呼び出す際の処理の一例である。まず、ステップ4002で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1ROM・RAM領域の処理を実行している。次に、ステップ4004で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM領域の処理を呼び出し、ステップ4006に移行する。
<第2ROM・RAM領域における処理>
次に、ステップ4006で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタのアドレスを第2RAM領域の所定アドレスに一時記憶する。次に、ステップ4008で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM・RAM領域における処理を実行する。次に、ステップ4010で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタのアドレスがステップ4006で所定アドレスに一時記憶したアドレスと一致しているか確認する。次に、ステップ4012で、CPUC100は、第2ROM・RAM領域内のデータに基づき、ステップ4010で確認したスタックポインタのアドレスは一致しているか否かを判定する。ステップ4012でYesの場合、ステップ4014で、CPUC100は、第2ROM・RAM領域内のデータに基づき、正常に第2ROM・RAM領域の処理が実行されたと判断し、第1ROM領域の呼び出し元に復帰し、ステップ4016に移行する。他方、ステップ4012でNoの場合、ステップ4018で、CPUC100は、第2ROM・RAM領域内のデータに基づき、エラー処理を実行する(例えば、音・ランプによりエラー報知及び遊技の中断)。
<第1ROM・RAM領域における処理>
次に、ステップ4016で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1ROM・RAM領域における処理を実行してゆく。尚、ステップ4004で第2ROM領域の処理を呼び出す直前(第1ROM・RAM領域における処理)にてスタックポインタのアドレスを第1RAM領域の所定アドレスに一時記憶し、ステップ4014で第1ROM領域の呼び出し元に復帰した直後(第1ROM・RAM領域における処理)にてスタックポインタのアドレスが一致しているか確認するよう構成してもよいし、ステップ4004で第2ROM領域の処理を呼び出す直前(第1ROM・RAM領域における処理)にてスタックポインタのアドレスを第1RAM領域の所定アドレスに一時記憶し、ステップ4014で第1ROM領域の呼び出し元に復帰する直前(第2ROM・RAM領域における処理)にてスタックポインタのアドレスが一致しているか確認するよう構成してもよい。また、ステップ4012で、第2ROM・RAM領域における処理の実行開始時(第1ROM領域から呼び出された時)と実行終了時(第1ROM領域の呼び出し元に復帰する時)とでスタックポインタのアドレスが一致していた場合には、スタックエリア内におけるスタックポインタのアドレスより上に積まれている、当該第2ROM・RAM領域における処理の実行開始時から実行終了時までの処理に係るデータをクリアするよう構成してもよいし、スタックエリア内におけるスタックポインタのアドレスより上に積まれている第2ROM・RAM領域に係るすべての処理に係るデータを含むスタックエリア内のデータ{スタックポインタからスタックエリアにデータが最大に積まれたとき(番地としては最小)の番地までのデータ、もしくは、スタックポインタからスタックエリアの最小の番地(図76におけるF2CAH番地)までのデータ}をクリアするよう構成してもよい(例えば、「第1ROM・RAM領域に係る遊技進行制御処理が開始→第2ROM・RAM領域に係る遊技進行制御処理が開始→第1ROM・RAM領域に係る割り込み処理が開始→第2ROM・RAM領域に係る割り込み処理が開始→第2ROM・RAM領域に係る割り込み処理が終了→第1ROM・RAM領域に係る割り込み処理が終了→第2ROM・RAM領域に係る遊技進行制御処理が終了」のように処理が実行されてゆき、第2ROM・RAM領域に係る遊技進行制御処理の終了時と第2ROM・RAM領域に係る遊技進行制御処理の開始時とのアドレスの一致が確認できた場合に、第2ROM・RAM領域に係る遊技進行制御処理及び第2ROM・RAM領域に係る割り込み処理に係るデータをクリアする、等)。換言すると、第2ROM・RAM領域に基づいた処理によってスタックエリアを使用した範囲のデータは少なくともクリアするが、第1ROM・RAM領域に基づいた処理によってスタックエリアを使用した範囲のデータはクリアしないようにすることで、第2ROM・RAM領域に基づいた処理によってスタックエリアに記憶したデータを用いて、第1ROM・RAM領域に基づいた処理による不正行為等が実行されてしまう事態を防止することができると共に、第1ROM・RAM領域に基づいた処理を不具合なく再度実行することができる。
次に、図79は、第5実施形態における、スタックエリアイメージ図である。同図においては、第5実施形態における、第2ROM・RAM領域の処理を実行する際のスタックエリアの状況を示している。まず、第1ROM・RAM領域にて処理を実行しており、スタックエリアには第1ROM・RAM領域に係るデータが積まれている状況下、第2ROM・RAM領域の処理を呼び出す(CALL)と共に、戻りアドレスに係るデータがスタックエリアに積まれることとなる。次に、当該戻りアドレスに係るデータが積まれたタイミングのスタックポインタのアドレス(B)を第2RAM領域に一時記憶する。その後、第2ROM・RAM領域にて処理が実行されてゆき、第2ROM・RAM領域に係るデータがスタックエリアに積まれてゆく。次に、第2ROM・RAM領域における処理が終了し、スタックポインタのアドレス(B)が前記第2RAM領域に一時記憶したアドレスと一致しているか否かを確認する(第2ROM・RAM領域での処理が終了した時点のスタックポインタのアドレスと第2ROM・RAM領域での処理が開始した時点のスタックポインタのアドレスとが一致している場合に、第2ROM・RAM領域に係る正常な処理が実行されたと判定される)。当該確認により、アドレスが一致していた場合には第1ROM領域の呼び出し元に復帰し、一致しなかった場合にはエラー処理が実行されることとなる。
以上のように構成することで、第5実施形態に係る回胴式遊技機によれば、第1ROM領域の処理を実行中に第2ROM領域の処理を呼び出した場合のスタックポインタのアドレスと、第2ROM領域の処理を終了してから第1ROM領域の呼び出し元に復帰する場合のスタックポインタのアドレスとが一致しているか否かを判定して、一致していた場合にのみ、第2ROM領域における処理が正常に実行されたと判断することにより、前述した実施形態よりも、より明確に、第1ROM領域の処理と第2ROM領域の処理とを切り分けることができると共に、より公正な遊技機とすることができることとなる。
(第6実施形態)
尚、第5実施形態においては、第1ROM領域の処理を実行中に第2ROM領域の処理を呼び出した場合のスタックポインタのアドレスと、第2ROM領域の処理を終了してから第1ROM領域の呼び出し元に復帰する場合のスタックポインタのアドレスとが一致していることによって、第1ROM領域の処理と第2ROM領域の処理とを切り分けるよう構成したが、これには限定されず、スタックエリアを2つ用いることによって第1ROM・RAM領域の処理と第2ROM・RAM領域の処理とを切り分けることが可能である。そのような構成を第6実施形態とし、以下、第5実施形態との相違点について詳述していく。尚、第6実施形態から第11実施形態について、例えば図面に記載されている「第1ROM・RAM領域のメイン処理を実行し、PUSH・CALL・POP・RETURNにより第1スタックエリアのデータの出し入れ」とは、本実施形態〜第4実施形態等に記載されている主制御装置側メイン処理(第1ROM・RAM領域における処理)に記載されている複数のステップ(処理)、又は、何れかのステップ(処理)を指している。同様に「第2ROM・RAM領域のメイン処理を実行し、PUSH・CALL・POP・RETURNにより第2スタックエリアのデータの出し入れ」とは、本実施形態〜第4実施形態等に記載されている主制御装置側メイン処理(第2ROM・RAM領域における処理)に記載されている複数のステップ(処理)、又は、何れかのステップ(処理)を指している。また、例えば「第1ROM・RAM領域の割り込み時の処理を実行し、PUSH・CALL・POP・RETURNにより第1スタックエリアのデータの出し入れ」とは、タイマ割り込み時処理の第1ROM・RAM領域における処理に記載されている複数のステップ(処理)、又は、何れかのステップ(処理)を指している。同様に、例えば「第2ROM・RAM領域の割り込み時の処理を実行し、PUSH・CALL・POP・RETURNにより第1スタックエリアのデータの出し入れ」とは、タイマ割り込み時処理の第2ROM・RAM領域における処理に記載されている複数のステップ(処理)、又は、何れかのステップ(処理)を指している。
はじめに、第6実施形態以降の実施形態においては、スタックエリアとして、第1ROM・RAM領域における処理を実行する際に主に使用することとなる第1スタックエリアと第2ROM・RAM領域における処理を実行する際に主に使用することとなる第2スタックエリアとを有している。
<第1ROM・RAM領域における処理>
まず、図80は、第6実施形態における、ステップ5000(第6)及び5050(第6)のサブルーチンに係る第1メイン処理及び第2メイン処理のフローチャートである。尚、本図以降のフローチャートにおける右部のスタックエリアの記載は、処理が実行されている場合にスタックポインタがセットされているスタックエリアを示している。まず、ステップ5000(第6)の第1メイン処理について詳述する。まず、ステップ5002で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1スタックエリアにスタックポインタ(アドレスをXとする)をセットする。このアドレスXは、第1スタックエリアの初期アドレス(例えば、F200H)を示す。次に、ステップ5004で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1ROM・RAM領域のメイン処理(遊技進行制御処理であり、割り込み処理とは異なる処理)を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第1スタックエリアのデータの出し入れを実行した後、第2ROM領域の処理を呼び出す。
<第2ROM・RAM領域における処理>
次に、ステップ5050(第6)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2メイン処理(第2ROM・RAM領域に係る遊技進行制御処理であり、割り込み処理とは異なる処理)を実行し、第1ROM領域の呼び出し元に復帰する。
<第1ROM・RAM領域における処理>
次に、ステップ5008で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1ROM・RAM領域のメイン処理(遊技進行制御処理であり、割り込み処理とは異なる処理)を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第1スタックエリアのデータの出し入れを実行してゆく。
<第2ROM・RAM領域における処理>
次に、ステップ5050(第6)の第2メイン処理について詳述する。まず、ステップ5052で、CPUC100は、第2ROM・RAM領域内のデータに基づき、全レジスタを第1スタックエリアに退避する。次に、ステップ5054で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをBとする)を第2RAM領域の所定アドレス(βアドレスとも称する)に退避する。次に、ステップ5056で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをYとする)をセットする。次に、ステップ5058で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM・RAM領域のメイン処理(遊技進行制御処理であり、割り込み処理とは異なる処理)を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第2スタックエリアのデータの出し入れを実行する。次に、ステップ5060で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをBとする)を第2RAM領域の所定アドレス(βアドレス)から復帰させる。次に、ステップ5062で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第1スタックエリアに退避した全レジスタを復帰する。尚、図中下段に示されているように、第6実施形態(以降の実施形態も同様)においては、第1RAM領域に(第1RAM領域に隣接した領域という認識でもよい)第1スタックエリアが存在しており、第2RAM領域に(第2RAM領域に隣接した領域という認識でもよい)第2スタックエリアが存在している。尚、第6実施形態においては、第1スタックエリアをF1CAH番地からF200H番地とし、第2スタックエリアをF3CAH番地からF400H番地としているが、これには限定されず、第1スタックエリアを第1RAM領域の所定アドレスとしてもよいし、第2スタックエリアを第2RAM領域の所定アドレスとしてもよい。また、スタックポインタとは、CPUC100の所定の領域であり、1つのアドレスのみが記憶されるよう構成されている。第6実施形態以降においては、当該1つのスタックポインタのアドレスを第1スタックエリアのアドレスと第2スタックエリアのアドレスとに切り替えていくことによって(RAM領域に退避及びRAM領域から復帰を繰り返すことによって)、第1スタックエリアと第2スタックエリアとの2つのスタックエリアを使用する処理を実行可能に構成している。
<第1ROM・RAM領域における処理>
次に、図81は、第6実施形態における、ステップ5100(第6)のサブルーチンに係る第1割り込み処理のフローチャートである。まず、ステップ5102で、CPUC100は、第1ROM・RAM領域内のデータに基づき、全レジスタを現在設定されているスタックエリアに退避する。次に、ステップ5104で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをAとする)を第1RAM領域の所定アドレス(αアドレスとも称する)に退避する。次に、ステップ5106で、CPUC100は、第1ROM・RAM領域内のデータに基づき、割り込み処理発生時に設定中のスタックエリアは第2スタックエリアであるか否かを判定する。具体的には、第1スタックエリアの最終アドレスがF1**であり、第2スタックエリアの最終アドレスがF3**である場合に、第1RAM領域の所定アドレス(αアドレスとも称する)を参照し、当該アドレスに記憶されたデータがF1△△の場合には割り込み発生時は第1スタックエリアに設定されている場合であると判断し、当該アドレスに記憶されたデータがF3△△の場合には割り込み発生時は第2スタックエリアに設定されている場合であると判断する。さらに具体的には、HLレジスタに第1RAM領域の所定アドレス(αアドレス)に記憶されているデータを書き込む。仮にF1FDが記憶されていた場合、Hレジスタに「F1」、Lレジスタに「FD」を記憶する。このときHレジスタは「11110001」が記憶されていることとなる。一方、F3FDが記憶されていた場合、Hレジスタに「F3」、Lレジスタに「FD」を記憶する。このときHレジスタは「11110011」が記憶されていることとなる。ここでHレジスタのD1ビット目(下位から2番目のビット)を判断することにより、どちらのスタックエリアが設定されていたかを判断することができる(「0」のとき第1スタックエリア、「1」のとき第2スタックエリア)。ステップ5106でYesの場合、ステップ5108で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをBとする)を第2RAM領域の所定アドレス(βアドレス)から復帰し、ステップ5110に移行する。他方、ステップ5106でNoの場合にもステップ5110に移行する。これらの処理により、ステップ5110で使用するスタックエリアを第1スタックエリアに設定する。次に、ステップ5110で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1ROM・RAM領域の割り込み時処理の所定処理を実行し、PUSH・CALL・POP・RETURN等を用いた処理により第1スタックエリアのデータの出し入れを実行した後、第2ROM領域の処理を呼び出す。
<第2ROM・RAM領域における処理>
次に、ステップ5150(第6)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタック設定中第2割り込み処理を実行し、第1ROM領域の呼び出し元に復帰する。
<第1ROM・RAM領域における処理>
次に、ステップ5114で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1ROM・RAM領域の割り込み時処理の所定処理を実行し、PUSH・CALL・POP・RETURN等を用いた処理により第1スタックエリアのデータの出し入れを実行する。次に、ステップ5116で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタックポインタAを第1RAM領域の所定アドレス(αアドレスとも称する)から復帰させる。次に、ステップ5118で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ステップ5102で退避した全レジスタを復帰する。
<第2ROM・RAM領域における処理>
次に、図82は、第6実施形態における、ステップ5150(第6)のサブルーチンに係る第2割り込み処理のフローチャートである。まず、ステップ5152で、CPUC100は、第2ROM・RAM領域内のデータに基づき、現在設定されているスタックエリアに全レジスタを退避する。次に、ステップ5154で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをCとする)を第2RAM領域の所定アドレス(γアドレスとも称する)に退避する。次に、ステップ5156で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをYとする)をセットする。このアドレスYは、第2スタックエリアの初期アドレス(例えばF400H)を示す。次に、ステップ5158で、割り込み発生時のスタックエリアが第2スタックエリアであるか否かを判定する。具体的には、第1RAM領域の所定アドレス{スタックポインタの値(アドレスA)を記憶したアドレス}を参照し、当該アドレスに記憶されたデータがF1△△の場合には割り込み発生時は第1スタックエリアに設定されている場合であると判断し、当該アドレスに記憶されたデータがF3△△の場合には割り込み発生時は第2スタックエリアに設定されている場合であると判断する。ステップ5158でYesの場合、ステップ5160で、スタックポインタ(アドレスはAとする)を第1RAM領域の所定アドレス(αアドレス)から復帰し、ステップ5162に移行する。これにより、ステップ5156でセットした第2スタックエリアの初期値ではなく、第2スタックエリアで使用していたスタックポインタは破壊されることなく続きのスタックポインタを用いて、レジスタや戻り番地を退避することができる。他方、ステップ5158でNoの場合にもステップ5162に移行する。これらの処理により、ステップ5162で使用するスタックエリアを第2スタックエリアに設定する。ステップ5158でNoの場合は、ステップ5156でセットした第2スタックエリアの初期値を使用することとなる。換言すると、第2スタックエリアは使用していなかったため第2スタックエリアの最初の番地を示しても問題ない。次に、ステップ5162で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM・RAM領域の割り込み時処理の所定処理を実行し、PUSH・CALL・POP・RETURN等を用いた処理により第1スタックエリアのデータの出し入れを実行する。次に、ステップ5164で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスはCとする)を第2RAM領域の所定アドレス(γアドレスとも称する)から復帰する。次に、ステップ5166で、ステップ5152で退避した全レジスタを復帰する。
次に、図83は、第6実施形態における、メイン処理イメージ図Aである。本図以降のイメージ図においては、スタックエリアにデータが積まれてゆく様子を示しており、丸で囲まれたアドレスがセットされているスタックポインタを示している。また、≪ステップ****≫の表示は前述したフローチャートと対応しているステップを示している。また、内部が白い丸印はスタックポインタが指示しているアドレスとなっている。まず、第1ROM・RAM領域にて処理を実行しており、スタックポインタ(アドレスはX)をセット(第1スタックエリアのアドレスにセット)した後に、第1ROM・RAM領域にて処理を実行し、その後第2ROM領域を呼び出す。尚、第1スタックエリアには戻りアドレスに係るデータが積まれることとなる。次に、全レジスタA(全レジスタを退避する処理が複数出現するため本処理で退避するレジスタを全レジスタAとしており、同一の名称の全レジスタは同一の内容となっている)を第1スタックエリアに退避した後、スタックポインタBを第2RAM領域の所定アドレス(βアドレスとも称する)に退避する(スタックポインタのアドレスBを第2RAM領域に一時記憶する)。次に、スタックポインタ(アドレスはY)をセットする。本タイミングから第2スタックエリアを使用することとなる。その後、第2ROM・RAM領域による処理を実行し、スタックポインタがAとなり、その後、スタックポインタB(アドレスは第1スタックエリア)を第2RAM領域の所定アドレス(βアドレスとも称する)から復帰し、全レジスタAを第1スタックエリアから復帰して、第1ROM領域の呼び出し元に復帰する。
次に、図84は、第6実施形態における、第1スタック設定中割り込みイメージ図Aである。まず、第1スタックエリアの設定中に割り込み処理が発生し、全レジスタAを第1スタックエリアに退避した後、スタックポインタAを第1RAM領域に退避する。尚、第1スタックエリアの設定中であるため、第1スタックエリアには第1ROM・RAM領域に係るデータ及び割り込み前の戻りアドレスに係るデータが積まれている。その後、第1ROM・RAM領域の処理を実行し、スタックポインタがDとなり、第2ROM領域の処理を呼び出す。次に、全レジスタBを第1スタックエリアに退避した後、スタックポインタCを第2RAM領域の所定アドレス(γアドレスとも称する)に退避し、第2スタックエリアのスタックポインタ(アドレスはY)をセットして、第2ROM・RAM領域の処理を実行してゆく。次に、スタックポインタCを第2RAM領域の所定アドレス(γアドレスとも称する)から復帰した後、全レジスタBを第1スタックエリアから復帰し、第1ROM・RAM領域の呼び出し元に復帰する。その後、第1ROM・RAM領域の処理を実行した後、スタックポインタAを第1RAM領域の所定アドレス(αアドレスとも称する)から復帰し、全レジスタAを第1スタックエリアから復帰し、割り込み処理を終了する。尚、同図に示されるように、第2ROM領域の処理を呼び出した際には、スタックエリアに戻りアドレスに係るデータが積まれることとなる。
次に、図85は、第6実施形態における、第2スタック設定中割り込みイメージ図Aである。まず、第2スタックエリアの設定中に割り込み処理が発生し、全レジスタAを第2スタックエリアに退避した後、スタックポインタAを第1RAM領域に退避する。尚、第2スタックエリアの設定中であるため、第1スタックエリアには第1ROM・RAM領域に係るデータと割り込み前の戻りアドレスに係るデータと全レジスタCとが積まれており、第2スタックエリアには第2ROM・RAM領域に係るデータが積まれている。その後、スタックポインタB(第1スタックエリアのアドレスを示す)を第2RAM領域の所定アドレス(βアドレスとも称する)から復帰し、第1ROM・RAM領域の処理を実行し、第2ROM領域の処理を呼び出す(第2ROM領域を呼び出すタイミングではスタックポインタはDとなっている)。次に、全レジスタBを第1スタックエリアに退避した後、スタックポインタCを第2RAM領域の所定アドレス(γアドレスとも称する)に退避する。次に、第2スタックエリアのスタックポインタ(アドレスはY)をセットして、スタックポインタA(第2スタックエリアのアドレスを示す)を第1RAM領域から復帰し、第2ROM・RAM領域の処理を実行してゆく。次に、スタックポインタC(第1スタックエリアのアドレスを示す)を第2RAM領域の所定アドレス(γアドレスとも称する)から復帰した後、全レジスタBを第1スタックエリアから復帰し、第1ROM・RAM領域の呼び出し元に復帰して、第1ROM・RAM領域の処理を実行してゆく。その後、スタックポインタA(第2スタックエリアのアドレスを示す)を第1RAM領域の所定アドレス(αアドレスとも称する)から復帰した後、全レジスタAを第2スタックエリアから復帰し、割り込み処理を終了する。
以上のように構成することで、第6実施形態に係る回胴式遊技機によれば、スタックエリアとして第1スタックエリアと第2スタックエリアとの2つのスタックエリアを設けることによって、第1ROM・RAM領域の処理に係るデータと第2ROMRAM領域の処理に係るデータとが1つのスタックエリアに混在する事態を防止することができ、より明確に第1ROM・RAM領域の処理に係るデータと第2ROMRAM領域の処理とを切り分けることができることとなる。
尚、第6実施形態においては、スタックポインタが第1スタックエリアのアドレスである場合に割り込み処理が実行された場合には、戻り番地を第1スタックエリアに記憶し、スタックポインタが第2スタックエリアのアドレスである場合に割り込み処理が実行された場合には、戻り番地を第2スタックエリアに記憶するよう構成されている。
(第7実施形態)
尚、6実施形態においては、第1ROM・RAM領域による処理を実行中に第2ROM領域の処理を呼び出す場合には、第2ROM・RAM領域の処理によって、全レジスタを退避して第1ROM・RAM領域の処理に係るデータと第2ROM・RAM領域の処理とを切り分けるよう構成したが、その他の構成としても、同様に第1ROM・RAM領域の処理に係るデータと第2ROM・RAM領域の処理とを切り分けることができる。そこで、そのような構成を第7実施形態とし、以下、詳述していく。
<第1ROM・RAM領域における処理>
はじめに、図86は、第7実施形態における、ステップ5200(第7)及び5250(第7)のサブルーチンに係る第1メイン処理及び第2メイン処理のフローチャートである。尚、本図以降のフローチャートにおける右部のスタックエリアの記載は、処理が実行されている場合にスタックポインタがセットされているスタックエリアを示している。まず、ステップ5200(第7)の第1メイン処理について詳述する。まず、ステップ5202で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1スタックエリアにスタックポインタ(アドレスはX)をセットする。次に、ステップ5204で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1ROM・RAM領域のメイン処理(遊技進行制御処理であり、割り込み処理とは異なる処理)を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第1スタックエリアのデータの出し入れを実行する。次に、ステップ5206で、CPUC100は、第1ROM・RAM領域内のデータに基づき、全レジスタを第1スタックエリアに退避させて、第2ROM領域の処理を呼び出す。
<第2ROM・RAM領域における処理>
次に、ステップ5250(第7)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2メイン処理(第2ROM・RAM領域に係る遊技進行制御処理であり、割り込み処理とは異なる処理)を実行し、第1ROM領域の呼び出し元に復帰する。
<第1ROM・RAM領域における処理>
次に、ステップ5210で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ステップ5206にて第1スタックエリアに退避させた全レジスタを復帰する。次に、ステップ5212で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1ROM・RAM領域のメイン処理(遊技進行制御処理であり、割り込み処理とは異なる処理)を実行する。
<第2ROM・RAM領域における処理>
次に、ステップ5250(第7)の第2メイン処理について詳述する。まず、ステップ5252で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをBとする)を第2RAM領域の所定アドレス(βアドレスとも称する)に退避する。このスタックポインタは、第1スタック領域のスタックポインタである。次に、ステップ5254で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスはYとする)をセットする。次に、ステップ5256で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM・RAM領域のメイン処理(遊技進行制御処理であり、割り込み処理とは異なる処理)を実行し、PUSH・CALL・POP・RETURN等の所定の処理により第2スタックエリアのデータの出し入れを実行する。次に、ステップ5258で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをBとする)を第2RAM領域の所定アドレス(βアドレスとも称する)から復帰させ、第1ROM領域の呼び出し元に復帰する。
<第1ROM・RAM領域における処理>
次に、図87は、第7実施形態における、ステップ5300(第7)のサブルーチンに係る第1割り込み処理のフローチャートである。まず、ステップ5302で、CPUC100は、第1ROM・RAM領域内のデータに基づき、全レジスタを現在設定されているスタックエリアに退避する。次に、ステップ5304で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをAとする)を第1RAM領域に退避する。次に、ステップ5306で、CPUC100は、第1ROM・RAM領域内のデータに基づき、割り込み発生時に割り込み発生時のスタックエリアが第2スタックエリアであるか否かを判定する。ステップ5306でYesの場合、ステップ5308で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをBとする)を第2RAM領域の所定アドレス(βアドレスとも称する)から復帰し、ステップ5310に移行する。他方、ステップ5306でNoの場合にもステップ5310に移行する。これらの処理により、ステップ5310で使用するスタックエリアを第1スタックエリアに設定する。次に、ステップ5310で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1ROM・RAM領域の割り込み時の処理を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第1スタックエリアのデータの出し入れを実する。次に、ステップ5312で、CPUC100は、第1ROM・RAM領域内のデータに基づき、全レジスタを現在設定されているスタックエリア(第1スタックエリア)に退避し、第2ROM領域の処理を呼び出す。
<第2ROM・RAM領域における処理>
次に、ステップ5350(第7)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2割り込み処理を実行し、第1ROM領域の呼び出し元に復帰する。
<第1ROM・RAM領域における処理>
次に、ステップ5316で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ステップ5312で退避した全レジスタを復帰する。次に、ステップ5318で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1ROM・RAM領域の割り込み時処理の所定処理を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第1スタックエリアのデータの出し入れを実行する。次に、ステップ5320で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタックポインタAを第1RAM領域の所定アドレス(αアドレスとも称する)から復帰させる。次に、ステップ5322で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ステップ5302で退避した全レジスタを復帰する。
<第1ROM・RAM領域における処理>
次に、図88は、第7実施形態における、ステップ5350(第7)のサブルーチンに係る第2割り込み処理のフローチャートである。まず、ステップ5352で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをCとする)を第2RAM領域の所定アドレス(γアドレスとも称する)に退避する。次に、ステップ5354で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスはYとする)をセットする。次に、ステップ5356で、割り込み発生時のスタックエリアが第2スタックエリアであるか否かを判定する。ステップ5356でYesの場合、ステップ5358で、スタックポインタ(アドレスはAとする)を第1RAM領域の所定アドレス(αアドレスとも称する)から復帰し、ステップ5360に移行する。他方、ステップ5356でNoの場合にもステップ5360に移行する。これらの処理により、ステップ5360で使用するスタックエリアを第2スタックエリアに設定する。次に、ステップ5360で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM・RAM領域の割り込み時処理の所定処理を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第2スタックエリアのデータの出し入れを実行する。次に、ステップ5362で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタC(アドレスはCとする)を第2RAM領域の所定アドレス(γアドレスとも称する)から復帰する。
次に、図89は、第7実施形態における、メイン処理イメージ図Bである。まず、第1スタックエリアにスタックポインタX(第1スタックエリアのアドレスを示す)をセットする。その後、第1ROM・RAM領域による処理を実行した後、全レジスタA(全レジスタを退避する処理が複数出現するため本処理で退避するレジスタを全レジスタAとしており、同一の名称の全レジスタは同一の内容となっている)を第1スタックエリアに退避し、第2ROM領域の処理を呼び出す。その後、スタックポインタBを第2RAM領域の所定アドレス(βアドレスとも称する)に退避して(スタックポインタのアドレスBを第2RAM領域に一時記憶して)、スタックポインタY(第2スタックエリアのアドレスを示す)を第2スタックエリアにセットして、第2ROM・RAM領域の処理を実行する。次に、スタックポインタBを第1スタックエリアにセットして第1ROM領域の呼び出し元に復帰する。その後、全レジスタAを第1スタックエリアから復帰し、第1ROM・RAM領域の処理を実行してゆく。
次に、図90は、第7実施形態における、第1スタック設定中割り込みイメージ図Bである。まず、第1スタックエリアの設定中に割り込み処理が発生し、全レジスタAを第1スタックエリアに退避した後、スタックポインタA(第1スタックエリアのアドレスを示す)を第1RAM領域の所定アドレス(αアドレスとも称する)に退避する。尚、第1スタックエリアの設定中であるため、第1スタックエリアには第1ROM・RAM領域に係るデータ及び割り込み前の戻りアドレスに係るデータが積まれている。その後、第1ROM・RAM領域の処理を実行し、スタックポインタがCとなり、全レジスタBを第1スタックエリアに退避して、第2ROM領域の処理を呼び出す。次に、スタックポインタCを第2RAM領域の所定アドレス(γアドレスとも称する)に退避し、第2スタックエリアのスタックポインタY(第2スタックエリアのアドレスを示す)をセットして、第2ROM・RAM領域の処理を実行してゆく。次に、スタックポインタC(第1スタックエリアのアドレスを示す)を第2RAM領域の所定アドレス(γアドレスとも称する)から復帰した後、第1ROM・RAM領域の呼び出し元に復帰して全レジスタBを第1スタックエリアから復帰し、第1ROM・RAM領域の処理を実行してゆく。その後、スタックポインタA(第1スタックエリアのアドレスを示す)を第1RAM領域の所定アドレス(αアドレスとも称する)から復帰した後、全レジスタAを第1スタックエリアから復帰し、割り込み処理を終了する。
次に、図91は、第7実施形態における、第2スタック設定中割り込みイメージ図Bである。まず、第2スタックエリアの設定中に割り込み処理が発生し、全レジスタAを第2スタックエリアに退避した後、スタックポインタA(第2スタックエリアのアドレスを示す)を第1RAM領域の所定アドレス(αアドレスとも称する)に退避する。尚、第2スタックエリアの設定中であるため、第1スタックエリアには第1ROM・RAM領域に係るデータ、全レジスタC及び割り込み前の戻りアドレスに係るデータが積まれており、第2スタックエリアには第2ROM・RAM領域に係るデータが積まれている。その後、スタックポインタB(第1スタックエリアのアドレスを示す)を第2RAM領域の所定アドレス(βアドレスとも称する)から復帰し、第1ROM・RAM領域の処理を実行し、全レジスタBを第2スタックエリアに退避した後、第2ROM領域の処理を呼び出す(第2ROM領域を呼び出すタイミングではスタックポインタはCとなっている)。次に、スタックポインタCを第2RAM領域の所定アドレス(γアドレスとも称する)に退避し、第2スタックエリアのスタックポインタ(Y)をセットして、スタックポインタA(第2スタックエリアのアドレスを示す)を第1RAM領域の所定アドレス(αアドレスとも称する)から復帰し、第2ROM・RAM領域の処理を実行してゆく。次に、スタックポインタCを第2RAM領域の所定アドレス(γアドレスとも称する)から復帰した後、第1ROM領域の呼び出し元に復帰して全レジスタBを第2スタックエリアから復帰し、第1ROM・RAM領域の処理を実行してゆく。その後、スタックポインタA(第2スタックエリアのアドレスを示す)を第1RAM領域の所定アドレス(αアドレスとも称する)から復帰した後、全レジスタAを第2スタックエリアから復帰し、割り込み処理を終了する。
以上のように構成することで、第7実施形態に係る回胴式遊技機によれば、第1ROM・RAM領域による処理を実行中に第2ROM領域の処理を呼び出す場合には、全レジスタを退避してから第2ROM領域の処理を呼び出すよう構成し、スタックエリアとして第1スタックエリアと第2スタックエリアとの2つのスタックエリアを設けることによって、第1ROM・RAM領域の処理に係るデータと第2ROMRAM領域の処理に係るデータとが1つのスタックエリアに混在する事態を防止し、明確に第1ROM・RAM領域の処理に係るデータと第2ROM・RAM領域の処理とを切り分けることができることとなる。
(第8実施形態)
尚、第5実施形態においては、第1ROM・RAM領域による処理を実行中に第2ROM領域の処理を呼び出す場合には、第2ROM・RAM領域の処理によって、全レジスタを退避して第1ROM・RAM領域の処理に係るデータと第2ROM・RAM領域の処理とを切り分けるよう構成したが、その他の構成としても、同様に第1ROM・RAM領域の処理に係るデータと第2ROM・RAM領域の処理とを切り分けることができる。そこで、そのような構成を第8実施形態とし、以下、詳述していく。
<第1ROM・RAM領域における処理>
はじめに、図92は、第8実施形態における、ステップ5400(第8)及び5450(第8)のサブルーチンに係る第1メイン処理及び第2メイン処理のフローチャートである。まず、ステップ5400(第8)の第1メイン処理について詳述する。まず、ステップ5402で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1スタックエリアにスタックポインタX(第1スタックエリアのアドレスを示す)をセットする。次に、ステップ5404で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1ROM・RAM領域のメイン処理(遊技進行制御処理であり、割り込み処理とは異なる処理)を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第1スタックエリアのデータの出し入れを実行する。次に、ステップ5406で、CPUC100は、第1ROM・RAM領域内のデータに基づき、割り込み処理を禁止(割り込みを禁止している場合には、割込み許可がなされるまでタイマ割り込み処理が実行できないこととなる)した後、第2ROM領域の処理を呼び出す。
<第2ROM・RAM領域における処理>
次に、ステップ5450(第8)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2メイン処理(第2ROM・RAM領域に係る所定の処理であり、遊技進行制御処理)を実行し、第1ROM領域の呼び出し元に復帰する。
<第1ROM・RAM領域における処理>
次に、ステップ5410で、CPUC100は、第1ROM・RAM領域内のデータに基づき、禁止していた割り込み処理を許可する。次に、ステップ5412で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1ROM・RAM領域のメイン処理(遊技進行制御処理であり、割り込み処理とは異なる処理)を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第1スタックエリアのデータの出し入れを実行してゆく。
<第2ROM・RAM領域における処理>
次に、ステップ5450(第8)の第2メイン処理について詳述する。まず、ステップ5452で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをBとする)を第2RAM領域の所定アドレス(βアドレスとも称する)に退避する。次に、ステップ5454で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスはY)をセットする。次に、ステップ5456で、CPUC100は、第2ROM・RAM領域内のデータに基づき、全レジスタを第2スタックエリアに退避する。次に、ステップ5458で、CPUC100は、第2ROM・RAM領域内のデータに基づき、割り込みを許可する。次に、ステップ5460で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM・RAM領域のメイン処理(遊技進行制御処理であり、割り込み処理とは異なる処理)を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第2スタックエリアのデータの出し入れを実行する。次に、ステップ5462で、CPUC100は、第2ROM・RAM領域内のデータに基づき、割り込みを禁止(割り込みを禁止している場合には、割込み許可がなされるまでタイマ割り込み処理が実行できないこととなる)する。次に、ステップ5464で、CPUC100は、第2ROM・RAM領域内のデータに基づき、全レジスタを第2スタックエリアから復帰する。次に、ステップ5466で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをBとする)を第2RAM領域の所定アドレス(βアドレスとも称する)から復帰させる。尚、第8実施形態においては、スタックポインタを切り替える(例えば、第1スタックエリアのアドレスから第2スタックエリアのアドレスに切り替える)処理が複数のステップ(処理)に跨って実行され得るよう構成されており、当該切り替え処理実行途中に割り込み処理が発生すると、割り込み処理に基づく各種データが第1スタックエリアに記憶される場合と、第2スタックエリアに記憶される場合とのどちらの場合も発生し得ることとなり、そのような事態を発生させないために、スタックポインタの切り換えに要する処理の実行中には、割込み処理が発生しないように構成している。
<第1ROM・RAM領域における処理>
次に、図93は、第8実施形態における、ステップ5500(第8)のサブルーチンに係る第1割り込み処理のフローチャートである。まず、ステップ5502で、CPUC100は、第1ROM・RAM領域内のデータに基づき、AFレジスタ(Aレジスタ)を裏レジスタに退避する。尚、裏レジスタとは、主に用いるレジスタのコピーを保持する別のレジスタであり、一瞬にしてアクセスするレジスタを当該主に用いるレジスタから裏レジスタに切り替え得るよう構成されている。また、Fレジスタとは、演算命令等が実行された場合に当該演算結果に従って、S、Z、H、P/V、N、Cの各フラグが「1」又は「0」に変化したり、変化しなかったりすることとなるレジスタであり、プログラムによってFレジスタの内容を変化させることができないよう構成されている。また、AFレジスタを退避させているのは、Fレジスタだけ退避できれば問題ないのだがFレジスタだけを退避することができないためAFレジスタを退避させている。このように構成することによって、直前の演算結果によって上書きされていくFレジスタが割り込み処理(例えば、ステップ5508の処理)によって上書きされてしまう(壊れてしまう)ことを回避することができることとなる。次に、ステップ5504で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをAとする)を第1RAM領域に退避する。次に、ステップ5506で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2メイン処理(第2ROM・RAM領域のメイン処理)を実行中であるか否かを判定する{例えば、(1)当該退避したスタックポインタのアドレス(割り込み処理開始時のアドレスであり、Aとなっている)が第1スタックエリアのアドレスであるか第2スタックエリアのアドレスであるかによって判定する、(2)割り込み処理開始時にスタックエリアに格納されている戻り番地のアドレスが第1ROM・RAM領域のアドレスであるか第2ROM・RAM領域のアドレスであるかによって判定する、等}。ステップ5506でYesの場合、ステップ5508で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをBとする)を第2RAM領域の所定アドレス(βアドレスとも称する)から復帰し、ステップ5510に移行する。他方、ステップ5506でNoの場合にもステップ5510に移行する。次に、ステップ5510で、CPUC100は、第1ROM・RAM領域内のデータに基づき、全レジスタを現在設定されているスタックエリアに退避する。次に、ステップ5512で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1ROM・RAM領域の割り込み時処理の所定処理(遊技進行制御処理)を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第1スタックエリアのデータの出し入れを実行した後、第2ROM領域の処理を呼び出す。
<第2ROM・RAM領域における処理>
次に、ステップ5550(第8)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2割り込み処理を実行し、第1ROM領域の呼び出し元に復帰する。
<第1ROM・RAM領域における処理>
次に、ステップ5516で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1ROM・RAM領域の割り込み時処理の所定処理(遊技進行制御処理)を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第1スタックエリアのデータの出し入れを実行する。次に、ステップ5518で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ステップ5510で退避した全レジスタを復帰する。次に、ステップ5520で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスはA)を第1RAM領域の所定アドレス(αアドレスとも称する)から復帰させる。次に、ステップ5524で、CPUC100は、第1ROM・RAM領域内のデータに基づき、裏レジスタに退避したAFレジスタを復帰し、割り込み処理を終了する。
<第1ROM・RAM領域における処理>
次に、図94は、第8実施形態における、ステップ5550(第8)のサブルーチンに係る第2割り込み処理のフローチャートである。まず、ステップ5552で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをCとする)を第2RAM領域の所定アドレス(γアドレスとも称する)に退避する。次に、ステップ5554で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスはY)をセットする。次に、ステップ5556で、割込み発生時に第2メイン処理(第2ROM・RAM領域のメイン処理)が実行中であったか否かを判定する{例えば、(1)当該退避したスタックポインタのアドレス(割り込み処理開始時のアドレスであり、Aとなっている)が第1スタックエリアのアドレスであるか第2スタックエリアのアドレスであるかによって判定する、(2)割り込み処理開始時にスタックエリアに格納されている戻り番地のアドレスが第1ROM・RAM領域のアドレスであるか第2ROM・RAM領域のアドレスであるかによって判定する、等}。ステップ5556でYesの場合、ステップ5558で、スタックポインタ(アドレスはAとする)を第1RAM領域の所定アドレス(αアドレスとも称する)から復帰し、ステップ5560に移行する。他方、ステップ5556でNoの場合にもステップ5560に移行する。次に、ステップ5560で、CPUC100は、第2ROM・RAM領域内のデータに基づき、全レジスタを現在設定されているスタックエリアに退避する。次に、ステップ5562で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM・RAM領域の割り込み時処理の所定処理を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第2スタックエリアのデータの出し入れを実行する。次に、ステップ5564で、CPUC100は、第2ROM・RAM領域内のデータに基づき、ステップ5560で退避した全レジスタを復帰する。次に、ステップ5566で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスはCとする)を第2RAM領域の所定アドレス(γアドレスとも称する)から復帰する。
次に、図95は、第8実施形態における、メイン処理イメージ図Cである。まず、第1スタックエリアにスタックポインタ(アドレスはX)をセットした後、第1ROM・RAM領域による処理を実行し、スタックポインタのアドレスがBとなっている状況下、割り込みを禁止(割り込みを禁止している場合には、割込み許可がなされるまでタイマ割り込み処理が実行できないこととなる)して第2ROM領域の処理を呼び出す。次に、スタックポインタBを第2RAM領域の所定アドレス(βアドレスとも称する)に退避し(スタックポインタのアドレスBを第2RAM領域に一時記憶し)、スタックポインタY(第2スタックエリアのアドレスを示す)をセットした後、全レジスタA(全レジスタを退避する処理が複数出現するため本処理で退避するレジスタを全レジスタAとしており、同一の名称の全レジスタは同一の内容となっている)を第2スタックエリアに退避した後、割り込みを許可する。その後、第2ROM領域の処理を呼び出して第2ROM・RAM領域の処理を実行した後、割り込みを禁止(割り込みを禁止している場合には、割込み許可がなされるまでタイマ割り込み処理が実行できないこととなる)にして全レジスタAを第2スタックエリアから復帰した後、スタックポインタBを第2RAM領域の所定アドレス(βアドレスとも称する)から復帰し、第1ROM・RAM領域の呼び出し元に復帰する。その後、割り込みを許可し、第1ROM・RAM領域の処理を実行してゆく。
次に、図96は、第8実施形態における、第1メイン処理中割り込みイメージCである。まず、第1ROM・RAM領域のメイン処理実行中に割り込み処理が発生し、AFレジスタを裏レジスタに退避した後、スタックポインタA(第1スタックエリアのアドレスを示す)を第1RAM領域の所定アドレス(αアドレスとも称する)に退避する。尚、第1メイン処理中にて割り込み処理が発生しているため、第1スタックエリアには、第1ROM・RAM領域に係るデータ及び割り込み前の戻りアドレスに係るデータが積まれている。次に、全レジスタAを第1スタックエリアに退避する。その後、第1ROM・RAM領域の処理を実行してスタックポインタがC(第1スタックエリアのアドレスを示す)となり、第2ROM領域の処理を呼び出す。次に、スタックポインタC(第1スタックエリアのアドレスを示す)を第2RAM領域の所定アドレス(γアドレスとも称する)に退避し、第2スタックエリアのスタックポインタ(Y)をセットして、全レジスタBを第2スタックエリアに退避した後、第2ROM・RAM領域の処理を実行してゆく。次に、全レジスタBを第2スタックエリアから復帰し、スタックポインタC(第1スタックエリアのアドレスを示す)を第2RAM領域の所定アドレス(βアドレスとも称する)から復帰した後、第1ROM領域の呼び出し元に復帰して第1ROM・RAM領域の処理を実行してゆく。その後、全レジスタAを第1スタックエリアから復帰した後、スタックポインタAを第1RAM領域の所定アドレス(αアドレスとも称する)から復帰し、裏レジスタからAFレジスタを復帰して割り込み処理を終了する。
次に、図97は、第8実施形態における、第2メイン処理中割り込みイメージ図Cである。まず、第2ROM・RAM領域のメイン処理実行中に割り込み処理が発生し、AFレジスタを裏レジスタに退避し、スタックポインタA(第2スタックエリアのアドレスを示す)を第1RAM領域の所定アドレス(αアドレスとも称する)に退避する。尚、第2メイン処理中の割り込み処理であるため、第1スタックエリアには第1ROM・RAM領域に係るデータ及び割り込み前の戻りアドレスに係るデータが積まれており、第2スタックエリアには全レジスタB、第2ROM・RAM領域に係るデータ及び割り込み前の戻りアドレスに係るデータが積まれている。その後、スタックポインタB(第1スタックエリアのアドレスを示す)を第2RAM領域の所定アドレス(βアドレスとも称する)から復帰し、全レジスタAを第1スタックエリアに退避し、第1ROM・RAM領域の処理を実行する。その後、第2ROM領域の処理を呼び出し(第2ROM領域を呼び出すタイミングではスタックポインタはCとなっている)、スタックポインタC(第1スタックエリアのアドレスを示す)を第2RAM領域の所定アドレス(γアドレスとも称する)に退避し、第2スタックエリアのスタックポインタ(アドレスはY)をセットして、スタックポインタA(第2スタックエリアのアドレスを示す)を第1RAM領域の所定アドレス(αアドレスとも称する)から復帰する。その後、全レジスタBを第2スタックエリアに退避した後、第2ROM・RAM領域の処理を実行してゆく。その後、第2ROM・RAM領域の処理を終了し、全レジスタBを第2スタックエリアから復帰した後、スタックポインタC(第1スタックエリアのアドレスを示す)を第2RAM領域の所定アドレス(γアドレスとも称する)から復帰する。その後、第1ROM・RAM領域の呼び出し元に復帰して、第1ROM・RAM領域の処理を実行してゆく。その後、全レジスタAを第1スタックエリアから復帰した後、スタックポインタA(第2スタックエリアのアドレスを示す)を第1RAM領域の所定アドレス(αアドレスとも称する)から復帰し、AFレジスタを裏レジスタから復帰して、割り込み処理を終了する。
以上のように構成することで、第8実施形態に係る回胴式遊技機によれば、第1ROM・RAM領域による処理を実行中に第2ROM領域の処理を呼び出す場合には、割り込み処理を禁止することによって、使用するROM・RAM領域及び使用するスタックエリアの切り替えを問題なく実行することができ、明確に第1ROM・RAM領域の処理に係るデータと第2ROM・RAM領域の処理とを切り分けることができることとなる。
(第9実施形態)
尚、第8実施形態においては、第1ROM・RAM領域による処理を実行中に第2ROM領域の処理を呼び出す場合には、第2ROM・RAM領域の処理によって、割り込み処理を禁止することによって、第1ROM・RAM領域の処理に係るデータと第2ROM・RAM領域の処理とを切り分けるよう構成したが、割り込み禁止の構成を有するその他の構成としても、同様に第1ROM・RAM領域の処理に係るデータと第2ROM・RAM領域の処理とを切り分けることができる。そこで、そのような構成を第9実施形態とし、以下、詳述していく。
<第1ROM・RAM領域における処理>
はじめに、図98は、第9実施形態における、ステップ5600(第9)及び5650(第9)のサブルーチンに係る第1メイン処理及び第2メイン処理のフローチャートである。尚、本図以降のフローチャートにおける右部のスタックエリアの記載は、処理が実行されている場合にスタックポインタがセットされているスタックエリアを示している。まず、ステップ5600(第9)の第1メイン処理について詳述する。まず、ステップ5602で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1スタックエリアにスタックポインタ(アドレスはX)をセットする。次に、ステップ5604で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1ROM・RAM領域のメイン処理(遊技進行制御処理であり、割り込み処理とは異なる処理)を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第1スタックエリアのデータの出し入れを実行する。次に、ステップ5606で、CPUC100は、第1ROM・RAM領域内のデータに基づき、割り込み処理を禁止(割り込みを禁止している場合には、割込み許可がなされるまでタイマ割り込み処理が実行できないこととなる)する。次に、ステップ5608で、CPUC100は、第1ROM・RAM領域内のデータに基づき、全レジスタを第1スタックエリアに退避し、第2ROM領域の処理を呼び出す。
<第2ROM・RAM領域における処理>
次に、ステップ5650(第9)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2メイン処理(第2ROM・RAM領域に係る割り込み処理とは異なる処理であり、遊技進行制御処理)を実行し、第1ROM領域の呼び出し元に復帰する。
<第1ROM・RAM領域における処理>
次に、ステップ5612で、CPUC100は、第1ROM・RAM領域内のデータに基づき、全レジスタを第1スタックエリアから復帰する。次に、ステップ5614で、CPUC100は、第1ROM・RAM領域内のデータに基づき、禁止していた割り込み処理を許可する。次に、ステップ5616で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1ROM・RAM領域のメイン処理(遊技進行制御処理であり、割り込み処理とは異なる処理)を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第1スタックエリアのデータの出し入れを実行してゆく。
<第2ROM・RAM領域における処理>
次に、ステップ5650(第9)の第2メイン処理について詳述する。まず、ステップ5652で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをBとする)を第2RAM領域の所定アドレス(βアドレスとも称する)に退避する。次に、ステップ5654で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをYとする)をセットする。次に、ステップ5656で、CPUC100は、第2ROM・RAM領域内のデータに基づき、割り込み処理を許可する。次に、ステップ5658で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM・RAM領域のメイン処理(遊技進行制御処理であり、割り込み処理とは異なる処理)を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第2スタックエリアのデータの出し入れを実行する。次に、ステップ5660で、CPUC100は、第2ROM・RAM領域内のデータに基づき、割り込みを禁止する。次に、ステップ5662で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをBとする)を第2RAM領域の所定アドレス(βアドレスとも称する)から復帰させる。尚、第9実施形態においては、スタックポインタを切り替える(例えば、第1スタックエリアのアドレスから第2スタックエリアのアドレスに切り替える)処理が複数のステップ(処理)に跨って実行されるよう構成されており、当該切り替え処理実行途中に割り込み処理が発生すると、割り込み処理に基づく各種データが第1スタックエリアに記憶される場合と、第2スタックエリアに記憶される場合とのどちらの場合も発生し得ることとなり、そのような事態を発生させないために、スタックポインタの切り換えに要する処理の実行中には、割込み処理が発生しないように構成している。
<第1ROM・RAM領域における処理>
次に、図99は、第9実施形態における、ステップ5700(第9)のサブルーチンに係る第1割り込み処理のフローチャートである。まず、ステップ5702で、CPUC100は、第1ROM・RAM領域内のデータに基づき、AFレジスタ(Aレジスタ)を裏レジスタに退避する。次に、ステップ5704で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをAとする)を第1RAM領域の所定アドレス(αアドレスとも称する)に退避する。次に、ステップ5706で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2メイン処理(第2ROM・RAM領域のメイン処理)を実行中であるか否かを判定する{例えば、(1)当該退避したスタックポインタのアドレス(割り込み処理開始時のアドレスであり、Aとなっている)が第1スタックエリアのアドレスであるか第2スタックエリアのアドレスであるかによって判定する、(2)割り込み処理開始時にスタックエリアに格納されている戻り番地のアドレスが第1ROM・RAM領域のアドレスであるか第2ROM・RAM領域のアドレスであるかによって判定する、等}。ステップ5706でYesの場合、ステップ5708で、CPUC100は、第1ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをBとする)を第2RAM領域の所定アドレス(βアドレスとも称する)から復帰し、ステップ5710に移行する。他方、ステップ5706でNoの場合にもステップ5710に移行する。次に、ステップ5710で、CPUC100は、第1ROM・RAM領域内のデータに基づき、全レジスタを現在設定されているスタックエリア(第1スタックエリア)に退避する。次に、ステップ5712で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第1ROM・RAM領域の割り込み時処理の所定処理(遊技進行制御処理)を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第1スタックエリアのデータの出し入れを実行する。次に、ステップ5714で、CPUC100は、第1ROM・RAM領域内のデータに基づき、全レジスタを現在設定されているスタックエリア(第1スタックエリア)に退避した後、第2ROM領域の処理を呼び出す。
<第2ROM・RAM領域における処理>
次に、ステップ5750(第9)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2割り込み処理を実行し、第1ROM領域の呼び出し元に復帰する。
<第1ROM・RAM領域における処理>
次に、ステップ5718で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ステップ5714で退避した全レジスタを復帰する。次に、ステップ5720で、第1ROM・RAM領域の割り込み時処理の所定処理(遊技進行制御処理)を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第1スタックエリアのデータの出し入れを実行する。次に、ステップ5722で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ステップ5710で退避した全レジスタを復帰する。次に、ステップ5724で、スタックポインタ(アドレスをAとする)を第1RAM領域の所定アドレス(αアドレスとも称する)から復帰する。次に、ステップ5726で、CPUC100は、第1ROM・RAM領域内のデータに基づき、裏レジスタに退避したAFレジスタを復帰し、割り込み処理を終了する。
<第2ROM・RAM領域における処理>
次に、図100は、第9実施形態における、ステップ5750(第9)のサブルーチンに係る第2割り込み処理のフローチャートである。まず、ステップ5752で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスをCとする)を第2RAM領域の所定アドレス(γアドレスとも称する)に退避する。次に、ステップ5754で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスはY)をセットする。次に、ステップ5756で、第2メイン処理(第2ROM・RAM領域のメイン処理)を実行中であるか否かを判定する{例えば、(1)当該退避したスタックポインタのアドレス(割り込み処理開始時のアドレスであり、Aとなっている)が第1スタックエリアのアドレスであるか第2スタックエリアのアドレスであるかによって判定する、(2)割り込み処理開始時にスタックエリアに格納されている戻り番地のアドレスが第1ROM・RAM領域のアドレスであるか第2ROM・RAM領域のアドレスであるかによって判定する、等}。ステップ5756でYesの場合、ステップ5758で、スタックポインタ(アドレスはAとする)を第1RAM領域の所定アドレス(αアドレスとも称する)から復帰し、ステップ5760に移行する。他方、ステップ5756でNoの場合にもステップ5760に移行する。次に、ステップ5760で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM・RAM領域の割り込み時処理の所定処理(遊技進行制御処理)を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第1スタックエリアのデータの出し入れを実行する。次に、ステップ5762で、CPUC100は、第2ROM・RAM領域内のデータに基づき、スタックポインタ(アドレスはCとする)を第2RAM領域の所定アドレス(γアドレスとも称する)から復帰する。
次に、図101は、第9実施形態における、メイン処理イメージ図Dである。まず、第1スタックエリアにスタックポインタ(アドレスはX)をセットした後、第1ROM・RAM領域による処理を実行し、スタックポインタのアドレスがBとなっている状況下、割り込みを禁止して全レジスタA(全レジスタを退避する処理が複数出現するため本処理で退避するレジスタを全レジスタAとしており、同一の名称の全レジスタは同一の内容となっている)を第1スタックエリアに退避した後、第2ROM領域の処理を呼び出す。次に、スタックポインタBを第2RAM領域の所定アドレス(βアドレスとも称する)に退避し(スタックポインタのアドレスBを第2RAM領域に一時記憶し)、スタックポインタY(第2スタックエリアのアドレスを示す)をセットした後、割り込みを許可する。その後、第2ROM領域の処理を呼び出して第2ROM・RAM領域の処理を実行した後、割り込みを禁止にしてスタックポインタBを第2RAM領域の所定アドレス(βアドレスとも称する)から復帰し、第1ROM・RAM領域の呼び出し元に復帰する。その後、割り込みを許可し、第1ROM・RAM領域の処理を実行してゆく。
次に、図102は、第9実施形態における、第1メイン処理中割り込みイメージDである。まず、第1ROM・RAM領域のメイン処理実行中に割り込み処理が発生し、AFレジスタを裏レジスタに退避した後、スタックポインタA(第1スタックエリアのアドレスを示す)を第1RAM領域に退避する。尚、第1メイン処理中にて割り込み処理が発生しているため、第1スタックエリアには、第1ROM・RAM領域に係るデータ及び割り込み前の戻りアドレスに係るデータが積まれている。次に、全レジスタAを第1スタックエリアに退避する。その後、第1ROM・RAM領域の処理を実行した後、全レジスタBを第1スタックエリアに退避してスタックポインタがC(第1スタックエリアのアドレスを示す)となり、第2ROM領域の処理を呼び出す。次に、スタックポインタC(第1スタックエリアのアドレスを示す)を第2RAM領域の所定アドレス(γアドレスとも称する)に退避し、第2スタックエリアのスタックポインタ(Y)をセットして、第2ROM・RAM領域の処理を実行してゆく。次に、スタックポインタC(第1スタックエリアのアドレスを示す)を第2RAM領域の所定アドレス(γアドレスとも称する)から復帰した後、第1ROM領域の呼び出し元に復帰する。次に、全レジスタBを第1スタックエリアから復帰した後第1ROM・RAM領域の処理を実行してゆく。その後、全レジスタAを第1スタックエリアから復帰した後、スタックポインタAを第1RAM領域の所定アドレス(αアドレスとも称する)から復帰し、裏レジスタからAFレジスタを復帰して割り込み処理を終了する。
次に、図103は、第9実施形態における、第2メイン処理中割り込みイメージ図Dである。まず、第2ROM・RAM領域のメイン処理実行中に割り込み処理が発生し、AFレジスタを裏レジスタに退避し、スタックポインタAを第1RAM領域に退避する。尚、第2メイン処理中にて割り込みが発生しているため、第1スタックエリアには第1ROM・RAM領域に係るデータ及び割り込み前の戻りアドレスに係るデータが積まれており、第2スタックエリアには全レジスタC、第2ROM・RAM領域に係るデータ及び割り込み前の戻りアドレスに係るデータが積まれている。その後、スタックポインタB(第1スタックエリアのアドレスを示す)を第2RAM領域の所定アドレス(βアドレスとも称する)から復帰し、全レジスタAを第1スタックエリアに退避した後、第1ROM・RAM領域の処理を実行し、全レジスタBを第1スタックエリアに退避する。その後、第2ROM領域の処理を呼び出し(第2ROM領域を呼び出すタイミングではスタックポインタはCとなっている)、スタックポインタCを第2RAM領域の所定アドレス(γアドレスとも称する)に退避し、第2スタックエリアのスタックポインタ(アドレスはY)をセットした後、スタックポインタA(第2スタックエリアのアドレスを示す)を第1RAM領域の所定アドレス(αアドレスとも称する)から復帰する。その後、第2ROM・RAM領域の処理を実行し、スタックポインタCを第2RAM領域の所定アドレス(γアドレスとも称する)から復帰した後、全レジスタBを第1スタックエリアから復帰し、第1ROM・RAM領域の呼び出し元に復帰して、第1ROM・RAM領域の処理を実行してゆく。その後、全レジスタAを第1スタックエリアから復帰した後、スタックポインタA(第2スタックエリアのアドレスを示す)を第1RAM領域の所定アドレス(αアドレスとも称する)から復帰し、AFレジスタを裏レジスタから復帰して、割り込み処理を終了する。
以上のように構成することで、第9実施形態に係る回胴式遊技機によれば、第8実施形態とはレジスタを退避させるタイミング及び処理を実行するROM・RAM領域が相違しても、第1ROM・RAM領域による処理を実行中に第2ROM領域の処理を呼び出す場合には、割り込み処理を禁止することによって、使用するROM・RAM領域及び使用するスタックエリアの切り替えを問題なく実行することができ、明確に第1ROM・RAM領域の処理に係るデータと第2ROM・RAM領域の処理とを切り分けることができることとなる。
(第10実施形態)
尚、第6実施形態においては、第1ROM・RAM領域による処理を実行中に第2ROM領域の処理を呼び出す場合には、第2ROM・RAM領域の処理によって、全レジスタを退避して第1ROM・RAM領域の処理に係るデータと第2ROM・RAM領域の処理とを切り分けるよう構成したが、その他の構成としても、同様に第1ROM・RAM領域の処理に係るデータと第2ROM・RAM領域の処理とを切り分けることができる。そこで、そのような構成を第10実施形態とし、第6実施形態との相違点について以下、詳述していく。
<第1ROM・RAM領域における処理>
はじめに、図104は、第10実施形態における、ステップ5000(第6)及び5050(第6)のサブルーチンに係る第1メイン処理及び第2メイン処理のフローチャートである。第6実施形態との相違点は、ステップ5057(第10)及びステップ5059(第10)であり、即ち、ステップ5056で、スタックポインタY(第2スタックエリアのアドレスを示す)をセットした後、ステップ5057(第10)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、全レジスタを第2スタックエリアに退避する。次に、ステップ5058で、CPUC100は、第1ROM・RAM領域内のデータに基づき、第2ROM・RAM領域のメイン処理(遊技進行制御処理であり、割り込み処理とは異なる処理)を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第1スタックエリアのデータの出し入れを実行する。次に、ステップ5059(第10)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、全レジスタを第2スタックエリアから復帰し、ステップ5060に移行する。
<第1ROM・RAM領域における処理>
次に、図105は、第10実施形態における、ステップ5100(第10)のサブルーチンに係る第1割り込み処理のフローチャートである。第6実施形態との相違点は、ステップ5109(第10)及びステップ5115(第10)であり、即ち、ステップ5108で、スタックポインタ(アドレスをBとする)を第2RAM領域の所定アドレス(βアドレスとも称する)から退避させた後、又は、ステップ5106で割り込み発生時のスタックエリアが第1スタックエリアであった場合に、ステップ5109(第10)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、全レジスタを現在設定されているスタックエリアに退避し、ステップ5150(第6)に移行する。
<第1ROM・RAM領域における処理>
また、ステップ5114でPUSH・CALL・POP・RETURN等を用いた所定の処理により第1スタックエリアのデータの出し入れを実行した後、ステップ5115(第10)で、CPUC100は、第1ROM・RAM領域内のデータに基づき、ステップ5109(第10)で退避した全レジスタを復帰し、ステップ5116に移行する。
<第2ROM・RAM領域における処理>
次に、図106は、第10実施形態における、ステップ5150(第10)のサブルーチンに係る第2割り込み処理のフローチャートである。第6実施形態との相違点は、ステップ5161(第10)及びステップ5163(第10)であり、即ち、ステップ5160で、スタックポインタ(アドレスをAとする)を第1RAM領域の所定アドレス(αアドレスとも称する)から復帰させた後、又は、ステップ5158で割り込み発生時のスタックエリアが第1スタックエリアであった場合に、ステップ5161(第10)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、全レジスタを現在設定されているスタックエリア(第2スタックエリア)に退避する。次に、ステップ5162で、CPUC100は、第2ROM・RAM領域内のデータに基づき、第2ROM・RAM領域の割り込み処理時の所定処理を実行し、PUSH・CALL・POP・RETURN等を用いた所定の処理により第2スタックエリアのデータの出し入れを実行する。次に、ステップ5163(第10)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、ステップ5161(第10)で退避した全レジスタを復帰し、ステップ5164に移行する。
以上のように構成することで、第10実施形態に係る回胴式遊技機によれば、第6実施形態とはレジスタを退避させるタイミング及び処理を実行するROM・RAM領域が相違しても、第6実施形態同様に明確に第1ROM・RAM領域の処理に係るデータと第2ROM・RAM領域の処理とを切り分けることができることとなる。
(第11実施形態)
尚、第6実施形態においては、第1ROM・RAM領域による処理を実行中に第2ROM領域の処理を呼び出す場合には、第2ROM・RAM領域の処理によって、全レジスタを退避して第1ROM・RAM領域の処理に係るデータと第2ROM・RAM領域の処理とを切り分けるよう構成したが、その他の構成としても、同様に第1ROM・RAM領域の処理に係るデータと第2ROM・RAM領域の処理とを切り分けることができる。そこで、そのような構成を第11実施形態とし、第6実施形態との相違点について以下、詳述していく。
<第2ROM・RAM領域における処理>
はじめに、図107は、第11実施形態における、ステップ5000(第6)及び5050(第6)のサブルーチンに係る第1メイン処理及び第2メイン処理のフローチャートである。第6実施形態との相違点は、ステップ5051(第11)、ステップ5064(第11)、ステップ5066(第11)及びステップ5068(第11)であり、即ち、第2メイン処理が呼び出された後、ステップ5051(第11)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、割り込みを禁止し、ステップ5052に移行する。
<第2ROM・RAM領域における処理>
また、ステップ5056でスタックポインタ(アドレスをYとする)をセットした後、ステップ5064(第11)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、割り込みを許可し、ステップ5058に移行する。
<第2ROM・RAM領域における処理>
また、ステップ5058でPUSH・CALL・POP・RETURN等を用いた所定の処理により第1スタックエリアのデータの出し入れを実行した後、ステップ5066(第11)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、割り込みを禁止し、ステップ5062に移行する。
<第2ROM・RAM領域における処理>
また、ステップ5062で全レジスタを第1スタックエリアから復帰した後、ステップ5068(第11)で、CPUC100は、第2ROM・RAM領域内のデータに基づき、割り込みを許可する。尚、第11実施形態においては、スタックポインタを切り替える(例えば、第1スタックエリアのアドレスから第2スタックエリアのアドレスに切り替える)処理が複数のステップ(処理)に跨って実行されるよう構成されており、当該切り替え処理実行途中に割り込み処理が発生すると、割り込み処理に基づく各種データが第1スタックエリアに記憶される場合と、第2スタックエリアに記憶される場合とのどちらの場合も発生し得ることとなり、そのような事態を発生させないために、スタックポインタの切り換えに要する処理の実行中には、割込み処理が発生しないように構成している。
以上のように構成することで、第11実施形態に係る回胴式遊技機によれば、第6実施形態とはレジスタを退避させるタイミング及び処理を実行するROM・RAM領域が相違しても、第1ROM・RAM領域による処理を実行中に第2ROM領域の処理を呼び出す場合には、割り込み処理を禁止することによって、使用するROM・RAM領域及び使用するスタックエリアの切り替えを問題なく実行することができ、明確に第1ROM・RAM領域の処理に係るデータと第2ROM・RAM領域の処理とを切り分けることができることとなる。
尚、本例における回胴式遊技機においては、レジスタがスタック領域に格納される場所が予め定められていることにより、スタックエリアから各レジスタの値を復帰させることができるよう構成されている。
(まとめ)
尚、以上の実施例において示した構成に基づき、以下のような概念を抽出(列記)することができる。但し、以下に列記する概念はあくまで一例であり、これら列記した概念の結合や分離(上位概念化)は勿論のこと、以上の実施例において示した更なる構成に基づく概念を、これら概念に付加してもよい。
はじめに、以上の実施例が解決しようとする課題について簡潔に述べる。遊技機の動作制御等を司るプログラム容量は、不正プログラムの混入防止(遊技機メーカーが提供するプログラムの正当性保障)の観点からその容量上限が厳しく規制されていると共に、遊技性仕様を実装するためのプログラムの他にも、遊技機に対して不正行為がなされる(例えば、遊技媒体の投入口や払出口に対して不正にアクセスして遊技媒体を不正な手段で得る、等)ことを防御するための不正行為防止用のプログラムも数多く実装されている。しかしながら、現状では、遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとが混在してROM上に配置されていることが多く、その結果これらプログラムの正当性を検証することが困難となっているという課題が存在する。
本態様(1−1)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、前記プログラムに従い読みだされるデータとが記憶され、
前記ROM内における前記アドレス値が昇順にて連続しているメモリマップ上(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例)において、
第一の始点アドレス値から第一の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
前記第一の終点アドレス値よりも大きい第二の始点アドレス値から第二の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
前記第二の終点アドレス値よりも大きい第三の始点アドレス値から第三の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
前記第三の終点アドレス値よりも大きい第四の始点アドレス値から第四の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
に少なくとも分かれるよう構成されている
ことを特徴とする遊技機である。
本態様(1−1)に係る回胴式遊技機によれば、第一制御領域内に存在しCPUからアクセスされるプログラムと、第二制御領域内に存在しCPUからアクセスされるプログラムとが、メモリマップ上において離隔して(アドレスが連続しない配置で)配置されているため、プログラムソースコード上又はダンプリスト上において、双方のプログラムの配置位置を視覚上明確に切り分けることができる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置することで、遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとの配置位置を、プログラムソースコード上又はダンプリスト上において視覚上明確に切り分けることができるため、双方のプログラムの正当性を人為的に検証することが容易となる。また、第一制御領域内に存在しCPUからアクセスされるプログラムの方が、第二制御領域内に存在しCPUからアクセスされるプログラムよりも若いアドレスに配置されているため、CPUが最初に実行するプログラムを第一制御領域内に存在しCPUからアクセスされるプログラム(即ち、遊技性仕様を実装するためのプログラム)に限定することが容易となる。
本態様(1−2)に係る回胴式遊技機は、
前記第二の終点アドレス値よりも大きく且つ前記第三の始点アドレス値よりも小さい一又は複数の前記アドレス値が存在し、当該一又は複数の前記アドレス値に対して、前記プログラム及び前記データのいずれともならない特殊情報が配置されている、本態様(1−1)の遊技機である。
本態様(1−2)に係る回胴式遊技機によれば、前述した効果に加え、第一制御領域内に存在しCPUからアクセスされるプログラムと第一制御領域内に存在し読みだされるデータとを第一のブロックとし、第二制御領域内に存在しCPUからアクセスされるプログラムと第二制御領域内に存在し読みだされるデータとを第二のブロックとすると、第一のブロックと第二のブロックとの間には、CPUからアクセスされない特殊情報が配置されているので、プログラムソースコード上又はダンプリスト上において、この特殊情報が区切りとなって、双方のブロックの配置位置を視覚上明確に切り分けることができる。その結果、例えば、第一のブロック=遊技性仕様を実装するための制御ブロック、第二のブロック=不正行為防止用の制御ブロックとして配置することで、機能上性質の異なる双方の制御ブロックを、プログラムソースコード上又はダンプリスト上において視覚上明確に切り分けることができるため、双方の制御ブロックの正当性を人為的に検証することが容易となる。
本態様(1−3)に係る回胴式遊技機は、
前記特殊情報は、すべてのビットがゼロである、本態様(1−2)の遊技機である。
本態様(1−3)に係る回胴式遊技機によれば、前述した効果に加え、第一のブロックと第二のブロックとの間に、CPUからアクセスされない特殊情報を配置するに際し、この特殊情報のすべてのビットがゼロであるため、プログラムソースコード上又はダンプリスト上において、この特殊情報が区切りとなる役割を好適に果たし、双方のブロックの配置位置を視覚上より明確に切り分けることができる。
本態様(1−4)に係る回胴式遊技機は、
前記特殊情報は、予め定められたコード化手法により遊技機に関する情報がコード化されたビット列となる、本態様(1−2)の遊技機である。
本態様(1−4)に係る回胴式遊技機によれば、前述した効果に加え、第一のブロックと第二のブロックとの間に、CPUからアクセスされない特殊情報を配置するに際し、この特殊情報が「遊技機に関する情報」となるため、プログラムソースコード上又はダンプリスト上において、この特殊情報が区切りとなる役割を果たすと共に、プログラムソースコードの出所を同時に示すことができるため、双方の制御ブロックの正当性を人為的に検証することが更に容易となる。
本態様(1−5)に係る回胴式遊技機は、
前記第二制御領域にて配置されている全ての前記プログラムに係る総バイト数は、前記第一制御領域にて配置されている全ての前記プログラムに係る総バイト数よりも少なく、且つ、前記第二データ領域にて配置されている全ての前記データに係る総バイト数は、前記第一データ領域にて配置されている全ての前記データに係る総バイト数よりも少ない、本態様(1−1)の遊技機である。
本態様(1−5)に係る回胴式遊技機によれば、前述した効果に加え、第一のブロック=遊技性仕様を実装するための制御ブロック、第二のブロック=不正行為防止用の制御ブロックとして配置するよう構成した場合において、遊技性仕様を実装するためのデータ容量よりも不正行為防止用のデータ容量の方が小さくなる。ここで、不正行為防止用のデータは、遊技機メーカー毎に仕様が相違し易いため、正当性を人為的に検証する必要性が高いものとなるが、そのデータ容量を相対的に小さくして制限しておけば、不正行為防止用のデータの正当性を人為的に検証する労力を低減することが可能となる。
本態様(2)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、前記プログラムに従い読みだされるデータとが記憶され、
前記ROM内における前記アドレス値が昇順にて連続しているメモリマップ上(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例)において、
第一の始点アドレス値から第一の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
前記第一の終点アドレス値よりも大きい第二の始点アドレス値から第二の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
前記第二の終点アドレス値よりも大きい第三の始点アドレス値から第三の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
前記第三の終点アドレス値よりも大きい第四の始点アドレス値から第四の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
に少なくとも分かれるよう構成され、
前記第一制御領域にて配置されている前記プログラムに従い前記CPUが処理を実行する際には、前記第一データ領域にて配置されている前記データが読み出されることが可能に構成され、前記第二データ領域にて配置されている前記データは読み出されないように構成されており、
前記第二制御領域にて配置されている前記プログラムに従い前記CPUが処理を実行する際には、前記第二データ領域にて配置されている前記データが読み出されることが可能に構成され、前記第一データ領域にて配置されている前記データは読み出されないよう構成されている
ことを特徴とする遊技機である。
本態様(2)に係る回胴式遊技機によれば、第一制御領域内に存在しCPUからアクセスされるプログラムと、第二制御領域内に存在しCPUからアクセスされるプログラムとが、メモリマップ上において離隔して(アドレスが連続しない配置で)配置されているため、プログラムソースコード上又はダンプリスト上において、双方のプログラムの配置位置を視覚上明確に切り分けることができる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置することで、遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとの配置位置を、プログラムソースコード上又はダンプリスト上において視覚上明確に切り分けることができるため、双方のプログラムの正当性を人為的に検証することが容易となる。また、第一制御領域内に存在しCPUからアクセスされるプログラムの方が、第二制御領域内に存在しCPUからアクセスされるプログラムよりも若いアドレスに配置されているため、CPUが最初に実行するプログラムを第一制御領域内に存在しCPUからアクセスされるプログラム(即ち、遊技性仕様を実装するためのプログラム)に限定することが容易となる。
本態様(2)に係る回胴式遊技機によれば、更に、第一制御領域内に存在しCPUからアクセスされるプログラムは、第一制御領域内に存在し読みだされるデータに対してしかアクセスできず、第二制御領域内に存在しCPUからアクセスされるプログラムは、第二制御領域内に存在し読みだされるデータに対してしかアクセスできないため、第一制御領域内に存在しCPUからアクセスされるプログラムと第一制御領域内に存在し読みだされるデータとを第一のブロックとし、第二制御領域内に存在しCPUからアクセスされるプログラムと第二制御領域内に存在し読みだされるデータとを第二のブロックとすると、第一のブロックと第二のブロックとが機能上性質の異なる制御ブロックであることを担保容易となり、双方の制御ブロックの正当性を人為的に検証することが容易となる。
本態様(3)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、前記プログラムに従い読みだされるデータとが記憶され、
前記ROM内における前記アドレス値が昇順にて連続しているメモリマップ上(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例)において、
第一の始点アドレス値から第一の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
前記第一の終点アドレス値よりも大きい第二の始点アドレス値から第二の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
前記第二の終点アドレス値よりも大きい第三の始点アドレス値から第三の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
前記第三の終点アドレス値よりも大きい第四の始点アドレス値から第四の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
に少なくとも分かれるよう構成され、
前記第二制御領域にて配置されている前記プログラムは、前記第一制御領域にて配置されている前記プログラムにおける呼び出し命令があった場合に前記CPUによる処理が実行可能となるよう構成されている、
ことを特徴とする遊技機である。
本態様(3)に係る回胴式遊技機によれば、第一制御領域内に存在しCPUからアクセスされるプログラムと、第二制御領域内に存在しCPUからアクセスされるプログラムとが、メモリマップ上において離隔して(アドレスが連続しない配置で)配置されているため、プログラムソースコード上又はダンプリスト上において、双方のプログラムの配置位置を視覚上明確に切り分けることができる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置することで、遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとの配置位置を、プログラムソースコード上又はダンプリスト上において視覚上明確に切り分けることができるため、双方のプログラムの正当性を人為的に検証することが容易となる。また、第一制御領域内に存在しCPUからアクセスされるプログラムの方が、第二制御領域内に存在しCPUからアクセスされるプログラムよりも若いアドレスに配置されているため、CPUが最初に実行するプログラムを第一制御領域内に存在しCPUからアクセスされるプログラム(即ち、遊技性仕様を実装するためのプログラム)に限定することが容易となる。
本態様(3)に係る回胴式遊技機によれば、更に、第二制御領域内に存在しCPUからアクセスされるプログラムは、第一制御領域内に存在しCPUからアクセスされるプログラムにおける呼び出し命令があった場合においてのみCPUによる処理が実行可能となる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置した場合、不正行為防止用のプログラムの実行タイミングを、この呼び出し命令があった場合にのみ限定できるため、プログラムソースコード上又はダンプリスト上において、不正行為防止用のプログラムの実行タイミングが視覚上明確となり、特に、不正行為防止用のプログラムの正当性を人為的に検証することが容易となる。ここで、不正行為防止用のプログラムは、遊技機メーカー毎に仕様が相違し易いため、正当性を人為的に検証する必要性が高いものとなるが、このように構成しておくことで、不正行為防止用のプログラムについて検証するための労力を低減できる。
本態様(4)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、前記プログラムに従い読みだされるデータとが記憶され、
前記ROM内における前記アドレス値が昇順にて連続しているメモリマップ上(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例)において、
第一の始点アドレス値から第一の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
前記第一の終点アドレス値よりも大きい第二の始点アドレス値から第二の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
前記第二の終点アドレス値よりも大きい第三の始点アドレス値から第三の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
前記第三の終点アドレス値よりも大きい第四の始点アドレス値から第四の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
に少なくとも分かれるよう構成され、
前記第一制御領域にて配置されている前記プログラムにおける呼び出し命令があった場合であって、前記第二制御領域にて配置されている前記プログラムに従い前記CPUが処理を実行する際においては、当該呼び出し命令があった時点で記憶されている情報(例えば、CPUC100内のレジスタで保持されている情報)を参照可能に構成されている
ことを特徴とする遊技機である。
本態様(4)に係る回胴式遊技機によれば、第一制御領域内に存在しCPUからアクセスされるプログラムと、第二制御領域内に存在しCPUからアクセスされるプログラムとが、メモリマップ上において離隔して(アドレスが連続しない配置で)配置されているため、プログラムソースコード上又はダンプリスト上において、双方のプログラムの配置位置を視覚上明確に切り分けることができる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置することで、遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとの配置位置を、プログラムソースコード上又はダンプリスト上において視覚上明確に切り分けることができるため、双方のプログラムの正当性を人為的に検証することが容易となる。また、第一制御領域内に存在しCPUからアクセスされるプログラムの方が、第二制御領域内に存在しCPUからアクセスされるプログラムよりも若いアドレスに配置されているため、CPUが最初に実行するプログラムを第一制御領域内に存在しCPUからアクセスされるプログラム(即ち、遊技性仕様を実装するためのプログラム)に限定することが容易となる。
本態様(4)に係る回胴式遊技機によれば、更に、第二制御領域内に存在しCPUからアクセスされるプログラムは、第一制御領域内に存在しCPUからアクセスされるプログラムにおける呼び出し命令があった場合においてCPUによる処理が実行可能となる。その際には、当該呼び出し命令があった時点で記憶されている情報として、例えば、CPU内のレジスタで保持されている情報(即ち、当該呼び出し命令がある直前に第一制御領域内に存在しCPUからアクセスされるプログラムで処理していた処理結果)を、第二制御領域内に存在しCPUからアクセスされるプログラムへと引き渡すことが可能となる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置した場合、遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとの主従関係を構築でき、主となる遊技性仕様を実装するためのプログラムの処理結果を引き継いで、従となる不正行為防止用のプログラムを実行可能となる。ここで、主となる遊技性仕様を実装するためのプログラムの処理結果は、秘匿性の高い情報となり得るため、不正行為報知用の情報を外部出力し得る従となる不正行為防止用のプログラムへ無暗に引き渡してしまうと、セキュリティ性の低下に繋がってしまう恐れがあるが、不正行為防止用のプログラムの実行タイミングを、この呼び出し命令があった場合に限定できるため、プログラムソースコード上又はダンプリスト上において、不正行為防止用のプログラムの実行タイミングが視覚上明確となる結果、処理結果の引き渡しタイミングについても、プログラムソースコード上又はダンプリスト上において明確化されることにより、特に、(処理結果の引き渡しタイミングを含め)不正行為防止用のプログラムの正当性を人為的に検証することが容易となる。ここで、不正行為防止用のプログラムは、遊技機メーカー毎に仕様が相違し易いため、正当性を人為的に検証する必要性が高いものとなるが、このように構成しておくことで、不正行為防止用のプログラムについて検証するための労力を低減できる。
本態様(5)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、前記プログラムに従い読みだされるデータとが記憶され、
前記ROM内における前記アドレス値が昇順にて連続しているメモリマップ上(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例)において、
第一の始点アドレス値から第一の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
前記第一の終点アドレス値よりも大きい第二の始点アドレス値から第二の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
前記第二の終点アドレス値よりも大きい第三の始点アドレス値から第三の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
前記第三の終点アドレス値よりも大きい第四の始点アドレス値から第四の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
に少なくとも分かれるよう構成され、
前記第一制御領域にて配置されている前記プログラムにおける呼び出し命令があった場合であって、前記第二制御領域にて配置されている前記プログラムに従い前記CPUが処理を実行する際においては、当該呼び出し命令があった時点で記憶されている情報(例えば、CPUC100内のレジスタで保持されている情報)を当該呼び出し命令に基づく前記第二制御領域にて配置されている前記プログラムに従う前記CPUの処理で更新可能に構成されている
ことを特徴とする遊技機である。
本態様(5)に係る回胴式遊技機によれば、第一制御領域内に存在しCPUからアクセスされるプログラムと、第二制御領域内に存在しCPUからアクセスされるプログラムとが、メモリマップ上において離隔して(アドレスが連続しない配置で)配置されているため、プログラムソースコード上又はダンプリスト上において、双方のプログラムの配置位置を視覚上明確に切り分けることができる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置することで、遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとの配置位置を、プログラムソースコード上又はダンプリスト上において視覚上明確に切り分けることができるため、双方のプログラムの正当性を人為的に検証することが容易となる。また、第一制御領域内に存在しCPUからアクセスされるプログラムの方が、第二制御領域内に存在しCPUからアクセスされるプログラムよりも若いアドレスに配置されているため、CPUが最初に実行するプログラムを第一制御領域内に存在しCPUからアクセスされるプログラム(即ち、遊技性仕様を実装するためのプログラム)に限定することが容易となる。
本態様(5)に係る回胴式遊技機によれば、更に、第二制御領域内に存在しCPUからアクセスされるプログラムは、第一制御領域内に存在しCPUからアクセスされるプログラムにおける呼び出し命令があった場合においてCPUによる処理が実行可能となる。その際には、当該呼び出し命令があった時点で記憶されている情報として、例えば、CPU内のレジスタで保持されている情報(即ち、当該呼び出し命令がある直前に第一制御領域内に存在しCPUからアクセスされるプログラムで処理していた処理結果)を、第二制御領域内に存在しCPUからアクセスされるプログラムで処理した処理結果で更新することが可能となる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置した場合、遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとの主従関係を構築でき、従となる不正行為防止用のプログラムの処理結果を引き継いで、主となる遊技性仕様を実装するためのプログラムを実行可能となる。ここで、主となる遊技性仕様を実装するためのプログラムの処理結果は、秘匿性の高い情報となり得るため、不正行為報知用の情報を外部出力し得る従となる不正行為防止用のプログラムから無暗に更新してしまうと、セキュリティ性の低下に繋がってしまう恐れがあるが、不正行為防止用のプログラムの実行タイミングを、この呼び出し命令があった場合に限定できるため、プログラムソースコード上又はダンプリスト上において、不正行為防止用のプログラムの実行タイミングが視覚上明確となる結果、処理結果の更新タイミングについても、プログラムソースコード上又はダンプリスト上において明確化されることにより、特に、(処理結果の更新タイミングを含め)不正行為防止用のプログラムの正当性を人為的に検証することが容易となる。ここで、不正行為防止用のプログラムは、遊技機メーカー毎に仕様が相違し易いため、正当性を人為的に検証する必要性が高いものとなるが、このように構成しておくことで、不正行為防止用のプログラムについて検証するための労力を低減できる。
本態様(6)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、前記プログラムに従い読みだされるデータとが記憶され、
前記ROM内における前記アドレス値が昇順にて連続しているメモリマップ上(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例)において、
第一の始点アドレス値から第一の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
前記第一の終点アドレス値よりも大きい第二の始点アドレス値から第二の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
前記第二の終点アドレス値よりも大きい第三の始点アドレス値から第三の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
前記第三の終点アドレス値よりも大きい第四の始点アドレス値から第四の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
に少なくとも分かれるよう構成され、
前記第一制御領域にて配置されている前記プログラムにおける呼び出し命令があった場合であって、前記第二制御領域にて配置されている前記プログラムに従い前記CPUが処理を実行する際においては、当該呼び出し命令に基づく前記第二制御領域にて配置されている前記プログラムに従う前記CPUの処理結果を、当該呼び出し命令から復帰した後で前記第一制御領域にて配置されている前記プログラムに従い前記CPUが処理を実行する際において参照可能に構成されている
ことを特徴とする遊技機である。
本態様(6)に係る回胴式遊技機によれば、第一制御領域内に存在しCPUからアクセスされるプログラムと、第二制御領域内に存在しCPUからアクセスされるプログラムとが、メモリマップ上において離隔して(アドレスが連続しない配置で)配置されているため、プログラムソースコード上又はダンプリスト上において、双方のプログラムの配置位置を視覚上明確に切り分けることができる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置することで、遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとの配置位置を、プログラムソースコード上又はダンプリスト上において視覚上明確に切り分けることができるため、双方のプログラムの正当性を人為的に検証することが容易となる。また、第一制御領域内に存在しCPUからアクセスされるプログラムの方が、第二制御領域内に存在しCPUからアクセスされるプログラムよりも若いアドレスに配置されているため、CPUが最初に実行するプログラムを第一制御領域内に存在しCPUからアクセスされるプログラム(即ち、遊技性仕様を実装するためのプログラム)に限定することが容易となる。
本態様(6)に係る回胴式遊技機によれば、更に、第二制御領域内に存在しCPUからアクセスされるプログラムは、第一制御領域内に存在しCPUからアクセスされるプログラムにおける呼び出し命令があった場合においてCPUによる処理が実行可能となる。その際には、当該呼び出し命令から復帰した時点で記憶されている情報として、例えば、CPU内のレジスタで保持されている情報(即ち、当該呼び出し命令から復帰する直前に第二制御領域内に存在しCPUからアクセスされるプログラムで処理していた処理結果)を、第一制御領域内に存在しCPUからアクセスされるプログラムへ引き渡すことが可能となる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置した場合、遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとの主従関係を構築でき、従となる不正行為防止用のプログラムの処理結果を引き継いで、主となる遊技性仕様を実装するためのプログラムを実行可能となる。ここで、主となる遊技性仕様を実装するためのプログラムは、秘匿性の高い情報を処理し得るため、不正行為防止用の情報を外部から取り込み得る従となる不正行為防止用のプログラムの処理結果を無暗に引き渡してしまうと、セキュリティ性の低下に繋がってしまう恐れがあるが、不正行為防止用のプログラムの実行タイミングを、この呼び出し命令があった場合に限定できるため、プログラムソースコード上又はダンプリスト上において、不正行為防止用のプログラムの実行タイミングが視覚上明確となる結果、処理結果の引き渡しタイミングについても、プログラムソースコード上又はダンプリスト上において明確化されることにより、特に、(処理結果の引き渡しタイミングを含め)不正行為防止用のプログラムの正当性を人為的に検証することが容易となる。ここで、不正行為防止用のプログラムは、遊技機メーカー毎に仕様が相違し易いため、正当性を人為的に検証する必要性が高いものとなるが、このように構成しておくことで、不正行為防止用のプログラムについて検証するための労力を低減できる。
本態様(7)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、前記プログラムに従い読みだされるデータとが記憶され、
前記ROM内における前記アドレス値が昇順にて連続しているメモリマップ上(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例)において、
第一の始点アドレス値から第一の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
前記第一の終点アドレス値よりも大きい第二の始点アドレス値から第二の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
前記第二の終点アドレス値よりも大きい第三の始点アドレス値から第三の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
前記第三の終点アドレス値よりも大きい第四の始点アドレス値から第四の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
に少なくとも分かれるよう構成され、
前記第一制御領域にて配置されている前記プログラムに従う前記CPUの処理によって、第1エラー(例えば、ステップ1208に示される、メダル払出装置Hが遊技メダルで満杯となった事象)を検出した場合に第1エラーに伴うエラー処理(例えば、ステップ1210に示される、メダル満杯エラー状態の制御処理)を実行可能に構成され、
前記第二制御領域にて配置されている前記プログラムに従う前記CPUの処理によって、第2エラー(例えば、ステップ1044に示される、設定値に係るデータが正常範囲内でない事象)を検出した場合に第2エラーに伴うエラー処理(例えば、ステップ1048及びステップ1300に示される、復帰不可能エラー処理)を実行可能に構成されている
ことを特徴とする遊技機である。
本態様(7)に係る回胴式遊技機によれば、第一制御領域内に存在しCPUからアクセスされるプログラムと、第二制御領域内に存在しCPUからアクセスされるプログラムとが、メモリマップ上において離隔して(アドレスが連続しない配置で)配置されているため、プログラムソースコード上又はダンプリスト上において、双方のプログラムの配置位置を視覚上明確に切り分けることができる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置することで、遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとの配置位置を、プログラムソースコード上又はダンプリスト上において視覚上明確に切り分けることができるため、双方のプログラムの正当性を人為的に検証することが容易となる。また、第一制御領域内に存在しCPUからアクセスされるプログラムの方が、第二制御領域内に存在しCPUからアクセスされるプログラムよりも若いアドレスに配置されているため、CPUが最初に実行するプログラムを第一制御領域内に存在しCPUからアクセスされるプログラム(即ち、遊技性仕様を実装するためのプログラム)に限定することが容易となる。
本態様(7)に係る回胴式遊技機によれば、更に、第一制御領域内に存在しCPUからアクセスされるプログラムによって処理される第1エラーに伴うエラー処理と、第二制御領域内に存在しCPUからアクセスされるプログラムによって処理される第2エラーに伴うエラー処理とを、プログラムソースコード上又はダンプリスト上において、明確に切り分けることができる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置した場合、第1エラーに伴うエラー処理を、遊技進行上において(即ち、不正行為がなされなくとも)発生し得るエラーとし、第2エラーに伴うエラー処理は、不正行為がなされた際において発生し得るエラーとし、両者のエラー処理が果たす役割が異なることを明確化することができる。ここで、不正行為防止用のプログラムは、遊技機メーカー毎に仕様が相違し易いため、正当性を人為的に検証する必要性が高いものとなるが、第2エラーに伴うエラー処理の必要性を、第1エラーに伴うエラー処理と対比して検証することが容易となることにより、不正行為防止用のプログラムについて検証するための労力を低減できる。
本態様(8)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、RAM(例えば、内蔵RAMC120)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、前記プログラムに従い読みだされるデータとが記憶され、
前記ROM内における前記アドレス値が昇順にて連続しているメモリマップ上(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例)において、
第一の始点アドレス値から第一の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
前記第一の終点アドレス値よりも大きい第二の始点アドレス値から第二の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
前記第二の終点アドレス値よりも大きい第三の始点アドレス値から第三の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
前記第三の終点アドレス値よりも大きい第四の始点アドレス値から第四の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
に少なくとも分かれるよう構成され、
前記RAMは、
前記第一制御領域にて配置されている前記プログラムに従う前記CPUによる処理結果データを記憶する第一情報格納領域(例えば、第1RAM領域)と、
前記第二制御領域にて配置されている前記プログラムに従う前記CPUによる処理結果データを記憶する第二情報格納領域(例えば、第2RAM領域)と
を有し、
前記第一情報格納領域に記憶された処理結果データ及び前記第二情報格納領域に記憶された処理結果データの誤り検出を行う際には、前記第一情報格納領域に記憶された処理結果データに関する誤り検出用情報に基づく誤り検出(例えば、チェックサムチェックを行う手法)と前記第二情報格納領域に記憶された処理結果データに関する誤り検出用情報に基づく誤り検出(例えば、チェックサムチェックを行う手法)とを別々に行うよう構成されている
ことを特徴とする遊技機である。
本態様(8)に係る回胴式遊技機によれば、第一制御領域内に存在しCPUからアクセスされるプログラムと、第二制御領域内に存在しCPUからアクセスされるプログラムとが、メモリマップ上において離隔して(アドレスが連続しない配置で)配置されているため、プログラムソースコード上又はダンプリスト上において、双方のプログラムの配置位置を視覚上明確に切り分けることができる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置することで、遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとの配置位置を、プログラムソースコード上又はダンプリスト上において視覚上明確に切り分けることができるため、双方のプログラムの正当性を人為的に検証することが容易となる。また、第一制御領域内に存在しCPUからアクセスされるプログラムの方が、第二制御領域内に存在しCPUからアクセスされるプログラムよりも若いアドレスに配置されているため、CPUが最初に実行するプログラムを第一制御領域内に存在しCPUからアクセスされるプログラム(即ち、遊技性仕様を実装するためのプログラム)に限定することが容易となる。
本態様(8)に係る回胴式遊技機によれば、更に、第一制御領域内に存在しCPUからアクセスされるプログラムによって処理される処理結果と、第二制御領域内に存在しCPUからアクセスされるプログラムによって処理される処理結果とを、別々の情報格納領域へ格納することができ、その際には、当該格納された処理結果の誤り検出を行う際に、夫々の情報格納領域に対して別々に誤り検出を行うことができる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置した場合、遊技性仕様を実装するためのプログラムによって処理される処理結果と不正行為防止用のプログラムによって処理される処理結果とが混在して格納されないことを担保でき、且つ、当該格納された処理結果が仮に破壊された場合、当該双方の処理結果のいずれが破壊されたのかを明確に知ることができる。よって、例えば、不正行為防止用のプログラムによって処理される処理結果の重要性が低い場合には、仮に不正行為防止用のプログラムによって処理される処理結果が破壊されてしまった場合であっても、遊技性仕様を実装するためのプログラムによって処理される処理結果が破壊されずに保持されていれば、処理を続行させるよう構成することも可能となる。
本態様(9)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、RAM(例えば、内蔵RAMC120)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、前記プログラムに従い読みだされるデータとが記憶され、
前記ROM内における前記アドレス値が昇順にて連続しているメモリマップ上(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例)において、
第一の始点アドレス値から第一の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
前記第一の終点アドレス値よりも大きい第二の始点アドレス値から第二の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
前記第二の終点アドレス値よりも大きい第三の始点アドレス値から第三の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
前記第三の終点アドレス値よりも大きい第四の始点アドレス値から第四の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
に少なくとも分かれるよう構成され、
前記RAMは、
前記第一制御領域にて配置されている前記プログラムに従う前記CPUによる処理結果データを記憶する第一情報格納領域(例えば、第1RAM領域)と、
前記第二制御領域にて配置されている前記プログラムに従う前記CPUによる処理結果データを記憶する第二情報格納領域(例えば、第2RAM領域)と
を有し、
前記第一情報格納領域に記憶された処理結果データ及び前記第二情報格納領域に記憶された処理結果データの誤り検出を行う際には、前記第一情報格納領域に記憶された処理結果データと前記第二情報格納領域に記憶された処理結果データとを通算した誤り検出用情報に基づき誤り検出を行う(例えば、チェックサムチェックを行う手法)よう構成されている
ことを特徴とする遊技機である。
本態様(9)に係る回胴式遊技機によれば、第一制御領域内に存在しCPUからアクセスされるプログラムと、第二制御領域内に存在しCPUからアクセスされるプログラムとが、メモリマップ上において離隔して(アドレスが連続しない配置で)配置されているため、プログラムソースコード上又はダンプリスト上において、双方のプログラムの配置位置を視覚上明確に切り分けることができる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置することで、遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとの配置位置を、プログラムソースコード上又はダンプリスト上において視覚上明確に切り分けることができるため、双方のプログラムの正当性を人為的に検証することが容易となる。また、第一制御領域内に存在しCPUからアクセスされるプログラムの方が、第二制御領域内に存在しCPUからアクセスされるプログラムよりも若いアドレスに配置されているため、CPUが最初に実行するプログラムを第一制御領域内に存在しCPUからアクセスされるプログラム(即ち、遊技性仕様を実装するためのプログラム)に限定することが容易となる。
本態様(9)に係る回胴式遊技機によれば、更に、第一制御領域内に存在しCPUからアクセスされるプログラムによって処理される処理結果と、第二制御領域内に存在しCPUからアクセスされるプログラムによって処理される処理結果とを、別々の情報格納領域へ格納することができ、その際には、当該格納された処理結果の誤り検出を行う際に、夫々の情報格納領域を統合したものに対して誤り検出を行うことができる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置した場合、遊技性仕様を実装するためのプログラムによって処理される処理結果と不正行為防止用のプログラムによって処理される処理結果とが混在して格納されないことを担保でき、且つ、当該格納された処理結果が仮に破壊された場合、当該双方の処理結果のいずれかが破壊されたことを簡易的に知ることができる。よって、例えば、不正行為防止用のプログラムによって処理される処理結果の重要性が高い場合には、遊技性仕様を実装するためのプログラムによって処理される処理結果及び不正行為防止用のプログラムによって処理される処理結果のいずれもが破壊されていないことが簡易的に導出できた場合においてのみ、処理を続行させるよう構成することが可能となる。
本態様(10)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、前記プログラムに従い読みだされるデータとが記憶され、
前記ROM内における前記アドレス値が昇順にて連続しているメモリマップ上(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例)において、
第一の始点アドレス値から第一の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
前記第一の終点アドレス値よりも大きい第二の始点アドレス値から第二の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
前記第二の終点アドレス値よりも大きい第三の始点アドレス値から第三の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
前記第三の終点アドレス値よりも大きい第四の始点アドレス値から第四の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
に少なくとも分かれるよう構成され、
前記第一制御領域にて配置されている前記プログラムに従う前記CPUの処理によって、所定のセンサ部(例えば、第1投入センサD20sや第2投入センサD30s)からの入力信号に基づき、所定の事象(例えば、ステップ1227に示される、遊技メダルを1枚受け付けた事象)の発生有無を判定可能に構成され、
前記第二制御領域にて配置されている前記プログラムに従う前記CPUの処理によって、前記所定のセンサ部からの入力信号に基づき、遊技進行に係る異常な事象(例えば、ステップ1400のサブルーチンに示される、投入メダル逆流エラーや投入メダル滞留エラー等)の発生有無を判定可能に構成されている
ことを特徴とする遊技機である。
本態様(10)に係る回胴式遊技機によれば、第一制御領域内に存在しCPUからアクセスされるプログラムと、第二制御領域内に存在しCPUからアクセスされるプログラムとが、メモリマップ上において離隔して(アドレスが連続しない配置で)配置されているため、プログラムソースコード上又はダンプリスト上において、双方のプログラムの配置位置を視覚上明確に切り分けることができる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置することで、遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとの配置位置を、プログラムソースコード上又はダンプリスト上において視覚上明確に切り分けることができるため、双方のプログラムの正当性を人為的に検証することが容易となる。また、第一制御領域内に存在しCPUからアクセスされるプログラムの方が、第二制御領域内に存在しCPUからアクセスされるプログラムよりも若いアドレスに配置されているため、CPUが最初に実行するプログラムを第一制御領域内に存在しCPUからアクセスされるプログラム(即ち、遊技性仕様を実装するためのプログラム)に限定することが容易となる。
本態様(10)に係る回胴式遊技機によれば、更に、第一制御領域内に存在しCPUからアクセスされるプログラムによってセンサ信号に基づく遊技進行に係る正常な事象の発生有無を判定し、第二制御領域内に存在しCPUからアクセスされるプログラムによってセンサ信号に基づく遊技進行に係る異常な事象の発生有無を判定することができ、いずれの場合においても、同一のセンサ信号に基づく判定とすることができる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置した場合、遊技性仕様を実装するためのプログラムにおいては、当該同一のセンサ信号を遊技進行上必要な入力信号として取り扱い、不正行為防止用のプログラムにおいては、当該同一のセンサ信号を不正行為防止上必要な入力信号として取り扱うことができるため、プログラムソースコード上又はダンプリスト上において、当該同一のセンサ信号の取り扱い方が異なることを明確化することができる。ここで、不正行為防止用のプログラムは、遊技機メーカー毎に仕様が相違し易いため、正当性を人為的に検証する必要性が高いものとなるが、当該同一のセンサ信号の取り扱い方に関する相違点を対比して検証することが容易となることにより、不正行為防止用のプログラムについて検証するための労力を低減できる。
本態様(11)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、前記プログラムに従い読みだされるデータとが記憶され、
前記ROM内における前記アドレス値が昇順にて連続しているメモリマップ上(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例)において、
第一の始点アドレス値から第一の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
前記第一の終点アドレス値よりも大きい第二の始点アドレス値から第二の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
前記第二の終点アドレス値よりも大きい第三の始点アドレス値から第三の終点アドレス値まで連続する前記アドレス値に対して前記プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
前記第三の終点アドレス値よりも大きい第四の始点アドレス値から第四の終点アドレス値まで連続する前記アドレス値に対して前記データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
に少なくとも分かれるよう構成され、
前記第一制御領域にて配置されている前記プログラムに従う前記CPUの処理によって、遊技媒体の払出しを指示する制御信号(例えば、ホッパモータ駆動信号)と所定のセンサ部(例えば、第1払出センサH10sや第2払出センサH20s)の非検出時間とに基づき、遊技進行に係る異常な事象である第一異常事象(例えば、ステップ1279に示される、ホッパ駆動後において遊技メダル1枚の払出動作が行われていない事象)の発生有無を判定可能に構成され、
前記第二制御領域にて配置されている前記プログラムに従う前記CPUの処理によって、前記所定のセンサ部の検出時間に基づき、遊技進行に係る異常な事象である第二異常事象(例えば、ステップ1450のサブルーチンに示される、払出メダル滞留エラー)の発生有無を判定可能に構成されている
ことを特徴とする遊技機である。
本態様(11)に係る回胴式遊技機によれば、第一制御領域内に存在しCPUからアクセスされるプログラムと、第二制御領域内に存在しCPUからアクセスされるプログラムとが、メモリマップ上において離隔して(アドレスが連続しない配置で)配置されているため、プログラムソースコード上又はダンプリスト上において、双方のプログラムの配置位置を視覚上明確に切り分けることができる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置することで、遊技性仕様を実装するためのプログラムと不正行為防止用のプログラムとの配置位置を、プログラムソースコード上又はダンプリスト上において視覚上明確に切り分けることができるため、双方のプログラムの正当性を人為的に検証することが容易となる。また、第一制御領域内に存在しCPUからアクセスされるプログラムの方が、第二制御領域内に存在しCPUからアクセスされるプログラムよりも若いアドレスに配置されているため、CPUが最初に実行するプログラムを第一制御領域内に存在しCPUからアクセスされるプログラム(即ち、遊技性仕様を実装するためのプログラム)に限定することが容易となる。
本態様(11)に係る回胴式遊技機によれば、更に、第一制御領域内に存在しCPUからアクセスされるプログラムによってセンサ信号に基づく遊技進行に係る「軽度となる」異常な事象の発生有無を判定し、第二制御領域内に存在しCPUからアクセスされるプログラムによってセンサ信号に基づく遊技進行に係る「重度となる」異常な事象の発生有無を判定することができ、いずれの場合においても、同一のセンサ信号に基づく判定とすることができる。その結果、例えば、第一制御領域内に存在しCPUからアクセスされるプログラム=遊技性仕様を実装するためのプログラム、第二制御領域内に存在しCPUからアクセスされるプログラム=不正行為防止用のプログラムとして配置した場合、遊技性仕様を実装するためのプログラムにおいては、当該同一のセンサ信号を通常の遊技進行上において発生し得るエラー検出に必要な入力信号として取り扱い、不正行為防止用のプログラムにおいては、当該同一のセンサ信号を不正行為防止上必要な(即ち、通常の遊技進行上においては発生し難いエラー検出に必要な)入力信号として取り扱うことができるため、プログラムソースコード上又はダンプリスト上において、当該同一のセンサ信号の取り扱い方が異なることを明確化することができる。ここで、不正行為防止用のプログラムは、遊技機メーカー毎に仕様が相違し易いため、正当性を人為的に検証する必要性が高いものとなるが、当該同一のセンサ信号の取り扱い方に関する相違点を対比して検証することが容易となることにより、不正行為防止用のプログラムについて検証するための労力を低減できる。
本態様(12)に係る回胴式遊技機は、
複数種類の図柄を表示したリール(例えば、左リールM51、中リールM52、右リールM53)を複数有する複数のリール(例えば、リールM50)と、
前記複数のリール(例えば、リールM50)を回転させるときに遊技者が操作するスタートスイッチ(例えば、スタートレバーD50)と、
前記リール(例えば、左リールM51、中リールM52、右リールM53)と対応して設けられ前記リール(例えば、左リールM51、中リールM52、右リールM53)を停止させるときに遊技者が操作する複数のストップスイッチ(例えば、停止ボタンD40)と、
遊技の進行を制御する主遊技制御部(例えば、主制御基板M)と
を備えた遊技機であって、
主遊技制御部(例えば、主制御基板M)は、
前記スタートスイッチ(例えば、スタートレバーD50)が操作されたことに基づき役抽選を行う役抽選手段(例えば、CPUC100が実行するステップ1257の処理)と、
所定の最小遊技時間が経過するまでは、前記スタートスイッチ(例えば、スタートレバーD50)が操作されても前記複数のリール(例えば、リールM50)の回転開始を待機させる遊技進行規制手段(例えば、CPUC100が実行するステップ3204の処理)と
を備え、
前記役抽選により決定された当選役に関する情報となる条件装置情報を、所定のRAM領域にて記憶するよう構成されており、
条件装置情報として、所定種類の当選役に関する第一の条件装置情報と、当該所定種類の当選役とは異なる特定種類の当選役に関する第二の条件装置情報とを有し、前記所定のRAM領域における第一の記憶領域にて第一の条件装置情報を記憶し、前記所定のRAM領域における第二の記憶領域にて第二の条件装置情報を記憶するよう構成されており、
第一の条件装置情報を第一の記憶領域にて記憶する際には、第一の記憶領域における第一のビット位置に1をセットして記憶する一方、
第二の条件装置情報を第二の記憶領域にて記憶する際には、第二の記憶領域における第二のビット位置に1をセットして記憶するよう構成されており、
所定の遊技終了後において前記スタートスイッチ(例えば、スタートレバーD50)が操作され前記役抽選が行われた場合、前記所定の最小遊技時間が経過した後に条件装置情報出力タイマ(例えば、出力時間タイマM80)に所定値をセットし、
前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が0でなく且つ前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が所定範囲内である場合には、条件装置情報として第一の記憶領域にて記憶されている第一の条件装置情報を遊技機外へ出力し、
前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が0でなく且つ前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が前記所定範囲とは異なる特定範囲内である場合には、条件装置情報として第二の記憶領域にて記憶されている第二の条件装置情報を遊技機外へ出力し、
前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が0である場合には、当該値に基づく情報を遊技機外へ出力するよう構成されている
ことを特徴とする遊技機である。
本態様(13)に係る回胴式遊技機は、
複数種類の図柄を表示したリール(例えば、左リールM51、中リールM52、右リールM53)を複数有する複数のリール(例えば、リールM50)と、
前記複数のリール(例えば、リールM50)を回転させるときに遊技者が操作するスタートスイッチ(例えば、スタートレバーD50)と、
前記リール(例えば、左リールM51、中リールM52、右リールM53)と対応して設けられ前記リール(例えば、左リールM51、中リールM52、右リールM53)を停止させるときに遊技者が操作する複数のストップスイッチ(例えば、停止ボタンD40)と、
遊技の進行を制御する主遊技制御部(例えば、主制御基板M)と
を備えた遊技機であって、
主遊技制御部(例えば、主制御基板M)は、
前記スタートスイッチ(例えば、スタートレバーD50)が操作されたことに基づき役抽選を行う役抽選手段(例えば、CPUC100が実行するステップ1257の処理)と、
所定の最小遊技時間が経過するまでは、前記スタートスイッチ(例えば、スタートレバーD50)が操作されても前記複数のリール(例えば、リールM50)の回転開始を待機させる遊技進行規制手段(例えば、CPUC100が実行するステップ3204の処理)と
を備え、
前記役抽選により決定された当選役に関する情報となる条件装置情報を、所定のRAM領域にて記憶するよう構成されており、
条件装置情報として、所定種類の当選役に関する第一の条件装置情報と、当該所定種類の当選役とは異なる特定種類の当選役に関する第二の条件装置情報とを有し、前記所定のRAM領域における第一の記憶領域にて第一の条件装置情報を記憶し、前記所定のRAM領域における第二の記憶領域にて第二の条件装置情報を記憶するよう構成されており、
所定の遊技終了後において前記スタートスイッチ(例えば、スタートレバーD50)が操作され前記役抽選が行われた場合、前記所定の最小遊技時間が経過した後に条件装置情報出力タイマ(例えば、出力時間タイマM80)に所定値をセットし、
前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が0でなく且つ前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が所定範囲内である場合には、条件装置情報として第一の記憶領域にて記憶されている第一の条件装置情報を読み出し、当該読み出した第一の条件装置情報における第一のビット位置にて1をセットして遊技機外へ出力し、
前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が0でなく且つ前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が前記所定範囲とは異なる特定範囲内である場合には、条件装置情報として第二の記憶領域にて記憶されている第二の条件装置情報を読み出し、当該読み出した第二の条件装置情報における第二のビット位置にて1をセットして遊技機外へ出力し、
前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が0である場合には、当該値に基づく情報を遊技機外へ出力するよう構成されている
ことを特徴とする遊技機である。
本態様(14)に係る回胴式遊技機は、
複数種類の図柄を表示したリール(例えば、左リールM51、中リールM52、右リールM53)を複数有する複数のリール(例えば、リールM50)と、
前記複数のリール(例えば、リールM50)を回転させるときに遊技者が操作するスタートスイッチ(例えば、スタートレバーD50)と、
前記リール(例えば、左リールM51、中リールM52、右リールM53)と対応して設けられ前記リール(例えば、左リールM51、中リールM52、右リールM53)を停止させるときに遊技者が操作する複数のストップスイッチ(例えば、停止ボタンD40)と、
遊技の進行を制御する主遊技制御部(例えば、主制御基板M)と、
前記遊技の進行に応じた情報出力を制御する副遊技制御部(例えば、副制御基板S)と
を備えた遊技機であって、
主遊技制御部(例えば、主制御基板M)は、
前記スタートスイッチ(例えば、スタートレバーD50)が操作されたことに基づき役抽選を行う役抽選手段(例えば、CPUC100が実行するステップ1257の処理)と、
所定の最小遊技時間が経過するまでは、前記スタートスイッチ(例えば、スタートレバーD50)が操作されても前記複数のリール(例えば、リールM50)の回転開始を待機させる遊技進行規制手段(例えば、CPUC100が実行するステップ3204の処理)と、
副遊技制御部(例えば、副制御基板S)側での情報出力に際して必要な遊技情報を送信する遊技情報送信手段(例えば、CPUC100が実行するステップ3165の処理)と
を備え、
前記役抽選により決定された当選役に関する情報となる条件装置情報を、所定のRAM領域にて記憶するよう構成されており、
条件装置情報として、所定種類の当選役に関する第一の条件装置情報と、当該所定種類の当選役とは異なる特定種類の当選役に関する第二の条件装置情報とを有し、前記所定のRAM領域における第一の記憶領域にて第一の条件装置情報を記憶し、前記所定のRAM領域における第二の記憶領域にて第二の条件装置情報を記憶するよう構成されており、
第一の条件装置情報を第一の記憶領域にて記憶する際には、第一の記憶領域における第一のビット位置に1をセットして記憶する一方、
第二の条件装置情報を第二の記憶領域にて記憶する際には、第二の記憶領域における第二のビット位置に1をセットして記憶するよう構成されており、
所定の遊技終了後において前記スタートスイッチ(例えば、スタートレバーD50)が操作され前記役抽選が行われた場合、前記所定の最小遊技時間が経過した後に条件装置情報出力タイマ(例えば、出力時間タイマM80)に所定値をセットし、
前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が0でなく且つ前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が所定範囲内である場合には、条件装置情報として第一の記憶領域にて記憶されている第一の条件装置情報を遊技機外へ出力し、
前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が0でなく且つ前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が前記所定範囲とは異なる特定範囲内である場合には、条件装置情報として第二の記憶領域にて記憶されている第二の条件装置情報を遊技機外へ出力し、
前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が0である場合には、当該値に基づく情報を遊技機外へ出力するよう構成されており、
前記所定のRAM領域にて一時記憶されている条件装置情報を遊技機外へ出力する以前のタイミングにて、前記所定のRAM領域とは異なる特定のRAM領域にて一時記憶されている、条件装置情報に基づいた前記遊技情報を副遊技制御部(例えば、副制御基板S)側へ送信するよう構成されている
ことを特徴とする遊技機である。
また、本態様に係る遊技機は、以下のように構成してもよく、
本態様(14)に係る遊技機は、
複数種類の図柄を表示したリール(例えば、左リールM51、中リールM52、右リールM53)を複数有する複数のリール(例えば、リールM50)と、
前記複数のリール(例えば、リールM50)を回転させるときに遊技者が操作するスタートスイッチ(例えば、スタートレバーD50)と、
前記リール(例えば、左リールM51、中リールM52、右リールM53)と対応して設けられ前記リール(例えば、左リールM51、中リールM52、右リールM53)を停止させるときに遊技者が操作する複数のストップスイッチ(例えば、停止ボタンD40)と、
遊技の進行を制御する主遊技制御部(例えば、主制御基板M)と、
前記遊技の進行に応じた情報出力を制御する副遊技制御部(例えば、副制御基板S)と
を備えた遊技機であって、
主遊技制御部(例えば、主制御基板M)は、
前記スタートスイッチ(例えば、スタートレバーD50)が操作されたことに基づき役抽選を行う役抽選手段(例えば、CPUC100が実行するステップ1257の処理)と、
所定の最小遊技時間が経過するまでは、前記スタートスイッチ(例えば、スタートレバーD50)が操作されても前記複数のリール(例えば、リールM50)の回転開始を待機させる遊技進行規制手段(例えば、CPUC100が実行するステップ3204の処理)と、
副遊技制御部(例えば、副制御基板S)側での情報出力に際して必要な遊技情報を送信する遊技情報送信手段(例えば、CPUC100が実行するステップ3165の処理)と
を備え、
前記役抽選により決定された当選役に関する情報となる条件装置情報を、所定のRAM領域にて記憶するよう構成されており、
条件装置情報として、所定種類の当選役に関する第一の条件装置情報と、当該所定種類の当選役とは異なる特定種類の当選役に関する第二の条件装置情報とを有し、前記所定のRAM領域における第一の記憶領域にて第一の条件装置情報を記憶し、前記所定のRAM領域における第二の記憶領域にて第二の条件装置情報を記憶するよう構成されており、
所定の遊技終了後において前記スタートスイッチ(例えば、スタートレバーD50)が操作され前記役抽選が行われた場合、前記所定の最小遊技時間が経過した後に条件装置情報出力タイマ(例えば、出力時間タイマM80)に所定値をセットし、
前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が0でなく且つ前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が所定範囲内である場合には、条件装置情報として第一の記憶領域にて記憶されている第一の条件装置情報を読み出し、第一の条件装置情報における第一のビット位置に1をセットした情報を遊技機外へ出力し、
前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が0でなく且つ前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が前記所定範囲とは異なる特定範囲内である場合には、条件装置情報として第二の記憶領域にて記憶されている第二の条件装置情報を読み出し、第二の条件装置情報における第二のビット位置に1をセットした情報を遊技機外へ出力し、
前記条件装置情報出力タイマ(例えば、出力時間タイマM80)の値が0である場合には、当該値に基づく情報を遊技機外へ出力するよう構成されており、
前記第一の条件装置情報における前記第一のビット位置に1をセットした情報を遊技機外へ出力する前の所定のタイミングにて、第一の条件装置情報に基づいた前記遊技情報を副遊技制御部(例えば、副制御基板S)側へ送信するよう構成されており、
前記第二の条件装置情報における前記第二のビット位置に1をセットした情報を遊技機外へ出力する前の所定のタイミングにて、第二の条件装置情報に基づいた前記遊技情報を副遊技制御部(例えば、副制御基板S)側へ送信するよう構成されている
ことを特徴とする遊技機であってもよい。
本態様(15)に係る回胴式遊技機は、
複数種類の図柄を表示したリール(例えば、左リールM51、中リールM52、右リールM53)を複数有する複数のリール(例えば、リールM50)と、
前記複数のリール(例えば、リールM50)を回転させるときに遊技者が操作するスタートスイッチ(例えば、スタートレバーD50)と、
前記リール(例えば、左リールM51、中リールM52、右リールM53)と対応して設けられ前記リール(例えば、左リールM51、中リールM52、右リールM53)を停止させるときに遊技者が操作する複数のストップスイッチ(例えば、停止ボタンD40)と、
遊技の進行を制御する主遊技制御部(例えば、主制御基板M)と
を備えた遊技機であって、
主遊技制御部(例えば、主制御基板M)は、
前記スタートスイッチ(例えば、スタートレバーD50)が操作されたことに基づき役抽選を行う役抽選手段(例えば、CPUC100が実行するステップ1257の処理)
を備え、
前記役抽選により決定された当選役に関する情報を、所定のRAM領域に記憶するよう構成されており、
前記役抽選により決定された当選役が所定当選役であるときにおいて、第1の操作態様で前記ストップスイッチ(例えば、停止ボタンD40)が操作されたときには第一の図柄組合せが停止表示可能となり、第2の操作態様で前記ストップスイッチ(例えば、停止ボタンD40)が操作されたときには第一の図柄組合せとは異なる第二の図柄組合せが停止表示可能となり、
第一の図柄組合せが停止表示された場合と、第二の図柄組合せが停止表示された場合とでは、遊技者に付される利益が異なるように構成されており、
前記役抽選により決定された当選役が前記所定当選役である場合、前記ストップスイッチ(例えば、停止ボタンD40)の操作態様に関する情報である操作態様データを遊技機外へ出力可能であり、
操作態様データを遊技機外へ出力する場合、所定条件を充足している場合には、第一の操作態様データを出力し、当該所定条件を充足していない場合には、第一の操作態様データとは異なる第二の操作態様データを出力するよう構成されており、
操作態様データは、前記ストップスイッチ(例えば、停止ボタンD40)の種別に関するデータ及び前記リール(例えば、左リールM51、中リールM52、右リールM53)を停止させる際の停止タイミングに関するデータで構成されている
ことを特徴とする遊技機である。
本態様(16)に係る回胴式遊技機は、
複数種類の図柄を表示したリール(例えば、左リールM51、中リールM52、右リールM53)を複数有する複数のリール(例えば、リールM50)と、
前記複数のリール(例えば、リールM50)を回転させるときに遊技者が操作するスタートスイッチ(例えば、スタートレバーD50)と、
前記リール(例えば、左リールM51、中リールM52、右リールM53)と対応して設けられ前記リール(例えば、左リールM51、中リールM52、右リールM53)を停止させるときに遊技者が操作する複数のストップスイッチ(例えば、停止ボタンD40)と、
遊技の進行を制御する主遊技制御部(例えば、主制御基板M)と
を備えた遊技機であって、
主遊技制御部(例えば、主制御基板M)は、
前記スタートスイッチ(例えば、スタートレバーD50)が操作されたことに基づき役抽選を行う役抽選手段(例えば、CPUC100が実行するステップ1257の処理)
を備え、
前記役抽選により決定された当選役に関する情報を、所定のRAM領域にて記憶するよう構成されており、
前記役抽選により決定された当選役が所定当選役であるときにおいて、第1の操作順番で前記ストップスイッチ(例えば、停止ボタンD40)が操作されたときには第一の図柄組合せが停止表示可能となり、第2の操作順番で前記ストップスイッチ(例えば、停止ボタンD40)が操作されたときには第二の図柄組合せが停止表示可能となり、
第一の図柄組合せが停止表示された場合と、第二の図柄組合せが停止表示された場合とでは、遊技者に付される利益が異なるよう構成されており、
前記役抽選により決定された当選役が前記所定当選役である場合、前記ストップスイッチ(例えば、停止ボタンD40)の操作態様に関する情報である操作態様データを遊技機外へ出力可能であり、
操作態様データを遊技機外へ出力する場合、所定条件を充足している場合には、第一の操作態様データを出力し、当該所定条件を充足していない場合には、第一の操作態様データとは異なる第二の操作態様データを出力するよう構成されており、
操作態様データは、所定ビット数を単位データとする複数の単位データの集合体として形成され、当該複数の単位データにおける各単位データは、前記ストップスイッチの操作順番に関するデータが含まれる第1データ、又は、前記リールを停止させる際の停止タイミングに関するデータが含まれる第2データの何れかとなるよう構成されている
ことを特徴とする遊技機である。
本態様(17)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、RAM(例えば、内蔵RAMC120)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、プログラムに従い読みだされるデータとが記憶され、
前記ROMは(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例において)、
プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
を有し、
前記RAMは、
前記第一制御領域にて配置されているプログラムによる処理結果データを記憶する第一情報格納領域(例えば、第1RAM領域)と、
前記第二制御領域にて配置されているプログラムによる処理結果データを記憶する第二情報格納領域(例えば、第2RAM領域)と、
レジスタに記憶されているデータを退避可能なスタック領域(例えば、スタックエリア)と
を有し、
電源断からの復帰後において前記第一制御領域にて配置されている所定のプログラム処理によって、前記第一情報格納領域に記憶された処理結果データ、前記第二情報格納領域に記憶された処理結果データ、及び前記スタック領域に退避されたデータの誤り検出が行われるよう構成されている
ことを特徴とする遊技機である。
本態様(18)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、RAM(例えば、内蔵RAMC120)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、プログラムに従い読みだされるデータとが記憶され、
前記ROMは(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例において)、
プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
を有し、
前記RAMは、
前記第一制御領域にて配置されているプログラムによる処理結果データを記憶する第一情報格納領域(例えば、第1RAM領域)と、
前記第二制御領域にて配置されているプログラムによる処理結果データを記憶する第二情報格納領域(例えば、第2RAM領域)と、
レジスタに記憶されているデータを退避可能なスタック領域(例えば、スタックエリア)と
を有し、
前記第一情報格納領域には記憶され得る一方で前記第二情報格納領域には記憶されない処理結果データのうちの特定データ(例えば、設定値)は、前記第二制御領域にて配置されている所定のプログラムにより正常であるか否かが判定されるよう構成されている
ことを特徴とする遊技機である。
本態様(19)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、RAM(例えば、内蔵RAMC120)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、プログラムに従い読みだされるデータとが記憶され、
前記ROMは(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例において)、
プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
を有し、
前記RAMは、
前記第一制御領域にて配置されているプログラムによる処理結果データを記憶する第一情報格納領域(例えば、第1RAM領域)と、
前記第二制御領域にて配置されているプログラムによる処理結果データを記憶する第二情報格納領域(例えば、第2RAM領域)と、
レジスタに記憶されているデータを退避可能なスタック領域(例えば、スタックエリア)と
を有し、
前記第一情報格納領域に記憶された処理結果データは、前記第一制御領域にて配置されているプログラムによる処理によって、更新可能とし、
前記第二情報格納領域に記憶された処理結果データは、前記第一制御領域にて配置されているプログラムにより更新されないよう構成されており、
前記第二情報格納領域に記憶された処理結果データは、前記第二制御領域にて配置されているプログラムによる処理によって、更新可能とし、
前記第一情報格納領域に記憶された処理結果データは、前記第二制御領域にて配置されているプログラムにより更新されないよう構成されている
ことを特徴とする遊技機である。
或いは、
本態様に係る遊技機は、
ROM(例えば、内蔵ROMC110)と、RAM(例えば、内蔵RAMC120)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、プログラムに従い読みだされるデータとが記憶され、
前記ROMは(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例において)、
プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
を有し、
前記RAMは、
前記第一制御領域にて配置されているプログラムによる処理結果データを記憶する第一情報格納領域(例えば、第1RAM領域)と、
前記第二制御領域にて配置されているプログラムによる処理結果データを記憶する第二情報格納領域(例えば、第2RAM領域)と、
レジスタに記憶されているデータを退避可能なスタック領域(例えば、スタックエリア)と
を有し、
電源断からの復帰後において、前記第一情報格納領域に記憶された処理結果データは、前記第一制御領域にて配置されているプログラムによる処理によって、初期化可能とし、
電源断からの復帰後において、前記第二情報格納領域に記憶された処理結果データは、前記第一制御領域にて配置されているプログラムにより初期化されないよう構成されており、
電源断からの復帰後において、前記第二情報格納領域に記憶された処理結果データは、前記第二制御領域にて配置されているプログラムによる処理によって、初期化可能とし、
電源断からの復帰後において、前記第一情報格納領域に記憶された処理結果データは、前記第二制御領域にて配置されているプログラムにより初期化されないよう構成されており、
電源断からの復帰後において、前記第一情報格納領域に記憶された処理結果データ及び前記第二情報格納領域に記憶された処理結果データが初期化された後で、定期的に発生する割り込み制御を実行可能に設定するよう構成されている
ことを特徴とする遊技機である。
本態様(20)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、RAM(例えば、内蔵RAMC120)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、前記CPUに対する命令を司るプログラムと、プログラムに従い読みだされるデータとが記憶され、
前記ROMは(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例において)、
プログラムが記憶されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
データが記憶されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
プログラムが記憶されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
データが記憶されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
を有し、
前記RAMは、
前記第一制御領域にて記憶されているプログラムによる処理結果データを記憶する第一情報格納領域(例えば、第1RAM領域)と、
前記第二制御領域にて記憶されているプログラムによる処理結果データを記憶する第二情報格納領域(例えば、第2RAM領域)と、
レジスタに記憶されているデータを退避可能なスタック領域(例えば、スタックエリア)と
を有し、
前記第一制御領域に記憶されているプログラムにおける所定の呼び出し命令があった場合に前記第二制御領域に記憶されている所定のプログラムを呼び出し、
前記所定のプログラムに従い前記CPUが処理を実行する場合には、当該呼び出し命令の前にレジスタに記憶されているデータを、前記スタック領域へ退避するよう構成されている
ことを特徴とする遊技機である。
或いは、
本態様に係る遊技機は、
ROM(例えば、内蔵ROMC110)と、RAM(例えば、内蔵RAMC120)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、前記CPUに対する命令を司るプログラムと、プログラムに従い読みだされるデータとが記憶され、
前記ROMは(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例において)、
プログラムが記憶されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
データが記憶されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
プログラムが記憶されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
データが記憶されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
を有し、
前記RAMは、
前記第一制御領域に記憶されているプログラムによる処理結果データを記憶する第一情報格納領域(例えば、第1RAM領域)と、
前記第二制御領域に記憶されているプログラムによる処理結果データを記憶する第二情報格納領域(例えば、第2RAM領域)と、
レジスタに記憶されているデータを退避可能なスタック領域(例えば、スタックエリア)と
を有し、
前記第一制御領域に記憶されているプログラムにおける所定の呼び出し命令があった場合に前記第二制御領域に記憶されている所定のプログラムを呼び出し、
前記所定のプログラムに従い前記CPUが処理を実行する場合には、当該呼び出し命令の後にレジスタに記憶されているデータを、前記スタック領域へ退避するよう構成されている
ことを特徴とする遊技機である。
本態様(21)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、RAM(例えば、内蔵RAMC120)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、プログラムに従い読みだされるデータとが記憶され、
前記ROMは(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例において)、
プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
を有し、
前記RAMは、
前記第一制御領域にて配置されているプログラムによる処理結果データを記憶する第一情報格納領域(例えば、第1RAM領域)と、
前記第二制御領域にて配置されているプログラムによる処理結果データを記憶する第二情報格納領域(例えば、第2RAM領域)と、
レジスタに記憶されているデータを退避可能なスタック領域(例えば、スタックエリア)と
を有し、
所定のデータ(例えば、遊技状態情報、抽選役に係る情報)は、前記第一情報格納領域に記憶され、前記第二情報格納領域には記憶されず、
前記第二制御領域にて配置されている所定のプログラムに従う前記CPUによる処理によって、前記所定のデータに基づいて遊技機外へ特定情報を出力可能に構成されている
ことを特徴とする遊技機である。
本態様(22)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、RAM(例えば、内蔵RAMC120)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、プログラムに従い読みだされるデータとが記憶され、
前記ROMは(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例において)、
プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
を有し、
前記RAMは、
前記第一制御領域にて配置されているプログラムによる処理結果データを記憶する第一情報格納領域(例えば、第1RAM領域)と、
前記第二制御領域にて配置されているプログラムによる処理結果データを記憶する第二情報格納領域(例えば、第2RAM領域)と、
レジスタに記憶されているデータを退避可能なスタック領域(例えば、スタックエリア)と
を有し、
所定のデータ(例えば、遊技状態情報、抽選役に係る情報)は、前記第一情報格納領域に記憶され、定期的に発生する割込み制御が行われた場合において、前記第一制御領域にて配置されている第一割込みプログラムから呼び出し命令があった場合に、前記第二制御領域にて配置されている第二割込みプログラム処理を実行し、当該第二割込み処理では前記所定のデータに基づいて特定情報を遊技機外へ出力可能に構成されている
ことを特徴とする遊技機である。
本態様(23)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、RAM(例えば、内蔵RAMC120)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、プログラムに従い読みだされるデータとが記憶され、
前記ROMは(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例において)、
プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
を有し、
前記RAMは、
前記第一制御領域にて配置されているプログラムによる処理結果データを記憶する第一情報格納領域(例えば、第1RAM領域)と、
前記第二制御領域にて配置されているプログラムによる処理結果データを記憶する第二情報格納領域(例えば、第2RAM領域)と、
レジスタに記憶されているデータを退避可能なスタック領域(例えば、スタックエリア)と
を有し、
前記第一制御領域にて配置されているプログラムにおける呼び出し命令があった場合に前記第二制御領域にて配置されている所定のプログラムを呼び出し、
前記所定のプログラムに従い処理を実行する場合には、当該呼び出し命令の前のスタック領域のチェックデータ(例えば、当該呼び出し命令の前のスタックポインタのアドレス値、或いは、当該呼び出し命令の前までにスタック領域へ退避されているデータのチェックサム値)を前記第一情報格納領域の所定アドレスに記憶し、
前記所定のプログラムによる処理を実行した後には、前記チェックデータに基づいて正常か否かを判定し、正常でないと判断した場合にはエラー処理を実行する
ことを特徴とする遊技機である。
或いは、
ROM(例えば、内蔵ROMC110)と、RAM(例えば、内蔵RAMC120)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、プログラムに従い読みだされるデータとが記憶され、
前記ROMは(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例において)、
プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
を有し、
前記RAMは、
前記第一制御領域にて配置されているプログラムによる処理結果データを記憶する第一情報格納領域(例えば、第1RAM領域)と、
前記第二制御領域にて配置されているプログラムによる処理結果データを記憶する第二情報格納領域(例えば、第2RAM領域)と、
レジスタに記憶されているデータを退避可能なスタック領域(例えば、スタックエリア)と
を有し、
前記第一制御領域にて配置されているプログラムにおける呼び出し命令があった場合に前記第二制御領域にて配置されている所定のプログラムを呼び出し、
前記所定のプログラムに従い処理を実行する場合には、当該呼び出し命令の前におけるスタックポインタのアドレス値を前記第一情報格納領域の所定アドレスに記憶し、
前記所定のプログラムによる処理を実行した後には、当該実行した後におけるスタックポインタのアドレス値と前記所定アドレスに記憶したアドレス値とに基づいて正常か否かを判定し、正常でないと判断した場合にはエラー処理を実行する
ことを特徴とする遊技機である。
本態様(24)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、RAM(例えば、内蔵RAMC120)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、プログラムに従い読みだされるデータとが記憶され、
前記ROMは(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例において)、
プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
を有し、
前記RAMは、
前記第一制御領域にて配置されているプログラムによる処理結果データを記憶する第一情報格納領域(例えば、第1RAM領域)と、
前記第二制御領域にて配置されているプログラムによる処理結果データを記憶する第二情報格納領域(例えば、第2RAM領域)と、
レジスタに記憶されているデータを退避可能なスタック領域(例えば、スタックエリア)と
を有し、
前記スタック領域は、第一スタック領域と第二スタック領域とに分かれており、
前記第一制御領域にて配置されているプログラムに従って第一の処理を実行する特定のタイミングで、レジスタにて記憶されているデータを前記第一スタック領域へ退避する一方で、前記第二制御領域にて配置されているプログラムに従って第二の処理を実行する所定のタイミングで、レジスタにて記憶されているデータを前記第二スタック領域へ退避するよう構成されており、
前記第一制御領域にて配置されているプログラムにおける呼び出し命令があった場合であって、前記第二制御領域にて配置されているプログラムに従い前記CPUが処理を実行する際においては、前記スタック領域を管理するスタックポインタのアドレス値について、前記第一スタック領域を指し示すアドレス値から前記第二スタック領域を指し示すアドレス値へと変更するよう構成されている
ことを特徴とする遊技機である。
本態様(25)に係る回胴式遊技機は、
ROM(例えば、内蔵ROMC110)と、RAM(例えば、内蔵RAMC120)と、CPU(例えば、CPUC100)とを備えた遊技機であって、
前記ROMには、アドレスが割り当てられ、前記CPUに対する命令を司るプログラムと、プログラムに従い読みだされるデータとが記憶され、
前記ROMは(例えば、実施例において<メモリマップ>として示した主制御チップCのメモリマップの一例において)、
プログラムが配置されている第一制御領域(例えば、第1ROM領域における第1制御領域)と、
データが配置されている第一データ領域(例えば、第1ROM領域における第1データ領域)と、
プログラムが配置されている第二制御領域(例えば、第2ROM領域における第2制御領域)と、
データが配置されている第二データ領域(例えば、第2ROM領域における第2データ領域)と
を有し、
前記RAMは、
前記第一制御領域にて配置されているプログラムによる処理結果データを記憶する第一情報格納領域(例えば、第1RAM領域)と、
前記第二制御領域にて配置されているプログラムによる処理結果データを記憶する第二情報格納領域(例えば、第2RAM領域)と、
レジスタに記憶されているデータを退避可能なスタック領域(例えば、スタックエリア)と
を有し、
前記スタック領域は、第一スタック領域と第二スタック領域とに分かれており、
前記第一制御領域にて配置されているプログラムに従って第一の処理を実行する特定のタイミングで、レジスタにて記憶されているデータを前記第一スタック領域へ退避する一方で、前記第二制御領域にて配置されているプログラムに従って第二の処理を実行する所定のタイミングで、レジスタにて記憶されているデータを前記第二スタック領域へ退避するよう構成されており、
前記第一制御領域にて配置されているプログラムにおける呼び出し命令があった場合であって、前記第二制御領域にて配置されているプログラムに従い前記CPUが処理を実行する際においては、前記スタック領域を管理するスタックポインタのアドレス値について前記第一スタック領域を指し示すアドレス値から前記第二スタック領域を指し示すアドレス値へと変更するよう構成されており、
前記スタックポインタのアドレス値について前記第一スタック領域を指し示すアドレス値から前記第二スタック領域を指し示すアドレス値へと変更する処理が終了するまでの期間は、定期的に発生する割り込み制御の実行タイミングに到達した場合であっても、当該割り込み制御の実行が禁止されるよう構成されている
ことを特徴とする遊技機である。
P 回胴式遊技機、DU 前扉(ドア)
D 扉基板、D10s 投入受付センサ
D20s 第1投入センサ、D30s 第2投入センサ
D40 停止ボタン、D41 左停止ボタン
D42 中停止ボタン、D43 右停止ボタン
D50 スタートレバー、D60 精算ボタン
D70 表示パネル、D80 扉スイッチ
D90 コインシュータ、D100 ブロッカ
D130 上パネル、D140 下パネル
D150 装飾ランプユニット、D160 リール窓
D170 メダル投入口、D180 操作状態表示灯
D190 払出数表示装置、D200 クレジット数表示装置
D210 投入数表示灯、D220 ベットボタン
D230 メダル受け皿、D240 放出口
D250 特別遊技状態表示装置、D260 鍵穴
D270 押し順表示装置、D280 ARTカウンタ値表示装置
M 主制御基板、M10 設定扉スイッチ
M20 設定キースイッチ、M30 設定/リセットボタン
C 主制御チップ、M50 リール
M51 左リール、M52 中リール
M53 右リール、M60 ARTカウンタ
M70 遊技間隔最小タイマ、M80 出力時間タイマ
S 副制御基板、S10 LEDランプ
S20 スピーカ、S30 回胴バックライト
S40 演出表示装置、SC 副制御チップ
E 電源基板、E10 電源スイッチ
H メダル払出装置、H10s 第1払出センサ
H20s 第2払出センサ、H40 ホッパ
H50 ディスク、H50a ディスク回転軸
H60 遊技メダル出口、H70 放出付勢手段
H80 ホッパモータ
K 回胴基板、K10 回胴モータ
K20 回胴センサ
IN 中継基板

Claims (1)

  1. ROMと、RAMと、CPUとを備えた遊技機であって、
    前記ROMには、前記CPUに対する命令を司るプログラムと、プログラムに従い読みだされるデータとが記憶され、
    前記ROMは、
    プログラムが記憶されている第一制御領域と、
    データが記憶されている第一データ領域と、
    プログラムが記憶されている第二制御領域と、
    データが記憶されている第二データ領域と
    を有し、
    前記RAMは、
    前記第一制御領域に記憶されているプログラムによる処理結果データを記憶する第一情報格納領域と、
    前記第二制御領域に記憶されているプログラムによる処理結果データを記憶する第二情報格納領域と、
    レジスタに記憶されているデータを退避可能なスタック領域と
    を有し、
    電源断からの復帰後において前記第一制御領域に記憶されている所定のプログラム処理によって、前記第一情報格納領域に記憶された処理結果データ、前記第二情報格納領域に記憶された処理結果データ、及び前記スタック領域に退避されたデータの誤り検出が行われるよう構成されている
    ことを特徴とする遊技機。
JP2015092413A 2015-04-28 2015-04-28 遊技機 Active JP6572611B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015092413A JP6572611B2 (ja) 2015-04-28 2015-04-28 遊技機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015092413A JP6572611B2 (ja) 2015-04-28 2015-04-28 遊技機

Publications (2)

Publication Number Publication Date
JP2016209035A true JP2016209035A (ja) 2016-12-15
JP6572611B2 JP6572611B2 (ja) 2019-09-11

Family

ID=57550279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015092413A Active JP6572611B2 (ja) 2015-04-28 2015-04-28 遊技機

Country Status (1)

Country Link
JP (1) JP6572611B2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017000596A (ja) * 2015-06-15 2017-01-05 株式会社三洋物産 遊技機
JP2018029840A (ja) * 2016-08-25 2018-03-01 株式会社三共 遊技機
JP6350728B1 (ja) * 2017-07-27 2018-07-04 サミー株式会社 遊技機
JP6349528B1 (ja) * 2017-07-04 2018-07-04 株式会社オリンピア 遊技機
JP6350729B1 (ja) * 2017-07-27 2018-07-04 サミー株式会社 遊技機
JP6371955B1 (ja) * 2017-07-04 2018-08-15 株式会社オリンピア 遊技機
JP2019025317A (ja) * 2018-07-04 2019-02-21 サミー株式会社 遊技機
JP2019122530A (ja) * 2018-01-15 2019-07-25 株式会社オリンピア 遊技機
JP2020072782A (ja) * 2019-09-13 2020-05-14 株式会社三共 遊技機
JP2021035550A (ja) * 2020-11-10 2021-03-04 株式会社ユニバーサルエンターテインメント 遊技機

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006223544A (ja) * 2005-02-17 2006-08-31 Sankyo Kk スロットマシン
JP2009136408A (ja) * 2007-12-05 2009-06-25 Daito Giken:Kk 遊技台
JP2009142566A (ja) * 2007-12-17 2009-07-02 Daiichi Shokai Co Ltd 遊技機
JP2016087257A (ja) * 2014-11-07 2016-05-23 株式会社三共 遊技機

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006223544A (ja) * 2005-02-17 2006-08-31 Sankyo Kk スロットマシン
JP2009136408A (ja) * 2007-12-05 2009-06-25 Daito Giken:Kk 遊技台
JP2009142566A (ja) * 2007-12-17 2009-07-02 Daiichi Shokai Co Ltd 遊技機
JP2016087257A (ja) * 2014-11-07 2016-05-23 株式会社三共 遊技機

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017000596A (ja) * 2015-06-15 2017-01-05 株式会社三洋物産 遊技機
JP2018029840A (ja) * 2016-08-25 2018-03-01 株式会社三共 遊技機
JP2019013347A (ja) * 2017-07-04 2019-01-31 株式会社オリンピア 遊技機
JP6349528B1 (ja) * 2017-07-04 2018-07-04 株式会社オリンピア 遊技機
JP2019013346A (ja) * 2017-07-04 2019-01-31 株式会社オリンピア 遊技機
JP6371955B1 (ja) * 2017-07-04 2018-08-15 株式会社オリンピア 遊技機
JP2019024762A (ja) * 2017-07-27 2019-02-21 サミー株式会社 遊技機
JP6350729B1 (ja) * 2017-07-27 2018-07-04 サミー株式会社 遊技機
JP6350728B1 (ja) * 2017-07-27 2018-07-04 サミー株式会社 遊技機
JP2019024763A (ja) * 2017-07-27 2019-02-21 サミー株式会社 遊技機
JP2019122530A (ja) * 2018-01-15 2019-07-25 株式会社オリンピア 遊技機
JP7042480B2 (ja) 2018-01-15 2022-03-28 株式会社オリンピア 遊技機
JP2019025317A (ja) * 2018-07-04 2019-02-21 サミー株式会社 遊技機
JP2020072782A (ja) * 2019-09-13 2020-05-14 株式会社三共 遊技機
JP2021035550A (ja) * 2020-11-10 2021-03-04 株式会社ユニバーサルエンターテインメント 遊技機
JP7060662B2 (ja) 2020-11-10 2022-04-26 株式会社ユニバーサルエンターテインメント 遊技機

Also Published As

Publication number Publication date
JP6572611B2 (ja) 2019-09-11

Similar Documents

Publication Publication Date Title
JP6376034B2 (ja) 遊技機
JP6197826B2 (ja) 遊技機
JP6432310B2 (ja) 遊技機
JP6572611B2 (ja) 遊技機
JP6398775B2 (ja) 遊技機
JP6547325B2 (ja) 遊技機
JP6578653B2 (ja) 遊技機
JP6659939B2 (ja) 遊技機
JP6387808B2 (ja) 遊技機
JP6572613B2 (ja) 遊技機
JP6604027B2 (ja) 遊技機
JP6398776B2 (ja) 遊技機
JP6376033B2 (ja) 遊技機
JP6578652B2 (ja) 遊技機
JP6572614B2 (ja) 遊技機
JP6572612B2 (ja) 遊技機
JP6592889B2 (ja) 遊技機
JP6604028B2 (ja) 遊技機
JP6659940B2 (ja) 遊技機
JP6582399B2 (ja) 遊技機
JP6592888B2 (ja) 遊技機
JP6503705B2 (ja) 遊技機
JP6503706B2 (ja) 遊技機
JP6507593B2 (ja) 遊技機
JP6503704B2 (ja) 遊技機

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180327

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190220

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190716

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190729

R150 Certificate of patent or registration of utility model

Ref document number: 6572611

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250