JP6792691B2 - 遊技機 - Google Patents

遊技機 Download PDF

Info

Publication number
JP6792691B2
JP6792691B2 JP2019213868A JP2019213868A JP6792691B2 JP 6792691 B2 JP6792691 B2 JP 6792691B2 JP 2019213868 A JP2019213868 A JP 2019213868A JP 2019213868 A JP2019213868 A JP 2019213868A JP 6792691 B2 JP6792691 B2 JP 6792691B2
Authority
JP
Japan
Prior art keywords
game
area
program
medal
ram
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.)
Active
Application number
JP2019213868A
Other languages
English (en)
Other versions
JP2020028747A (ja
Inventor
小倉 敏男
敏男 小倉
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.)
Sankyo Co Ltd
Original Assignee
Sankyo Co Ltd
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 Sankyo Co Ltd filed Critical Sankyo Co Ltd
Priority to JP2019213868A priority Critical patent/JP6792691B2/ja
Publication of JP2020028747A publication Critical patent/JP2020028747A/ja
Application granted granted Critical
Publication of JP6792691B2 publication Critical patent/JP6792691B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Slot Machines And Peripheral Devices (AREA)

Description

本発明は、パチンコ遊技機やスロットマシン等の遊技機に関する。
遊技機として、割込ベクタ定義領域に遊技機制御プログラムの割込発生時における割込アドレスを定義する遊技機が知られている(特許文献1)。
特開2002-52215号公報(段落0033など)
しかしながら、特許文献1に記載の遊技機は、改良の余地があった。
本発明は、このような問題点に着目してなされたものであり、意図しない割込処理が実
行されることを事前に防止することができる遊技機を提供することを目的とする。
(1) 遊技を行う遊技機において、
プログラムを記憶する記憶手段と、
該記憶手段に記憶されたプログラムに従った処理を実行するマイクロコンピュータと、
を備え、
プログラムは、割込の発生に応じて実行される割込プログラムを含み、
前記マイクロコンピュータは、
前記記憶手段における割込プログラムのアドレスを記憶可能な記憶領域を有するアドレス記憶手段と、
前記アドレス記憶手段の記憶領域で記憶しているアドレスが所定の範囲にあるか否かを前記マイクロコンピュータの起動時に判定する判定手段と、
前記マイクロコンピュータの起動を制限する起動制限手段と、を備え、
前記起動制限手段は、前記アドレス記憶手段の記憶領域で記憶しているアドレスが所定の範囲にないと前記判定手段が判定したときに、前記マイクロコンピュータの起動を制限し、
前記記憶手段には、遊技を進行させるための第1プログラムと、前記第1プログラムと異なる第2プログラムと、が記憶され、
前記マイクロコンピュータは、さらに、
前記マイクロコンピュータの起動時に前記第1プログラムおよび前記第2プログラムが記憶されている記憶領域を設定する記憶領域設定手段と、
記記憶領域設定手段が設定した記憶領域以外の領域で記憶しているプログラムが実行されたときに異常制御を実行する異常制御実行手段と、を備え、
前記記憶領域設定手段は、前記第1プログラムが記憶されている記憶領域と、前記第2プログラムが記憶されている記憶領域と、を各々設定する、遊技機。
遊技機は、以下のように構成されてもよい。
手段1の遊技機は、
遊技を行う遊技機に(スロットマシン1)おいて、
遊技媒体(メダル)が投入される投入口(メダル投入口4)と、
前記投入口から投入された遊技媒体を前記遊技機の内方側へ案内する取込通路(ホッパータンク34a側の流路)と、
前記投入口から投入された遊技媒体を前記内方側へ案内せずに前記遊技機の外方へ案内する返却通路(メダル払出口9側の流路)と、
前記投入口から投入された遊技媒体が流下する通路を、前記取込通路と前記返却通路とのいずれか一方に切り替える切替手段(流路切替ソレノイド30)と、
前記切替手段により前記投入口から投入された遊技媒体が流下する通路を切り替える切替制御を行う切替制御手段(メイン制御部41)と、
前記取込通路を流下する遊技媒体の通過を検出する遊技媒体検出手段(投入メダルセンサ31a〜c)と、
前記遊技媒体検出手段により検出された遊技媒体の数を記憶する記憶手段(クレジット)と、
前記遊技機内の遊技媒体を外部へ払い出す払出手段(ホッパーユニット34)と、
前記記憶手段に記憶されている数の遊技媒体を前記払出手段により払い出すことにより返却する返却制御(メダルの返却制御)を行う返却制御手段(メイン制御部41)と、
を備え、
前記切替制御手段は、前記返却制御手段が返却制御(メダルの返却制御)を行うときに、既に前記返却通路に切り替える切替制御(流路切替ソレノイド30をoffの状態にする制御)を行っているか否かに関わらず、前記返却通路に切り替える切替制御(流路切替ソレノイド30をoffの状態にする制御)を行う
ことを特徴としている。
この特徴によれば、記憶手段に記憶されている数の遊技媒体を払出手段により返却する返却制御を行うときに、投入口から投入された遊技媒体が流下する通路を返却通路に切り替える切替制御を行っているか否かに関わらず、返却通路に切り替える切替制御を行うので、返却制御を行うに際して確実に返却通路に切り替えることができる。
本発明の手段2の遊技機は、手段1に記載の遊技機であって、
前記返却通路に切り替える切替制御(流路切替ソレノイド30をoffの状態にする制御)を行う前に前記遊技媒体検出手段(投入メダルセンサ31a〜c)による遊技媒体(メダル)の検出を無効化(投入可能フラグのクリア)する検出無効化手段(メイン制御部41)を、備える
ことを特徴としている。
この特徴によれば、返却通路に切り替える切替制御を行うのに先立って、遊技媒体検出手段による遊技媒体の検出を無効化することで、通路が返却通路に切り替わっている状況にも関わらず、意図せずに遊技媒体検出手段により遊技媒体が検出されてしまうことを防止できる。
本発明の手段3の遊技機は、手段2に記載の遊技機であって、
前記検出不能化手段により遊技媒体の検出が無効化(投入可能フラグのクリア)された後、前記遊技媒体(メダル)の投入が許可されたときに前記遊技媒体検出手段(投入メダルセンサ31a〜c)による遊技媒体の検出を有効化(投入可能フラグの設定)する検出有効化手段(メイン制御部41)を備え、
前記切替制御手段は、前記検出有効化手段により前記遊技媒体検出手段(投入メダルセンサ31a〜c)による遊技媒体の検出が有効化されたこと(投入可能フラグが設定されたこと)を条件に、前記取込通路(ホッパータンク34a側の流路)に切り替える切替制御(流路切替ソレノイド30をonの状態にする制御)を行う
ことを特徴としている。
この特徴によれば、投入口から投入された遊技媒体が流下する通路が取込通路に切り替えられたときに、取込通路を流下する遊技媒体が遊技媒体検出手段により検出されることなく遊技機の内方側へ流下してしまうことを防止できる。
本発明の手段4の遊技機は、手段1〜3のいずれかに記載の遊技機であって、
前記記憶手段(クレジット)に記憶されている遊技媒体(メダル)の数が上限数(クレジットの上限数)に達しているか否かを判定する上限数判定手段(投入可否判定処理)を備え、
前記上限数判定手段は、前記返却制御手段が前記返却制御(メダルの返却制御)を終了したときに、前記記憶手段に記憶されている遊技媒体の数が上限数に達しているか否かを判定し、
前記切替制御手段は、前記遊技媒体数判定手段(投入可否判定処理)により前記記憶手段に記憶されている遊技媒体の数が上限数に達していないと判定されたことを条件に、前記取込通路(ホッパータンク34a側の流路)に切り替える切替制御(流路切替ソレノイド30をonの状態にする制御)を行う
ことを特徴としている。
この特徴によれば、返却制御終了後、取込通路に切り替える切替制御を行う場合も、返却制御の終了以外で取込通路に切り替える切替制御を行う場合も、取込通路に切り替える切替制御を共通化できる。
本発明の手段5の遊技機は、手段1〜4のいずれかに記載の遊技機であって、
前記返却制御(メダルの返却制御)を実行するときに、制御情報(精算開始コマンド)を送信する制御情報送信手段(メイン制御部41)と、
前記制御情報送信手段により送信された制御情報(精算開始コマンド)に基づいて報知(精算中報知)を行う報知手段(サブ制御部91)と、
を備え、
前記切替制御手段は、前記制御情報送信手段により制御情報(精算開始コマンド)が送信された後に、前記返却通路(メダル払出口9側の流路)に切り替える切替制御(流路切替ソレノイド30をoffの状態にする制御)を行う
ことを特徴としている。
この特徴によれば、投入口から投入された遊技媒体が流下する通路が返却通路に切り替わる前に遊技媒体が投入できないことを報知することができる。
本発明の手段6の遊技機は、手段1〜5のいずれかに記載の遊技機であって、
前記遊技媒体検出手段(投入メダルセンサ31a〜c)による検出状況に基づいて遊技媒体(メダル)の検出に係る異常(メダル詰まりエラー)を検出する異常検出手段を備え、
前記異常検出手段は、前記切替制御手段により前記返却通路(メダル払出口9側の流路)に切り替える切替制御(流路切替ソレノイド30をoffの状態にする制御)が行われたときから所定時間(500ms)が経過するまでの期間(検出時間無効化タイマが設定されている期間)において前記遊技媒体(メダル)の検出に係る異常(メダル詰まりエラー)を検出しない
ことを特徴としている。
この特徴によれば、遊技媒体が流下する通路が返却通路に切り替わったにも関わらず、遊技媒体が投入された勢いで取込通路に流下してしまうことがあり、この場合に遊技媒体が流下する時間は、正常に遊技媒体が流下する時間に比較して長い時間を要することが多いが、切替手段により遊技媒体が流下する通路が返却通路に切り替えられたときから所定時間が経過するまでの期間、遊技媒体の検出に係る異常が検出されないので、いわゆる遊技媒体の飲み込みにより異常検出が頻発してしまうことを防止できる。
本発明の手段7の遊技機は、手段1〜6のいずれかに記載の遊技機であって、
遊技媒体(メダル)を投入可能な状態であることを報知する投入可能報知手段(投入要求LED17)と、
前記投入可能報知手段(投入要求LED17)の制御を行う報知制御手段(メイン制御部41)と、
を備え、
前記報知制御手段は、前記切替制御手段による前記投入口(メダル投入口4)から投入された遊技媒体(メダル)の流下する通路を前記返却通路(メダル払出口9側の流路)に切り替える切替制御(流路切替ソレノイド30をoffの状態にする制御)が行われることに応じて前記投入可能報知手段(投入要求LED17)による報知(点灯)を停止させる
ことを特徴としている。
この特徴によれば、返却通路に切り替わったために遊技媒体が投入できないことを遊技者に報知することができる。
本発明の手段8の遊技機は、手段1〜7のいずれかに記載の遊技機であって、
プログラムに基づいて制御を行う制御手段(メイン制御部41)と、
前記制御手段の設定を行う設定手段(HWパラメータを参照して行われる各種機能の設定)と、
を備え、
前記制御手段は、前記設定手段による設定が行われた後、プログラム(遊技プログラムまたは非遊技プログラム)に基づく処理を実行するとともに、プログラムに基づく処理が開始される前に割込を禁止する(起動時設定による割込禁止の設定)
ことを特徴としている。
この特徴によれば、意図しない割込が発生することを防止できる。
本発明の手段9の遊技機は、手段1〜8のいずれかに記載の遊技機であって、
プログラムに基づいて制御を行う制御手段(メイン制御部41)と、
割込処理を実行するための割込プログラム(タイマ割込処理(メイン))のアドレスを記憶可能なアドレス記憶手段(ベクタテーブル)と、
アドレス記憶手段(ベクタテーブル)に記憶しているアドレスが所定の範囲(プログラム領域のうちプログラム等が実際に格納された領域)にあるか否かを起動時に判定する判定手段と、
アドレス記憶手段(ベクタテーブル)に記憶しているアドレスが所定の範囲にないと判定したときに起動を制限する起動制限手段(メイン制御部41は、ベクタテーブルのアドレスがプログラム領域のうちプログラム等が実際に格納された領域でない場合に起動させない)と、
を備える
ことを特徴としている。
この特徴によれば、意図しない割込処理が実行されることを事前に防止することができる。
本発明の手段10の遊技機は、手段1〜9のいずれかに記載の遊技機であって、
複数のタイマ値格納領域(例えば、1バイトタイマA〜C)と、
複数種類の計時条件(例えば、1バイトタイマA〜Cの計時条件)のうちいずれかの種類の計時条件が成立したときに、該計時条件に応じたタイマ値格納領域(例えば、1バイトタイマA〜C)に該計時条件に応じたタイマ値を格納するタイマ値格納手段(メイン処理)と、
所定周期(約2.24ms)毎に複数のタイマ値格納領域(例えば、1バイトタイマA〜C)に格納されたタイマ値を更新可能なタイマ値更新手段(時間カウンタ更新処理)と、
を備え、
複数のタイマ値格納領域(例えば、1バイトタイマA〜C)には、所定の規則(+1)で連続するアドレス(804CH〜804EH)が割り当てられ、
タイマ値更新手段は、指定アドレスに対応するタイマ値格納領域に格納されたタイマ値を更新する更新処理(ポインタが示す値を1減算する処理)を、所定の演算(指定アドレス+1)を行うことによりタイマ値格納領域に対する指定アドレスを変更しながら繰り返し実行することで複数種類のタイマ値を更新可能である
ことを特徴としている。
この特徴によれば、複数のタイマ値格納領域には、所定の規則で連続するアドレスが割り当てられるとともに、指定アドレスに対応するタイマ値格納領域に格納されたタイマ値を更新する更新処理を、所定の演算を行うことによりタイマ値格納領域に対する指定アドレスを変更しながら繰り返し実行することで複数種類のタイマ値を更新するので、複数種類のタイマ値を更新する処理をタイマ値の種類毎に行う場合よりもプログラム容量を削減することができる。
尚、所定の規則で連続するアドレスが割り当てられるとは、例えば、開始アドレス及び開始アドレスからN(Nは自然数)ずつ加算されるアドレスが割り当てられることである。
また、所定の演算を行うことによりタイマ値格納領域に対する指定アドレスを変更するとは、例えば、現在の指定アドレスに対して処理数に応じた値を加算または減算することで指定アドレスを変更すること、基準アドレスに対して定数を加算または減算することで指定アドレスを変更することが該当する。この際、処理数に応じた値または定数は、タイマ値の格納容量により異なる場合があり、例えば、1バイトずつタイマ値が格納される構成であれば、処理数に応じた値は処理数に応じて1、2、3…となり、定数は1となるが、2バイトずつタイマ値が格納される構成であれば、処理数に応じた値は処理数に応じて2、4、6…となり、定数は2となる。
尚、本発明は、本発明の請求項に記載された発明特定事項のみを有するものであって良いし、本発明の請求項に記載された発明特定事項とともに該発明特定事項以外の構成を有するものであっても良い。
本発明が適用された実施例のスロットマシンの正面図である。 スロットマシンの内部構造を示す斜視図である。 リールの図柄配列を示す図である。 スロットマシンの構成を示すブロック図である。 メイン制御部の構成を示すブロック図である。 メイン制御部のROM及びRAMのメモリマップを示す図である。 メイン制御部のROM及びRAMのメモリマップの詳細を示す図である。 遊技プログラム及び非遊技プログラムの構成を示す図である。 遊技領域と非遊技領域との関係を示す図である。 (a)は、流路切替ソレノイドをoffにし状態でのメダルセレクタの断面図であり、(b)は、(a)のA−A断面図である。 (a)は、流路切替ソレノイドをonにし状態でのメダルセレクタの断面図であり、(b)は、(a)のB−B断面図である。 メイン制御部が実行する初期設定処理の制御内容を示すフローチャートである。 メイン制御部が実行するメイン処理の制御内容を示すフローチャートである。 メイン制御部が実行する遊技開始待ち処理の制御内容を示すフローチャートである。 メイン制御部が実行する遊技開始待ち処理の制御内容を示すフローチャートである。 メイン制御部が実行する遊技開始待ち処理の制御内容を示すフローチャートである。 メイン制御部が実行するメダル投入判定処理の制御内容を示すフローチャートである。 メイン制御部が実行する投入可否判定処理の制御内容を示すフローチャートである。 メイン制御部が実行する精算処理の制御内容を示すフローチャートである。 メイン制御部が実行する設定確認処理の制御内容を示すフローチャートである。 メイン制御部が実行するエラー処理の制御内容を示すフローチャートである。 メイン制御部が実行する電断処理の制御内容を示すフローチャートである。 メイン制御部がタイマカウンタの値を判定する際の制御内容を示すフローチャートである。 RAMにおけるタイマカウンタの格納領域を示す図である。 メイン制御部が実行する時間カウンタ更新処理の制御内容を示すフローチャートである。
本発明に係るスロットマシンを実施するための形態を実施例に基づいて以下に説明する。
本発明が適用されたスロットマシンの実施例について図面を用いて説明すると、本実施例のスロットマシン1は、図1に示すように、前面が開口する筐体1aと、この筐体1aの側端に回動自在に枢支された前面扉1bと、から構成されている。
本実施例のスロットマシン1の筐体1aの内部には、図2に示すように、外周に複数種の図柄が配列されたリール2L、2C、2R(以下、左リール、中リール、右リール)が水平方向に並設されており、図1に示すように、これらリール2L、2C、2Rに配列された図柄のうち連続する3つの図柄が前面扉1bに設けられた透視窓3から見えるように配置されている。
リール2L、2C、2Rの外周部には、図3に示すように、それぞれ「赤7」、「青7」、「白7」、「BAR」、「スイカ」、「チェリーa」、「チェリーb」、「ベル」、「リプレイa」、「リプレイb」、「プラム」といった互いに識別可能な複数種類の図柄が所定の順序で、それぞれ21個ずつ描かれている。リール2L、2C、2Rの外周部に描かれた図柄は、前面扉1bの略中央に設けられた透視窓3において各々上中下三段に表示される。
各リール2L、2C、2Rは、各々対応して設けられたリールモータ32L、32C、32R(図4参照)によって回転されることで、各リール2L、2C、2Rの図柄が透視窓3に連続的に変化しつつ表示される一方で、各リール2L、2C、2Rの回転が停止されることで、透視窓3に3つの連続する図柄が表示結果として導出表示されるようになっている。
リール2L、2C、2Rの内側には、リール2L、2C、2Rそれぞれに対して、基準位置を検出するリールセンサ33L、33C、33Rと、リール2L、2C、2Rを背面から照射するリールLED55と、が設けられている。また、リールLED55は、リール2L、2C、2Rの連続する3つの図柄に対応する12のLEDからなり、各図柄をそれぞれ独立して照射可能とされている。
前面扉1bの各リール2L、2C、2Rの手前側(遊技者側)の位置には、液晶表示器51(図1参照)の表示領域51aが配置されている。液晶表示器51は、液晶素子に対して電圧が印加されていない状態で透過性を有する液晶パネルを有しており、表示領域51aの透視窓3に対応する透過領域51b及び透視窓3を介して遊技者側から各リール2L、2C、2Rが視認できるようになっている。
前面扉1bには、図1に示すように、メダルを投入可能なメダル投入口4、メダルが払い出されるメダル払出口9、クレジット(遊技者所有の遊技用価値として記憶されているメダル数)を用いて、その範囲内において遊技状態に応じて定められた規定数の賭数のうち最大の賭数(本実施例では後述するRT0〜4の規定数として3、RBの規定数として2が定められている)を設定する際に操作されるMAXBETスイッチ6、クレジットとして記憶されているメダル及び賭数の設定に用いたメダルを精算する(クレジット及び賭数の設定に用いた分のメダルを返却させる)際に操作される精算スイッチ10、ゲームを開始する際に操作されるスタートスイッチ7、リール2L、2C、2Rの回転を各々停止する際に操作されるストップスイッチ8L、8C、8R、演出に用いられる演出用スイッチ56が遊技者により操作可能にそれぞれ設けられている。
尚、本実施例では、回転を開始した3つのリール2L、2C、2Rのうち、最初に停止するリールを第1停止リールと称し、また、その停止を第1停止と称する。同様に、2番目に停止するリールを第2停止リールと称し、また、その停止を第2停止と称し、3番目に停止するリールを第3停止リールと称し、また、その停止を第3停止あるいは最終停止と称する。
また、前面扉1bには、図1に示すように、クレジットとして記憶されているメダル枚数が表示されるクレジット表示器11、入賞の発生により払い出されたメダル枚数やエラー発生時にその内容を示すエラーコード、後述のナビ報知によるリールの停止順を識別可能な情報等が表示される遊技補助表示器12、賭数が1設定されている旨を点灯により報知する1BETLED14、賭数が2設定されている旨を点灯により報知する2BETLED15、賭数が3設定されている旨を点灯により報知する3BETLED16、メダルの投入が可能な状態を点灯により報知する投入要求LED17、スタートスイッチ7の操作によるゲームのスタート操作が有効である旨を点灯により報知するスタート有効LED18、ウェイト(前回のゲーム開始から一定期間経過していないためにリールの回転開始を待機している状態)中である旨を点灯により報知するウェイト中LED19、リプレイゲーム中である旨を点灯により報知するリプレイ中LED20が設けられた遊技用表示部13が設けられている。
MAXBETスイッチ6の内部には、MAXBETスイッチ6の操作による賭数の設定操作が有効である旨を点灯により報知するBETスイッチ有効LED21(図4参照)が設けられており、ストップスイッチ8L、8C、8Rの内部には、該当するストップスイッチ8L、8C、8Rによるリールの停止操作が有効である旨を点灯により報知する左、中、右停止有効LED22L、22C、22R(図4参照)がそれぞれ設けられており、演出用スイッチ56の内部には、演出用スイッチ56の操作が有効である旨を点灯により報知する演出用LED56a(図4参照)が設けられている。
前面扉1bの内側には、図2に示すように、所定のキー操作により後述するエラー状態及び後述する打止状態を解除するためのリセット操作を検出するリセットスイッチ23、後述する設定値の変更中や設定値の確認中にその時点の設定値が表示される設定値表示器24、所定の契機に打止状態(リセット操作がなされるまでゲームの進行が規制される状態)に制御する打止機能の有効/無効を選択するための打止スイッチ36a、所定の契機に自動精算処理(クレジットとして記憶されているメダルを遊技者の操作によらず精算(返却)する処理)に制御する自動精算機能の有効/無効を選択するための自動精算スイッチ36b、メダル投入口4から投入されたメダルの流路を、筐体1aの内部に設けられた後述のホッパータンク34a(図2参照)側またはメダル払出口9側のいずれか一方に選択的に切り替えるための流路切替ソレノイド30、メダル投入口4から投入され、ホッパータンク34a側に流下したメダルを検出する投入メダルセンサ31a〜c、投入メダルセンサ31a〜cの上流側で異物の挿入を検出する投入口センサ26を有するメダルセレクタ29、前面扉1bの開放状態を検出するドア開放検出スイッチ25(図4参照)が設けられている。
筐体1aの内部には、図2に示すように、前述したリール2L、2C、2R、リールモータ32L、32C、32R(図4参照)、各リール2L、2C、2Rのリール基準位置をそれぞれ検出可能なリールセンサ33L、33C、33R(図4参照)からなるリールユニット2、外部出力信号を出力するための外部出力基板1000(図4参照)、メダル投入口4から投入されたメダルを貯留するホッパータンク34a、ホッパータンク34aに貯留されたメダルをメダル払出口9より払い出すためのホッパーモータ34b(図4参照)、ホッパーモータ34bの駆動により払い出されたメダルを検出する払出センサ34c(図4参照)からなるホッパーユニット34、電源ボックス100が設けられている。
ホッパーユニット34の側部には、ホッパータンク34aから溢れたメダルが貯留されるオーバーフロータンク35が設けられている。オーバーフロータンク35の内部には、貯留されたメダルが満タン状態となったことを検出する満タンセンサ35a(図4参照)が設けられている。
電源ボックス100の前面には、図2に示すように、設定変更状態または設定確認状態に切り替えるための設定キースイッチ37、通常時においてはエラー状態や打止状態を解除するためのリセットスイッチとして機能し、設定変更状態においては後述する内部抽選の当選確率(出玉率)の設定値を変更するための設定スイッチとして機能するリセット/設定スイッチ38、電源をon/offする際に操作される電源スイッチ39が設けられている。
尚、電源ボックス100は、筐体1aの内部に設けられており、さらに前面扉1bは、店員等が所持する所定のキー操作により開放可能な構成であるため、これら電源ボックス100の前面に設けられた設定キースイッチ37、リセット/設定スイッチ38、電源スイッチ39は、キーを所持する店員等の者のみが操作可能とされ、遊技者による操作ができないようになっている。また、所定のキー操作により検出されるリセットスイッチ23も同様である。特に、設定キースイッチ37は、キー操作により前面扉1bを開放したうえで、さらにキー操作を要することから、遊技場の店員のなかでも、設定キースイッチ37の操作を行うキーを所持する店員のみ操作が可能とされている。
本実施例のスロットマシン1においてゲームを行う場合には、まず、メダルをメダル投入口4から投入するか、あるいはクレジットを使用して賭数を設定する。クレジットを使用するにはMAXBETスイッチ6を操作すれば良い。遊技状態に応じて定められた規定数の賭数が設定されると、入賞ラインLN(図1参照)が有効となり、スタートスイッチ7の操作が有効な状態、すなわち、ゲームが開始可能な状態となる。本実施例では、後述するRT0〜4における規定数の賭数として3枚が定められ、後述するRBにおける規定数の賭数として2枚が定められており、これら遊技状態に応じた規定数の賭数が設定されると入賞ラインLNが有効となる。尚、遊技状態に対応する規定数のうち最大数を超えてメダルが投入された場合には、その分はクレジットに加算される。
入賞ラインとは、各リール2L、2C、2Rの透視窓3に表示された図柄の組合せが入賞図柄の組合せであるかを判定するために設定されるラインである。本実施例では、図1に示すように、リール2Lの中段、リール2Cの中段、リール2Rの中段、すなわち中段に水平方向に並んだ図柄に跨って設定された入賞ラインLNのみが入賞ラインとして定められている。尚、本実施例では、1本の入賞ラインのみを適用しているが、複数の入賞ラインを適用しても良い。
また、本実施例では、入賞ラインLNに入賞を構成する図柄の組合せが揃ったことを認識しやすくするために、入賞ラインLNとは別に、無効ラインLM1〜4を設定している。無効ラインLM1〜4は、これら無効ラインLM1〜4に揃った図柄の組合せによって入賞が判定されるものではなく、入賞ラインLNに特定の入賞を構成する図柄の組合せが揃った際に、無効ラインLM1〜4のいずれかに入賞ラインLNに揃った場合に入賞となる図柄の組合せ(例えば、ベル−ベル−ベル)が揃う構成とすることで、入賞ラインLNに特定の入賞を構成する図柄の組合せが揃ったことを認識しやすくするものである。
本実施例では、図1に示すように、リール2Lの上段、リール2Cの上段、リール2Rの上段、すなわち上段に水平方向に並んだ図柄に跨って設定された無効ラインLM1、リール2Lの下段、リール2Cの下段、リール2Rの下段、すなわち下段に水平方向に並んだ図柄に跨って設定された無効ラインLM2、リール2Lの上段、リール2Cの中段、リール2Rの下段、すなわち右下がりに並んだ図柄に跨って設定された無効ラインLM3、リール2Lの下段、リール2Cの中段、リール2Rの上段、すなわち右上がりに並んだ図柄に跨って設定された無効ラインLM4の4種類が無効ラインLMとして定められている。
また、本実施例では、入賞役として、入賞ラインLNに役として定められた所定の図柄の組合せ(例えば、「ベル−スイカ−チェリーb」)が揃ったときに入賞するとともに、かつ所定の図柄組合せが揃うことにより無効ラインLM1〜LM4のいずれかに所定の図柄組合せよりも認識しやすい指標となる図柄の組合せ(例えば、「スイカ−スイカ−スイカ」)が揃うことにより、無効ラインLM1〜LM4のいずれかに揃った図柄の組合せによって入賞したように見せることが可能な役を含む。以下では、所定の図柄の組合せが入賞ラインLNに揃ったときに無効ラインLM1〜LM4のいずれかに揃う図柄の組合せを、指標となる図柄の組合せと呼び、指標となる図柄の組合せを構成する図柄を指標図柄と呼ぶ。
ゲームが開始可能な状態でスタートスイッチ7を操作すると、各リール2L、2C、2Rが回転し、各リール2L、2C、2Rの図柄が連続的に変動する。この状態でいずれかのストップスイッチ8L、8C、8Rを操作すると、対応するリール2L、2C、2Rの回転が停止し、透視窓3に表示結果が導出表示される。
そして全てのリール2L、2C、2Rが停止されることで1ゲームが終了し、入賞ラインLN上に予め定められた図柄の組合せ(以下、役ともいう)が各リール2L、2C、2Rの表示結果として停止した場合には入賞が発生し、その入賞に応じて定められた枚数のメダルが遊技者に対して付与され、クレジットに加算される。また、クレジットが上限数(本実施例では50)に達した場合には、メダルが直接メダル払出口9(図1参照)から払い出されるようになっている。また、入賞ラインLN上に、遊技状態の移行を伴う図柄の組合せが各リール2L、2C、2Rの表示結果として停止した場合には図柄の組合せに応じた遊技状態に移行するようになっている。
尚、本実施例では、スタートスイッチ7の操作が有効な状態でスタートスイッチ7の操作が検出されたときにゲームが開始し、全てのリールが停止したときにゲームが終了する。また、ゲームを実行するための1単位の制御(ゲーム制御)は、前回のゲームの終了に伴う全ての制御が完了したときに開始し、当該ゲームの終了に伴う全ての制御が完了したときに終了する。
また、本実施例では、3つのリールを用いた構成を例示しているが、リールを1つのみ用いた構成、2つのリールを用いた構成、4つ以上のリールを用いた構成としても良く、2以上のリールを用いた構成においては、2以上の全てのリールに導出された表示結果の組合せに基づいて入賞を判定する構成とすれば良い。また、本実施例では、物理的なリールにて可変表示装置が構成されているが、液晶表示器などの画像表示装置にて可変表示装置が構成されていても良い。
また、本実施例におけるスロットマシン1にあっては、ゲームが開始されて各リール2L、2C、2Rが回転して図柄の変動が開始した後、いずれかのストップスイッチ8L、8C、8Rが操作されたときに、当該ストップスイッチ8L、8C、8Rに対応するリールの回転が停止して図柄が停止表示される。ストップスイッチ8L、8C、8Rの操作から対応するリール2L、2C、2Rの回転を停止するまでの最大停止遅延時間は190ms(ミリ秒)である。
リール2L、2C、2Rは、1分間に80回転し、80×21(1リール当たりの図柄コマ数)=1680コマ分の図柄を変動させるので、190msの間では最大で4コマの図柄を引き込むことができることとなる。つまり、停止図柄として選択可能なのは、ストップスイッチ8L、8C、8Rが操作されたときに表示されている図柄と、そこから4コマ先までにある図柄、合計5コマ分の図柄である。
このため、例えば、ストップスイッチ8L、8C、8Rのいずれかが操作されたときに当該ストップスイッチに対応するリールの下段に表示されている図柄を基準とした場合、当該図柄から4コマ先までの図柄を下段に表示させることができるため、リール2L、2C、2R各々において、ストップスイッチ8L、8Rのうちいずれかが操作されたときに当該ストップスイッチに対応するリールの中段に表示されている図柄を含めて5コマ以内に配置されている図柄を入賞ライン上に表示させることができる。
以下では、特に区別する必要がない場合にはリール2L、2C、2Rを単にリールという場合がある。また、リール2Lを左リール、リール2Cを中リール、リール2Rを右リールという場合がある。また、ストップスイッチ8L、8C、8Rの操作によりリール2L、2C、2Rを停止させる操作を停止操作という場合がある。
図4は、スロットマシン1の構成を示すブロック図である。スロットマシン1には、図4に示すように、遊技制御基板40、演出制御基板90、電源基板101が設けられており、遊技制御基板40によって遊技状態が制御され、演出制御基板90によって遊技状態に応じた演出が制御され、電源基板101によってスロットマシン1を構成する電気部品の駆動電源が生成され、各部に供給される。
電源基板101には、外部からAC100Vの電源が供給されるとともに、このAC100Vの電源からスロットマシン1を構成する電気部品の駆動に必要な直流電圧が生成され、遊技制御基板40及び演出制御基板90に供給されるようになっている。また、電源基板101には、前述したホッパーモータ34b、払出センサ34c、満タンセンサ35a、設定キースイッチ37、リセット/設定スイッチ38、電源スイッチ39が接続されている。
遊技制御基板40には、前述したMAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8R、精算スイッチ10、リセットスイッチ23、打止スイッチ36a、自動精算スイッチ36b、投入メダルセンサ31a〜c、ドア開放検出スイッチ25、リールセンサ33L、33C、33Rが接続されているとともに、電源基板101を介して前述した払出センサ34c、満タンセンサ35a、設定キースイッチ37、リセット/設定スイッチ38が接続されており、これら接続されたスイッチ類の検出信号が入力されるようになっている。また、遊技制御基板40には、前述したクレジット表示器11、遊技補助表示器12、1〜3BETLED14〜16、投入要求LED17、スタート有効LED18、ウェイト中LED19、リプレイ中LED20、BETスイッチ有効LED21、左、中、右停止有効LED22L、22C、22R、設定値表示器24、流路切替ソレノイド30、リールモータ32L、32C、32Rが接続されているとともに、電源基板101を介して前述したホッパーモータ34bが接続されており、これら電気部品は、遊技制御基板40に搭載された後述のメイン制御部41の制御に基づいて駆動されるようになっている。
遊技制御基板40には、遊技の進行に関する処理を行うととともに遊技制御基板40に搭載された制御回路の各部を直接的または間接的に制御するメイン制御部41と、所定周波数の発振信号となる制御用クロックCCLKを生成する制御用クロック生成回路42と、制御用クロックCCLKの発振周波数とは異なる所定周波数の発振信号となる乱数用クロックRCLKを生成する乱数用クロック生成回路43と、遊技制御基板40に直接または電源基板101を介して接続されたスイッチ類から入力された検出信号を取り込んでメイン制御部41に伝送するスイッチ検出回路44と、メイン制御部41から出力されたモータ駆動信号(ステッピングモータの位相信号)をリールモータ32L、32C、32Rに伝送するモータ駆動回路45と、メイン制御部41から出力されたソレノイド駆動信号を流路切替ソレノイド30に伝送するソレノイド駆動回路46と、メイン制御部41から出力されたLED駆動信号を遊技制御基板40に接続された各種表示器やLEDに伝送するLED駆動回路47と、スロットマシン1に供給される電源の電圧を監視して電圧の低下を検出したときに、その旨を示す電圧低下信号をメイン制御部41に対して出力する電断検出回路48と、電源投入時または電源遮断時等の電力供給が不安定な状態においてメイン制御部41にシステムリセット信号を与えるリセット回路49と、が搭載されている。
図5は、遊技制御基板40に搭載されたメイン制御部41の構成例を示している。メイン制御部41は、1チップマイクロコンピュータであり、外部バスインターフェイス501と、クロック回路502と、照合用ブロック503と、固有情報記憶回路504と、演算回路505と、リセット/割込コントローラ506と、CPU(Central Processing Unit)41aと、ROM(Read Only Memory)41bと、RAM(Random Access Memory)41cと、フリーランカウンタ回路507と、乱数回路508a、508bと、タイマ回路509と、割込コントローラ510と、パラレル入力ポート511と、シリアル通信回路512と、パラレル出力ポート513と、アドレスデコード回路514と、を備えて構成される。
リセット/割込コントローラ506は、メイン制御部41の内部や外部にて発生する各種リセット、割込要求を制御するためのものである。リセット/割込コントローラ506は、指定エリア外走行禁止(IAT)回路506aとウォッチドッグタイマ(WDT)506bとを備える。IAT回路506aは、ユーザプログラムが指定エリア内で正しく実行されているか否かを監視する回路であり、指定エリア外でユーザプログラムが実行されたことを検出するとIAT発生信号を出力する機能を備える。また、ウォッチドッグタイマ506bは、設定期間ごとにタイムアウト信号を発生させる機能を備える。
外部バスインターフェイス501は、メイン制御部41を構成するチップの外部バスと内部バスとのインターフェイス機能や、アドレスバス、データバス及び各制御信号の方向制御機能などを有するバスインターフェイスである。クロック回路502は、制御用クロックCCLKを2分周することなどにより、内部システムクロックSCLKを生成する回路である。照合用ブロック503は、外部の照合機と接続し、チップの照合を行う機能を備える。固有情報記憶回路504は、メイン制御部41の内部情報となる複数種類の固有情報を記憶する回路である。演算回路505は、乗算及び除算を行う回路である。
CPU41aは、ROM41bから読み出した制御コードに基づいてユーザプログラム(ゲーム制御用の遊技制御処理プログラム)を実行することにより、スロットマシン1における遊技制御を実行する制御用CPUである。こうした遊技制御が実行されるときには、CPU41aがROM41bから固定データを読み出す固定データ読出動作や、CPU41aがRAM41cに各種の変動データを書き込んで一時記憶させる変動データ書込動作、CPU41aがRAM41cに一時記憶されている各種の変動データを読み出す変動データ読出動作、CPU41aが外部バスインターフェイス501やパラレル入力ポート511、シリアル通信回路512などを介してメイン制御部41の外部から各種信号の入力を受け付ける受信動作、CPU41aが外部バスインターフェイス501やシリアル通信回路512、パラレル出力ポート513などを介してメイン制御部41の外部へと各種信号を出力する送信動作等も行われる。
ROM41bには、ユーザプログラム(ゲーム制御用の遊技制御処理プログラム)を示す制御コードや固定データ等が記憶されている。RAM41cは、ゲーム制御用のワークエリア等を提供する。ここで、RAM41cの少なくとも一部は、バックアップ電源によってバックアップされているバックアップRAMであれば良い。すなわち、スロットマシン1への電力供給が停止しても、所定期間はRAM41cの少なくとも一部の内容が保存される。
フリーランカウンタ回路507として、8ビットのフリーランカウンタを搭載している。乱数回路508a、508bは、8ビット乱数や16ビット乱数といった、所定の更新範囲を有する乱数値となる数値データを生成する回路である。本実施例では、乱数回路508a、508bのうち16ビット乱数回路508bが生成するハードウェア乱数は、後述する内部抽選用の乱数として用いられる。タイマ回路509は、16ビットプログラマブルタイマであり、設定されたタイマ値を制御用クロックCCLKの入力に基づいてダウンカウントし、0000Hに達したときに割込コントローラへの割込要求信号を出力する。本実施例では、タイマ回路509を用いて定期的な割込要求や時間計測を行うことが可能である。
割込コントローラ510は、割込端子からの外部割込要求や、内蔵の周辺回路(例えば、シリアル通信回路512、乱数回路508a、508b、タイマ回路509)からの割込要求を制御する回路である。パラレル入力ポート511は、8ビット幅の入力専用ポートを内蔵する。また、図4に示すメイン制御部41が備えるパラレル出力ポート513は、11ビット幅の出力専用ポートを内蔵する。シリアル通信回路512は、外部に対する入出力において非同期シリアル通信を行う回路である。
アドレスデコード回路514は、メイン制御部41の内部における各機能ブロックのデコードや、外部装置用のデコード信号であるチップセレクト信号のデコードを行うための回路である。チップセレクト信号により、メイン制御部41の内部回路、あるいは、周辺デバイスとなる外部装置を、選択的に有効動作させて、CPU41aからのアクセスが可能となる。
メイン制御部41は、例えば、ROM41bの記憶領域のうちプログラム等が格納されていない領域へのアクセスがあったとき、RAM41cの記憶領域のうちアクセス禁止が設定された領域へのアクセスがあったとき、すなわち正常な動作ではアクセスすることのないメモリ領域へのアクセスがあったときにイリーガルアクセスリセットを発生させることで、遊技の進行を不能化させるようになっており、ROM41bの未使用領域や動作とは関係しない領域、RAM41cの未使用領域等に不正なプログラムが格納された場合であっても、不正なプログラムが実行されてしまうことを防止できる。
また、メイン制御部41は、内部または外部によるリセットが発生することで起動することとなるが、この際、ROM41bに割り当てられ、割込処理の先頭アドレスが設定されるベクタテーブルに設定された値が、未使用を示す値であるか、プログラム等が実際に格納された領域を示す値であるか、を判定し、いずれの値でもない場合には起動しないようになっており、割込の発生等により本来意図していない処理が実行されてしまうことを事前に防止できる。
メイン制御部41は、パラレル出力ポート513を介してサブ制御部91に各種のコマンドを送信する。メイン制御部41からサブ制御部91へ送信されるコマンドは一方向のみで送られ、サブ制御部91からメイン制御部41へ向けてコマンドが送られることはない。また、本実施例では、パラレル出力ポート513を介してサブ制御部91に対してコマンドが送信される構成、すなわちコマンドがパラレル信号にて送信される構成であるが、シリアル通信回路512を介してサブ制御部91に対してコマンドを送信する構成、すなわちコマンドをシリアル信号にて送信する構成としても良い。
また、メイン制御部41は、遊技制御基板40に接続された各種スイッチ類の検出状態がパラレル入力ポート511から入力される。そしてメイン制御部41は、これらパラレル入力ポート511から入力される各種スイッチ類の検出状態に応じて段階的に移行するメイン処理を実行する。また、メイン制御部41は、割込の発生によりメイン処理に割り込んで割込処理を実行できるようになっている。本実施例では、タイマ回路509にてタイムアウトが発生したこと、すなわち一定時間間隔(本実施例では、約0.56ms)毎にタイマ割込処理(メイン)を実行する。また、メイン制御部41は、割込処理の実行中に他の割込を自動的に禁止するように設定されているとともに、複数の割込が同時に発生した場合には、予め定められた順位によって優先して実行する割込が設定されている。尚、割込処理の実行中に他の割込要因が発生し、割込処理が終了してもその割込要因が継続している状態であれば、割込処理が終了した時点で割込禁止が自動的に解除され、その時点で新たな割込が発生することとなる。尚、割込処理の実行中に他の割込を自動的に禁止するように設定され、割込処理が終了した時点で割込禁止が自動的に解除されるのではなく、割込処理の開始時にプログラムによって他の割込を禁止し、割込処理の終了時にプログラムによって割込禁止を解除するようにしても良い。
メイン制御部41は、メイン処理として遊技制御基板40に接続された各種スイッチ類の検出状態が変化するまでは制御状態に応じた処理を繰り返しループし、各種スイッチ類の検出状態の変化に応じて段階的に移行する処理を実行する。また、メイン制御部41は、一定時間間隔(本実施例では、約0.56ms)毎にタイマ割込処理(メイン)を実行する。尚、タイマ割込処理(メイン)の実行間隔は、メイン処理において制御状態に応じて繰り返す処理が一巡する時間とタイマ割込処理(メイン)の実行時間とを合わせた時間よりも長い時間に設定されており、今回と次回のタイマ割込処理(メイン)との間で必ず制御状態に応じて繰り返す処理が最低でも一巡することとなる。
演出制御基板90には、演出用スイッチ56が接続されており、この演出用スイッチ56の検出信号が入力されるようになっている。また、液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55等の演出装置が接続されており、これら演出装置は、演出制御基板90に搭載された後述のサブ制御部91による制御に基づいて駆動されるようになっている。尚、本実施例では、演出制御基板90に搭載されたサブ制御部91により、液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55等の演出装置の出力制御が行われる構成であるが、サブ制御部91とは別に演出装置の出力制御を直接的に行う出力制御部を演出制御基板90または他の基板に搭載し、サブ制御部91がメイン制御部41からのコマンドに基づいて演出装置の出力パターンを決定し、サブ制御部91が決定した出力パターンに基づいて出力制御部が演出装置の出力制御を行う構成としても良く、このような構成では、サブ制御部91及び出力制御部の双方によって演出装置の出力制御が行われることとなる。また、本実施例では、演出装置として液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55を例示しているが、演出装置は、これらに限られず、例えば、機械的に駆動する表示装置や機械的に駆動する役モノなどを演出装置として適用しても良い。
演出制御基板90は、サブCPU91a、ROM91b、RAM91c、I/Oポート91dを備えたマイクロコンピュータにより構成されて演出の制御を行うサブ制御部91と、演出制御基板90に接続された液晶表示器51の表示制御を行う表示制御回路92と、演出効果LED52と、リールLED55の駆動制御を行うLED駆動回路93と、スピーカ53、54からの音声出力制御を行う音声出力回路94と、電源投入時またはサブCPU91aからの初期化命令が一定時間入力されないときにサブCPU91aにリセット信号を与えるリセット回路95と、演出制御基板90に接続されたスイッチ類から入力された検出信号を検出するスイッチ検出回路96と、日付情報及び時刻情報を含む時間情報を出力する時計装置97と、スロットマシン1に供給される電源電圧を監視し、電圧低下を検出したときに、その旨を示す電圧低下信号をサブCPU91aに対して出力する電断検出回路98と、その他の回路等、が搭載されている。
サブCPU91aは、遊技制御基板40から送信されるコマンドを受けて、演出を行うための各種の制御を行うとともに、演出制御基板90に搭載された制御回路の各部を直接的または間接的に制御する。
リセット回路95は、遊技制御基板40においてメイン制御部41にシステムリセット信号を与えるリセット回路49よりもリセット信号を解除する電圧が低く定められており、電源投入時においてサブ制御部91は、メイン制御部41よりも早い段階で起動するようになっている。一方で、電断検出回路98は、遊技制御基板40においてメイン制御部41に電圧低下信号を出力する電断検出回路48よりも電圧低下信号を出力する電圧が低く定められており、電断時においてサブ制御部91は、メイン制御部41よりも遅い段階で停電を検知し、後述する電断処理(サブ)を行うこととなる。
サブ制御部91は、メイン制御部41と同様に、割込機能を備えており、メイン制御部41からのコマンド受信時に割込を発生させて、メイン制御部41から送信されたコマンドを取得し、バッファに格納するコマンド受信割込処理を実行する。また、サブ制御部91は、システムクロックの入力数が一定数に到達する毎、すなわち一定時間間隔(約2ms)毎に割込を発生させて後述するタイマ割込処理(サブ)を実行する。また、サブ制御部91は、メイン制御部41とは異なり、コマンドの受信に基づいて割込が発生した場合には、タイマ割込処理(サブ)の実行中であっても、当該処理に割り込んでコマンド受信割込処理を実行し、タイマ割込処理(サブ)の契機となる割込が同時に発生してもコマンド受信割込処理を最優先で実行するようになっている。また、サブ制御部91にも、停電時においてバックアップ電源が供給されており、バックアップ電源が供給されている間は、RAM91cに記憶されているデータが保持されるようになっている。
本実施例のスロットマシン1は、設定値に応じてメダルの払出率が変わるものである。詳しくは、後述する内部抽選、ナビストック抽選、上乗せ抽選等の遊技者に対する有利度に影響する抽選において設定値に応じた当選確率を用いることにより、メダルの払出率が変わるようになっている。設定値は1〜6の6段階からなり、6が最も払出率が高く、5、4、3、2、1の順に値が小さくなるほど払出率が低くなる。すなわち設定値として6が設定されている場合には、遊技者にとって最も有利度が高く、5、4、3、2、1の順に値が小さくなるほど有利度が段階的に低くなる。
設定値を変更するためには、設定キースイッチ37をonの状態としてからスロットマシン1の電源をonする必要がある。設定キースイッチ37をonの状態として電源をonすると、設定値表示器24にRAM41cから読み出された設定値が表示値として表示され、リセット/設定スイッチ38の操作による設定値の変更が可能な設定変更状態に移行する。設定変更状態において、リセット/設定スイッチ38が操作されると、設定値表示器24に表示された表示値が1ずつ更新されていく(設定値6からさらに操作されたときは、設定値1に戻る)。そして、スタートスイッチ7が操作されると表示値を設定値として確定する。そして、設定キースイッチ37がoffされると、確定した表示値(設定値)がメイン制御部41のRAM41cに格納され、遊技の進行が可能な状態に移行する。
尚、設定キースイッチ37がonの状態で電源投入された場合に、ドア開放検出スイッチ25により前面扉1bの開放に対応する検出がされていることを条件に、設定変更状態に移行する構成としても良く、このような構成とすることで、前面扉1bが開放されていない状態で不正に設定変更がされてしまうことを防止できる。また、前面扉1bの開放に対応する検出がされていることを条件に、設定変更状態に移行する構成においては、設定変更状態に移行後、ドア開放検出スイッチ25により前面扉1bの開放に対応する検出がされなくなっても、設定変更状態を維持することが好ましく、これにより、設定変更中に前面扉1bが一時的に閉じてしまっても、再度、設定変更状態に移行させるための操作を必要とせず、設定変更操作が煩雑となってしまうことがない。また、設定変更状態に移行後、スタートスイッチ7が操作されて設定値が確定した後、設定キースイッチ37がoffとなったときに、ドア開放検出スイッチ25により前面扉1bの開放に対応する検出がされていることを条件に、設定変更状態を終了して遊技の進行が可能な状態に移行する構成としても良く、このような構成においても、前面扉1bが開放されていない状態で不正に設定変更がされてしまうことを防止できる。
また、設定値を確認するためには、ゲーム終了後、賭数が設定されていない状態で設定キースイッチ37をonの状態とすれば良い。このような状況で設定キースイッチ37をonの状態とすると、設定値表示器24にRAM41cから読み出された設定値が表示されることで設定値を確認可能な設定確認状態に移行する。設定確認状態においては、ゲームの進行が不能であり、設定キースイッチ37をoffの状態とすることで、設定確認状態が終了し、ゲームの進行が可能な状態に復帰することとなる。
尚、ゲーム終了後、賭数が設定されていない状態で設定キースイッチ37がonの状態となったときに、ドア開放検出スイッチ25により前面扉1bの開放に対応する検出がされていることを条件に、設定確認状態に移行する構成としても良く、このような構成とすることで、前面扉1bが開放されていない状態で不正に設定値が確認されてしまうことを防止できる。また、前面扉1bの開放に対応する検出がされていることを条件に、設定確認状態に移行する構成においては、設定確認状態に移行後、ドア開放検出スイッチ25により前面扉1bの開放に対応する検出がされなくなっても、設定確認状態を維持することが好ましく、これにより、設定確認中に前面扉1bが一時的に閉じてしまっても、再度、設定確認状態に移行させるための操作を必要とせず、設定確認操作が煩雑となってしまうことがない。また、設定確認状態に移行後、スタートスイッチ7が操作されて設定値が確定した後、設定キースイッチ37がoffとなったときに、ドア開放検出スイッチ25により前面扉1bの開放に対応する検出がされていることを条件に、設定確認状態を終了して遊技の進行が可能な状態に復帰する構成としても良く、このような構成においても、前面扉1bが開放されていない状態で不正に設定値が確認されてしまうことを防止できる。
本実施例のスロットマシン1においては、メイン制御部41は、タイマ割込処理(メイン)を実行する毎に、電断検出回路48からの電圧低下信号が検出されているか否かを判定する停電判定処理を行い、停電判定処理において電圧低下信号が検出されていると判定した場合に、次回復帰時にRAM41cのデータが正常か否かを判定するためのデータを設定する電断処理(メイン)を実行する。
そして、メイン制御部41は、その起動時においてRAM41cのデータが正常であることを条件に、RAM41cに記憶されているデータに基づいてメイン制御部41の処理状態を電断前の状態に復帰させるが、RAM41cデータが正常でない場合には、RAM異常と判定し、RAM異常エラーコードをレジスタにセットしてRAM異常エラー状態に制御し、遊技の進行を不能化させるようになっている。
エラー状態は、リセット操作(リセット/設定スイッチ38またはリセットスイッチ23の操作)により解除される通常エラー状態と、前述した設定変更状態に移行し、新たな設定値が設定されるまで解除されることがない特殊エラー状態と、を含み、RAM異常エラー状態は、特殊エラー状態であり、一度RAM異常エラー状態に制御されると、設定変更状態に移行し、新たな設定値が設定されるまで解除されることがない。
また、サブ制御部91もタイマ割込処理(サブ)において電断検出回路98からの電圧低下信号が検出されているか否かを判定し、電圧低下信号が検出されていると判定した場合に、次回復帰時にRAM91cのデータが正常か否かを判定するためのデータを設定する電断処理(サブ)を実行する。
そして、サブ制御部91は、その起動時においてRAM91cのデータが正常であることを条件に、RAM91cに記憶されているデータに基づいてサブ制御部91の処理状態を電断前の状態に復帰させるが、RAM91cのデータが正常でない場合には、RAM異常と判定し、RAM91cを初期化するようになっている。この場合、メイン制御部41と異なり、RAM91cが初期化されるのみで演出の実行が不能化されることはない。
また、サブ制御部91は、その起動時においてRAM91cのデータが正常であると判断された場合でも、メイン制御部41から設定変更状態に移行した旨を示す後述の設定コマンドを受信した場合、起動後一定時間が経過してもメイン制御部41の制御状態が復帰した旨を示す後述の復帰コマンドも設定コマンドも受信しない場合にも、RAM91cを初期化するようになっている。この場合も、RAM91cが初期化されるのみで演出の実行が不能化されることはない。
次に、メイン制御部41のRAM41cの初期化について説明する。メイン制御部41のRAM41cの格納領域のうちの使用可能領域は、遊技RAM領域、未使用領域4、非遊技RAM領域に区分されている。さらに遊技RAM領域は、特別ワーク、重要ワーク、一般ワーク、未使用領域3、遊技スタック領域に区分されている。特別ワークは、設定値が変更されても初期化されないデータが格納されるワークであり、ソフトウェア乱数、設定値、遊技状態を示すデータ等が格納される。重要ワークは、特定の遊技状態(RB、BB)の終了時に初期化すると不都合のあるデータが格納されるワークであり、LEDの表示用データ、入力ポート、出力ポートの入出力データ、遊技時間の計時カウンタ等が格納される。一般ワークは、特定の遊技状態の終了時に初期化可能なデータが格納されるワークであり、停止図柄、メダルの払出枚数等が格納される。未使用領域3は、いずれのプログラムでも使用されないワークである。遊技スタック領域は、後述する遊技プログラムの実行中にメイン制御部41のレジスタから退避したデータが格納される領域である。
本実施例においてメイン制御部41は、設定キースイッチ37がonの状態での起動時でRAM41cのデータが破壊されているとき、設定キースイッチ37がonの状態での起動時でRAM41cのデータが破壊されていないとき、設定変更状態が終了されたとき、特定の遊技状態(RB、BB)の終了時、1ゲームの終了時、の5つからなる初期化条件が成立した際に、各初期化条件に応じて初期化される領域の異なる5種類の初期化を行う。
初期化0は、設定キースイッチ37がonの状態での起動時でRAM41cのデータが破壊されているときに行う初期化であり、初期化0では、使用可能領域全ての領域が初期化される。初期化1は、設定キースイッチ37がonの状態での起動時でRAM41cのデータが破壊されていないときに行う初期化であり、初期化1では、遊技RAM領域の特別ワーク以外の領域、非遊技RAM領域の全ての領域が初期化される。初期化2は、設定キースイッチ37がonの状態での起動で設定変更状態が終了された後に行う初期化であり、初期化2では、遊技RAM領域のうち特別ワーク及び遊技スタック領域(使用中)以外の領域が初期化される。初期化3は、特定の遊技状態の終了時に行う初期化であり、初期化3では、遊技RAM領域のうち一般ワーク、未使用領域3及び遊技スタック領域(未使用)が初期化される。初期化4は、1ゲーム終了時に行う初期化であり、初期化4では、遊技RAM領域の未使用領域3及び遊技スタック領域(未使用)が初期化される。尚、設定値や遊技状態を示すデータの格納領域は、特別ワークに割り当てられており、設定キースイッチ37がonの状態での起動時でRAM41cのデータが破壊されていないとき、すなわちRAM41cのデータが正常で設定変更される場合には、設定値や遊技状態を示すデータが保持されることとなる。また、後述のタイマカウンタの格納領域は、重要ワークに割り当てられており、ゲームの終了時や特定の遊技状態の終了時には初期化されることなく保持されることとなる。
また、本実施例のメイン制御部41は、上述の初期化実行する際には、初期化対象のRAMアドレスとして開始アドレスと終了アドレスが指定されることで、指定された開始アドレスから1バイト分のデータを0で上書きした後、当該1バイトのデータの論理和を計算し、計算結果が0であれば、次のアドレスに移動する処理を、指定された終了アドレスに達するまで繰り返し行うことで、指定されたアドレスの範囲のRAM領域を初期化する。
本実施例におけるメイン制御部41は、リセットの発生により起動すると、起動時設定を行う。起動時設定では、メイン制御部41が備えるステータスフラグを初期化する。ステータスフラグは、命令の演算結果や実行結果の状態を保持するデータであり、特に割込の禁止/許可を設定する割込マスタ許可フラグを含む。割込マスタ許可フラグの初期値は割込の禁止を示す値であるため、メイン制御部41は、割込が禁止された状態で起動することとなる。その後、後述のHWパラメータを参照して各種機能を設定した後、プログラム/データ領域に格納されたプログラムに従って、リセットが発生したときに、割込禁止の状態で起動するとともに、その後、最初に実行する初期設定処理を開始する。
メイン制御部41は、初期設定処理において、まず、割込を禁止に設定した後、起動時に設定キースイッチ37がonの状態であるか否かを判定し、起動時に設定キースイッチ37がonの状態であると判定された場合に、設定変更処理に移行し、設定変更処理の開始時にRAM41cの初期化を行う。この際、RAM41cのデータが正常であれば、特別ワークを保持してそれ以外の領域を初期化することで、設定変更後も変更前の制御状態(設定値や遊技状態等)の一部を保持することができる一方で、RAM41cのデータが正常でない場合には、特別ワークを含む使用可能領域の全ての領域を初期化することで、RAM41cのデータに異常を確実に解消することができるようになっている。
RAM41cを初期化した後、割込を許可に設定し、リセット/設定スイッチ38が操作れる毎に設定値を1〜6の範囲で1ずつ更新し、スタートスイッチ7のonが検出された後、設定キースイッチ37のonが検出されたときの設定値をRAM41cに格納して、設定変更処理を終了させる。
このように、メイン制御部41は、割込マスタ許可フラグの初期値が割込の禁止を示す値であり、割込が禁止された状態で起動し、起動後の初期設定処理においても、まず、割込を禁止に設定したうえで、その後の初期設定処理を実行するようになっているので、意図しない割込が発生することを防止できる。
また、メイン制御部41は、設定変更処理の終了後、遊技単位毎にゲームの進行に応じて段階的に処理を行うメイン処理を実行する。また、メイン処理では、遊技単位毎にRAM41cの初期化を行うとともに、設定変更処理の終了時にもRAM41cの初期化を行う。そして、設定変更処理の終了後、メイン処理においてRAM41cの初期化を行う処理の前の段階からメイン処理を開始するようになっており、設定変更処理の終了後のRAM41cの初期化と、遊技単位毎のRAM41cの初期化と、を共通の処理にて行うことが可能となる。
本実施例のスロットマシン1は、遊技状態(RT0〜RT4、RB)に応じて設定可能な賭数の規定数(本実施例では、RT0〜4においては3、RBにおいては2)が定められており、遊技状態に応じて定められた規定数の賭数が設定されたことを条件にゲームを開始させることが可能となる。尚、本実施例では、遊技状態に応じた規定数の賭数が設定された時点で、入賞ラインLNが有効化される。
そして、本実施例では、全てのリール2L、2C、2Rが停止した際に、有効化された入賞ライン(本実施例の場合、常に全ての入賞ラインが有効化されるため、以下では、有効化された入賞ラインを単に入賞ラインという)上に役と呼ばれる図柄の組合せが揃うと入賞となる。役は、同一図柄の組合せであっても良いし、異なる図柄を含む組合せであっても良い。
入賞となる役の種類は、遊技状態に応じて定められているが、大きく分けて、メダルの払い出しを伴う小役と、賭数の設定を必要とせずに次のゲームを開始可能となる再遊技役と、遊技者にとって有利な遊技状態への移行を伴う特別役と、がある。以下では、小役と再遊技役をまとめて一般役とも呼ぶ。遊技状態に応じて定められた各役の入賞が発生するためには、後述する内部抽選に当選して、当該役の当選フラグがRAM41cに設定されている必要がある。尚、これら各役の当選フラグのうち、小役及び再遊技役の当選フラグは、当該フラグが設定されたゲームにおいてのみ有効とされ、次のゲームでは無効となるが、特別役の当選フラグは、当該フラグにより許容された役の組合せが揃うまで有効とされ、許容された役の組合せが揃ったゲームにおいて無効となる。すなわち特別役の当選フラグが一度当選すると、例え、当該フラグにより許容された役の組合せを揃えることができなかった場合にも、その当選フラグは無効とされずに、次のゲームへ持ち越されることとなる。
以下、本実施例の内部抽選について説明する。内部抽選は、メイン制御部41が、上記した各役への入賞を許容するか否かを、全てのリール2L、2C、2Rの表示結果が導出される以前(具体的には、スタートスイッチ7の検出時)に決定するものである。内部抽選では、まず、スタートスイッチ7の検出時に内部抽選用の乱数値(0〜65535の整数)を取得する。詳しくは、乱数回路508bにより生成され、乱数回路508bの乱数値レジスタに格納されている値をRAM41cに割り当てられた抽選用ワークに設定する。そして、遊技状態に応じて定められた各役について、抽選用ワークに格納された数値データと、現在の遊技状態、賭数及び設定値に応じて定められた各役の判定値数に応じて入賞を許容するか否かの判定が行われる。
内部抽選では、内部抽選の対象となる役、現在の遊技状態及び設定値に対応して定められた判定値数を、内部抽選用の乱数値(抽選用ワークに格納された数値データ)に順次加算し、加算の結果がオーバーフローしたときに、当該役に当選したものと判定される。このため、判定値数の大小に応じた確率(判定値数/65536)で役が当選することとなる。
そして、いずれかの役の当選が判定された場合には、当選が判定された役に対応する当選フラグをRAM41cに割り当てられた内部当選フラグ格納ワークに設定する。内部当選フラグ格納ワークは、2バイトの格納領域にて構成されており、そのうちの上位バイトが、特別役の当選フラグが設定される特別役格納ワークとして割り当てられ、下位バイトが、一般役の当選フラグが設定される一般役格納ワークとして割り当てられている。詳しくは、特別役が当選した場合には、当該特別役が当選した旨を示す特別役の当選フラグを特別役格納ワークに設定し、一般役格納ワークに設定されている当選フラグをクリアする。また、一般役が当選した場合には、当該一般役が当選した旨を示す一般役の当選フラグを一般役格納ワークに設定する。尚、いずれの役及び役の組合せにも当選しなかった場合には、一般役格納ワークのみクリアする。
次に、リール2L、2C、2Rの停止制御について説明する。メイン制御部41は、リールの回転が開始したとき、及びリールが停止し、かつ未だ回転中のリールが残っているときに、ROM41bに格納されているテーブルインデックス及びテーブル作成用データを参照して、回転中のリール別に停止制御テーブルを作成する。そして、ストップスイッチ8L、8C、8Rのうち、回転中のリールに対応するいずれかの操作が有効に検出されたときに、該当するリールの停止制御テーブルを参照し、参照した停止制御テーブルの滑りコマ数に基づいて、操作されたストップスイッチ8L、8C、8Rに対応するリール2L、2C、2Rの回転を停止させる制御を行う。
本実施例では、滑りコマ数として0〜4の値が定められており、停止操作を検出してから最大4図柄を引き込んでリールを停止させることが可能である。すなわち停止操作を検出した停止操作位置を含め、最大5コマの範囲から図柄の停止位置を指定できるようになっている。また、1図柄分リールを移動させるのに1コマの移動が必要であるので、停止操作を検出してから最大4図柄を引き込んでリールを停止させることが可能であり、停止操作を検出した停止操作位置を含め、最大5図柄の範囲から図柄の停止位置を指定できることとなる。
本実施例では、いずれかの役に当選している場合には、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で当選している役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、当選していない役は、最大4コマの引込範囲で揃えずに停止させる制御が行われることとなる。特別役が前ゲーム以前から持ち越されている状態で小役が当選した場合など、特別役と小役が同時に当選している場合には、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で当選している小役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、入賞ライン上に最大4コマの引込範囲で当選している小役を引き込めない場合には、入賞ライン上に最大4コマの引込範囲で当選している特別役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、当選していない役は、4コマの引込範囲で揃えずに停止させる制御が行われることとなる。すなわちこのような場合には、特別役よりも小役を入賞ライン上に揃える制御が優先され、小役を引き込めない場合にのみ、特別役を入賞させることが可能となる。尚、特別役と小役を同時に引き込める場合には、小役のみを引き込み、特別役と同時に小役が入賞ライン上に揃わないようになる。また、特別役と小役が同時に当選している場合に、小役よりも特別役を入賞ライン上に揃える制御が優先され、特別役を引き込めない場合にのみ、小役を入賞ライン上に揃える制御を行っても良い。
また、本実施例では、特別役が前ゲーム以前から持ち越されている状態で再遊技役が当選した場合など、特別役と再遊技役が同時に当選している場合には、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で再遊技役の図柄を揃えて停止させる制御を行う。尚、この場合、再遊技役を構成する図柄または同時当選する再遊技役を構成する図柄は、リール2L、2C、2Rのいずれについても5図柄以内、すなわち4コマ以内の間隔で配置されており、4コマの引込範囲で必ず任意の位置に停止させることができるので、特別役と再遊技役が同時に当選している場合には、遊技者によるストップスイッチ8L、8C、8Rの操作タイミングに関わらずに、必ず再遊技役が揃って入賞することとなる。すなわちこのような場合には、特別役よりも再遊技役を入賞ライン上に揃える制御が優先され、必ず再遊技役が入賞することとなる。尚、特別役と再遊技役を同時に引き込める場合には、再遊技役のみを引き込み、再遊技役と同時に特別役が入賞ライン上に揃わないようになる。
尚、本実施例では、停止操作が行われたタイミング別の滑りコマ数を特定可能な停止制御テーブルを用いてリールの停止制御を行う構成であるが、停止可能な位置を特定可能な停止位置テーブルから停止位置を特定し、特定した停止位置にリールを停止させる停止制御を行う構成、停止制御テーブルや停止位置テーブルを用いずに、停止操作がされたタイミングで停止可能な停止位置を検索・特定し、特定した停止位置にリールを停止させる停止制御を行う構成、停止制御テーブルを用いた停止制御、停止位置テーブルを用いた停止制御、停止制御テーブルや停止位置テーブルを用いずに停止可能な停止位置を検索・特定することによる停止制御を併用する構成、停止制御テーブルや停止位置テーブルを一部変更して停止制御を行う構成としても良い。
本実施例においてメイン制御部41は、ゲームの開始後、リールの回転を開始させる毎にその時点、すなわちリールの回転を開始させた時点から経過した時間であるゲーム時間を計時するようになっており、1ゲームの終了後、メダルの投入等により規定数の賭数が設定され、ゲームの開始操作が有効となった状態でゲームの開始操作がされたときに、前のゲームのリール回転開始時点から計時を開始したゲーム時間が規定時間(本実施例では4.1秒)以上であれば、すなわち前のゲームのリール回転開始時点から規定時間が経過していれば、ウェイトを発生させず、その時点で当該ゲームにおける遊技のためのリールの回転を開始させる。一方、1ゲームの終了後、メダルの投入等により規定数の賭数が設定され、ゲームの開始操作が有効となった状態でゲームの開始操作がされたときに、前のゲームのリール回転開始時点から計時を開始したゲーム時間が規定時間未満であれば、すなわち前のゲームのリール回転開始時点から規定時間が経過していなければ、ウェイトを発生させて、その時点ではリールの回転を開始させず、前のゲームのリール回転開始時点から計時を開始したゲーム時間が規定時間に到達するまで待機し、規定時間に到達した時点でリールの回転を開始させる。
本実施例においてメイン制御部41は、遊技状態やエラーの発生状況などを示す外部出力信号を出力する制御を行う。これら外部出力信号は、外部出力基板1000、スロットマシン1が設置される遊技店(ホール)の情報提供端子板を介してホールコンピュータなどのホール機器に出力されるようになっている。
メイン制御部41は、賭数の設定に用いられたメダル数を示すメダルIN信号、入賞の発生により遊技者に付与されたメダル数を示すメダルOUT信号、遊技状態がRB(レギュラーボーナス)中の旨を示すRB中信号、遊技状態がBB(ビッグボーナス)中の旨を示すBB中信号、AT(アシストタイム)の開始を示すAT信号、前面扉1bが開放中の旨を示すドア開放信号、後述する設定変更モードに移行している旨を示す設定変更信号、メダルセレクタ29の異常を示す投入エラー信号、ホッパーユニット34の異常を示す払出エラー信号をそれぞれ出力する。
外部出力基板1000には、リレー回路、パラレル・シリアル変換回路、出力信号毎の端子が設けられ、情報提供端子板の回路と電気的に接続するための接続されるコネクタが設けられている。遊技制御基板40から出力された信号のうち、メダルIN信号、メダルOUT信号、RB中信号、BB中信号、AT信号は、リレー回路を介して、そのままパルス信号として情報提供端子板に出力される。これに対してドア開放信号、設定変更信号、投入エラー信号、払出エラー信号は、パラレル・シリアル変換回路にて、これらの信号を個別に識別可能なシリアル信号であるセキュリティ信号に変換されて情報提供端子板に出力される。
次に、メイン制御部41がサブ制御部91に対して送信するコマンドについて説明する。
本実施例では、メイン制御部41は、サブ制御部91に対して、投入枚数コマンド、クレジットコマンド、遊技状態コマンド、内部当選コマンド、リール加速情報コマンド、停止操作時コマンド、滑りコマ数コマンド、停止コマンド、遊技終了コマンド、入賞枚数コマンド、払出開始コマンド、払出終了コマンド、待機コマンド、打止コマンド、エラーコマンド、復帰コマンド、設定コマンド、設定確認開始コマンド、設定確認終了コマンド、ドアコマンド、操作検出コマンド、精算開始コマンド、精算終了コマンド、エラー開始コマンド、エラー解除コマンドを含む複数種類のコマンドを送信する。これらコマンドは、コマンドの種類を示す1バイトの種類データとコマンドの内容を示す1バイトの拡張データとからなり、サブ制御部91は、種類データからコマンドの種類を判別できるようになっている。
投入枚数コマンドは、メダルの投入枚数、すなわち賭数の設定に使用されたメダル枚数を特定可能なコマンドであり、ゲーム終了後(設定変更後)からゲーム開始までの状態であり、電断復帰時、または規定数の賭数が設定されていない状態においてメダルが投入されるか、MAXBETスイッチ6が操作されて賭数が設定されたときに送信される。また、投入枚数コマンドは、賭数の設定操作がなされたときに送信されるので、投入枚数コマンドを受信することで賭数の設定操作がなされたことを特定可能である。
クレジットコマンドは、クレジットとして記憶されているメダル枚数を特定可能なコマンドであり、ゲーム終了後(設定変更後)からゲーム開始までの状態であり、規定数の賭数が設定されている状態において、メダルが投入されてクレジットが加算されたときに送信される。
遊技状態コマンドは、当該ゲームの遊技状態を特定可能なコマンドであり、スタートスイッチ7が操作されてゲームが開始したときに送信される。
内部当選コマンドは、内部抽選結果を特定可能なコマンドであり、スタートスイッチ7が操作されてゲームが開始したときであって、遊技状態コマンドの後に送信される。内部当選コマンドは、第1の内部当選コマンドと、第2の内部当選コマンドと、を含み、内部抽選においてナビ報知の対象となる報知対象役が当選した場合に、ナビ報知が行われる状態(AT中、または非AT中でナビ報知が行われる場合)であれば、当選した報知対象役の種類も遊技者にとって有利な停止順も特定可能な第1の内部当選コマンドが送信され、ナビ報知が行われない状態(非AT中でナビ報知が行われない場合)であれば、当選した報知対象役の種類は特定可能であるが遊技者にとって有利な停止順は特定不能な第2の内部当選コマンドが送信される。
遊技状態コマンド、内部当選コマンドは、スタートスイッチ7が操作されてゲームが開始したときに送信されるので、これらコマンドを受信することで、スタートスイッチ7が操作されてゲームが開始したことを特定可能である。
停止操作時コマンドは、停止するリールが左リール、中リール、右リールのいずれのリールであるか、該当するリールの停止操作位置の領域番号を特定可能なコマンドであり、各リールの停止操作に伴う停止制御が行われる毎に送信される。
滑りコマ数コマンドは、停止するリールが左リール、中リール、右リールのいずれのリールであるか、該当するリールの停止操作がされてから停止するまでに移動する滑りコマ数を特定可能なコマンドであり、各リールの停止操作に伴う停止制御が行われる毎に、対応する停止操作時コマンドが送信された後に送信される。
停止コマンドは、停止するリールが左リール、中リール、右リールのいずれのリールであるか、該当するリールの停止位置の領域番号を特定可能なコマンドであり、各リールの停止操作に伴う停止制御が行われる毎に、対応する滑りコマ数コマンドが送信された後に送信される。
停止操作時コマンド、滑りコマ数コマンド、停止コマンドは、いずれも停止するリールが左リール、中リール、右リールのいずれのリールであるか、を特定可能であり、かつ各リールの停止操作に伴う停止制御が行われる毎に送信されるので、これらコマンドを受信することで、いずれかのリールの停止操作がされたこと及び停止するリールを特定可能である。
遊技終了コマンドは、遊技が終了された旨を特定可能なコマンドであり、遊技者が第3停止リールを停止させるためにストップスイッチを押下して、そのストップスイッチを離したときに送信される。
入賞枚数コマンドは、入賞ラインLNに揃った図柄の組合せ、入賞の有無、並びに入賞の種類、入賞時のメダルの払出枚数を特定可能なコマンドであり、遊技者が第3停止リールを停止させるためにストップスイッチを押下して、そのストップスイッチを離したときであり、遊技終了コマンドの送信後に送信される。
遊技終了コマンド、入賞枚数コマンドは、いずれも遊技者が第3停止リールを停止させるためにストップスイッチを押下して、そのストップスイッチを離したときに送信されるので、これらコマンドを受信することで、1ゲームを進行させるのに必要な全ての操作が終了したことを特定可能である。
払出開始コマンドは、メダルの払出開始を通知するコマンドであり、入賞によるメダルの払出が開始されたときに送信される。また、払出終了コマンドは、メダルの払出終了を通知するコマンドであり、入賞によるメダルの払出が終了したときに送信される。
精算開始コマンドは、クレジットまたは賭数に用いられたメダルの精算処理の開始を示すコマンドであり、精算処理を開始する際に送信され、精算終了コマンドは、精算処理の終了を示すコマンドであり、精算処理の終了時に送信される。
待機コマンドは、待機状態へ移行する旨を示すコマンドであり、1ゲーム終了後、賭数が設定されずに終了推定時間(本実施例では60秒)経過して待機状態に移行するとき、精算終了コマンドが送信された後に送信される。
打止コマンドは、打止状態の発生または解除を示すコマンドであり、BB終了後、エンディング演出待ち時間が経過した時点で打止状態の発生を示す打止コマンドが送信され、リセット操作がなされて打止状態が解除された時点で、打止状態の解除を示す打止コマンドが送信される。
エラー開始コマンドは、エラー処理の開始及びエラーの種類を示すコマンドであり、エラー処理を開始する際に送信され、エラー解除コマンドは、エラー処理の終了を示すコマンドであり、リセット操作がなされてエラー状態が解除されたときに送信される。
復帰コマンドは、メイン制御部41が電断前の制御状態に復帰した旨を示すコマンドであり、メイン制御部41の起動時において電断前の制御状態に復帰した際に送信される。
設定コマンドは、設定変更状態の開始または終了、設定変更後設定値を示すコマンドであり、設定変更状態に移行する時点で設定変更状態の開始を示す設定コマンドが送信され、設定変更状態の終了時に設定変更状態の終了及び設定変更後の設定値を示す設定コマンドが送信される。また、設定変更状態への移行に伴ってメイン制御部41の制御状態が初期化されるため、設定開始を示す設定コマンドによりメイン制御部41の制御状態が初期化されたことを特定可能である。
設定確認開始コマンドは、設定確認状態の開始を示すコマンドであり、設定確認状態に移行する際に送信され、設定確認終了コマンドは、設定確認状態の終了を示すコマンドであり、設定確認状態の終了時に送信される。
ドアコマンドは、ドア開放検出スイッチ25の検出状態、すなわちon(開放状態)/off(閉状態)を示すコマンドであり、電源投入時、1ゲーム終了時(ゲーム終了後、次のゲームの賭数の設定が開始可能となる前までの時点)、ドア開放検出スイッチ25の検出状態が変化(onからoff、offからon)した時に送信される。
操作検出コマンドは、操作スイッチ類(MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8R)の検出状態(on/off)を示すコマンドであり、一定時間毎に送信される。
これらコマンドのうちドアコマンド及び操作検出コマンド以外のコマンドは、メイン処理において生成され、RAM41cに設けられたコマンドキューに一時格納され、その後のタイマ割込処理(メイン)のコマンド送信処理おいて送信される。
一方、ドアコマンドは、タイマ割込処理(メイン)のドア監視処理において生成され、RAM41cに設けられたコマンドキューに一時格納され、その後のタイマ割込処理(メイン)のコマンド送信処理おいて送信される。
また、操作検出コマンドは、タイマ割込処理(メイン)のコマンド送信処理が10回実行される毎に、スイッチの検出状態に基づいて生成されるとともに、RAM41cに設けられたコマンドキューに一時格納され、その後のタイマ割込処理(メイン)のコマンド送信処理おいて送信される。
次に、メイン制御部41が演出制御基板90に対して送信するコマンドに基づいてサブ制御部91が実行する演出の制御について説明する。サブ制御部91は、メイン制御部41からのコマンドを受信した際に、コマンド受信割込処理を実行する。コマンド受信割込処理では、RAM91cに設けられた受信用バッファに、コマンド伝送ラインから取得したコマンドを格納する。
サブ制御部91は、タイマ割込処理(サブ)において、受信用バッファに未処理のコマンドが格納されているか否かを判定し、未処理のコマンドが格納されている場合には、そのうち最も早い段階で受信したコマンドに基づいてROM91bに格納された制御パターンテーブルを参照し、制御パターンテーブルに登録された制御内容に基づいて液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55等の各種演出装置の出力制御を行う。制御パターンテーブルには、複数種類の演出パターン毎に、コマンドの種類に対応する液晶表示器51の表示パターン、演出効果LED52の点灯態様、スピーカ53、54の出力態様、リールLED55の点灯態様等、これら演出装置の制御パターンが登録されており、サブ制御部91は、コマンドを受信した際に、制御パターンテーブルの当該ゲームにおいてRAM91cに設定されている演出パターンに対応して登録された制御パターンのうち、受信したコマンドの種類に対応する制御パターンを参照し、当該制御パターンに基づいて演出装置の出力制御を行う。これにより演出パターン及び遊技の進行状況に応じた演出が実行されることとなる。
尚、サブ制御部91は、あるコマンドの受信を契機とする演出の実行中に、新たにコマンドを受信した場合には、実行中の制御パターンに基づく演出を中止し、新たに受信したコマンドに対応する制御パターンに基づく演出を実行するようになっている。すなわち演出が最後まで終了していない状態でも、新たにコマンドを受信すると、受信した新たなコマンドが新たな演出の契機となるコマンドではない場合を除いて実行していた演出はキャンセルされて新たなコマンドに基づく演出が実行されることとなる。
演出パターンは、内部当選コマンドを受信した際に、内部当選コマンドが示す内部抽選の結果に応じた選択率にて選択され、RAM91cに設定される。演出パターンの選択率は、ROM91bに格納された演出テーブルに登録されており、サブ制御部91は、内部当選コマンドを受信した際に、内部当選コマンドが示す内部抽選の結果に応じて演出テーブルに登録されている選択率を参照し、その選択率に応じて複数種類の演出パターンからいずれかの演出パターンを選択し、選択した演出パターンを当該ゲームの演出パターンとしてRAM91cに設定するようになっており、同じコマンドを受信しても内部当選コマンドの受信時に選択された演出パターンによって異なる制御パターンが選択されるため、結果として演出パターンによって異なる演出が行われることがある。
本実施例におけるスロットマシン1では、メイン制御部41により、内部抽選結果に応じて遊技者にとって有利となる停止順を遊技補助表示器12の点灯態様により報知するナビ報知を実行可能な報知期間となるアシストタイム(以下、ATという)に制御可能となっている。
メイン制御部41は、ATに制御している場合には、遊技状態に応じたナビ対象役に当選することにより、ナビ報知を実行するとともに、サブ制御部91に対して押し順コマンドを送信することで、液晶表示器51等を用いたナビ演出を実行させる。また、本実施例においてメイン制御部41は、ATに制御していない通常状態であっても、一定の条件を満たすことにより、ナビ報知を実行し、ナビ演出を実行させることが可能である。
図6は、メイン制御部41が用いるメモリ領域のアドレスマップである。図6に示すように、メイン制御部41が用いるメモリ領域は、ROM41bに割り当てられたメモリ領域(0000H〜7FFFH)と、RAM41cに割り当てられたメモリ領域(F000H〜FFFFH)と、を含む。
ROM41bのメモリ領域は、プログラム及び固定データが格納されるプログラム/データ領域(0000H〜26FFH)と、プログラムのタイトル、バージョン等の任意のデータを設定可能なROMコメント領域(2700H〜277FH)と、後述するCALLV命令のサブルーチンの上位アドレス及びタイマ割込処理(メイン)の先頭アドレスが設定されるベクタテーブル領域(2780H〜27A7H)と、メイン制御部41の内部機能をハードウェア的に設定するためのパラメータが設定されるHWパラメータ領域(27A8H〜27FFH)と、アクセスが禁止される未使用領域(2800H〜7FFFH)を含む。
ROM41bにおけるHWパラメータ領域に設定されるパラメータは、プログラム/データ領域で使用するROM領域の最終アドレス(HPRGEND)、アクセス禁止するRAM領域の開始アドレス(HRAMSTAT)及び最終アドレス(HRAMEND)を含む。
RAM41cのメモリ領域は、ワークとして使用可能な使用可能領域(F000H〜F400H)と、メイン制御部41に搭載されている各機能を制御するためのレジスタ群が格納される内部機能レジスタ領域(F4B0H〜F6FFH)と、アクセスが禁止される未使用領域(F401H〜F4AFH、F700H〜FFFFH)と、を含む。
図7は、メイン制御部41のROM41bにおけるプログラム/データ領域及びRAM41cにおける使用可能領域のアドレスマップである。
図7(a)に示すように、ROM41bにおけるプログラム/データ領域は、遊技の進行に係わる遊技プログラムが記憶される遊技プログラム領域と、遊技プログラムが用いる遊技データが記憶される遊技データ領域と、未使用領域1と、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、非遊技プログラムが用いる非遊技データが記憶される非遊技データ領域と、未使用領域2と、を含む。
尚、遊技の進行とは、遊技を構成する一連のプロセスを進行させることであり、スロットマシンであれば、賭数を設定してゲームを開始可能とする段階、ゲームを開始してリールを回転させる段階、リールを停止させて表示結果を導出させる段階、表示結果に応じてメダル等の価値を付与する段階、を進行させることである。
遊技の進行に係わる遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムと、がそれぞれ別個に割り当てられているとともに、遊技プログラム領域及び非プログラム領域のうちROM41bの記憶領域において後方に割り当てられていた非プログラム領域の手前の領域は、少なくとも16バイト以上の未使用領域1が割り当てられているため、遊技の進行に係わる遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムと、を記憶領域の違いに応じて容易に特定することができる。
また、遊技プログラム領域と遊技データ領域、非遊技プログラム領域と非遊技データ領域はそれぞれ連続する領域に割り当てられる一方、遊技の進行に係わる遊技プログラム領域及び遊技データ領域と、遊技の進行に係わらない非遊技プログラム及び非遊技データ領域と、が少なくとも16バイト以上の未使用領域1を挟んで連続しない領域に割り当てられているため、遊技の進行に係わる遊技プログラム領域及び遊技データ領域と、遊技の進行に係わらない非遊技プログラム及び非遊技データ領域と、を記憶領域の違いに応じて容易に特定することができる。
尚、上記において記憶領域の前後とは、記憶領域に割り当てられたアドレス値の大小関係であり、アドレスが小さい方が前方となり、アドレスが大きい方が後方となる。このため、一の記憶領域よりも後方に割り当てられた記憶領域とは、一の記憶領域よりもアドレス値が大きい記憶領域が該当し、一の記憶領域よりも前方に割り当てられた記憶領域とは、一の記憶領域よりもアドレス値が小さい記憶領域が該当する。
また、非遊技プログラム領域よりも後方に遊技プログラムが割り当てられ、非遊技プログラム領域よりも後方に割り当てられた遊技プログラムの手前に未使用領域が割り当てられた構成としても良く、このような構成においても遊技の進行に係わる遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムと、を記憶領域の違いに応じて容易に特定することができる。
また、遊技プログラム領域と、非遊技プログラム領域と、が未使用領域1を挟んで隣接する領域に割り当てられる構成としても良く、このような構成であっても、遊技の進行に係わる遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムと、を記憶領域の違いに応じて容易に特定することができる。
また、ROM41bのプログラム/データ領域の未使用領域1、2には、全ての領域に0値が格納されているため、遊技プログラム領域及び遊技データ領域と、非遊技プログラム領域及び非遊技データと、未使用領域1、2と、を容易に区別することができるとともに、未使用領域1、2に不正なデータが格納されている場合でも容易に発見することができる。
尚、ROM41bのプログラム/データ領域の未使用領域1、2における全ての領域に1が格納される構成としても良く、このような構成とした場合でも、遊技プログラム領域及び遊技データ領域と、非遊技プログラム領域及び非遊技データと、未使用領域1、2と、を容易に区別することができるとともに、未使用領域1、2に不正なデータが格納されている場合でも容易に発見することができる。
また、遊技プログラム領域と、非遊技プログラム領域と、が別個の領域に割り当たられた構成であれば、遊技プログラム領域と、非遊技プログラム領域と、が隣接する領域にわら当てられる構成としても良く、このような構成であっても遊技の進行に係わる遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムと、を記憶領域の違いに応じて容易に特定することができる。
また、遊技プログラム領域及び非遊技プログラム領域はいずれも、アドレスを2進数表記した場合に下位4桁の値が同じ0のアドレス(0H)から開始するようになっており、ROM41bのプログラム/データ領域のうち遊技の進行に係る遊技プログラム領域と、遊技の進行に係わらない非遊技プログラム領域と、を他の領域と容易に区別することができる。
また、遊技プログラム領域及び非遊技プログラム領域はいずれも、アドレスを2進数表記した場合に下位4桁の値が同じ0のアドレスから開始するだけでなく、16進数表記した場合に下位1桁の値が同じ0のアドレス(0H)から開始するので、アドレスを2進数表記した場合だけでなく、16進数表記した場合にも遊技プログラム領域と、非遊技プログラム領域と、を他の領域と容易に区別することができる。
尚、遊技プログラム領域及び非遊技プログラム領域がいずれも、アドレスを2進数表記したか、16進数表記したか、に関わらず、下位N(Nは1以上の自然数)桁が同じ値のアドレスから開始する構成であれば、遊技プログラム領域と、非遊技プログラム領域と、を他の領域と容易に区別することが可能であり、例えば、下位N(Nは1以上の自然数)桁の値が同じ1のアドレスから開始する構成でも同様の効果が得られるものである。
図7(b)に示すように、RAM41cの使用可能領域は、遊技プログラムがワークとして用いる遊技RAM領域と、非遊技プログラムがワークとして用いる非遊技RAM領域と、未使用領域4と、を含んでおり、遊技RAM領域には、特別ワークと、重要ワークと、一般ワークと、未使用領域3と、遊技プログラムがデータを退避する遊技スタック領域と、が含まれ、非遊技RAM領域には、遊技プログラムが参照可能な領域と、遊技プログラムが参照不可能な領域と、非遊技プログラムがデータを退避する非遊技スタック領域と、が含まれる。尚、本実施例では、遊技スタック領域と非遊技スタック領域とをそれぞれ異なる領域に個別に備える構成であるが、遊技プログラム及び非遊技プログラムが共用する一のスタック領域を備える構成としても良い。
未使用領域3は、遊技プログラム及び非遊技プログラムのいずれも使用しない領域であり、予め定められた容量の遊技RAM領域に対して余剰となった領域である。
また、未使用領域4は、遊技プログラム及び非遊技プログラムのいずれも使用しない16バイト以上の領域である。遊技RAM領域と、非遊技RAM領域とが、未使用領域4を挟んで連続しない領域に割り当てられているため、遊技の進行に係わる遊技プログラムが用いる遊技RAM領域と、遊技の進行に係わらない非遊技プログラムが用いる非遊技RAM領域と、を記憶領域の違いに応じて容易に特定することができる。
以下では、遊技プログラム領域、遊技データ領域及び遊技RAM領域をまとめて遊技領域と称す場合があり、非遊技プログラム領域、非遊技データ領域及び非遊技RAM領域をまとめて非遊技領域と称す場合がある。また、未使用領域1及び未使用領域2、未使用領域3及び未使用領域4をまとめて未使用領域と称す場合がある。
メイン制御部41は、HWパラメータ領域に設定されるパラメータに基づいて、ROM41bのプログラム/データ領域のうちアクセスが禁止された領域へのアクセスがあったとき、RAM41cの使用可能領域のうちアクセスが許可に設定されていない領域へのアクセスがあったとき、ROM41bのうちプログラム/データ領域以外の領域へのアクセスがあったとき、RAM41cのうち使用可能領域以外の領域へのアクセスがあったときに、すなわち正常な動作ではアクセスすることのないメモリ領域へのアクセスがあったときにイリーガルアクセスリセットを発生させることで、遊技の進行を不能化させるので、ROM41bの未使用領域や動作とは関係しない領域、RAM41cの未使用領域等に不正なプログラムが格納された場合であっても、不正なプログラムが実行されてしまうことを防止できる。
特に本実施例では、ROM41bのうちプログラムによってアクセスが許可されたプログラム/データ領域に遊技プログラム領域と、非遊技プログラム領域と、が割り当てられ、遊技プログラム領域よりも後方の非遊技プログラム領域の手前の領域に未使用領域1が割り当てられるとともに、HWパラメータ領域に設定されるパラメータに基づいて、プログラム/データ領域のうち遊技プログラム領域の先頭アドレスから非遊技プログラムの最終アドレスまでの領域を含む一かたまりの領域(遊技プログラム領域から非遊技データ領域までの領域)へのアクセスを一括して許可に設定する一方で、それ以外の領域、すなわちプログラム/データ領域のうち遊技プログラムや遊技データ、非遊技プログラム、非遊技データが格納されていない非遊技データよりも後の領域へのアクセスが禁止されるため、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。
また、ROM41bのうちプログラムによってアクセスが許可されたプログラム/データ領域において非遊技プログラム領域よりも後方に遊技領域が割り当てられ、非遊技プログラム領域よりも後方の遊技プログラム領域の手前の領域に未使用領域が割り当てられるとともに、HWパラメータ領域に設定されるパラメータに基づいて、プログラム/データ領域のうち非遊技プログラム領域の先頭アドレスから遊技プログラムの最終アドレスまでの領域を含む一かたまりの領域へのアクセスを一括して許可に設定する一方で、それ以外の領域へのアクセスが禁止されるようにしても、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。
尚、プログラム/データ領域に遊技プログラム領域と、非遊技プログラム領域と、が割り当てられ、遊技プログラム領域よりも後方の非遊技プログラム領域の手前の領域に未使用領域1が割り当てられるとともに、プログラム/データ領域のうち遊技プログラム領域を含む一かたまりの領域(遊技プログラム領域から遊技データ領域までの領域)、非遊技プログラムを含む一かたまりの領域(非遊技プログラム領域から非遊技データ領域までの領域)へのアクセスをそれぞれ許可に設定し、他の領域へのアクセスを禁止する構成としても良く、このような構成とした場合でも、プログラム/データ領域のうち遊技プログラムや非遊技プログラムが格納されていない領域へのアクセスが禁止されるため、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。また、ROM41bのうちプログラムによってアクセスが許可されたプログラム/データ領域において非遊技プログラム領域よりも後方に遊技領域が割り当てられ、非遊技プログラム領域よりも後方の遊技プログラム領域の手前の領域に未使用領域が割り当てられるとともに、プログラム/データ領域のうち遊技プログラム領域を含む一かたまりの領域(遊技プログラム領域から遊技データ領域までの領域)、非遊技プログラムを含む一かたまりの領域(非遊技プログラム領域から非遊技データ領域までの領域)へのアクセスをそれぞれ許可に設定し、他の領域へのアクセスを禁止する構成としても良く、このような構成とした場合でも、プログラム/データ領域のうち遊技プログラムや非遊技プログラムが格納されていない領域へのアクセスが禁止されるため、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。
また、上記では、プログラム/データ領域においてアクセスを許可する領域そのものを設定する構成であるが、プログラム/データ領域においてアクセスを禁止する領域を設定することで、間接的にアクセスを許可する領域が設定される構成としても良い。
メイン制御部41は、HWパラメータ領域に設定されるパラメータに基づいて、プログラム走行を許可する指定エリア以外の領域においてユーザプログラムが実行された場合、すなわち正常な動作ではユーザプログラムが実行されることのない領域でユーザプログラムが実行された場合に、IAT回路506aがIAT発生信号を出力することで、遊技の進行を不能化させるので、ROM41bの未使用領域や動作とは関係しない領域、RAM41cの未使用領域等に不正なプログラムが格納された場合であっても、不正なプログラムが実行されてしまうことを防止できる。
特に本実施例では、ROM41bのうちプログラムによってアクセスが許可されたプログラム/データ領域に遊技プログラム領域と、非遊技プログラム領域と、が割り当てられ、遊技プログラム領域よりも後方の非遊技プログラム領域の手前の領域に未使用領域1が割り当てられるとともに、HWパラメータ領域に設定されるパラメータに基づいて、プログラム/データ領域のうち遊技プログラム領域、非遊技プログラム領域の各々について、IAT回路506aがプログラム走行を許可する指定エリアとして設定する一方で、それ以外の領域、すなわちプログラム/データ領域のうち遊技プログラムや非遊技プログラムが格納されていない領域でのプログラム走行が禁止されるため、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。
また、ROM41bのうちプログラムによってアクセスが許可されたプログラム/データ領域において非遊技プログラム領域よりも後方に遊技領域が割り当てられ、非遊技プログラム領域よりも後方の遊技プログラム領域の手前の領域に未使用領域が割り当てられるとともに、HWパラメータ領域に設定されるパラメータに基づいて、プログラム/データ領域のうち遊技プログラム領域、非遊技プログラム領域の各々について、IAT回路506aがプログラム走行を許可する指定エリアとして設定する一方で、それ以外の領域でのプログラム走行が禁止されるようにしても、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。
尚、プログラム/データ領域に遊技プログラム領域と、非遊技プログラム領域と、が割り当てられ、遊技プログラム領域よりも後方の非遊技プログラム領域の手前の領域に未使用領域1が割り当てられるとともに、HWパラメータ領域に設定されるパラメータに基づいて、プログラム/データ領域のうち遊技プログラム領域の先頭アドレスから非遊技プログラムの最終アドレスまでの領域を含む一かたまりの領域(遊技プログラム領域から非遊技データ領域までの領域)について、IAT回路506aがプログラム走行を許可する指定エリアとして一括して設定し、他の領域でのプログラム走行が禁止される構成としても良く、このような構成とした場合でも、プログラム/データ領域のうち遊技プログラムや非遊技プログラムが格納されていない領域でのプログラム走行が禁止されるため、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。また、ROM41bのうちプログラムによってアクセスが許可されたプログラム/データ領域において非遊技プログラム領域よりも後方に遊技領域が割り当てられ、非遊技プログラム領域よりも後方の遊技プログラム領域の手前の領域に未使用領域が割り当てられるとともに、HWパラメータ領域に設定されるパラメータに基づいて、プログラム/データ領域のうち非遊技プログラム領域の先頭アドレスから遊技プログラムの最終アドレスまでの領域を含む一かたまりの領域(遊技プログラム領域から非遊技データ領域までの領域)について、IAT回路506aがプログラム走行を許可する指定エリアとして一括して設定し、他の領域でのプログラム走行が禁止されるようにしても、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。
また、上記では、プログラム/データ領域においてプログラム走行を許可する領域そのものを設定する構成であるが、プログラム/データ領域においてプログラム走行を禁止する領域を設定することで、間接的にプログラム走行を許可する領域が設定される構成としても良い。
メイン制御部41が実行するプログラムは、プログラム全体の進行を管理するメインルーチンと、他のプログラムの実行中に呼び出されるサブルーチンと、を含む。
また、メイン制御部41にプログラム/データ領域に格納されたプログラムを実行させる命令として、CALL命令を含む。
CALL命令は、メインルーチンまたはサブルーチンにおいて指定されたアドレスに格納されたサブルーチンを呼び出して実行させる命令である。メイン制御部41は、CALL命令によりサブルーチンを呼び出す場合には、呼び出し元のアドレスをスタック領域に格納し、指定されたアドレスに格納されたサブルーチンを呼び出して実行する。そして、当該サブルーチンの終了後、スタック領域に格納されている呼び出し元のアドレス、すなわちCALL命令を実行した呼び出し元のメインルーチンまたはサブルーチンのプログラムに復帰する。
また、CALL命令は、通常のCALL命令と、特殊なCALL命令であるCALLV命令と、を含む。通常のCALL命令は、上位アドレス及び下位アドレスの双方を指定して指定された上位アドレス及び下位アドレスによりアドレスを特定してサブルーチンを呼び出す命令であるのに対して、CALLV命令は、下位アドレスのみ指定することで、ROM41bのベクタテーブル領域に予め設定された上位アドレス及び指定された下位アドレスによりアドレスを特定してサブルーチンを呼び出す命令であり、通常のCALL命令に比較して少ないデータ量でサブルーチンを呼び出すことが可能となる。
RST命令は、予め定められた複数の特定アドレスに対応する値を指定することで、指定された値に対応する特定アドレスに格納されたサブルーチンを呼び出して実行させる命令であり、上記した通常のCALL命令やCALLV命令に比較して少ないデータ量でサブルーチンを呼び出すことが可能となる。メイン制御部41は、RST命令によりサブルーチンを呼び出す場合には、呼び出し元のアドレスをスタック領域に格納し、指定された値に対応する特定アドレスに格納されたサブルーチンを呼び出して実行する。そして、当該サブルーチンの終了後、スタック領域に格納されている呼び出し元のアドレス、すなわちRST命令を実行した呼び出し元のメインルーチンまたはサブルーチンに復帰する。
ジャンプ命令は、メインルーチンまたはサブルーチンにおいて指定されたアドレスに格納されたプログラムに移動する命令である。メイン制御部41は、ジャンプ命令により指定されたアドレスに格納されたプログラムに移動し、移動先のプログラムを実行する。この場合には、CALL命令やRST命令と異なり、移動後のプログラムが終了しても移動元のプログラムに復帰することはない。
また、メイン制御部41にプログラム/データ領域に格納されたデータを読み出す命令としてLD命令を含む。LD命令は、メインルーチンまたはサブルーチンにおいて指定されたアドレスに格納されたデータを指定されたレジスタに読み出す命令である。メイン制御部41は、LD命令により指定されたアドレスに格納されたデータを読み出し、LD命令により指定されたレジスタに読み出したデータを格納する。
ROM41bに格納された遊技プログラムのうち特に使用頻度の高いサブルーチンは、ROM41bの遊技プログラム領域のうち先頭アドレスが特定値(例えば00H)となる領域に格納されている。一方、ROM41bのベクタテーブル領域には、CALLV命令で呼び出すサブルーチンの上位アドレスとして特定値が設定されている。そして、メイン制御部41は、先頭アドレスの上位アドレスが特定値となるサブルーチンを呼び出すときに、CALLV命令を用いて下位アドレスのみ指定することで、上位アドレスとしてベクタテーブル領域に設定された特定値を特定し、下位アドレスとして指定された下位アドレスを特定し、上位及び下位を合わせたアドレスに格納されたサブルーチンを呼び出して実行する。このため、遊技プログラムのうち特に使用頻度の高いサブルーチンを呼び出す際に用いるアドレスの一部を構成する上位アドレスが特定値として予めベクタテーブルに設定されており、ベクタテーブルに設定された特定値に基づいてアドレスが特定されるため、上位アドレス及び下位アドレスの双方を指定してプログラムを呼び出す通常のCALL命令に比較して少ないデータ量にてサブルーチンを呼び出すことが可能となり、これらのサブルーチンを呼び出す際にアドレスを指定するためのプログラムの無駄を削減することができる。
尚、ROM41bに格納された非遊技プログラムのうち特に使用頻度の高いサブルーチンを、ROM41bの非遊技プログラム領域のうち先頭アドレスが特定値となる領域に格納するとともに、ROM41bのベクタテーブル領域に、CALLV命令で呼び出すサブルーチンの上位アドレスとして特定値を設定し、メイン制御部41が先頭アドレスの上位アドレスが特定値となるサブルーチンを呼び出すときに、CALLV命令を用いて下位アドレスのみ指定することで、これらのサブルーチンを呼び出して実行する構成とした場合でも、上位アドレス及び下位アドレスの双方を指定してプログラムを呼び出す通常のCALL命令に比較して少ないデータ量にてサブルーチンを呼び出すことが可能となり、これらのサブルーチンを呼び出す際にアドレスを指定するためのプログラムの無駄を削減することができる。
また、CALLV命令で呼び出す際に用いる上位アドレスを、ベクタテーブル領域ではなく、メイン制御部41の特定のレジスタに設定する構成としても良い。
また、CALLV命令に限らず、アドレスの一部が、ベクタテーブル領域に格納された値、特定のレジスタに設定された値等を用いて特定され、アドレスの残りの部分を指定することで、サブルーチンの格納アドレスが特定可能となる特殊なCALL命令を用いる構成であれば、サブルーチンを呼び出す際にアドレスを指定するためのプログラムの無駄を削減することができる。また、ベクタテーブル領域を構成する複数の領域に、それぞれアドレスよりもデータ量の小さい識別値を割り当て、これら複数の領域にそれぞれサブルーチンの格納アドレスを設定するとともに、識別値を指定することで、識別値に対応する領域に格納されたサブルーチンの格納アドレスを特定可能となる特殊なCALL命令を用いる構成であっても、サブルーチンを呼び出す際にアドレスを指定するためのプログラムの無駄を削減することができる。
また、ROM41bに格納された遊技データのうち特に使用頻度の高い遊技データを、ROM41bの遊技データ領域のうち先頭アドレスが特定値となる領域に格納するとともに、ROM41bのベクタテーブル領域に、特殊なLD命令で読み出すデータの上位アドレスとして特定値を設定し、メイン制御部41が先頭アドレスの上位アドレスが特定値となる遊技データを呼び出すときに、特殊なLD命令を用いて下位アドレスのみ指定することで、これらの遊技データを読み出す構成とした場合でも、上位アドレス及び下位アドレスの双方を指定してデータを読み出す通常のLD命令に比較して少ないデータ量にて遊技データを呼び出すことが可能となり、これらの遊技データを読み出す際にアドレスを指定するためのプログラムの無駄を削減することができる。
また、ROM41bに格納された非遊技データのうち特に使用頻度の高い非遊技データを、ROM41bの非遊技データ領域のうち先頭アドレスが特定値となる領域に格納するとともに、ROM41bのベクタテーブル領域に、特殊なLD命令で読み出すデータの上位アドレスとして特定値を設定し、メイン制御部41が先頭アドレスの上位アドレスが特定値となる非遊技データを呼び出すときに、特殊なLD命令を用いて下位アドレスのみ指定することで、これらの非遊技データを読み出す構成とした場合でも、上位アドレス及び下位アドレスの双方を指定してデータを読み出す通常のLD命令に比較して少ないデータ量にて非遊技データを呼び出すことが可能となり、これらの非遊技データを読み出す際にアドレスを指定するためのプログラムの無駄を削減することができる。
また、これらの場合でも特殊なLD命令で呼び出す際に用いる上位アドレスを、ベクタテーブル領域ではなく、メイン制御部41の特定のレジスタに設定する構成としても良い。
また、アドレスの一部が、ベクタテーブル領域に格納された値、特定のレジスタに設定された値等を用いて特定され、アドレスの残りの部分を指定することで、データの格納アドレスが特定可能となる特殊なLD命令を用いる構成であれば、データを読み出す際にアドレスを指定するためのプログラムの無駄を削減することができる。また、ベクタテーブル領域を構成する複数の領域に、それぞれアドレスよりもデータ量の小さい識別値を割り当て、これら複数の領域にそれぞれデータの格納アドレスを設定するとともに、識別値を指定することで、識別値に対応する領域に格納されたデータの格納アドレスを特定可能となる特殊なLD命令を用いる構成であっても、データを読み出す際にアドレスを指定するためのプログラムの無駄を削減することができる。
メイン制御部41は、システムリセット信号の入力によるシステムリセット、WDT506bによるWDTリセット、前述のイリーガルアクセスリセットが発生することで起動することとなるが、この際、ベクタテーブル領域に設定された値、すなわちCALLV命令のサブルーチンの上位アドレス及びタイマ割込処理(メイン)の先頭アドレスが、プログラム領域のうちプログラム等が実際に格納された領域を示す値であるか、またはFFFFH(未使用のベクタテーブル領域に設定される値)であるか、を判定し、ベクタテーブル領域に設定された値がプログラムが設定される領域外を示す値でもなく、FFFFHでもない場合には、起動しないようになっており、割込の発生等により本来意図していない処理が実行されてしまうことを事前に防止できる。
遊技プログラムとは、遊技の進行に係わるプログラムであり、当該プログラムに基づく処理を実行しないと、遊技の進行に支障をきたす処理を実行するためのプログラムである。一方、非遊技プログラムとは、遊技の進行に係わらないプログラムであり、遊技プログラムから呼び出されて当該プログラムに基づく処理が実行されずに遊技プログラムに復帰した場合でも、遊技を進行させることが可能な処理を実行するためのプログラムである。
遊技プログラムは、図8に示すように、遊技プログラムだけに含まれる遊技専用プログラムと、遊技プログラム及び非遊技プログラム双方に含まれる共通判定プログラム及び共通汎用プログラムと、を含む。
遊技専用プログラムは、例えば、遊技開始待ち処理、内部抽選処理、リール制御処理、遊技終了時設定処理、外部出力1処理、初期設定処理、電断処理、エラー処理を含む。遊技開始待ち処理は、1ゲームの制御の終了後、メダルの投入等により賭数を設定し、規定数の賭数が設定された後、スタートスイッチ7が操作されることでゲームを開始させるための処理であり、内部抽選処理は、内部抽選を行い、当選フラグの設定等を行う処理であり、リール制御処理は、リールの回転を開始させ、ストップスイッチ8L、8C、8Rが操作されることでリールを停止させるための処理であり、遊技終了時設定処理は、停止したリールの停止位置に応じて入賞が発生したか否かを判定し、メダルの払出、再遊技の設定、遊技状態の移行等を行うための処理であり、外部出力1処理は、外部出力信号のうちメダルIN信号、メダルOUT信号、RB中信号、BB中信号、RT中信号の出力制御を行うための処理であり、初期設定処理は、電源投入時においてゲームを可能な状態とするための処理(バックアップ異常確認、レジスタ初期化等)であり、電断処理は、電断発生時に、その後電断前の状態に復帰できるようにするための処理であり、エラー処理は、各種の異常(メダルの投入異常、メダルセレクタ29内の異物検知、リール回転異常、メダルの払出異常、払出口付近の異物検知、RAM異常、設定値異常、ホッパータンク34aの空、オーバーフロータンク35の満タン検知等)が検知された場合に遊技を不能化するための処理である。また、特に図示しないが、遊技プログラムは、前述のATに関連する処理(ATに係る抽選やナビ報知に係る制御等)も含む。
遊技プログラムにおける共通判定プログラムは、例えば、投入判定処理、払出判定処理を含む。投入判定処理は、投入メダルセンサ31a〜cによるメダルの正常な通過であるか否かを判定する処理であり、賭数の設定等のためにメダルの投入が可能な状態において実行される処理である。払出判定処理は、払出センサ34cによるメダルの正常な通過であるか否かを判定する処理であり、小役の入賞時やクレジットの精算時にメダルの払出が許可されている状態において実行される処理である。
遊技プログラムにおける共通汎用プログラムは、遊技プログラムを構成する複数種類の処理から呼び出されて実行される処理であり、例えば、カウンタ更新処理、ポート入力処理、データ変換処理、LED表示処理、データ設定処理、コマンド設定処理を含む。カウンタ更新処理は、指定されたカウンタ値を更新するための処理であり、ポート入力処理は、指定されたポートの入力状態を取得する処理であり、データ変換処理は、遊技データを用いて入力されたデータを変換して出力する処理であり、LED表示処理は、指定された値をLEDに表示させるために設定する処理であり、データ設定処理は、指定されたデータを設定する処理であり、コマンド設定処理は、指定されたコマンドをコマンドキューに設定する処理である。
特に、遊技プログラムは、上述のように異常が検知された場合に、異常の種別に応じた解除条件(乱数異常、RAM異常、バックアップ異常、設定値異常の場合は、設定値の再設定、それ以外の異常の場合はリセット操作)が成立するまで遊技の進行を不能化するエラー処理を含む。
非遊技プログラムは、図8に示すように、非遊技プログラムだけに含まれる非遊技専用プログラムと、遊技プログラムと同じ共通判定プログラム及び共通汎用プログラムと、を含む。
非遊技専用プログラムは、例えば、試験信号出力処理、異物検知処理、ドア監視処理、外部出力2処理、投入メダルエラー判定処理、払出メダルエラー判定処理、停電判定処理、通常時コマンド送信処理、電断時コマンド送信処理を含む。試験信号出力処理は、遊技の結果に関連して発生する試験信号を出力するための処理であり、異物検知処理は、投入口センサ26によるメダル通路内の異物を検知するための処理であり、ドア監視処理は、前面扉1bの開放を検知するための処理であり、外部出力2処理は、外部出力信号のうちセキュリティ信号(ドア開放信号、設定変更信号、投入エラー信号、払出エラー信号)の出力制御を行うための処理であり、投入メダルエラー判定処理は、投入メダルセンサ31a〜cの検出状況に基づいて投入メダルの逆流検知、メダルセレクタ29内のメダル詰り検知、メダルセレクタ29内の異物検知を行うための処理であり、払出メダルエラー判定処理は、払出センサ34cの検出状況に基づいて払出メダルの逆流検知、払出口付近のメダル詰り検知、払出口付近の異物検知を行うための処理であり、停電判定処理は、電断検出回路48からの電圧低下信号が検出されているか否かを判定するための処理であり、通常時コマンド送信処理は、遊技専用プログラム及び非遊技専用プログラムのコマンド設定処理によりコマンドキューに設定されているコマンドのうち最初に設定された一のコマンドをサブ制御部91に対して送信するための処理であり、電断時コマンド送信処理は、コマンドキューに設定されている全てのコマンドをサブ制御部91に対して送信するための処理である。
非遊技プログラムにおける共通汎用プログラムは、非遊技プログラムを構成する複数種類の処理から呼び出されて実行される処理であり、遊技プログラムにおける共通汎用プログラムと同様に、例えば、カウンタ更新処理、ポート入力処理、データ変換処理、LED表示処理、データ設定処理、コマンド設定処理を含む。
非遊技プログラムは、遊技の進行に係わらない検知手段(投入口センサ26、満タンセンサ35a、ドア開放検出スイッチ25)の検出状況に基づいて所定の検出状況か否かを判定する処理を含む。
また、非遊技プログラムは、複数の制御状態(遊技開始待ち処理、内部抽選処理、リール制御処理、遊技終了時設定処理)のうち特定の制御状態においては、遊技の進行に係わる検知手段として機能し、他の制御状態においては、遊技の進行に係わらない検出手段として機能する検出手段(例えば、投入メダルセンサ31a〜c、払出センサ34c)が、遊技の進行に係わらない制御状態での検出状況に基づいて所定の検出状況か否かを判定する処理(例えば、リール回転中のメダルの投入やメダルの払出が検出されたことによる異常を検知するための投入メダルの検出処理や払出メダルの検出処理)を含む。尚、このような判定処理は、遊技プログラムにおいて遊技の進行に係わる制御状態での検出状況に基づいて所定の検出状況か否かを判定する処理と同じ処理であるため、共通判定プログラムに該当する。
尚、遊技プログラムに含まれる処理のうち、外部出力1処理、遊技開始待ち処理においてメダルの投入数を計数する処理、流路切替ソレノイド30を切り替える処理、遊技終了時設定処理においてメダルの払出数を計数する処理、ホッパータンク34aが空になったことを検知する処理、ソフトウェア乱数を更新する処理、ATに関連する処理、内部当選コマンドの送信処理等、ゲームの進行に直接的には関連しないものであればこれらの処理の全部または一部が非遊技プログラムに含まれる構成であっても良い。一方で、非遊技プログラムに含まれる処理のうち遊技の進行に間接的に関連するものであればこれらの処理の全部または一部が遊技プログラムに含まれる構成であっても良い。
本実施例においてメイン制御部41のCPU41aは、図9に示すように、遊技プログラムに基づく処理において非遊技プログラムを呼び出して非遊技プログラムに基づく処理を実行し、非遊技プログラムに基づく処理の終了後、遊技プログラムに基づく処理に復帰する。
図9に示すように、CPU41aは、原則として遊技プログラムに基づく処理を実行するにあたり、遊技データ領域の遊技データを参照して遊技プログラムに基づく処理を実行するとともに、遊技RAM領域をワークとして使用し、遊技RAM領域の内容を参照及び更新することが可能である。また、CPU41aは、原則として非遊技プログラムに基づく処理を実行するにあたり、非遊技データ領域の遊技データを参照して非遊技プログラムに基づく処理を実行するとともに、非遊技RAM領域をワークとして使用し、非遊技RAM領域の内容を参照及び更新することが可能である。
また、CPU41aは、遊技プログラムに基づく処理を実行するにあたり、非遊技データ領域を参照することはなく、非遊技RAM領域を更新することはないが、非遊技RAM領域を参照することは可能であり、非遊技プログラムに基づく処理を実行するにあたり、遊技データ領域を参照することはなく、遊技RAM領域を更新することはないが、遊技RAM領域を参照することは可能である。
また、遊技プログラムに基づく処理は、非遊技RAM領域のうち遊技プログラムに必要な特定の領域(例えば、異常の検知を示すエラーフラグの設定領域等)のみ参照可能とされており、非遊技プログラムに基づく処理は、遊技RAM領域のうち非遊技プログラムに必要な特定の領域(例えば、内部当選フラグの設定領域、遊技状態の設定領域、RTの設定領域等)のみ参照可能とされている。また、非遊技RAM領域のうち遊技プログラムに基づく処理が参照可能な特定の領域、遊技RAM領域のうち非遊技プログラムに基づく処理が参照可能な特定の領域は、連続するアドレス領域に割り当てられることが好ましいが、一部または全部が連続しないアドレス領域に割り当てられる構成であっても良い。
このように本実施例では、遊技の進行に係る遊技プログラムが記憶される遊技プログラム領域と、遊技プログラムが参照する遊技データが読み出し可能に記憶される遊技データ領域と、遊技プログラムが参照するワークデータが読み出し及び書き込み可能に記憶される遊技RAM領域と、遊技プログラムによって呼び出されるプログラムであり、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、非遊技プログラムが参照する非遊技データが読み出し可能に記憶される非遊技データ領域と、非遊技プログラムが参照するワークデータが読み出し及び書き込み可能に記憶される非遊技RAM領域と、がそれぞれ別個に割り当てられているため、遊技プログラム、遊技データ及び遊技プログラムのワークデータと、非遊技プログラム、非遊技データ及び非遊技プログラムのワークデータと、を記憶領域の違いに応じて容易に特定することができる。
また、遊技プログラム領域及び遊技データ領域と、非遊技プログラム領域及び非遊技データ領域と、を分けることで、それぞれの機能に応じてROM41bに占める領域をコンパクトに管理することができるため、各領域において該当するデータを特定することがさらに容易となる。
また、本実施例では、遊技プログラムを実行する際に、非遊技RAM領域を参照することが可能であり、非遊技プログラムを実行する際に、遊技RAM領域を参照することが可能であるため、遊技プログラムを実行するにあたり、非遊技プログラムが使用していたデータを簡単に利用することができ、非遊技プログラムを実行するにあたり、遊技プログラムが使用していたデータを簡単に利用することができる。一方で、遊技プログラムを実行する際に、非遊技RAM領域を更新することは不可能であり、非遊技プログラムを実行する際に、遊技RAM領域を更新することは不可能であるため、遊技プログラムが非遊技プログラムの処理に影響を及ぼすことなく、非遊技プログラムが遊技プログラムの処理に影響を及ぼすことがない。
また、本実施例では、遊技プログラムに基づく処理は、非遊技RAM領域のうち遊技プログラムに必要な特定の領域(例えば、異常の検知を示すエラーフラグの設定領域等)のみ参照可能とされており、非遊技プログラムに基づく処理は、遊技RAM領域のうち非遊技プログラムに必要な特定の領域(例えば、内部当選フラグの設定領域、遊技状態の設定領域、RTの設定領域等)のみ参照可能とされているので、遊技プログラムが非遊技RAM領域において参照可能なデータ、非遊技プログラムが参照可能なデータが特定の領域に制限されているため、遊技プログラムまたは非遊技プログラムの参照先を容易に特定することができる。
また、本実施例では、遊技プログラムと非遊技プログラムとを実行可能であり、遊技プログラムが用いるデータを退避する遊技スタック領域と、非遊技プログラムが用いるデータを退避する非遊技スタック領域と、が別個に設けられたRAM41cを備えており、メイン制御部41は、遊技プログラムが用いるデータと、非遊技プログラムが用いるデータと、を別個に設けられたスタック領域にそれぞれ退避させるので、スタック領域の管理が容易となる。特に、タイマ割込の発生により退避される遊技プログラムが用いるデータと、タイマ割込処理(メイン)の実行中に行われる非遊技プログラムが用いるデータと、が混在して一のスタック領域に格納されるようなことがないので、スタックの管理が煩雑となってしまうことがない。
次いで、メダルセレクタ29の構造を、主に図10及び図11に基づいて説明する。尚、以下の説明において、前面扉1bの裏面側からメダルセレクタ29を見た状態を、メダルセレクタ29の前面側として説明する。
メダルセレクタ29は、図10及び図11に示すように直方体形状に構成されており、その本体部の内部には、正面視略L字状のメダル流下通路133が形成されている。メダル流下通路133の側壁は、図10(b)及び図11(b)に示すように、流下するメダルの上端が下端よりも前方側に傾く姿勢となるように下方から上方にかけて前面側に傾斜している。
メダルセレクタ29の本体部の上面には、メダル流下通路133の上流側に連通する流入口141が形成されており、メダル投入口4から投入されたメダルがメダル流下通路133に流入するようになっている。また、メダルセレクタ29の本体部の側面には、メダル流下通路133の下流側に連通する流出口142が形成されており、流出口142から排出されたメダルはメダルシュート149に案内されてホッパータンク34aに導かれる。
また、メダル流下通路133の上流側には、流入口141から流入したメダルの通過を検出する前述の投入口センサ26が設けられており、メダル流下通路133の下流側には、流出口142に排出されるメダルの通過を検出する前述の投入メダルセンサ31a〜cが設けられている。
また、メダルセレクタ29では、投入されたメダルの真偽(形状、大きさ、厚み等)が判別されるようになっており、真正なメダルは、その通過が投入メダルセンサ31a〜cにて検出された後、メダルセレクタ29の本体側面に形成された流出口142から流出され、偽メダルはその通過が投入メダルセンサ31a〜cにて検出される前に、メダルセレクタ29の本体下部に形成された返却部137から下方に向けて落下し、メダルセレクタ29の下方に設けられたメダル返却通路132(図2参照)を介してメダル払出口9(図1参照)から下皿に返却されるようになっている。
メダル流下通路133の下部には、図10及び図11に示すように、投入されたメダルの通過が投入口センサ26により検出される位置よりも下流側の位置から、メダル流下通路133を流下するメダルの通過が投入メダルセンサ31a〜cに検出される位置よりも上流側の位置にかけて、流路切替板147が設けられている。流路切替板147は、本体部の前面側に設けられる流路切替ソレノイド30(図4参照)の励磁に連係して、メダル流下通路133を流下するメダルの下面が案内されない非案内位置(図10(a)(b)の位置)と、メダル流下通路133を流下するメダルの下面が案内される案内位置(図11(a)(b)の位置)と、の間を移動可能なように取り付けられている。
流路切替板147は、流路切替ソレノイド30が励磁されていない状態において、図10(a)(b)に示すように、非案内位置となるように付勢されることでメダル流下通路133の側方に退避しており、メダル流下通路133を流下するメダルの下面が案内されない状態となる。このため、流入口141から流入してメダル流下通路133を流下するメダルは、流路切替板147によってその下面が案内されないことから、図10(b)に示すように、メダル流下通路133から落下して、返却部137から排出され、メダル返却通路132を介してメダル払出口9から返却される。
また、流路切替板147は、流路切替ソレノイド30が励磁されると、図11(a)(b)に示すように、非案内位置から案内位置に移動することで、メダル流下通路133を流下するメダルの下面が案内される状態となる。このため、流入口141から流入してメダル流下通路133を流下するメダルは、その下面が流路切替板147により案内されることで、図11(b)に示すように、メダル流下通路133から落下することなく、流出口142の方へ流下して、投入メダルセンサ31a〜cに検出され、流出口142から排出される。
尚、本実施例では、投入口センサ26、投入メダルセンサ31a〜cとして、投光部と受光部の間をメダルが通過することにより受光部が投光部からの光の遮断を検知することでメダルの通過を検出するフォトセンサを用いているが、投光部と受光部を通路の一端側に配置し、受光部がメダルに反射した投光部の光を検知することでメダルの通過を検出する反射型センサを用いても良い。また、メダルの通過に連動して動作する可動片の動作を検知することでメダルの通過を検出する物理センサを用いても良い。
次に、本実施例におけるメイン制御部41が実行する各種制御内容を、図12〜図25に基づいて以下に説明する。
まず、メイン制御部41が起動時に実行する初期設定処理について説明する。メイン制御部41は、リセットの発生により起動すると、起動時設定を行う。起動時設定では、メイン制御部41が備えるステータスフラグを初期化する。ステータスフラグは、命令の演算結果や実行結果の状態を保持するデータであり、特に割込の禁止/許可を設定する割込マスタ許可フラグを含む。割込マスタ許可フラグの初期値は割込の禁止を示す値であるため、メイン制御部41は、割込が禁止された状態で起動することとなる。その後、メイン制御部41は、HWパラメータを参照して各種機能を設定した後、プログラム/データ領域に格納されたプログラムに従って初期設定処理を行う。
図12に示すように、初期設定処理では、まず、割込マスタ許可フラグの値を割込禁止を示す値に設定することで割込を禁止する(Sa1)。前述のようにメイン制御部41は、割込禁止の状態で起動することとなるが、Sa1では、再度、割込を禁止する。次いで、初期化データをセットし(Sa2)、パラレル出力ポート513を含む各出力ポートを初期化する(Sa3)。次いで、内蔵レジスタの設定を行う(Sa4)。
次いで、電源の電圧が正常か否かを判定する(Sa5)。電源の電圧が正常でない場合には正常になるまで判定を繰り返す。そして、電源の電圧が正常である場合には、割込ベクタの上位アドレスをセットし(Sa6)、RAM41cへのアクセスを許可し(Sa7)、スタックポインタを初期化する(Sa8)。
次いで、RAM41cの使用可能領域のうち遊技RAM領域(遊技スタック領域、未使用領域3を含む、F000H〜F1FFHの領域)のRAMパリティを計算する(Sa9)。そして、計算したRAMパリティが0か否かを判定する(Sa10)。後述のように前回の電源遮断時に正常に電断処理(メイン)が行われていれば、RAMパリティが0になるはずであるので、Sd10のステップにおいてRAMパリティが0でなければ、RAM41cの遊技RAM領域に格納されているデータが正常ではなく、この場合にはSa13ステップに進み、破壊診断用データをクリアする(Sa13)。一方、RAMパリティが0になる場合には、更に遊技RAM領域に格納されている破壊診断用データを取得し(Sa11)、取得した破壊診断用データが正しいか否かを判定し(Sa12)、破壊診断用データをクリアする(Sa13)。
次いで、設定キースイッチ37がonの状態か否かを判定する(Sa14)。設定キースイッチ37がonの状態の場合には、タイマ割込の設定を行う(Sa19)。具体的には、所定時間毎に定期的にタイマ割込が実行されるようにメイン制御部41に内蔵されているタイマ回路509のレジスタの設定を行なう。本実施例では約0.56msに相当する値が所定のレジスタ(時間定数レジスタ)に設定されることで、約0.56ms毎に定期的にタイマ割込が発生することとなる。また、タイマ回路509ではレジスタの設定が行われることにより、タイマが初期化され、初期値から計時を開始することになる。Sa19のステップにおけるタイマ割込の設定が終了すると設定変更処理に移行する。設定変更処理は、リセット/設定スイッチ38がoffからonに変化する毎に、レジスタの設定値を更新(1〜5の場合は1加算し、6の場合は1に更新)し、スタートスイッチ7がoffからonに変化した後、設定キースイッチ37がoffの状態なった場合に、レジスタにセットされている設定値のデータをRAM41cに格納するとともに、後述のメイン処理での初期化対象RAMの先頭アドレスをRAM41cに設定して、メイン処理に移行する。
一方、設定キースイッチ37がoffの状態の場合には、RAM41cの記憶内容が破壊されているか否かを判定する(Sa15)。Sa15のステップでは、後述するRAM異常フラグが設定されているか否か、Sa10、Sa12の判定に基づきRAM41cの記憶内容が破壊されているか否かを判定する。RAM41cの記憶内容が破壊されていない場合には、復帰コマンドをサブ制御部91に送信する(Sa16)。尚、RAM41cの記憶内容が破壊されていない場合とは、RAM異常フラグがセットされておらず、かつSa10のステップにおいてRAMパリティが0であると判定され、さらにSa12のステップにおいて破壊診断用データが正しいと判定された場合である。
Sa16のステップの後、RAM41cの遊技RAM領域に記憶されているデータに基づいて全てのレジスタを復帰させ(Sa17)、Sa19のステップと同様のタイマ割込の設定を行う(Sa18)。そして、後述のタイマ割込処理(メイン)のSd24の処理に移行する。これにより電断前のRAM41cの遊技RAM領域及び非遊技RAM領域の状態、電断前に実行していた処理に復帰することとなる。
また、Sa15のステップにおいてRAM41cの記憶内容が破壊されている場合には、RAM41cの記憶内容が正常でないことを示すRAM異常フラグをRAM41cにセットし(Sa20)、エラー処理に移行する。エラー処理では、遊技の進行が不能化される。また、RAM異常フラグが設定されて移行したエラー状態では、設定キースイッチ37をonの状態にして電源スイッチ39をonにすることによって、設定変更処理に移行させることにより解除することができる。一方、設定キースイッチ37をonの状態にせずに電源スイッチ39をonにした場合には、RAM異常フラグが設定されたままであり、Sa15のステップにおいてRAMが破壊されていると判定されることで、再びエラー状態となる。
このように本実施例では、メイン制御部41は、リセットが発生したときに、割込禁止の状態で起動するとともに、その後、最初に実行する初期設定処理の開始時にもプログラムにて割込の禁止を行うようになっており、何らかの原因で割込が禁止されない状態でメイン制御部41が起動した場合でも意図しない割込が発生してしまうことを防止できる。
また、メイン制御部41は、その起動後に、タイマ回路509におけるタイマ割込の設定の後、割込を許可するようになっており、タイマ割込が正常に動作しない状態で割込が発生してしまうことを防止できる。また、タイマ回路509ではタイマ割込の設定が行われることにより、タイマが初期化され、初期値から計時を開始するようになっており、起動後、初回の割込が発生するまでの時間と、2回目以降の割込が発生するまでの時間と、がずれてしまうようなことがなく、一定の時間間隔でタイマ割込を発生させることができる。また、メイン制御部41は、初期設定処理においてタイマ回路509の設定をプログラムにて初期値に更新するようになっており、起動時に、何らかの原因でタイマ回路509の設定が書き換わっていた場合であっても、意図しない割込が発生してしまうことを防止できる。
次に、メイン制御部41が実行するメイン処理について、図13に基づいて説明する。尚、メイン処理は一単位の遊技毎に繰り返し実行される。そして、メイン処理の一周期が遊技の一単位に相当している。
図13に示すように、メイン制御部41は、まず、割込を禁止する(Sb1)。次いで、初期化対象RAMの最終アドレス(遊技スタック領域(未使用)の最終アドレス)をセットし(Sb2)、遊技領域初期化処理を実行して、指定されたアドレスで示されるRAM41cの領域をクリアする(Sb3)。
遊技領域初期化処理は、指定された先頭アドレスから終了アドレスまでを順次クリアすることで、遊技RAM領域のうち指定された初期化対象RAMの領域を初期化する。この際、設定変更処理の後にメイン処理が開始された場合には、設定変更処理が終了される際に、初期化対象RAMの先頭アドレスとして、使用可能領域のうち特別ワークが記憶されている領域の最終アドレスの次のアドレスが設定され、当該メイン処理のSb2において、初期化対象RAMの最終アドレスとして、遊技スタック領域(未使用)の最終アドレスが設定されるため、遊技RAM領域のうち特別ワーク及び遊技スタック領域(使用中)以外の領域(重要ワーク、一般ワーク、未使用領域3、スタック領域(未使用))が初期化されることとなる。また、特定の遊技状態ではない遊技の終了時には、後述するSb10のステップにおいて遊技終了時の初期化対象RAMの先頭アドレス(未使用領域3の先頭アドレス)が設定され、Sb2のステップにおいて、初期化対象RAMの最終アドレス(遊技スタック領域(未使用)の最終アドレス)が設定されるため、使用可能領域のうち未使用領域3及び遊技スタック領域(未使用)が初期化されることとなる。また、特定の遊技状態の終了時であり、かつ遊技の終了時には、後述するSb11のステップにおいて特定の遊技状態の終了時の初期化対象RAMの先頭アドレス(遊技RAM領域のうち特別ワークが記憶されている領域の最終アドレスの次のアドレス)が設定され、Sb2のステップでは、特定の遊技状態の終了時の初期化対象RAMの最終アドレス(遊技スタック領域(未使用)の最終アドレス)が設定されるため、遊技RAM領域のうち一般ワーク、未使用領域3、遊技スタック領域(未使用)が初期化されることとなる。
Sb3のステップにおけるRAMの初期化の後、割込を許可し(Sb4)、遊技開始待ち処理を呼び出して実行する(Sb5)。遊技開始待ち処理では、賭数を設定可能な状態で待機し、遊技状態に応じた規定数の賭数が設定され、スタートスイッチ7が操作された時点でゲームを開始させる処理を実行する。
次いで、内部抽選処理を実行する(Sb6)。内部抽選処理では、Sb5のステップにおけるスタートスイッチ7の検出によるゲーム開始と同時にラッチされた内部抽選用の乱数値に基づいて上記した各役への入賞を許容するか(すなわち、表示結果の導出を許容するか否か)どうかを決定する処理を行う。
次いで、リール制御処理を実行する(Sb7)。リール制御処理では、スタートスイッチ7の操作に応答して各リール2L、2C、2Rを回転させる処理、Sd2のステップにおける内部抽選の結果及び遊技者によるストップスイッチ8L、8C、8Rの操作が検出されたことに応じて対応するリール2L、2C、2Rの回転を停止させる処理を実行する。
次いで、遊技終了時設定処理を実行する(Sb8)。遊技終了時設定処理では、Sb7の処理において全てのリール2L、2C、2Rの回転が停止したと判定した時点で、各リール2L、2C、2Rに導出された表示結果に応じて入賞が発生したか否かを判定する処理を実行する。そして、入賞が発生したと判定した場合に、その入賞に応じた払出枚数に基づきクレジットの加算並びにメダルの払出等の処理を行う。入賞が発生した場合にはメダルの払い出し等が終了した後に次のゲームに備えて遊技状態を設定する処理を実行する。また、入賞が発生しなかった場合にはリールが停止した後に、次のゲームに備えて遊技状態を設定する処理を実行する。
遊技終了時設定処理が終了すると、特定の遊技状態の終了時か否かを判定し(Sb9)、特定の遊技状態の終了時でない場合には、遊技終了時の初期化対象RAMの先頭アドレスをセットして(Sb10)、Sb1のステップに戻る。また、特定の遊技状態の終了時である場合には、特定の遊技状態の終了時の初期化対象RAMの先頭アドレスをセットして(Sb11)、Sb1のステップに戻る。
また、メイン処理では、ゲームの進行に応じてコマンドを生成してコマンドキューに設定するコマンド格納処理を実行し、設定されたコマンドは、その後のタイマ割込処理(メイン)において実行される通常時コマンド送信処理によりサブ制御部91に対して送信されるようになっている。
このように、本実施例では、メイン制御部41は、スロットマシン1への電力供給が開始したときに、初期設定処理を開始し、バックアップ電源により保持されているRAM41cのうち遊技RAM領域のRAMパリティ、遊技RAM領域に記憶されている破壊診断用データに基づいてRAMの記憶内容が正常か否かを判定し、正常と判定された場合に、遊技RAM領域に記憶されているデータ及び非遊技RAM領域に記憶されているデータに基づいて制御を再開するようになっており、非遊技RAM領域に記憶されており、遊技の進行に支障のない非遊技用のデータが正常か否かの判定を省くことで、遊技の進行が正常に行えることを担保しつつ、制御を再開する際の負荷を軽減することができる。
また、RAM41cの遊技RAM領域は、遊技プログラムに基づく制御を行う際にも、非遊技プログラムに基づく制御を行う際にも、用いられることのない未使用領域3を含んでおり、メイン制御部41は、スロットマシン1への電力供給が開始されたときに、初期設定処理を実行し、初期設定処理において、未使用領域3を含む遊技RAM領域のRAMパリティを算出し、算出されたRAMパリティに基づいて遊技RAM領域の記憶内容が正常か否かを判定するので、未使用領域3に不正なデータが記憶されることを防止できる。
また、メイン制御部41は、スロットマシン1への電力供給が開始されたときに、初期設定処理を実行し、初期設定処理において、RAM41cの記憶内容が破壊されているか否かを判定し、RAM41cの記憶内容が破壊されていると判定した場合に、RAM異常フラグを設定してエラー処理に制御し、その後、自動的に復帰することがなくエラー状態を維持する一方、設定キースイッチ36がonの状態で、スロットマシン1への電力供給が開始されたときに、設定変更処理に制御し、遊技領域初期化処理を実行して遊技RAM領域を初期化するとともに、非遊技領域初期化処理を実行して非遊技RAM領域を初期化する、すなわちエラー状態が解除されることに伴い遊技RAM領域と非遊技RAM領域の双方を初期化するので、遊技RAM領域及び非遊技RAM領域のいずれかに異常が生じたまま遊技が進行してしまうことを防止できる。
次に、メイン制御部41がメイン処理において呼び出して実行する遊技開始待ち処理について、図14〜図16に基づいて説明する。
図14に示すように、遊技開始待ち処理では、まず、RAM41cにおいて賭数の値が格納されるBETカウンタの値をクリアする(Sc1)。そして、遊技状態に応じた規定数をRAM41cに設定し(Sc2)、RAM41cにリプレイゲームである旨を示すリプレイゲームフラグが設定されているか否かに基づいて、当該ゲームがリプレイゲームであるか否かを判定する(Sc3)。
Sc3のステップにおいて、当該ゲームがリプレイゲームであると判定された場合には、BETカウンタの値を1加算した後(Sc4)、RAM41cに設定された賭数の規定数を参照して、BETカウンタの値が規定数であるか否か、すなわちゲームの開始条件となる賭数が設定されているか否かを判定する(Sc5)。そして、Sc5のステップにおいて、BETカウンタの値が規定数でなければ、Sc4のステップに戻る一方で、BETカウンタの値が規定数であれば、Sc6のステップに進み、後述するようにクレジットの値に応じてメダルの投入の可否を判定する投入可否判定処理を実行する。また、Sc3のステップにおいて、当該ゲームがリプレイゲームでないと判定されれば、Sc6のステップに進み、投入可否判定処理を実行する。
Sc6のステップにおいて投入可否判定処理を実行した後、レジスタにエラーコードが設定されているか否か、すなわちエラーが検知されたか否かを判定し(Sc7)、エラーコードが設定されていれば、後述する開始待ち中エラー処理に移行する(Sc8)。一方、Sc6のステップにおいて、エラーコードが設定されていなければ、設定キースイッチ37がonの状態であるか否かを判定し(Sc9)、設定キースイッチ37がonの状態であればBETカウンタが0であるか否かを判定する(Sc10)。Sc9のステップにおいて設定キースイッチ37がonであり、かつSc10のステップにおいてBETカウンタが0である場合は、後述するように確認のために設定値を表示する設定確認処理を実行し(Sc11)。
そして、設定確認処理が終了した後、またはSc9のステップにおいて設定キースイッチ37がonでない場合、Sc10のステップにおいてBETカウンタが0でない場合は、Sc12のステップに進み、後述するようにメダルの投入を判定するメダル投入判定処理を実行する(Sc12)。
Sc12のステップにおいてメダル投入判定処理を実行した後は、スタートスイッチ7、MAXBETスイッチ6、精算スイッチ10のいずれかがoffの状態からonの状態に変化したか否かを判定し(Sc13、Sc22、Sc27)、いずれのスイッチもoffの状態からonの状態に変化していないと判定した場合は、Sc7のステップに戻る。
Sc13のステップにおいて、スタートスイッチ7がoffの状態からonの状態に変化したと判定した場合は、他のスイッチがonの状態か否かを判定し(Sc14)、他のスイッチがonでないと判定した場合は、BETカウンタの値が規定数であるか否かを判定する(Sc15)。Sc14のステップにおいて他のスイッチがonの状態であると判定した場合、またはSc15のステップにおいてBETカウンタの値が規定数に達していないと判定した場合は、Sc7のステップに戻る。一方、Sc14のステップにおいて他のスイッチがonの状態でないと判定し、かつSc15のステップにおいてBETカウンタの値が規定数に達している場合は、RAM41cの抽選用ワークに、乱数格納ワークの値を設定し(Sc16)、投入可能フラグをクリアし(Sc17)、流路切替ソレノイド30に対応する出力ポートの値をoffを示す値とし(Sc18)、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止するとともに、投入要求LED17をoffの状態に設定する(Sc19)。そして、所定期間(本実施例では、500ms)にわたり投入メダルセンサ31a〜cによるメダル詰りエラーの検出を無効化するための検出時間無効化タイマを設定し(Sc20)、ゲーム開始時の設定を行った後(Sc21)、遊技開始待ち処理を終了してメイン処理に復帰する。
Sc22のステップにおいて、MAXBETスイッチがoffの状態からonの状態に変化したと判定した場合は、BETカウンタの値が規定数に達しているか否かを判定し(Sc23)、規定数に達していない場合は、クレジットカウンタの値が0か否かを判定する(Sc24)。Sc24のステップにおいて、クレジットカウンタの値が0でない場合はクレジットカウンタを1減算し(Sc25)、BETカウンタを1加算して(Sc26)、Sc23のステップに戻り、BETカウンタの値が規定数に達するか、クレジットカウンタの値が0となるまで、Sc23〜Sc26の処理を繰り返し行う。そして、Sc23のステップにおいてBETカウンタの値が規定数に達していると判定した場合、またはSc24のステップにおいて、クレジットカウンタの値が0であると判定した場合は、Sc7のステップに戻る。
Sc27のステップにおいて、精算スイッチ10がoffの状態からonの状態に変化したと判定した場合は、後述するようにクレジットまたは賭数の設定に用いられたメダルを返却する精算処理を実行する(Sc28)そして、精算処理が終了した後は、Sc7のステップに戻る。
尚、本実施例の遊技開始待ち処理では、エラーコードが設定されていない状態で、設定キースイッチ37がonの状態とされ、かつBETカウンタの値が0である場合に、設定確認処理に移行する、すなわちMAXBETスイッチ6により賭数が設定されている場合、再遊技役が入賞して賭数が設定されている場合には、設定確認処理に移行させない構成であるが、遊技開始待ち処理が開始されてからスタートスイッチ7の操作が検出されるまでの期間において、エラーコードが設定されていない状態で、設定キースイッチ37がonの状態とされた場合には、BETカウンタの値が0であるか否かの判定を行うことなく、すなわちMAXBETスイッチ6の操作や再遊技役の入賞に応じて賭数が設定されているか否かにかかわらず、設定確認処理に移行する構成としても良い。
次に、メイン制御部41が実行するメダル投入判定処理について、図17に基づいて説明する。
図17に示すように、メダル投入判定処理では、投入可能フラグが設定されているか否かを判定して(Sd1)、投入可能フラグが設定されており、メダルの投入が可能な状態である場合は、投入メダルセンサ31a〜cの遷移データを取得し(Sd2)、投入可能フラグが設定されておらず、メダルの投入が不可能な状態である場合は、メダル投入判定処理を終了させて、遊技開始待ち処理に復帰する。
Sd2のステップにおいて投入メダルセンサ31a〜cの遷移データを取得した後は、取得した遷移データに基づいて、メダルセレクタ29のメダル流下通路133内を流出口142方向へメダルが通過中であるか否かを判定する(Sd3)。Sd3のステップにおいて、メダルが通過中でないと判定した場合は、流路切替ソレノイド30に対応する出力ポートの値をonを示す値に設定して(Sd4)、メダル流下通路133を流出口142側に切り替え新たなメダルの投入を許可し、投入要求LED17をonの状態に設定して(Sd5)、Sd6のステップへ進む。一方、Sd3のステップにおいて、メダルが通過中であると判定した場合は、流路切替ソレノイド30及び投入要求LED17をonの状態に設定することなく、Sd6のステップへ進む。
Sd6のステップでは、Sd2のステップで取得した遷移データが正常であるか否かを判定し、遷移データが正常であると判定した場合は、更に、投入メダルセンサ31a〜cの出力に変化があるか否かを判定する(Sd7)。Sd6のステップにおいて遷移データが正常でないと判定した場合は、投入エラーを示すエラーコードを設定して(Sd13)、メダル投入判定処理を終了させ、Sd7のステップにおいて、投入メダルセンサ31a〜cの出力に変化がないと判定した場合も、メダル投入判定処理を終了させて、遊技開始待ち処理に復帰する。
Sd6のステップにおいては、投入メダルセンサ31a〜cの遷移データが正常であると判定し、かつ、Sd7のステップにおいて、投入メダルセンサ31a〜cの出力に変化があると判定した場合は、更に、投入メダルセンサ31a〜cの出力のいずれかがonの状態であるか否かを判定する(Sd8)。
Sd8のステップにおいて、投入メダルセンサ31a〜cの出力のいずれかがonの状態であると判定した場合は、RAM41cを参照して後述する1枚投入可能フラグが設定されているか否か、すなわち、投入メダルセンサ31a〜cにより検出されているメダルがスロットマシン1に投入可能な最終メダルであり、このメダルの投入によってクレジットの値が上限数に達するか否かを判定する。Sd9のステップにおいて、1枚投入可能フラグが設定されている場合は、流路切替ソレノイド30に対応する出力ポートの値をoffを示す値に設定し(Sd10)、メダル流下通路133をメダル払出口9側に切り替え、新たなメダルの投入を禁止し、投入要求LED17をoffの状態に設定し(Sd11)、投入メダルセンサ31a〜cによるメダル詰まりエラーの検出を無効化するための検出時間無効化タイマを設定した後(Sd12)、メダル投入判定処理を終了して、遊技開始待ち処理に復帰する。一方、Sd9のステップにおいて、1枚投入可能フラグが設定されていないと判定した場合は、Sd10〜Sd12のステップを行うことなく、メダル投入判定処理を終了して、遊技開始待ち処理に復帰する。
また、Sd8のステップにおいて、投入メダルセンサ31a〜cの出力のいずれもonの状態でないと判定した場合は、BETカウンタの値を参照して、賭数が規定数に達しているか否かを判定し(Sd14)、賭数が規定数に達していない場合は、BETカウンタに1加算して(Sd15)、後述の投入可否判定処理を実行した後、メダル投入判定処理を終了して、遊技開始待ち処理に復帰する。一方、Sd14のステップにおいて、賭数が規定数に達していると判定した場合は、クレジットカウンタに1加算して(Sd17)、後述の投入可否判定処理を実行した後、メダル投入判定処理を終了して、遊技開始待ち処理に復帰する。
このように、メダル投入判定処理では、投入可能フラグが設定されており、メダルが通過中でない場合には、流路切替ソレノイド30及び投入要求LED17をoffの状態に制御する。
また、メダル投入判定処理では、投入メダルセンサ31a〜cの遷移データが正常であり、投入メダルセンサ31a〜cのいずれかの出力がoffからonに変化しており、1枚投入可能フラグが設定されている場合、すなわち、スロットマシン1に投入可能な最終メダルの投入が検出されたときに、流路切替ソレノイド30及び投入要求LED17をoffの状態に制御する。このため、1枚投入可能フラグが設定されており、投入メダルセンサ31aがメダルを検出したときに、他の投入メダルセンサ31b、cが当該メダルを検出する前に、メダルの流下通路を流出口142側からメダル返却通路132側に切り替えるようになっており、メダルがあと1枚だけ投入可能な状態では、最後の1枚のメダルが投入されてから極力早い段階でメダルの流下経路が流出口142側からメダル返却通路132側に切り替わるので、更にメダルが流下してきた場合でも当該メダルが内部に取り込まれてしまうことを防止できる。
また、流路切替ソレノイド30がonからoffに切り替わったときには、検出時間無効化タイマが設定され、その後所定期間にわたり投入メダルセンサ31a〜cの検出時間がメダル詰まり判定時間を超えてもメダル詰まりエラーが判定されないようになっており、メダルの流下経路が流出口142側からメダル返却通路132側に切り替わった後、投入されたメダルが勢いでメダル流下通路133を流出口142側に流下してしまった際に、メダルの通過速度が通常よりも遅くなってもメダル詰まりエラーと判定されてしまうことがないようになっている。
また、投入メダルセンサ31a〜cの遷移データが正常であり、投入メダルセンサ31a〜cの出力がonからoffに変化した場合、すなわちメダル流下通路133を流下するメダルが正常に流出口142に流下した場合に、投入されたメダルを賭数またはクレジットに加算する。
次に、メイン制御部41が実行する投入可否判定処理について、図18に基づいて説明する。投入可否判定処理は、遊技開始待ち処理、メダル投入判定処理、精算処理、設定確認処理、エラー処理などの各処理に基づいて呼び出すことが可能なように共通モジュール化されている。
図18に示すように、投入可否判定処理では、RAM41cの遊技RAM領域に割り当てられたクレジットカウンタ及びBETカウンタを参照してクレジットの値及び賭数の値を特定するとともに、ROM41bの遊技データ領域を参照してクレジットの上限数(本実施例では、50)を特定する(Se1)。そして、クレジットの値と賭数の値との和が、投入可能な最大のメダル数(本実施例では、クレジットの上限数50と賭数の最大数3との和)に達しているか否かを判定し(Se2)、クレジットの値と賭数の値との和が、投入可能な最大のメダル数に達していると判定した場合は、メダルの投入可能を示す投入可能フラグをクリアして(Se3)、投入可否判定処理を終了して、呼び出し元の処理に復帰する。
一方、Se2のステップにおいて、クレジットの値と賭数の値との和が、投入可能な最大のメダル数に達していないと判定した場合は、クレジットの値と賭数の値との和が、投入可能な最大のメダル数より1少ない数に達しているか否かを判定する(Se4)。Se4のステップにおいて、クレジットの値と賭数の値との和が、投入可能な最大のメダル数より1少ない数に達している、すなわち、あと1枚だけメダルをスロットマシン1に投入可能な状態である場合は、メダルをあと1枚投入可能であることを示す1枚投入可能フラグを設定し(Se5)、投入可能フラグを設定して(Se6)、投入可否判定処理を終了する。一方で、Se5のステップにおいてクレジットの値と賭数の値との和が、投入可能な最大のメダル数より1少ない数に達していない場合は、投入可能フラグを設定して(Se6)、投入可否判定処理を終了する。
このように、本実施例の投入可否判定処理は、共通モジュール化されて遊技プログラムに含まれているので、精算処理、設定確認処理、エラー処理に基づいて呼び出すことが可能であり、遊技プログラムの容量を低減することができる。
また、本実施例の投入可否判定処理は、クレジットの値と賭数の値との和が、投入可能な最大のメダル数に達していないと判定した場合には、投入可能フラグを設定する。投入可能フラグが設定されることで、投入可否判定処理の後、メダル投入判定処理において参照されて、当該投入可否判定処理での判定結果、すなわち投入可能フラグが設定されていることに応じて、流路切替ソレノイド30がonの状態となる。
また、クレジットの値と賭数の値との和が投入可能な最大のメダル数より1少ない数に達していると判定した場合に、1枚投入可能フラグを設定する。1枚投入可能フラグが設定されることで、投入可否判定処理の後、メダル投入判定処理において投入されたメダルの通過が検出された際に参照されて、当該投入可否判定処理での判定結果、すなわち1枚投入可能フラグが設定されていることに応じて、流路切替ソレノイド30がoffの状態となる。
また、本実施例では、クレジットに記憶することができるメダルの最大数(本実施例では、50)が、ROM41bの遊技データ領域に記憶されており、投入可否判定処理では、ROM41bの遊技データ領域に設定された値を参照してクレジットの最大数を特定するようになっている。
次に、メイン制御部41が遊技開始待ち処理において実行する精算処理について、図19に基づいて説明する。
図19に示すように、精算処理では、まず、賭数が設定されているか否かを判定する(Sf1)。Se1のステップにおいて、賭数が設定されていると判定した場合は、さらに当該ゲームがリプレイゲームであるか否かを判定し(Sf2)、リプレイゲームでなければ賭数の値を返却メダル数として設定して賭数を0に設定する(Sf3)。
また、Sf1のステップにおいて賭数が設定されていないと判定した場合、Sf2のステップにおいて当該ゲームがリプレイゲームであると判定した場合は、クレジットが0か否かを判定し(Sf4)、クレジットが0であれば精算処理を終了し、遊技開始待ち処理に復帰する。Sf4のステップにおいてクレジットが0でなければクレジットの値を返却メダル数として設定してクレジットの値を0に設定する(Sf5)。
Sf3またはSf5のステップの後、メダルの投入可能を示す投入可能フラグをクリアし(Sf6)、精算処理を開始した旨を示す精算開始コマンドをコマンドキューに設定する(Sf7)。そして、流路切替ソレノイド30に対応する出力ポートの値をoffを示す値に設定することで、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止し(Sf8)、投入要求LED17を消灯し(Sf9)、所定期間(本実施例では、500ms)にわたり投入メダルセンサ31a〜cによるメダル詰まりエラーの検出を無効化するための検出時間無効化タイマを設定した後(Sf10)、Sf3またはSf5のステップにおいて設定された返却メダル数分のメダルをホッパーユニット34により返却させるメダル返却処理を実行する(Sf11)。メダル返却処理では、返却メダル数分のメダルの払出が検出されるまでホッパーモータ34bを駆動する処理を行う。
Sf11のステップにおいて、返却メダル数分のメダルを返却した後、図17で説明した投入可否判定処理を実行し(Sf12)、その後、精算処理が終了する旨を示す精算終了コマンドを設定し(Sf13)、精算処理を終了させて、遊技開始待ち処理に復帰する。
このように、本実施例では、精算処理を実行するときに、既に流路切替ソレノイド30をonの状態に設定する処理が行われているか否かに関わらず、流路切替ソレノイド30に対応する出力ポートの値をoffを示す値に設定することで、メダルセレクタ29の流路切替板147を非案内位置に位置させて、メダル流下通路133を返却部137側に切り替えるようになっている。
また、本実施例では、精算処理を開始したときに、メダルの投入可能を示す投入可能フラグをクリアすることで、メダルの投入が不可能な状態とした後、流路切替ソレノイド30をoffの状態に設定するようになっており、投入可能フラグがクリアされることで、投入メダルセンサ31a〜cに基づくメダルの投入判定が行われない状態となる。
また、本実施例では、精算処理を開始したときに、精算処理を開始した旨を示す精算開始コマンドを設定することで、サブ制御部91に対して精算開始コマンドを送信するようになっている。尚、精算開始コマンドを受信したサブ制御部91側では、精算処理を実行中である旨を報知する精算中報知を実行し、精算処理を実行中である旨を示す表示を液晶表示器51に表示させるとともに、精算処理を実行中である旨を示す音声をスピーカ53、54より出力させて、精算処理が実行されていること、メダル投入口4よりメダルを投入できないことを遊技者に報知する。
また、本実施例では、精算処理においてホッパーユニット34により返却させるメダル返却処理が終了した後に、精算処理を終了する旨を示す精算終了コマンドを設定することで、サブ制御部91に対して精算終了コマンドを送信するようになっている。尚、精算終了コマンドを受信したサブ制御部91側では、精算処理を実行中である旨を示す報知を終了させる。
また、本実施例では、精算処理において流路切替ソレノイド30をoffの状態に設定したときに検出時間無効化タイマを設定することで、所定期間(本実施例では、500ms)にわたり、メダル詰まりエラーの検出を無効化するようになっている。
また、本実施例では、精算処理において流路切替ソレノイド30をoffの状態に設定したときに、投入要求LED17を消灯させるようになっている。
また、本実施例では、精算処理を終了させるときに、投入可否判定処理を呼び出して実行し、賭数とクレジットの値と賭数の値との和が、投入可能な最大のメダル数に達している場合は、投入可能フラグをクリアする一方で、賭数とクレジットの値と賭数の値との和が、投入可能な最大のメダル数に達していない場合は、投入可能フラグを設定するので、精算処理が終了された後に復帰する遊技開始待ち処理において、投入可否判定処理での判定結果、すなわち投入可能フラグが設定されているか否かに応じて、流路切替ソレノイド30のon‐offの状態が切り替えられることとなる。
次に、メイン制御部41が遊技開始待ち処理において実行する設定確認処理について、図20に基づいて説明する。
図20に示すように、設定確認処理においては、まず、メダルの投入が可能な旨を示す投入可能フラグをクリアし(Sg1)、流路切替ソレノイド30に対応する出力ポートの値をoffを示す値に設定することで、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止し(Sg2)、投入要求LED17を消灯し(Sg3)、所定期間(本実施例では、500ms)にわたり投入メダルセンサ31a〜cによるメダル詰まりエラーの検出を無効化するための検出時間無効化タイマを設定する(Sg4)。
そして、現在設定されている設定値を設定値表示器24に表示させ(Sg5)、設定確認処理を開始した旨を示す設定確認開始コマンドをコマンドキューに設定し(Sg6)、設定キースイッチ37がonの状態か否かを判定し(Sg7)、設定キースイッチ37がonの状態である場合は、設定キースイッチ37がoffの状態となるまで待機する。
Sg7のステップにおいて、設定キースイッチ37がonの状態でないと判定した場合は、設定値表示器24の表示をクリアし(Sg8)、投入可否判定処理を呼び出して実行する(Sg9)。そして、投入可否判定処理が終了した後は、設定確認処理を終了する旨を示す設定確認終了コマンドを設定し(Sg10)、遊技開始待ち処理に復帰する。
このように、本実施例では、設定確認処理を実行するときに、既に流路切替ソレノイド30をonの状態に設定する処理が行われているか否かに関わらず、流路切替ソレノイド30に対応する出力ポートの値をoffを示す値に設定することで、メダルセレクタ29の流路切替板147を非案内位置に位置させて、メダル流下通路133を返却部137側に切り替えるようになっている。
また、本実施例では、設定確認処理を開始したときに、メダルの投入可能を示す投入可能フラグをクリアすることで、メダルの投入が不可能な状態とした後、流路切替ソレノイド30をoffの状態に設定するようになっており、投入可能フラグがクリアされることで、投入メダルセンサ31a〜cに基づくメダルの投入判定が行われない状態となる。
また、本実施例では、設定確認処理を開始したときに、設定確認処理を開始した旨を示す設定確認開始コマンドを設定することで、サブ制御部91に対して設定確認開始コマンドを送信するようになっている。尚、設定確認開始コマンドを受信したサブ制御部91側では、設定確認中である旨を報知する設定確認中報知を実行し、設定確認中である旨を示す音声をスピーカ53、54から出力させて、設定確認中であること、メダル投入口4よりメダルを投入できないことを遊技者に報知する。
また、本実施例では、設定確認処理において設定キースイッチ37がoffの状態とされて、設定確認処理を終了させるときに、設定確認処理を終了する旨を示す設定確認終了コマンドを設定することで、サブ制御部91に対して設定確認終了コマンドを送信するようになっている。尚、設定確認終了コマンドを受信したサブ制御部91側では、設定確認中である旨を示す報知を終了させる。
また、本実施例では、設定確認処理において流路切替ソレノイド30をoffの状態に設定したときに、メダル検出無効化タイマを設定することで、所定期間(本実施例では、500ms)にわたり、投入メダルセンサ31a〜cでの検出を無効化するようになっている。
また、本実施例では、設定確認処理において流路切替ソレノイド30をoffの状態に設定したときに、投入要求LED17を消灯させるようになっている。
また、本実施例では、設定確認処理を終了させるときに、投入可否判定処理を呼び出して実行し、賭数とクレジットの値と賭数の値との和が、投入可能な最大のメダル数に達している場合は、投入可能フラグをクリアする一方で、賭数とクレジットの値と賭数の値との和が、投入可能な最大のメダル数に達していない場合は、投入可能フラグを設定するので、設定確認処理が終了された後に復帰する遊技開始待ち処理において、投入可否判定処理での判定結果、すなわち投入可能フラグが設定されているか否かに応じて、流路切替ソレノイド30のon‐offの状態が切り替えられることとなる。
次に、メイン制御部41が遊技開始待ち処理において実行する開始待ち中エラー処理について、図20に基づいて説明する。
図21に示すように、開始待ち中エラー処理においては、まず、メダルの投入が可能な旨を示す投入可能フラグをクリアし(Sh1)、流路切替ソレノイド30に対応する出力ポートの値をoffを示す値に設定することで、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止し(Sh2)、投入要求LED17を消灯し(Sh3)、所定期間(本実施例では、500ms)にわたり投入メダルセンサ31a〜cによるメダル詰まりエラーの検出を無効化するための検出時間無効化タイマを設定する(Sh4)。
そして、エラー処理を開始した旨を示すエラー開始コマンドをコマンドキューに設定し(Sh5)、設定されているエラーコードを遊技補助表示器12に表示させ(Sh6)、エラーの解除条件(リセット操作)が成立したか否かを判定し(Sh7)、エラーの解除条件が成立していない場合は、エラーの解除条件が成立するまで待機する。
Sh7のステップにおいて、エラーの解除条件が成立したと判定した場合は、遊技補助表示器12のエラーコードの表示をクリアし(Sh8)、投入可否判定処理を呼び出して実行する(Sh9)。そして、投入可否判定処理が終了した後は、エラー処理を終了する旨を示すエラー解除コマンドを設定し(Sh10)、遊技開始待ち処理に復帰する。
このように、本実施例では、開始待ち中エラー処理を実行するときに、既に流路切替ソレノイド30をonの状態に設定する処理が行われているか否かに関わらず、流路切替ソレノイド30に対応する出力ポートの値をoffを示す値に設定することで、メダルセレクタ29の流路切替板147を非案内位置に位置させて、メダル流下通路133を返却部137側に切り替えるようになっている。
また、本実施例では、開始待ち中エラー処理を開始したときに、メダルの投入可能を示す投入可能フラグをクリアすることで、メダルの投入が不可能な状態とした後、流路切替ソレノイド30をoffの状態に設定するようになっており、投入可能フラグがクリアされることで、投入メダルセンサ31a〜cに基づくメダルの投入判定が行われない状態となる。
また、本実施例では、開始待ち中エラー処理を開始したときに、エラー処理を開始した旨を示すエラー開始コマンドを設定することで、サブ制御部91に対してエラー開始コマンドを送信するようになっている。尚、エラー開始コマンドを受信したサブ制御部91側では、エラー処理中である旨を報知するエラー中報知を実行し、エラー処理中である旨を示す音声をスピーカ53、54から出力させて、エラー中であること、メダル投入口4よりメダルを投入できないことを遊技者に報知する。
また、本実施例では、開始待ち中エラー処理においてエラーの解除条件が成立して、開始待ち中エラー処理を終了させるときに、エラー処理を終了する旨を示すエラー解除コマンドを設定することで、サブ制御部91に対してエラー解除コマンドを送信するようになっている。尚、エラー解除コマンドを受信したサブ制御部91側では、エラー処理中である旨を示す報知を終了させる。
また、本実施例では、開始待ち中エラー処理において流路切替ソレノイド30をoffの状態に設定したときに、メダル検出無効化タイマを設定することで、所定期間(本実施例では、500ms)にわたり、投入メダルセンサ31a〜cでの検出を無効化するようになっている。
また、本実施例では、開始待ち中エラー処理において流路切替ソレノイド30をoffの状態に設定したときに、投入要求LED17を消灯させるようになっている。
また、本実施例では、開始待ち中エラー処理を終了させるときに、投入可否判定処理を呼び出して実行し、賭数とクレジットの値と賭数の値との和が、投入可能な最大のメダル数に達している場合は、投入可能フラグをクリアする一方で、賭数とクレジットの値と賭数の値との和が、投入可能な最大のメダル数に達していない場合は、投入可能フラグを設定するので、開始待ち中エラー処理が終了された後に復帰する遊技開始待ち処理において、投入可否判定処理での判定結果、すなわち投入可能フラグが設定されているか否かに応じて、流路切替ソレノイド30のon‐offの状態が切り替えられることとなる。
本実施例のメイン制御部41は、一定間隔(約0.56msの間隔)でメイン処理に割り込んで実行するタイマ割込処理(メイン)を実行する。尚、タイマ割込処理(メイン)は、タイマ回路509のカウントに応じて発生する割込により実行される処理であり、タイマ割込処理(メイン)のプログラムが格納されたアドレスは、ベクタテーブルのタイマ割込に対応する値として設定されている。そして、タイマ割込が発生すると当該アドレスからの処理が実行される。また、タイマ割込処理(メイン)の実行期間中は自動的に他の割込が禁止される。
タイマ割込処理(メイン)では、停電判定処理を呼び出して実行し、電断検出回路48から電圧低下信号が入力されているか否かを判定し、連続する2回のタイマ割込処理(メイン)にわたって電圧低下信号が入力されていることが判定される場合に、停電と判定して電断処理(メイン)に移行するようになっている。電断処理について、図22に基づいて説明する。
図22に示すように、電断処理(メイン)では、メイン制御部41は、まず、使用している可能性がある全てのレジスタをスタック領域に退避する(Si1)。
次いで、コマンドを出力するパラレル出力ポート513を含む全ての出力ポートを初期化する(Si2)。これにより電断時コマンド送信処理により最後に出力されたコマンドに対応する出力ポートの出力状態が初期化される。そして、破壊診断用データを遊技RAM領域にセットする(Si3)。破壊診断用データは、5A(H)、すなわちいずれかのビットに1を含む値である。次いで、遊技RAM領域の全ての領域(未使用領域3を含む)の排他的論理和が0になるようにRAMパリティ調整用データを計算して遊技RAM領域にセットし、遊技スタック領域の全ての領域(未使用領域3、遊技スタック領域(未使用)及び遊技スタック領域(使用中))の排他的論理和が0になるようにRAMパリティ調整用データを計算して遊技RAM領域にセットし(Si4)、RAM41cへのアクセスを禁止する(Si5)。その後、電圧が低下してメイン制御部41のCPU41aが停止して待機状態に移行する。そして、この待機状態のまま電圧が低下することで、メイン制御部41は、内部的に動作停止状態になり、電断の際に確実に動作停止する。
尚、本実施例では、電断処理において対象となる領域の演算結果が特定の値(本実施例では0)となるように調整用データを対象となる領域に設定し、起動処理において対象となる領域の演算結果が特定の値となるか否かによってRAM41cのデータが正常か否かを判定しているが、電断処理において対象となる領域の演算結果と、起動処理において対象となる領域の演算結果と、が一致するか否かによってRAM41cのデータが正常か否かを判定する構成としても良い。また、演算方法は、排他的論理和に限らず、他の演算方法(例えば、総和)を用いても良い。
また、本実施例では、電断処理において未使用領域3を含む遊技RAM領域の全ての領域に格納されたデータを用いてRAMパリティ調整用データを算出し、起動処理において未使用領域3を含む遊技RAM領域の全ての領域に格納されたデータを用いて算出されたRAMパリティに基づいてRAM41cが正常か否かを判定するようになっており、未使用領域3に不正なプログラムが記憶された場合には、RAM異常と判定されるため、未使用領域3に不正なプログラムが記憶されることを防止できる。
尚、本実施例では、電断処理において未使用領域3を含む遊技RAM領域の全ての領域に格納されたデータを用いてRAMパリティ調整用データを算出し、起動処理において未使用領域3を含む遊技RAM領域の全ての領域に格納されたデータを用いて算出されたRAMパリティに基づいてRAM41cが正常か否かを判定する構成であるが、未使用領域3を含む遊技RAM領域のRAMパリティ調整用データを計算して遊技RAM領域にセットするとともに、非遊技RAM領域のRAMパリティ調整用データを計算して非遊技RAM領域にセットし、起動処理において未使用領域3を含む遊技RAM領域に格納されたデータを用いて算出されたRAMパリティ、及び非遊技RAM領域に格納されたデータを用いて算出されたRAMパリティに基づいてRAM41cが正常か否かを判定する構成としても良い。このような構成においては、遊技RAM領域または非遊技RAM領域に不正なプログラムが記憶された場合には、RAM異常と判定されるため、遊技RAM領域または非遊技RAM領域のいずれにおいても不正なプログラムが記憶されることを防止できる。
また、本実施例では、メイン制御部41は、スロットマシン1への電力供給が停止され、電断検出回路48により電源電圧の低下が検出されたときに電断処理を実行し、電断処理において、RAM41cへのアクセスを禁止することで、遊技RAM領域及び非遊技RAM領域の双方へのアクセスを禁止するので、次回起動時にデータが破壊されているか否かの判定対象外となる非遊技RAM領域を利用して不正なデータが記憶されることを防止できる。
本実施例のスロットマシン1は、流路切替板147を非案内位置に位置させることで、メダル投入口4から投入されたメダルがメダル返却通路132側に流下する一方、流路切替板147を案内位置に位置させることで、メダル投入口4から投入されたメダルがホッパータンク34a側に流下するメダルセレクタ29を備えており、メイン制御部41は、流路切替ソレノイド30をoffの状態とすることで、流路切替板147を非案内位置に位置させる一方、流路切替ソレノイド30をonの状態とすることで、流路切替板147を案内位置に変化させることが可能な構成である。
このような構成において、メイン制御部41は、流路切替ソレノイド30のon‐offの状態を制御して、メダルセレクタ29のメダル流路を所定の流路側に切り替える際に、前回の切替制御に基づいて認識している流路の切替状況に応じて流路を切り替える制御を行う構成とすると、何らかの理由で、認識している切替状況と実際の切替状況とが一致していない場合には、メダル流路が所定の流路側に切り替えられない虞がある。
これに対して、本実施例のメイン制御部41は、精算処理を実行するときに、既に流路切替ソレノイド30をonの状態に設定する処理が行われているか否かに関わらず、流路切替ソレノイド30に対応する出力ポートの値をoffを示す値に設定することで、メダルセレクタ29の流路切替板147を非案内位置に位置させて、メダル流下通路133を返却部137側に切り替えるようになっており、精算処理を行うに際して確実にメダル返却通路132側に切り替えることができる。
また、本実施例のメイン制御部41は、設定確認処理を実行するときに、既に流路切替ソレノイド30をonの状態に設定する処理が行われているか否かに関わらず、流路切替ソレノイド30に対応する出力ポートの値をoffを示す値に設定することで、メダルセレクタ29の流路切替板147を非案内位置に位置させて、メダル流下通路133を返却部137側に切り替えるようになっており、設定確認処理を行うに際して確実にメダル返却通路132側に切り替えることができる。
また、本実施例のメイン制御部41は、開始待ち中エラー処理を実行するときに、既に流路切替ソレノイド30をonの状態に設定する処理が行われているか否かに関わらず、流路切替ソレノイド30に対応する出力ポートの値をoffを示す値に設定することで、メダルセレクタ29の流路切替板147を非案内位置に位置させて、メダル流下通路133を返却部137側に切り替えるようになっており、開始待ち中エラー処理を行うに際して確実にメダル返却通路132側に切り替えることができる。
また、本実施例のメイン制御部41は、精算処理、設定確認処理、開始待ち中エラー処理において、当該各処理を開始したときに、メダルの投入可能を示す投入可能フラグをクリアすることで、メダルの投入が不可能な状態とした後、流路切替ソレノイド30をoffの状態に設定するようになっており、投入可能フラグがクリアされることで、投入メダルセンサ31a〜cに基づくメダルの投入判定が行われない状態とすることで、意図せずに投入メダルセンサ31の出力に基づいてメダルが検出されてしまうことを防止できる。
尚、本実施例では、メイン制御部41は、投入可能フラグがクリアされている状態では、投入メダルセンサ31a〜cに基づくメダルの投入判定が行われない状態とすることで、投入メダルセンサ31a〜cによるメダルの検出を無効化する構成であるが、投入可能フラグがクリアされている状態で投入メダルセンサ31a〜cによるメダルの検出を無効となる構成であっても良い。
また、本実施例のメイン制御部41は、精算処理、設定確認処理、開始待ち中エラー処理の各処理の終了時において、メダルの投入が可能な状態か否かを判定する投入可否判定処理を行い、投入可否判定処理の判定結果に応じて投入可能な状態であれば投入可能フラグを設定し、その後、メダルの投入判定が行われるとともに、投入可能フラグが設定されていることを条件に、流路切替ソレノイド30をonの状態に設定し、メダル流下通路133がホッパータンク34a側に切り替えられるようになっており、流下通路133がホッパータンク34a側に切り替わったときに、流下するメダルの投入判定が行われることなく、ホッパータンク34aへ流下してしまうことを防止できる。
また、本実施例のメイン制御部41は、精算処理、設定確認処理、エラー処理の各処理の終了時において、投入可否判定処理を呼び出して実行し、賭数とクレジットの値と賭数の値との和が、投入可能な最大のメダル数に達している場合は、投入可能フラグをクリアする一方で、賭数とクレジットの値と賭数の値との和が、投入可能な最大のメダル数に達していない場合は、投入可能フラグを設定し、その後投入可否判定処理での判定結果、すなわち投入可能フラグが設定されているか否かに応じて、流路切替ソレノイド30のon‐offの状態が切り替えるようになっている。
特に精算処理の終了後は、クレジットが0のはずであり、上記のような判定をする必要はないが、設定確認処理、エラー処理と同様に共通モジュール化された投入可否判定処理を実行し、投入可否判定処理における判定結果に応じて、流路切替ソレノイド30をon‐offの状態を切り替えるようにすることで、精算処理、設定確認処理、エラー処理の各処理の終了後に、流路切替ソレノイド30を切り替える制御に係るプログラムの容量を削減できる。
尚、本実施例では、精算処理、設定確認処理、エラー処理の各処理の終了時において、投入可否判定処理を実行し、投入可否判定処理における判定結果に応じて、流路切替ソレノイド30をon‐offの状態を切り替える構成であるが、精算処理、設定確認処理、エラー処理の各処理の開始前にメダルが投入可能な状態であったか否かを記憶しておき、精算処理、設定確認処理、エラー処理の各処理の終了時に開始前の状態に応じて流路切替ソレノイド30をon‐offの状態を切り替える構成であっても良い。
また、本実施例のメイン制御部41は、精算処理、設定確認処理、エラー処理の各処理を開始するときに、該当する処理を開始する旨を示すコマンドをサブ制御部91に対して送信し、サブ制御部91は、当該コマンドに応じて該当する処理が実行される旨を報知するので、精算処理、設定確認処理、エラー処理の各処理が行われているときに、メダルの投入が不可能であることを遊技者に報知することができる。
また、本実施例のメイン制御部41は、流路切替ソレノイド30がonからoffに切り替わったときには、検出時間無効化タイマが設定され、その後所定期間にわたり投入メダルセンサ31a〜cの検出時間がメダル詰まり判定時間を超えてもメダル詰まりエラーが判定されないようになっており、メダルの流下経路が流出口142側からメダル返却通路132側に切り替わった後、投入されたメダルが勢いでメダル流下通路133を流出口142側に流下してしまった際に、メダルの通過速度が通常よりも遅くなってもメダル詰まりエラーと判定されてしまうことがなく、いわゆるメダルの飲み込みにより異常検出が頻発してしまうことを防止できる。
また、本実施例のメイン制御部41は、精算処理、設定確認処理、エラー処理の各首里を開始するときに、流路切替ソレノイド30をoffの状態にするときに、投入要求LED17を消灯させるので、精算処理、設定確認処理、エラー処理の各処理において、メダを投入できないことを、遊技者に報知することができる。
本実施例のスロットマシン1は、メダル投入口4から投入されたメダルの真偽を判別するメダルセレクタ29を備え、メイン制御部41は、メダルセレクタ29のメダル流下通路133を、メダルをホッパータンク34a側に導く流路と、メダルをメダル払出口9側に導く流路と、に切替可能であり、ホッパータンク34a側に導かれたメダル数が上限値(本実施例では、賭数の規定数とクレジットの最大数の和)に到達することで、メダル流下通路133をメダル払出口9側に導く流路に切り替える構成であり、メイン制御部41は、賭数またはクレジットに記憶されているメダルを返却する精算処理を行った後、メダル流下通路133をホッパータンク34a側に導く流路に切り替える構成である。
このような構成では、精算終了後は、本来であれば投入されたメダル数が上限数に達していることはないはずであるので、精算終了に伴ってメダルの投入を許可する構成とすると、不具合によりクレジットの精算が正常に行われなかった場合に、賭数とクレジットに記憶されているメダル数が上限値に達している状態のまま、精算の終了後にメダルの投入が許可されてしまう虞がある。
これに対して、本実施例のメイン制御部41は、精算処理の終了時に、クレジットとして記憶されているメダル数が上限数に達しているか否かを判定する投入可否処理を実行して、上限数に達していると判定された場合には投入可能フラグをクリアして、メダルの投入が不可能な状態とし、上限数に達していないと判定された場合には、投入可能フラグを設定して、メダルの投入が可能な状態とするので、不具合により精算処理が正常に行われずに終了した場合でも、クレジットに記憶されているメダル数が上限数に達している状態のまま、精算処理の終了後にメダルの投入が可能な状態とされてしまうことを防止できる。
また、本実施例のメイン制御部41は、精算処理、設定確認処理、開始待ち中エラー処理などの複数の処理において、クレジットに記憶しているメダル数が上限に達しているか否かを判定する投入可否判定処理を呼び出すことが可能であり、投入可否判定処理は、種々の処理に基づいて呼び出すことが可能な共通モジュールとして遊技プログラムに含まれているので、複数の処理において賭数またはクレジットに記憶されているメダル数が上限数に達しているか否かを判定する処理に要するプログラム容量を削減することができる。
本実施例のメイン制御部41は、クレジットに記憶しているメダル数が上限数に達しているか否かを判定する投入可否判定処理において、クレジットに記憶されているメダル数があと1加算されることで上限数に達するか否かを判定する処理を含むので、投入可否判定処理により賭数またはクレジットに記憶されているメダル数が上限数に達するか否かだけでなく、あと1加算されることで上限数に達するか否かも特定することができ、あと1加算されることで上限数に達することが特定された場合にメダルの投入を禁止するための準備を行うことが可能となる。
メイン制御部41は、クレジットに記憶しているメダル数が上限数に達しているか否かを判定する投入可否判定処理を実行可能な構成であって、プログラム及びデータが記憶されるROM41bを備え、ROM41bは、プログラムが記憶されるプログラム領域(遊技プログラム領域及び非遊技プログラム領域)と、プログラムが用いる固定データが記憶されるデータ領域(遊技データ領域及び非遊技データ領域)と、を含み、投入可否判定処理において賭数またはクレジットに記憶しているメダル数が上限数に達しているか否かを判定する上限数は、ROM41bのプログラム領域ではなくデータ領域に記憶されているので、将来的に投入可否判定処理で用いる上限数を変更する場合でもプログラムを変更することなく上限数のみ変更することができる。
また、本実施例のメイン制御部41は、精算処理を開始するときに、精算処理を開始する旨を示す精算開始コマンドをサブ制御部91に対して送信し、サブ制御部91は、当該精算開始コマンドを受信することで精算処理が実行される旨を報知する精算中報知を行い、メイン制御部41は、精算処理の終了後、投入可否判定処理において投入可能フラグが設定されて、メダルの投入が可能な状態となった後に、精算処理を終了する旨を特定可能な精算終了コマンドをサブ制御部91に対して送信し、サブ制御部91は、当該精算終了コマンドを受信することで精算中報知を終了させるので、精算中報知が終了されているにも関わらずメダルの投入が制限されてしまうことを防止できる。尚、設定確認処理、開始待ち中エラー処理においても同様である。
次に、メイン制御部41が遊技の進行制御等に用いる時間間隔を計測するためのタイマカウンタについて、図23〜図25に基づいて説明する。
メイン制御部41は、計時開始条件が成立したときに、RAM41cの遊技RAM領域に割り当てられたタイマカウンタのタイマ値として計時時間に応じた初期値を設定するとともに、タイマ割込処理(メイン)において定期的にタイマ値を減算し、タイマ値が0となることで計時時間が経過したことを特定するようになっている。
詳しくは、メイン制御部41は、メイン処理において計時開始条件が成立したときに、当該条件に応じたタイマカウンタが割り当てられた領域に計時時間に応じたタイマ値の初期値を設定する。設定されたタイマ値は、タイマ割込処理(メイン)の時間カウンタ更新処理において、約2.24ms毎に0となるまで1ずつ減算される。
そして、メイン処理では、図23に示すように、該当するタイマカウンタのアドレスを取得し(Sj1)、取得した値を読み出し(Sj2)、読み出した値が0でないか否かを判定し(Sj3)、読み出した値が0であると判定した場合に、計時時間が経過したことを特定する。
本実施例において用いるタイマカウンタは、図24に示すように、初期値が1バイト以下の1バイトタイマA、1バイトタイマB、1バイトタイマC、初期値が1バイトを超え、2バイト以下の2バイトタイマA、2バイトタイマB、2バイトタイマC、2バイトタイマDを含む。
1バイトタイマは、1バイト以内のタイマ値にて計測可能な比較的短い期間を計測するためのタイマであり、例えば、外部出力信号の出力期間を計測する外部出力信号タイマ、LEDの出力更新期間を計測するLED更新タイマ、停止操作の検出後、再度の停止操作が有効化されるまでの期間を計測する停止無効タイマ、リール停止後、メダルの払出が開始するまでの期間を計測する払出待ちタイマ、投入メダルセンサ31a〜cのonが検出されてからの期間を計測する投入検出タイマ、投入口センサ26のonが検出されてからの期間を計測する投入口検出タイマ、払出センサ34cのonが検出されてからの期間を計測する払出検出タイマ、リール回転開始後、停止操作が有効となるまでの期間を計測する始動時タイマなどがある。このうち停止無効タイマ、払出待ちタイマ、始動時タイマは、これらのタイマによる計測期間が1遊技の終了するタイミングを跨ぐことはないが、外部出力信号タイマ、LED更新タイマ、投入検出タイマ、投入口検出タイマ、払出検出タイマは、これらのタイマによる計測時間が1遊技の終了するタイミングを跨ぐことがある。
2バイトタイマは、1バイト以内のタイマ値では計測できない比較的長い期間を計測するためのタイマであり、例えば、1遊技に必要な規定時間(約4.1秒)を計測する1遊技時間タイマ、外部出力信号のうちセキュリティ信号の最低出力期間を計測するセキュリティ信号タイマ、遊技終了からの期間を計測する待機時間タイマ、ホッパーモータ34bの駆動後、払出センサ34cが検出されない期間を計測するホッパーエンプティタイマなどがある。このうち待機時間タイマ、ホッパーエンプティタイマは、これらのタイマによる計測期間が1遊技の終了するタイミングを跨ぐことはないが、1遊技時間タイマ、セキュリティ信号タイマは、これらのタイマによる計測時間が1遊技の終了するタイミングを跨ぐことがある。
このようにタイマカウンタは、1遊技の終了するタイミング、すなわち遊技の進行に応じてRAM41cの一部が初期化されるタイミング(1遊技の終了時または特定の遊技状態の終了時においてRAM41cの一部が初期化されるタイミング)を跨ぐ計測期間を計測するタイマカウンタと、遊技の進行に応じてRAM41cの一部が初期化されるタイミングを跨ぐことのないタイマカウンタと、を含むが、いずれのタイマカウンタも遊技の進行に応じたタイミングでは初期化されることのない特別ワークに割り当てられている。
これらタイマカウンタのうち1バイトタイマA〜Cは、RAM41cの連続する3バイトの領域(804CH〜804EH)に1バイトずつ割り当てられており、2バイトタイマA〜Dは、RAM41cの連続する8バイトの領域(804FH〜8055h)に2バイトずつ割り当てられている。さらに、1バイトタイマA〜C、2バイトタイマA〜DもRAM41cの連続する領域に割り当てられている。以下では、1バイトタイマA〜Cが割り当てられた領域を1バイトタイマ群と呼び、2バイトタイマA〜Dが割り当てられた領域を2バイトタイマ群と呼ぶ。すなわち1バイトタイマ群及び2バイトタイマ群はいずれも、所定の規則で連続するアドレスが割り当てられた領域に設定されている。尚、所定の規則で連続するアドレスが割り当てられる領域とは、例えば、開始アドレス及び開始アドレスからN(Nは自然数)ずつ加算されるアドレスが割り当てられる領域である。
図25は、時間カウンタ更新処理の制御内容を示すフローチャートである。
時間カウンタ更新処理では、まず、1バイト用処理回数として、更新すべき1バイトのタイマカウンタの数(本実施例では3)をセットし(Sk1)、1バイトタイマ群の先頭アドレス(804CH)にポインタをセットする(Sk2)。
次いで、指定アドレス(ポインタが示すアドレス)に格納された1バイトの値が0でなければ指定アドレスの1バイトの値を1減算し(Sk3)、Sk1のステップで設定した処理回数を1減算し(Sk4)、減算後の処理回数が0か否かを判定する(Sk5)。
Sk5のステップで減算後の処理回数が0でない場合、すなわち全ての1バイトタイマの更新が終了していない場合には、ポインタを1加算し(Sk6)、Sk3のステップに戻る。これにより、未処理の1バイトタイマのアドレスにポインタが移動し、指定アドレスの1バイトの値が0でなければ減算される。
Sk5のステップで減算後の処理回数が0の場合、すなわち全ての1バイトタイマの更新が終了した場合には、2バイト用処理回数として、更新すべき2バイトのタイマカウンタの数(本実施例では4)をセットし(Sk7)、ポインタを1加算する(Sk8)。これにより、2バイトカウンタ群の先頭アドレス(804FH)にポインタが移動する。
次いで、指定アドレス(ポインタが示すアドレス)及び次のアドレスからなる領域に格納された2バイトの値が0でなければ指定アドレス及び次のアドレスの2バイトの値を1減算し(Sk9)、Sk7のステップで設定した処理回数を1減算し(Sk10)、減算後の処理回数が0か否かを判定する(Sk11)。
Sk11のステップで減算後の処理回数が0でない場合、すなわち全ての2バイトタイマの更新が終了していない場合には、ポインタを2加算し(Sk12)、Sk9のステップに戻る。これにより、未処理の2バイトタイマのアドレスにポインタが移動し、指定アドレス及び次のアドレスの2バイトの値が0でなければ減算される。
Sk11のステップで減算後の処理回数が0の場合、すなわち全ての2バイトタイマの更新が終了した場合には、処理を終了する。
このように本実施例では、RAM41cに割り当てられたタイマカウンタの値を定期的に更新し、特定の値(0)となることで時間の経過を特定するようになっている。従来は、複数種類の時間間隔を計測する場合に、計時を要する複数種類の処理内で、タイマ値の設定及び更新を行っており、複数種類のタイマ値を更新するためのプログラムをそれぞれの処理内に設ける必要があるため、プログラム容量が増大する要因となっていた。また、複数種類のタイマカウンタは、それぞれが用いられる処理毎のデータ群として割り当てられているため、一の処理においてまとめて更新するためには、それぞれの関連性のないアドレスの値を読み出す必要があった。
これに対して本実施例では、複数種類のタイマカウンタ値が格納される領域がRAM41cの所定の規則で連続するアドレスが割り当てられた領域に設定されるとともに、指定アドレスに格納されたタイマ値を更新する処理を、現在の指定アドレスに対して定数を加算することで複数種類のタイマカウンタ値が格納された領域に対する指定アドレスを変更しながら繰り返し実行することにより複数種類のタイマ値を更新するので、複数種類のアドレスをそれぞれ指定して当該アドレスの値を更新する処理を個々の処理で行う場合よりもプログラム容量を削減することができる。
尚、指定アドレスに格納されたタイマ値を更新する処理を、所定の演算を行うことで複数種類のタイマカウンタ値が格納された領域に対する指定アドレスを変更しながら繰り返し実行することにより複数種類のタイマ値を更新する構成であれば良く、例えば、現在の指定アドレスに対して定数を加算することで複数種類のタイマカウンタ値が格納された領域に対する指定アドレスを変更しながら繰り返し実行することにより複数種類のタイマ値を更新する構成でも良いし、基準アドレスに対して処理数に応じた値(例えば、1バイトカウンタであれば、処理数1の場合に+1、処理数2の場合に+2、処理数3の場合に+3…)を加算または減算することで複数種類のタイマカウンタ値が格納された領域に対する指定アドレスを変更しながら繰り返し実行することにより複数種類のタイマ値を更新する構成でも良い。
また、本実施例では、1バイトタイマA〜C、2バイトタイマA〜Dの7種類のタイマカウンタの値を備える構成であるが、少なくとも2種類以上のタイマカウンタの値をRAM41cの所定の規則で連続するアドレスが割り当てられた領域に設定し、指定アドレスに格納されたタイマ値を更新する処理を、所定の演算を行うことで複数種類のタイマ値が格納された領域に対する指定アドレスを変更しながら繰り返し実行することにより2種類以上のタイマ値を更新する構成であれば、上記のようにプログラム容量を削減することができる。
また、1バイトタイマまたは2バイトタイマの一方のみ、タイマカウンタの値をRAM41cの所定の規則で連続するアドレスが割り当てられた領域に設定し、指定アドレスに格納されたタイマ値を更新する処理を、所定の演算を行うことで複数種類のタイマ値が格納された領域に対する指定アドレスを変更しながら繰り返し実行することにより複数種類のタイマ値を更新する構成でも良い。
また、メイン制御部41が備える一部のタイマカウンタのみ、タイマ値をRAM41cの所定の規則で連続するアドレスが割り当てられた領域に設定し、指定アドレスに格納されたタイマ値を更新する処理を、所定の演算を行うことで複数種類のタイマ値が格納された領域に対する指定アドレスを変更しながら繰り返し実行することにより複数種類のタイマ値を更新する構成でも良い。
また、本実施例では、計測する期間の種類毎に別個のタイマカウンタを備える構成であるが、例えば、計測する期間が重複しない複数種類の期間について一のタイマカウンタを共用する構成としても良い。
また、本実施例では、メイン制御部41が実行する処理として、遊技の進行状況に関わらず予め定められた処理を定期的に行うタイマ割込処理(メイン)と、遊技の進行状況に応じて段階的に異なる処理を行うメイン処理と、を含み、メイン制御部41は、メイン処理において計時条件が成立した場合にタイマカウンタに初期値を設定し、タイマ割込処理(メイン)において複数種類のタイマ値を更新するようになっており、メイン処理を構成する各処理内に複数種類のタイマ値を更新する処理を設ける必要がないため、複数種類のタイマ値の更新に係るプログラム容量を削減することができる。
尚、本実施例では、メイン処理に定期的に割り込んでタイマ割込処理(メイン)を実行する構成であるが、定期的に行うタイマ割込処理内で、遊技の進行状況に関わらず予め定められた処理を行う定期処理と、遊技の進行状況に応じて段階的に異なる処理を行うメイン処理と、の双方を行う構成としても良く、このような構成においても、メイン制御部41は、メイン処理において計時条件が成立した場合にタイマカウンタに初期値を設定し、定期処理において複数種類のタイマ値を更新する構成とすることで、メイン処理を構成する各処理内に複数種類のタイマ値を更新する処理を設ける必要がないため、複数種類のタイマ値の更新に係るプログラム容量を削減することができる。
また、本実施例では、時間カウンタ更新処理において、指定アドレスの値が0でないことを条件に当該アドレスの値を更新するようになっており、タイマ値が異常な値に更新されてしまうことを防止できる。
また、本実施例では、時間カウンタ更新処理において、更新するタイマカウンタの数と同数の処理数を設定し、設定した処理数分、タイマ値を更新する処理を繰り返し実行する構成であるため、更新するタイマカウンタの数の管理が容易になるとともに、例えば、更新間隔が異なる複数種類のタイマカウンタを備える場合などに、設定する処理数に応じて更新するタイマ値の種類を任意に設定することができる。
尚、処理数、すなわち更新するタイマカウンタの数は、プログラムに設定されていても良いし、テーブルに設定された値を読み出して設定するようにしても良い。
また、最初に処理数を設定することなく、最後に更新するタイマカウンタを予め設定するとともに、当該タイマカウンタのアドレスに到達するまでタイマ値を更新する処理を繰り返し実行する構成としたり、最後に更新するタイマカウンタの次のアドレスに特定のエンド値(例えば、FFh)を格納し、指定アドレスから読み出された値が特定のエンド値となるまでタイマ値を更新する処理を繰り返し実行する構成としても良い。
また、本実施例では、1バイトのタイマカウンタと、2バイトのタイマカウンタと、を備え、1バイトのタイマ値を更新する処理と、2バイトのタイマ値を更新する処理と、を別個に備えるため、1バイトのタイマ値を更新する処理と、2バイトのタイマ値を更新する処理と、を共通化する場合よりもプログラムの容量やRAM41cにおいてタイマ値が占有する容量を削減することができる。
尚、本実施例では、2バイトのタイマカウンタを備えることで1バイトを超える初期値に対応する相対的に長い時間を計測する構成であるが、例えば、更新間隔が異なるタイマカウンタ、例えば、タイマ割込処理(メイン)4回に1回更新する第1のタイマカウンタと、14回に1回更新する第2のタイマカウンタと、を備えることにより、2バイトのカウンタを設けることなく、相対的に長い時間間隔を計測する構成としても良く、このようにすることで、1バイトのタイマ値を更新する処理と、2バイトのタイマ値を更新する処理と、それぞれ設ける必要がなくなるため、タイマ値の更新に係るプログラム容量を削減できる。
また、本実施例では、複数種類のタイマカウンタがRAM41cにおいて遊技の進行に応じて初期化されることのない特別ワークに割り当てられており、遊技の進行に応じて初期化されることがないため、遊技の進行状況に関わらず、遊技の進行に応じてRAM41cの一部が初期化されるタイミングを跨ぐ期間の時間を計測することができる。
特に、本実施例では、計測期間が1遊技の終了するタイミング、すなわち遊技の進行に応じてRAM41cの一部が初期化されるタイミングを跨ぐことのあるタイマカウンタだけでなく、計測期間が遊技の進行に応じてRAM41cの一部が初期化されるタイミングを跨ぐことのないタイマカウンタについても他のタイマカウンタとともに特別ワークに割り当てられた領域に格納されているため、タイマカウンタの管理が容易になるとともに、計測期間が遊技の進行に応じてRAM41cの一部が初期化されるタイミングを跨ぐことのないタイマカウンタを、計測期間が遊技の進行に応じてRAM41cの一部が初期化されるタイミングを跨ぐことのあるタイマカウンタに変更する等、後の設計変更等によりタイマカウンタの用途を容易に変更することができる。また、上記のように計測する期間が重複しない複数種類の期間について一のタイマカウンタを共用する構成であれば、遊技の進行に応じてRAM41cの一部が初期化されるタイミングを跨ぐことのある計測期間と、遊技の進行に応じてRAM41cの一部が初期化されるタイミングを跨ぐことのない計測期間と、を一のタイマカウンタにて計測することが可能となる。
以上、本発明の実施例を図面により説明してきたが、本発明はこの実施例に限定されるものではなく、本発明の主旨を逸脱しない範囲における変更や追加があっても本発明に含まれることは言うまでもない。
前記実施例では、本発明を遊技用価値としてメダル並びにクレジットを用いて賭数が設定されるスロットマシンに適用した例について説明したが、遊技用価値として遊技球を用いて賭数を設定するスロットマシンや、遊技用価値としてクレジットのみを使用して賭数を設定する完全クレジット式のスロットマシンに適用しても良い。遊技球を遊技用価値として用いる場合は、例えば、メダル1枚分を遊技球5個分に対応させることができ、前記実施例で賭数として3を設定する場合は、15個の遊技球を用いて賭数を設定するものに相当する。
さらに、メダル及び遊技球等の複数種類の遊技用価値のうちいずれか1種類のみを用いるものに限定されるものではなく、例えば、メダル及び遊技球等の複数種類の遊技用価値を併用できるものであっても良い。すなわち、メダル及び遊技球等の複数種類の遊技用価値のいずれを用いても賭数を設定してゲームを行うことが可能であり、かつ入賞の発生によってメダル及び遊技球等の複数種類の遊技用価値のいずれをも払い出し得るスロットマシンを適用しても良い。
前記実施例では、遊技機としてのスロットマシンを適用しているが、遊技機は、スロットマシン1に限らず、遊技球を用いるパチンコ遊技機等、スロットマシン以外の遊技機に適用しても良い。
1 スロットマシン
2L、2C、2R リール
6 MAXBETスイッチ
7 スタートスイッチ
8L、8C、8R ストップスイッチ
12 遊技補助表示器
41 メイン制御部
41c RAM
91 サブ制御部
91c RAM

