特許第6372015号(P6372015)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 高砂電器産業株式会社の特許一覧

<>
  • 特許6372015-遊技機 図000002
  • 特許6372015-遊技機 図000003
  • 特許6372015-遊技機 図000004
  • 特許6372015-遊技機 図000005
  • 特許6372015-遊技機 図000006
  • 特許6372015-遊技機 図000007
  • 特許6372015-遊技機 図000008
  • 特許6372015-遊技機 図000009
  • 特許6372015-遊技機 図000010
  • 特許6372015-遊技機 図000011
  • 特許6372015-遊技機 図000012
  • 特許6372015-遊技機 図000013
  • 特許6372015-遊技機 図000014
  • 特許6372015-遊技機 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6372015
(24)【登録日】2018年7月27日
(45)【発行日】2018年8月15日
(54)【発明の名称】遊技機
(51)【国際特許分類】
   A63F 5/04 20060101AFI20180806BHJP
【FI】
   A63F5/04 512B
【請求項の数】1
【全頁数】23
(21)【出願番号】特願2017-1564(P2017-1564)
(22)【出願日】2017年1月10日
(65)【公開番号】特開2018-110639(P2018-110639A)
(43)【公開日】2018年7月19日
【審査請求日】2017年1月10日
(73)【特許権者】
【識別番号】000169477
【氏名又は名称】株式会社コナミアミューズメント
(72)【発明者】
【氏名】小森 隆男
【審査官】 金子 和孝
(56)【参考文献】
【文献】 特開2016−087235(JP,A)
【文献】 特開平05−067216(JP,A)
【文献】 「12.7 ソフトウェアによる乗算と除算」,Z−80マイクロコンピュータ,丸善株式会社,1982年 3月20日,p.165-167
(58)【調査した分野】(Int.Cl.,DB名)
A63F 5/04
A63F 7/02
(57)【特許請求の範囲】
【請求項1】
遊技の進行制御を司る制御装置を備えた遊技機であって、
前記制御装置にて実行される種々の処理には、予め決められた順番で処理を実行する基本処理と、一定時間間隔毎に前記基本処理に割り込んで処理を実行する定期割込処理とを含み、
第1値と、該第1値よりも大きくなることはない第2値とに関し、前記第1値を所定の整数値とした場合に前記第2値が相当する整数値たる分率を算出する分率算出処理を前記基本処理にて実行するとともに、該分率算出処理の実行中は前記定期割込処理を禁止し、
前記分率算出処理における前記分率の算出方法として、
初期値がゼロの被除数を上位方向に1ビットづつシフトするとともに、前記第1値と前記所定の整数値の積の最上位ビットから最下位ビットまでの各ビット値を、最上位ビットから順に1ビットづつ、前記被除数の最下位ビットへシフトするビットシフト処理を繰り返す第1ステップと、
前記第1ステップでの前記ビットシフト処理ごとに、前記被除数が前記第2値以上であるか否かを判断する第2ステップと、
前記第2ステップにて肯定判断された場合に、当該判断の直近に前記被除数の最下位ビットにシフトした前記積のビットをN(Nは1以上の整数)ビット目としたとき、前記分率のNビット目に1をセットするとともに、前記被除数から前記第2値を減算して前記第1ステップへ移行させる第3ステップと、を含む算出方法を採用することにより、
前記分率算出処理に伴う前記定期割込処理の禁止によって、次の定期割込処理が遅延することがないように構成したことを特徴とする遊技機。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スロットマシンやパチンコ機などの遊技機に関する。
【背景技術】
【0002】
遊技機は、検査機関での検査に適合しないと、パチンコホールに設置することができない。また、遊技機関連規則には、例えばスロットマシンの実射試験での出球に関して、以下のような規程があり、この規程を遵守したスロットマシンのみが、パチンコホールへの設置を許容される。
【0003】
(1) 設定ごと及び規定数ごとに、回胴回転装置を作動させた後、回転するすべての回胴につき、任意の順序により、任意の時間に回転停止装置を作動させる試験を400回行つた場合において、獲得する遊技メダル等の総数が、投入をした遊技メダル等の総数の3倍に満たないものであること。
(2) 設定ごと及び規定数ごとに、(1)に規定する試験を6,000回行つた場合において、獲得する遊技メダル等の総数が、投入をした遊技メダル等の総数の1.5倍に満たないものであること。
(3) 設定ごと及び規定数ごとに、(1)に規定する試験を17,500回行つた場合において、獲得する遊技メダル等の総数が、投入をした遊技メダル等の総数の20分の11を超え、かつ、1.2倍に満たないものであること。
(4) 設定ごと及び規定数ごとに、(1)に規定する試験を6,000回行つた場合において、獲得する遊技メダル等の数のうち役物の作動によるものの割合(以下、役物比率または役比という)が、7割(第1種特別役物の作動によるものの割合(以下、連役比率、または連役比という)にあつては、6割)を超えるものでないこと。
【0004】
(4)の規程の「役物」とは、「入賞を容易にするための特別の装置」と定義されており、現状、「第1種特別役物」、「第2種特別役物」及び「普通役物」の3通りの役物のスロットマシンへの搭載が認められている。また、「第1種特別役物」及び「第2種特別役物」については、各役物を連続して作動させることができる「役物連続作動装置」の搭載が認められている。一般的に、「第1種特別役物」を連続して作動させることができる「役物連続作動装置」はBB(ビッグボーナス)、「第2種特別役物」を連続して作動させることができる「役物連続作動装置」はMB(ミドルボーナス)/CB(チャンスボーナス)と呼ばれている。
【0005】
従って、上記(4)の規程の存在により、パチンコホールに設置されたスロットマシンも、役比が7割または6割前後となるはずであるが、従来のスロットマシンには、役比の確認が出来る機能が搭載されていなかったため、役比を確認することが出来なかった。
【0006】
所謂ゴト行為の1つとして、スロットマシンのボーナス確率を正規な状態よりも過度に高め、ボーナスゲームを頻発させることによって、不正に出球を搾取するものもあり、このようなゴト行為の早期発見には、役比の確認が効果的であることから、昨今、スロットマシンへの役比確認機能の搭載が検討されている(例えば、特許文献1参照)。
【特許文献1】特開2016−087235号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
ところで、遊技機の制御に係る主制御プログラムは、検査機関での検査の効率化のため、Z80ベースのアセンブラ言語での記述が義務付けられており、プログラム領域、並びにデータ領域の容量にも一定の制限が課されている。
役比の算出には、払い出したメダル枚数を累積した総払出数と、役物作動中に払い出したメダル枚数を累積した役物中総払出数とを記憶しておく必要があり、総払出数及び役物中総払出数ともに大きな数になるとともに、例えば、役比を百分率の整数値にて算出するとした場合、Z80ベースのアセンブラ言語には、乗除算の命令がないため、計算速度上及びプログラム容量上の双方の観点において、効率的な役比算出アルゴリズムが求められる。
【0008】
そこで、本発明は、Z80ベースのアセンブラ言語での記述が義務付けられている、遊技機用の制御プログラムにおいて、役比等、分母となる値を所定の整数値とした場合に、分子となる値が相当する整数値たる分率を算出する算出アルゴリズムの効率化を図ることが出来る遊技機を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の遊技機(1)は、第1値(TO_6000/TO_ALL)と、該第1値(TO_6000/TO_ALL)よりも大きくなることはない第2値(YO_6000、RO_6000/YO_ALL、RO_ALL)とに関し、前記第1値(TO_6000/TO_ALL)を所定の整数値とした場合に前記第2値(YO_6000、RO_6000/YO_ALL、RO_ALL)が相当する整数値たる分率(YH_6000、RH_6000/YH_ALL、RH_ALL)を算出する制御装置(31)を備え、
前記分率(YH_6000、RH_6000/YH_ALL、RH_ALL)の算出ステップに、
初期値がゼロの被除数を上位方向に1ビットづつシフトするとともに、前記第1値(TO_6000/TO_ALL)と前記所定の整数値の積の最上位ビットから最下位ビットまでの各ビット値を、最上位ビットから順に1ビットづつ、前記被除数の最下位ビットへシフトするビットシフト処理を繰り返す第1ステップと、
前記第1ステップでの前記ビットシフト処理ごとに、前記被除数が前記第2値(YO_6000、RO_6000/YO_ALL、RO_ALL)以上であるか否かを判断する第2ステップと、
前記第2ステップにて肯定判断された場合に、当該判断の直近に前記被除数の最下位ビットにシフトした前記積のビットをN(Nは1以上の整数)ビット目としたとき、前記分率のNビット目に1をセットするとともに、前記被除数から前記第2値(YO_6000、RO_6000/YO_ALL、RO_ALL)を減算して前記第1ステップへ移行させる第3ステップと、を含むことを特徴としている。
【発明の効果】
【0010】
本発明の遊技機によれば、Z80ベースのアセンブラ言語での記述が義務付けられている、遊技機用の制御プログラムにおいて、役比等、分母となる値を所定の整数値とした場合に、分子となる値が相当する整数値たる分率を算出する算出アルゴリズムの効率化を図ることが出来る。
【図面の簡単な説明】
【0011】
図1】スロットマシン1の概観を示す斜視図である。
図2】スロットマシン1の電気的構成を示すブロック図である。
図3】スロットマシン1の役比表示装置を示す図である。
図4】スロットマシン1の主制御装置のROMのメモリマップを示す図である。
図5】スロットマシン1の主制御装置のRAMのメモリマップを示す図である。
図6】スロットマシン1の主制御装置のRAMにおいて、(a)は400ゲーム毎の総払出、役物払出、連役払出を各記憶するデータセットを示す図、(b)は直近6000ゲーム累計と、全ゲーム累計の総払出、役物払出、連役払出を各記憶するデータセットを示す図、(c)は、直近6000ゲームの役物比率並びに連役比率と、全ゲーム累計の役物比率並びに連役比率を各記憶するデータセットを示す図である。
図7】スロットマシン1の役比更新処理のフローチャートである。
図8】スロットマシン1の6000ゲーム/全ゲーム払出枚数更新処理のフローチャートである。
図9】スロットマシン1の6000ゲーム/全ゲーム役物/連役比率更新処理のフローチャートである。
図10】スロットマシン1の第1実施例における、6000ゲーム役物比率更新処理のフローチャートである。
図11】スロットマシン1の第1実施例における、百分率算出処理Aのフローチャートである。
図12】スロットマシン1の第2実施例における、6000ゲーム役物比率更新処理のフローチャートである。
図13】スロットマシン1の第2実施例における、百分率算出処理Bのフローチャートである。
図14】被除数が424000、除数が80000である場合の、百分率算出処理Bの進行に伴う、各値の変化を具体的に示す図である。
【発明を実施するための形態】
【0012】
以下では、本発明の実施の形態について、添付図面を参照しつつ詳細に説明する。
図1は、本発明の一実施形態に係るスロットマシン1の斜視図である。
スロットマシン1は、前面が開放された箱型の本体2と、本体2の前面を開閉可能に設けられた前扉3とを備えている。
本体2内には、上下方向の中央部より少し上方の位置に、左リール4L、中リール4Cおよび右リール4Rが左右に並べて配置されている。左リール4L、中リール4Cおよび右リール4Rは、ドラム状のリール枠の周面にリール帯を巻着した構成を有しており、リール枠の中心で左右方向に延びる軸を中心に回転可能に設けられている。リール帯には、21個の図柄が周方向に並べて配列されている。
【0013】
前扉3には、左リール4L、中リール4Cおよび右リール4Rと対向する位置に、表示パネルユニット5が配置されている。
表示パネルユニット5には、左リール4L、中リール4Cおよび右リール4Rの周面の一部を視認可能にするためのリール窓6が形成されている。左リール4L、中リール4Cおよび右リール4Rの回転中は、リール窓6内に、左リール4L、中リール4Cおよび右リール4Rの図柄が次々に現れる(図柄の変動表示)。左リール4L、中リール4Cおよび右リール4Rが停止すると、リール窓6内に、左リール4L、中リール4Cおよび右リール4Rのそれぞれ3個の図柄、合計9個の図柄が表示される(図柄の停止表示)。
【0014】
また、表示パネルユニット5には、遊技に関する基本的な情報を表示するための各種の表示器が備えられている。この表示器には、たとえば、クレジット表示器7、配当数表示器8、3個のベット数表示LED9、リプレイ表示LED10、スタート可否表示LED11およびメダル受付可否表示LED12が含まれる。クレジット表示器7および配当数表示器8は、リール窓6の下方において、左右に並べて配置されている。クレジット表示器7および配当数表示器8は、それぞれドット付きの2桁の7セグメント表示器を横方向に並べて構成されている。3個のベット数表示LED9は、クレジット表示器7の左側において、上下に並べて配置されている。リプレイ表示LED10、スタート可否表示LED11およびメダル受付可否表示LED12は、配当数表示器8の右側において、上下に並べて配置されている。
【0015】
図1に戻り、前扉3には、表示パネルユニット5の下方に、操作部13が設けられている。操作部13は、表示パネルユニット5の前面に対して前側に張り出しており、平坦な上面14および前側に緩やかに凸湾曲した前面15を有している。
【0016】
上面14の右端部には、メダル投入口16が設けられている。上面14の左端部には、MAXベットボタン17および1枚ベットボタン18が設けられている。1枚ベットボタン18は、MAXベットボタン17の左側に配置されている。
また、上面14の中央部には、液晶表示装置24にて遊技者介入型の演出が実行された場合に、操作が促される演出ボタンPBが配置されている。
【0017】
前面15には、スタートレバー19、左ストップボタン20L、中ストップボタン20C、右ストップボタン20Rおよび精算ボタン21が設けられている。左ストップボタン20L、中ストップボタン20Cおよび右ストップボタン20Rは、前面15の左右方向の中央部において、左からこの順に並べて配置されている。スタートレバー19は、左ストップボタン20Lの左側に配置されている。精算ボタン21は、スタートレバー19のさらに左側に配置されている。
【0018】
メダル受付可否表示LED12の点灯中は、メダル投入口16からメダルが投入されると、その投入が受け付けられる。メダル受付可否表示LED12の消灯中は、メダル投入口16からメダルが投入されても、その投入が受け付けられず、前扉3の最下部に設けられたメダル排出口22からメダルトレイ23にメダルが排出される。
【0019】
ゲームに供するメダルがベットされていない状態において、メダルの投入が受け付けられると、そのメダルがゲームにベットされ、1個のベット数表示LED9が点灯される。つづいて、メダルがメダル投入口16から投入されると、2枚目のメダルがゲームに追加ベットされ、2個のベット数表示LED9が点灯される。さらに、メダルがメダル投入口16から投入されると、3枚目のメダルがゲームに追加ベットされ、3個のベット数表示LED9が点灯される。スロットマシン1では、1ゲーム(1回のゲーム)に対して規定数(スロットマシン1においては常時3枚)のメダルがベットされると、1ゲームが開始可能となり、スタート可否表示LED11が点灯されるとともに、リール窓6内に設定される所定の入賞ラインが有効化される。規定数のメダルがゲームにベットされている状態で、メダル投入口16からメダルが投入された場合、その投入されたメダルは、50枚を上限として、スロットマシン1にクレジットされる。クレジットされているメダルの枚数は、クレジット数表示器CRに表示される。50枚のメダルがクレジットされている状態で、メダル投入口16からメダルが投入された場合、その投入されたメダルは、メダル排出口22からメダルトレイ23に排出される。
【0020】
規定数以上のメダルがスロットマシン1にクレジットされ、ゲームに対してメダルがベットされていない状態において、MAXベットボタン17が操作されると、そのクレジットされているメダルから規定数のメダルがゲームにベットされ、3個のベット数表示LED9およびスタート可否表示LED11が点灯されるとともに、リール窓6内に設定される所定の入賞ラインが有効化される。また、クレジット数が規定数分だけ減り、クレジット数表示器CRの表示が更新される。1枚ベットボタン18が操作された場合には、クレジットされているメダルから1枚のメダルがゲームにベットされ、1個のベット数表示LED9が点灯されるとともに、クレジット数が1だけ減り、クレジット数表示器CRの表示が更新される。
【0021】
ベットされたメダルは、ゲームの開始とともに消費される。スタートレバー19が操作されると、1ゲームが開始となり、左リール4L、中リール4Cおよび右リール4Rの順方向の回転が開始される。また、スタート可否表示LED11およびメダル受付可否表示LED12が消灯される。左ストップボタン20L、中ストップボタン20C、右ストップボタン20Rは、それぞれ左リール4L、中リール4Cおよび右リール4Rに対応して設けられている。左リール4L、中リール4Cおよび右リール4Rの回転開始後、左ストップボタン20L、中ストップボタン20Cおよび右ストップボタン20Rが操作されると、それぞれ左リール4L、中リール4Cおよび右リール4Rの回転が停止される。
【0022】
左リール4L、中リール4Cおよび右リール4Rのすべてが停止した時点で、有効化されている入賞ライン(以下、「有効ライン」という。)上に所定の図柄の組合せが並ぶと、その図柄の組合せに応じた処理が行われる。以上で1ゲームが終了となり、すべてのベット数表示LED9が消灯され、メダル受付可否表示LED12が点灯される。
【0023】
たとえば、有効ライン上に小役に係る図柄の組合せが並ぶと、所定の配当数のメダルが配当として付与され、その配当数が配当数表示器8に表示される。配当は、スロットマシン1に50枚を上限としてクレジットされ、50枚を超える分については、メダル排出口22からメダルトレイ23に排出される。配当がクレジットされると、クレジット数が配当数だけ増え、クレジット数表示器CRの表示が更新される。
【0024】
また、有効ライン上にリプレイ役に係る図柄の組合せが並ぶと、メダルのベットなしで次の1ゲームの実行が許可され、リプレイ表示LED10が点灯される。この場合、メダル受付可否表示LED12が消灯されたまま、点灯中のベット数表示LED9が一旦消灯された後に再び点灯されるとともに、スタート可否表示LED11が点灯される。
【0025】
メダル受付可否表示LED12が点灯され、1枚以上のメダルがクレジットされている状態で、精算ボタン21が操作されると、クレジットされている全メダルがメダル排出口22からメダルトレイ23に排出されて、クレジット数表示器CRの表示が「0」に更新される。
【0026】
また、スロットマシン1には、液晶表示装置24、1対のスピーカ25L,25Rおよび1対のスピーカ26L,26Rが搭載されている。液晶表示装置24は、表示パネルユニット5の上方に配置されている。スピーカ25L,25Rは、液晶表示装置24の左側および右側に分かれて配置されている。スピーカ26L,26Rは、メダル排出口22の左側および右側に分かれて配置されている。遊技(ゲーム)の進行に合わせて、液晶表示装置24に演出画像や各種の情報などが表示され、また、スピーカ25L,25R,26L,26Rから効果音などが出力される。
【0027】
図2は、スロットマシン1の電気的構成を示すブロック図である。
【0028】
スロットマシン1は、ゲームの中枢的な制御を実行する主制御装置31と、ゲームに付随する演出のための制御を実行する副制御装置32と、液晶表示装置24を制御する液晶制御装置33とを備えている。
【0029】
主制御装置31には、CPU41、ROM42、RAM43、入出力ポート44およびデータ送出回路45が備えられている。CPU41、ROM42、RAM43、入出力ポート44およびデータ送出回路45は、バスにより、データを通信可能に接続されている。また、主制御装置31には、CPU41にクロックパルスを与えるクロック発生回路46と、乱数を生成する乱数生成回路47とが備えられている。
【0030】
CPU41は、ROM42に格納されているプログラムを実行し、入出力ポート44から入力される信号に基づいて、入出力ポート44に接続されている各制御対象を制御する。
【0031】
RAM43は、CPU41によるプログラムの実行時のワークエリアとして使用される。
【0032】
入出力ポート(入力ポート)44には、MAXベットボタン17、1枚ベットボタン18、スタートレバー19、左ストップボタン20L、中ストップボタン20C、右ストップボタン20R、精算ボタン21、左リール位置検出センサ51L、中リール位置検出センサ51C、右リール位置検出センサ51R、メダル投入センサ52およびメダル払出センサ53が接続されている。
【0033】
入出力ポート(出力ポート)44には、クレジット表示器7、役比表示装置YD、配当数表示器8、ベット数表示LED9、リプレイ表示LED10、スタート可否表示LED11およびメダル受付可否表示LED12が制御対象として接続されている。また、入出力ポート(出力ポート)44には、左リール4Lを回転駆動する左リール駆動モータ61L、中リール4Cを回転駆動する中リール駆動モータ61C、右リール4Rを回転駆動する右リール駆動モータ61R、メダル投入口16から投入されるメダルの受付/拒否を切り替えるためのメダルブロックソレノイド62および本体2内に設けられたメダル貯留部(図示せず)からメダルを払い出すためのメダル払出駆動モータ63が制御対象として接続されている。
【0034】
図3は、役比表示装置YDを示しており、該役比表示装置YDは、ドット付きの2桁の7セグメント表示器で構成している。本体2内には、主制御装置31を構成する主制御基板(図示せず)が取り付けられており、役比表示装置YDは、当該主制御基板上に実装されている。従って、前扉3を開放しない限り、役比表示装置YDを視認することができないため、遊技者は視認することができない。
役比表示装置YDには、ゲーム結果として払い出されたメダルの累計枚数に対する、役物作動中に払い出されたメダルの累計枚数の比率を百分率で表した役物比率が、2桁の整数値にて表示される。
【0035】
MAXベットボタン17、1枚ベットボタン18、スタートレバー19、左ストップボタン20L、中ストップボタン20C、右ストップボタン20Rおよび精算ボタン21が操作されると、それらの個々に設けられたスイッチまたはセンサから信号が出力され、その信号が入出力ポート44を介してCPU41に入力される。また、左リール4L、中リール4Cおよび右リール4Rが1回転する度に、それぞれ左リール位置検出センサ51L、中リール位置検出センサ51Cおよび右リール位置検出センサ51Rから信号が出力され、その信号が入出力ポート44を介してCPU41に入力される。メダル投入口16からメダルが1枚投入される度に、メダル投入センサ52から検出信号が出力され、その検出信号が入出力ポート44を介してCPU41に入力される。メダル払出駆動モータ63が駆動されて、メダル貯留部からメダルが払い出される度に、メダル払出センサ53から信号が出力され、その信号が入出力ポート44を介してCPU41に入力される。
【0036】
左リール駆動モータ61L、中リール駆動モータ61Cおよび右リール駆動モータ61Rには、ステッピングモータが採用されている。規定数のメダルがゲームにベットされた後、スタートレバー19が操作されると、CPU41は、左リール駆動モータ61L、中リール駆動モータ61Cおよび右リール駆動モータ61Rに駆動パルス信号を入力し、左リール4L、中リール4Cおよび右リール4Rの回転を開始させる。CPU41は、左リール位置検出センサ51L、中リール位置検出センサ51Cおよび右リール位置検出センサ51Rの出力信号ならびに左リール駆動モータ61L、中リール駆動モータ61Cおよび右リール駆動モータ61Rへの駆動パルス信号の出力数に基づいて、左リール4L、中リール4Cおよび右リール4Rの回転位置を常に把握している。
【0037】
また、スタートレバー19が操作されると、CPU41は、内部抽選を実行する。具体的には、CPU41は、スタートレバー19が操作されたタイミングで、乱数生成回路47から乱数を取得する。そして、CPU41は、ROM42に格納されている抽選テーブルを参照する。抽選テーブルでは、乱数生成回路47が生成する乱数の範囲(たとえば、0〜65535)が複数の抽選区分に分けられ、抽選区分の個々に1以上の役が対応づけられている。CPU41は、乱数生成回路47から取得した乱数が属する抽選区分に対応づけられた役を当選役として決定する。また、CPU41は、乱数生成回路47から取得した乱数がどの抽選区分にも属さない場合には、内部抽選の結果を不当選(純ハズレ)と決定する。
【0038】
その後、左リール4L、中リール4Cおよび右リール4Rの回転速度が一定になると、CPU41は、左ストップボタン20L、中ストップボタン20Cおよび右ストップボタン20Rを有効化する。そして、左ストップボタン20L、中ストップボタン20Cおよび右ストップボタン20Rが操作されると、CPU41は、左ストップボタン20L、中ストップボタン20Cおよび右ストップボタン20Rが操作されたタイミングと内部抽選の結果とに基づいて、左リール駆動モータ61L、中リール駆動モータ61Cおよび右リール駆動モータ61Rへの駆動パルス信号の出力を停止し、左リール4L、中リール4Cおよび右リール4Rの停止を制御する。このとき、左ストップボタン20Lが押操作されたタイミングでの左リール4Lの回転位置を基準として、所定コマ数分の図柄が移動する引込範囲内で左リール4Lの回転が停止される(引込制御)。中リール4Cおよび右リール4Rについても同様である。
【0039】
そして、CPU41は、有効ライン上に内部抽選での当選役に対応した図柄の組合せが並んでいるか否かを判定する。有効ライン上に当選役に対応した図柄の組合せが並んでいれば、CPU41は、その当選役に入賞と判定し、当選役に応じた処理を実行する。
【0040】
また、CPU41は、データ送出回路45を介して、副制御装置32に各種データを送出する。各種データには、ゲーム開始の条件が成立したことを表すベット信号、スタートレバー19が操作されたことを表すレバーオン信号、左ストップボタン20Lが操作されたことを表す左停止信号、中ストップボタン20Cが操作されたことを表す中停止信号、右ストップボタン20Rが操作されたことを表す右停止信号、内部抽選やAT抽選の結果に係るデータ、及び左ストップボタン20L、中ストップボタン20C及び右ストップボタン20Rの操作順を指示する指示データなどが含まれる。
【0041】
副制御装置32には、データ入力回路71が備えられている。データ入力回路71は、主制御装置31のデータ送出回路45とデータを通信可能に接続されている。データ送出回路45とデータ入力回路71との間では、データ送出回路45からデータ入力回路71への一方向に通信が行われ、データ入力回路71からデータ送出回路45への通信は行われない。
【0042】
また、副制御装置32には、CPU72、ROM73、RAM74、サウンドプロセッサ75、入出力ポート76およびデータ入出力回路77が備えられている。データ入力回路71、CPU72、ROM73、RAM74、サウンドプロセッサ75、入出力ポート76およびデータ入出力回路77は、バスにより、データを通信可能に接続されている。さらに、副制御装置32は、CPU72にクロックパルスを与えるクロック発生回路78が備えるとともに、CPU72に操作信号を出力する演出ボタンPBが接続されている。
【0043】
CPU72は、ROM73に格納されているプログラムを実行し、データ入力回路71データ入出力回路77、及び演出ボタンPBから入力される信号に基づいて、サウンドプロセッサ75にデータ(コマンド)を送信し、入出力ポート76に接続されている各制御対象を制御する。制御対象には、スロットマシン1の各部の照明のためのLED79およびバックライト80などが含まれる。また、CPU72は、データ入出力回路77を介して、液晶制御装置33に液晶表示装置24の制御に必要なデータを送出する。
【0044】
RAM74は、CPU41によるプログラムの実行時のワークエリアとして使用される。
【0045】
サウンドプロセッサ75は、CPU72から与えられるデータに基づいて、スピーカ25L,25R,26L,26Rからの効果音や音声の出力を制御する。
【0046】
液晶制御装置33には、データ入出力回路81が備えられている。データ入出力回路81は、副制御装置32のデータ入出力回路77とデータを通信可能に接続されている。データ入出力回路77とデータ入出力回路81との間では、双方向に通信が行われる。
【0047】
また、液晶制御装置33には、CPU82、ROM83、RAM84および駆動回路85が備えられている。データ入出力回路81、CPU82、ROM83、RAM84および駆動回路85は、バスにより、データを通信可能に接続されている。さらに、液晶制御装置33には、CPU82にクロックパルスを与えるクロック発生回路86が備えられている。
【0048】
CPU82は、ROM83に格納されているプログラムを実行し、データ入出力回路81から入力される信号に基づいて、駆動回路85を介して、液晶表示装置24を制御する。また、CPU82は、データ入出力回路81を介して、副制御装置32にスピーカ25L,25R,26L,26Rからの効果音や音声の出力制御などに必要なデータを送出する。
【0049】
また、スロットマシン1には、貸出機中継基板91が備えられている。主制御装置31とスロットマシン1に隣接して設けられるメダル貸出機(図示せず)の制御基板とは、貸出機中継基板91を介して通信可能に接続されている。
【0050】
<1.主制御装置31のCPU41について>
主制御装置31のCPU41は、Z80準拠のCPUを用いている。検査機関での検査の効率化のため、Z80ベースのアセンブラ言語での記述が義務付けられているためである。
【0051】
<2.主制御装置31のROM42について>
現行の遊技機関連法規によれば、主制御装置31のROM42にも、以下の制限が課されている。
1)記憶容量が16キロバイトを超えないこと。
2)制御領域とデータ領域とが区分されているものであること。
3)ぱちんこ遊技機:制御領域の容量が3キロバイトを超えず、かつ、データ領域の容量が3キロバイトを超えないものであること。
4)回胴式遊技機(スロットマシン):制御領域の容量が4.5キロバイトを超えず、かつ、データ領域の容量が3キロバイトを超えないものであること。
【0052】
なお、上記のデータ領域とは、プログラム以外の情報のみが記憶される領域、上記の制御領域とは、データ領域以外の記憶領域と規定されているため、制御領域は、プログラム情報が記憶される領域となる。
【0053】
図4は、主制御装置31のROM42のメモリマップを示している。
ROM42の容量は12キロバイトで、16進のアドレス表記で、0000H〜2FFFHで示される領域を有している。
先頭番地の0000Hから始まる第1プログラム領域PG1_AREAには、メインルーチンを含むスロットマシン1の遊技制御に係る遊技制御プログラムが記憶されている。第1プログラム領域PG1_AREAは、遊技機関連法規上の制御領域に相当するため、第1プログラム領域PG1_AREAの容量は、ぱちんこ遊技機の場合は3キロバイト未満、回胴式遊技機の場合は、4.5キロバイト未満とする必要がある。
【0054】
第1プログラム領域PG1_AREAに記憶される遊技制御プログラムは、予め決められた順番で処理を実行する基本処理と、一定時間間隔毎に前記基本処理に割り込んで処理を実行するタイマ割込処理とに大別される。
図2に示す如く、主制御装置31のCPU41には、クロック発生回路46から一定周期で割込信号が入力されており、CPU41は、割込禁止期間でない限り、当該割込信号の受信に応じて、実行中の基本処理を中断して、定期割込処理を開始する。定期割込処理の終了後は、割込時に中断した基本処理に戻り、当該基本処理を継続する。なお、スロットマシン1では、前記割込信号の周期(割込周期)を1.5ミリ秒に設定している。
定期割込処理は、最長でも割込周期内で処理を完了できるように設定されている。従って、基本処理は、割込周期から、定期割込処理に要した時間を除いた、余剰期間にて実行される。
【0055】
第1プログラム領域PG1_AREAの後ろには、間に未使用領域挟み、遊技機関連法規上のデータ領域に相当する第1データ領域PG1_DATA_AREAが設けられている。第1データ領域PG1_DATA_AREAには、第1プログラム領域PG1_AREAに記憶された遊技制御プログラムから参照する固定データが記憶されている。また、第1データ領域PG1_DATA_AREAの容量は、ぱちんこ遊技機、回胴式遊技機にかかわらず、3キロバイト未満とする必要がある。
第1プログラム領域PG1_AREAと第1データ領域PG1_DATA_AREAとの間の未使用領域は、制御領域とデータ領域とを明確に区分するために設けられ、NULL(00H)データで埋められた16バイト以上の容量を有する。以降の各未使用領域も同様に、各未使用領域の前後の領域を明確に区別するために設けられ、NULL(00H)データで埋められた16バイト以上の容量を有する。
【0056】
第1データ領域PG1_DATA_AREAの後ろには、間に未使用領域を挟み、検査情報領域TEST_DATA_AREAが設けられている。検査情報領域TEST_DATA_AREAには、検査機関指定の各種情報が記憶される。
【0057】
検査情報領域TEST_DATA_AREAの後ろには、間に未使用領域挟み、第2プログラム領域PG2_AREAが設けられている。第2プログラム領域PG2_AREAには、前記遊技制御プログラムから呼び出される複数のサブルーチンを含む遊技制御に直接関連のない補助プログラムが記憶されている。これらの補助プログラムは、基本処理であるため、第2プログラム領域PG2_AREAにはタイマ割込処理は含まない。
補助プログラムに含まれる各サブルーチンの機能は、例えば以下の通りである。
1)メダル投入ゴト検知処理
例えば、メダル投入以外の方法でメダル投入センサを誤検知させることにより、クレジットを増加させるクレマンゴトと呼ばれるゴト行為の有無を判別する処理。
2)ホッパーゴト検知処理
ホッパーを誤動作させて不正にメダルを払い出すゴト行為の有無を判別する処理。
3)検査機関試験用信号出力処理
検査機関による試験でのみ用いられる遊技関連信号を出力する処理。
4)払い出されたメダル枚数を累積した総払出数中に、役物作動中に払い出されたメダル枚数を累積した役物中総払出数が占める割合たる役物比率を、百分率の整数値として算出する役物比率算出処理。
【0058】
第2プログラム領域PG1_AREAに記憶される補助プログラムを構成する上記各サブルーチン群は、それぞれ割込禁止期間に実行される。この理由については後述するが、このため、各サブルーチン群は、短時間で処理が完了するように設計する必要がある。
【0059】
第2プログラム領域PG2_AREAの後ろには、間に未使用領域挟み、第2データ領域PG2_DATA_AREAが設けられている。第2データ領域PG2_DATA_AREAには、第2プログラム領域PG2_AREAに記憶された補助プログラムから参照する固定データが記憶されている。
【0060】
第2データ領域PG2_DATA_AREAの後ろには、間に未使用領域挟み、管理データ領域MG_DATA_AREAが設けられている。管理データ領域MG_DATA_AREAには、機種名やメーカ名等の機種固有情報のほか、第1プログラム領域PG1_AREAの終了アドレス、第1データ領域PG1_DATA_AREAの開始及び終了アドレス、第2プログラム領域PG2_AREAの開始及び終了アドレス、第2データ領域PG2_DATA_AREAの開始及び終了アドレス等が記憶される。
【0061】
<3.主制御装置31のRAM43について>
現行の遊技機関連法規によれば、主制御装置31のRAM43には、以下の制限が課されている。
1)記憶容量が1024バイトを超えないこと。
2)使用領域の容量が512バイトを超えないものであること。
【0062】
図5は、主制御装置31のRAM43のメモリマップを示している。
RAM43の容量は1024バイトで、16進のアドレス表記で、F000H〜F3FFHで示される領域を有している。
【0063】
RAM43の先頭番地F000Hから始まる領域は、第1ワーク領域WORK1_AREAで、第1ワーク領域WORK1_AREAには、ROM42の第1プログラム領域PG1_AREAに記憶された遊技制御プログラムに基づき実行される演算処理に用いる各種ワークデータが記憶される。
第1ワーク領域WORK1_AREAの後ろには、間に未使用領域挟み、第1スタック領域STACK1_AREAが設けられている。第1スタック領域STACK1_AREAは、ROM42の第1プログラム領域PG1_AREAに記憶された遊技制御プログラムにて用いるスタック領域である。
【0064】
第1スタック領域STACK1_AREAの後ろには、間に未使用領域挟み、第2ワーク領域WORK2_AREAが設けられている。第2ワーク領域WORK2_AREAには、ROM42の第2プログラム領域PG2_AREAに記憶された補助プログラムに基づき実行される演算処理に用いる各種ワークデータが記憶される。
第2ワーク領域WORK2_AREAの後ろには、間に未使用領域挟み、第2スタック領域STACK2_AREAが設けられている。第2スタック領域STACK2_AREAは、ROM42の第2プログラム領域PG2_AREAに記憶された補助プログラムにて用いるスタック領域である。
【0065】
また、遊技制御プログラムからの第2ワーク領域WORK2_AREAへの参照、及び補助プログラムからの第1ワーク領域WORK1_AREAへの参照は可としているが、遊技制御プログラムからの第2ワーク領域WORK2_AREAの更新、及び補助プログラムからの第1ワーク領域WORK1_AREAの更新は不可としている。この理由も、検査機関での検査の効率化のためである。
【0066】
同様に、検査機関での検査の効率化のため、遊技制御プログラムにて用いる第1スタック領域STACK1_AREAと、補助プログラムにて用いる第2スタック領域STACK2_AREAとは、完全に分離してそれぞれ独立させる必要がある。
仮に、割込許可状態下で補助プログラムを実行した場合、補助プログラム実行中の割込信号受信に伴い、遊技制御プログラム中のタイマ割込処理へ移行することとなり、この際に、スタックが第2スタック領域STACK2_AREAから第1スタック領域STACK1_AREAに切り替わることとなるため、これを防止すべく、補助プログラムを構成する各サブルーチン群は、それぞれ割込禁止期間に実行することとしている。
【0067】
<4.役比及び連役比の算出に必要な各種データの構成について>
役比の算出に必要な各種データは、主制御装置31のRAM43に記憶される。
なお、スロットマシン1では、直近の6000ゲーム間の役比及び役連比と、全ゲームを通じた役比及び連役比とを400ゲーム毎に算出することとしている。また、直近の6000ゲームについては、400ゲーム毎の各種メダル払出枚数のカウント結果の履歴も残すことにしている。役比及び役連比の算出が400ゲームごとであるため、厳密には、常に直近の6000ゲームというわけではないが、以下、同様に直近の6000ゲームという。
【0068】
図6(a)は、各種メダル払出枚数のカウント結果が記憶される各種データを示している。
役比及び連役比の算出には、メダルの総払出枚数(以下、総払出という)、役物作動中に払い出されたメダル枚数(以下、役物払出という)、及び第1種特別役物作動中に払い出されたメダル枚数(以下、連役払出という)のカウント結果が必要である。
この3種類のメダル払出枚数のカウント結果が記憶されるデータセットとして、スロットマシン1では、直近400ゲームのメダル払出枚数のカウント結果を記憶するワークセットWkを、主制御装置31のRAM43の第1ワーク領域WORK1_AREAに設けている。
ワークセットWkは、総払出ワークTOW、役物払出ワークYOW及び連役払出ワークROWとからなる。総払出ワークTOW、役物払出ワークYOW及び連役払出ワークROWは、それぞれ2バイトである。
【0069】
また、400ゲームごとの上記3種類のメダル払出枚数のカウント結果を記憶するデータセットRg1〜Rg15、15セットからなるリングバッファを、主制御装置31のRAM43の第2ワーク領域WORK2_AREAに設けている。各データセットRg1〜15は、総払出データTO1〜15、役物払出データYO1〜15及び連役払出データRO1〜15とからなる。総払出データTO1〜15、役物払出データYO1〜15及び連役払出データRO1〜15は、それぞれ2バイトである。
当該リングバッファにより、直近の6000ゲームについては、400ゲーム毎の各種メダル払出枚数のカウント結果の履歴を残すことが出来る。
【0070】
図6(b)は、直近6000ゲーム分の累計、及び全ゲームの累計のデータセットを示している。当該2種類のデータセットも、主制御装置31のRAM43の第2ワーク領域WORK2_AREAに設けている。
直近6000ゲーム分の累計のデータセットは、総払出ワークTO_6000、役物払出ワークYO_6000及び連役払出ワークRO_6000からなる。総払出ワークTO_6000、役物払出ワークYO_6000及び連役払出ワークRO_6000は、それぞれ3バイトである。
全ゲーム分の累計のデータセットは、総払出ワークTO_ALL、役物払出ワークYO_ALL及び連役払出ワークRO_ALLからなる。総払出ワークTO_ALL、役物払出ワークYO_ALL及び連役払出ワークRO_ALLは、それぞれ4バイトである。
【0071】
図6(c)は、直近6000ゲーム分の役比及び役連比と、全ゲーム累計の役比及び役連比を記憶するデータセットを示している。当該2種類のデータセットも、主制御装置31のRAM43の第2ワーク領域WORK2_AREAに設けている。
また、直近6000ゲーム分の役比YH_6000、直近6000ゲーム分の役連比RH_6000、全ゲーム累計の役比YH_ALL、及び全ゲーム累計の役連比RH_ALLはそれぞれ、以下の計算式に基づき算出される百分率であって、小数点以下を切り下げた、0〜99の整数値としているため、1バイトである。
YH_6000=YO_6000/TO_6000×100
RH_6000=RO_6000/TO_6000×100
YH_ALL=YO_ALL/TO_ALL×100
RH_ALL=RO_ALL/TO_ALL×100
【0072】
<5.役比更新処理について>
図7は、主制御装置31のCPU41で実行される、役比更新処理のフローチャートを示している。
先ず、ステップS701にてゲームが終了したか否かを判断し、ノーと判断した場合には、ステップS701にて同じ判断を繰り返す。一方、ステップS701にてイエスと判断した場合には、次のステップS702にて、払出があったか否かを判断し、イエスと判断した場合には、ステップS703に移行する一方、ノーと判断した場合にはステップS708に移行する。
【0073】
ステップS703では、総払出ワークTOWに払出枚数を加算する。次のステップS704では、役物作動中か否かを判断し、イエスと判断した場合には、役物払出ワークYOWに払出枚数を加算する。次のステップS705では、第1種特別役物の作動中か否かを判断し、イエスと判断した場合には、連役払出ワークROWに払出枚数を加算して、ステップS708へ移行する。ステップS704及びS706にて、ノーと破断した場合にも、ステップS708へ移行する。
【0074】
ステップS708では、ゲーム数を1インクリメントし、次のステップS709ではゲーム数が400ゲームに至ったか否かを判断する。ステップS709にてノーと判断した場合には、ステップS701に戻る。
一方、ステップS709にてイエスと判断した場合には、ステップS710にて6000ゲーム/全ゲーム払出枚数更新処理、ステップS711にて6000ゲーム/全ゲーム役物/連役比率更新処理を実行した後、次のステップS712にて、ゲーム数、総払出ワークTOW、役物払出ワークYOW及び連役払出ワークROWにそれぞれゼロをセットして、ステップS701に戻る。
なお、6000ゲーム/全ゲーム払出枚数更新処理、及び6000ゲーム/全ゲーム役物/連役比率更新処理については、後述する。
【0075】
<6.6000ゲーム/全ゲーム払出枚数更新処理について>
図8は、主制御装置31のCPU41で実行される、6000ゲーム/全ゲーム払出枚数更新処理のフローチャートを示している。
本処理は、主制御装置31のRAM43の第2ワーク領域WORK2_AREAに記憶されている各種データの更新を伴うため、当該処理プログラムは、主制御装置31のROM42の第2プログラム領域PG2_AREAに記憶されている。
このため、当該処理は、最初のステップS801で割込禁止、最後のステップS809で割込許可を行っていることからわかるように、割り込み禁止区間に実行される。以下、この割込み禁止区間にて実行する各ステップについて説明する。
【0076】
ステップS802では、全ゲーム総払出TO_ALLに総払出ワークTOWを加算、全ゲーム役物払出YO_ALLに役物払出ワークYOWを加算、及び全ゲーム連役払出RO_ALLに連役払出ワークROWを加算する。
次のステップS803では、リングバッファを構成する15個のデータセットRg1〜Rg15のうち、更新(上書き)対象のデータセット(更新対象のデータセット番号をNとする、N=1〜15)の更新(上書き)処理を行う。
具体的には、更新(上書き)対象のデータセットの総払出TO(N)に総払出ワークTOWをセット、役物払出YO(N)に役物払出ワークYOWをセット、及び連役払出RO(N)に連役払出ワークROWをセットする。
【0077】
次のステップS804では、6000ゲーム総払出TO_6000、6000ゲーム役物払出YO_6000、及び6000ゲーム連役払出RO_6000を算出する。
具体的には、リングバッファを構成する15個のデータセットに関し、総払出、役物払出、及び連役払出の種別ごとに総和を算出し、その結果をそれぞれ、6000ゲーム総払出TO_6000、6000ゲーム役物払出YO_6000、及び6000ゲーム連役払出RO_6000にセットする。
【0078】
次のステップでは、次回の更新(上書き)のため、更新(上書き)対象のデータセット番号Nを1インクリメントし、次のステップS806では、Nが16に至ったか否かを判断する。ステップS806にてイエスと判断した場合には、ステップS807にてNに1をセットして、ステップS808へ移行する一方、ノーと判断した場合にはステップS807をスキップして、ステップS808へ移行する。
【0079】
<7.6000ゲーム/全ゲーム役物/連役比率更新処理について>
図9は、主制御装置31のCPU41で実行される、6000ゲーム/全ゲーム役物/連役比率更新処理のフローチャートを示している。
具体的には、ステップS901にて、6000ゲーム役物比率YH_6000更新処理、ステップS902にて、6000ゲーム連役比率RH_6000更新処理、ステップS903にて、全ゲーム役物比率YH_ALL更新処理、ステップS904にて、全ゲーム連役比率RH_ALL更新処理をそれぞれ実行してリターンする。
なお、ステップ901〜904の4つの処理は、算出の基となるデータと、結果の出力先とが異なるのみで、ロジック(プロセス)的には同等であるため、以下、6000ゲーム役物比率YH_6000更新処理についてのみ説明し、他の処理については説明を省略する。
【0080】
<8.6000ゲーム役物比率更新処理について>
<8−1.第1実施例>
図10は、主制御装置31のCPU41で実行される、6000ゲーム役物比率YH_6000更新処理のフローチャートを示している。
先ず、ステップS1001にて、被除数に6000ゲーム総払出TO_6000を100倍した値、除数に6000ゲーム役物払出TO_6000、百分率にゼロをそれぞれセットする。
なお、6000ゲーム連役比率更新処理では、上記に代えて、被除数に6000ゲーム総払出TO_6000を100倍した値、除数に6000ゲーム役連払出RO_6000をそれぞれセットする。
全ゲーム役物比率更新処理では、上記に代えて、被除数に全ゲーム総払出TO_ALLを100倍した値、除数に全ゲーム役連払出YO_ALLをそれぞれセットする。
全ゲーム連役比率更新処理では、上記に代えて、被除数に全ゲーム総払出TO_ALLを100倍した値、除数に全ゲーム役連払出RO_ALLをそれぞれセットする。
【0081】
次のステップS1002では、百分率算出処理Aを実行し、次のステップS1003では当該処理の返り値が終了値か否かを判断し、イエスと判断した場合にはステップS1004にて、6000ゲーム役物比率YH_6000に、百分率算出処理Aにて算出した百分率をセットしてリターンする。
なお、6000ゲーム連役比率更新処理では、上記に代えて、百分率算出処理Aにて算出した百分率を6000ゲーム連役比率RH_6000にセットする。
全ゲーム役物比率更新処理では、上記に代えて、百分率算出処理Aにて算出した百分率を全ゲーム役物比率YH_ALLにセットする。
全ゲーム連役比率更新処理では、上記に代えて、百分率算出処理Aにて算出した百分率を全ゲーム連役比率RH_ALLにセットする。
【0082】
図11は、主制御装置31のCPU41で実行される、百分率算出処理Aのフローチャートを示している。
本処理は、主制御装置31のRAM43の第2ワーク領域WORK2_AREAに記憶されている各種データの更新を伴うため、当該処理プログラムは、主制御装置31のROM42の第2プログラム領域PG2_AREAに記憶されている。
このため、当該処理は、最初のステップS1101で割込禁止、最後のステップS1110で割込許可を行っていることからわかるように、割り込み禁止区間に実行される。以下、この割込み禁止区間にて実行する各ステップについて説明する。
【0083】
ステップS1102では、ループ回数にゼロをセットする。次のステップS1103では、被除数から除数を減算した結果をワーク変数Aにセットする。次のステップS1104では、ワーク変数Aの値がゼロ未満か否かを判断し、イエスと判断した場合には、ステップS1109にて返り値に終了値をセットして、ステップS1110へ移行する。
一方、ステップS1104にてノーと判断した場合には、ステップS1105にて被除数にワーク変数Aの値をセットするとともに、次のステップS1106にて百分率及びループ回数をそれぞれ1づつインクリメントして、ステップS1107へ移行する。
【0084】
次のステップS1107では、ループ回数が50回に至ったか否かを判断し、ノーと判断した場合にはステップS1103へ戻る一方、イエスと判断した場合には、ステップS1108にて返り値に継続値をセットして、ステップS1110へ移行する。
【0085】
以上の説明からわかるように、百分率算出処理Aでは、ステップS1103にて、被除数から除数を減算する処理を減算結果が負になるまで繰り返し、この繰り返し回数を百分率にセットするという、最も単純なロジックを採用している。
従って、減算処理の繰り返し回数は最大でも100回であるものの、百分率算出処理Aを割込禁止期間に実行する必要があることから、タイマー割込周期の1.5ミリ秒と、タイマー割込処理の実行に要する最長の時間とを考慮すると、百分率算出処理Aにて、上記減算処理を最大の100回行った場合には、タイマー割込処理の遅延により、不具合が生じる虞があることが判明した。
【0086】
そこで、上記減算処理の最大繰り返し回数として50回を設定し、上記減算処理を50回実行した場合には、百分率の算出を一旦中断して、割込禁止期間を解除することとした。これにより、上記不具合を回避することが出来る。
なお、百分率算出処理Aにおける上記減算処理の最大繰り返し回数は、タイマー割込周期と、タイマー割込処理の実行に要する最長の時間とを考慮して、不具合が生じる虞のない値に設定すればよい。具体的には、タイマー割込周期からタイマー割込処理の実行に要する最長の時間を除いた残余時間中に、確実に実行可能な上記減算処理の繰り返し回数に設定すればよい。
【0087】
<8−2.第2実施例>
第1実施例の百分率算出処理Aでは、減算処理の最大繰り返し回数が100回となる、最も単純なロジックを採用したが、本第2実施例では、減算処理の最大繰り返し回数が7回で済む、効率的なロジックを採用している。
以下、第2実施例について説明する。
【0088】
図12は、主制御装置31のCPU41で実行される、6000ゲーム役物比率YH_6000更新処理のフローチャートを示している。
先ず、ステップS1201にて、被除数に6000ゲーム総払出TO_6000を100倍した値、除数に6000ゲーム役物払出TO_6000、百分率にゼロをそれぞれセットする。
なお、6000ゲーム連役比率更新処理では、上記に代えて、被除数に6000ゲーム総払出TO_6000を100倍した値、除数に6000ゲーム役連払出RO_6000をそれぞれセットする。
全ゲーム役物比率更新処理では、上記に代えて、被除数に全ゲーム総払出TO_ALLを100倍した値、除数に全ゲーム役連払出YO_ALLをそれぞれセットする。
全ゲーム連役比率更新処理では、上記に代えて、被除数に全ゲーム総払出TO_ALLを100倍した値、除数に全ゲーム役連払出RO_ALLをそれぞれセットする。
【0089】
次のステップS1202では、百分率算出処理Bを実行し、次のステップS1203にて、6000ゲーム役物比率YH_6000に、百分率算出処理Bにて算出した百分率をセットしてリターンする。
なお、6000ゲーム連役比率更新処理では、上記に代えて、百分率算出処理Aにて算出した百分率を6000ゲーム連役比率RH_6000にセットする。
全ゲーム役物比率更新処理では、上記に代えて、百分率算出処理Aにて算出した百分率を全ゲーム役物比率YH_ALLにセットする。
全ゲーム連役比率更新処理では、上記に代えて、百分率算出処理Aにて算出した百分率を全ゲーム連役比率RH_ALLにセットする。
【0090】
図13は、主制御装置31のCPU41で実行される、百分率算出処理Bのフローチャートを示している。
本処理は、主制御装置31のRAM43の第2ワーク領域WORK2_AREAに記憶されている各種データの更新を伴うため、当該処理プログラムは、主制御装置31のROM42の第2プログラム領域PG2_AREAに記憶されている。
このため、当該処理は、最初のステップS1301で割込禁止、最後のステップS1316で割込許可を行っていることからわかるように、割り込み禁止区間に実行される。以下、この割込み禁止区間にて実行する各ステップについて説明する。
【0091】
先ず、ステップS1302にて、ループカウンタNにゼロをセットするとともに、ステップS1303にて、被除数を表すのに必要な最小限のビット数をNmaxにセットする。
図14に、被除数が424000、除数が80000の場合の具体例を示す。
この場合、百分率は53となるが、以下の図13の各ステップの説明の際に、適宜図14を参照して、当該具体例についても説明する。
図14に示す具体例において、被除数424000を表すのに必要な最小限のビット数は23ビットであるため、Nmaxは23となる。
【0092】
図13に戻り、次のステップS1304では、Nを1インクリメントするとともに、ステップS1305にて、余りに被除数の最上位ビットからNビット分の値をセットする。
次のステップS1306では、余りが除数以上か否かを判断し、ノーと判断した場合には、ステップS1315にて、NがNmaxに至ったか否かを判断する。ステップS1315にてノーと判断した場合には、ステップS1304に戻る一方、イエスと判断した場合には、ステップS1316へ移行する。
【0093】
また、ステップS1306にてイエスと判断した場合には、ステップS1307にて、百分率の(Nmax−N+1)ビット目に1をセットするとともに、ステップS1308にて、余りから除数を減算してステップS1309に移行する。
【0094】
図14に示す具体例において、ステップS1306にてイエスと判断されるのは、Nが18となった場合であり、この際の余りは、被除数の上位から18ビット分の値、即ち、132500となる。この後、ステップS1307にて、百分率の(Nmax(=23)−N(=18)+1)ビット目、即ち6ビット目に1をセットするとともに、ステップS1308にて、余り(=132500)から除数(=80000)が減算され、余りは52500となる。
【0095】
図13に戻り、次のステップS1309では、Nを1インクリメントするとともに、ステップS1310にて、NがNmaxよりも大きいか否かを判断する。ステップS1310にてイエスと判断した場合には、ステップS1316へ移行する一方、ノーと判断した場合には、ステップS1311へ移行する。
【0096】
ステップS1311では、余りを1ビット分上位側へシフト(左シフト)するとともに、余りの最下位ビットに、被除数の最上位ビットからNビット目の値をセットする。
次のステップS1312では、余りが除数以上か否かを判断し、ノーと判断した場合には、ステップS1309へ戻る一方、イエスと判断した場合には、ステップS1313にて、百分率の(Nmax−N+1)ビット目に1をセットするとともに、ステップS1314にて、余りから除数を減算してステップS1309に戻る。
【0097】
図14に示す具体例において、Nが19の場合は、ステップS1311での処理の結果、余りは105000となる。余りは除数(=80000)よりも大きいため、ステップS1312にてイエスと判断され、この後、ステップS1313にて、百分率の(Nmax(=23)−N(=19)+1)ビット目、即ち5ビット目に1をセットするとともに、ステップS1314にて、余り(=105000)から除数(=80000)が減算され、余りは25000となる。
【0098】
ステップS1314の後、ステップS1309にてNが20となった場合は、ステップS1311での処理の結果、余りは50000となる。余りは除数(=80000)よりも小さいため、ステップS1312にてノーと判断され、ステップS1309へ戻り、Nが21となる。
【0099】
Nが21となった場合は、ステップS1311での処理の結果、余りは100000となる。余りは除数(=80000)よりも大きいため、ステップS1312にてイエスと判断され、この後、ステップS1313にて、百分率の(Nmax(=23)−N(=21)+1)ビット目、即ち3ビット目に1をセットするとともに、ステップS1314にて、余り(=100000)から除数(=80000)が減算され、余りは20000となる。
【0100】
ステップS1314の後、ステップS1309にてNが22となった場合は、ステップS1311での処理の結果、余りは40000となる。余りは除数(=80000)よりも小さいため、ステップS1312にてノーと判断され、ステップS1309へ戻り、Nが23となる。
【0101】
Nが23となった場合は、ステップS1311での処理の結果、余りは80000となる。余りは除数(=80000)と等しいため、ステップS1312にてイエスと判断され、この後、ステップS1313にて、百分率の(Nmax(=23)−N(=23)+1)ビット目、即ち1ビット目に1をセットするとともに、ステップS1314にて、余り(=80000)から除数(=80000)が減算され、余りは0となる。
その後、ステップS1309へ戻り、Nが24となり、ステップS1310にてイエスと判断されて、ステップS1316へ移行する。
この結果、百分率は、2進数で110101、即ち53となる。
【0102】
以上の説明からわかるように、第2実施例の百分率算出処理Bにおいて、減算処理の最大回数は、百分率の最大値である100を表すのに必要なビット数、即ち7回となる。
また、減算処理以外の処理は、ビットのシフト処理ならびに論理演算であるため、処理時間を要さない。このため、第1実施例の百分率算出処理Aのように、百分率の算出を一旦中断して、割込禁止期間を解除しなくとも、1つの連続した短い割込禁止期間で、百分率の算出を完了させることが出来るため、タイマー割込処理を遅延させることがない。従って、これに起因する不具合が生じることもない。
【0103】
以上説明したように、第1実施例の百分率算出処理A、または第2実施例の百分率算出処理Bによれば、タイマー割込処理の遅延による不具合を招くことなく、役物比率並びに連役比率の算出が可能となる。
【0104】
なお、6000ゲーム役物比率YH_6000、6000ゲーム連役比率RH_6000、全ゲーム役物比率YH_ALL及び全ゲーム連役比率RH_ALLは、前扉3が開放された状態において、役比表示装置YHに表示される。当該役比表示装置YHの表示更新処理は、タイマー割込処理にて実行される。具体的には、前扉3開放後、一定時間(例えば5秒間)は、6000ゲーム役物比率YH_6000が役比表示装置YHに表示され、一定時間経過後は、さらに一定時間、6000ゲーム連役比率RH_6000が役比表示装置YHに表示される、といったように、上記4種類の比率が順次、役比表示装置YHに表示されるようになっている。
【0105】
以上、本発明の一実施形態について説明したが、本発明は、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。
例えば、上記では本発明をスロットマシンに適用した実施形態について説明したが、スロットマシンと同様に、主制御装置のCPUとしてZ80ベースのCPUを用いるパチンコ遊技機への適用はいうまでもなく可能である。
【0106】
また、上記では本発明を百分率の算出に適用した実施形態について説明したが、百分率に限らず、スロットマシンやパチンコ遊技機において、第1値と、該第1値よりも大きくなることはない第2値とに関し、前記第1値を所定の整数値とした場合に前記第2値が相当する整数値たる分率を算出する場合、例えば、千分率等を算出する場合にも適用が可能である。
【符号の説明】
【0107】
1……スロットマシン、4L、4C、4R……リール、17……MAXベットボタン、
19……スタートレバー、20L、20C、20R……ストップボタン、
31……主制御装置、41……CPU、42……ROM、43……RAM、
46……クロック発生回路、YD……役比表示装置

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14