Claims (1)

  1. 遊技を行う遊技機において、
    プログラムを記憶する記憶手段と、
    該記憶手段に記憶されたプログラムに従った処理を実行するマイクロコンピュータと、
    を備え、
    プログラムは、割込の発生に応じて実行される割込プログラムを含み、
    前記マイクロコンピュータは、
    前記記憶手段における割込プログラムのアドレスを記憶可能な記憶領域を有するアドレス記憶手段と、
    前記アドレス記憶手段の記憶領域で記憶しているアドレスが所定の範囲にあるか否かを前記マイクロコンピュータの起動時に判定する判定手段と、
    前記マイクロコンピュータの起動を制限する起動制限手段と、を備え、
    前記起動制限手段は、前記アドレス記憶手段の記憶領域で記憶しているアドレスが所定の範囲にないと前記判定手段が判定したときに、前記マイクロコンピュータの起動を制限し、
    前記記憶手段には、遊技を進行させるための第1プログラムと、前記第1プログラムと異なる第2プログラムと、が記憶され、
    前記マイクロコンピュータは、さらに、
    前記マイクロコンピュータの起動時に前記第1プログラムおよび前記第2プログラムが記憶されている記憶領域を設定する記憶領域設定手段と、
    記記憶領域設定手段が設定した記憶領域以外の領域で記憶しているプログラムが実行されたときに異常制御を実行する異常制御実行手段と、を備え、
    前記記憶領域設定手段は、前記第1プログラムが記憶されている記憶領域と、前記第2プログラムが記憶されている記憶領域と、を各々設定する、遊技機。
JP2019213868A 2019-11-27 2019-11-27 遊技機 Active JP6792691B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019213868A JP6792691B2 (ja) 2019-11-27 2019-11-27 遊技機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019213868A JP6792691B2 (ja) 2019-11-27 2019-11-27 遊技機

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015171478A Division JP2017046844A (ja) 2015-08-31 2015-08-31 遊技機

Publications (2)

Publication Number Publication Date
JP2020028747A JP2020028747A (ja) 2020-02-27
JP6792691B2 true JP6792691B2 (ja) 2020-11-25

Family

ID=69623343

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019213868A Active JP6792691B2 (ja) 2019-11-27 2019-11-27 遊技機

Country Status (1)

Country Link
JP (1) JP6792691B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021037358A (ja) * 2015-10-22 2021-03-11 株式会社三共 遊技機

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6280733A (ja) * 1985-10-04 1987-04-14 Nec Corp 情報処理装置
JPS6448617A (en) * 1987-08-20 1989-02-23 Nippon Steel Corp Cold rolling method
JP2004242717A (ja) * 2003-02-10 2004-09-02 Sankyo Kk 遊技機
JP5552609B2 (ja) * 2008-03-03 2014-07-16 株式会社高尾 遊技機

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021037358A (ja) * 2015-10-22 2021-03-11 株式会社三共 遊技機

Also Published As

Publication number Publication date
JP2020028747A (ja) 2020-02-27

Similar Documents

Publication Publication Date Title
JP6677984B2 (ja) 遊技機
JP2017046844A (ja) 遊技機
JP6685687B2 (ja) スロットマシン
JP6654837B2 (ja) 遊技機
JP6586118B2 (ja) 遊技機
JP2018175782A (ja) 遊技機
JP6999844B2 (ja) 遊技機
JP6820683B2 (ja) スロットマシン
JP6600660B2 (ja) 遊技機
JP6806435B2 (ja) 遊技機
JP6792691B2 (ja) 遊技機
JP2018143628A (ja) 遊技機
JP6570566B2 (ja) 遊技機
JP6792692B2 (ja) 遊技機
JP6756893B2 (ja) 遊技機
JP6756894B2 (ja) 遊技機
JP6816939B2 (ja) 遊技機
JP6824657B2 (ja) スロットマシン
JP6735626B2 (ja) 遊技機
JP6600659B2 (ja) 遊技機
JP6676576B2 (ja) 遊技機
JP6570564B2 (ja) 遊技機
JP6685686B2 (ja) スロットマシン
JP6626292B2 (ja) 遊技機
JP6816940B2 (ja) 遊技機

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201016

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: 20201104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201106

R150 Certificate of patent or registration of utility model

Ref document number: 6792691

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250