• ポートフォリオ機能


ポートフォリオを新規に作成して保存
既存のポートフォリオに追加保存

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 訂正 ただし書き1号特許請求の範囲の減縮 訂正する A63F
審判 訂正 ただし書き3号明りょうでない記載の釈明 訂正する A63F
管理番号 1313284
審判番号 訂正2015-390137  
総通号数 198 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2016-06-24 
種別 訂正の審決 
審判請求日 2015-12-08 
確定日 2016-02-18 
訂正明細書 有 
事件の表示 特許第5747277号に関する訂正審判事件について、次のとおり審決する。 
結論 特許第5747277号の明細書及び特許請求の範囲を本件審判請求書に添付された訂正明細書及び特許請求の範囲のとおり訂正後の請求項1?8について訂正することを認める。 
理由 1 手続の経緯
本件審判請求に係る特許第5747277号(以下「本件特許」という。)は、平成24年7月31日に出願した特願2012-170675号の一部を平成26年2月17日に新たな特許出願(特願2014-27503号)としたものであって、平成27年5月22日にその特許権の設定登録がなされ、平成27年12月8日(差出日)に本件訂正審判の請求がなされたものである。

2 請求の趣旨
本件審判の請求の趣旨は、本件特許の願書に添付した明細書及び特許請求の範囲を審判請求書に添付した訂正明細書及び特許請求の範囲のとおり、訂正後の請求項1?8について訂正することを認めるとの審決を求めるものである(以下、願書に添付した明細書、特許請求の範囲又は図面を「願書に添付した明細書等」という。また、下線部は訂正部分である。)。

3 訂正の内容
(1)訂正事項1
本件特許請求の範囲の請求項1における
「前記複数種類の命令のうちの一の命令(以下、「第一の命令」という。)は、ジャンプ先アドレスを特定可能に構成されたジャンプ命令であり、」を、
「前記複数種類の命令のうちの一の命令(以下、「第一の命令」という。)は、ジャンプ先アドレスを特定可能に構成された演算&ジャンプ命令であり、」と訂正する。

(2)訂正事項2
本件特許請求の範囲の請求項1における
「前記CPUは、前記第一の命令を受け付けた場合に、前記第一のレジスタの値が0ではない場合に、前記第一のゼロフラグおよび前記第二のゼロフラグ(以下、「2つのゼロフラグ」という。)をクリアし、前記ジャンプ先アドレスにジャンプする動作を実行するように構成され、」を、
「前記CPUは、前記第一の命令を受け付けた場合に、前記第一のレジスタの値から0を減算する演算を行い、該演算の結果が0ではない場合に、前記第一のゼロフラグおよび前記第二のゼロフラグ(以下、「2つのゼロフラグ」という。)をクリアし、前記ジャンプ先アドレスにジャンプする動作を実行するように構成され、」と訂正する。

(3)訂正事項3
本件特許請求の範囲の請求項1における
「前記CPUは、前記第一の命令を受け付けた場合に、前記第一のレジスタの値が0である場合に、前記2つのゼロフラグをセットし、該第一の命令の後続の命令を実行するように構成されており、」を、
「前記CPUは、前記第一の命令を受け付けた場合に、前記第一のレジスタの値から0を減算する演算を行い、該演算の結果が0である場合に、前記2つのゼロフラグをセットし、該第一の命令の後続の命令を実行するように構成されており、」と訂正する。

(4)訂正事項4
本件特許請求の範囲の請求項1における
「前記複数種類の命令のうちの一の命令(以下、「第二の命令」という。)は、リターン命令であり、」を、
「前記複数種類の命令のうちの一の命令(以下、「第二の命令」という。)は、演算&リターン命令であり、」と訂正する。

(5)訂正事項5
本件特許請求の範囲の請求項1における
「前記CPUは、前記第二の命令を受け付けた場合に、前記第二のレジスタの値が0ではない場合に、前記2つのゼロフラグをクリアし、呼び出し元の処理に復帰する動作を実行するように構成され、」を、
「前記CPUは、前記第二の命令を受け付けた場合に、前記第二のレジスタの値から0を減算する演算を行い、該演算の結果が0ではない場合に、前記2つのゼロフラグをクリアし、呼び出し元の処理に復帰する動作を実行するように構成され、」と訂正する。

(6)訂正事項6
本件特許請求の範囲の請求項1における
「前記CPUは、前記第二の命令を受け付けた場合に、前記第二のレジスタの値が0である場合に、前記2つのゼロフラグをセットし、該第二の命令の後続の命令を実行するように構成されており、」を、
「前記CPUは、前記第二の命令を受け付けた場合に、前記第二のレジスタの値から0を減算する演算を行い、該演算の結果が0である場合に、前記2つのゼロフラグをセットし、該第二の命令の後続の命令を実行するように構成されており、」に訂正する。

(7)訂正事項7
本件特許請求の範囲の請求項4を削除する。

(8)訂正事項8
本件特許請求の範囲の請求項5における
「請求項1乃至4のいずれか一項に記載の遊技台であって、」を、
「請求項1乃至3のいずれか一項に記載の遊技台であって、」に訂正する。

(9)訂正事項9
本件特許請求の範囲の請求項6における
「請求項4に記載の遊技台であって、」を、
「請求項1乃至3のいずれか一項に記載の遊技台であって、」に訂正する。

(10)訂正事項10
本件特許請求の範囲の請求項6の「遊技台であって、」の後に
「前記CPUは、複数種類の前記汎用レジスタ(以下、「複数種類の汎用レジスタ」という。)を備えており、前記複数種類の汎用レジスタとは、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ、B’レジスタ、C’レジスタ、D’レジスタ、E’レジスタ、H’レジスタおよびL’レジスタの12種類のレジスタのことであり、」を追加する。

(11)訂正事項11
本件特許請求の範囲の請求項7において
「請求項1乃至6のいずれか一項に記載の遊技台であって、」を、
「請求項1乃至3、5、6のいずれか一項に記載の遊技台であって、」に訂正する。

(12)訂正事項12
本件特許請求の範囲の請求項8において
「請求項4または請求項6に記載の遊技台であって、」を、
「請求項1乃至3、5、6のいずれか一項に記載の遊技台であって、」に訂正する。

(13)訂正事項13
本件特許請求の範囲の請求項8の「遊技台であって、」の後に
「前記CPUは、複数種類の前記汎用レジスタ(以下、「複数種類の汎用レジスタ」という。)を備えており、前記複数種類の汎用レジスタとは、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ、B’レジスタ、C’レジスタ、D’レジスタ、E’レジスタ、H’レジスタおよびL’レジスタの12種類のレジスタのことであり、」を追加する。

(14)訂正事項14
願書に添付した明細書の段落【0006】の
「本発明に係る遊技台は、マイクロプロセッサを備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、前記マイクロプロセッサは、CPUを内蔵するマイクロプロセッサであり、前記マイクロプロセッサは、ROMを内蔵するマイクロプロセッサであり、前記ROMは、複数種類の命令で構成された制御プログラムが記憶されており、前記CPUは、複数種類のレジスタを有し、前記複数種類のレジスタのうちの一のレジスタ(以下、「第三のレジスタ」という。)は、フラグレジスタであり、前記第三のレジスタは、複数のビットから構成されるレジスタであり、前記複数のビットのうちの一のビット(以下、「第一のビット」という。)は、第一のゼロフラグとして機能するビットであり、前記複数のビットのうちの一のビット(以下、「第二のビット」という。)は、第二のゼロフラグとして機能するビットであり、前記CPUは、前記複数種類の命令を実行可能であり、前記複数種類の命令のうちの一の命令(以下、「第一の命令」という。)は、ジャンプ先アドレスを特定可能に構成されたジャンプ命令であり、前記第一の命令は、前記複数種類のレジスタのうちの一のレジスタ(以下、「第一のレジスタ」という。)の値に基づいて動作することを特定可能に構成されており、前記CPUは、前記第一の命令を受け付けた場合に、前記第一のレジスタの値が0ではない場合に、前記第一のゼロフラグおよび前記第二のゼロフラグ(以下、「2つのゼロフラグ」という。)をクリアし、前記ジャンプ先アドレスにジャンプする動作を実行するように構成され、前記CPUは、前記第一の命令を受け付けた場合に、前記第一のレジスタの値が0である場合に、前記2つのゼロフラグをセットし、該第一の命令の後続の命令を実行するように構成されており、前記第一のレジスタは、アキュムレータおよび汎用レジスタのうちの一方のレジスタであり、前記複数種類の命令のうちの一の命令(以下、「第二の命令」という。)は、リターン命令であり、前記第二の命令は、前記複数種類のレジスタのうちの一のレジスタ(以下、「第二のレジスタ」という。)の値に基づいて動作することを特定可能に構成されており、前記CPUは、前記第二の命令を受け付けた場合に、前記第二のレジスタの値が0ではない場合に、前記2つのゼロフラグをクリアし、呼び出し元の処理に復帰する動作を実行するように構成され、前記CPUは、前記第二の命令を受け付けた場合に、前記第二のレジスタの値が0である場合に、前記2つのゼロフラグをセットし、該第二の命令の後続の命令を実行するように構成されており、前記第二のレジスタは、アキュムレータおよび汎用レジスタのうちの一方のレジスタであり、前記CPUによって、前記遊技台の遊技制御が行われる、ことを特徴とする遊技台である。」を、

「本発明に係る遊技台は、マイクロプロセッサを備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、前記マイクロプロセッサは、CPUを内蔵するマイクロプロセッサであり、前記マイクロプロセッサは、ROMを内蔵するマイクロプロセッサであり、前記ROMは、複数種類の命令で構成された制御プログラムが記憶されており、前記CPUは、複数種類のレジスタを有し、前記複数種類のレジスタのうちの一のレジスタ(以下、「第三のレジスタ」という。)は、フラグレジスタであり、前記第三のレジスタは、複数のビットから構成されるレジスタであり、前記複数のビットのうちの一のビット(以下、「第一のビット」という。)は、第一のゼロフラグとして機能するビットであり、前記複数のビットのうちの一のビット(以下、「第二のビット」という。)は、第二のゼロフラグとして機能するビットであり、前記CPUは、前記複数種類の命令を実行可能であり、前記複数種類の命令のうちの一の命令(以下、「第一の命令」という。)は、ジャンプ先アドレスを特定可能に構成された演算&ジャンプ命令であり、前記第一の命令は、前記複数種類のレジスタのうちの一のレジスタ(以下、「第一のレジスタ」という。)の値に基づいて動作することを特定可能に構成されており、前記CPUは、前記第一の命令を受け付けた場合に、前記第一のレジスタの値から0を減算する演算を行い、該演算の結果が0ではない場合に、前記第一のゼロフラグおよび前記第二のゼロフラグ(以下、「2つのゼロフラグ」という。)をクリアし、前記ジャンプ先アドレスにジャンプする動作を実行するように構成され、前記CPUは、前記第一の命令を受け付けた場合に、前記第一のレジスタの値から0を減算する演算を行い、該演算の結果が0である場合に、前記2つのゼロフラグをセットし、該第一の命令の後続の命令を実行するように構成されており、前記第一のレジスタは、アキュムレータおよび汎用レジスタのうちの一方のレジスタであり、前記複数種類の命令のうちの一の命令(以下、「第二の命令」という。)は、演算&リターン命令であり、前記第二の命令は、前記複数種類のレジスタのうちの一のレジスタ(以下、「第二のレジスタ」という。)の値に基づいて動作することを特定可能に構成されており、前記CPUは、前記第二の命令を受け付けた場合に、前記第二のレジスタの値から0を減算する演算を行い、該演算の結果が0ではない場合に、前記2つのゼロフラグをクリアし、呼び出し元の処理に復帰する動作を実行するように構成され、前記CPUは、前記第二の命令を受け付けた場合に、前記第二のレジスタの値から0を減算する演算を行い、該演算の結果が0である場合に、前記2つのゼロフラグをセットし、該第二の命令の後続の命令を実行するように構成されており、前記第二のレジスタは、アキュムレータおよび汎用レジスタのうちの一方のレジスタであり、前記CPUによって、前記遊技台の遊技制御が行われる、ことを特徴とする遊技台である。」に訂正する。

(15)訂正事項15
願書に添付した明細書の段落【0804】の
「また、本実施形態に係る遊技台(例えば、パチンコ機100)は、マイクロプロセッサを備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、前記マイクロプロセッサは、CPUを内蔵するマイクロプロセッサであり、前記マイクロプロセッサは、ROMを内蔵するマイクロプロセッサであり、前記ROMは、複数種類の命令で構成された制御プログラムが記憶されており、前記CPUは、複数種類のレジスタを有し、前記複数種類のレジスタのうちの一のレジスタ(以下、「第三のレジスタ」という。)は、フラグレジスタであり、前記第三のレジスタは、複数のビットから構成されるレジスタであり、前記複数のビットのうちの一のビット(以下、「第一のビット」という。)は、第一のゼロフラグ(例えば、Zフラグ)として機能するビットであり、前記複数のビットのうちの一のビット(以下、「第二のビット」という。)は、第二のゼロフラグ(例えば、SZフラグ)として機能するビットであり、前記CPUは、前記複数種類の命令を実行可能であり、前記複数種類の命令のうちの一の命令(以下、「第一の命令」という。)は、ジャンプ先アドレスを特定可能に構成されたジャンプ命令(例えば、CPJPNZ命令)であり、前記第一の命令は、前記複数種類のレジスタのうちの一のレジスタ(以下、「第一のレジスタ」という。)の値に基づいて動作することを特定可能に構成されており、前記CPUは、前記第一の命令を受け付けた場合に、前記第一のレジスタの値が0ではない場合に、前記第一のゼロフラグおよび前記第二のゼロフラグ(以下、「2つのゼロフラグ」という。)をクリアし、前記ジャンプ先アドレスにジャンプする動作を実行するように構成され、前記CPUは、前記第一の命令を受け付けた場合に、前記第一のレジスタの値が0である場合に、前記2つのゼロフラグをセットし、該第一の命令の後続の命令を実行するように構成されており、前記第一のレジスタは、アキュムレータおよび汎用レジスタのうちの一方のレジスタであり、前記複数種類の命令のうちの一の命令(以下、「第二の命令」という。)は、リターン命令(例えば、CPRTNZ命令)であり、前記第二の命令は、前記複数種類のレジスタのうちの一のレジスタ(以下、「第二のレジスタ」という。)の値に基づいて動作することを特定可能に構成されており、前記CPUは、前記第二の命令を受け付けた場合に、前記第二のレジスタの値が0ではない場合に、前記2つのゼロフラグをクリアし、呼び出し元の処理に復帰する動作を実行するように構成され、前記CPUは、前記第二の命令を受け付けた場合に、前記第二のレジスタの値が0である場合に、前記2つのゼロフラグをセットし、該第二の命令の後続の命令を実行するように構成されており、前記第二のレジスタは、アキュムレータおよび汎用レジスタのうちの一方のレジスタであり、前記CPUによって、前記遊技台の遊技制御が行われる、ことを特徴とする遊技台である。」を、

「また、本実施形態に係る遊技台(例えば、パチンコ機100)は、マイクロプロセッサを備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、前記マイクロプロセッサは、CPUを内蔵するマイクロプロセッサであり、前記マイクロプロセッサは、ROMを内蔵するマイクロプロセッサであり、前記ROMは、複数種類の命令で構成された制御プログラムが記憶されており、前記CPUは、複数種類のレジスタを有し、前記複数種類のレジスタのうちの一のレジスタ(以下、「第三のレジスタ」という。)は、フラグレジスタであり、前記第三のレジスタは、複数のビットから構成されるレジスタであり、前記複数のビットのうちの一のビット(以下、「第一のビット」という。)は、第一のゼロフラグ(例えば、Zフラグ)として機能するビットであり、前記複数のビットのうちの一のビット(以下、「第二のビット」という。)は、第二のゼロフラグ(例えば、SZフラグ)として機能するビットであり、前記CPUは、前記複数種類の命令を実行可能であり、前記複数種類の命令のうちの一の命令(以下、「第一の命令」という。)は、ジャンプ先アドレスを特定可能に構成された演算&ジャンプ命令(例えば、CPJPNZ命令)であり、前記第一の命令は、前記複数種類のレジスタのうちの一のレジスタ(以下、「第一のレジスタ」という。)の値に基づいて動作することを特定可能に構成されており、前記CPUは、前記第一の命令を受け付けた場合に、前記第一のレジスタの値から0を減算する演算を行い、該演算の結果が0ではない場合に、前記第一のゼロフラグおよび前記第二のゼロフラグ(以下、「2つのゼロフラグ」という。)をクリアし、前記ジャンプ先アドレスにジャンプする動作を実行するように構成され、前記CPUは、前記第一の命令を受け付けた場合に、前記第一のレジスタの値から0を減算する演算を行い、該演算の結果が0である場合に、前記2つのゼロフラグをセットし、該第一の命令の後続の命令を実行するように構成されており、前記第一のレジスタは、アキュムレータおよび汎用レジスタのうちの一方のレジスタであり、前記複数種類の命令のうちの一の命令(以下、「第二の命令」という。)は、演算&リターン命令(例えば、CPRTNZ命令)であり、前記第二の命令は、前記複数種類のレジスタのうちの一のレジスタ(以下、「第二のレジスタ」という。)の値に基づいて動作することを特定可能に構成されており、前記CPUは、前記第二の命令を受け付けた場合に、前記第二のレジスタの値から0を減算する演算を行い、該演算の結果が0ではない場合に、前記2つのゼロフラグをクリアし、呼び出し元の処理に復帰する動作を実行するように構成され、前記CPUは、前記第二の命令を受け付けた場合に、前記第二のレジスタの値から0を減算する演算を行い、該演算の結果が0である場合に、前記2つのゼロフラグをセットし、該第二の命令の後続の命令を実行するように構成されており、前記第二のレジスタは、アキュムレータおよび汎用レジスタのうちの一方のレジスタであり、前記CPUによって、前記遊技台の遊技制御が行われる、ことを特徴とする遊技台である。」に訂正する。

(16)訂正事項16
願書に添付した明細書の段落【0804】の
「また、前記CPUは、複数種類の前記汎用レジスタ(以下、「複数種類の汎用レジスタ」という。)を備えており、前記複数種類の汎用レジスタとは、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ、B’レジスタ、C’レジスタ、D’レジスタ、E’レジスタ、H’レジスタおよびL’レジスタの12種類のレジスタのことであってもよい。また、前記第一のレジスタは、前記アキュムレータであってもよい。また、前記第一のレジスタは、前記複数種類の汎用レジスタのうちの一の汎用レジスタであってもよい。また、前記第二のレジスタは、前記アキュムレータであってもよい。また、前記第二のレジスタは、前記複数種類の汎用レジスタのうちの一の汎用レジスタであってもよい。」を、
「また、前記第一のレジスタは、前記アキュムレータであってもよい。また、前記CPUは、複数種類の前記汎用レジスタ(以下、「複数種類の汎用レジスタ」という。)を備えており、前記複数種類の汎用レジスタとは、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ、B’レジスタ、C’レジスタ、D’レジスタ、E’レジスタ、H’レジスタおよびL’レジスタの12種類のレジスタのことであり、前記第一のレジスタは、前記複数種類の汎用レジスタのうちの一の汎用レジスタであってもよい。また、前記第二のレジスタは、前記アキュムレータであってもよい。また、前記CPUは、複数種類の前記汎用レジスタ(以下、「複数種類の汎用レジスタ」という。)を備えており、前記複数種類の汎用レジスタとは、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ、B’レジスタ、C’レジスタ、D’レジスタ、E’レジスタ、H’レジスタおよびL’レジスタの12種類のレジスタのことであり、前記第二のレジスタは、前記複数種類の汎用レジスタのうちの一の汎用レジスタであってもよい。」に訂正する。

4 当審の判断
(1)訂正事項1について
ア 訂正の目的
願書に添付した明細書の段落【0804】には、「複数種類の命令のうちの一の命令(以下、「第一の命令」という。)は、ジャンプ先アドレスを特定可能に構成されたジャンプ命令(例えば、CPJPNZ命令)であり、」と記載され、段落【1215】には、「<第2特殊命令/CPJR命令(演算+ジャンプ命令)>」と記載され、段落【1216】には、「第2特殊命令の一つである・・・また、「CPJRNZ r、e」命令(または、「CPJPNZ (rr)、e」命令)は、オペランドrが示すレジスタ(または、オペランドrrが示すペアレジスタ)に記憶された値から0を減算し、Zフラグが0にクリアされる状態の場合にプログラムカウンタPC+e(eは+127?-128の数値)が示すアドレスにジャンプしてからZフラグを0にクリアし、Zフラグが1にセットされる状態の場合に、後続の処理のアドレスをプログラムカウンタPCにセットしてからZフラグを1にセットする命令である。」と記載されている。
よって、願書に添付した明細書の段落【1215】に記載された「第2特殊命令」及び段落【1216】に記載された「CPJRNZ r、e」命令はジャンプ命令を含むものであるから、本件特許請求の範囲の請求項1のジャンプ命令である「第一の命令」に相当し、請求項1の「第一の命令」は、願書に添付した明細書においては、演算とジャンプ命令とから構成されることが記載されている。
訂正事項1は、本件特許請求の範囲の請求項1の「第一の命令」に関して「演算&」の記載を追加することにより、「第一の命令」が、演算とジャンプ命令であることを減縮するものであるから、特許請求の範囲の減縮を目的とするものである。

イ 新規事項の有無及び特許請求の範囲の拡張又は変更について
そして、訂正事項1は、上記のとおり、願書に添付した明細書等の記載に基づくものであるから、願書に添付した明細書等のすべてを総合することにより導かれる技術的事項との関係において新たな技術的事項を導入するものではなく、願書に添付した明細書等に記載した事項の範囲内においてされたものである。
また、訂正の前後で特許請求の範囲に記載された発明の拡張又は変更はないから、実質上特許請求の範囲を拡張し、又は変更するものでもない。

ウ 独立特許要件について
訂正後の請求項1に記載された事項により特定される発明について、特許出願の際独立して特許を受けることができないとする理由は見いだせない。

よって、訂正事項1は、特許法第126条第1項ただし書第1号に該当し、同法第126条第5項ないし第7項の規定に適合するものである。

(2)訂正事項2について
ア 訂正の目的
願書に添付した明細書の段落【1214】には、「Zフラグが0にクリアされる状態の場合(減算結果が0以外の場合。以下、同じ)に、後続の処理のアドレスをプログラムカウンタPCにセットしてからZフラグを0にクリアする命令である。」と記載され、段落【1216】には、「「CPJRNZ r、e」命令(または、「CPJPNZ (rr)、e」命令)は、オペランドrが示すレジスタ(または、オペランドrrが示すペアレジスタ)に記憶された値から0を減算し、Zフラグが0にクリアされる状態の場合にプログラムカウンタPC+e(eは+127?-128の数値)が示すアドレスにジャンプしてからZフラグを0にクリアし」と記載されている。
すなわち、「CPJRNZ r、e」命令(第一の命令)は、レジスタに記憶された値から0を減算し、演算結果が0ではない場合にジャンプ動作を実行するものといえる。
訂正事項2は、本件特許請求の範囲の請求項1の「第一のレジスタの値が0ではない場合」が「第一のレジスタの値から0を減算する演算を行い、該演算の結果が0ではない場合」であることを減縮するものであるから、特許請求の範囲の減縮を目的とするものである。

イ 新規事項の有無及び特許請求の範囲の拡張又は変更について
そして、訂正事項2は、上記のとおり、願書に添付した明細書等の記載に基づくものであるから、願書に添付した明細書等のすべてを総合することにより導かれる技術的事項との関係において新たな技術的事項を導入するものではなく、願書に添付した明細書等に記載した事項の範囲内においてされたものである。
また、訂正の前後で特許請求の範囲に記載された発明の拡張又は変更はないから、実質上特許請求の範囲を拡張し、又は変更するものでもない。

ウ 独立特許要件について
訂正後の請求項1に記載された事項により特定される発明について、特許出願の際独立して特許を受けることができないとする理由は見いだせない。

よって、訂正事項2は、特許法第126条第1項ただし書第1号に該当し、同法第126条第5項ないし第7項の規定に適合するものである。

(3)訂正事項3について
ア 訂正の目的
願書に添付した明細書の段落【1214】には、「Zフラグが1にセットされる状態の場合(減算結果が0の場合。以下、同じ)に、・・・Zフラグを1にセットし、」と記載され、段落【1216】には、「「CPJRNZ r、e」命令(または、「CPJPNZ (rr)、e」命令)は、オペランドrが示すレジスタ(または、オペランドrrが示すペアレジスタ)に記憶された値から0を減算し、・・・Zフラグが1にセットされる状態の場合に、後続の処理のアドレスをプログラムカウンタPCにセットしてからZフラグを1にセットする命令である。」と記載されている。
すなわち、「CPJRNZ r、e」命令(第一の命令)は、レジスタに記憶された値から0を減算し、演算結果が0である場合に後続の処理を実行するものといえる。
訂正事項3は、本件特許請求の範囲の請求項1の「第一のレジスタの値が0である場合」が「第一のレジスタの値から0を減算する演算を行い、該演算の結果が0である場合」であることを減縮するものであるから、特許請求の範囲の減縮を目的とするものである。

イ 新規事項の有無及び特許請求の範囲の拡張又は変更について
そして、訂正事項3は、上記のとおり、願書に添付した明細書等の記載に基づくものであるから、願書に添付した明細書等のすべてを総合することにより導かれる技術的事項との関係において新たな技術的事項を導入するものではなく、願書に添付した明細書等に記載した事項の範囲内においてされたものである。
また、訂正の前後で特許請求の範囲に記載された発明の拡張又は変更はないから、実質上特許請求の範囲を拡張し、又は変更するものでもない。

ウ 独立特許要件について
訂正後の請求項1に記載された事項により特定される発明について、特許出願の際独立して特許を受けることができないとする理由は見いだせない。

よって、訂正事項3は、特許法第126条第1項ただし書第1号に該当し、同法第126条第5項ないし第7項の規定に適合するものである。

(4)訂正事項4について
ア 訂正の目的
願書に添付した明細書の段落【0804】には、「複数種類の命令のうちの一の命令(以下、「第二の命令」という。)は、リターン命令(例えば、CPRTNZ命令)であり、」と記載され、段落【1213】には、「<第2特殊命令/CPRT命令(演算+リターン命令)>」と記載され、段落【1216】には、「「CPRTNZ r」命令(または、「CPRTNZ (rr)」命令)は、オペランドrが示すレジスタ(または、オペランド(rr)が示すペアレジスタrrに格納されたアドレス)に記憶された値から0を減算し、Zフラグが0にクリアされる状態の場合に、スタックポインタSPが示すスタック領域SPに記憶されたデータをプログラムカウンタPCの下位アドレスに、また、スタックポインタSPが示すスタック領域SP+1に記憶されたデータをプログラムカウンタPCの上位アドレスにそれぞれロード(復帰)した後にスタックポインタSPを2つ加算してからZフラグを0にクリアし、Zフラグが1にセットされる状態の場合に、後続の処理のアドレスをプログラムカウンタPCにセットしてからZフラグを1にセットする命令である。」と記載されている。
よって、願書に添付した明細書の段落【1213】に記載された「第2特殊命令」及び段落【1216】に記載された「CPRTNZ r」命令は、本件特許請求の範囲の請求項1の「第二の命令」に相当し、請求項1の「第二の命令」は、願書に添付した明細書においては、演算とリターン命令とから構成されることが記載されている。
訂正事項4は、本件特許請求の範囲の請求項1の「第二の命令」に関して「演算&」の記載を追加することにより、「第一の命令」が、演算とリターン命令であることを減縮するものであるから、特許請求の範囲の減縮を目的とするものである。

イ 新規事項の有無及び特許請求の範囲の拡張又は変更について
そして、訂正事項4は、上記のとおり、願書に添付した明細書等の記載に基づくものであるから、願書に添付した明細書等のすべてを総合することにより導かれる技術的事項との関係において新たな技術的事項を導入するものではなく、願書に添付した明細書等に記載した事項の範囲内においてされたものである。
また、訂正の前後で特許請求の範囲に記載された発明の拡張又は変更はないから、実質上特許請求の範囲を拡張し、又は変更するものでもない。

ウ 独立特許要件について
訂正後の請求項1に記載された事項により特定される発明について、特許出願の際独立して特許を受けることができないとする理由は見いだせない。

よって、訂正事項4は、特許法第126条第1項ただし書第1号に該当し、同法第126条第5項ないし第7項の規定に適合するものである。

(5)訂正事項5について
ア 訂正の目的
願書に添付した明細書の段落【1214】には、「Zフラグが0にクリアされる状態の場合(減算結果が0以外の場合。以下、同じ)に、後続の処理のアドレスをプログラムカウンタPCにセットしてからZフラグを0にクリアする命令である。」と記載され、段落【1215】には、「「CPRTNZ r」命令(または、「CPRTNZ (rr)」命令)は、オペランドrが示すレジスタ(または、オペランド(rr)が示すペアレジスタrrに格納されたアドレス)に記憶された値から0を減算し、Zフラグが0にクリアされる状態の場合に、スタックポインタSPが示すスタック領域SPに記憶されたデータをプログラムカウンタPCの下位アドレスに、また、スタックポインタSPが示すスタック領域SP+1に記憶されたデータをプログラムカウンタPCの上位アドレスにそれぞれロード(復帰)した後にスタックポインタSPを2つ加算してからZフラグを0にクリアし」と記載されている。
すなわち、「CPRTNZ r」命令(第二の命令)は、レジスタに記憶された値から0を減算し、演算結果が0ではない場合に復帰する動作を実行するものといえる。
訂正事項5は、本件特許請求の範囲の請求項1の「第二のレジスタの値が0ではない場合」が「第二のレジスタの値から0を減算する演算を行い、該演算の結果が0ではない場合」であることを減縮するものであるから、特許請求の範囲の減縮を目的とするものである。

イ 新規事項の有無及び特許請求の範囲の拡張又は変更について
そして、訂正事項5は、上記のとおり、願書に添付した明細書等の記載に基づくものであるから、願書に添付した明細書等のすべてを総合することにより導かれる技術的事項との関係において新たな技術的事項を導入するものではなく、願書に添付した明細書等に記載した事項の範囲内においてされたものである。
また、訂正の前後で特許請求の範囲に記載された発明の拡張又は変更はないから、実質上特許請求の範囲を拡張し、又は変更するものでもない。

ウ 独立特許要件について
訂正後の請求項1に記載された事項により特定される発明について、特許出願の際独立して特許を受けることができないとする理由は見いだせない。

よって、訂正事項5は、特許法第126条第1項ただし書第1号に該当し、同法第126条第5項ないし第7項の規定に適合するものである。

(6)訂正事項6について
ア 訂正の目的
願書に添付した明細書の段落【1214】には、「Zフラグが1にセットされる状態の場合(減算結果が0の場合。以下、同じ)に、・・・Zフラグを1にセットし、」と記載され、段落【1215】には、「「CPRTNZ r」命令(または、「CPRTNZ (rr)」命令)は、オペランドrが示すレジスタ(または、オペランド(rr)が示すペアレジスタrrに格納されたアドレス)に記憶された値から0を減算し、・・・Zフラグが1にセットされる状態の場合に、後続の処理のアドレスをプログラムカウンタPCにセットしてからZフラグを1にセットする命令である。」と記載されている。
すなわち、「CPRTNZ r」命令(第二の命令)は、レジスタに記憶された値から0を減算し、演算結果が0である場合に後続の処理を実行するものといえる。
訂正事項3は、本件特許請求の範囲の請求項1の「第一のレジスタの値が0である場合」が「第一のレジスタの値から0を減算する演算を行い、該演算の結果が0である場合」であることを減縮するものであるから、特許請求の範囲の減縮を目的とするものである。

イ 新規事項の有無及び特許請求の範囲の拡張又は変更について
そして、訂正事項6は、上記のとおり、願書に添付した明細書等の記載に基づくものであるから、願書に添付した明細書等のすべてを総合することにより導かれる技術的事項との関係において新たな技術的事項を導入するものではなく、願書に添付した明細書等に記載した事項の範囲内においてされたものである。
また、訂正の前後で特許請求の範囲に記載された発明の拡張又は変更はないから、実質上特許請求の範囲を拡張し、又は変更するものでもない。

ウ 独立特許要件について
訂正後の請求項1に記載された事項により特定される発明について、特許出願の際独立して特許を受けることができないとする理由は見いだせない。

よって、訂正事項6は、特許法第126条第1項ただし書第1号に該当し、同法第126条第5項ないし第7項の規定に適合するものである。

(7)訂正事項7について
訂正事項7は、本件特許請求の範囲の請求項4を削除するものであるから、特許請求の範囲の減縮を目的とするものである。
そして、訂正事項7は、願書に添付した明細書等の範囲内においてされたものであり、実質上特許請求の範囲を拡張し、又は変更するものでもない。
また、本件特許請求の範囲の請求項4は削除されたから、訂正後の請求項4に記載された事項により特定される発明について、特許出願の際独立して特許を受けることができないとする理由がないことは明らかである。
よって、訂正事項5は、特許法第126条第1項ただし書第1号に該当し、同法第126条第5項ないし第7項の規定に適合するものである。

(8)訂正事項8について
訂正事項8は、訂正事項7に係る訂正にともない、本件特許請求の範囲の請求項5の引用先である請求項4を削除するものであるから、特許請求の範囲の減縮を目的とするものである。
そして、訂正事項8は、願書に添付した明細書等の範囲内においてされたものであり、実質上特許請求の範囲を拡張し、又は変更するものでもない。
また、訂正後の請求項5に記載された事項により特定される発明について、特許出願の際独立して特許を受けることができないとする理由は見いだせない。
よって、訂正事項8は、特許法第126条第1項ただし書第1号に該当し、同法第126条第5項ないし第7項の規定に適合するものである。

(9)訂正事項9、10について
訂正事項9は、訂正事項7に係る訂正にともない、本件特許請求の範囲の請求項6の引用先である請求項4を削除するとともに、請求項4が引用していた請求項1乃至3を請求項6の引用先として追加したものであり、訂正事項10は、本件特許請求の範囲の請求項6に請求項4と同様の内容を追加したものであるから、特許請求の範囲の減縮を目的とするものである。
そして、訂正事項9、10は、願書に添付した明細書等の範囲内においてされたものであり、実質上特許請求の範囲を拡張し、又は変更するものでもない。
また、訂正後の請求項6に記載された事項により特定される発明について、特許出願の際独立して特許を受けることができないとする理由は見いだせない。
よって、訂正事項9、10は、特許法第126条第1項ただし書第1号に該当し、同法第126条第5項ないし第7項の規定に適合するものである。

(10)訂正事項11について
訂正事項11は、訂正事項7に係る訂正にともない、本件特許請求の範囲の請求項7の引用先である請求項4を削除するものであるから、特許請求の範囲の減縮を目的とするものである。
そして、訂正事項11は、願書に添付した明細書等の範囲内においてされたものであり、実質上特許請求の範囲を拡張し、又は変更するものでもない。
また、訂正後の請求項7に記載された事項により特定される発明について、特許出願の際独立して特許を受けることができないとする理由は見いだせない。
よって、訂正事項11は、特許法第126条第1項ただし書第1号に該当し、同法第126条第5項ないし第7項の規定に適合するものである。

(11)訂正事項12、13について
訂正事項12は、訂正事項7に係る訂正にともない、本件特許請求の範囲の請求項8の引用先である請求項4を削除するとともに、請求項4が引用していた請求項1乃至3と、請求項5を請求項8の引用先として追加したものであり、訂正事項13は、本件特許請求の範囲の請求項8に請求項4と同様の内容を追加したものである。
そして、訂正後における請求項5を引用する請求項8については、請求項5が引用する請求項1の発明特定事項である「第二のレジスタ」の構成を直列的に付加して減縮したものといえる。
よって、訂正事項12、13は、特許請求の範囲の減縮を目的とするものである。
また、訂正事項12、13は、願書に添付した明細書等の範囲内においてされたものであり、実質上特許請求の範囲を拡張し、又は変更するものでもない。
さらに、訂正後の請求項8に記載された事項により特定される発明について、特許出願の際独立して特許を受けることができないとする理由は見いだせない。
したがって、訂正事項11は、特許法第126条第1項ただし書第1号に該当し、同法第126条第5項ないし第7項の規定に適合するものである。

(12)訂正事項14、15について
訂正事項14、15は、訂正事項1?6に係る訂正にともない、特許請求の範囲の記載と発明の詳細な説明の記載との整合を図るため、願書に添付した明細書の段落【0006】の記載、及び【0804】の記載の一部を訂正後の請求項1の内容に訂正するものであるから、明瞭でない記載の釈明を目的とするものである。
また、訂正事項14、15は、願書に添付した明細書等の範囲内においてされたものであり、実質上特許請求の範囲を拡張し、又は変更するものでもない。
よって、訂正事項14、15は、特許法第126条第1項ただし書第3号に該当し、同法第126条第5項及び第6項の規定に適合するものである。

(13)訂正事項16について
訂正事項16は、訂正事項7?13に係る訂正にともない、特許請求の範囲の記載と発明の詳細な説明の記載との整合を図るため、願書に添付した明細書の段落【0804】の記載の一部を訂正後の請求項5?8の内容に訂正するものであるから、明瞭でない記載の釈明を目的とするものである。
また、訂正事項16は、願書に添付した明細書等の範囲内においてされたものであり、実質上特許請求の範囲を拡張し、又は変更するものでもない。
よって、訂正事項16は、特許法第126条第1項ただし書第3号に該当し、同法第126条第5項及び第6項の規定に適合するものである。

5 むすび
以上のとおりであるから、本件審判請求に係る訂正事項1?13は、特許法第126条第1項ただし書き第1号に掲げる事項を目的とし、かつ、同条第5項ないし第7項の規定に適合するものであり、訂正事項14?16は、特許法第126条第1項ただし書き第3号に掲げる事項を目的とし、かつ、同条第5項及び第6項の規定に適合するものである。
よって、結論のとおり審決する。
 
発明の名称 (54)【発明の名称】
遊技台
【技術分野】
【0001】
本発明は、弾球遊技機(パチンコ機)や回胴遊技機(スロットマシン)などに代表される遊技台に関する。
【背景技術】
【0002】
従来の遊技台では、遊技盤(盤面)に配設された所定の入賞口に遊技媒体(遊技球)が入球した場合、入賞口に対応した所定の個数の遊技球を賞球として遊技台の前面に設けられた貯留皿に排出している。貯留皿に排出した球は遊技者が自由に取り出すことが可能であり、これらの構成により、入賞に基づいて賞球を遊技者に払い出すようにしている。また、インターフェース部を介して、遊技台とは別体で設けられたカードユニットとの通信を行うものも知られている(例えば、特許文献1参照。)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】 特開2008-200302号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1記載の遊技台では、電源投入時の不正行為を有効に阻止することができるものの、マイクロプロセッサに関しては他の機能についても更なる改良が求められている。
【0005】
本発明は、このような従来の問題点を解決するためになされたものであって、改良したマイクロプロセッサが搭載された遊技台を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る遊技台は、マイクロプロセッサを備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、前記マイクロプロセッサは、CPUを内蔵するマイクロプロセッサであり、前記マイクロプロセッサは、ROMを内蔵するマイクロプロセッサであり、前記ROMは、複数種類の命令で構成された制御プログラムが記憶されており、前記CPUは、複数種類のレジスタを有し、前記複数種類のレジスタのうちの一のレジスタ(以下、「第三のレジスタ」という。)は、フラグレジスタであり、前記第三のレジスタは、複数のビットから構成されるレジスタであり、前記複数のビットのうちの一のビット(以下、「第一のビット」という。)は、第一のゼロフラグとして機能するビットであり、前記複数のビットのうちの一のビット(以下、「第二のビット」という。)は、第二のゼロフラグとして機能するビットであり、前記CPUは、前記複数種類の命令を実行可能であり、前記複数種類の命令のうちの一の命令(以下、「第一の命令」という。)は、ジャンプ先アドレスを特定可能に構成された演算&ジャンプ命令であり、前記第一の命令は、前記複数種類のレジスタのうちの一のレジスタ(以下、「第一のレジスタ」という。)の値に基づいて動作することを特定可能に構成されており、前記CPUは、前記第一の命令を受け付けた場合に、前記第一のレジスタの値から0を減算する演算を行い、該演算の結果が0ではない場合に、前記第一のゼロフラグおよび前記第二のゼロフラグ(以下、「2つのゼロフラグ」という。)をクリアし、前記ジャンプ先アドレスにジャンプする動作を実行するように構成され、前記CPUは、前記第一の命令を受け付けた場合に、前記第一のレジスタの値から0を減算する演算を行い、該演算の結果が0である場合に、前記2つのゼロフラグをセットし、該第一の命令の後続の命令を実行するように構成されており、前記第一のレジスタは、アキュムレータおよび汎用レジスタのうちの一方のレジスタであり、前記複数種類の命令のうちの一の命令(以下、「第二の命令」という。)は、演算&リターン命令であり、前記第二の命令は、前記複数種類のレジスタのうちの一のレジスタ(以下、「第二のレジスタ」という。)の値に基づいて動作することを特定可能に構成されており、前記CPUは、前記第二の命令を受け付けた場合に、前記第二のレジスタの値から0を減算する演算を行い、該演算の結果が0ではない場合に、前記2つのゼロフラグをクリアし、呼び出し元の処理に復帰する動作を実行するように構成され、前記CPUは、前記第二の命令を受け付けた場合に、前記第二のレジスタの値から0を減算する演算を行い、該演算の結果が0である場合に、前記2つのゼロフラグをセットし、該第二の命令の後続の命令を実行するように構成されており、前記第二のレジスタは、アキュムレータおよび汎用レジスタのうちの一方のレジスタであり、前記CPUによって、前記遊技台の遊技制御が行われる、ことを特徴とする遊技台である。
【発明の効果】
【0007】
本発明に係る遊技台によれば、改良したマイクロプロセッサが搭載された遊技台を実現できる。
【図面の簡単な説明】
【0008】
【図1】パチンコ機を正面側(遊技者側)から見た外観斜視図である。
【図2】パチンコ機を正面側から見た正面図である。
【図3】パチンコ機の前面枠扉を開いた状態の外観斜視図である。
【図4】パチンコ機の前面枠扉を開いた状態の正面図である。
【図5】パチンコ機の背面側から見た正面図である。
【図6】パチンコ機の遊技盤の略示正面図である。
【図7】循環する遊技球の経路と各種センサの位置を説明するための遊技盤の略示正面図である。
【図8】パチンコ機と管理装置の接続を示すブロック図である。
【図9】球数UI部の略示上面図である。
【図10】(a)特図の停止図柄態様の一例を示したものである。(b)装飾図柄の停止図柄態様の一例を示したものである。(c)普図の停止表示図柄の一例を示したものである。
【図11】制御部の回路ブロック図を示したものである。
【図12】主制御部メイン処理の流れを示すフローチャートである。
【図13】主制御部タイマ割込処理の流れを示すフローチャートである。
【図14】(a)第1副制御部のCPUが実行するメイン処理のフローチャートである。(b)第1副制御部のコマンド受信割込みのフローチャートである。(c)第1副制御部のタイマ割込処理のフローチャートである。(d)第1副制御部の画像制御処理のフローチャートである。
【図15】(a)第2副制御部のCPUが実行するメイン処理のフローチャートである。(b)第2副制御部のコマンド受信割込処理のフローチャートである。(c)第2副制御部のタイマ割込処理のフローチャートである。
【図16】(a)球数制御部のCPUが実行するメイン処理のフローチャートである。(b)球数制御部のコマンド受信割込み処理のフローチャートである。
【図17】球数制御部の割込み処理のフローチャートである。
【図18】パチンコ機と管理装置の通信手順を示すシーケンスチャートである。
【図19】パチンコ機と管理装置の通信手順を示すシーケンスチャートである。
【図20】パチンコ機と管理装置の通信手順を示すシーケンスチャートである。
【図21】パチンコ機と管理装置の通信手順を示すシーケンスチャートである。
【図22】パチンコ機と管理装置の通信手順を示すシーケンスチャートである。
【図23】(a)装飾図柄表示装置に画像が表示されている状態のパチンコ機の正面図である。(b)球数UI部の上面略示図である。
【図24】球数UI部の表示画像を切り替えた状態を示す図であって、(a)装飾図柄表示装置に画像が表示されている状態のパチンコ機の正面図であり、(b)球数UI部の上面略示図である。
【図25】球数UI部の表示画像を切り替えた状態の他の形態を示す図であって、(a)装飾図柄表示装置に画像が表示されている状態のパチンコ機の正面図であり、(b)球数UI部の上面略示図である。
【図26】制御部の他の実施形態の回路ブロック図を示したものである。
【図27】(a)主制御部と球数制御部の通信処理を説明するブロック図である。(b)シリアル通信回路を説明するブロック図である。
【図28】(a)入賞口カウンタ更新処理のフローチャートである。(b)シリアルコマンド管理処理のフローチャートである。(c)シリアルコマンド受信処理のフローチャートである。(d)シリアルコマンド送信処理のフローチャートである。(e)賞球数数表示処理のフローチャートである。
【図29】(a)入賞口カウンタ更新処理のフローチャートである。(b)入賞数記憶領域の概要図である。
【図30】(a)シリアルコマンド管理処理のフローチャートである。(b)シリアルコマンド受信処理のフローチャートである。
【図31】(a)シリアルコマンド送信処理のフローチャートである。(b)入賞数記憶領域の概要図である。(c)入賞数記憶領域の概要図である。
【図32】(a)入賞数記憶領域の概要図である。(b)入賞数記憶領域の概要図である。(c)入賞数記憶領域の概要図である。(d)賞球コマンドの一例である。
【図33】(a)賞球数表示処理のフローチャートである。(b)入賞数記憶領域の概要図である。
【図34】(a)主制御通信エラー管理処理のフローチャートである。(b)遊技球数減算処理のフローチャートである。(c)遊技球数表示処理のフローチャートである。
【図35】(a)シリアルコマンド管理処理のフローチャートである。(b)シリアルコマンド受信処理のフローチャートである。(c)シリアルコマンド送信処理のフローチャートである。
【図36】主制御部と球数制御部間の通信処理のタイミングチャートである。
【図37】主制御部と球数制御部間の通信処理のタイミングチャートである。
【図38】主制御部と球数制御部間の通信処理のタイミングチャートである。
【図39】主制御部と球数制御部間の通信処理のタイミングチャートである。
【図40】主制御部と球数制御部間の通信処理のタイミングチャートである。
【図41】発射制御処理および球送り制御処理を説明するブロック図である。
【図42】球送り制御処理を説明するフローチャートである。
【図43】発射制御処理を説明するフローチャートである。
【図44】(a)球送り制御処理を説明するフローチャートである。(b)発射制御処理を説明するフローチャートである。
【図45】球送り制御処理および発射制御処理を説明するフローチャートである。
【図46】球送りソレノイドと発射ソレノイドのタイミングチャートである。
【図47】球送りソレノイドと発射ソレノイドのタイミングチャートである。
【図48】球送りソレノイドと発射ソレノイドのタイミングチャートである。
【図49】遊技媒体経路の他の形態を説明する概要図である。
【図50】貯留球数管理処理を説明するフローチャートである。
【図51】球送りソレノイドと発射ソレノイドのタイミングチャートである。
【図52】主制御部、球数制御部、および発射ソレノイドのタイミングチャートである。
【図53】電断・復電時のパチンコ機の状態を説明する概要図である。
【図54】電断・復電時のパチンコ機の状態を説明する概要図である。
【図55】電源制御部を説明するブロック図である。
【図56】RAMに設けられるバックアップ領域の概要図である。
【図57】(a)球数制御部メイン処理を説明するフローチャートである。(b)球数制御部コマンド受信割込み処理を説明するフローチャートである。
【図58】(a)コマンド解析処理を説明するフローチャートである。(b)電断処理を説明するフローチャートである。
【図59】球数制御部割込み処理を説明するフローチャートである。
【図60】(a)エラー管理処理を説明するフローチャートである。(b)遊技球数管理処理を説明するフローチャートである。(c)領域内球数管理処理を説明するフローチャートである。
【図61】(a)遊技媒体経路管理処理を説明するフローチャートである。(b)球磨き装置制御処理を説明するフローチャートである。(c)揚上装置制御処理を説明するフローチャートである。
【図62】投入検出センサおよび排出検出センサの状態判定を説明する図である。
【図63】エラー発生時の報知態様を説明する図である。
【図64】エラー報知態様の一例を説明する概要図である。
【図65】第1のエラー報知態様におけるエラー報知までのタイムチャートである。
【図66】第1のエラー報知態様の一例を示す図であって、(a)パチンコ機の正面図であり、(b)球数UI部の上面図である。
【図67】第2のエラー報知態様に係る球数制御部の(a)コマンド解析処理を説明するフローチャートであり、(b)電断処理のフローチャートである。
【図68】第2のエラー報知態様に係る球数制御部割込み処理のフローチャートである。
【図69】第2のエラー報知態様におけるエラー報知までのタイムチャートである。
【図70】第2のエラー報知態様の一例を示す図であって、(a)パチンコ機の正面図であり、(b)球数UI部の上面図である。
【図71】第3のエラー報知態様の一例を示す図である。
【図72】パチンコ機を正面側(遊技者側)から見た外観斜視図である。
【図73】パチンコ機を背面側から見た外観図である。
【図74】遊技盤を正面から見た略示正面図である。
【図75】制御部の回路ブロック図を示したものである。
【図76】(a)特図の停止図柄態様の一例を示したものである。(b)装飾図柄の停止図柄態様の一例を示したものである。(c)普図の停止表示図柄の一例を示したものである。
【図77】主制御部300から基本回路302の主要部のみを抜き出して示した図である。
【図78】(a)CPU304のメモリマップを示した図である。(b)(a)に示すメモリマップのうちのRWM領域の詳細を示した図である。(c)CPU304のI/Oマップを示した図である。
【図79】初期化処理の流れを示すフローチャートである。
【図80】システムリセット後の起動処理のタイムチャートである。
【図81】主制御部メイン処理の流れを示すフローチャートである。
【図82】(a)初期設定1で行うTレジチェック処理の流れを示すフローチャートである。(b)Tレジチェック処理のプログラムリストの一例である。
【図83】(a)変形例に係るTレジチェック処理の流れを示すフローチャートである。(b)変形例に係るTレジチェック処理のプログラムリストの一例である。
【図84】図82(b)のプログラムリストからLD命令のみを抜き出して示した図である。
【図85】主制御部タイマ割込処理の流れを示すフローチャートである。
【図86】(a)第1副制御部のCPUが実行するメイン処理のフローチャートである。(b)第1副制御部のコマンド受信割込み処理のフローチャートである。(c)第1副制御部のタイマ割込処理のフローチャートである。(d)第1副制御部の画像制御処理のフローチャートである。
【図87】(a)第2副制御部500のCPU504が実行するメイン処理のフローチャートである。(b)第2副制御部500のコマンド受信割込処理のフローチャートである。(c)第2副制御部500のタイマ割込処理のフローチャートである。
【図88】ROM306に記憶されるデータの一例を示した図である。
【図89】主制御部300の命令データの構成の一例を示した図である。
【図90】(a)主制御部300の命令データの上位ビットと下位ビットを示した図である。(b)命令データテーブルの一例を示した図である。
【図91】CALL命令によるアドレスの移動の一例を概念的に示したものである。
【図92】CALL命令の命令データと補足データの一例を示した図である。
【図93】(a)EXESUB命令の構成の一例を示した図である。(b)図90(b)の空き領域に対してEXESUB命令を割り当てた命令データテーブルを示した図である。
【図94】EXESUB命令によるアドレスの移動の一例を概念的に示した図である。
【図95】EXESUB命令によるサブルーチンの先頭アドレスの呼び出しの一例を示したものである。
【図96】EXESUB命令の命令データと補足データの一例を示した図である。
【図97】主制御部タイマ割込処理の制御プログラムの一例を示したプログラムリストである。
【図98】ROM領域が、EXESUB命令によって呼び出すことのできる領域よりも、制御プログラムデータが記憶されているROM制御領域が広くなるように構成されている場合を示した図である。
【図99】(a)(b)EXESUB命令(EXESUBmn)によって呼び出すことができるサブルーチンの先頭アドレスの領域を拡張した場合の一例を示した図である。
【図100】(a)特図2状態更新処理および特図1状態更新処理の制御プログラムの一部を抜き出したものである。(b)普図状態更新処理の制御プログラムの一部を抜き出したものである。(c)従来のメモリ読み出し処理の一部を抜き出したものである。(d)RAMエリア(RWM領域)に設けた変数領域の一部を示した図である。(e)本実施形態に係るメモリ読み出し処理の一部を抜き出したものである。
【図101】図100(c)に示す従来のメモリ読出し処理の機械語と、図100(e)に示す本実施形態に係るメモリ読出し処理の機械語と、を比較した図である。
【図102】特図1関連抽選処理の流れを示すフローチャートである。
【図103】(a)テーブル選択用テーブルの一例を示した図である。(b)第1変動パターン選択テーブルの一例を示した図である。(c)第2変動パターン選択テーブルの一例を示した図である。(d)RWM領域のアドレスF040H?F042Hに対応するRAM308の記憶領域に設けられる保留数記憶領域、乱数1記憶領域、乱数2記憶領域を示した図である。
【図104】主制御部300のROM306に記憶されるデータテーブルの定義の一部と、RAM308に設けられる変数格納領域の定義の一部を示したプログラムリストの一例である。
【図105】特別図柄変動時間抽選処理の流れを示すフローチャートである。
【図106】特別図柄変動時間抽選処理のプログラムリストの一例である。
【図107】制御部300(のCPU304)が備える命令の一部と、その説明を示した図である。
【図108】(a)主制御部300の命令データの上位ビットと下位ビットを示した図である。(b)命令データテーブルの一例を示した図である。
【図109】テーブル選択用テーブル、第1変動パターン選択テーブル、および第2変動パターン選択テーブルの変形例を示した図である。
【図110】変形例に係る特別図柄変動時間抽選処理の流れを示すフローチャートである。
【図111】(a)ROM306に記憶される初期設定データテーブルの一例を示した図である。(b)初期設定処理後のRAM308の記憶領域の一部を示した図である。(c)初期設定処理の流れを示すフローチャートである。
【図112】初期設定処理のプログラムリストの一例である。
【図113】(a)主制御部300が備える第2特殊命令の一部を示した図である。(b)第2特殊命令を実行する前後のフラグレジスタの状態を示した図である。
【図114】CPJR命令を用いた処理の一例を示した図である。
【図115】(a)従来の命令を用いたプログラムの一例を示した図である。(b)CPJR命令を用いたプログラムの一例である。
【図116】CPJR命令を用いた他の処理の一例を示した図である。
【図117】処理Vを含む、CPJR命令を用いた他の処理の一例を示した図である。
【図118】CPRT命令を用いた処理の一例を示した図である。
【図119】(a)CPRT命令を用いたプログラムの一例である。(b)従来の命令を用いたプログラムの一例を示した図である。
【図120】主制御部300が備える第3特殊命令の一部を示した図である。
【図121】「RESmZ n、r」命令の具体例を示した図である。
【図122】「RESmZ n、(rr)」命令の具体例を示した図である。
【図123】主制御部300の命令マップのうち、RES命令に該当する部分を抜き出して示した図である。
【図124】変形例1に係るRES命令を示した図である。
【図125】変形例1に係るRES命令の具体例を示した図である。
【図126】変形例1に係るRES命令を用いたプログラムの一例を示した図である。
【図127】変形例2に係るRES命令を示した図である。
【図128】変形例2に係るRES命令の具体例を示した図である。
【図129】変形例2に係るRES命令の具体例を示した図である。
【図130】主制御部300の命令マップのうち、変形例2に係るRES命令に該当する部分を抜き出して示した図である。
【図131】RES命令の他の変形例を示した図である。
【図132】(a)所定ビットのアクセスを禁止しないRES命令を備えた場合の命令マップと、所定ビットのアクセスを禁止するRES命令を備えた場合の命令マップを示した図である。(b)RES命令の第1オペランドの数値の大小と、RES命令の命令マップの並び順を異ならせた例を示した図である。
【図133】(a)ユーザプログラムの一部であるプログラム起動設定処理の一例を示した図である。(b)ユーザプログラムの一部である電源投入時設定処理の一例を示した図である。
【図134】主制御部タイマ割込処理に相当するユーザプログラムの一部を示した図である。
【図135】主制御部300が備える第4特殊命令の内容と、主制御部300のROM領域を示した図である。
【図136】主制御部300の命令マップのうち、第4特殊命令に係るRST命令に該当する部分を抜き出して示した図である。
【図137】スロットマシンを正面側(遊技者側)から見た外観斜視図である。
【図138】前面扉を開けた状態のスロットマシンを示す正面図である。
【図139】制御部の回路ブロック図を示したものである。
【図140】(a)各リール(左リール、中リール、右リール)に施される図柄の配列を平面的に展開して示した図である。(b)入賞役(作動役を含む)の種類、各入賞役に対応する図柄組合せ、各入賞役の作動または払出を示した図である。
【図141】主制御部メイン処理の流れを示すフローチャートである。
【図142】主制御部タイマ割込処理の流れを示すフローチャートである。
【図143】(a)第1副制御部のCPU1404が実行するメイン処理のフローチャートである。(b)第1副制御部のコマンド受信割込処理のフローチャートである。(c)第1副制御部のタイマ割込処理のフローチャートである。
【図144】(a)第2副制御部のCPU1504が実行するメイン処理のフローチャートである。(b)第2副制御部のコマンド受信割込処理のフローチャートである。(c)第2副制御部のタイマ割込処理のフローチャートである。(d)第2副制御部の画像制御処理のフローチャートである。
【図145】本発明の他の適用例を示した図である。
【図146】マイクロプロセッサ3000を用いた場合の基本回路302の一構成例を示す図である。
【図147】リセットの流れを示すフローチャートである。
【図148】図146に示す乱数生成回路318の内部構成図である。
【図149】図148に示すノイズフィルタ3185による処理の一例を示す図である。
【図150】図148に示す乱数更新回路3183の詳細を示す図である。
【図151】乱数生成範囲の最大値が設定されていない場合において出力される乱数の範囲を示す図である。
【図152】図151とは異なる最大値が設定された場合に出力される乱数の範囲を示す図である。
【図153】最大値と最小値を設定した乱数生成範囲において、乱数を取得することができる範囲を示す図である。
【図154】本実施形態の遊技台で使用される乱数の導出源を表で示す図である。
【図155】割込み制御回路3100の内部レジスタ3101に用意された第1内部情報レジスタを説明するための図である。
【図156】周波数監視回路3182における異常の検出例を示す図である。
【図157】乱数監視回路3184における異常の検出例を示す図である。
【図158】乱数が一巡する周期とタイマ割込みの周期を比較した図である。
【図159】主制御部メイン処理の流れを示すフローチャートである。
【図160】主制御部メイン処理における初期設定2の流れを示すフローチャートである。
【図161】ステップS1053における乱数生成回路初期設定処理の流れを示すフローチャートである。
【図162】主制御部タイマ割込処理の流れを示すフローチャートである。
【図163】(a)普図関連抽選処理の流れを示すフローチャートである。(b)普図抽選テーブルを示す図である。
【図164】特図関連抽選処理の流れを示すフローチャートである。
【図165】(a)特図抽選テーブルを示す図である。(b)停止図柄抽選テーブルを示す図である。
【図166】デバイス監視処理の流れを示すフローチャートである。
【図167】ステップS217における入賞受付処理のうち、特図当選乱数および普図当選乱数を取得する処理の流れを示した図である。
【図168】(a)電源オフの場合の動作を示す図である。(b)瞬断の場合の動作を示す図である。
【図169】乱数生成範囲の問題点を示す図である。
【図170】図150で説明した乱数更新回路3183の変形例を示す図である。
【図171】払出制御部メイン処理の流れを示すフローチャートである。
【図172】払出制御部タイマ割り込み処理の流れを示すフローチャートである。
【図173】割込み制御回路3100の内部レジスタ3101に用意された第2内部情報レジスタを説明するための図である。
【図174】割込み制御回路3100の内部レジスタ3101に用意された第3内部情報レジスタを説明するための図である。
【図175】割込み制御回路3100の内部レジスタ3101に用意された第4内部情報レジスタを説明するための図である。
【図176】システムリセットの流れを乱数更新との関係を含めて示す図である。
【図177】(a)遊技制御プログラムの初期設定で実行される処理を模式的に示した図である。(b)(a)の処理の概念を説明するための図である。
【図178】図146に示すマイクロプロセッサ3000のリセット制御回路314の変形例を示した図である。
【図179】主制御部300と第1副制御部400とのうち主制御部300のみでWDT3141のタイムアウトが生じた場合の例を示すタイミングチャートである。
【図180】(a)主制御部の構成の第1変形例を示した図である。(b)主制御部の構成の第2変形例を示した図である。(c)ランダム遅延回路317、電圧監視回路338、およびWDT314を有して構成されたリセット回路の構成例を示した図である。
【図181】(a)図180(c)の第1変形例を示した図である。(b)図180(c)の第2変形例を示した図である。
【図182】(a)図180(c)に示すリセット回路の第3変形例を示した図である。(b)CPU304に接続される各種ICの一部を示した図である。
【図183】図182(b)に示すリセット信号出力端子XRSTOの接続の第1変形例を示した図である。
【図184】図75を用いて説明した基本回路302と、この基本回路302に接続される各種ICの一部を示した図である。
【図185】(a)固定延長時間の設定例を示したものである。(b)ランダム延長時間の設定例を示したものである。
【図186】WDT314のタイムアウト時間の設定例を示したものである。
【図187】(a)?(d)リセット出力端子XSRSTO端子の出力信号の変化と、セキュリティモードの状態変化を示した図である。
【図188】(a)、(b)固定延長処理の終了タイミングと、リセット出力端子XRSTOからHレベルの信号を出力するタイミングが一致するが、ランダム延長時間が異なる例を示した図である。(c)、(d)固定延長処理の終了タイミングと、リセット出力端子XRSTOからHレベルの信号を出力するタイミングが一致するが、固定延長時間が異なる例を示した図である。
【図189】固定延長処理を契機にリセット出力信号を変化させる例を示した図である。
【図190】アドレス信号、データ信号、制御信号、およびリセット出力信号の変化と、セキュリティモードの状態変化を示した図である。
【図191】(a)外部リセット後の他の出力信号の状態変化を示した図である。(b)内部リセット後の他の出力信号の状態変化を示した図である。
【図192】(a)外部リセット後の他の出力信号の状態変化の他の例を示した図である。(b)内部リセット後の他の出力信号の状態変化の他の例を示した図である。
【図193】(a)外部リセット後のセキュリティモードの開始タイミングの例を示した図である。(b)内部リセット後のセキュリティモードの開始タイミングの例を示した図である。
【図194】本発明の基本概念を示した図である。
【図195】(a)図2を用いて説明した電源基板182、払出基板170、および主基板156の接続例を示した図である。(b)(a)に対応する従来の接続態様を示した図である。
【図196】変形例に係る主制御部メイン処理の流れを示すフローチャートであり、上記図81に対応するフローチャートである。
【図197】主制御部メイン処理における初期設定2の流れを示すフローチャートである。
【図198】本発明に係る所定の出力端子の信号出力の一例を説明するための図である。
【図199】本発明に係る所定の出力端子の信号出力の一例を説明するための図である。
【図200】ユーザリセット時におけるシステムクロック信号、アドレス信号、データ信号、制御信号、およびリセット出力信号の変化を示した図である。
【図201】主制御部における電断時処理の流れを示すフローチャートである。
【図202】図141のステップS2101における初期設定処理のフローチャートである。
【図203】図146に示すタイマ回路311の構成を詳しく示したブロック図である。
【図204】図146に示すカウンタ回路312の構成を詳しく示したブロック図である。
【図205】制御レジスタ3121を詳しく説明するための図である。
【図206】図78(a)に示すメモリマップ上における内蔵RAMエリアや内蔵レジスタエリアの読み込みや書き込みタイミングを説明するためのタイミングチャートである。
【図207】図78(b)に示すI/Oマップ上における内蔵レジスタエリアの読み込みや書き込みタイミングを説明するためのタイミングチャートである。
【図208】図146に示すマイクロプロセッサ3000内部におけるカウンタ回路312への信号の流れを内部のみ示す図である。
【図209】カウンタ回路0を不定期な更新とする例を示した図である。
【図210】カウンタ回路0をカウンタ回路1の更新ソースとする変形例1を示した図である。
【図211】カウンタ回路0とカウンタ回路1で2バイトカウンタとして機能させる変形例2を示した図である。
【図212】カウンタ回路0の更新ソースをカウンタ回路1の更新ソースとする変31例を示した図である。
【図213】カウンタ回路0とカウンタ回路1を相互にカスケード接続する変形例4を示す図である。
【図214】マイクロプロセッサ3000(基本回路)の外部における外部メモリの読み込みや書き込みチップセレクトタイミングを説明するためのタイミングチャートである。
【図215】外部I/Oの読み込みや書き込みチップセレクトタイミングを説明するためのタイミングチャートである。
【図216】図146に示すマイクロプロセッサ3000内部におけるカウンタ回路312への信号の流れを内部のみ示す図である。
【図217】主制御部タイマ割込処理の流れを示すフローチャートである。
【図218】(a)第1副制御部のCPUが実行するメイン処理のフローチャートである。(b)第1副制御部のコマンド受信割込み処理のフローチャートである。(c)第1副制御部のタイマ割込処理のフローチャートである。(d)第1副制御部の画像制御処理のフローチャートである。
【図219】(a)第2副制御部500のCPU504が実行するメイン処理のフローチャートである。(b)第2副制御部500のコマンド受信割込処理のフローチャートである。(c)第2副制御部500のタイマ割込処理のフローチャートである。
【図220】コマンド設定送信処理の流れを示すフローチャートである。
【図221】大当り中用コマンド送信処理の流れを示すフローチャートである。
【図222】ブロック転送処理の流れを示すフローチャートである。
【図223】(a)?(d)大当り遊技中に参照されるコマンドテーブルの一例を示した図である。
【図224】本発明の特徴部分のみを抜き出して示したフローチャートである。
【図225】(a)、(b)本発明の特徴部分を上記図224と異なる視点で示したフローチャートである。
【図226】本発明の特徴部分に対応する従来技術の処理の流れを示したフローチャートであり、上記図224に対応するフローチャートである。
【図227】(a)本発明に係る大当り中用コマンド送信処理においてブロック転送を行う場合の所要時間を示した図であり。(b)従来技術に係る大当り中用コマンド送信処理においてブロック転送を行う場合の所要時間を示した図である。
【図228】補正時間待機処理の配置場所の例を示したフローチャートである。
【図229】割込み処理の流れを模式的に示した図である。
【図230】コマンド設定送信処理の流れを示すフローチャートである。
【図231】(a)?(f)遊技中に参照されるコマンドテーブルの一例を示した図である。
【図232】主制御部300が備える第5特殊命令の一部と、その説明を示した図である。
【図233】第5特殊命令のバイト数とステート数を比較した図である。
【図234】ZフラグやSZフラグを変化させる命令の一例を示した図である。
【図235】タイマ更新処理の流れを示すフローチャートである。
【図236】(a)本発明に係るタイマ更新処理のプログラムの一例を示した図である。(b)従来のタイマ更新処理のプログラムの一例を示した図である。
【図237】(a)表示図柄抽選の流れを示すフローチャートである。(b)抽選準備処理の流れを示すフローチャートである。(c)データ選択処理の流れを示すフローチャートである。
【図238】本発明に係る抽選準備処理のプログラムの一例を示した図である。
【図239】抽選処理の流れを示すフローチャートである。
【図240】本発明に係る抽選処理のプログラムの一例を示した図である。
【図241】従来の抽選処理のプログラムの一例を示した図である。
【図242】払出要求数送信処理の流れを示すフローチャートである。
【図243】本発明に係る払出要求数送信処理のプログラムの一例を示した図である。
【図244】本発明の概要を示した図である。
【図245】本発明の変形例を示した図である。
【図246】本発明の他の概要を示した図である。
【図247】WARU命令の変形例を示した図である。
【図248】パチンコ機を正面側(遊技者側)から見た外観斜視図である。
【図249】遊技盤を正面から見た略示正面図である。
【図250】パチンコ機を背面側から見た外観斜視図である。
【図251】(a)特図の停止表示態様の一例を示したものである。(b)装飾図柄の一例を示したものである。(c)普図の停止表示態様の一例を示したものである。
【図252】制御部の回路ブロック図を示したものである。
【図253】基本回路の内部構成図である。
【図254】基本回路に接続される乱数用水晶発振器とシステム用水晶発振器の配線パターンの一例を示した回路ブロック図である。
【図255】乱数回路の内部構成図である。
【図256】乱数回路が備える周波数監視回路の内部構成図である。
【図257】主制御部メイン処理の流れを示すフローチャートである。
【図258】主制御部タイマ割り込み処理の流れを示すフローチャートである。
【図259】入賞受付処理の流れを示すフローチャートである。
【図260】特図状態更新処理の流れを示すフローチャートである。
【図261】払出制御部メイン処理の流れを示すフローチャートである。
【図262】(a)払出制御部タイマ割り込み処理の流れを示すフローチャートである。(b)ストローブ割り込み処理の流れを示すフローチャートである。
【図263】(a)副制御部メイン処理の流れを示すフローチャートである。(b)コマンド入力処理の流れを示すフローチャートである。(c)変動パターン選択処理の流れを示すフローチャートである。(d)図柄停止処理の流れを示すフローチャートである。(e)ストローブ割り込み処理の流れを示すフローチャートである。(f)チャンスボタン割り込み処理の流れを示すフローチャートである。(g)変数更新割り込み処理の流れを示すフローチャートである。
【図264】基本回路が搭載されるパッケージの外観斜視図であり、同図(b)は、パッケージの視認非容易部の近傍を示す側面図である。
【図265】(a)基本回路が搭載されるパッケージの平面図である。(b)パッケージの端子と下側基板のみを抜き出して示す外観斜視図である。
【図266】(a)変形例1に係るパッケージの下側基板の一部分を示す外観斜視図である。(b)変形例2に係るパッケージの下側基板の一部分を示す外観斜視図である。(c)変形例3に係るパッケージの下側基板の一部分を示す外観斜視図である。(d)変形例4に係るパッケージの下側基板の一部分を示す外観斜視図である。
【図267】(a)変形例5に係るパッケージの外観斜視図である。(b)変形例6に係るパッケージの外観斜視図である。(c)変形例7に係るパッケージの外観斜視図である。(d)変形例8に係るパッケージの外観斜視図である。
【図268】(a)、(b)スリット状の切欠き部を形成したパッケージの一例を示した外観斜視図である。
【図269】(a)円弧状の切欠き部を形成したパッケージの一例を示した外観斜視図である。(b)、(c)切欠き部を拡大して示す部分拡大図である。
【図270】(a)切欠き部の上面にシールが貼付されたパッケージの一例を示した外観斜視図である。(b)パッケージを折り曲げた様子を示す外観斜視図である。(c)折り曲げた後のパッケージを示す外観斜視図である。
【図271】(a)?(e)変形例に係るパッケージの平面図である。(f)?(g)変形例に係るパッケージを長手方向から見た側面図である。
【図272】(a)ICソケットの外観斜視図である。(b)ICソケットにパッケージを実装した状態を示す外観斜視図である。
【図273】パッケージの端子配置例を示す平面図である。
【図274】(a)変形例1に係るICソケットの外観斜視図である。(b)ICソケットにパッケージを実装した状態を示す外観斜視図である。
【図275】(a)変形例2に係るICソケットの外観斜視図である。(b)ICソケットのソケット端子が実装される基板の平面図である。
【図276】(a)図275(a)におけるA-A線に沿った断面を模式的に示した図である。(b)図275(a)におけるB-B線に沿った断面を模式的に示した図である。
【図277】変形例1に係るコネクト部とソケット端子の断面を模式的に示した図である。
【図278】変形例2に係るコネクト部とソケット端子の断面を模式的に示した図である。
【図279】(a)変形例3に係るICソケットの外観斜視図である。(b)変形例4に係るICソケットの外観斜視図である。(c)変形例5に係るICソケットの外観斜視図である。
【図280】ICソケットを基板に実装した例を示した外観斜視図である。
【図281】(a)ICソケットが実装されるランドと、これらのランドと乱数用水晶発振器およびシステム用水晶発振器を接続する信号線の一例を示した図である。(b)ランド近傍の部分拡大図である。
【図282】ICソケットの外縁を説明するための図である。
【図283】基板1002を側方から見た側面図である。
【図284】変形例1に係る配線パターンを示した図である。
【図285】(a)変形例2に係る配線パターンを示した図である。(b)変形例3に係る配線パターンを示した図である。
【図286】変形例4に係る配線パターンを示した図である。
【図287】(a)変形例5に係る配線パターンを示した図である。(b)、(c)変形例5に係る配線パターンを変更した図である。
【図288】変形例6に係る配線パターンを示した図である。
【図289】上述のICソケットを実装する基板の平面図である。
【図290】変形例1に係る基板の平面図である。
【図291】変形例2に係る基板の平面図である。
【図292】変形例3に係る基板の平面図である。
【図293】スロットマシンの外観斜視図を示したものである。
【図294】主制御部の回路ブロック図を示したものである。
【図295】副制御部の回路ブロック図を示したものである。
【図296】主制御部のメイン処理の流れを示すフローチャートである。
【図297】遊技メダル投入処理の流れを示すフローチャートである。
【図298】乱数取得処理の流れを示すフローチャートである。
【図299】タイマ割込み処理の流れを示すフローチャートである。
【図300】電源基板182、払出基板170、および主基板156間の電源供給例を示す図である。
【図301】主基板156内の電源供給例を示す図である。
【図302】電源基板182と主基板156内の電源供給例を示す図である。
【図303】主基板156内の電源供給例を示す図である。
【図304】パチンコ機100の電源投入後の起動処理のタイムチャートである。
【図305】図304の破線の楕円Oで囲んだ範囲を拡大した監視電圧を示す図である。
【図306】WDT314の最初のリスタート処理が時刻T-低電圧より後に実行されるようにしたWDTの駆動方法(その1)を示す図である。
【図307】WDT314の最初のリスタート処理が時刻T-低電圧より後に実行されるようにしたWDTの駆動方法(その2)を示す図である。
【図308】WDT314の最初のリスタート処理が時刻T-低電圧より後に実行されるようにしたWDTの駆動方法(その3)を示す図である。
【図309】主制御部メイン処理の流れを示すフローチャートである。
【図310】主制御部メイン処理における遅延処理の流れを示すフローチャートである。
【図311】主制御部メイン処理における遅延処理の流れを示すフローチャートである。
【図312】主制御部メイン処理の流れを示すフローチャートである。
【図313】主制御部メイン処理における遅延処理の流れを示すフローチャートである。
【図314】主制御部タイマ割込処理の流れを示すフローチャートである。
【図315】主制御部タイマ割込処理におけるデバイス監視処理の流れを示すフローチャートである。
【図316】乱数生成回路から16ビット乱数値をRAM308に取込む手順を示す図である。
【図317】乱数生成回路から16ビット乱数値をRAM308に取込む手順を示す図である。
【図318】(a)は、図316および図317に示す乱数取込み(取得)手順において実行される乱数取得判定処理を示すフローチャートである。(b)は、図316および図317に示す乱数取込み(取得)手順において実行される乱数取得処理を示すフローチャートである。
【図319】(a)は、図316および図317に示す乱数取込み(取得)手順において実行される図318(a)に示す乱数取得判定処理をより詳細に説明するフローチャートである。(b)は、図316および図317に示す乱数取込み(取得)手順において実行される図318(b)に示す乱数取得処理をより詳細に説明するフローチャートである。
【図320】所定のソフトラッチ乱数値レジスタに乱数生成回路9006から逐次入力される16ビット乱数値を直接取込む方法を示す図である。
【図321】図320に示す乱数直接取込みにおいて実行される乱数取得判定/取得処理を示すフローチャートである。
【図322】図320に示す乱数直接取込み(取得)手順において実行される図321に示す乱数取得判定/取得処理をより詳細に説明するフローチャートである。
【図323】図316や図317に示した乱数値取込みの手順を記述したプログラムコードの一例を示す図である。
【図324】図320に示した乱数値直接取込みの手順を記述したプログラムコードの一例を示す図である。
【図325】第三の命令を用いることの利点について説明する図である。
【図326】(a)は大当り判定テーブルの一例を、(b)は高確率状態移行判定テーブルの一例を、(c)はタイマ番号決定テーブルの一例を、それぞれ示した図である。
【図327】(a)は払出要求数テーブルの一例を、(b)は払出加工テーブルの一例を、(c)はタイマ制御データテーブルの一例を、(d)はジャンプテーブルの一例を、(e)は復元データテーブルの一例を、それぞれ示した図である。
【図328】同パチンコ機の主制御部リセット割り込み処理の流れを示したフローチャートである。
【図329】同パチンコ機の機能限定ウェイト処理の流れを示したフローチャートである。
【図330】同パチンコ機の主制御部タイマ割り込み処理の流れを示したフローチャートである。
【図331】同パチンコ機の払出要求数送信処理の流れを示したフローチャートである。
【図332】同パチンコ機のタイマ更新処理の流れを示したフローチャートである。
【図333】同パチンコ機のコマンド設定送信処理の流れを示したフローチャートである。
【図334】同パチンコ機の基本コマンド設定送信処理の流れを示したフローチャートである。
【図335】同パチンコ機のコマンド送信処理の流れを示したフローチャートである。
【図336】同パチンコ機の復帰コマンド設定処理の流れを示したフローチャートである。
【図337】同パチンコ機の払出制御部リセット処理の流れを示したフローチャートである。
【図338】同パチンコ機のコマンド解析処理の流れを示したフローチャートである。
【図339】同パチンコ機のコマンド受信割り込み処理の流れを示したフローチャートである。
【図340】同パチンコ機の払出制御部タイマ割り込み処理の流れを示したフローチャートである。
【図341】16ビット乱数回路の内部構成図である。
【図342】8ビット乱数回路の内部構成図である。
【図343】主制御部メイン処理の流れを示すフローチャートであり、図343(a)はプログラム起動設定処理の流れを示すフローチャートであり、図343(b)は、電源投入時処理の流れを示すフローチャートであり、図343(c)は、初期設定2の流れを示すフローチャートである。
【図344】主制御部メイン処理における遅延処理の流れを示すフローチャートである。
【図345】主制御部タイマ割込処理の流れを示すフローチャートである。
【図346】主制御部タイマ割込処理におけるデバイス監視処理の流れを示すフローチャートである。
【図347】本実施形態の遊技台(パチンコ機)で使用される乱数の導出源を表で示す図である。
【図348】本実施形態の遊技台(スロットマシン)で使用される乱数の導出源を表で示す図である。
【図349】(a)は、基本回路5302が搭載されるパッケージ10100aおよびパッケージ10100bの平面図である。(b)は、パッケージ10100aおよびパッケージ10100bを接続部材10100cを用いて接続した形状を示す平面図である。(c)は、同側面図である。(d)は、同斜視図である。
【図350】(a)は、基本回路5302が搭載されるパッケージ10120aおよびパッケージ10120bを接続配線部10120cで接続した形状を示す平面図である。(b)は、同側面図である。(c)は、同斜視図である。
【図351】図349(b)、(c)、(d)に示すパッケージ10100aおよびパッケージ10100bを接続部材10100cで一体化して収容ケース10103で覆った状態を示す図である。
【図352】図350(a)、(b)、(c)に示すパッケージ10120aおよびパッケージ10120bを接続配線部10120cで一体化して収容ケース10104で覆った状態を示す図である。
【図353】特図始動口ポートの状態と乱数取得との関係を示す図である。
【図354】特図始動口ポートの状態と乱数取得との関係を示す図である。
【図355】実施形態7の変形例に係るパチンコ機(遊技台)に用いられるカウンタ回路312について説明する図である。
【図356】CPU304によって実行される処理A?処理Dを示す図である。
【図357】CPU304によって実行される処理A?処理Dを示す図である。
【図358】割込み初期設定レジスタの設定例を示す図である。
【図359】割込み要求が発生した場合のジャンプ先アドレスとRST命令でのジャンプ先アドレスとの関連について説明する図である。
【図360】実施形態8の変形例について説明する図である。
【発明を実施するための形態】
【0009】
<実施形態1>
【0010】
以下、図1から図71を用いて、本発明の第1の実施形態に係る遊技台(例えば、パチンコ機100等の弾球遊技機やスロット機等の回胴遊技機)について詳細に説明する。
<全体構成>
【0011】
まず、図1から図5を用いて、本発明の実施形態に係るパチンコ機100の全体構成について説明する。図1は、パチンコ機100および管理装置620を正面側(遊技者側)から見た外観斜視図であり、図2は、パチンコ機100および管理装置620の正面図である。
【0012】
図1および図2を参照して、本実施形態のパチンコ機100は、遊技台内に封入された一定数の遊技媒体(例えば遊技球)をパチンコ機100に設けた遊技媒体経路で循環させるものであり、循環する遊技球を球発射ハンドルの操作によって発射し、各入賞口または始動口に入球させて遊技を行ういわゆる封入式遊技台である。この場合、遊技者に直接払い出される遊技球はなく、循環する遊技球の状態によって、電子情報上、遊技可能な遊技球の数量を増減させる。以下、電子情報上の遊技球の数量と区別するために、パチンコ機100内で循環する遊技球を機内球(または、単に「球」)と称する。つまりパチンコ機100は、遊技者が操作するのは封入され循環する一定数の機内球であり、当該機内球の状態(発射および、入賞または非入賞)によって遊技者が遊技可能な電子情報上の遊技球数の情報(遊技球数情報)が変化(増減)する。
【0013】
以下の説明において遊技球数情報として管理される、遊技者が遊技に使用できる上限の球数(機内球の発射可能球数)を遊技球数という。遊技球数は、パチンコ機100の記憶領域に記憶されており、遊技の状態(例えば機内球の発射や、獲得遊技球があった場合など)により増減し、パチンコ機100によって定期的に更新される(これについては後述する)。つまり遊技球数を増減させる(遊技球数に加算または減算される)球数も、電子情報上の球数情報であるが、以下の説明では単に、球数という。
【0014】
獲得遊技球とは、賞球ともいい、獲得遊技球数(賞球数)は、入賞口または始動口に機内球が進入したことに基づいて遊技球数に加算される球数である。なお、賞球は実際の払い出しはないが、賞球を遊技球数に加算することを賞球の「払い出し」という場合もある。遊技球数に加算された場合、賞球数は0(ゼロ)になる。
【0015】
このパチンコ機100は、インタフェース部(ここでは不図示)を介してパチンコ機100と別体で例えばその近傍に設けられたと管理装置620と接続する。
【0016】
管理装置620は、ICカードの管理を行うICカードユニット(以下、IUともいう)である。管理装置620は例えば、その前面側(遊技者側)にカード差込口626、管理装置表示部628を備える。
【0017】
管理装置620は、カード差込口626に差し込まれたICカードにアクセスして所定の情報の読み出しおよび書き込みを行う。ICカードには、遊技者が遊技前に予めチャージした、遊技球に交換可能な金額(電子マネー)の情報などが記憶されており、遊技者がICカードをカード差込口626に挿入することで遊技が可能となる。つまり、遊技者が遊技開始時にカード挿入口626にICカードを差し込むと、電子マネーの金額(以下、残金ともいう)と交換可能な遊技球数(の上限)が管理装置表示部628等に表示されるなどし、遊技者はこの遊技球数を借りて(パチンコ機100に記憶する遊技球数に加算して)この遊技球数の範囲内で遊技することができる。
【0018】
以下の説明では、ICカード内の金額の少なくとも一部を遊技球数に交換することを貸球といい、貸球数とは、遊技者の球貸を要求する操作に基づいて、遊技球数に加算される球数をいう。
【0019】
また、パチンコ機100に記憶されている遊技球数の少なくとも一部は、管理装置620に送信し、ICカードに記憶することができる。遊技者の計数を要求する操作によって、遊技球数の少なくとも一部をICカードに記憶することを計数といい、その球数を計数球数という。また、ICカードに記憶された計数球数の合計(総計数球数)を貯球という。遊技者は、再プレイを要求する操作により、貯球の少なくとも一部を遊技球数に加算することができる。つまり、ICカード内の残高を遊技球に交換して遊技球に加算する場合が貸球であり、貯球を遊技球に加算する場合が再プレイである。
【0020】
また、ICカードに記憶されている計数球数の合計(貯球)と、ICカード内の残高で交換可能な遊技球数の和を記憶球数といい、パチンコ機100に記憶されている遊技球数とICカード内の記憶球数の和を持ち球数という。持ち球数は、遊技者の持つ全球数である。
【0021】
パチンコ機100と管理装置620は、双方向通信を行い、遊技球の量に関する情報を含む所定の情報を送受信する。
【0022】
管理装置表示部628は、管理装置620からの表示信号(表示データ)に基づいて、管理装置620に挿入されたICカード内の残高で交換(貸出)可能な遊技球数を示す情報を表示する。また、管理装置表示部628は、パチンコ機100や管理装置620において球の貸出に関するエラーが発生した場合には、エラーの情報を表示する。
【0023】
パチンコ機100は、外部的構造として、外枠102と、内枠104と、前面枠扉106と、球発射ハンドル134と、遊技盤200と、球数ユーザインターフェース部(以下、球数UI部)680と、をその前面に備える。
【0024】
外枠102は、遊技機設置営業店に設けられた設置場所へと固定させるための縦長方形状から成る木製の枠部材である。
【0025】
内枠104は、ヒンジ部112を介して外枠102に回動自在に装着された縦長方形状の遊技機基軸体となる部材である。また、内枠104が開放された場合、内枠104の開放を検出する不図示の内枠開放センサを備える。
【0026】
前面枠扉106は、ロック機能付きで且つ開閉自在となるようにパチンコ機100の前面側となる内枠104の前面に対しヒンジ部112を介して装着され、枠状に構成されることでその内側を開口部とした扉部材である。前面枠扉106には、開口部にガラス製又は樹脂製の透明板部材118が設けられており、この構成によりガラス枠と呼ばれる場合もある。前面枠扉106の前面側には、スピーカ120や枠ランプ122が取り付けられている。前面枠扉106下方には、球数UI部680が設けられる。球数UI部680の外側(例えば、右側)には、遊技者の操作によって発射装置(ここでは不図示)へと案内された機内球を遊技盤200の遊技領域124へと打ち出す球発射ハンドル134が設けられる。
【0027】
球数UI部680は、ユーザインターフェース表示部(以下、UI表示部)658と、操作部650を少なくとも備える操作部装置である。UI表示部658は、例えば、パチンコ機100が生成した画像および、管理装置620が生成した画像の少なくとも一方を表示可能なものであるが、UI表示部658は、管理装置620が生成した画像のみを表示可能なものであってもよい。さらに球数UI部658には、他の表示部(ここでは、球数表示部640)が含まれていてもよい。
【0028】
操作部650は、例えば、タッチパネル式の入力部である。タッチパネル式の入力部は、UI表示部658の一部であってもよいし、これとは別体に設けられたものであってもよい。また操作部650は、スイッチ式の入力部であってもよく、タッチパネル式およびスイッチ式など複数の入力部を含んだものであってもよい。
【0029】
本実施形態の球数UI部680は、一例として、タッチパネル式の入力操作部654と計数ボタン652を有する操作部650と、画像表示部656と球数表示部640を有するUI表示部658と、を含んで構成されるが、これについては後述する。
【0030】
球数UI部680にはまた、遊技者の操作によって各種演出装置(ここでは不図示)の演出態様に変化を与えるチャンスボタン136と、チャンスボタン136を発光させるチャンスボタンランプ138が設けられる。
【0031】
前面枠扉106には、また、機内球の入賞によって獲得した賞球数を表示するための賞球数表示部(獲得遊技球数表示部)690が設けられている。ここでは賞球数表示部690は、球数UI部680と別体に設けられた、例えば、7セグメント表示装置またはドットマトリクス表示装置などにより構成されるが、賞球数表示部690を設けず、賞球数等は球数UI部680の画像表示部656に表示する構成としてもよい。
【0032】
図3および図4は、前面枠扉106を開放した状態のパチンコ機100を示す図であって、図3がパチンコ機100を正面側(遊技者側)から見た外観斜視図であり、図4は、パチンコ機100の正面図である。なお、これらの図において管理装置620の図示は省略する。
【0033】
内枠104は、枠状に形成され、内側に空間部114を有している。前面枠扉106の後面と内枠104に取り付けられた遊技盤200の前面とで遊技領域124を区画形成する。また、前面枠扉106が開放された場合、前面枠扉106の開放を検出する不図示の前面枠扉開放センサを備える。
【0034】
遊技盤200は、前面に遊技領域124を有し、内枠104の空間部114に臨むように、所定の固定部材を用いて内枠104に着脱自在に装着されている。なお、遊技領域124は、遊技盤200を内枠104に装着した後、開口部から観察することができる。
【0035】
遊技盤200の左上方には、発射杆622aを有する発射装置622と発射レール624が設けられる。発射レール624にはパチンコ機100内部の遊技媒体経路(ここでは不図示)を経由して機内球が搬送されており、球発射ハンドル134が遊技者によって操作されると、発射装置622によって機内球が遊技領域124に打ち出される。
【0036】
なお、図示は省略するが、パチンコ機100は、例えば外枠102等に夜間監視装置を備え、夜間に内枠が開放されたことを電源投入時に通知する。また、電源切断時には、内枠開放センサ(不図示)によって内枠の開放を検知できる。
【0037】
図5は、図1のパチンコ機100を背面側から見た外観図である。本図においても、管理装置620の図示は省略する。
【0038】
パチンコ機100の背面には、遊技全般の制御処理を行う主制御部300を構成する主基板156を収納する主基板ケース158、主制御部300が生成した処理情報に基づいて演出に関する制御処理を行う第1副制御部400を構成する第1副基板160を収納する第1副基板ケース162、第1副制御部400が生成した処理情報に基づいて演出に関する制御処理を行う第2副制御部500を構成する第2副基板164を収納する第2副基板ケース166が設けられる。
【0039】
また、発射装置622および後述する遊技媒体経路610の制御処理を行う球数制御部600を構成するとともに遊技店員の操作によってエラーを解除するエラー解除スイッチ168を備える球数制御基板(払出制御基板)170を収納する球数基板ケース172、各種電気的遊技機器に電源を供給する電源制御部660を構成するとともに遊技店員の操作によって電源をオンオフする電源スイッチ178と電源投入時に操作されることによってRWMクリア信号を主制御部300に出力するRWMクリアスイッチ180とを備える電源基板182を収納する電源基板ケース184、およびパチンコ機100と管理装置620との信号の送受信や球数UI部680と球数制御部600との信号の送受信を行うインターフェース部606を配設している。
【0040】
パチンコ機100は、また、一定個数(例えば、50個)の機内球を循環させる遊技媒体経路610を備える。これにより、遊技者が循環する機内球に直接触れることができない構造となるとともに、パチンコ機100から貯留皿を省くことが可能となる。
【0041】
遊技媒体経路610は、遊技領域124からパチンコ機100下方に排出された機内球を1個ずつ発射レール624に搬送する機能を有する遊技球循環装置である。詳細には、遊技媒体経路610は、球磨き装置612と、揚上装置614と、球送り装置616を有し、パチンコ機100の背面下部に設けられた球磨き装置612から排出された機内球は背面右側の端部に設けられた揚上装置614により1個ずつ搬送され、背面上部に設けられた球送り装置616に受け渡される。球磨き装置612、揚上装置614、球送り装置616および発射装置622は、球数制御部600によって制御される。
【0042】
球磨き装置612は、パチンコ機100の下部に設けられてパチンコ機100内部を循環する機内球の汚れを自動的に磨くものである。遊技領域124から排出された機内球はまず球磨き装置612に誘導される。球磨き装置612は、球入口と、球出口と、球磨き装置入口センサと、球磨きモータと、球磨きモータセンサと、スクリューと、研磨布と、布送りモータを有し、研磨布で機内球を磨くと同時に研磨布を布送りギアと布送りモータで自動に巻き取ることができる。機内球が球入口に進入したことを球磨き装置入口センサが検知すると、球磨きモータが駆動する。球磨きモータはギアを介してスクリューと接続しており、スクリューの回転によって機内球を1球ずつ搬送する。機内球は球磨き装置612の内部に設けられた研磨布に擦られながら球出口まで搬送され、これにより研磨される。球出口から排出された機内球は揚上装置614に受け渡される。
【0043】
揚上装置614は、球磨き装置612からパチンコ機100の上部まで機内球を搬送する装置であり、球入口と、球出口と、揚上装置入口センサと、揚上モータと、揚上モータセンサと、スクリューとを有する。球磨き装置612から排出された機内球が球入口に進入したことを揚上装置入口センサが検知すると、揚上モータが駆動する。揚上モータはギアを介してスクリューと接続しており、スクリューの回転によって機内球が1球ずつ、パチンコ機100の上部に搬送される。球出口から排出された機内球は、球送り装置616に受け渡される。
【0044】
球送り装置616は、揚上装置614から排出された機内球を発射レール624まで搬送する装置であり、例えば球送ソレノイドと、これに回動可能に接続する機内球の通路(球通路)を含む。球数制御部600が球発射ハンドル134の操作されたことを検出すると球送ソレノイドを駆動する。球送ソレノイドが球通路を吸引することで球通路に沿って機内球が1個ずつ発射レール624へ搬送される。発射レール624に送られた機内球は、上述の如く発射装置622によって遊技領域124に打ち出される。なお、球送り装置616の球入口にも球送り装置入口センサが設けられている。
【0045】
発射装置622は、発射杆622aと不図示の発射ソレノイドなどを含み、発射杵622aは、発射ソレノイドによって回動可能に取り付けられる。発射装置622の近傍には、発射レール624が設けられる。球発射ハンドル134が遊技者に操作されると、発射杵622aが例えば発射ソレノイドによって吸引されるなどして回動する。遊技媒体経路610を経由して発射レール624に搬送された機内球は、回動する発射杵622aの先端で打突されることで、発射レール624から遊技領域124に発射される。この場合、発射の強弱は、球発射ハンドル134の発射強度センサの値によって、発射ソレノイドの吸引力を変化させて制御する。
<遊技盤>
【0046】
図6を参照して遊技盤200について説明する。同図は、遊技盤200の構成の一例を示す略示正面図である。
【0047】
遊技盤200には、機内球が転動可能な遊技領域124が形成される。遊技領域124には、例えば左上方に設けられた発射レール(ここでは不図示)から機内球が発射される。
【0048】
遊技領域124の略中央には、演出装置206を配設している。演出装置206は、演出可動体224を動作して演出を行うものである。この演出装置206には、略中央に装飾図柄表示装置208を配設し、その周囲に、普通図柄表示装置210と、第1特別図柄表示装置212と、第2特別図柄表示装置214と、普通図柄保留ランプ216と、第1特別図柄保留ランプ218と、第2特別図柄保留ランプ220と、高確中ランプ222を配設している。なお、以下、普通図柄を「普図」、特別図柄を「特図」と称する場合がある。
【0049】
装飾図柄表示装置208は、装飾図柄ならびに演出に用いる様々な表示を行うための表示装置であり、本実施形態では液晶表示装置(Liquid Crystal Display)によって構成する。この装飾図柄表示装置208は、左図柄表示領域208a、中図柄表示領域208b、右図柄表示領域208cおよび演出表示領域208dの4つの表示領域に分割し、左図柄表示領域208a、中図柄表示領域208bおよび右図柄表示領域208cはそれぞれ異なった装飾図柄を表示し、演出表示領域208dは演出に用いる画像を表示する。さらに、各表示領域208a、208b、208c、208dの位置や大きさは、装飾図柄表示装置208の表示画面内で自由に変更することを可能としている。なお、装飾図柄表示装置208として液晶表示装置を採用しているが、液晶表示装置でなくとも、種々の演出や種々の遊技情報を表示可能に構成されていればよく、例えば、ドットマトリクス表示装置、7セグメント表示装置、有機EL(ElectroLuminescence)表示装置、リール(ドラム)式表示装置、リーフ式表示装置、プラズマディスプレイ、プロジェクタを含む他の表示デバイスを採用してもよい。また、遊技者が装飾図柄表示装置208を視認し難いように遮蔽する遮蔽装置246が設けられてもよい。
【0050】
普図表示装置210は、普図の表示を行うための表示装置であり、本実施例では7セグメントLEDによって構成する。第1特図表示装置212および第2特図表示装置214は、特図の表示を行うための表示装置であり、本実施例では7セグメントLEDによって構成する。
【0051】
普図保留ランプ216は、保留している普図変動遊技(詳細は後述)の数を示すためのランプであり、本実施例では、普図変動遊技を所定数(例えば、2つ)まで保留することを可能としている。第1特図保留ランプ218および第2特図保留ランプ220は、保留している特図変動遊技(詳細は後述)の数を示すためのランプであり、本実施例では、特図変動遊技を所定数(例えば、4つ)まで保留することを可能としている。高確中ランプ222は、遊技状態が大当りが発生し易い高確率状態であること、または高確率状態になることを示すためのランプであり、遊技状態を大当りが発生し難い低確率状態から高確率状態にする場合に点灯し、高確率状態から低確率状態にする場合に消灯する。
【0052】
また、この演出装置206の周囲には、所定の球進入口、例えば、一般入賞口226(226C、226D)と、普図始動口228と、第1特図始動口230と、第2特図始動口232と、可変入賞口234を配設している。
【0053】
一般入賞口226(226C、226D)は、本実施例では遊技盤200に複数配設しており、この一般入賞口226への機内球の入球を所定の球検出センサ(ここでの図示は省略するが、後に詳述する)が検出した場合(一般入賞口226に入賞した場合)、所定の個数(例えば、10個)の賞球を遊技者に与える。既述の通り賞球は、実際の循環する機内球の払い出しではなく、遊技者が保持する電子情報上の遊技球数(パチンコ機100の記憶領域に記憶されている遊技球数)に加算される(以下同様)。なお、一般入賞口226に入球した機内球は、パチンコ機100の裏側に誘導され、遊技媒体経路610内を循環して発射レール624に搬送されて再び遊技に利用される。
【0054】
普図始動口228は、ゲートやスルーチャッカーと呼ばれる、遊技領域124の所定の領域を球が通過したか否かを判定するための装置で構成しており、本実施例では遊技盤200の右側に1つ配設している。普図始動口228を通過した機内球は、パチンコ機100の裏側に誘導され、遊技媒体経路610内を循環して発射レール624に搬送されて再び遊技に利用される。機内球が普図始動口228を通過したことを所定の球検出センサが検出した場合、パチンコ機100は、普図表示装置210による普図変動遊技を開始する。
【0055】
第1特図始動口230は、本実施例では遊技盤200の中央に1つだけ配設している。この第1特図始動口230への入球を所定の球検出センサが検出した場合、所定の個数(例えば、3個)の賞球を遊技者に与えるため、パチンコ機100の記憶領域に保持されている遊技球数に賞球数を加算するとともに、第1特図表示装置212による特図変動遊技を開始する。
【0056】
第2特図始動口232は、電動チューリップ(電チュー)と呼ばれ、本実施例では第1特図始動口230の真下に1つだけ配設している。この第2特図始動口232は、左右に開閉自在な羽根部材232aを備え、羽根部材232aの閉鎖中は球の入球が不可能であり、普図変動遊技に当選し、普図表示装置210が当たり図柄を停止表示した場合に羽根部材232aが所定の時間間隔、所定の回数で開閉する。第2特図始動口232への入球を所定の球検出センサが検出した場合、所定の個数(例えば、4個)の賞球を遊技者に与えるため、遊技球数に賞球数を加算するとともに、第2特図表示装置214による特図変動遊技を開始する。
【0057】
可変入賞口234は、大入賞口またはアタッカーと呼ばれ、本実施例では遊技盤200の中央部下方に1つだけ配設している。この可変入賞口234は、開閉自在な扉部材234aを備え、扉部材234aの閉鎖中は球の入球が不可能であり、特図変動遊技に当選して特図表示装置が大当たり図柄を停止表示した場合に扉部材234aが所定の時間間隔(例えば、開放時間29秒、閉鎖時間1.5秒)、所定の回数(例えば15回)で開閉する。可変入賞口234への入球を所定の球検出センサが検出した場合、所定の個数(例えば、15個)の賞球を遊技者に与えるため、遊技球数に賞球数を加算する。
【0058】
第1特図始動口230、第2特図始動口232および可変入賞口234に入球した機内球は、いずれもパチンコ機100の裏側に誘導され、遊技媒体経路610内を循環して発射レール624に搬送されて再び遊技に利用される。
【0059】
さらに、これらの入賞口や始動口の近傍には、風車と呼ばれる円盤状の打球方向変換部材236や、遊技釘238を複数個、配設していると共に、遊技領域124の最下部には、いずれの入賞口や始動口にも入賞しなかった機内球をパチンコ機100の裏側に誘導した後、遊技媒体経路610の入口に搬送するためのアウト口240を設けている。
【0060】
このパチンコ機100は、遊技者の球発射ハンドル134の操作量に応じた強度で発射装置622の発射ソレノイドを駆動し、1個ずつ発射レール624に供給される機内球を、発射装置622(発射杆622a)によって遊技領域124に打ち出す。そして、遊技領域124の上部に打ち出された球は、打球方向変換部材236や遊技釘238等によって進行方向を変えながら下方に落下し、入賞口(一般入賞口226、可変入賞口234)や始動口(第1特図始動口230、第2特図始動口232)に入賞するか、いずれの入賞口や始動口にも入賞することなく、または普図始動口228を通過するのみでアウト口240に到達する。
【0061】
このように本実施形態では、入賞口および始動口に進入した機内球および、これらに入賞せずにアウト口から排出された機内球のいずれも、パチンコ機100の裏側に誘導され、再び遊技に使用される。従って、機内球の発射による遊技者の遊技球の消費量は、遊技領域124に発射される機内球の数量を遊技球数から減算することで管理する。
【0062】
以下の説明において、遊技開始から遊技終了までの間に、遊技領域124に発射される機内球の数量をイン球数(投入球数)という。イン球数は、球発射ハンドル134の操作で遊技領域124に発射(投入)される機内球を検出する毎に、遊技球数から減算される。つまり1回の機内球の発射によって遊技球数から球数「1」が減算される。
【0063】
また、遊技開始から遊技終了までの間に、遊技領域124から遊技盤200の背面側に排出される機内球の数量をアウト球数(排出球数)という。アウト球数は、遊技領域124から排出される機内球の数を検出し、これをカウントした球数である。パチンコ機100は、イン球数とアウト球数を管理することで、機内球数の監視を行うが、これについては後述する。
【0064】
図7は、本実施形態のパチンコ機100の内部を循環する機内球710の経路を説明するための図であり、遊技盤200を正面から見た略示正面図である。同図においては、主に、遊技盤200の各入賞口または各始動口を図示するとともに、パチンコ機100背面側に設けられる遊技媒体経路610を遊技領域124の外側に図示し、また遊技盤200の背面側に設けられる遊技媒体内部経路700(700A?700J)を破線で示し、遊技媒体内部経路700(700A?700J)に設けられた各球検出センサ320B、604Bを太線で示している。また、図7(a)は減算センサ604Zが発射レール624の後にある場合を示し、図(b)は減算センサ604Zが球送り装置616と発射装置622の間にある場合を示している。
【0065】
遊技者が球発射ハンドル(ここでは不図示)を操作すると、発射装置622から機内球710が遊技領域124に発射される。遊技領域124を落下し、第1特図始動口230を通過した機内球710は、遊技盤200の背面側に設けられた遊技媒体内部経路700Aに誘導され、第2特図始動口232を通過した機内球710は、遊技媒体内部経路700Bに誘導される。一般入賞口226Cを通過した機内球710は遊技媒体内部経路700Cに、一般入賞口226Dを通過した機内球710は、遊技媒体内部経路700Dに誘導される。遊技媒体内部経路700C、700Dは1つの遊技媒体内部経路700Eに合流する。また可変入賞口234を通過した機内球710は、遊技媒体内部経路700Fに誘導され、普図始動口228を通過した機内球710は、遊技媒体内部経路700Gに誘導される。複数の遊技媒体内部経路700A、700B、700E、700F、700Gは、1つの遊技媒体内部経路700Hに合流する。
【0066】
また、アウト口240から排出され機内球710は、遊技媒体内部経路700Iに誘導される。遊技媒体内部経路700Hおよび700Iは、1つの遊技媒体内部経路700Jに合流し、球磨き装置612の入口に達する。
【0067】
遊技媒体内部経路700A、700B、700E、700F、700Gには、入賞口または始動口(以下、入賞口等という)に対応してそれぞれ、球検出センサ320Bが設けられる。球検出センサ320Bは、入賞口等に入球したことを検出するセンサであり、一般入賞口用センサ320E、第1特図始動口用センサ320J、第2特図始動口用センサ320H、可変入賞口用センサ320G、普図始動口用センサ320Tの総称である。
【0068】
すなわち、一般入賞口226(226C、226D)が接続する合流後の遊技媒体内部経路700Eには一般入賞口用センサ320Eが設けられ、第1特図始動口230が接続する遊技媒体内部経路700Aには第1特図始動口用センサ320Jが設けられ、第2特図始動口232が接続する遊技媒体内部経路700Bには第2特図始動口用センサ320Hが設けられ、可変入賞口234が接続する遊技媒体内部経路700Fには可変入賞口用センサ320Gが設けられ、普図始動口228が接続する遊技媒体内部経路700Gには、普図始動口用センサ320Tが設けられる。なお、複数の入賞口等で共通の球検出センサ320Bを使用することができる。例えば、賞球数が同じ一般入賞口226C、226Dには、共通の一般入賞口用センサ320Eが設けられている。また、賞球数が同じ一般入賞口226C、226Dであってもそれぞれに、球検出センサ320Bを設ける構成であってもよい。
【0069】
更にパチンコ機100には、球検出センサ604Bが設けられる。球検出センサ604Bは、遊技領域124に発射された機内球710と遊技領域124から排出された機内球710をそれぞれ検出する投入検出センサおよび排出検出センサである。
【0070】
投入検出センサは、発射レール624から遊技領域124に発射される機内球710(遊技に供される、または遊技に供された機内球710)の通過を検出する。投入検出センサは例えば、減算センサ604Zである。減算センサ604Zで機内球710の通過を検出すると、遊技者が遊技球を1個消費(遊技者の遊技球数が1個減少)したと判定される。減算センサ604Zは例えば、球送り装置616の球送り装置入口センサ(不図示)と遊技領域124の間に配置される。減算センサ604Zは、発射待機中の機内球710の通過を検出可能な位置であればこの位置に限ることはなく、例えば、球磨き装置612の球入口から発射レール624までの遊技媒体経路610のいずれかの位置に設けることができる。具体的には、球磨き装置612(球磨き装置入口センサ)と発射レール624の間、揚上装置614(揚上装置入口センサ)と発射レール624の間、球送り装置616(球送り装置入口センサ)と発射レール624の間、球磨き装置612(球磨き装置入口センサ)と揚上装置614(揚上装置入口センサ)の間、あるいは揚上装置614(揚上装置入口センサ)と球送り装置616(球送り装置入口センサ)の間、などである。
【0071】
排出検出センサは、遊技領域124から排出された機内球710の通過を検出する。排出検出センサには、入賞口等に入賞した機内球710を検出する入賞検出センサ604Sと、入賞口等のいずれにも入賞しなかった(非入賞であった)機内球710を検出する非入賞検出センサ604Kが含まれる。
【0072】
例えば、入賞検出センサ604Sは、遊技媒体内部経路700Hの途中に設けられ、これを通過する機内球710を検出することで、いずれかの入賞口等への入球があったこと、および遊技領域124から機内球710が1個排出されたことを検出する。
【0073】
一方、遊技領域124内を落下し、いずれの入賞口等にも入賞しなかった機内球710はアウト口240から排出され遊技媒体内部経路700Iに誘導され、球磨き装置612の入口に達する。非入賞検出センサ604Kは例えば、遊技媒体内部経路700Iの途中に設けられ、これを通過する機内球710を検出することで、いずれかの入賞もなかったこと、および遊技領域124から1個の機内球710が排出されたことを検出する。
【0074】
なお、本実施形態では、遊技領域124から排出される機内球710を入賞したものと非入賞のもので区別するために、入賞検出センサ604Sを遊技媒体内部経路700Hに、非入賞検出センサ604Kを遊技媒体内部経路700Iにそれぞれ設けたが、入賞、非入賞の区別なく遊技領域124から排出される機内球710を検出するのみであれば、合流後の遊技媒体内部経路700Jの途中に1つの排出検出センサ(排出検出センサ)を設ける構成としてもよい。
【0075】
なお、同図(a)では、減算センサ604Zが発射レール624から発射された機内球710を検出する場合を示したが減算センサ604Zの位置はこれに限らない。
【0076】
同図(b)は、減算センサ604Z付近の他の位置を示す図であり、の球送り装置616および発射装置622付近を抜粋して示す図である。同図(b)のように、減算センサ604Zが球送り装置616と発射装置622の間に設けてもよい。この場合、減算センサ604Zは、球送り装置616から発射装置622に送り出された機内球710を検出する。
【0077】
このように、封入式のパチンコ機100では、機内球710をパチンコ機100の内枠内部で循環させることにより、遊技者が直接、機内球710に触れることができないので、機内球710に対する不正の防止に効果的である。また、発射装置622は、遊技領域124の上方に設けられており(下方から機内球710をレールに沿って打ち上げる構成ではないため)、発射装置622への戻り球を生じない。更に、機内球710の上皿および下皿への払出が行われないため、騒音レベルが抑えられる上、遊技機への球の補給が不要なため、島設備が不要となる。
<パチンコ機と管理装置の接続例>
【0078】
図8は、パチンコ機100と管理装置620の接続の一例を示すブロック図である。上述のとおり、パチンコ機100は、主制御部300、第1副制御部400、第2副制御部500、球数制御部600などの制御部と、第1特図表示装置212、第2特図表示装置214、普図表示装置210、装飾図柄表示装置208などの表示部と、球数UI部680と、チャンスボタン136、エラー解除スイッチ168などの操作部と、ROM306、RAM308などの記憶部と、インターフェース部606と、を有して構成されている。一方、管理装置620は、全体の制御を行う制御部620aと、各種ボタンなどの操作部620bと、ROMやRAMなどの記憶部620cと、ICカードを挿入するためのカード差込口626と、管理装置表示部628と、パチンコ機100との通信インタフェースであるインターフェース部620dなどを有して構成される。
【0079】
パチンコ機100の球数制御部600は、インタフェース部606を介して、管理装置620と接続してこれと双方向の通信を行い、遊技球の量に関する情報を含む各種遊技情報を送受信する。球数制御部600は例えば、球数UI部680からの入力操作等に基づいて管理装置620と遊技球の量に関する情報の送受信を行い、貸球制御、計数制御、ICカード返却制御、画面表示の切替制御などを行う。
【0080】
遊技球の量に関する情報とは、例えば、遊技球数に関する情報または持ち球数に関する情報、各入賞口等に対応した賞球数含む入賞情報、総賞球数、計数球数、金額(残高)、イン球数およびアウト球数などに関する情報、ICカードに記憶される遊技球の量に関する情報、ICカードの受付又は返却指令などである。
【0081】
またこれらの他に、遊技状態の情報、不正やエラーを検出したときに出力する情報なども含まれる。管理装置620は、遊技球数に関する情報を、外部に接続されたホールコンピュータに少なくとも送信する。また、管理装置620は、持ち球数に関する情報を、外部に接続されたホールコンピュータに少なくとも送信するものとしてもよい。
【0082】
球数制御部60と管理装置620は双方向通信を行うことにより、暗号化処理などによって球数制御部600と管理装置620間の通信データの整合性を確認することができ、これらのインターフェース部606を狙った不正アクセスを防ぐことができる。また、例えば球数制御部600から取得したパチンコ機100の固有の情報(例えば、固有IDなど)を管理装置620の通信網を経由して外部の管理センタなどに登録されたパチンコ機100の固有の情報と照合することでパチンコ機100の認証を行うことが可能となり、電源投入時などに判定を行うことで不正改造の発見が容易となる。
【0083】
再び図7も参照して、各入賞口および各始動口に設けられた球検出センサ320Bは主制御部300と接続する。主制御部300は、一般入賞口用センサ320Eにおいて機内球710の通過を検出すると、一般入賞口226に入賞したと判定し、当該入賞に対応する賞球数、または当該賞球数に個々に対応する情報を含む賞球数情報(賞球コマンド)を、球数制御部600に送信する。また、第1特図始動口用センサ320Jにおいて機内球710の通過を検出すると、第1特図始動口230に入賞したと判定し、当該入賞に対応する賞球コマンドを、球数制御部600に送信する。また、第2特図始動口用センサ320Hにおいて機内球710の通過を検出すると、第2特図始動口232に入賞したと判定し、当該入賞に対応する賞球コマンドを、球数制御部600に送信する。また、可変入賞口用センサ320Gにおいて機内球710の通過を検出すると、可変入賞口234に入賞したと判定し、当該入賞に対応する賞球コマンドを、球数制御部600に送信する。また、主制御部300は、普図始動口用センサ320Tにおいて機内球710の通過を検出すると、普図始動口228に入賞したと判定し、当該入賞に対応する賞球コマンドを、球数制御部600に送信する。
【0084】
減算センサ604Z、入賞検出センサ604Sおよび非入賞検出センサ604Kは、球数制御部600と接続する。
【0085】
遊技者の遊技球数は、球数制御部600のRAM等に設けられた遊技球数記憶領域に記憶されており、球数制御部600は、減算センサ604Zで機内球710の通過を検出した場合、遊技球数記憶領域に記憶されている遊技球数を1つ減じる。
【0086】
球数制御部600は、減算センサ604Zで機内球710の通過を検出し、且つ入賞検出センサ604Sのいずれかで1個の機内球710の通過を検出した場合に、遊技球数の1個の消費による入賞があったと判定し、主制御部300から球数制御部600に送信される賞球数情報(賞球コマンド)に基づいて当該入賞に対応する賞球数を、遊技球数記憶領域に記憶されている遊技球数に加算する。また球数制御部600は、減算センサ604Zで機内球710の通過を検出し、且つ非入賞検出センサ604Kで1個の機内球710の通過を検出した場合に、遊技球数の1個の消費と判定する。
<球数UI部>
【0087】
図9を参照して、球数UI部680について説明する。図9は、球数UI部680の一例を示す上面(正面)図である。本実施形態の球数UI部680は、入力操作部654と計数ボタン652を有する操作部650と、画像表示部656と球数表示部640を有するUI表示部658と、を含んで構成される。
【0088】
画像表示部656は、例えば液晶表示装置であり、管理装置620から受信したICカード内に記憶された残高、貯球数などの情報を表示する。また後述するが、画像表示部656には、第1副制御部400が生成し、遊技盤200に設けられた表示装置(装飾図柄表示装置208)に表示する画像、および管理装置620が生成した画像のうち、一方を切り替えて表示可能である。
【0089】
入力操作部654は、複数のボタンであり、ここでは一例として、UI表示部658の一部に設けられた遊技者の指を接触させることで当該ボタンの操作(入力)を可能にしたタッチパネル方式が採用される。指による入力の一例として、抵抗膜方式(アナログ抵抗膜方式、マトリクス型抵抗膜方式)、静電容量方式、赤外線方式、超音波方式などが挙げられる。以下、遊技者による指入力を「タッチする」という場合がある。また、所定のペンの先端を接触させることにより入力させるものであってもよく、この場合の一例としてアナログ抵抗膜方式、電磁誘導方式、静電結合方式などが挙げられる。なお本実施形態では、画像表示部656と入力操作部654が一体的に設けられたタッチパネル型液晶表示装置662を採用している。しかしこれに限らず、入力操作部654は、画像表示部656と別体に設けられたタッチパネルでもよいし、計数ボタン652と同様に画像表示部656と別体に設けられた押しボタン(スイッチ式)で入力操作を行うものであってもよい。また、タッチパネルには、有機EL表示装置や、プラズマディスプレイを用いてもよい。さらに画像表示部656は、入力操作部654を別体の構成とする場合には、種々の演出や種々の遊技情報を表示可能に構成されていればよく、例えば、ドットマトリクス表示装置、7セグメント表示装置、有機EL表示装置、リール(ドラム)式表示装置、リーフ式表示装置、プラズマディスプレイ、プロジェクタを含む他の表示デバイスを採用してもよい。
【0090】
入力操作部654の複数のボタンは例えば、管理装置620に対して球貸し指示を行う球貸ボタン140、管理装置620に対して挿入されたICカードの返却の指示を行う返却ボタン142および、画面表示の切り替えを指示する切替ボタン144、管理装置620に対して再プレイ指示を行う再プレイボタン146などである。また、入力操作部654には、これ以外の操作ボタンが含まれてもよい。更に、入力操作部654は、例えば初期状態では1つのボタンのみ表示され、当該ボタンをタッチすることで複数の階層に分かれた操作メニューが表示されるように構成されていてもよい。これらのボタンは例えば、操作(入力)可能の場合は明るく(光って)表示されており、操作(入力)不可の場合は暗く表示されている。
【0091】
計数ボタン652は、球数制御部600の遊技球数記憶領域に保持された遊技球数の少なくとも一部をICカードに記憶(貯球)する場合に押下するボタンである。また、計数球数は、遊技者の計数ボタン652の操作に基づいて、遊技球数から減算されるとともに、パチンコ機100から管理装置620に送信され、ICカードに記憶される球数をいう。例えば、計数ボタン652の所定時間内(例えば10秒以内)の1回の押下に対して所定数(例えば10個)の計数球数が対応づけられており、これが押下されたことを球数制御部600が検知すると、は遊技球数から計数球数(例えば10個)を減算し、計数球数を計数情報として管理装置620に送信するとともに、減算後の遊技球数を球数表示部640に表示する。計数情報には、減算後の遊技球数や、それまでの計数球数を累積した総計数球数(貯球数)が含まれ、計数情報を受信した管理装置620は、貯球数等をICカードに記憶するとともに、球数表示部640に更新された遊技球数を表示させる。
【0092】
計数ボタン652は、複数回連続して押下することで、1回の押下に相当する一定量に、押下した回数を乗じた計数球数(例えば10個×2回押下=20個など)を送信することもできる。また、所定時間(例えば、10秒)を超えて押下を続けるとその押下時間の長さに応じて、加速的に計数球数が増加し(20個、50個、100個など)、押下終了した時点の計数球数を管理装置620に送信するものであってもよい。また、ICカードの返却ボタン142が遊技者によってタッチされ、その後所定時間(例えば、10秒以内)に計数ボタン652が押下された場合は、パチンコ機100で記憶する全ての遊技球数を計数球数とした計数情報を管理装置620に送信し、球数表示部640には「0」を表示するものであってもよい。更に、入力操作部654に数字キー(テンキー)を配置したり、数字キーボタンを配置するなどし、計数ボタン652を押下した後に数字キー入力で計数球数を直接入力させるものであってもよい。
【0093】
球貸ボタン140は、遊技者が残高から所定数の遊技球を借りる(残高から貸球を受ける)場合にタッチするボタンである。ICカードが管理装置620に挿入されると、ICカード内の電子マネーの残高を管理装置表示部628に表示するとともにICカード内の貯球と残高などの情報(球数更新指令)が、球数UI部680に送信される。球数UI部680はこれに基づき、画像表示部656にこれらの情報を含む画像を表示する。当該表示に基づき、遊技者が球貸ボタン140をタッチした場合、その情報(球貸操作情報)が球数UI部680から管理装置620に送信される。球貸ボタン140は、計数ボタン652と同様に所定期間の1回のタッチで一定量の貸球数が球貸操作情報として送信されるものであってもよいし、複数回のタッチで貸球数の整数倍の入力が可能となったり、所定期間を超えるタッチで貸球数が加速度的に増加する入力が可能となるものであってもよい。
【0094】
球貸操作情報を受信した管理装置620は、指示のあった貸球数(球貸要求情報)を球数制御部600に送信する。球数制御部600は、貸球数を遊技球数に加算して球数表示部640に表示するとともに遊技球数記憶領域に記憶し、遊技者は増加した遊技球数で遊技を行うことができる。また貸球後の残高が画像表示部656に表示される。
【0095】
再プレイボタン146は、遊技者が貯球から所定数の遊技球を借りる(貯球から貸球を受ける)場合にタッチするボタンである。ICカードが管理装置620に挿入されると、ICカード内の電子マネーの残高を管理装置表示部628に表示するとともにICカード内の貯球と残高などの情報(球数更新指令)が、球数UI部680に送信される。球数UI部680はこれに基づき、画像表示部656にこれらの情報を含む画像を表示する。例えば、再プレイは、所定量(例えば、100個)の貯球がある場合に有効であり、球数更新指令には再プレイ可否の情報も含まれる。再プレイ可能な場合は、球数UI部680は再プレイボタン146を明るく表示するなどし、再プレイ可能であることを報知する。当該表示に基づき、遊技者が再プレイボタン146をタッチした場合、その情報(再プレイ操作情報)が球数UI部680から管理装置620に送信される。再プレイボタン146は、計数ボタン652と同様に所定期間の1回のタッチで一定量の再プレイ球数(貸球数と同様)が再プレイ操作情報として送信されるものであってもよいし、複数回のタッチで再プレイ球数の整数倍の入力が可能となったり、所定期間を超えるタッチで再プレイ球数が加速度的に増加する入力が可能となるものであってもよい。
【0096】
再プレイ操作情報を受信した管理装置620は、指示のあった再プレイ球数の要求情報を球数制御部600に送信する。球数制御部600は、再プレイ球数を遊技球数に加算して球数表示部640に表示するとともに遊技球数記憶領域に記憶し、遊技者は増加した遊技球数で遊技を行うことができる。また再プレイによる貸球後の貯球が画像表示部656に表示される。
【0097】
返却ボタン142は、管理装置620にICカードが挿入されている場合にタッチすると、ICカードが返却されるボタンである。返却ボタン142のタッチがあった情報(返却操作情報)が球数UI部680から管理装置620に送信されると、管理装置620から球数制御部600に球数要求情報を送信する。球数要求情報を受信した球数制御部600は、最新の遊技球数を含む遊技球数情報を管理装置620に送信する。遊技球数情報には残高、賞球数の累積である総賞球数、貯球数(総計数球数)などが含まれる。遊技球数情報を受信した管理装置620は貯球数等をICカードに記憶し、カード挿入口626から排出する。
【0098】
球数表示部640は、例えば、7セグメント表示装置またはドットマトリクス表示装置などにより構成された遊技球数表示装置であり、パチンコ機100または管理装置620から送信される情報(遊技球数やエラー情報など)を表示する。球数表示部640は、遊技球数等を1個単位で、例えば6桁まで表示可能である。また例えば「ERRxx」などの文字によるエラー情報も表示可能である。
【0099】
例えば、遊技球数が100個の場合、球数表示部640には「100」と表示される。遊技中に入賞により15個の賞球があると、まずガラス枠(前面枠扉)106の賞球数表示部690に「15」と表示され、その賞球が遊技者に付与される(払い出される)と球数制御部600の表示が「115」となるとともに賞球数表示部690の表示が「0」になる。
<図柄の種類>
【0100】
次に、図10(a)?(c)を用いて、パチンコ機100の第1特別図柄表示装置212、第2特別図柄表示装置214、装飾図柄表示装置208、普通図柄表示装置210が停止表示する特図および普図の種類について説明する。図10(a)は特図の停止図柄態様の一例を示したものである。
【0101】
第1特図始動口230に球が入球したことを第1特図始動口用センサ320Jが検出したことを条件として特図1変動遊技が開始され、第2特図始動口232に球が入球したことを第2特図始動口用センサ320Hが検出したことを条件として特図2変動遊技が開始される。特図1変動遊技が開始されると、第1特別図柄表示装置212は、7個のセグメントの全点灯と、中央の1個のセグメントの点灯を繰り返す「特図1の変動表示」を行う。また、特図2変動遊技が開始されると、第2特別図柄表示装置214は、7個のセグメントの全点灯と、中央の1個のセグメントの点灯を繰り返す「特図2の変動表示」を行う。これらの「特図1の変動表示」および「特図2の変動表示」が本発明にいう図柄の変動表示の一例に相当する。そして、特図1の変動開始前に決定した変動時間(本発明にいう変動時間が相当)が経過すると、第1特別図柄表示装置212は特図1の停止図柄態様を停止表示し、特図2の変動開始前に決定した変動時間(これも本発明にいう変動時間が相当)が経過すると、第2特別図柄表示装置214は特図2の停止図柄態様を停止表示する。したがって、「特図1の変動表示」を開始してから特図1の停止図柄態様を停止表示するまで、あるいは「特図2の変動表示」を開始してから特図2の停止図柄態様を停止表示するまでが本発明にいう図柄変動停止表示の一例に相当し、以下、この「特図1又は2の変動表示」を開始してから特図1又は2の停止図柄態様を停止表示するまでの一連の表示を図柄変動停止表示と称する。後述するように、図柄変動停止表示は複数回、連続して行われることがある。図10(a)には、図柄変動停止表示における停止図柄態様として「特図A」から「特図J」までの10種類の特図が示されている。図10(a)においては、図中の白抜きの部分が消灯するセグメントの場所を示し、黒塗りの部分が点灯するセグメントの場所を示している。
【0102】
「特図A」は15ラウンド(15R)特別大当たり図柄であり、「特図B」は15R大当たり図柄である。本実施形態のパチンコ機100では、後述するように、特図変動遊技における大当りか否かの決定はハードウェア乱数の抽選によって行い、特別大当りか否かの決定はソフトウェア乱数の抽選によって行う。大当りと特別大当りの違いは、次回の特図変動遊技で、大当りに当選する確率が高い(特別大当り)か低い(大当り)かの違いである。以下、この大当りに当選する確率が高い状態のことを特図高確率状態と称し、その確率が低い状態のことを特図低確率状態と称する。また、15R特別大当たり遊技終了後および15R大当たり遊技終了後はいずれも時短状態に移行する。時短については詳しくは後述するが、時短状態に移行する状態のことを普図高確率状態と称し、時短状態に移行しない状態のことを普図低確率状態と称する。15R特別大当たり図柄である「特図A」は、特図高確率普図高確率状態であり、15R大当たり図柄である「特図B」は、特図低確率普図高確率状態である。これらの「特図A」および「特図B」は、遊技者に付与する利益量が相対的に大きな利益量になる図柄である。
【0103】
「特図C」は突然確変と称される2R大当たり図柄であり、特図高確率普図高確率状態である。すなわち、15Rである「特図A」と比べて、「特図C」は2Rである点が異なる。「特図D」は突然時短と称される2R大当たり図柄であり、特図低確率普図高確率状態である。すなわち、15Rである「特図B」と比べて、「特図D」は2Rである点が異なる。
【0104】
「特図E」は隠れ確変と称される2R大当たり図柄であり、特図高確率普図低確率状態である。「特図F」は突然通常と称される2R大当たり図柄であり、特図低確率普図低確率状態である。これら「特図E」および「特図F」はいずれも、2Rであるとともに、時短状態に移行しない状態である。
【0105】
「特図G」は第1小当たり図柄であり、「特図H」は第2小当たり図柄であり、何れも特図低確率普図低確率状態である。ここにいう小当たりは、2R時短無し大当たりと同じものに相当する。すなわち、この「特図G」、「特図H」は「特図F」と同じ状態であるが、両者では装飾図柄表示装置208に表示される演出が異なり、あえて、同じ状態でも「特図G」、「特図H」と「特図F」を設けておくことで、遊技の興趣を高めている。
【0106】
また、「特図I」は第1はずれ図柄であり、「特図J」は第2はずれ図柄であり、遊技者に付与する利益量が相対的に小さな利益量になる図柄である。
【0107】
なお、本実施形態のパチンコ機100には、15R特別大当たり図柄として「特図A」以外の図柄も用意されており、15R大当たり図柄等の他の図柄についても同様である。
【0108】
図10(b)は装飾図柄の一例を示したものである。本実施形態の装飾図柄には、「装飾1」?「装飾10」の10種類がある。第1特図始動口230または第2特図始動口232に球が入賞したこと、すなわち、第1特図始動口230に球が入球したことを第1特図始動口用センサ320Jが検出したこと、あるいは第2特図始動口232に球が入球したことを第2特図始動口用センサ320Hが検出したことを条件にして、装飾図柄表示装置208の左図柄表示領域208a、中図柄表示領域208b、右図柄表示領域208cの各図柄表示領域に、「装飾1」→「装飾2」→「装飾3」→・・・・「装飾9」→「装飾10」→「装飾1」→・・・の順番で表示を切り替える「装飾図柄の変動表示」を行う。そして、「特図B」の15R大当たりを報知する場合には、図柄表示領域208a?208cに15R大当たりに対応する、同じ装飾図柄が3つ並んだ図柄組合せ(例えば「装飾1-装飾1-装飾1」や「装飾2-装飾2-装飾2」等)を停止表示する。「特図A」の15R特別大当たりを報知する場合には、同じ奇数の装飾図柄が3つ並んだ図柄組合せ(例えば「装飾3-装飾3-装飾3」や「装飾7-装飾7-装飾7」等)を停止表示する。
【0109】
また、「特図E」の隠れ確変と称される2R大当たり、「特図F」の突然通常と称される2R大当たり、あるいは「特図G」の第1小当たり、「特図H」の第2小当たりを報知する場合には、「装飾1-装飾2-装飾3」を停止表示する。さらに、「特図C」の突然確変と称される2R大当たり、あるいは「特図D」の突然時短と称される2R大当たりを報知する場合には、「装飾1-装飾3-装飾5」を停止表示する。
【0110】
一方、「特図I」の第1はずれ、「特図J」の第2はずれを報知する場合には、図柄表示領域208a?208cに図10(b)に示す図柄組合せ以外の図柄組合せを停止表示する。
【0111】
図10(c)は普図の停止表示図柄の一例を示したものである。本実施形態の普図の停止表示態様には、当たり図柄である「普図A」と、外れ図柄である「普図B」の2種類がある。普図始動口228を球が通過したことを上述の球検出センサ(普図始動口用センサ)が検出したことに基づいて、普通図柄表示装置210は、7個のセグメントの全点灯と、中央の1個のセグメントの点灯を繰り返す「普図の変動表示」を行う。そして、普図変動遊技の当選を報知する場合には「普図A」を停止表示し、普図変動遊技の外れを報知する場合には「普図B」を停止表示する。この図10(c)においても、図中の白抜きの部分が消灯するセグメントの場所を示し、黒塗りの部分が点灯するセグメントの場所を示している。
<制御部>
【0112】
次に、図11を用いて、このパチンコ機100の制御部の回路構成について詳細に説明する。なお、同図は制御部の回路ブロック図を示したものである。
【0113】
パチンコ機100の制御部は、大別すると、遊技の中枢部分を制御する主制御部300と、主制御部300が送信するコマンド信号(以下、単に「コマンド」と呼ぶ)に応じて主に演出の制御を行う第1副制御部400と、第1副制御部400より送信されたコマンドに基づいて各種機器を制御する第2副制御部500と、主制御部300が送信するコマンドおよび循環する機内球710の状態に応じて、主に遊技者が保持する遊技球数の増減に関する制御を行うとともに機内球710の循環の制御を行う球数制御部600と、パチンコ機100に供給される電源を制御する電源制御部660と、によって構成している。
<主制御部>
【0114】
まず、パチンコ機100の主制御部300について説明する。
【0115】
主制御部300は、主制御部300の全体を制御する基本回路302を備えており、この基本回路302には、CPU304と、制御プログラムや各種データを記憶するためのROM306と、一時的にデータを記憶するためのRAM308と、各種デバイスの入出力を制御するためのI/O310と、時間や回数等を計測するためのカウンタタイマ312と、プログラム処理の異常を監視するWDT314を搭載している。なお、ROM306やRAM308については他の記憶装置を用いてもよく、この点は後述する第1副制御部400についても同様である。この基本回路302のCPU304は、水晶発振器316bが出力する所定周期のクロック信号をシステムクロックとして入力して動作する。
【0116】
また、基本回路302には、水晶発振器316aが出力するクロック信号を受信する度に0?65535の範囲で数値を導出する乱数値生成回路318(この回路には2つの乱数値生成回路を内蔵しているものとする)と、所定の球検出センサ320B(第1特図始動口用センサ320J、第2特図始動口用センサ320H、一般入賞口用センサ320E、可変入賞口用センサ320G、普図始動口用センサ320T)を含む各種センサ320が出力する信号を受信し、増幅結果や基準電圧との比較結果を乱数値生成回路318および基本回路302に出力するためのセンサ回路322と、所定の図柄表示装置、例えば第1特図表示装置212や第2特図表示装置214の表示制御を行うための駆動回路324と、所定の図柄表示装置、例えば普図表示装置210の表示制御を行うための駆動回路326と、各種状態表示部328(例えば、普図保留ランプ216、第1特図保留ランプ218、第2特図保留ランプ220、高確中ランプ222等)の表示制御を行うための駆動回路330と、所定の可動部材、例えば第2特図始動口232の羽根部材232aや可変入賞口234の扉部材234a等を開閉駆動する各種ソレノイド332を制御するための駆動回路334と、賞球数表示部690の表示制御を行うための駆動回路342とを接続している。
【0117】
乱数値生成回路318は、基本回路302で使用する乱数値を生成する。この乱数値生成回路318における乱数の生成には、大別するとカウンタモードと乱数モードとの2種類の方法がある。カウンタモードでは、所定の時間間隔でカウントアップ(ダウン)する数値を取得して、その数値を乱数として導出する。乱数モードには、さらに2つの方法がある。乱数モードにおける一つ目の方法は、乱数の種を用いて所定関数(例えばモジュラス関数)による演算を行い、この演算結果を乱数として導出する。二つ目の方法は、0?65535の範囲の数値がランダムに配列された乱数テーブルから数値を読み出し、その読み出した数値を乱数として導出する。乱数値生成回路318では、各種センサ320からセンサ回路322に入力される信号に重畳しているホワイトノイズを利用して不規則な値を取得する。乱数値生成回路318は、こうして取得した値を、カウンタモードでカウントアップ(ダウン)させるカウンタの初期値として用いたり、乱数の種として用いたり、あるいは乱数テーブルの読み出し開始位置を決定する際に用いる。
【0118】
なお、第1特図始動口230に球が入賞したことを第1特図始動口用センサ320Jが検出した場合には、センサ回路322は球を検出したことを示す信号を乱数値生成回路318に出力する。この信号を受信した乱数値生成回路318は、第1特図始動口230に対応する乱数値生成回路のそのタイミングにおける値をラッチし、ラッチした値を、乱数値生成回路318に内蔵された、第1特図始動口230に対応する乱数値記憶用レジスタに記憶する。また、乱数値生成回路318は、第2特図始動口232に球が入賞したことを示す信号を受信した場合も同様に、第2特図始動口232に対応する乱数値生成回路のそのタイミングにおける値をラッチし、ラッチした値を、乱数値生成回路318に内蔵された、第2特図始動口232に対応する乱数値記憶用レジスタに記憶する。
【0119】
さらに、基本回路302には、情報出力回路336を接続しており、主制御部300は、この情報出力回路336を介して、外部のホールコンピュータ(図示省略)等が備える情報入力回路350にパチンコ機100の遊技情報(例えば、遊技状態、遊技球数情報、持ち球数情報など)を出力する。情報入力回路350は、管理装置620と双方向の通信が可能なように接続しており、これにより遊技情報が管理装置620に送信される。なお、情報入力回路350と管理装置620は双方向の通信ではなく、管理装置620から情報入力回路350への一方向の通信としてもよい。
【0120】
また、主制御部300には、電源制御部660から主制御部300に供給している電源の電圧値を監視する電圧監視回路338を設けており、この電圧監視回路338は、電源の電圧値が所定の値(本実施例では9v)未満である場合に電圧が低下したことを示す低電圧信号を基本回路302に出力する。
【0121】
また、主制御部300には、電源が投入されると起動信号(リセット信号)を出力する起動信号出力回路(リセット信号出力回路)340を設けており、CPU304は、この起動信号出力回路340から起動信号を入力した場合に、遊技制御を開始する(後述する主制御部メイン処理を開始する)。
【0122】
また、主制御部300は、第1副制御部400にコマンドを送信するための出力インタフェースと、球数制御部600にコマンドを送信するためのインタフェースをそれぞれ備えており、この構成により、第1副制御部400および球数制御部600との通信を可能としている。なお、主制御部300と球数制御部660との情報通信は、パラレル通信またはシリアル通信による双方向の通信である。主制御部300と球数制御部600は双方向通信を行うことにより、暗号化処理などによって主制御部300と球数制御部600との間の通信データの整合性を確認することができ、これらのインターフェース部を狙った不正アクセスを防ぐことができる。
【0123】
これに対し、主制御部300と第1副制御部400との情報通信は一方向の通信であり、主制御部300は第1副制御部400にコマンド等の信号を送信できるように構成しているが、第1副制御部400からは主制御部300にコマンド等の信号を送信できないように構成している。また第1副制御部400と第2副制御部500も双方向の通信を可能に構成している。
【0124】
また、主制御部300は各入賞口等に入賞した機内球710を球検出センサ320Bで検出した場合、入賞口等毎に設定された賞球数を賞球数表示部690に表示する。また球数制御部600に対し、当該賞球数、または賞球数に対応する情報を含む賞球数情報を一定間隔毎にシリアル信号(コマンド形式)として送信する。つまり、主制御部300が入賞を判定し、賞球数を賞球数表示部690に表示するとともに、遊技者に付与する賞球数を賞球数情報(賞球コマンド)として球数制御部600に送信する。これにより球数制御部600が遊技球数に賞球数を加算し、球数表示部640に表示する。このように、入賞口等に入賞があった場合、当該入賞に対する賞球数は、入賞表示装部690で(わずかな時間となる場合もあるが)表示された後、球数制御部640に反映(遊技球数に加算して表示)される。
【0125】
後述するが、主制御部300から球制御部600に送信する賞球コマンドは、1つのコマンドに1つの入賞における賞球数が対応している。主制御部300と球数制御部600は、1回の賞球の払い出し(付与)に関して双方向の通信(コマンドの送受信)を行うが、その間に複数回の入賞があった場合であっても、主制御部300から球数制御部600に送信する1つの賞球コマンドには、1回の入賞による賞球数情報のみが含まれる。つまり、このような場合賞球数表示部690は、球数制御部640に賞球コマンドを送信するまでは、賞球数を累積して表示する。例えば、遊技球数が100個の状態(球数表示部640に「100」が表示されている状態)で可変入賞口234(例えば賞球数は「15」)に連続して3回の入賞があった場合、賞球数表示部690の表示は、わずかな時間に15→30→45と遷移する。この間に、1回目の入賞による賞球コマンド(賞球数「15」)が主制御部300から球数制御部600に送信されると、賞球数表示部690の表示は45→30に遷移し、球数表示部640の表示は100→115に遷移する。2回目の入賞による賞球コマンド(賞球数「15」)が主制御部300から球数制御部600に送信されると、賞球数表示部690の表示は30→15に遷移し、球数表示部640の表示は115→130に遷移し、3回目の入賞による賞球コマンド(賞球数「15」)が主制御部300から球数制御部600に送信されると、賞球数表示部690の表示は15→0に遷移し、球数表示部640の表示は130→145に遷移する。
【0126】
なお、上記の例に限らず、主制御部300から球数制御部600に送信する1つの賞球コマンドは、複数の賞球数情報(例えば、複数回の入賞の賞球数を加算した合計値)を含むものであってもよい。
【0127】
主制御部300は、遊技領域124に残存する機内球710の有無に関わらず、始動口また入賞口の入賞があれば、当否判定を行うことが可能である。ここでの当否判定とは、賞球の付与、大当り動作の開始等、遊技者に与える他の利益であってもよい。
【0128】
また、主制御部300では、不正を検出した場合にその情報をコマンドとして球数制御部600に送信する。主制御部300で検出する不正は、異常な磁気を検出した場合の磁石エラー、異常な電波を検出した場合の電波エラー、振動を検知した場合の振動エラー、大当たり時以外に機内球710が可変入賞口234に入賞した場合の不正入賞エラー等である。
【0129】
また、主制御部300では、ICカードが管理装置620に挿入されているか否かに関わらず遊技の制御を可能とする。例えば、ICカードを管理装置620に挿入した状態で遊技を開始し、遊技中にICカードを返却した場合であっても、遊技を継続することができる。
【0130】
なお、賞球数表示部690の接続例は上記の例に限らない。例えば、賞球数表示部690を情報出力回路336に接続し、主制御部300が情報出力回路366に設定するデータ(賞球数)に基づき賞球数表示部690に表示するものであってもよい。また、下記で説明する副制御部(第1副制御部400または第2副制御部500)と接続し、副制御部が出力するコマンドに基づき賞球数を表示するものとしてもよい。
<副制御部>
【0131】
次に、パチンコ機100の第1副制御部400について説明する。第1副制御部400は、主に主制御部300が送信したコマンド等に基づいて第1副制御部400の全体を制御する基本回路402を備えており、この基本回路402には、CPU404と、一時的にデータを記憶するためのRAM408と、各種デバイスの入出力を制御するためのI/O410と、時間や回数等を計測するためのカウンタタイマ412を搭載している。基本回路402のCPU404は、水晶発振器414が出力する所定周期のクロック信号をシステムクロックとして入力して動作し、第1副制御部400の全体を制御するための制御プログラム及びデータ、各種演出データ等が記憶されたROM406が接続されている。
【0132】
また、基本回路402には、スピーカ120(およびアンプ)の制御を行うための音源IC416と、各種ランプ418(例えば、チャンスボタンランプ138)の制御を行うための駆動回路420と、遮蔽装置246の駆動制御を行うための駆動回路432と、遮蔽装置246の現在位置を検出する遮蔽装置センサ430と、チャンスボタン136の押下を検出するチャンスボタン検出センサ426と、遮蔽装置センサ430やチャンスボタン検出センサ426からの検出信号を基本回路402に出力するセンサ回路428と、CPU404からの信号に基づいてROM406に記憶された画像データ等を読み出してVRAM436のワークエリアを使用して表示画像を生成して装飾図柄表示装置208に画像を表示するVDP434(ビデオ・ディスプレイ・プロセッサー)と、各種センサ440と、を接続している。各種センサ440には、例えば、前面枠扉開放センサや内枠開放センサが含まれる。
【0133】
次に、パチンコ機100の第2副制御部500について説明する。第2副制御部500は、第1副制御部400が送信した制御コマンドを入力インタフェースを介して受信し、この制御コマンドに基づいて第2副制御部500の全体を制御する基本回路502を備えており、この基本回路502は、CPU504と、一時的にデータを記憶するためのRAM508と、各種デバイスの入出力を制御するためのI/O510と、時間や回数等を計測するためのカウンタタイマ512を搭載している。基本回路502のCPU504は、水晶発振器514が出力する所定周期のクロック信号をシステムクロックとして入力して動作し、第2副制御部500の全体を制御するための制御プログラム及びデータ、画像表示用のデータ等が記憶されたROM506が設けられている。
【0134】
また、基本回路502には、演出可動体224の駆動制御を行うための駆動回路516と、演出可動体224の現在位置を検出する演出可動体センサ424と、演出可動体センサ424からの検出信号を基本回路502に出力するセンサ回路518と、遊技盤用ランプ532の制御を行うための遊技盤用ランプ駆動回路530と、遊技台枠用ランプ542の制御を行うための遊技台枠用ランプ駆動回路540と、遊技盤用ランプ駆動回路530と遊技台枠用ランプ駆動回路540との間でシリアル通信による点灯制御を行うシリアル通信制御回路520と、CPU504からの信号に基づいてROM506に記憶された画像データ等を読み出してVRAM536のワークエリアを使用して表示画像を生成して球数UI部680に画像を表示するVDP534と、を接続している。なお、VRAM536およびVDP534などの画像制御手段は、第1副制御部400に備えるものを共用してもよい。
<表示装置切替部>
【0135】
表示装置切替部670は、球数UI部680と双方向の通信が可能に接続されている。また表示装置切替部670は、インターフェース部606を介して、球数制御部600と接続する。表示装置切替部670は、表示画像の切替回路等を有し、球数UI部680の画像表示部565に表示する画像を、第1副制御部400で生成された第1の画像、および第1副制御部400以外で生成された第2の画像のうち、少なくともいずれか一方に切り替えて表示可能な構成となっている。
【0136】
表示装置切替部670は、第1の画像と第2の画像のいずれか一方を切り替えて表示可能としてもよいし、第1の画像と、第1の画像と第2の画像を含む画像とを切り替えて表示可能としてもよい。第2の画像は、例えば、管理装置620で生成された画像、または、第2副制御部500で生成された画像である。
<球数制御部>
【0137】
次に、図11を参照してパチンコ機100の球数制御部600について説明する。
【0138】
球数制御部600は、内枠中継基板(不図示)を介して入賞検出センサ604Sと非入賞検出センサ604Kに接続し、発射中継基板(不図示)を介して減算センサ604Zに接続して機内球710の通過を検出し、循環する機内球710の監視制御(イン球およびアウト球の監視制御)、および賞球制御を行う。また球数制御部600は、球数UI部680に接続し、球貸制御やICカードの返却制御を行う。更に、球磨き装置612、揚上装置614、球送り装置616、発射装置622、発射レール624に接続し、遊技媒体経路610の制御を行う。さらに球数制御部600は、基板表示部630と接続し、球数制御部600が検出したエラーの報知を行う。以下これらについて詳細に説明する。
<<イン球およびアウト球の監視制御>>
【0139】
球数制御部600は、球検出センサ604Bでパチンコ機100内部を循環する機内球710を検出することにより、イン球およびアウト球の監視を行う。すなわち、減算センサ604Zが機内球710の発射を検出した場合、遊技者の遊技球数の消費と判断し、遊技球数から1を減算するとともに、減算後の遊技球数を球数表示部640に表示する。一方、入賞検出センサ604Sまたは非入賞検出センサ604Kが機内球710の通過を検出した場合、遊技領域124から機内球710が排出したものと判断する。本実施形態では、入賞による実際の機内球710の払い出しはないため、発射される機内球710と遊技領域124から排出される機内球710は同数(遊技球1個の消費で1個の排出)であり、これによって、循環する機内球710のエラーを検出する。なお、機内球710の遊技領域124への1個の投入と遊技領域124からの1個の排出は同じタイミングであるとは限らないため、遊技領域124に複数の機内球710が存在する場合がある。
【0140】
球数制御部600は、例えば、遊技領域124に残存する機内球710の数によってイン球およびアウト球の監視し、異常な場合はエラーを報知する球数管理制御を行う。ここで遊技領域124に残存する機内球710の数、すなわちイン球数とアウト球数の差を領域内球数という。例えば、遊技開始から遊技終了までの期間において、減算センサ604Zで通過が検出された機内球710の数を、球数制御部600のRAM等に設けられた投入数(イン球数)記憶領域に累積的に記憶する。また遊技開始から遊技終了までの期間において、入賞検出センサ604Sおよび非入賞検出センサ604Kで通過が検出された機内球710の数を、球数制御部600のRAM等に設けられた排出数(アウト球数)記憶領域に累積的に記憶する。球数制御部600は所定のタイミングで、これらの差分(イン球数-アウト球数=領域内球数)を求め、球数制御部600のRAM等に設けられた領域内球数記憶領域に記憶する。そして球数制御部600は、領域内球数記憶領域に記憶された値を異常判定の条件と比較し、異常の場合は、エラーとして報知する。
【0141】
一例を挙げて具体的に説明すると、球数制御部600は例えば、主制御部300または球数制御部600の定期的な割込み処理において、領域内球数を算出して領域内球数記憶領域に記憶し、その値を用いて異常判定を行い、第1の異常判定条件が成立した場合は、第1の異常と判定し、第2の異常判定条件が成立した場合は、第2の異常と判定する。
【0142】
第1の異常判定条件は例えば、領域内球数がマイナスになった場合である。第1の異常判定条件はまた、領域内球数が第1の異常判定数を下回った場合としてもよく、第1の異常判定数は例えば、ゼロや、負の数(例えば-19)、あるいは二つ以上の定められた数の和(例えば数A(例えば-5)と数B(例えば-7)の和(この場合-12))などであってもよい。
【0143】
第2の異常判定条件は例えば、領域内球数が機内球710の数を超えた場合である。第2の異常判定条件はまた、領域内球数が第2の異常判定数を上回った場合としてもよく、第2の異常判定数は例えば、正の数(例えば19)や、二つ以上の定められた数の和(例えば数A(例えば5)と数B(例えば7)の和(この場合12))などであってもよく、これらの場合にエラーを報知する。
【0144】
領域内球数が第1の異常判定条件(例えば-19)を下回る場合とは、投入される機内球710は無いが排出される機内球710が増加している状態であり、例えば前面枠扉106が開放されるなどして循環する機内球710が追加(入賞口等へ入球)される不正などが疑われる場合である。
【0145】
領域内球数が第2の異常判定条件(例えば19)を上回る場合とは、投入される機内球710が増加している状況でありながら排出される機内球710が無く、遊技領域124に許容範囲を超えた機内球710が存在している状態であり、例えば各入賞口等、打球方向変換部材236や、遊技釘238などで機内球710の詰まりが生じていることが疑われる場合である。
【0146】
また上記の例において、不正行為以外で第1の異常状態となるのは、以下の原因があげられる。例えば、入賞検出センサ604Sおよび非入賞検出センサ604Kのうち少なくとも一方が、チャタリング等により1個の機内球710の通過を2個の通過と検出した場合である。あるいは、減算センサ604Sが、機内球710の通過の検出に失敗した場合である。あるいは、遊技領域124に機内球710が存在する状態で、電源が投入された場合である。一方、不正行為以外で第2の異常状態となるのは、以下の原因があげられる。例えば、減算センサ604Zが、チャタリング等により1個の機内球710の通過を2個の通過と検出した場合である。あるいは、入賞検出センサ604Sおよび非入賞検出センサ604Kのうち少なくとも一方が、機内球710の通過の検出に失敗した場合である。これらの場合(不正以外の異常)であっても、球数制御部800は異常としてエラーを報知する。
【0147】
排出球の数を検出する場合、入賞検出センサ604Sおよび非入賞検出センサ604Kに変えて、例えば、遊技媒体内部経路700Jに一つの排出検出センサを設け、ここを通過した場合に1球の排出があったと判定する構成であってもよい。また、投入球の検出は、減算センサ604Sに限らず、遊技媒体経路610のセンサ(例えば、球磨き装置612の球磨き装置入口センサ、揚上装置614の揚上装置入口センサ、球送り装置616の球送り装置入口センサ等であってもよい。なお異常判定条件の数値は一例であり、上記の値に限らない。
【0148】
尚、球数制御部600は、入賞検出センサ604Sまたは非入賞検出センサ604Kの検出結果と、主制御部300から送信される入賞判定の結果(賞球コマンド)を比較してイン球およびアウト球を監視してもよい。これにより、遊技領域124への機内球710の投入数および排出数の異常だけでなく、入賞している場合に入賞検出センサ604Sを通過しているか(非入賞の場合に、非入賞検出センサ604Kを通過しているか)を判定することも可能となる。
【0149】
さらに、球数制御部600は、各種センサ604に含まれる適正量センサ、満タンセンサなどによって、循環に必要な機内球710の数を管理し、過不足時にはエラーとして報知する構成としてもよい。
<<賞球制御>>
【0150】
パチンコ機100は、主制御部300の球検出センサ320Bによって各入賞口等への入賞判定と入賞の場合の賞球数を決定し、球数制御部600の球検出センサ604Bでは遊技領域124への機内球710の投入(発射)および排出の判定を行う。なお、以下の賞球制御に関する説明では、遊技領域124に1つの機内球710が投入されること、すなわち機内球710の通過が減算センサ604Zで検出され、遊技球数記憶領域に記憶されている遊技球数から「1」が減算されていることを前提とする。
【0151】
球数制御部600では、機内球710が遊技領域124から排出されたことを入賞検出センサ604Sで検出した場合、遊技球1個の消費により入賞があったとして賞球の付与を行う。すなわちこの場合には、主制御部300が送信する賞球数情報(賞球コマンド)に基づき、当該賞球コマンドに含まれる賞球数を遊技球数に加算する。
【0152】
主制御部300が送信する賞球コマンドは、球数制御部600における入賞検出センサ604Sの検出以前に、球数制御部600に送信されているものであってもよいし、球数制御部600における入賞検出センサ604Sの検出後に送信されるものであってもよい。例えば、後者の場合は、球数制御部600において入賞検出センサ604Sで機内球710の通過が検出されたことを契機として、球数制御部600から主制御部300に対して賞球数情報(賞球コマンド)を要求する信号を送信する構成とすることができる。また球数制御部600は、主制御部300から賞球コマンドを受信した場合には、賞球数加算後の遊技球数を球数表示部640に表示する。
【0153】
一方、各入賞口等に機内球710が入賞しなかった場合(非入賞検出センサ604Kで機内球710の通過が検出された場合)は、遊技球数の1個の消費と判定し、遊技球数を維持する(賞球数の加算は行わない)。
【0154】
球数制御部600は、例えば、主制御部300または球数制御部600の定期的な割込み処理において入賞による賞球がある場合は、遊技球数に賞球数を加算し、遊技球数を更新する。
【0155】
球数制御部600は、主制御部300での入賞判定の結果と、球数制御部600での球検出センサ604Bの結果が不一致の場合、入賞数異常のエラーを報知する。入賞数異常になるのは、例えば、所定期間において、主制御部300で判定された入賞の数と、入賞検出センサ604Sで通過が検出された数が異なる場合、などである。
【0156】
球数制御部600ではこのほかにも、機内球710のエラーとしては例えば、遊技球数が異常な値となる(想定した範囲を超える数量となる)遊技球数オーバーフローエラー、減算センサ604Zが球詰まりを検出している場合の減算センサエラー、入賞検出センサ604Sまたは非入賞検出センサ604Kが球詰まりを検出している場合の入賞センサエラーなどを検出し、報知する。
<<球貸制御>>
【0157】
ICカードが管理装置620のカード差込口626に挿入されると、管理装置620は、ICカード内に記憶された残高に基づき貸出可能な遊技球数の情報(球数更新指令)を球数UI部680に送信する。球数UI部680が球貸ボタン140を光らせる等し、これに基づき入力操作部654の球貸ボタン140が遊技者によりタッチされると、球数UI部680から球貸操作情報が管理装置620に送信される。球貸操作情報に基づいて管理装置620から送信される貸球数の個数情報(球貸要求情報)を受信した球数制御部600は、その貸球数を遊技球数に加算する。遊技球数は例えば、以下のようにして更新される。球数制御部600は、球貸ボタン140の操作を検知した場合、貸球数をRAMに設けた貸球数記憶領域に記憶(複数回の操作がある場合は、累積加算)する。主制御部300または球数制御部600の定期的な割込み処理において、球数制御部600は、貸球数記憶領域に記憶された貸球数を遊技球数に加算し、遊技球数を更新する。
【0158】
球数制御部600は、更新された遊技球数を球数表示部640に表示する。また貸球により変更された残高の情報を管理装置620から受信し、画像表示部656に表示する。更に、管理装置620にICカードを挿入中以外に、貸球数の加算要求を受信した場合には、不正加算エラーとして検出する。
<<再プレイ制御>>
【0159】
ICカードが管理装置620のカード差込口626に挿入されると、管理装置620は、ICカード内に記憶された貯球の情報(球数更新指令)を球数UI部680に送信する。球数更新指令には例えば、所定量の貯球があることによる再プレイ許可の情報が含まれ、これを受信した球数UI部680は再プレイボタン146を例えば、明るく表示する。これに基づき、入力操作部654の再プレイボタン146が遊技者によりタッチされると、球数UI部680から再プレイ操作情報が管理装置620に送信される。再プレイ操作情報に基づいて管理装置620から送信される再プレイ球数の個数情報を受信した球数制御部600は、その再プレイ球数を遊技球数に加算する。遊技球数は例えば、以下のようにして更新される。球数制御部600は、再プレイボタン146の操作を検知した場合、再プレイ球数をRAMに設けた再プレイ球数記憶領域に記憶(複数回の操作がある場合は、累積加算)する。主制御部300または球数制御部600の定期的な割込み処理において、球数制御部600は、再プレイ球数記憶領域に記憶された再プレイ球数を遊技球数に加算し、遊技球数を更新する。
【0160】
球数制御部600は、更新された遊技球数を球数表示部640に表示する。また再プレイ操作により変更された貯球の情報を管理装置620から受信し、画像表示部656に表示する。更に、管理装置620にICカードを挿入中以外に、再プレイ球数の加算要求を受信した場合には、不正加算エラーとして検出する。
<<計数制御>>
【0161】
球数制御部600は、計数ボタン652が押下された場合はこれを検出し、1回の計数ボタン652押下に対応した所定の計数球数を遊技球数記憶領域の遊技球数から減算する。遊技球数は例えば、以下のようにして更新される。球数制御部600は、計数ボタン652の操作を検出した場合、計数球数をRAMに設けた計数球数記憶領域に記憶(複数回の操作がある場合は、累積加算)する。主制御部300または球数制御部600の定期的な割込み処理において、球数制御部600は、計数球数記憶領域に記憶された計数球数を遊技球数から減算し、遊技球数を更新する。また球数制御部600は、管理装置620へ計数情報を送信する。管理装置620は受信した計数情報に基づき、貯球数をICカードに記憶する。また、球数制御部600は、減算後の遊技球数を球数表示部640に表示する。
【0162】
球数制御部600は、計数ボタン652の操作状況として、計数ボタン652の押下開始および押下終了を管理装置620に通知する。また球数制御部600は、計数ボタン652の操作状況として、押下時間(押下開始から押下終了までの時間)に応じて、複数種類の押下情報を管理装置620に通知する。複数種類の押下情報とは、例えば、計数ボタン652の1回の押下に対応する計数球数が、例えば10個等と定められている場合、押下回数が2回の場合は20個、3回の場合は30個・・・の遊技球を計数球数として管理装置620に送信することをいう。あるいはまた、押下時間が所定時間内の場合は10個の計数球数とし、所定時間以上の場合は、20個、あるいは全数を計数球数として管理装置620に送信することをいう。
<<返却制御>>
【0163】
ICカードが管理装置620のカード差込口626に挿入されていた場合に、入力操作部654の返却ボタン142が遊技者によりタッチされると、球数UI部680からその情報(返却操作情報)が管理装置620に送信される。これを受信した管理装置620は遊技球数の報知を要求する球数要求情報(または遊技の終了を要求する遊技終了要求情報、以下同様)を球数制御部600に送信する。球数制御部600はこれにより、返却ボタン142のタッチがあったこと検知する。球数制御部600は、遊技球数記憶領域に記憶された遊技球数を含む遊技球数情報を管理装置620に送信する。遊技球数情報を受信した管理装置620は、貯球数等をICカードに記憶しこれを返却する。返却ボタン142の操作後所定期間内に、計数ボタン652が押下された場合は、球数制御部600は、全ての遊技球数を計数球数として(計数球数情報を、または計数球数および貯球数を含む遊技数情報を)管理装置620に送信する。この場合、管理装置620は貯球数等をICカードに記憶する。また、球数制御部600は、ICカード内の残高の情報および貯球数等の情報を受信し、画像表示部640に表示する。
<<遊技媒体経路の制御>>
【0164】
球数制御部600は、遊技媒体経路610(球磨き装置612、揚上装置614、球送り装置616)および発射装置622の制御を行う。
【0165】
球数制御部600は、例えば、パチンコ機100の背面に設けられた研磨中継基板(不図示)と接続された球磨きモータを制御し、球磨きモータセンサを検知する。球磨き装置612の筐体(カセット)の球入口から機内球710が進入すると、研磨き装置入口センサにより機内球710を検知し、球磨きモータを駆動する。球磨きモータはギアを介してスクリューと接続し、スクリューの回転に伴い、機内球710を搬送する。またカセットには研磨布が封入されており、カセットモータを駆動することで研磨布を循環させる。機内球710はスクリューにて搬送されながら研磨布に擦られ、研磨される。球磨きモータセンサは、球磨きモータの駆動を検知する。またカセットセンサを有し、カセットの取り付けの有無を検出する。
【0166】
また球数制御部600は、例えば、パチンコ機100の背面に設けられた揚上中継基板(不図示)と接続された揚上モータを制御し、揚上モータセンサ、および揚上装置入口センサを検知する。球入口から機内球710が進入すると、揚上装置入口センサによってこれを検知し、揚上モータを駆動する。揚上モータが駆動すると、ギアを介してスクリューが回転し、これにより機内球710が搬送され、排出口から球送り装置616に受け渡される。
【0167】
また球数制御部600は、機内球710の発射を制御する。例えば球発射ハンドル134にはいずれも不図示のタッチセンサ、発射停止スイッチ、発射強度センサなどが設けられている。球数制御部600は、タッチセンサにより、遊技者が球発射ハンドル134に接触しているか否かの検出を行う。タッチ状態を非検出の場合、発射停止スイッチ(不図示)が押下されている場合(押下を発射停止センサで検知している場合)、球発射ハンドル134が一定角以上回転されていない場合、管理装置620が未接続の場合などには、発射を停止する。球数制御部600は、発射強度センサにて発射強度(球発射ハンドル134の操作量)を検出する。球数制御部600はタッチセンサおよび発射強度センサを検出すると、球送り装置(球送りソレノイド)616を駆動させ、機内球710を1球発射レール624に送り出す。球数制御部600が発射ソレノイドを駆動すると、発射杵622aは吸引されて回動し、その先端で機内球710を打突する。球数制御部600は、球発射ハンドル134の発射強度の値によって、発射ソレノイドの吸引力を変化させて発射の強弱を制御する。球数制御部600は、発射レール624から機内球710が発射したことを減算センサ604Zで検出し、遊技球数記憶領域の遊技球数を1個減算し、新たな遊技球数として記憶する。
【0168】
このように、球数制御部600に接続する各種センサ604には、上述の球磨きモータセンサ、球磨き装置入口センサ、カセットセンサ、布送りモータセンサ、揚上モータセンサ、揚上装置入口センサ、球送り装置入口センサ、球発射ハンドル134の操作結果に関する情報(発射強度センサ、タッチセンサ、発射停止センサ)、や、減算センサ604Z、入賞検出センサ604Sおよび非入賞検出センサ604K、球数UI部680の計数ボタン652、適正量センサ、満タンセンサなどが含まれる。
【0169】
球数制御部600は、上記の他、主制御部300との通信エラーや、遊技媒体経路610の各センサのエラー等も検出し、基板表示部630に報知する。基板表示部630は、遊技盤200背面側の球数制御基板の一部に設けられたLED等により構成され、LEDを所定のパターンで点灯、点滅等することにより、店員に各種エラーを報知する。
【0170】
なお、球数UI部680に関する入出力信号は、球数制御部600を介してインターフェース部606に入出力され、情報入力回路350に入出力されるようにしてもよい。なお、管理装置620と情報入力回路350は、双方向通信ではなく、管理装置620から情報入力回路350への一方向通信としてもよい。
【0171】
また、球数制御部600は、情報入力回路350に対して情報を直接出力せず、全て管理装置620を介して情報を出力するようにしてもよい。また球数制御部600は、夜間監視スイッチ692に接続する。夜間監視スイッチ692については後述する。
<制御部の変形例>
【0172】
上記の制御部に加えて以下の制御部を備えてもよい。例えば、発射装置622を制御する発射制御部を備え、球数制御部600は発射制御部を介して発射装置622を制御するようにしてもよい。この場合、発射制御部は、発射ソレノイドや、発射用モータ等を駆動して発射装置622の制御を行う。
【0173】
また、遊技媒体経路610の少なくとも一部を構成する装置(遊技媒体経路ユニット)を制御する遊技媒体経路制御部を備え、球数制御部600は、遊技媒体経路制御部を介して、遊技媒体経路ユニットを構成する装置を制御してもよい。この場合の遊技媒体経路ユニットとは、球磨き装置612、揚上装置614、球送り装置616および発射装置622のうちの一または複数または全部である。
【0174】
さらに、発射装置622は、発射ソレノイド、発射杵、減算センサ604S、球送りソレノイド、発射中継基板、発射強度センサ、発射停止スイッチ、タッチセンサ、などを含んで構成されてもよく、その場合、揚上装置614の球出口に発射装置622を接続し、球送り装置616を省略できる。
<電源制御部>
【0175】
電源制御部660は、パチンコ機100に外部から供給される交流電源を直流化し、所定の電圧に変換して主制御部300、第1副制御部400等の各制御部等の各装置に供給する。さらに、電源制御部660は、外部からの電源が断たれた後も所定の部品(例えば主制御部300のRAM308等)に所定の期間(例えば10日間)電源を供給するための蓄電回路(例えば、コンデンサ)を備えている。なお、本実施形態では、電源制御部660から球数制御部600と第1副制御部400に所定電圧を供給し、球数制御部600から主制御部300と夜間監視スイッチに所定電圧を供給し、第1副制御部400から第2副制御部500に所定電圧を供給しているが、各制御部や各装置に他の電源経路で所定電圧を供給してもよい。なお、電源制御部660については後に詳述する。
<主制御部メイン処理>
【0176】
次に、図12を用いて、主制御部300のCPU304が実行する主制御部メイン処理について説明する。なお、同図は主制御部メイン処理の流れを示すフローチャートである。
【0177】
上述したように、主制御部300には、電源が投入されると起動信号(リセット信号)を出力する起動信号出力回路(リセット信号出力回路)340を設けている。この起動信号を入力した基本回路302のCPU304は、リセット割込によりリセットスタートしてROM306に予め記憶している制御プログラムに従って図12に示す主制御部メイン処理を実行する。
【0178】
ステップS101では、初期設定1を行う。この初期設定1では、CPU304のスタックポインタ(SP)へのスタック初期値の設定(仮設定)、割込マスクの設定、I/O310の初期設定、RAM308に記憶する各種変数の初期設定、WDT314への動作許可及び初期値の設定等を行う。なお、本実施形態では、WDT314に、初期値として32.8msに相当する数値を設定する。
【0179】
ステップS103では、WDT314のカウンタの値をクリアし、WDT314による時間計測を再始動する。
【0180】
ステップS105では、低電圧信号がオンであるか否か、すなわち、電圧監視回路338が、電源制御部660から主制御部300に供給している電源の電圧値が所定の値(本実施形態では9v)未満である場合に電圧が低下したことを示す低電圧信号を出力しているか否かを監視する。そして、低電圧信号がオンの場合(CPU304が電源の遮断を検知した場合)にはステップS103に戻り、低電圧信号がオフの場合(CPU304が電源の遮断を検知していない場合)にはステップS107に進む。なお、電源が投入された直後で未だ上記所定の値(9V)に達しない場合にもステップS103に戻り、供給電圧がその所定の値以上になるまで、ステップS105は繰り返し実行される。
【0181】
ステップS107では、初期設定2を行う。この初期設定2では、後述する主制御部タイマ割込処理を定期毎に実行するための周期を決める数値をカウンタタイマ312に設定する処理、I/O310の所定のポート(例えば試験用出力ポート、第1副制御部400への出力ポート)からクリア信号を出力する処理、RAM308への書き込みを許可する設定等を行う。
【0182】
ステップS109では、電源の遮断前(電断前)の状態に復帰するか否かの判定を行い、電断前の状態に復帰しない場合(主制御部300の基本回路302を初期状態にする場合)には初期化処理(ステップS113)に進む。
【0183】
具体的には、最初に、電源基板に設けたRWMクリアスイッチ180を遊技店の店員などが操作した場合に送信されるRAMクリア信号がオン(操作があったことを示す)であるか否か、すなわちRAMクリアが必要であるか否かを判定し、RAMクリア信号がオンの場合(RAMクリアが必要な場合)には、基本回路302を初期状態にすべくステップS113に進む。一方、RAMクリア信号がオフの場合(RAMクリアが必要でない場合)には、RAM308に設けた電源ステータス記憶領域に記憶した電源ステータスの情報を読み出し、この電源ステータスの情報がサスペンドを示す情報であるか否かを判定する。そして、電源ステータスの情報がサスペンドを示す情報でない場合には、基本回路302を初期状態にすべくステップS113に進み、電源ステータスの情報がサスペンドを示す情報である場合には、RAM308の所定の領域(例えば全ての領域)に記憶している1バイトデータを初期値が0である1バイト構成のレジスタに全て加算することによりチェックサムを算出し、算出したチェックサムの結果が特定の値(例えば0)であるか否か(チェックサムの結果が正常であるか否か)を判定する。そして、チェックサムの結果が特定の値(例えば0)の場合(チェックサムの結果が正常である場合)には電断前の状態に復帰すべくステップS111に進み、チェックサムの結果が特定の値(例えば0)以外である場合(チェックサムの結果が異常である場合)には、パチンコ機100を初期状態にすべくステップS113に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップS113に進む。
【0184】
ステップS111では、復電時処理を行う。この復電時処理では、電断時にRAM308に設けられたスタックポインタ退避領域に記憶しておいたスタックポインタの値を読み出し、スタックポインタに再設定(本設定)する。また、電断時にRAM308に設けられたレジスタ退避領域に記憶しておいた各レジスタの値を読み出し、各レジスタに再設定した後、割込許可の設定を行う。以降、CPU304が、再設定後のスタックポインタやレジスタに基づいて制御プログラムを実行する結果、パチンコ機100は電源断時の状態に復帰する。すなわち、電断直前にタイマ割込処理(後述)に分岐する直前に行った(ステップS115内の所定の)命令の次の命令から処理を再開する。また、図11に示す主制御部300における基本回路302に搭載されているRAM308には、送信情報記憶領域が設けられている。このステップS111では、その送信情報記憶領域に、復電コマンドをセットする。この復電コマンドは、電源断時の状態に復帰したことを表すコマンドであり、後述する、主制御部300のタイマ割込処理におけるステップS233において、第1副制御部400へ送信される。
【0185】
ステップS113では、初期化処理を行う。この初期化処理では、割込禁止の設定、スタックポインタへのスタック初期値の設定(本設定)、RAM308の全ての記憶領域の初期化などを行う。さらにここで、主制御部300のRAM308に設けられた送信情報記憶領域に正常復帰コマンドをセットする。この正常復帰コマンドは、主制御部300の初期化処理(ステップS113)が行われたことを表すコマンドであり、復電コマンドと同じく、主制御部300のタイマ割込処理におけるステップS233において、第1副制御部400へ送信される。
【0186】
ステップS115では、割込禁止の設定を行った後、基本乱数初期値更新処理を行う。この基本乱数初期値更新処理では、普図当選乱数カウンタ、および特図乱数値カウンタの初期値をそれぞれ生成するための2つの初期値生成用乱数カウンタと、普図タイマ乱数値、および特図タイマ乱数値それぞれを生成するための2つの乱数カウンタを更新する。例えば、普図タイマ乱数値として取り得る数値範囲が0?100とすると、RAM308に設けた普図タイマ乱数値を生成するための乱数カウンタ記憶領域から値を取得し、取得した値に1を加算してから元の乱数カウンタ記憶領域に記憶する。このとき、取得した値に1を加算した結果が101であれば0を元の乱数カウンタ記憶領域に記憶する。他の初期値生成用乱数カウンタ、乱数カウンタもそれぞれ同様に更新する。なお、初期値生成用乱数カウンタは、後述するステップS207でも更新する。
【0187】
ステップS117では、演出乱数更新処理を行う。この演出乱数更新処理では、主制御部300で使用する演出用乱数値を生成するための乱数カウンタを更新する。
【0188】
主制御部300は、所定の周期ごとに開始するタイマ割込処理を行っている間を除いて、ステップS115の処理を繰り返し実行する。
<主制御部タイマ割込処理>
【0189】
次に、図13を用いて、主制御部300のCPU304が実行する主制御部タイマ割込処理について説明する。なお、同図は主制御部タイマ割込処理の流れを示すフローチャートである。
【0190】
主制御部300は、所定の周期(本実施形態では約4msに1回)でタイマ割込信号を発生するカウンタタイマ312を備えており、このタイマ割込信号を契機として主制御部タイマ割込処理を所定の周期で開始する。
【0191】
ステップS201では、タイマ割込開始処理を行う。このタイマ割込開始処理では、CPU304の各レジスタの値をスタック領域に一時的に退避する処理などを行う。
【0192】
ステップS203では、WDT314のカウント値が初期設定値(本実施形態では32.8ms)を超えてWDT割込が発生しないように(処理の異常を検出しないように)、WDTを定期的に(本実施形態では、主制御部タイマ割込の周期である約4msに1回)リスタートを行う。
【0193】
ステップS205では、入力ポート状態更新処理を行う。この入力ポート状態更新処理では、I/O310の入力ポートを介して、上述の各種の球検出センサを含む各種センサ320の検出信号を入力して検出信号の有無を監視し、RAM308に各種センサ320ごとに区画して設けた信号状態記憶領域に記憶する。球検出センサの検出信号を例にして説明すれば、前々回のタイマ割込処理(約8ms前)で検出した各々の球検出センサの検出信号の有無の情報を、RAM308に各々の球検出センサごとに区画して設けた前回検出信号記憶領域から読み出し、この情報をRAM308に各々の球検出センサごとに区画して設けた前々回検出信号記憶領域に記憶し、前回のタイマ割込処理(約4ms前)で検出した各々の球検出センサの検出信号の有無の情報を、RAM308に各々の球検出センサごとに区画して設けた今回検出信号記憶領域から読み出し、この情報を上述の前回検出信号記憶領域に記憶する。また、今回検出した各々の球検出センサの検出信号を、上述の今回検出信号記憶領域に記憶する。
【0194】
また、ステップS205では、上述の前々回検出信号記憶領域、前回検出信号記憶領域、および今回検出信号記領域の各記憶領域に記憶した各々の球検出センサの検出信号の有無の情報を比較し、各々の球検出センサにおける過去3回分の検出信号の有無の情報が入賞判定パターン情報と一致するか否かを判定する。一個の機内球710が一つの球検出センサを通過する間に、約4msという非常に短い間隔で起動を繰り返すこの主制御部タイマ割込処理は何回か起動する。このため、主制御部タイマ割込処理が起動する度に、上述のステップS205では、同じ機内球710が同じ球検出センサを通過したことを表す検出信号を確認することになる。この結果、上述の前々回検出信号記憶領域、前回検出信号記憶領域、および今回検出信号記領域それぞれに、同じ機内球710が同じ球検出センサを通過したことを表す検出信号が記憶される。すなわち、機内球710が球検出センサを通過し始めたときには、前々回検出信号無し、前回検出信号有り、今回検出信号有りになる。本実施形態では、球検出センサの誤検出やノイズを考慮して、検出信号無しの後に検出信号が連続して2回記憶されている場合には、入賞があったと判定する。図11に示す主制御部300のROM306には、入賞判定パターン情報(本実施形態では、前々回検出信号無し、前回検出信号有り、今回検出信号有りであることを示す情報)が記憶されている。このステップS205では、各々の球検出センサ320B(一般入賞口用センサ320E、可変入賞口用センサ320G、第1特図始動口用センサ320J、第2特図始動口用センサ320H、普図始動口用センサ320T)において過去3回分の検出信号の有無の情報が、予め定めた入賞判定パターン情報(本実施形態では、前々回検出信号無し、前回検出信号有り、今回検出信号有りであることを示す情報)と一致した場合に、一般入賞口226、可変入賞口234、第1特図始動口230、および第2特図始動口232への入球、または普図始動口228の通過があったと判定する。すなわち、これらの入賞口226、234やこれらの始動口230、232、228への入賞があったと判定する。例えば、一般入賞口226への入球を検出する一般入賞口用センサ320Eにおいて過去3回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致した場合には、一般入賞口226へ入賞があったと判定し、以降の一般入賞口226への入賞に伴う処理を行うが、過去3回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致しなかった場合には、以降の一般入賞口226への入賞に伴う処理を行わずに後続の処理に分岐する。なお、主制御部300のROM306には、入賞判定クリアパターン情報(本実施形態では、前々回検出信号有り、前回検出信号無し、今回検出信号無しであることを示す情報)が記憶されている。入賞が一度あったと判定した後は、各々の球検出センサにおいて過去3回分の検出信号の有無の情報が、その入賞判定クリアパターン情報に一致するまで入賞があったとは判定せず、入賞判定クリアパターン情報に一致すれば、次からは上記入賞判定パターン情報に一致するか否かの判定を行う。なお、入賞判定パターン情報は、それぞれの入賞で同じである必要はなく、入賞判定の重要度に応じて異ならせてもよい。例えば、第1特図始動口230、および第2特図始動口232の入賞判定パターンは過去3回分の検出信号の有無の情報で構成するが、一般入賞口226の入賞判定パターンは過去2回分の検出信号の有無の情報で構成してもよい。
【0195】
ステップS207およびステップS209では、基本乱数初期値更新処理および基本乱数更新処理を行う。これらの基本乱数初期値更新処理および基本乱数更新処理では、上記ステップS115で行った初期値生成用乱数カウンタの値の更新を行い、次に主制御部300で使用する、普図当選乱数値、特図1乱数値、および特図2乱数値をそれぞれ生成するための2つの乱数カウンタを更新する。例えば、普図当選乱数値として取り得る数値範囲が0?100とすると、RAM308に設けた普図当選乱数値を生成するための乱数カウンタ記憶領域から値を取得し、取得した値に1を加算してから元の乱数カウンタ記憶領域に記憶する。このとき、取得した値に1を加算した結果が101であれば0を元の乱数カウンタ記憶領域に記憶する。また、取得した値に1を加算した結果、乱数カウンタが一周していると判定した場合にはそれぞれの乱数カウンタに対応する初期値生成用乱数カウンタの値を取得し、乱数カウンタの記憶領域にセットする。例えば、0?100の数値範囲で変動する普図当選乱数値生成用の乱数カウンタから値を取得し、取得した値に1を加算した結果が、RAM308に設けた所定の初期値記憶領域に記憶している前回設定した初期値と等しい値(例えば7)である場合に、普図当選乱数値生成用の乱数カウンタに対応する初期値生成用乱数カウンタから値を初期値として取得し、普図当選乱数値生成用の乱数カウンタにセットすると共に、普図当選乱数値生成用の乱数カウンタが次に1周したことを判定するために、今回設定した初期値を上述の初期値記憶領域に記憶しておく。また、普図当選乱数値生成用の乱数カウンタが次に1周したことを判定するための上述の初期値記憶領域とは別に、特図乱数生成用の乱数カウンタが1周したことを判定するための初期値記憶領域をRAM308に設けている。なお、本実施形態では特図1の乱数値を取得するためのカウンタと特図2の乱数値を取得するためのカウンタとを別に設けたが、同一のカウンタを用いてもよい。
【0196】
ステップS211では、演出乱数更新処理を行う。この演出乱数更新処理では、主制御部300で使用する演出用乱数値を生成するための乱数カウンタを更新する。
【0197】
ステップS213では、タイマ更新処理を行う。このタイマ更新処理では、普通図柄表示装置210に図柄を変動・停止表示する時間を計時するための普図表示図柄更新タイマ、第1特別図柄表示装置212に図柄を変動・停止表示する時間を計時するための特図1表示図柄更新タイマ、第2特図表示装置214に図柄を変動・停止表示する時間を計時するための特図2表示図柄更新タイマ、所定の入賞演出時間、所定の開放時間、所定の閉鎖時間、所定の終了演出期間などを計時するためのタイマなどを含む各種タイマを更新する。
【0198】
ステップS215では、入賞口カウンタ更新処理を行う。この入賞口カウンタ更新処理では、入賞口226、234や始動口230、232、228に入賞があった場合に、その回数を記録する。
【0199】
ステップS216では、賞球数表示処理を行う。この賞球数表示処理では、主制御部300において、球数制御部600に送信前の賞球コマンドがある場合(ステップS219にて後述する)、その賞球コマンドで送信する予定の賞球数(複数ある場合はそれらの合計値)を賞球数表示部690に表示する(これについては後述する)。
【0200】
また、ステップS217では、入賞受付処理を行う。この入賞受付処理では、第1特図始動口230、第2特図始動口232、普図始動口228および可変入賞口234への入賞があったか否かを判定する。ここでは、ステップS205における入賞判定パターン情報と一致するか否かの判定結果を用いて判定する。第1特図始動口230へ入賞があった場合且つRAM308に設けた対応する保留数記憶領域が満タンでない場合、乱数値生成回路318の、第1特図始動口230に対応した乱数値記憶用レジスタから値を取得し、加工した値(例えば、取得した値+Rレジスタの値+1)を特図1当選乱数値として取得するとともに特図1乱数値生成用の乱数カウンタから値を取得し、加工した値(例えば、取得した値+Rレジスタの値+1)を特図1乱数値として取得して対応する乱数値記憶領域に格納する。第2特図始動口232へ入賞があった場合且つRAM308に設けた対応する保留数記憶領域が満タンでない場合、乱数値生成回路318の、第1特図始動口230に対応した乱数値カウンタ値記憶用レジスタから値を取得し、加工した値(例えば、取得した値+Rレジスタの値+1)を特図2当選乱数値として取得するとともに特図2乱数値生成用の乱数カウンタから値を取得し、加工した値(例えば、取得した値+Rレジスタの値+1)を特図2乱数値として取得して対応する乱数値記憶領域に格納する。
【0201】
ステップS219では、賞球コマンド送信処理を行う。ステップS217で各入賞口等のいずれかに入賞があったと判定された場合、各入賞口等に対応する賞球を遊技者に付与するため、賞球数の情報を含む出力予定情報(例えば、賞球コマンド)を送信する。なお、球数制御部600に出力する出力予定情報は、例えば1バイトで構成しており、ビット7にストローブ情報(オンの場合、データをセットしていることを示す)、ビット6に電源投入情報(オンの場合、電源投入後一回目のコマンド送信であることを示す)、ビット4?5に暗号化のための今回加工種別(0?3)、およびビット0?3に暗号化加工後の賞球数を示すようにしている。尚、データサイズはこれに限らず、例えば2バイトでもよい。また、シリアル通信の一例を後述する。
【0202】
後述するが主制御部300は、定期の割込み処理によって、球数制御部600に賞球コマンドを送信する。またその際、主制御部300と球数制御部600は、双方向の通信確認(通信確認の問い合わせと通信確認の返信)を行い、例えば、主制御部300の1回の割込み処理につき、1つの賞球コマンドが送信される。つまり、これらの期間に複数の入賞がある場合には、主制御部300に送信すべき複数の賞球数の情報が蓄積されることになる。
【0203】
ステップS220では、賞球数表示処理を行う。この賞球数表示処理は、ステップS216の処理と同様であるが、賞球表示部690に表示される内容が更新される場合がある。詳細は後述するが、例えば、ステップS216から本ステップまでの間に新たな入賞が無い場合には、ステップS219で少なくとも1つの賞球コマンド(賞球数)が送信されているので、本ステップで賞球数表示部690に表示される賞球数は、ステップS216で賞球数表示部690に表示される賞球数から、球数制御部600に送信された賞球コマンドの賞球数の分を減じた数値となる。これにより、遊技者に賞球の払い出しがあったことを報知できる場合がある。なお、賞球数表示処理は、例えば、ステップS216のみで行ってもよいし、本ステップのみで行ってもよい。
【0204】
ステップS221では、普図状態更新処理を行う。この普図状態更新処理は、普図の状態に対応する複数の処理のうちの1つの処理を行う。例えば、普図変動表示の途中(上述する普図表示図柄更新タイマの値が1以上)における普図状態更新処理では、普通図柄表示装置210を構成する7セグメントLEDの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。この制御を行うことで、普通図柄表示装置210は普図の変動表示(普図変動遊技)を行う。
【0205】
また、普図変動表示時間が経過したタイミング(普図表示図柄更新タイマの値が1から0になったタイミング)における普図状態更新処理では、当りフラグがオン(当たりを示す、例えば「1」のセットなど、以下同様)の場合には、当たり図柄の表示態様となるように普通図柄表示装置210を構成する7セグメントLEDの点灯・消灯駆動制御を行い、当りフラグがオフの場合には、外れ図柄の表示態様となるように普通図柄表示装置210を構成する7セグメントLEDの点灯・消灯駆動制御を行う。また、主制御部300のRAM308には、普図状態更新処理に限らず各種の処理において各種の設定を行う設定領域が用意されている。ここでは、上記点灯・消灯駆動制御を行うとともに、その設定領域に普図停止表示中であることを示す設定を行う。この制御を行うことで、普通図柄表示装置210は、当り図柄(図10(c)に示す普図A)および外れ図柄(図10(c)に示す普図B)いずれか一方の図柄の確定表示を行う。さらにその後、所定の停止表示期間(例えば500m秒間)、その表示を維持するためにRAM308に設けた普図停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により、確定表示された図柄が所定期間停止表示され、普図変動遊技の結果が遊技者に報知される。
【0206】
また、普図変動遊技の結果が当りであれば、後述するように、普図当りフラグがオンされる。この普図当りフラグがオンの場合には、所定の停止表示期間が終了したタイミング(普図停止時間管理用タイマの値が1から0になったタイミング)における普図状態更新処理では、RAM308の設定領域に普図作動中を設定するとともに、所定の開放期間(例えば2秒間)、第2特図始動口232の羽根部材232aの開閉駆動用のソレノイド(332)に、羽根部材232aを開放状態に保持する信号を出力するとともに、RAM308に設けた羽根開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。
【0207】
また、所定の開放期間が終了したタイミング(羽根開放時間管理用タイマの値が1から0になったタイミング)で開始する普図状態更新処理では、所定の閉鎖期間(例えば500m秒間)、羽根部材の開閉駆動用のソレノイド332に、羽根部材を閉鎖状態に保持する信号を出力するとともに、RAM308に設けた羽根閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。
【0208】
また、所定の閉鎖期間が終了したタイミング(羽根閉鎖時間管理用タイマの値が1から0になったタイミング)で開始する普図状態更新処理では、RAM308の設定領域に普図非作動中を設定する。さらに、普図変動遊技の結果が外れであれば、後述するように、普図外れフラグがオン(外れを示す、例えば「1」をセットなど、以下同様)される。この普図外れフラグがオンの場合には、上述した所定の停止表示期間が終了したタイミング(普図停止時間管理用タイマの値が1から0になったタイミング)における普図状態更新処理でも、RAM308の設定領域に普図非作動中を設定する。普図非作動中の場合における普図状態更新処理では、何もせずに次のステップS223に移行するようにしている。
【0209】
ステップS223では、普図関連抽選処理を行う。この普図関連抽選処理では、普図変動遊技および第2特図始動口232の開閉制御を行っておらず(普図の状態が非作動中)、且つ、保留している普図変動遊技の数が1以上である場合に、上述の乱数値記憶領域に記憶している普図当選乱数値に基づいた乱数抽選により普図変動遊技の結果を当選とするか、不当選とするかを決定する当り判定をおこない、当選とする場合にはRAM308に設けた当りフラグにオンを設定する。不当選の場合には、当りフラグにオフを設定する。また、当り判定の結果に関わらず、次に上述の普図タイマ乱数値生成用の乱数カウンタの値を普図タイマ乱数値として取得し、取得した普図タイマ乱数値に基づいて複数の変動時間のうちから普図表示装置210に普図を変動表示する時間を1つ選択し、この変動表示時間を、普図変動表示時間として、RAM308に設けた普図変動時間記憶領域に記憶する。なお、保留している普図変動遊技の数は、RAM308に設けた普図保留数記憶領域に記憶するようにしており、当り判定をするたびに、保留している普図変動遊技の数から1を減算した値を、この普図保留数記憶領域に記憶し直すようにしている。また当り判定に使用した乱数値を消去する。
【0210】
次いで、ステップS225では、特図1および特図2それぞれについての特図状態更新処理を行うが、最初に、特図2についての特図状態更新処理(特図2状態更新処理)を行う。この特図2状態更新処理は、特図2の状態に応じて、次の8つの処理のうちの1つの処理を行う。例えば、特図2変動表示の途中(上述の特図2表示図柄更新タイマの値が1以上)における特図2状態更新処理では、第2特別図柄表示装置214を構成する7セグメントLEDの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。この制御を行うことで、第2特別図柄表示装置214は特図2の変動表示(特図2変動遊技)を行う。
【0211】
また、コマンド設定送信処理(ステップS229)で回転開始設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶してから処理を終了する。
【0212】
また、主制御部300のRAM308には、15R大当りフラグ、2R大当たりフラグ、第1小当たりフラグ、第2小当たりフラグ、第1はずれフラグ、第2はずれフラグ、特図確率変動フラグ、および普図確率変動フラグそれぞれのフラグが用意されている。特図2変動表示時間が経過したタイミング(特図2表示図柄更新タイマの値が1から0になったタイミング)で開始する特図2状態更新処理では、15R大当りフラグはオン、特図確率変動フラグもオン、普図確率変動フラグもオンの場合には図10(a)に示す特図A、15R大当りフラグはオン、特図確率変動フラグはオフ、普図確率変動フラグはオンの場合には特図B、2R大当りフラグはオン、特図確率変動フラグもオン、普図確率変動フラグもオンの場合には特図C、2R大当りフラグはオン、特図確率変動フラグはオフ、普図確率変動フラグはオンの場合には特図D、2R大当りフラグはオン、特図確率変動フラグもオン、普図確率変動フラグはオンの場合には特図E、2R大当りフラグはオン、特図確率変動フラグはオフ、普図確率変動フラグもオフの場合には特図F、第1小当たりフラグがオンの場合には特図G、第2小当たりフラグがオンの場合には特図H、第1はずれフラグがオンの場合には特図I、第2はずれフラグがオンの場合には特図Iそれぞれの態様となるように、第2特別図柄表示装置214を構成する7セグメントLEDの点灯・消灯駆動制御を行い、RAM308の設定領域に特図2停止表示中であることを表す設定を行う。なお各フラグのオンは例えば各フラグに「1」のセットすることをいう。この制御を行うことで、第2特別図柄表示装置214は、15R特別大当たり図柄(特図A)、15R大当たり図柄(特図B)、突然確変図柄(特図C)、突然時短図柄(特図D)、隠れ確変図柄(特図E)、突然通常図柄(特図F)、第1小当たり図柄(特図G)、第2小当たり図柄(特図H)、第1はずれ図柄(特図I)、および第2はずれ図柄(特図J)のいずれか一つの図柄の確定表示を行う。さらにその後、所定の停止表示期間(例えば500m秒間)その表示を維持するためにRAM308に設けた特図2停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により、確定表示された特図2が所定期間停止表示され、特図2変動遊技の結果が遊技者に報知される。また、RAM308に設けられた時短回数記憶部に記憶された時短回数が1以上であれば、その時短回数から1を減算し、減算結果が1から0となった場合は、特図確率変動中(詳細は後述)でなければ、時短フラグをオフする。さらに、大当り遊技中(特別遊技状態中)にも、時短フラグをオフする。
【0213】
また、コマンド設定送信処理(ステップS229)で回転停止設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶するとともに、変動表示を停止する図柄が特図2であることを示す特図2識別情報を、後述するコマンドデータに含める情報としてRAM308に追加記憶してから処理を終了する。
【0214】
また、特図2変動遊技の結果が大当りであれば、後述するように、大当りフラグがオンされる。この大当りフラグがオンの場合には、所定の停止表示期間が終了したタイミング(特図2停止時間管理用タイマの値が1から0になったタイミング)における特図2状態更新処理では、RAM308の設定領域に特図2作動中を設定するとともに、所定の入賞演出期間(例えば3秒間)すなわち装飾図柄表示装置208による大当りを開始することを遊技者に報知する画像を表示している期間待機するためにRAM308に設けた特図2待機時間管理用タイマの記憶領域に入賞演出期間を示す情報を設定する。また、コマンド設定送信処理(ステップS229)で入賞演出設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【0215】
また、所定の入賞演出期間が終了したタイミング(特図2待機時間管理用タイマの値が1から0になったタイミング)で開始する特図2状態更新処理では、所定の開放期間(例えば29秒間、または可変入賞口234に所定球数(例えば10球)の機内球710の入賞を検出するまで)可変入賞口234の扉部材234aの開閉駆動用のソレノイド332に、扉部材234aを開放状態に保持する信号を出力するとともに、RAM308に設けた扉開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。また、コマンド設定送信処理(ステップS229)で大入賞口開放設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【0216】
また、所定の開放期間が終了したタイミング(扉開放時間管理用タイマの値が1から0になったタイミング)で開始する特図2状態更新処理では、所定の閉鎖期間(例えば1.5秒間)可変入賞口234の扉部材234aの開閉駆動用のソレノイド332に、扉部材234aを閉鎖状態に保持する信号を出力するとともに、RAM308に設けた扉閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。また、コマンド設定送信処理(ステップS229)で大入賞口閉鎖設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【0217】
また、この扉部材の開放・閉鎖制御を所定回数(本実施例では15ラウンドか2ラウンド)繰り返し、終了したタイミングで開始する特図2状態更新処理では、所定の終了演出期間(例えば3秒間)すなわち装飾図柄表示装置208による大当りを終了することを遊技者に報知する画像を表示している期間待機するように設定するためにRAM308に設けた演出待機時間管理用タイマの記憶領域に演出待機期間を示す情報を設定する。また、普図確率変動フラグがオンに設定されていれば、この大当たり遊技の終了と同時に、RAM308に設けられた時短回数記憶部に時短回数100回をセットするともに、RAM308に設けられた時短フラグをオンする。なお、その普図確率変動フラグがオフに設定されていれば、時短回数記憶部に時短回数をセットすることもなく、また時短フラグをオンすることもない。ここにいう時短とは、特図変動遊技における大当りを終了してから、次の大当りを開始するまでの時間を短くするため、パチンコ機が遊技者にとって有利な状態になることをいう。この時短フラグがオンに設定されていると、普図高確率状態である。普図高確率状態では普図低確率状態に比べて、普図変動遊技に大当りする可能性が高い。また、普図高確率状態の方が、普図低確率状態に比べて普図変動遊技の変動時間および特図変動遊技の変動時間は短くなる。さらに、普図高確率状態では普図低確率状態に比べて、第2特別始動口232の一対の羽根部材232aの1回の開放における開放時間が長くなりやすい。加えて、普図高確率状態では普図低確率状態に比べて、一対の羽根部材232aは多く開きやすい。また、上述のごとく、時短フラグは、大当り遊技中(特別遊技状態中)にはオフに設定される。したがって、大当たり遊技中には、普図低確率状態が維持される。これは、大当たり遊技中に普図高確率状態であると、大当たり遊技中に可変入賞口234に所定の個数、機内球710が入球するまでの間に第2特図始動口232に多くの機内球710が入球し、大当たり中に獲得することができる機内球710の数が多くなってしまい射幸性が高まってしまうという問題があり、これを解決するためのものである。
【0218】
さらに、コマンド設定送信処理(ステップS229)で終了演出設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【0219】
また、所定の終了演出期間が終了したタイミング(演出待機時間管理用タイマの値が1から0になったタイミング)で開始する特図2状態更新処理では、RAM308の設定領域に特図2非作動中を設定する。さらに、特図2変動遊技の結果が外れであれば、後述するように、はずれフラグがオン(「1」をセット)される。このはずれフラグがオンの場合には、上述した所定の停止表示期間が終了したタイミング(特図2停止時間管理用タイマの値が1から0になったタイミング)における特図2状態更新処理でも、RAM308の設定領域に特図2非作動中を設定する。特図2非作動中の場合における特図2状態更新処理では、何もせずに次のステップS227に移行するようにしている。
【0220】
続いて、特図1についての特図状態更新処理(特図1状態更新処理)を行う。この特図1状態更新処理では、特図1の状態に応じて、上述の特図2状態更新処理で説明した各処理を行う。この特図1状態更新処理で行う各処理は、上述の特図2状態更新処理で説明した内容の「特図2」を「特図1」と読み替えた処理と同一であるため、その説明は省略する。なお、特図2状態更新処理と特図1状態更新処理の順番は逆でもよい。
【0221】
ステップS225における特図状態更新処理が終了すると、ステップS227において、特図1および特図2それぞれについての特図関連抽選処理を行う。ここでも先に、特図2についての特図関連抽選処理(特図2関連抽選処理)を行い、その後で、特図1についての特図関連抽選処理(特図1関連抽選処理)を行う。これらの特図関連抽選処理についても、主制御部300が特図2関連抽選処理を特図1関連抽選処理よりも先に行うことで、特図2変動遊技の開始条件と、特図1変動遊技の開始条件が同時に成立した場合でも、特図2変動遊技が先に変動中となるため、特図1変動遊技は変動を開始しない。また、装飾図柄表示装置208による、特図変動遊技の大当り判定の結果の報知は、第1副制御部400によって行われ、第2特図始動口232への入賞に基づく抽選の抽選結果の報知が、第1特図始動口230への入賞に基づく抽選の抽選結果の報知よりも優先して行われる。
【0222】
ステップS229では、コマンド設定送信処理を行い、各種のコマンドが第1副制御部400に送信される。なお、第1副制御部400に送信する出力予定情報は例えば16ビットで構成しており、ビット15はストローブ情報(オンの場合、データをセットしていることを示す)、ビット11?14はコマンド種別(本実施形態では、基本コマンド、図柄変動開始コマンド、図柄変動停止コマンド、入賞演出開始コマンド、終了演出開始コマンド、大当りラウンド数指定コマンド、復電コマンド、RAMクリアコマンドなどコマンドの種類を特定可能な情報)、ビット0?10はコマンドデータ(コマンド種別に対応する所定の情報)で構成している。
【0223】
具体的には、ストローブ情報は上述のコマンド送信処理でオン、オフするようにしている。また、コマンド種別が図柄変動開始コマンドの場合であればコマンドデータに、15R大当りフラグや2R大当たりフラグの値、特図確率変動フラグの値、特図関連抽選処理で選択したタイマ番号などを示す情報を含み、図柄変動停止コマンドの場合であれば、15R大当りフラグや2R大当たりフラグの値、特図確率変動フラグの値などを含み、入賞演出コマンドおよび終了演出開始コマンドの場合であれば、特図確率変動フラグの値などを含み、大当りラウンド数指定コマンドの場合であれば特図確率変動フラグの値、大当りラウンド数などを含むようにしている。コマンド種別が基本コマンドを示す場合は、コマンドデータにデバイス情報、第1特図始動口230への入賞の有無、第2特図始動口232への入賞の有無、可変入賞口234への入賞の有無などが含まれる。
【0224】
また、上述の回転開始設定送信処理では、コマンドデータにRAM308に記憶している、15R大当りフラグや2R大当たりフラグの値、特図確率変動フラグの値、特図1関連抽選処理および特図2関連抽選処理で選択したタイマ番号、保留している第1特図変動遊技または第2特図変動遊技の数などを示す情報を設定する。上述の回転停止設定送信処理では、コマンドデータにRAM308に記憶している、15R大当りフラグや2R大当たりフラグの値、特図確率変動フラグの値などを示す情報を設定する。上述の入賞演出設定送信処理では、コマンドデータに、RAM308に記憶している、入賞演出期間中に装飾図柄表示装置208・各種ランプ418・スピーカ120に出力する演出制御情報、特図確率変動フラグの値、保留している第1特図変動遊技または第2特図変動遊技の数などを示す情報を設定する。上述の終了演出設定送信処理では、コマンドデータに、RAM308に記憶している、演出待機期間中に装飾図柄表示装置208・各種ランプ418・スピーカ120に出力する演出制御情報、特図確率変動フラグの値、保留している第1特図変動遊技または第2特図変動遊技の数などを示す情報を設定する。上述の大入賞口開放設定送信処理では、コマンドデータにRAM308に記憶している大当りラウンド数、特図確率変動フラグの値、保留している第1特図変動遊技または第2特図変動遊技の数などを示す情報を設定する。上述の大入賞口閉鎖設定送信処理では、コマンドデータにRAM308に記憶している大当りラウンド数、特図確率変動フラグの値、保留している第1特図変動遊技または第2特図変動遊技の数などを示す情報を設定する。また、このステップS233では一般コマンド特図保留増加処理も行われる。この一般コマンド特図保留増加処理では、コマンドデータにRAM308の送信用情報記憶領域に記憶している特図識別情報(特図1または特図2を示す情報)、予告情報(事前予告情報、偽事前予告情報、または事前予告無情報のいずれか)を設定する。
【0225】
更に、主制御部300が送信するコマンドには、入賞口等に入賞した場合の賞球数や、不正を検出した場合の情報が含まれる。主制御部300で検出する不正は、異常な磁気を検出した場合の磁石エラー、異常な電波を検出した場合の電波エラー、大当たり時以外に機内球710が可変入賞口234に入賞した場合の不正入賞エラー等である。なお、主制御部300のコマンド送信は、一定期間ごとに実行される。
【0226】
第1副制御部400では、受信した出力予定情報に含まれるコマンド種別により、主制御部300における遊技制御の変化に応じた演出制御の決定が可能になるとともに、出力予定情報に含まれているコマンドデータの情報に基づいて、演出制御内容を決定することができるようになる。
【0227】
ステップS231では、外部出力信号設定処理を行う。この外部出力信号設定処理では、RAM308に記憶している遊技情報を、情報出力回路336を介してパチンコ機100とは別体の情報入力回路350に出力する。
【0228】
ステップS233では、デバイス監視処理を行う。このデバイス監視処理では、ステップS205において信号状態記憶領域に記憶した各種センサの信号状態を読み出して、所定のエラーの有無を監視し、エラーを検出した場合に、第1副制御部400に送信すべき送信情報に、当該エラーの有無を示すデバイス情報を設定する。また、各種ソレノイド332を駆動して第2特図始動口232や、可変入賞口234の開閉を制御したり、表示回路324、326、330を介して普通図柄表示装置210、第1特別図柄表示装置212、第2特別図柄表示装置214、各種状態表示部328などに出力する表示データを、I/O310の出力ポートに設定する。また、賞球コマンド送信処理(ステップS219)で設定した出力予定情報(賞球コマンド)を出力ポート(I/O310)を介して第1副制御部400に出力する。
【0229】
ステップS235では、低電圧信号がオンであるか否かを監視する。そして、低電圧信号がオンの場合(電源の遮断を検知した場合)にはステップS241に進み、低電圧信号がオフの場合(電源の遮断を検知していない場合)にはステップS239に進む。
【0230】
ステップS239では、タイマ割込終了処理を行う。このタイマ割込終了処理では、ステップS201で一時的に退避した各レジスタの値を元の各レジスタに設定したり、割込許可の設定などを行い、その後、図12に示す主制御部メイン処理に復帰する。
【0231】
一方、ステップS241では、復電時に電断時の状態に復帰するための特定の変数やスタックポインタを復帰データとしてRAM308の所定の領域に退避し、入出力ポートの初期化等の電断処理を行い、その後、上述の示す主制御部メイン処理に復帰する。
<第1副制御部の処理>
【0232】
次に、図14を用いて、第1副制御部400の処理について説明する。なお、同図(a)は、第1副制御部400のCPU404が実行するメイン処理のフローチャートである。同図(b)は、第1副制御部400のコマンド受信割込処理のフローチャートである。同図(c)は、第1副制御部400のタイマ割込処理のフローチャートである。同図(d)は、第1副制御部400の画像制御処理のフローチャートである。
【0233】
まず、同図(a)のステップS301では、各種の初期設定を行う。電源投入が行われると、まずステップS301で初期化処理が実行される。この初期化処理では、入出力ポートの初期設定や、RAM408内の記憶領域の初期化処理等を行う。
【0234】
ステップS303では、タイマ変数が10以上か否かを判定し、タイマ変数が10となるまでこの処理を繰り返し、タイマ変数が10以上となったときには、ステップS305の処理に移行する。
ステップS305では、タイマ変数に0を代入する。
【0235】
ステップS307では、コマンド処理を行う。第1副制御部400のCPU404は、主制御部300からコマンドを受信したか否かを判別する。
【0236】
ステップS309では、演出制御処理を行う。例えば、ステップS307で新たなコマンドがあった場合には、このコマンドに対応する演出データをROM406から読み出す等の処理を行い、演出データの更新が必要な場合には演出データの更新処理を行う。
【0237】
ステップS311では、チャンスボタンの押下を検出していた場合、ステップS309で更新した演出データをチャンスボタンの押下に応じた演出データに変更する処理を行う。
【0238】
ステップS313では、ステップS309で読み出した演出データの中にVDP434への命令がある場合には、この命令をVDP434に出力する。
【0239】
ステップS315では、ステップS309で読み出した演出データの中に音源IC416への命令がある場合には、この命令を音源IC416に出力する。
【0240】
ステップS317では、ステップS309で読み出した演出データの中に各種ランプ418への命令がある場合には、この命令を駆動回路420に出力する。
【0241】
ステップS319では、ステップS309で読み出した演出データの中に可動体(例えば、遮蔽装置246)への命令がある場合には、この命令を駆動回路432に出力する。
【0242】
ステップS321では、ステップS309で読み出した演出データの中に第2副制御部500に送信する制御コマンドがある場合には、この制御コマンドを出力する設定を行い、ステップS303へ戻る。
【0243】
次に、同図(b)を用いて、第1副制御部400のコマンド受信割込処理について説明する。このコマンド受信割込処理は、第1副制御部400が、主制御部300が出力するストローブ信号を検出した場合に実行する処理である。コマンド受信割込処理のステップS401では、主制御部300が出力したコマンドを未処理コマンドとしてRAM408に設けたコマンド記憶領域に記憶する。
【0244】
次に、同図(c)を用いて、第1副制御部400のCPU404によって実行する第1副制御部タイマ割込処理について説明する。第1副制御部400は、所定の周期(本実施形態では2msに1回)でタイマ割込を発生するハードウェアタイマを備えており、このタイマ割込を契機として、タイマ割込処理を所定の周期で実行する。
【0245】
第1副制御部タイマ割込処理のステップS501では、第1副制御部メイン処理におけるステップS303において説明したRAM408のタイマ変数記憶領域の値に、1を加算して元のタイマ変数記憶領域に記憶する。従って、ステップS303において、タイマ変数の値が10以上と判定されるのは20ms毎(2ms×10)となる。
【0246】
第1副制御部タイマ割込処理のステップS503では、ステップS321で設定された第2副制御部500への制御コマンドの送信や、演出用乱数値の更新処理等を行う。
【0247】
次に、同図(d)を用いて、第1副制御部400のメイン処理におけるステップS313の画像制御処理について説明する。同図は、画像制御処理の流れを示すフローチャートを示した図である。
【0248】
ステップS601では、画像データの転送指示を行う。ここでは、CPU404は、まず、VRAM436の表示領域Aと表示領域Bの描画領域の指定をスワップする。これにより、描画領域に指定されていない表示領域に記憶された1フレームの画像が装飾図柄表示装置208に表示される。次に、CPU404は、VDP434のアトリビュートレジスタに、位置情報等テーブルに基づいてROM座標(ROM406の転送元アドレス)、VRAM座標(VRAM436の転送先アドレス)などを設定した後、ROM406からVRAM436への画像データの転送開始を指示する命令を設定する。VDP434は、アトリビュートレジスタに設定された命令に基づいて画像データをROM406からVRAM436に転送する。その後、VDP436は、転送終了割込信号をCPU404に対して出力する。
【0249】
ステップS603では、VDP434からの転送終了割込信号が入力されたか否かを判定し、転送終了割込信号が入力された場合はステップS605に進み、そうでない場合は転送終了割込信号が入力されるのを待つ。ステップS605では、演出シナリオ構成テーブルおよびアトリビュートデータなどに基づいて、パラメータ設定を行う。ここでは、CPU404は、ステップS601でVRAM436に転送した画像データに基づいてVRAM436の表示領域AまたはBに表示画像を形成するために、表示画像を構成する画像データの情報(VRAM436の座標軸、画像サイズ、VRAM座標(配置座標)など)をVDP434に指示する。VDP434はアトリビュートレジスタに格納された命令に基づいてアトリビュートに従ったパラメータ設定を行う。
【0250】
ステップS607では、描画指示を行う。この描画指示では、CPU404は、VDP434に画像の描画開始を指示する。VDP434は、CPU404の指示に従ってフレームバッファにおける画像描画を開始する。
【0251】
ステップS609では、画像の描画終了に基づくVDP434からの生成終了割込み信号が入力されたか否かを判定し、生成終了割込み信号が入力された場合はステップS611に進み、そうでない場合は生成終了割込み信号が入力されるのを待つ。ステップS611では、RAM408の所定の領域に設定され、何シーンの画像を生成したかをカウントするシーン表示カウンタをインクリメント(+1)して処理を終了する。
<第2副制御部の処理>
【0252】
次に、図15を用いて、第2副制御部500の処理について説明する。なお、同図(a)は、第2副制御部500のCPU504が実行するメイン処理のフローチャートである。同図(b)は、第2副制御部500のコマンド受信割込処理のフローチャートである。同図(c)は、第2副制御部500のタイマ割込処理のフローチャートである。
【0253】
まず、同図(a)のステップS701では、各種の初期設定を行う。電源投入が行われると、まずステップS701で初期化処理が実行される。この初期化処理では、入出力ポートの初期設定や、RAM508内の記憶領域の初期化処理等を行う。
【0254】
ステップS703では、タイマ変数が10以上か否かを判定し、タイマ変数が10となるまでこの処理を繰り返し、タイマ変数が10以上となったときには、ステップS705の処理に移行する。
ステップS705では、タイマ変数に0を代入する。
【0255】
ステップS707では、コマンド処理を行う。第2副制御部500のCPU504は、第1副制御部400のCPU404からコマンドを受信したか否かを判別する。
【0256】
ステップS709では、演出制御処理を行う。例えば、ステップS707で新たなコマンドがあった場合には、このコマンドに対応する演出データをROM506から読み出す等の処理を行い、演出データの更新が必要な場合には演出データの更新処理を行う。
【0257】
ステップS711では、第1副制御部400からの遊技盤用ランプ532や遊技台枠用ランプ542への命令がある場合には、この命令をシリアル通信制御回路520に出力する。
【0258】
ステップS713では、第1副制御部400からの演出可動体224への命令がある場合には、この命令を駆動回路516に出力し、ステップS703に戻る。
【0259】
次に、同図(b)を用いて、第2副制御部500のコマンド受信割込処理について説明する。このコマンド受信割込処理は、第2副制御部500が、第1副制御部400が出力するストローブ信号を検出した場合に実行する処理である。コマンド受信割込処理のステップS801では、第1副制御部400が出力したコマンドを未処理コマンドとしてRAM508に設けたコマンド記憶領域に記憶する。
【0260】
次に、同図(c)を用いて、第2副制御部500のCPU504によって実行する第2副制御部タイマ割込処理について説明する。第2副制御部500は、所定の周期(本実施例では2msに1回)でタイマ割込を発生するハードウェアタイマを備えており、このタイマ割込を契機として、タイマ割込処理を所定の周期で実行する。
【0261】
第2副制御部タイマ割込処理のステップS901では、図15(a)に示す第2副制御部メイン処理におけるステップSG03において説明したRAM508のタイマ変数記憶領域の値に、1を加算して元のタイマ変数記憶領域に記憶する。従って、ステップSG03において、タイマ変数の値が10以上と判定されるのは20ms毎(2ms×10)となる。
【0262】
第2副制御部タイマ割込処理のステップS903では、演出用乱数値の更新処理等を行う。
<球数制御部の処理>
【0263】
次に、図16を用いて、球数制御部600のCPUが実行する処理について説明する。なお、同図(a)は、球数制御部600のメイン処理の流れを示すフローチャートであり、同図(b)は、球数制御部600のコマンド受信割込みのフローチャートである。
【0264】
球数制御部600には、電源が投入されるとリセット信号を出力するリセット信号出力回路を設けている。このリセット信号を入力した球数制御部600のCPUは、リセット割込みによりリセットスタートしてROMに予め記憶している制御プログラムに従って処理を実行する。
【0265】
ステップS1001では、初期設定1を行う。この初期設定1では、CPUのスタックポインタ(SP)へのスタック初期値の設定等を行う。
【0266】
ステップS1003では、低電圧信号がオンであるか否か、すなわち、電圧監視回路が、電源管理部650から球数制御部600に供給している電源の電圧値が所定の値(本実施例では9v)未満である場合に電圧が低下したことを示す低電圧信号を出力しているか否かを監視する。そして、低電圧信号がオンの場合(電源の遮断を検知した場合)にはステップS1003の処理を繰り返し実行し、低電圧信号がオフの場合(電源の遮断を検知していない場合)にはステップS1005に進む。
【0267】
ステップS1005では、初期設定2を行う。この初期設定2では、RAMへの書き込みを許可する設定、I/Oポートの初期設定等を行う。
【0268】
ステップS1007では、電源の遮断前(電断前)の状態に復帰するか否かの判定を行い、電断前の状態に復帰しない場合(パチンコ機100を初期状態にする場合)にはステップS1011に進み、電断前の状態に復帰する場合にはステップS1009に進む。
【0269】
具体的には、最初に、電源基板に設けた操作部を遊技店の店員などが操作した場合に送信されるRAMクリア信号がオン(操作があったことを示す)であるか否か、すなわちRAMクリアが必要であるか否かを判定し、RAMクリア信号がオンの場合(RAMクリアが必要な場合)には、パチンコ機100を初期状態にすべくステップS1011に進む。一方、RAMクリア信号がオフの場合(RAMクリアが必要でない場合)は、RAMに設けた電源ステータス記憶領域に記憶した電源ステータスの情報を読み出し、この電源ステータスの情報がサスペンドを示す情報であるか否かを判定する。そして、電源ステータスの情報がサスペンドを示す情報でない場合には、パチンコ機100を初期状態にすべくステップS1011に進み、電源ステータスの情報がサスペンドを示す情報である場合には、RAMの所定の領域(例えば全ての領域)に記憶している1バイトデータを初期値が0である1バイト構成のレジスタに全て加算することによりチェックサムを算出し、算出したチェックサムの結果が特定の値(例えば0)であるか否か(チェックサムの結果が正常であるか否か)を判定する。そして、チェックサムの結果が0の場合(チェックサムの結果が正常である場合)には電断前の状態に復帰すべくステップS1009に進み、チェックサムの結果が0以外である場合(チェックサムの結果が異常である場合)には、パチンコ機100を初期状態にすべくステップS1011に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップS1011に進む。
【0270】
ステップS1009では、復電時処理を行う。この復電時処理では、RAMの記憶領域のうち、復電時にクリアすべき記憶領域(コマンドを格納するためのコマンドバッファ、エラー状態を記憶するためのエラーステータスなどを除く記憶領域)の初期化などを行う。
【0271】
ステップS1011では、初期化処理を行う。この初期化処理では、割込み禁止の設定、スタックポインタへのスタック初期値の設定、RAMの所定の領域(例えば、全ての記憶領域)の初期化などを行う。
【0272】
ステップS1013では、初期設定3を行う。この初期設定3では、割込み許可の設定などを行う。
【0273】
ステップS1015では、主制御部300から入力したデータの中に未解析データがあるか無いかを判定し、未解析データがある場合にはステップS1017でコマンド解析処理を行い、未解析データがない場合にはステップS1019に進む。
【0274】
ステップS1019では、低電圧信号がオフであるか否かを監視し、低電圧信号がオフの場合(電源の遮断を検知していない場合)にはステップS1015に戻り、低電圧信号がオンの場合(電源の遮断を検知した場合)にはステップS1021に進む。
【0275】
ステップS1021では、電断時処理を行う。この電断時処理では、RAMに設けたスタックポインタ退避領域に現在のスタックポインタの値を記憶し、上述の電源ステータス記憶領域にサスペンドを示す情報を設定する。また、RAMの所定の領域(例えば全ての領域)に記憶している1バイトデータを初期値が0である1バイト構成のレジスタに全て加算し、チェックサム算出用数値記憶領域に記憶している値からその加算した結果を減算した値をチェックサム(電断時チェックサム)として算出し、算出した電断時チェックサムを上述のチェックサム算出用数値記憶領域に記憶し、RAMへの書き込みを禁止する設定などを行う。
【0276】
ステップS1023では、低電圧信号がオンであるか否かを監視し、低電圧信号がオンの場合(電源の遮断を検知した場合)にはステップS1023の処理を繰返し実行して低電圧信号がオフになるのを待ち、低電圧信号がオフの場合(電源の遮断を検知していない場合)にはステップS1001に戻り、メイン処理を最初から開始する。
【0277】
次に、同図(b)を用いて、球数制御部600のコマンド受信割込みについて説明する。このコマンド受信割込みは、球数制御部600が、主制御部300が出力するストローブ信号を検出した場合に実行する処理である。コマンド受信割込処理のステップS1101では、主制御部300が出力したコマンドを未処理コマンドとしてRAMに設けたコマンド記憶領域に記憶する。
<球数制御部割込み処理>
【0278】
次に、図17を用いて、球数制御部600のCPUが実行する球数制御部割込み処理について説明する。なお、同図は、球数制御部割込みの流れを示すフローチャートである。
【0279】
球数制御部600は、所定の周期(本実施形態では2msに1回)でタイマ割込みを発生するカウンタタイマを備えており、このタイマ割込みを契機として球数制御部割込み処理を所定の周期で開始する。
【0280】
ステップS1201では、ポート入力処理を行う。このポート入力処理では、I/Oポートの値を取得して、入力ポートの状態(信号レベルやエッジ状態)を更新し、各種センサ604の状態などを検出する。具体的には、管理装置620からインターフェース部606を介して入力する各種信号の状態、球磨き装置612、揚上装置614、球送り装置616などから入力する信号(各種センサ604の状態)、減算センサ604Z、入賞検出センサ604S、非入賞検出センサ604Kなどから入力する信号、RWMクリアスイッチ180から入力する信号、エラー解除スイッチ168から入力する信号、主制御部300と球数制御部600を接続する主制御接続確認信号の状態などを取得して、例えば、信号を検出した場合は「1」、非検出の場合は「0」などのフラグを、RAMに各信号に対応して設けた入力信号情報記憶領域に記憶する。
【0281】
また、計数ボタン652の押下によって入力する信号も取得し、当該信号を検出した場合は計数ボタン652用の入力信号情報記憶領域に「1」が設定されるとともに、計数球数を記憶する。
【0282】
なお、本ステップにおいて、遊技領域124への投入および排出の球検出センサ604B(減算センサ604Z、入賞検出センサ604S、非入賞検出センサ604K)に機内球710が通過したことが検出される。この場合の球検出センサ604Bの信号検出も、主制御部タイマ割込処理(図13)の、ステップS205で説明した方法により行う。すなわち、各々の球検出センサ604Bにおける過去3回分の検出信号の有無の情報が入賞判定パターン情報と一致するか否かを判定し、一致した場合に対応する入力信号情報記憶領域に「1」を設定する。なお、入賞判定パターン情報は、過去2回分の検出信号の有無の情報で構成してもよいし、球検出センサ604Bごとに(判定の重要度に応じて)異ならせてもよい。
【0283】
ステップS1203では、タイマ更新処理を行う。このタイマ更新処理では、賞球付与の報知用LEDの点灯/消灯時間、モータ駆動/非駆動時間などを計時するためのタイマなどを含む各種タイマを更新する。
【0284】
ステップS1204では、シリアルコマンド管理処理を行う。これについては後述する。
【0285】
ステップS1205では、エラー管理処理を行う。このエラー管理処理では、各種エラーが発生しているか否かを判定し、RAMに設けたエラーステータス記憶領域にエラーに関する情報を記憶する。
【0286】
ステップS1207では、エラー解除スイッチ監視処理を行う。すなわち、上記ステップS1201のポート入力処理で取得したエラー解除スイッチ168の状態に基づいて、エラー解除スイッチ168が押下され、エラーフラグがセットされている場合は、エラーフラグをクリアする。
【0287】
ステップS1209では、管理装置通信処理を行う。この管理装置通信処理では、管理装置620からインターフェース部606を介して入力する各種信号の状態に基づいて、管理装置620と双方向の通信を行い、例えば、球数制御部600から管理装置620へ遊技球数情報を送信や、管理装置620から球数制御部600に球貸要求情報の送信を行う。球数制御部600は、管理装置620から球貸要求情報を受信した場合、RAMの貸球球数記憶領域に記憶されている数値に貸球数を加算する。
【0288】
ステップS1211では、遊技球数設定処理を行う。この遊技球数設定処理では、上述のエラーステータス記憶領域から、乱数クロック異常を示す情報等を読み出し、いずれのエラーも発生していない場合に、遊技球数設定処理を行う。いずれかのエラーが発生している場合には、主制御部300からの賞球数の情報(賞球コマンド)、管理装置620からの球貸要求情報、球数要求情報を受付けないようにしている。
【0289】
遊技球数設定処理では、上述のポート入力処理(ステップS1201)で検出した球検出センサ604B(減算センサ604Z、入賞検出センサ604S、非入賞検出センサ604K)と、主制御部タイマ割込みの賞球コマンド送信処理ステップ(図13のステップS219)によって主制御部300から送信される賞球コマンド、計数球数記憶領域に記憶されている計数球数、貸球数記憶領域に記憶されている貸球数、再プレイ球数記憶領域に記憶されている再プレイ球数、イン球数記憶領域に記憶されているイン球数などに応じて、遊技球数を更新するが、これについては後述する。
【0290】
ステップS1213では、LED処理を行う。このLED処理では、パチンコ機100がエラー状態になった場合に、エラーが発生していることを遊技者に報知するためのLED(例えば、パチンコ機100の上部に配設されたLEDや、遊技盤200の背面側に設けられた基板表示部630)を点灯させるとともに、エラーが解消した場合には、そのLEDを消灯させる。例えば、入賞数異常エラーフラグがセットされている場合には、入賞数異常エラーが発生していることを遊技者に報知するためのLEDを点灯させるとともに、入賞数異常エラーフラグがクリアされた場合には、そのLEDを消灯させる。
【0291】
ステップS1215では、信号出力管理処理を行う。この信号出力管理処理では、例えば、後述する出力信号記憶領域に記憶されている出力情報に基づいて、管理装置620に向けてEXS信号を出力する。具体的には、出力信号記憶領域に「要求了解」の出力情報が記憶されている場合には、EXS信号としてLowの信号を出力し、出力信号記憶領域に「貸出完了」の出力情報が記憶されている場合には、EXS信号としてHiの信号を出力する。また、RAMに記憶している遊技情報を、情報出力回路334を介してパチンコ機100とは別体の情報入力回路652に出力する。
<遊技球数設定処理>
【0292】
次に、遊技球数設定処理について説明する。遊技球数は、例えば以下の式1により算出される。
【0293】
更新後遊技球数=更新前遊技球数+貸球数+賞球数+再プレイ球数-イン球数-計数球数 (式1)
【0294】
遊技球数制御部600は、数球数制御部600のRAMに、貸球数記憶領域、賞球数記憶領域、イン球数記憶領域、計数球数記憶領域、再プレイ球数記憶領域、を設けている。更新前遊技球数は、更新前に遊技球数記憶領域に記憶されている数値(遊技球数)である。
【0295】
例えば、上記のステップS1201において、減算センサ604Zで機内球710の通過が検出された場合には、減算センサ604Z用の入力信号情報記憶領域にフラグ「1(オン)」が設定される。遊技球数設定処理ではこのフラグを判定し、オンの場合は、イン球数記憶領域に記憶されている値を読出し1を加算して元のイン球数記憶領域に記憶する。
【0296】
また、例えばステップS1201において、入賞検出センサ604Sで機内球710の通過が検出された場合、入賞検出センサ604S用の入力信号情報記憶領域にフラグ「1(オン)」が設定される。遊技球数設定処理ではこのフラグを判定しオンの場合には、賞球数記憶領域に記憶されている値を読出し、主制御部300から受信した賞球コマンドの賞球数を加算して元の賞球数記憶領域に記憶する。
【0297】
また、例えばステップS1201において、計数ボタン652の押下が検出された場合、計数ボタン652用の入力信号情報記憶領域に「1(オン)」が設定されるとともに、計数球数が記憶される。遊技球数設定処理ではこのフラグを判定しオンの場合には、計数球数記憶領域に記憶されている数値を読出し、計数球数を加算して元の計数球数記憶領域に記憶する。
【0298】
尚、球貸ボタン140が押下された場合には、例えばステップS1209のIU通信処理において、貸球球数記憶領域に貸球数が加算される。また、再プレイボタン146が押下された場合には、例えばステップS1209のIU通信処理において、再プレイ数球数記憶領域に記憶されている数値を読出し、再プレイ球数を加算して元の再プレイ球数記憶領域に記憶されている。
【0299】
そして、貸球数記憶領域、賞球数記憶領域、イン球数記憶領域、計数球数記憶領域、再プレイ球数記憶領域および遊技球数記憶領域に記憶されている数値を用いて式1により更新後遊技球数を算出し、元の遊技球数記憶領域に記憶することで、遊技球数を更新する。また、遊技球数記憶領域の(更新後の)遊技球数を、球数表示部640に表示する。
【0300】
例えば、機内球710の発射直後で、球数UI部680の操作がされておらず、またいずれの入賞口等にも入賞していない状態では、イン球数記憶領域のみに「1」が記憶され、貸球数記憶領域、賞球数記憶領域、計数球数記憶領域、再プレイ球数記憶領域に記憶されている値は「0」である。その状態で遊技球数が更新されると、更新前遊技球数から1が減算され、その更新後遊技球数が遊技球数記憶領域に設定されるとともに球数表示部640に表示される。これにより、機内球710の1個の発射で、発射可能な遊技球数が1つ減ったことを遊技者に報知できる。
【0301】
遊技球数の更新後は、貸球数記憶領域、賞球数記憶領域、イン球数記憶領域、計数球数記憶領域、最プレイ球数記憶領域の数値および、ステップS1201で設定する減算センサ604Z用の入力信号情報記憶領域、入賞検出センサ604S用および非入賞検出センサ604K用の入力信号情報記憶領域、計数ボタン652用の入力信号情報記憶領域にそれぞれ「0」を設定(フラグをオフに)する。
【0302】
なお、賞球数については、例えば賞球数記憶領域を複数準備し、入賞検出センサ604Sおよび非入賞検出センサ604K用の入力信号情報記憶領域を複数準備してもよい。1つの賞球数記憶領域には主制御部300から受信した1つの賞球コマンドに基づく賞球数を記憶し、複数の賞球数を蓄積的に記憶する。また、入賞検出センサ604Sおよび非入賞検出センサ604Kで検出する毎に、入力信号情報記憶領域にフラグを設定する。フラグは例えば、入賞検出センサ604Sで検出した場合は「オン」、非入賞検出センサ604Kで検出した場合は「オフ」というように、これらを蓄積的に記憶する。そして、遊技球数設定処理において、これらを順次比較し、入力信号情報記憶領域のフラグが「オン」の場合に賞球数記憶領域の賞球数を取得して、式1にて算出するものであってもよい。
【0303】
尚、球数制御部600は、領域内球数がゼロの場合でも、主制御部300から球数制御部600に賞球コマンドが送信されている場合には、球数制御部600は遊技球数を更新するものとしてもよい。
【0304】
また、主制御部300から球数制御部600に賞球コマンドが送信された後、非入賞検出センサ604Kにおいて機内球710が検出され、その結果、領域内球数がゼロになった場合でも、球数制御部600は、遊技球数を更新するものとしてもよい。
【0305】
また、主制御部300から球数制御部600に賞球コマンドが送信された後、入賞検出センサ604Sにおいて機内球710が検出される以前であっても、球数制御部600は、遊技球数を更新するものとしてもよい。
【0306】
また球数制御部600は、主制御部300から始動口(第1特図始動口230、第2特図始動口232)への入賞を報知する賞球コマンドを受信した場合は、領域内球数がゼロであっても、主制御部300にそれぞれの始動口に対応した図柄変動遊技を開始させるように構成されてもよい。
【0307】
また球数制御部600は、主制御部300から始動口(第1特図始動口230、第2特図始動口232)への入賞を報知する賞球コマンドを受信した後に、非入賞検出センサ604Kにおいて機内球710が検出され、その結果、領域内球数がゼロになった場合でも、主制御部300にそれぞれの始動口に対応した図柄変動遊技を開始させるように構成されてもよい。
【0308】
また、球数制御部600は、主制御部300から始動口(第1特図始動口230、第2特図始動口232)への入賞を報知する賞球コマンドを受信した後、入賞検出センサ604Sにおいて機内球710が検出される以前であっても、主制御部300にそれぞれの始動口に対応した図柄変動遊技を開始させるように構成されてもよい。
【0309】
また、球数制御部600は、主制御部300から普図始動口228への入賞を報知する賞球コマンドを受信した場合は、領域内球数がゼロであっても、主制御部300に普図変動遊技を開始させるように構成されてもよい。
【0310】
また球数制御部600は、主制御部300から普図始動口228への入賞を報知する賞球コマンドを受信した後に、非入賞検出センサ604Kにおいて機内球710が検出され、その結果、領域内球数がゼロになった場合でも、主制御部300に普図変動遊技を開始させるように構成されてもよい。
【0311】
また、球数制御部600は、主制御部300から普図始動口228への入賞を報知する賞球コマンドを受信した後、入賞検出センサ604Sにおいて機内球710が検出される以前であっても、主制御部300に普図変動遊技を開始させるように構成されてもよい。
【0312】
さらに、ここでは遊技球数の更新処理を、球数制御部割込み処理で行う場合を例に説明したが、主制御部割込み処理で行うものであってもよい。
<パチンコ機と管理装置の通信手順>
【0313】
本実施形態の球数制御部600は、例えば遊技者の計数ボタンの押下や、返却ボタン142のタッチなどによって、遊技球の量(遊技球数、計数球数など)に関する情報を管理装置620に送信することを指令された場合、遊技領域124に機内球710が存在しており、遊技領域124の機内球710が全て排出される以前であっても(領域内球数が存在する場合であっても)、遊技球の量に関する情報を管理装置620に送信することが可能である。
【0314】
また、遊技球の量に関する情報とは、遊技球数情報、計数情報が含まれ、より具体的には、遊技球数、計数球数、持ち球数、ICカードに記憶されている貯球あるいは、ICカードに記憶されて遊技球に交換可能な電子マネーの残高などである。この残高は、ICカードから読み出した残高またはICカードに記憶させる残高等でもよい。また貯球とは、ICカードから読み出した貯球またはICカードに記憶させる貯球でもよい。ICカードは、例えば、会員カードとして遊技者の個人情報が登録できるものであってもよい。
【0315】
また、球数制御部600は、例えば遊技者の計数ボタン652の押下や、返却ボタン142のタッチによって、遊技球の量に関する情報を管理装置620に送信することを指令された場合、その時点で発射レール624に搬送されている機内球710の発射装置622による発射を待機し、発射後に遊技球の量に関する情報を管理装置620に送信することが可能である。
【0316】
また、球数制御部600は、遊技者からICカードの返却指定を管理装置620に送信することを指令された場合(返却ボタン142がタッチされた場合)、遊技領域124に機内球710が存在していても、遊技球の量に関する情報を管理装置620に送信することが可能である。
【0317】
具体的に例を挙げて説明すると、例えば計数ボタン652が押下されたことを球数制御部600が検出した場合、その時点で、発射準備中の機内球710の有無によらず、また、遊技領域124に機内球710が存在していても(発射した機内球710の入賞が確定する以前であっても)、遊技球数から計数球数を減算し、更新後の遊技球数、計数球数などを含む情報(計数情報)を管理装置620に送信する。
【0318】
遊技領域124を落下する機内球710が全て排出されるまでは所定の時間がかかるが、このようにすることで、速やかに当該情報をICカードに記録することができるので、例えばICカードの返却指示があった場合等に、速やかに返却することが可能となる。
【0319】
また、球数制御部600が例えば計数ボタン652が押下されたこと検出した場合、その時点で(あるいは押下を検出後、最初に)発射レール624に準備されている機内球710の発射が完了するまで待機し、発射完了後に遊技球数から1を減算し、更に計数球数を減算する。そして減算後の遊技球数、計数球数などを含む情報(計数情報)を管理装置620に送信するものとしてもよい。この場合も、球数制御部600は、遊技領域124に機内球710が存在していても(発射した機内球710の入賞が確定する以前であっても)、計数情報を管理装置620に送信することができる。
【0320】
このようにすることで、速やかに当該情報のICカードへの記録は可能としつつ、操作検出時に準備されている機内球710は消費したものとして遊技球数に反映されるので、正確な遊技球数を送信できる。
【0321】
しかしこれに限らず、球数制御部600は計数ボタン652の操作があったこと検知した場合、機内球710が遊技領域124から全て排出された後(入賞検出センサ604S、非入賞検出センサ604Kによる機内球710の通過の検出があった後)、計数情報を管理装置620に送信するものであってもよい。この場合、その時点の遊技球数から操作検出時(あるいはその直後の)機内球710の発射分と、計数球数の減算は行って遊技球数を更新するが、遊技領域124に残存する機内球710がある場合には、それらの入賞判定を待たずに(賞球数を加算せずに)計数情報を送信するものとしてもよい。発射した機内球710の数とその排出の数を検出することで、循環する機内球710が正常であることを確認した上で、計数情報を管理装置620に送信できる。
【0322】
また、球数制御部600は、計数ボタン652の操作があったこと検知した場合、機内球710が遊技領域124から全て排出され、これらのうちで入賞したものがあれば、操作検出時の遊技球数から発射された機内球710分(1個)と計数球数の減算を行い、且つすべての入賞口等に対応する賞球の付与(賞球数の加算)がされた後に、計数情報を管理装置620に送信するものとしてもよい。このようにすることで、正確な遊技球数を管理装置620に送信することができる。
【0323】
また、球数UI部680は、返却ボタン142のタッチがあった時点で遊技領域124に機内球710が残っていても、返却操作情報を管理装置620に送信可能とする。また当該返却操作情報を受信した管理装置620が球数要求情報を球数制御部600に送信した場合、球数制御部600では、その時点で、発射準備中の機内球710があっても、また、遊技領域124に機内球710が残っていても、その時に主制御部300から受信している賞球コマンドがあればその賞球数を遊技球数に加算し、遊技球数情報を管理装置620に送信可能とする。遊技領域124に機内球710が存在している場合、全ての機内球710が排出されるまでは所定の時間がかかるが、これにより、速やかにICカードの返却が可能となる。
【0324】
あるいは、返却操作情報を受信した管理装置620が球数要求情報を球数制御部600に送信した場合、球数制御部600は、その時点で(あるいは操作を検知後、最初に)発射レール624に準備されている機内球710の発射が完了するまで待機し、発射完了後に遊技球数から1を減算し、その時に主制御部300から受信している賞球コマンドがあればその賞球数を遊技球数に加算し、遊技球数情報を管理装置620に送信するものとしてもよい。この場合、遊技領域124に機内球710が残存していても(発射した機内球710の入賞が確定する以前であっても)、遊技球数情報を管理装置620に送信することができる。このようにすることで、ICカードの速やかな返却が可能となる上、正確な遊技球数を送信できる。
【0325】
しかしこれに限らず、球数制御部600は球数UI部680の操作があったこと検知した場合、機内球710が遊技領域124から全て排出された後(入賞検出センサ604S、非入賞検出センサ604Kによる機内球710の通過の検出があった後)、遊技球数を管理装置620に送信するものであってもよく、この場合、遊技球数から最後に発射された機内球710の減算とその時に主制御部300から受信している賞球コマンドがあればその賞球数の加算は行って遊技球数を更新するが、遊技領域124に残存する機内球710がある場合には、それらの入賞判定を待たずに(賞球数を加算せずに)遊技球数を送信するものとしてもよい。発射した機内球710の数とその排出した数を検出することで、循環する機内球710が正常であることを確認した上で、遊技球数情報を管理装置620に送信できる。
【0326】
また、球数制御部600は、球数UI部680の操作があったこと検知した場合、操作検出時の遊技球数から発射された機内球710の減算を行い、機内球710が遊技領域124から全て排出され、これらのうちで入賞したものがあれば、すべての入賞口等に対応する賞球の付与がされた後に、遊技球数情報を管理装置620に送信するものとしてもよい。このようにすることで、正確な遊技球数を管理装置620に送信することができる。
【0327】
また、球数制御部600は、返却ボタン142が操作されてから、所定時間以内に計数ボタン652の操作があった場合、遊技球数記憶領域の遊技球数のすべてを計数球数とした計数情報(または計数情報を含む遊技球数情報)を管理装置620に通知し(遊技球数記憶領域の遊技球数は0)、管理装置620は、貯球数等をICカードに記憶した後、ICカードを返却する構成としてもよい。
【0328】
また、球数制御部600は、計数ボタン654操作後に返却ボタン142が操作された場合は、その時点の遊技球数から計数球数を減算した新たな遊技球数と計数球数を遊技球数情報として管理装置620に送信してもよい。管理装置620は、遊技球数情報のうち、計数球数(貯球数)をICカードに記憶した後、ICカードを返却する。
【0329】
また、遊技者が挿入したICカードとは異なる他のICカードを返却する構成としてもよい。例えば、所定の記憶球数が記憶された第1のICカードが遊技者によって管理装置620に挿入され、遊技が行われることで球数制御部600の遊技球数記憶領域に所定の遊技球数が記憶された状態で、計数ボタン654を押下することなくICカードの返却が指定された場合には、これとは別の第2のICカードを返却する構成としてもよい。第2のICカードは、例えば管理装置620に備える新たなICカードでもよいし、第1のICカードとは別に(第1のICカードの挿入後に)管理装置620に挿入されたICカードでもよい。この場合の第2のICカードは、遊技者が所持するICカードでもよいし、第三者の所持するICカードでもよい。
【0330】
一例を挙げると以下の通りである。遊技開始時に管理装置620内の第1のICカードに記憶されている記憶球数は15個である。遊技者が球貸ボタン140をタッチし、例えば10個の球貸しを受ける。パチンコ機100の球数制御部600の遊技球数記憶領域に記憶されている遊技球数が10個(遊技開始時には0個)となり、ICカード内の記憶球数は5個となる。遊技者が計数ボタン652を押下することなく、返却ボタン142をタッチすると、5個の記憶球数が記憶された第1のICカードが返却される。遊技者は第1のICカードとは別に、20個の記憶球数が記憶されて第2のICカードを有しており、これを管理装置620に挿入し、計数ボタン652を押下し、例えば10個の計数操作を行う。これにより、管理装置620に挿入されている第2のICカードの記憶球数は、30個となる。遊技者が返却ボタン142をタッチすると、第2のICカードが返却される。
【0331】
また、例えば、所定の持ち球数が記憶された第1のICカードが遊技者によって管理装置620に挿入され、遊技が行われ、球数制御部600の遊技球数記憶領域に所定の遊技球数が記憶された状態で、計数ボタン654を押下することなく、ICカードの返却が指定された場合には、第1のICカードを返却するとともに、これとは別の第2のICカードに現在の遊技球数を記憶して返却する構成としてもよい。第2のICカードは、例えば管理装置620に備える新たなICカードでもよいし、第1のICカードとは別に(第1のICカードの挿入後に)管理装置620に挿入されたICカードでもよい。この場合の第2のICカードは、遊技者が所持するICカードでもよいし、第三者の所持するICカードでもよい。
【0332】
一例を挙げると以下の通りである。遊技開始時に管理装置620内の第1のICカードに記憶されている記憶球数は15個である。遊技者が球貸ボタン140をタッチし、例えば10個の球貸しを受ける。パチンコ機100の球数制御部600の遊技球数記憶領域に記憶されている遊技球数が10個(遊技開始時には0個)となり、ICカード内の記憶球数は5個となる。遊技者が計数ボタン652を押下することなく、返却ボタン142をタッチすると、5個の記憶球数が記憶された第1のICカードが返却される。遊技者は管理装置620にICカードを挿入することなく、計数ボタン652を押下し、例えば10個の計数操作を行う。これにより、管理装置620が備える新品の第2のICカードに10個の記憶球数が記憶され、当該第2のICカードが返却される。
<パチンコ機と管理装置の通信手順の具体例>
【0333】
図18から図22を参照して、パチンコ機100の球数制御部600および球数UI部680と、管理装置620との通信手順の具体例について説明する。
【0334】
まず図18は、遊技開始時など、ICカードが管理装置620に挿入され、球貸操作が行われる場合のパチンコ機100と管理装置620の通信手順を示すシーケンスチャートである。
【0335】
管理装置620に電子マネーがチャージされたICカードが挿入されると(1)、管理装置620はチャージ金額(残高)と交換可能な遊技球数(貸球数の上限、例えば500個)を算出し、当該遊技球数を球数UI部680に球数更新指令として送信する(2)。球数更新指令に基づき球数UI部680は、画像表示部656に、貯球数および残高を報知する画像を表示するとともに、操作可能なボタン(球貸ボタン140、返却ボタン142等)を明るく表示するなどして、遊技者に入力を促す。球数UI部680は、遊技者が例えば入力操作部654の球貸ボタン140をタッチしたことを検出した場合(3)、球貸ボタン140の押下回数や押下時間などに応じた貸球の情報(球貸操作情報)を管理装置620に送信する(4)。球貸操作情報を受信した管理装置620は、要求された貸球数(例えば、100個)をICカードに記憶された貯球数または残高から貸し出すこと(球貸要求情報)を球数制御部600に送信する(5)。球貸要求情報を受信した球数制御部600は、要求された貸球数を遊技球数に加算し、球数表示部640に表示する。遊技開始時には球数制御部600の遊技球数記憶領域の遊技球数は初期化されており、最初の球貸操作で要求された貸球数が遊技球数として球数制御部600の遊技球数記憶領域に記憶される。管理装置620は、球貸操作によって変更が生じた、遊技球数に関する各種情報(例えば、貯球数や残高)を球数更新指令として、球数UI部680に送信する(6)。球数UI部680は、球数更新指令に基づき、画像表示部656にそれぞれの情報を表示する。
【0336】
図19は、ICカードが管理装置620に挿入された状態において、遊技者から遊技球数に関する情報を管理装置620に送信する指令を受付けた場合のパチンコ機100と管理装置620の通信手順を示すシーケンスチャートであって、遊技球数に関する情報が、ICカードの返却指示である場合を示す。
【0337】
パチンコ機100は、遊技者から、ICカードの返却の指示を受付けた場合、すなわち、ICカードの返却に際し、球数制御部600の遊技球数記憶領域の遊技球数(遊技球数情報)を管理装置620に送信する指示(球数要求情報)を受付けた場合、遊技領域124に残存する機内球710の有無にかかわらず、遊技球数情報を管理装置620に送信し、ICカードの返却を可能とする。ここでは一例として、遊技球数情報は、返却操作があった時点で(あるいはその直後に)発射レール624に準備されている機内球710の発射が完了するに十分な時間を待機する遅延処理を行った後、管理装置620に送信する場合のタイミングチャートを示している。
【0338】
球数UI部680は、ICカードが管理装置620に挿入され(図示省略)、管理装置620が球数更新指令を球数UI部680に送信している状態(図示省略)で、球数UI部680が返却ボタン142のタッチがあったことを検出すると(1)、返却操作情報を管理装置620に送信し(2)、管理装置620は、最新の遊技球数の情報を得るため、球数要求情報を球数制御部600に送信する(3)。ここで、球数要求情報は、遊技終了要求情報としてもよく、以下の説明においても同様である。球数制御部600は、タイマなどを用いた遅延処理などによって、球数要求情報を受信した時点で(あるいは受信後最初に)発射レール624に準備されている機内球710の発射が完了するまでの十分な時間(例えば発射された機内球710が遊技領域124から排出されるまでの最長時間)が経過したと判断した後に、遊技球数から発射した1個を減算して、更新された遊技球数を遊技球数情報(5)として管理装置620に送信する。
【0339】
一方で、球数制御部600は、遊技領域124の領域内球数の有無によらず、遊技球数情報を管理装置620に送信可能である(4)(5)。遊技球数情報を受信した管理装置620は、貯球数等をICカードに記憶してこれを返却する(6)。また管理装置620は、更新された遊技球数に関する情報を球数更新指令として球数UI部680に送信する(7)。球数UI部680は、画像表示部656に更新された遊技球数に関する情報を表示する。
【0340】
たとえば、返却ボタン142の操作があった場合、発射レールに準備されている機内球710の発射を完了してから遊技球数情報を管理装置620に送信し、ICカードを返却する仕様となっている場合、返却ボタン142をタッチしたにもかかわらず、遊技者が球発射ハンドル134を操作しないでいると、ICカードが返却されない場合がある。このような場合、機内球710が発射され遊技領域124から排出される最長時間の経過後には、実際の発射がなくても発射されたとみなして、遊技球数を1個減算して遊技球数情報を管理装置620に送信することで、ICカードを返却することができる。
【0341】
図20は、図19と同様に、ICカードが管理装置620に挿入された状態において、遊技者から遊技球数に関する情報を管理装置620に送信する指令を受付けた場合のパチンコ機100と管理装置620の通信手順を示すシーケンスチャートであって、遊技球数に関する情報が、球貸し操作指示および、ICカードの返却指示である場合を示す。
【0342】
この場合も、球数要求情報を受信した球数制御部600は、発射準備されている遊技球の発射が完了した後、遊技球数情報を管理装置620に送信する例を示すが、発射の完了は、図19で示した遅延処理に替えて、減算センサ604Zにて検出する場合について説明する。
【0343】
例えば、ICカードが管理装置620に挿入されると(1)、管理装置620が貸出可能な遊技球数の情報を含む球数更新指令を球数UI部680に送信する(2)。球数更新指令に基づき、画像表示部656に貯球数等が表示されるとともに、球数更新指令を受信した球数UI部680は、操作可能なボタンを明るく表示するなどして、遊技者に入力を促す。球数UI部680は、遊技者が例えば入力操作部654の球貸ボタン140をタッチしたことを検出した場合(3)、球貸ボタン140に対応する貸球数の情報を含む球貸操作情報を管理装置620に送信する(4)。球貸操作情報を受信した管理装置620は、球数制御部600に、貸球数の情報を含む球貸要求情報を送信する(5)。球貸要求情報を受信した球数制御部600は、貸球数を遊技球数に加算する。また、管理装置620は、貸球によって更新された遊技球数に関する情報を、球数更新指令として球数UI部680に送信する(6)。
【0344】
球貸しを受けた遊技者は、例えば、遊技の開始に際して球数UI部680(画像表示部658)の表示画像を遊技領域124の装飾図柄表示装置208に表示される画像に切り替えたい場合、球数UI部680の切替ボタン144をタッチする。球数制御部600がこれを検出すると(7)、例えば、第2副制御部500がおよび管理装置620が表示装置切替部670を制御して、画像表示部658の画像を切り替える。
【0345】
遊技者が遊技を開始し、球発射ハンドル134が操作されると、機内球710が遊技領域に発射される。これが減算センサ604Zで検出され(8)、以降遊技が続けられる。遊技中に、遊技者が返却ボタン142をタッチしたことを球数UI部680が検出した場合(9)、球数UI部680は、ICカードを返却する指示(返却操作情報)を管理装置620に送信する(10)。返却操作情報を受信した管理装置620は、球数制御部600に球数要求情報を送信する(11)。球数要求情報を受信した球数制御部600は、その時点で発射レール624に準備された(あるいはその後最初に発射レール624に準備される)機内球710の発射を待機する。すなわち、球数制御部600は、発射の準備がされている1個の機内球710の発射を検出した(減算センサ604Zで機内球710の通過を検出した)後(12)遊技球数から1個を減算し、更新した遊技球数を遊技球数情報として管理装置620に送信する(13)。一方で、球数制御部600は、領域内球数の有無によらず、遊技球数情報を管理装置620に送信可能である。遊技球数情報を受信した管理装置620は、貯球数等をICカードに記憶し、これを返却する(14)。また管理装置620は、更新された遊技球数に関する情報を球数更新指令として球数UI部680に送信する(15)。球数UI部680は、更新された遊技球数に関する情報を画像表示部656に表示する。
【0346】
図21は、ICカードが管理装置620に挿入され、遊技者から遊技球数に関する情報を管理装置620に送信する指令(例えば計数ボタン652の押下)を受付けた場合のパチンコ機100と管理装置620の通信手順を示すシーケンスチャートである。
【0347】
パチンコ機100は、遊技者から管理装置620に送信する遊技球数に関する指令として、計数ボタン652の押下を受付けた場合も、領域内球数の有無や発射を待機する機内球710の有無にかかわらず、遊技球数に関する情報を管理装置620に送信可能とする。
【0348】
具体的に説明すると、管理装置620にICカードが挿入され、例えば遊技が開始されている状態で、球数制御部600が計数ボタン652の押下を検出すると(1)、計数ボタン652の押下回数や押下時間に応じた計数球数を計数情報として管理装置620に送信する(2)。この時、球数制御部600は、遊技領域124の残存する機内球710の有無にかかわらず、遊技球数から計数球数を減じ、計数球数と減算後の遊技球数を含む計数情報を管理装置620に送信する。計数情報を受信した管理装置620は、ICカードに貯球数および残高などを記憶するとともに更新された遊技球数に関する情報を球数更新指令として球数UI部680に送信する(3)。球数UI部680は、画像表示部656に更新された遊技球数に関する情報を表示する。
【0349】
図22は、計数ボタン652が押下された場合の他の形態を説明するための、パチンコ機100と管理装置620の通信手順を示すシーケンスチャートである。
【0350】
球数制御部600は、管理装置620への計数情報を送信する場合に、計数ボタン652操作時に(操作後最初に)発射レール624に準備されていた機内球710が発射完了となるまで待機した後に送信するものとしてもよい。
【0351】
例えば、ICカードが管理装置620に挿入されると(1)、管理装置620が球数更新指令を球数UI部680に送信する(2)。球数更新指令に基づき画像表示部656に貯球数などを表示するとともに、球数更新指令を受信した球数UI部680は、操作可能なボタンを明るく表示するなどして、遊技者に入力を促す。球数UI部680は、遊技者が例えば入力操作部654の球貸ボタン140をタッチしたことを検出した場合(3)、球貸操作情報を管理装置620に送信する(4)。球貸操作情報を受信した管理装置620は、球数制御部600に、球貸要求情報を送信する(5)。これを受信した球数制御部600は、遊技球数に貸球数を加算する。管理装置620は、加算後の遊技球数に関する情報を、球数更新指令を球数UI部680に送信する(6)。貸球を受けた遊技者は、遊技開始にともない、例えば、入力操作部654の切替ボタン144を押下して(7)、画像表示部656に表示させる画像を、装飾図柄表示装置208の表示画像と同じ画像に切り替える。遊技者が球発射ボタン134を操作すると、機内球710が遊技領域124に発射され、これを減算センサ604Zが検出し(8)、以後遊技が行われる。
【0352】
遊技中に、計数ボタン652の操作があったことを球数制御部600が検出した場合(9)、球数制御部600は、計数球数を遊技球数から減算しこの情報を管理装置620に送信するが、ここでは、計数ボタン652の操作があった後に機内球710の発射を待機して、計数球数等の情報を管理装置620に送信する。
【0353】
つまり、計数ボタン652の操作があったこと検出した時点で発射レール624に準備されている、あるいは操作があったこと検出した後最初に発射レール624に準備される機内球710の発射を、減算センサ604Zによって検出した後、遊技球数から発射した遊技球数分(1個)と計数球数とを減算し、減算後の遊技球数および計数球数などを遊技球数情報として管理装置620に送信(11)する。管理装置620は、貯球数をICカードに記憶する。
【0354】
あるいは、計数ボタン652の操作があったことを検出した時に、発射レール624に準備されている機内球710の発射が完了するまでの十分な時間(例えば発射された機内球710が遊技領域124から排出されるまでの最長時間)が経過したと判断した後(タイマ等による遅延処理を行った後)に、遊技球数記憶領域の遊技球数から発射した機内球710数分(1個)と計数球数とを減算し、減算後の遊技球数と計数球数を含む遊技球数情報を管理装置620に送信(11)するようにしてもよい。
【0355】
遊技球数情報を受信した管理装置620は、更新された遊技球数に関する情報を球数更新指令として球数UI部680に送信する。一方で、球数制御部600は、遊技領域124の残存球の有無によらず、遊技球数情報を管理装置620に送信可能である(10)。
【0356】
尚、図示は省略するが、図20または図22において、機内球710が遊技領域124から全て排出された(入賞検出センサ604S,非入賞検出センサ604Kで検出した後)ことを球数制御部600が検出した後に、計数情報を管理装置620に送信してもよい。更に、遊技領域124から機内球710が全て排出されたことを検出し、入賞があった場合には、すべての入賞口等に対応する賞球の付与(遊技球数への賞球数の加算)があった後に、当該遊技球数から計数球数を減算し、計数情報を管理装置620に送信するものとしてもよい。
<表示画像の切替処理>
【0357】
次に、図23から図25を参照して、球数UI部680の画像表示部656に表示される画像の切替について説明する。
【0358】
図23は、画像表示部656にICカード内の情報が表示されている通常状態のパチンコ機100の概要を示す図であり、図23(a)が正面図であり、図23(b)が画像表示部656の表示画像の一例である。
【0359】
同図(a)を参照して、遊技中のパチンコ機100の装飾図柄表示装置208の例えば、演出表示領域208dには、遊技の状態に応じて、第1副制御部400が生成した第1の画像(例えば背景画像や演出画像)822が表示されている。
【0360】
一方、球数UI部680では、タッチパネル(入力操作部654)に切替ボタン144、返却ボタン142、球貸ボタン140などが表示されるとともに、画像表示部656には、管理装置620が生成した第2の画像820a、820bが表示される。第2の画像820a、820bは例えば、貯球や残高などの遊技球に関する情報を報知するための画像(情報報知画像)である。この状態で切替ボタン144を押下すると、画像表示部656に表示する画像を、第1の画像822に切り替えることができる。
【0361】
図24は、切替後のパチンコ機100の概要を示す図であり、図24(a)が正面図であり、図24(b)が球数UI部680の表示画像の一例である。
【0362】
切替ボタン144を押下すると、例えば管理装置620および第2副制御部500は、表示装置切替部670の切替回路を制御し、管理装置620で生成され、管理装置620から受信していた第2の画像820a、820bに替えて、第1副制御部400で生成され第1副制御部400から受信する第1の画像に切り替える。なおこの例では、第1の画像に第2の画像も合わせて表示している。
【0363】
さらに詳しく説明すると、球数UI部680の画像表示部656には、図14(d)に示す第1副制御部400の画像制御処理と同様の処理によって、通常(遊技開始直後)は、管理装置620から送信される貯球や残高の情報を報知するための第2の画像820a、820bが、例えば、管理装置620の画像制御部で生成され、画像表示部656に表示されている。
【0364】
この場合に切替ボタン144が押下されると、表示装置切替部670の切替回路は、図14(d)のステップS601(画像転送指示)の処理において転送(生成)される画像データを、貯球や残高を報知する第2の画像820a、820bのデータから、第1副制御部400が装飾図柄表示装置208に表示するために生成している第1の画像822のデータ(例えば、背景画像や演出画像のデータ)に切り替える。これにより、画像表示部656には、装飾図柄表示装置208に表示される画像と同じ第1画像822が表示される。このようにすることで、多彩な演出が可能となり、遊技者の興趣を高めることができる。
【0365】
尚、上記の例に限らず、管理装置620が表示装置切替部670の切替回路を制御して、画像を切り替えるものであってもよいし、管理装置620および表示装置切替部670が画像を切り替えるものであってもよいし、表示装置切替部670が画像を切り替えるものであってもよい。また、第2の画像は、第2副制御部500が生成する画像であってもよい。
【0366】
また、この場合であっても同図(b)の如く、入力操作部654や貯球や残高などの情報報知画像は配置を変更するなどして表示してもよい。
【0367】
図25は切替後の画像表示部656の他の形態を示す図である。切替後の画像表示部656は、装飾図柄表示装置208の表示領域(例えば、演出表示領域208d)より大きく、広範囲に表示するものとしてもよい。また、情報報知画像である第2の画像280a、280bや入力操作部654の一部が、装飾図柄表示装置208に表示される画像と同時に表示され、切替ボタン144をタッチする毎に、表示される情報報知画像や入力操作部654が切り替わる構成としてもよい。
【0368】
また、装飾図柄表示装置208と同じ画像ではなく、関連する他の画像を表示してもよい。さらに図示は省略するが、装飾図柄表示装置208に表示される画像ではなく、別途、切替画像用に準備された画像を表示するものとしてもよい。
【0369】
表示装置切替部670は、例えば、入力操作部654から入力された情報A(例えば、再プレイボタン146の操作)を、パチンコ機100の制御部および管理装置620の制御部620aのいずれにも送信する。制御部は、表示装置切替部670が第1副制御部400によって生成された第1の画像822(例えば、演出画像)を球数UI部680の画像表示装置565に表示している場合は、情報Aを用いた処理(例えば、遊技画像の表示)を行う。一方で、表示装置切替部670が管理装置620によって生成された第2の画像820a、820b(例えば、情報報知画像)を、画像表示装置565に表示している場合は、情報Aを用いた処理を無視する構成としてもよい。
【0370】
また、表示装置切替部670が、情報A(例えば、計数ボタン652の操作)を、パチンコ機100の制御部および管理装置620の制御部620aのいずれにも送信するものである場合、表示装置切替部670が第1副制御部400によって生成された第1の画像822(例えば、演出画像)および管理装置620によって生成された第2の画像820a、820b(例えば、情報報知画像)のいずれを球数UI部680の画像表示装置565に表示しているかに関わらず、制御部、情報Aを用いた処理を行うものとしてもよい。
【0371】
あるいは、表示装置切替部670は入力操作部654から入力された情報A(例えば、切替ボタン144の操作)を、パチンコ機100または管理装置620のいずれか一方に送信するものであってもよい。このような構成において、表示装置切替部670は、パチンコ機100の第1副制御部400によって生成された第1の画像820(例えば、演出画像)を球数UI部680の画像表示装置565に表示している場合は、情報Aを制御部に送信する。一方で、表示装置切替部670が管理装置620によって生成された第2の画像820a、820b(例えば、情報報知画像)を、画像表示装置565に表示している場合は、情報Aを管理装置620に送信するものとしてもよい。
【0372】
さらに、表示装置切替部670は、球数UI部680の画像表示部565に表示する画像を、例えば、第1副制御部400で生成された画像、および管理装置620が生成した画像のうちいずれか一方を表示する状態と、いずれの画像も表示する状態とに切り替えて表示可能としてもよい。
<表示切替の変形例>
【0373】
図26を参照して、表示切替の他の実施形態について説明する。図26は、表示切替の他の実施形態のパチンコ機100および管理装置620を説明するための回路ブロック図である。
【0374】
このパチンコ機100では、球数UI部680は、インターフェース部606を介して球数制御部600と双方向に接続し、パチンコ機100は、例えば、前面枠扉106の一部に枠側表示装置682を備えており、枠側表示装置682は、第2副制御部500の画像制御部(VDP534、VRAM536など)と接続する。これ以外の構成は、第1の実施形態と同様であるので、説明は省略する。
【0375】
また、このパチンコ機100では、球数UI部680は、パチンコ機100の第1副制御部400が生成した画像(例えば背景画像や演出画像)を表示することはできず、例えば管理装置620に設けられた画像制御部(VDP、VRAMなど)から送信される画像データを含む情報(管理装置620が生成した報知情報画像など)を表示することが可能である。一方、パチンコ機100の第2副制御部500は、枠側表示装置682に、第1副制御部400が生成した画像(例えば、背景画像や演出画像など)を表示することができる。
【0376】
この場合、球数UI部680の入力操作部654から入力された情報A(例えば計数ボタン652の操作)は、パチンコ機100には送信されず、管理装置620に送信される。
<主制御部と球数制御部のシリアル通信>
【0377】
以下、図27から図40を参照して、パチンコ機100の主制御部300と球数制御部600のシリアル通信について詳細に説明する。なおこれ以降は、図7(b)に示すように減算センサ604Zの位置が、球送り装置616と発射装置622の間にある場合を例に説明する。
【0378】
図27は、パチンコ機100の主制御部300と球数制御部600のシリアル通信を説明するブロック図であり、図27(a)は、シリアル通信回路の概略ブロック図であり、図27(b)は、主制御部300と球数制御部600シリアル通信に関するレジスタを説明するブロック図である。また図27(c)は、主制御部300と球数制御部600シリアル通信の流れを説明するブロック図である。
【0379】
同図(a)を参照して説明すると、パチンコ機100は、主制御部300を構成する主基板156に実装されるなどした主制御部用マイクロコンピュータ760と、球数制御部600を構成する球数制御基板170に実装されるなどした球数制御部用マイクロコンピュータ770を有する。主制御部用マイクロコンピュータ760と、球数制御部用マイクロコンピュータ770は、それぞれシリアル通信回路750、752を内蔵し、信号(例えば、賞球コマンド)をシリアル通信で送受信することができる。
【0380】
同図(b)の如く、シリアル通信回路750,752は、4チャンネル(Ch0、Ch1、Ch2、Ch3)の回路を内蔵している。すべてのチャンネルは機能的に独立しており、送信部と受信部を有して送受信が可能なチャンネルと、送信部のみを有し送信のみが可能なチャンネルがある。主制御部用マイクロコンピュータ760と球数制御部用マイクロコンピュータ770のシリアル通信には、送受信が可能なチャンネル(Ch0)を使用する。また、シリアル通信回路750、752は、FIFOモードで動作する。送信は64バイト、受信は8バイトがFIFOとして使用できる。
【0381】
再び同図(a)を参照し、主制御部用マイクロコンピュータ760は、シリアル通信用のレジスタとして例えば、ステータスレジスタ762、受信データレジスタ764、送信データレジスタ766、その他のレジスタ768を有する。また、球数御部用マイクロコンピュータ770は、シリアル通信用のレジスタとして例えば、ステータスレジスタ772、受信データレジスタ774、送信データレジスタ776、その他のレジスタ778を有する。
【0382】
例えば、主制御部用マイクロコンピュータ760がデータ送信を行う場合、主制御部300のCPU304が主制御部用マイクロコンピュータ760に内蔵されたシリアル通信回路750のステータスレジスタを参照して「送信可能」の場合に送信データレジスタ766にデータをセットする。シリアル通信回路750は送信データレジスタ766にセットされたデータを送信する。
【0383】
例えば、球数制御部用マイクロコンピュータ770がデータ受信を行う場合、受信データが球数制御部用マイクロコンピュータ770に内蔵されたシリアル通信回路752の受信データレジスタ774に書き込まれる。球数制御部600のCPUはステータスレジスタを参照して「受信完了」になった場合に受信データレジスタ774から受信データを読み込む。
【0384】
例えば、球数制御部用マイクロコンピュータ770がデータ送信を行う場合、球数制御部600のCPUが球数制御部用マイクロコンピュータ770に内蔵されたシリアル通信回路752のステータスレジスタを参照して「送信可能」の場合に送信データレジスタ776にデータをセットする。シリアル通信回路752は送信データレジスタ776にセットされたデータを送信する。
【0385】
例えば、主制御部用マイクロコンピュータ760がデータ受信を行う場合、受信データが主制御部用マイクロコンピュータ760に内蔵されたシリアル通信回路750の受信データレジスタ764に書き込まれる。主制御部300のCPUはステータスレジスタを参照して「受信完了」になった場合に受信データレジスタ764から受信データを読み込む。
【0386】
また、シリアル通信回路750、752はデータを送信する場合、シリアル通信回路750、752のステータスレジスタ762、772を参照し送信状態(データ送信完了など)を検出できる。また、シリアル通信回路750、752はデータを受信する場合、ステータスレジスタ762、772を参照し、所定条件が成立している場合に受信データレジスタ764、774からデータを読み込む。具体的には、ステータスレジスタ762、772を参照することで、受信データにノイズ検出されたデータがあるか否か、ブレークコード、フレーミングエラーおよびパリティエラーを含むデータの有無、またはオーバーランの検出の有無などを確認することができる。
【0387】
図27(c)を参照して主制御部300と球数制御部600のシリアル通信処理の流れについて説明する。まず主制御部300から球数制御部600に、第一の通信確認コマンドを送信する(1)。球数制御部600は、主制御部300から第一の通信確認コマンドを受信する(2)。球数制御部600は、第一の通信確認コマンドを受信すると、第二の通信確認コマンド(第一の通信確認コマンドに対する返信のコマンド)を主制御部300に送信する(3)。第二の通信確認コマンドを受信した主制御部300は、球数制御部600に賞球コマンドを送信する(4)。
【0388】
処理(1)?(3)は通信確認中の状態であり、この状態では主制御部300は球数制御部600に対して賞球コマンドを送信しない。処理(3)が完了すると、通信確認が完了となり、この状態で主制御部300は球数制御部600に賞球コマンドを送信する。例えば、ノイズなどの影響も考慮し、処理(1)は複数回行い、処理(3)の通信確認の完了を示すコマンドが所定回数得られない場合に通信エラー状態とする。この通信エラーの状態となった場合も、主制御部300は球数制御部600に賞球コマンドを送信しない。また、エラーを報知するため、外部に接続する装置に信号を出力する。なお、外部に接続する装置への信号出力は行わなくてもよい。
【0389】
処理(1)は、例えば所定回数の割込み処理毎に1回、例えば、主制御部のタイマ割込み処理を25回(50回、・・など)実行するうちに1回、実行する。処理(2)および処理(3)は同一の割込み処理で実行してもよいし、別の割込み処理で実行してもよい。また、処理(3)と同一の割込み処理で、球数制御部600の制御状態を送信してもよい。球数制御部600の制御状態は、変化のある場合のみ(例えば、正常な状態から異常な状態に変化した場合(エラーの場合)など)送信するものとしてもよい。以下、これらの処理の流れについて主制御部300側および球数制御部600側についてそれぞれ説明する。
<主制御部における通信処理>
【0390】
図28を参照して、主制御部300における通信処理の概要を説明する。同図は、図13に示した主制御部タイマ割込み処理で行う処理のうち、主に球数制御部600との通信に関連する処理を抽出したフローチャートである。図28(a)は、入賞口カウンタ更新処理(図13のステップS215)で行う主な処理の流れを示すフローチャートである。図28(b)は、賞球コマンド送信処理(図13のステップS219)内で行うシリアルコマンド管理処理の流れを示すフローチャートであって、図28(c)が、シリアルコマンド受信処理の流れを示すフローチャートであり、図28(d)がシリアルコマンド送信処理の流れを示すフローチャートである。また図28(e)は、賞球数表示処理(図13のステップS216またはステップS220)の流れを示すフローチャートである。
<入賞口カウンタ更新処理>
【0391】
図28(a)を参照して、入賞口カウンタ更新処理の主要な処理の流れを説明する。
【0392】
ステップS1301では、球検出センサ320Bの検出結果に基づき、入賞口226、234や始動口230、232、228に入賞があったか否かを判定する。入賞がある場合は、ステップS1603に進み、そうでない場合は処理を終了する。
【0393】
ステップS1303では、入賞口226、234や始動口230、232、228に入賞があった場合に、その回数(球数制御部600に賞球を要求する回数)を記憶する。すなわち、RAM308に各入賞口ごと、あるいは各始動口ごとに設けた入賞数記憶領域の値を読み出し、1を加算して、元の入賞数記憶領域に設定する。なお、複数の入賞口等で共通の球検出センサ320Bを使用している場合(例えば、賞球数が同じ入賞口等に共通の球検出センサ320Bを設けるような場合)には、各球検出センサ320毎に設けられた入賞数記憶領域の値を読み出し、1を加算して、元の入賞数記憶領域に設定する。
<シリアルコマンド管理処理>
【0394】
図28(b)?(d)を参照して、賞球コマンド送信処理で行うシリアルコマンド管理処理について説明する。
【0395】
図28(b)を参照して、シリアルコマンド管理処理の概要について説明する。
【0396】
ステップS1401では、シリアルコマンド受信処理を行う。ステップS1403ではシリアルコマンド送信処理を行う。既述の如く、シリアル通信回路750の内蔵レジスタ(受信データレジスタ764、送信データレジスタ766)にデータをセットすることによりデータが送受信される。
【0397】
図28(c)を参照して、シリアルコマンド受信処理の概要について説明する。
【0398】
ステップS1501では、球数制御部600から通信確認コマンドを受信しているか否かを判定する。通信確認コマンドを受信している場合は、ステップS1503に進み、そうでない場合は、処理を終了する。ステップS1503では、通信確認を完了する設定を行い、ステップS1505では通信エラーを解除する。
【0399】
図28(d)を参照して、シリアルコマンド送信処理の概要について説明する。
【0400】
ステップS1601では、通信確認コマンドの送信条件が成立しているか否かを判定する。送信条件が成立している場合は、ステップS1603に進み、そうでない場合は、ステップS1611に進む。
【0401】
ステップS1603では、通信確認コマンドをセットする。ステップS1605では、通信確認中の設定を行う。
【0402】
ステップS1607では、通信エラー条件が成立しているか否か判定し、条件が成立している場合は、ステップS1609に進み、そうでない場合は処理を終了する。ステップS1609では、通信エラーをセットする。
【0403】
ステップS1611では、賞球コマンドの送信条件が成立しているか否かを判定し、成立している場合はステップS1613に進み、そうでない場合は処理を終了する。
【0404】
ステップS1613では、所定の入賞口カウンタのデータ更新を行い、ステップS1615では賞球コマンドのセットを行う。
【0405】
図28(e)を参照して、賞球数表示処理の概要について説明する。
【0406】
賞球数表示処理は、各入賞口等に入賞した場合に、その賞球数を賞球数表示部690に表示する。すなわち、ステップS1710では、所定の入賞口カウンタに基づき、当該入賞口等に対応する賞球数を表示する。賞球数表示部690には、主制御部300から球数制御部600に賞球コマンドを送信する以前の賞球数が表示される。
【0407】
図29から図33を参照して、図28に示した各処理について詳細に説明する。
【0408】
まず図29は、図28(a)の入賞口カウンタ更新処理の詳細について説明する図であり、図29(a)は、図28(a)のフローチャートの再掲であり、図29(b)は主制御部300のRAMに設けられた入賞口カウンタの概略図である。
【0409】
図29(a)を参照して、入賞口カウンタ更新処理のステップS1301において、入賞口等の入賞がありと判定された場合、ステップS1303において、所定の入賞口カウンタにデータがセットされる。入賞口カウンタは、例えば図29(b)の如く、主制御部300のRAM308に各入賞口ごと、あるいは各始動口ごとに設けた例えば1バイトの入賞数記憶領域である。これにより0?255までの入賞数(入賞があった回数)を記憶することができる。なお、以下の説明で参照する図面において、入賞数記憶領域に記憶される入賞数を示す場合、これらは2進数表示である。
【0410】
複数の入賞口等で共通の球検出センサ320Bを使用している場合には、入賞数記憶領域は、各球検出センサ320毎に設けられてもよい。例えば本実施形態では、賞球数が同じ一般入賞口226C、226Dを1つの球検出センサ320Eで検出している。したがってここでは、これらの入賞口カウンタとして1つの入賞数記憶領域を使用する場合を例に説明する。具体的には、RAM308には、可変入賞口用入賞数記憶領域780、第1特図始動口用入賞数記憶領域782、第2特図始動口用入賞数記憶領域784、一般入賞口用入賞数記憶領域786が設けられている。そして、図29(a)のステップS1301で可変入賞口234に入賞があったと判定された場合(球検出センサ320Gで入賞が検出された場合)に、可変入賞口用入賞数記憶領域の値に1が加算される。同様に、第1特図始動口230に入賞があった場合(球検出センサ320Jで入賞検出された場合)に第1特図始動口用入賞数記憶領域782に1が加算され、第2特図始動口232に入賞があった場合(球検出センサ320Hで入賞検出された場合)に第2特図始動口用入賞数記憶領域784の値に1が加算され、一般入賞口226(226C,226Dのいずれか)に入賞があった場合(球検出センサ320Eで入賞検出された場合)に一般入賞口用入賞数記憶領域786に1が加算される。
【0411】
後に詳述するが、これらの入賞口カウンタは、入賞と判定される毎にそれぞれの領域に加算されていくが、主制御部300から球数制御部600に賞球コマンドの送信があった場合は、減算される。例えば可変入賞口234に入賞があり、可変入賞口用入賞数記憶領域780に「1」が記憶されていた場合、更に可変入賞口234に入賞があった場合は、可変入賞口用入賞数記憶領域780の値「1」に1が加算されて「2」が記憶される。一方、可変入賞口用入賞数記憶領域780に「1」が記憶されていた場合に、これに対応する賞球コマンドを送信した場合は、可変入賞口用入賞数記憶領域780は「0」に更新される。
【0412】
例えば、可変入賞口234の入賞を検出する球検出センサ320Gと、第1特図始動口230の入賞を検出する球検出センサ320Jが個別に設けられているため、これらが(ほぼ)同時に入賞を検出した場合は、複数の入賞数記憶領域(可変入賞口用入賞数記憶領域780および第1特図始動口用入賞数記憶領域782)のデータが一度に更新される場合がある。
【0413】
また上述したように、各々の球検出センサ320Bにおいて過去3回分の検出信号の有無の情報が入賞判定パターン情報と一致するか否かを判定して入賞と判定する場合、同一の入賞口等の入賞数記憶領域(例えば、第1特図始動口用入賞数記憶領域782)の値は1ずつ加算され、例えば1回の更新で入賞数が「0」→「2」になることはない。
【0414】
一方で、例えば賞球数が同数の入賞口が複数あり(例えば、本実施形態の一般入賞口226(226C、226D)や、遊技盤200の背面側に設けられるなどして第2特図始動口232が複数存在する場合など)、それぞれに球検出センサ320Bが設けられているが、入賞数記憶領域としては共通の場合、それらの入賞口にほぼ同時に入賞があった場合は、その共通の入賞数記憶領域の値が一度に入賞数の合計値(例えば入賞数「0」→「2」)に更新される場合がある。
【0415】
図30は、図28(b)(c)に示すシリアルコマンド管理処理のシリアルコマンド受信処理の詳細について説明する図であり、図30(a)は、図28(b)のフローチャートの再掲であり、図30(b)はシリアルコマンド受信処理の主要な処理を示す詳細なフローチャートである。
【0416】
シリアル通信回路750、752は既述の如くFIFOモードで動作可能であり、図30(a)に示すシリアルコマンド管理処理において、通信設定レジスタを所定の値(例えば「1」)に設定することで、FIFOモードが選択される。
【0417】
図30(b)を参照して、シリアルコマンド受信処理では、まずステップS15001において、球数制御部600から通信確認コマンドの受信の有無を判定する。受信がある場合は、ステップS15003に進み、そうでない場合は、ステップS15009に進む。
【0418】
ステップS15003では、球数制御部600から通信確認コマンドを受信した場合に各種データを初期化する。賞球コマンドの送信の可否を示すシリアルコマンドステータスフラグは例えば「0」の場合は賞球コマンドの送信可能状態を示し、「1」の場合は、賞球コマンドの送信不可状態を示す。ここでは、シリアルコマンドステータスフラグに「0」をセットする。
【0419】
ステップS15005では、通信確認コマンド送信カウンタを初期化する。通信確認コマンド送信カウンタは、主制御部300から球数制御部600に通信確認コマンド(第一の通信確認コマンド(図27(c)参照))を送信する場合、例えば、複数回連続で当該コマンドを送信しても球数制御部600から通信確認コマンド(第二の通信確認コマンド)が送信されない場合に、通信エラーとするためのカウンタである。ここでは一例として10回連続で球数制御部600から通信確認コマンドが送信されなかった場合に通信エラーとするため、通信確認コマンド送信カウンタに「10」をセットする。
【0420】
ステップS15007では、シリアルコマンド通信エラーフラグを初期化(解除)する。シリアルコマンド通信エラーフラグは、球数制御部600から通信確認の返信(第二の通信確認コマンド)が無い通信エラー状態であることを示すものであり、例えば「1」の場合は通信エラー状態であり、「0」の場合は正常であることを示す。ここでは、シリアルコマンド通信エラーフラグに「0」をセットする。なお、本ステップにおいて、球数制御部600からの通信確認コマンド(第二の通信確認コマンド)を受信した場合は、エラー状態の解除(シリアルコマンド通信エラーフラグの初期化)としているが、エラー状態の解除方法は、これに限らない。例えば、パチンコ機100の電源がオフされた場合や、数制御部600からの通信確認コマンド(第二の通信確認コマンド)を受信し、且つ所定時間(例えば30秒)が経過した後に解除、などとしてもよい。
【0421】
ステップS15009では、その他のシリアルコマンド受信処理を行う。
【0422】
図31は、シリアルコマンド送信処理について説明する図であり、図31(a)は、図28(d)に示すシリアルコマンド管理処理のシリアルコマンド送信処理の主要な処理を示す詳細なフローチャートであり、図31(b)(c)は入賞口カウンタの概略図である。
【0423】
ステップS16001では、通信確認コマンド送信タイマを更新する。通信確認コマンド送信タイマは、主制御部300から球数制御部600に出力する通信確認コマンドの送信タイミングを管理するタイマであり、ここではすなわち、通信確認コマンド送信タイマから1を減算する。後述するが、通信確認コマンド送信タイマには初期値として例えば「25」がセットされており、主制御部300のタイマ割込み処理が実行される毎に、通信確認コマンド送信タイマが本ステップにより減算され、当該タイマが「0」になった場合に主制御部300から球数制御部600に通信確認コマンドが送信される。
【0424】
ステップS16003では、通信確認コマンド送信タイマの値を判定する。通信確認コマンド送信タイマが「0」の場合はステップS16005へ進み、そうでない場合は、ステップS16019へ進む。
【0425】
ステップS16005は、通信確認コマンド送信タイマに初期値を設定する。本実施形態では一例として、100msに1回のタイミングで、主制御部300から球数制御部600に通信確認コマンドを送信している。また、主制御部300のタイマ割込み処理は例えば4ms毎に実行されるものとすると、25回の割込み処理に1回のタイミングで通信確認コマンドの送信を行うことになる。したがって、本ステップでは、通信確認コマンド送信タイマの初期値として「25」をセットする。通信確認コマンド送信タイマは上述のステップS16001において、主制御部300のタイマ割込み処理毎に「1」が減算され、通信確認コマンド送信タイマが「0」になると(100msに1回のタイミングで)通信確認コマンドを送信する状態となる。
【0426】
ステップS16007では、シリアルコマンドステータスフラグに「1」をセットする。シリアルコマンドステータスは、賞球コマンドの送信可能状態であるか否かを示すものであり、シリアルコマンドステータスフラグに「1」がセットされている場合は、賞球コマンドを送信しない状態であり、「0」がセットされている場合は、賞球コマンド送信可能状態である。
【0427】
ステップS16009では、通信確認コマンド(第一の通信確認コマンド)をセットする。主制御部300のCPU304が主制御部用マイクロコンピュータ760に内蔵されたシリアル通信回路750の送信データレジスタ766に通信確認コマンド(第一の通信確認コマンド)をセットすると、シリアル通信回路750は送信データレジスタ766にセットされた通信確認コマンドを球数制御部600(球数制御部用マイクロコンピュータ770)に送信する。
【0428】
ステップS16011では、通信確認コマンド送信カウンタを更新する。本ステップにおいて通信確認コマンド送信カウンタから「1」を減ずる。
【0429】
ステップS16013では、通信確認コマンド送信カウンタの値を判定する。通信確認コマンド送信カウンタの値が「0」の場合は、ステップS16015へ進み、そうでない場合は、ステップS16025へ進む。本ステップは、主制御部300から球数制御部600に通信確認コマンドを10回連続で送信し、球数制御部600から返信の通信確認コマンドが送信されない場合、通信エラーとするための判定処理である。
【0430】
ステップS16015では、通信確認コマンド送信カウンタを初期化する。すなわち通信確認コマンド送信カウンタにここでは「10」をセットする。
【0431】
ステップS16017では、シリアルコマンド通信エラーフラグを設定する。シリアルコマンド通信エラーフラグは、球数制御部600からの通信コマンドの返信が無い通信エラーの状態であることを示すフラグであり、この場合「1」をセットする。
【0432】
ステップS16019では、賞球コマンドの送信条件が成立しているか否かを判定する。条件が成立している場合はステップS16021に進み、そうでない場合は、ステップS16025に進む。ここでの賞球コマンドの送信条件は、ステップS16003の判定の結果通信確認コマンド送信タイマが「0」以外、すなわち、通信確認コマンドを送信するタイミングではなく、且つ、各入賞口等に対応して設けられた球検出センサ320Bで、機内球710が通過したと判定された場合である。あるいは送信条件は、入賞数記憶領域の値を上から順に判定し、この領域にデータがセットされている場合(「0」以外の値の場合)に成立するとしてもよい。
【0433】
ステップS16021では、所定の入賞口カウンタのデータを更新する。入賞記憶領域の値を上から順に判定し、ステップS16019において、各入賞口等のいずれかに入賞があった場合(当該入賞に対応する入賞数記憶領域に記憶されている値が「0」以外の場合)、その値から「1」を減算し、元の入賞数記憶領域に記憶する。
【0434】
ステップS16023では、減算した入賞数記憶領域に対応する賞球コマンドセットする。主制御部300のCPU304が主制御部用マイクロコンピュータ760に内蔵されたシリアル通信回路750の送信データレジスタ766に賞球コマンドをセットすると、シリアル通信回路750は送信データレジスタ766にセットされた通信確認コマンドを球数制御部600(球数制御部用マイクロコンピュータ770)に送信する。
【0435】
ステップS16025では、その他のシリアルコマンド送信処理を行う。
【0436】
図31(b)(c)を参照して、具体的に説明する。図31(b)は、ステップS16019の判定後の各入賞数記憶領域に記憶される値の一例であり、図31(c)がステップS16021のデータ更新後の各入賞数記憶領域に記憶される値の一例である。
【0437】
まず、S16019の判定後では、一般入賞口用入賞数記憶領域786と、第1特図始動口用入賞数記憶領域782の最下位ビットの値がそれぞれ「1」であり、それ以外の領域がすべて「0」である(同図(b))。この場合、例えば、第1特図始動口230の入賞によりステップS16019で賞球コマンド送信条件が成立した場合、第1特図始動口用入賞数記憶領域782の値から「1」を減算する。すなわち、第1特図始動口230の入賞数は「0」となり、第1特図始動口用入賞数記憶領域782の最下位ビットに「0」(同図(c))。
【0438】
主制御部300は球数制御部600と通信確認を行った後に賞球コマンドを送信しており、その間にも各入賞口等に入賞が発生する場合がある。特に、主制御部300の1回の割込みで1つの賞球コマンドを送信する場合には、各入賞口等に対応する入賞数記憶領域には、主制御部300にて入賞と判定され、球数制御部600へ賞球コマンドとして送信する前の入賞数が蓄積されていく。
【0439】
ステップS16023では、賞球コマンドをセットする。主制御部300のCPU304が主制御部用マイクロコンピュータ760に内蔵されたシリアル通信回路750の送信データレジスタ766に賞球コマンドをセットすると、シリアル通信回路750は送信データレジスタ766にセットされた賞球コマンドを球数制御部600(球数制御部用マイクロコンピュータ770)に送信する。
【0440】
このように、本実施形態のシリアルコマンド送信処理では、主制御部300から通信確認コマンドを送信する場合は賞球コマンドを送信せず、主制御部300から賞球コマンドを送信する場合は通信確認コマンドを送信しない構成である。この構成により、所定の場合には、遊技者が球発射ハンドル134を操作した場合であっても、機内球710の発射のタイミングを遅らせることが可能となるが、これについては後述する。
【0441】
図32を参照して、図31のステップS16021およびステップS16023で示した、入賞数記憶領域の更新処理と、賞球コマンドセット処理の具体例について説明する。
【0442】
図32(a)?(c)は、各入賞数記憶領域の一例を示す概要図であり、同図(a)が、図31(c)に続く主制御部300のタイマ割込み処理の1割込み目の各入賞数記憶領域の状態を示し、同図(b)が主制御部300のタイマ割込み処理の2割込み目の各入賞数記憶領域の状態を示し、同図(c)が主制御部300のタイマ割込み処理の3割込み目の各入賞数記憶領域の状態を示す。また同図(d)は、セットされる賞球コマンドの一例を示す図である。なお、以下の説明においては、10進数の数値はかぎ括弧「N」で表記し、図面において各入賞数記憶領域に2進数で示される数値は大括弧[n]で表記する。
【0443】
図31(c)において、第1特図始動口用入賞数記憶領域の下位2ビットに[10](入賞数「2」)が記憶され、一般入賞口用入賞数記憶領域の最下位ビットに[1](入賞数「1」)が記憶されている状態の後の1割込み目で、ステップS16023の賞球コマンドセット処理が実行されると、主制御部300は例えば、入賞数記憶領域のアドレスの小さい番地から昇順に(図では上から下に)移動して値を読出し、「0」以外の入賞数記憶領域のデータを更新(減算)するとともに、当該入賞口に対応する賞球コマンドを送信データレジスタにセットする。つまり図32(a)の場合、可変入賞口用入賞数記憶領域の値は「0」であり、第1特図始動口用入賞数記憶領域の値「2」(下位2ビットは「10」)であるので、これから1を減算し、入賞数記憶領域の値を「1」(下位2ビットは「01」)に更新する。そして、同図(d)の第1特図始動口に対応する賞球コマンド(03H)を、送信データレジスタにセットする。これにより、球数制御部600に賞球コマンド(03H)が送信される。
【0444】
引き続き、2割込み目でステップS16023の賞球コマンドセット処理が実行されると、主制御部300は例えば、入賞数記憶領域のアドレスを昇順に移動して、「0」以外の入賞数記憶領域、すなわち第1特図始動口用入賞数記憶領域の値「1」(下位2ビットは「01」)から1を減算し、入賞数記憶領域の値を「0」(下位2ビットは「00」)に更新する。そして、同図(d)の第1特図始動口に対応する賞球コマンド(03H)を、送信データレジスタにセットする。これにより、球数制御部600に賞球コマンド(03H)が送信される。
【0445】
更に引き続き、3割込み目でステップS16023の賞球コマンドセット処理が実行されると、主制御部300は例えば、入賞数記憶領域のアドレスを昇順に移動して、「0」以外の入賞数記憶領域、すなわち一般入賞口用入賞数記憶領域の値「1」(下位2ビットは「01」)から「1」を減算し、入賞数記憶領域の値を「0」(下位2ビットは「00」)に更新する。そして、同図(d)の一般入賞口に対応する賞球コマンド(0AH)を、送信データレジスタにセットする。これにより、球数制御部600に賞球コマンド(0AH)が送信される。
【0446】
このように、1つの賞球コマンドを送信することによって、入賞数記憶領域の入賞数が減算されていく。
【0447】
尚、ここでは主制御部300の1回のタイマ割込み処理で1つの賞球コマンドを送信している。しかし、これに限らず、同一のタイマ割込み処理で複数の(全ての)入賞数記憶領域に対応する賞球コマンドを送信するようにしてもよいし、入賞数が「2」以上の場合、値が所定数(例えば255)になるまで繰り返し合算し、1回の賞球コマンドとして送信してもよい。合算する場合は、各入賞口毎に行うものであってもよいし、全ての入賞口の入賞数を合算するものであってもよい。また一方で、主制御部300の1回のタイマ割込み処理で1つの賞球コマンドのみを送信するものとしてもよい。
【0448】
また、入賞数記憶領域の配置は、賞球数が大きい入賞口に対応するものが小さい番地のアドレス(図では上)になるように配置してもよいし、抽選にかかるもの(例えば第1または第2特図始動口など)が小さい番地になるように配置してもよい。
【0449】
なお、ここでは主制御部300から球数制御部600に送信する賞球コマンドの形式は、賞球数の個数情報そのものを送信する個数形式でもよいし、個数情報とは異なる識別子を送信するコマンド形式のいずれであってもよい。また、1回の割り込み処理で送信する方法として、賞球コマンドを1つずつ送信する方法の他、送信のタイミングで蓄積されているすべての賞球コマンドを送信する方法、あるいは入賞に対応する賞球数を(個数情報に変換した上で)合算値を送信する方法などがある。この場合の合算値は入賞数記憶領域の大きさに応じて決定され、ここでは例えば255以内である。また、賞球コマンドの形式と送信方法の組合せは種々に組合せ可能である。
【0450】
図33を参照して、主制御部タイマ割込み処理における賞球数表示処理(図13のステップS216、S220)について説明する。同図(a)は、図28(e)の再掲であり、同図(b)は、賞球コマンド送信前の各入賞数記憶領域の状態を示し、同図(c)は、1つの賞球コマンド送信後の各入賞数記憶領域の状態を示す。
【0451】
賞球数表示処理では、主制御部300において、球数制御部600に賞球コマンド送信前の賞球がある場合、その賞球数(複数ある場合はそれらの合計値)を賞球数表示部690に表示する。
【0452】
ここでは一例として、図13に示す主制御部タイマ割込み処理の賞球コマンド送信処理(ステップS219)の前後で2回の賞球数表示処理を行っている。すなわち第1の賞球数表示処理(ステップS216)は入賞口カウンタ更新処理(ステップS215)と賞球コマンド送信処理(ステップS219)の間で行い、第2の賞球数表示処理(ステップS220)は賞球コマンド送信処理(ステップS219)以降に行う。賞球数表示処理の処理内容は同様であって、図33(a)の如く、所定の入賞カウンタに基づいて、賞球数を表示する。
【0453】
図33(b)(c)を参照して具体的な入賞カウンタ(入賞数記憶領域)の一例を用いて説明する。
【0454】
同図(b)では、第1特図始動口用入賞数記憶領域782の下位2ビットに[10](入賞数「2」)が記憶され、一般入賞口用入賞数記憶領域786の最下位ビットに[1](入賞数「1」)が記憶されている。これらは球数制御部600に賞球の払い出しを要求する前(すなわち賞球コマンド送信前)の入賞数が記憶であり、遊技球数には加算されていない賞球数である。
【0455】
例えば、第1の賞球数表示処理(図13、ステップS216)において、主制御部300は例えば、入賞数記憶領域のアドレスの小さい番地から昇順に(図では上から下に)移動して値を読出し、「0」以外の入賞数記憶領域の値を読出し、入賞数記憶領域に対応する賞球数を例えば、図32(d)の賞球コマンドに対応付けられた賞球数に基づき合算し、賞球数表示部690に表示する。
【0456】
この場合は、第1特図始動口用入賞数記憶領域782に入賞数「2」が記憶されているので、主制御部300は、第1特図始動口230の入賞による賞球数「6」(=賞球数「3」×入賞数「2」)と、一般入賞口226の入賞による賞球数「10」(=賞球数「10」×入賞数「1」)の合算、すなわち賞球数「16」を賞球数表示部690に表示する。またこの場合遊技球数が「100」であるとすると球数制御部600は、球数表示部640に「100」を表示する。
【0457】
その後、賞球コマンド送信処理(図13、ステップS219)において、主制御部300は球数制御部600に賞球コマンドを送信する。図33(c)を参照して、この場合主制御部300は、各入賞数記憶領域の値に基づき、第1特図始動口230入賞による賞球コマンドを送信し、第1特図始動口用入賞数記憶領域の入賞数を「1」に更新する。
【0458】
その後、第2の賞球数表示処理(図13、ステップS220)において、主制御部300は、第1特図始動口用入賞数記憶領域782に入賞数「1」が記憶されているので、第1特図始動口230の入賞による賞球数「3」(=賞球数「3」×入賞数「1」)と、一般入賞口226の入賞による賞球数「10」(=賞球数「10」×入賞数「1」)の合算、すなわち賞球数「13」を賞球数表示部690に表示する。またこの場合、第1特図始動口230入賞の賞球コマンドを受信した球数制御部600は、遊技球数「100」に賞球数「3」を加算し、球数表示部640に「103」を表示する。
【0459】
このように、例えば主制御部タイマ割込み処理のステップS216からステップS220までの間に新たな入賞が無い場合には、賞球コマンド送信処理(ステップS219)後に賞球数表示部690に表示される賞球数は、第1の賞球数表示処理で賞球数表示部690に表示される賞球数から、球数制御部600に送信された賞球コマンドの賞球数の分を減じた値となる。これにより、賞球コマンドの送信によって賞球数表示部690の数値が減少したことを遊技者に視認させることができる場合がある。
【0460】
なお、賞球数表示処理(ステップS216およびステップ220)を実行する前に各入賞口等に入賞があり、それに対応する入賞数記憶領域の値が更新されていた場合は、主制御部300は、賞球数表示処理(ステップS216およびステップ220)において各入賞口等の賞球数を合算し、それを賞球表示部690に表示する。
【0461】
ここでは、入賞口カウンタ更新処理(ステップS215)と入賞受付処理(ステップS217)の間に第1の賞球数表示処理(ステップS216)を行い、賞球コマンド送信処理(ステップS219)と普図状態更新処理(ステップS221)の間に第2の賞球数表示処理(ステップS220)を行う場合を例に説明したが、第1および第2の賞球数表示処理の実行手順はこの位置に限らない。すなわち、第1の賞球数表示処理(ステップS216)は、入賞口カウンタ更新処理(ステップS215)と賞球コマンド送信処理(ステップS219)の間であればよく、入賞受付処理(ステップS217)を先に実行するものであってもよい。
【0462】
また、第2の賞球数表示処理(ステップS220)は、賞球コマンド送信処理(ステップS219)の後であれば、例えば普図状態更新処理(ステップS221)以降に実行するものであってもよい。
【0463】
また賞球表示処理は、ステップS216またはステップ220のいずれか一方で実行するものとしてもよい。例えば、ステップS216のみで行った場合は、賞球表示部690と球数表示部640の表示態様は以下の通りとなる。賞球数表示処理実行前に各入賞記憶領域の状態が図33(b)の状態であったとすると、賞球表示部690には「16」が表示され、球数表示部640に例えば「100」が表示される。そして賞球コマンド送信処理(ステップS219)が実行されると、球数表示部640のみ表示が「103」に更新され、賞球表示部690の表示は「16」が維持される。そして次回の割込み処理までに入賞が無い場合には、各入賞記憶領域の状態が図33(c)の状態となり、ステップS216において賞球表示部690は「13」に表示が更新される。この時球数表示部640は「103」の表示が維持される。
【0464】
また例えば、ステップS220のみで行った場合は、賞球表示部690と球数表示部640の表示態様は以下の通りとなる。賞球コマンド送信処理(ステップS219)実行時に各入賞記憶領域の状態が図33(b)の状態であったとすると、賞球表示部690には「16」が表示され、球数表示部640に例えば「100」が表示される。そして賞球コマンド送信処理(ステップS219)が実行され、賞球表示処理が実行されると、賞球表示部690は「13」に表示が更新され、球数表示部640の表示が「103」に更新される(同図(c))。その間に例えば、可変入賞口234に入賞があった場合、入賞口カウンタ更新処理(ステップS215)において可変入賞口用入賞数記憶領域780の値は「1」に更新される。例えばこれが賞球コマンド送信処理で送信できるタイミングであった場合、賞球数表示処理では、一般入賞口用入賞数記憶領域786の値に基づき、賞球表示部690に「10」を表示する。球数表示部640の表示は、可変入賞口234の賞球数が加算され、「118」となる。つまりこのようなタイミングの場合には、可変入賞口234の賞球数は、賞球表示部690に反映されない。なお、可変入賞口234に入賞したことによる賞球コマンドが賞球コマンド送信処理で送信できるタイミングでない場合には、賞球数表示処理では、可変入賞口234の賞球数も合算し、賞球表示部690に「25」を表示する。
【0465】
また、同図(b)から同図(c)に状態が変化する場合において、賞球コマンドを送信した割込み処理と同一の割込み処理内で減算センサ604Zで機内球710の通過を検出した場合に、賞球表示処理が実行されると、賞球表示部690は「13」に表示が更新され、遊技球数が「1」減算されて球数表示部640の表示は「102」に更新される。
【0466】
尚、上記の説明では入賞数記憶領域は1バイトで構成する場合を例に説明したが、2バイトの領域で構成してもよい。
<球数制御部における通信処理>
【0467】
図34を参照して、球数制御部600における通信処理の概要を説明する。同図は、図17に示した球数制御部割込み処理で行う処理のうち、主に主制御部300との通信に関連する処理を抽出したフローチャートである。図34(a)は、エラー管理処理(図17のステップS1205)で行う主制御通信エラー管理処理の流れを示すフローチャートである。同図(b)は、遊技球数設定処理(図17のステップS1211)内で行う遊技球数減算処理の流れを示すフローチャートであり、同図(c)が、遊技球数設定処理(図17のステップS1211)内で行う遊技球数表示処理の流れを示すフローチャートである。
【0468】
図34(a)を参照して、主制御通信エラー管理処理では、主制御部300から送信される通信確認コマンドを、球数制御部600で所定期間受信しない場合に通信エラーと判定する。
【0469】
ステップS1701では、主制御通信監視タイマから1を減算する。主制御通信監視タイマは、主制御部300から通信コマンドを受信していない期間を監視するタイマである。本実施形態は一例として球数制御部割込み処理(図17)を2ms周期で実行するものとし、主制御部300からの通信コマンドを受信していない場合にエラーにする所定の期間を例えば1000msとする。主制御通信監視タイマには後述する他の処理で初期値として「500(1000ms/2ms)」がセットされている。
【0470】
ステップS1703では、主制御通信監視タイマの値を判定し、「0」の場合はステップS1705に進み、そうでない場合は処理を終了する。主制御通信監視タイマが「0」とは、主制御部300から通信コマンドを受信していない期間が1000ms経過した場合である。
【0471】
ステップS1705では、主制御通信エラーフラグに「1」をセットする。主制御通信エラーフラグは、主制御通信エラー状態を設定するフラグであり、例えば「1」の場合が異常であり、「0」の場合が正常である。
【0472】
図34(b)を参照して、遊技球数減算処理の流れについて説明する。遊技球数減算処理は、機内球710の発射に対応して、遊技者の遊技球数(機内球710の電子情報上の発射可能球数)を減算する処理であり、上述した遊技球数設定処理(図17のステップS1211)の一部として実行される処理である。
【0473】
ステップS1801では、減算条件が成立しているか否を判断し、減算条件が成立している場合はステップS1803に進み、減算条件が成立していない場合は処理を終了する。減算条件は例えば、減算センサ604Zで機内球710の通過を検出した場合である。また、減算センサ604Zに限らず、遊技媒体経路610の各種センサ(例えば、球磨き装置612の球磨き装置入口センサ、揚上装置614の揚上装置入口センサ、球送り装置616の球送り装置入口センサなど)で機内球710の通過を検出した場合としてもよい。
【0474】
ステップS1803では、機内球710の1個の発射により遊技球数を1個消費したとして、遊技球数から「1」を減算する。同図(b)では、機内球710の発射による遊技球数の減算のフローを抽出しているが、本実施形態では、上述したように遊技球数設定処理において賞球数、貸球数および再プレイ球数の加算と、計数球数の減算と併せて、機内球710の発射による遊技球数の消費数(遊技領域124への機内球710の投入数=イン球数)を減算している。このため、本ステップでは、遊技領域124に投入された球数が記憶されているRAMのイン球数記憶領域の値を読出し、これに「1」を加算して元のイン球数記憶領域に記憶する。これにより、機内球710の1個の発射に対応して遊技球数の1個の減算を行うものとする。
【0475】
図34(c)は、遊技球数表示処理を行う。遊技球数表示処理は、遊技球数減算処理において減算(更新)された遊技球数を球数表示部640に表示する処理であり、上述した遊技球数設定処理(図17のステップS1211)の一部として実行される処理である。
【0476】
ステップS1901では、同図(b)の遊技球数減算処理、および遊技球数設定処理の他の処理に基づき、更新後の遊技球数を球数表示部640に表示する。すなわち、遊技球数から、遊技球数減算処理におけるイン球数を減算するだけでなく、貸球数、賞球数および再プレイ球数の加算と計数球数の減算を行い、更新後の遊技球数を球数表示部640に表示する。
【0477】
図35を参照して、球数制御部割込み処理(図17)にて実行されるシリアルコマンド管理処理(ステップS1204)について説明する。図35(a)は、シリアルコマンド管理処理の概要を示すフローチャートであり、同図(b)はシリアルコマンド受信処理における主な処理の流れを示すフローチャートであり、同図(c)はシリアルコマンド送信処理における主な処理の流れを説明するフローチャートである。
【0478】
図35(a)を参照して、シリアルコマンド管理処理の概要について説明する。
【0479】
ステップS2001では、シリアルコマンド受信処理を行う。ステップS2003ではシリアルコマンド送信処理を行う。既述の如く、シリアル通信回路752の内蔵レジスタ(受信データレジスタ774、送信データレジスタ776)にデータをセットすることによりデータが送受信される。
【0480】
図35(b)を参照して、シリアルコマンド受信処理の概要について説明する。
【0481】
ステップS2101では、主制御部300から通信確認コマンドを受信しているか否かを判定する。通信確認コマンドを受信している場合は、ステップS2103に進み、そうでない場合は、ステップS2109に進む。
【0482】
ステップS2103では、主制御通信監視タイマを初期化する。主制御通信監視タイマは図34(a)の主制御通信エラー管理処理で説明したとおり、今回、主制御部300から通信確認コマンドを受信してから次回の通信確認コマンドを受信するまでの期間が所定期間(例えば1000ms)を超えた場合に主制御通信エラーを設定するためのタイマであり、球数制御部割込み処理が例えば2ms周期で行われている場合には、当該タイマに初期値として「500」をセットする。
【0483】
ステップS2105では、主制御通信エラーフラグを初期化する。ここでは当該エラーフラグに「0」をセットする。
【0484】
ステップS2107では、通信確認コマンド受信フラグを設定する。通信確認コマンド受信フラグは、主制御部300に通信確認コマンドを受信したことを通知(返信)するフラグであり、例えば「1」(またはオン)が主制御部300に返信することを意味し、「0」(またはオフ)が返信しないことを意味する。ここでは、通信確認コマンド受信フラグに「1」をセットする。
【0485】
ステップS2109では、主制御部300から賞球コマンドを受信しているか否かを判定する。受信している場合は、ステップS2111に進み、そうでない場合はステップS2113に進む。
【0486】
ステップS2111では、受信した賞球コマンドに基づき、賞球数をRAMの賞球数記憶領域の値に加算する。つまり賞球数記憶領域に記憶されている値を読出し、賞球数を加算し元の賞球数記憶領域に記憶する。これにより、球数制御部割込み処理(図17)の遊技球数設定処理(ステップS1211)において、貸球数および再プレイ球数の加算、イン球数および計数球数の減算と併せて賞球数が加算され、遊技球数が更新される。
【0487】
ステップS2113では、その他シリアルコマンドの受信処理を行う。
【0488】
なお、主制御部300から賞球コマンドが球数制御部600に送信され、球数制御部600がこれを受信した場合に、球数制御部600は賞球コマンドを受信したことを報知するコマンド(賞球コマンドに対する返信コマンド)を主制御部300に送信してもよい。その場合、同図(b)のステップS2113において、当該返信コマンドを送信する。あるいは当該返信コマンドを送信するためのフラグを設定し、シリアルコマンド送信処理の通信確認コマンドと共に、当該返信コマンドを主制御部300に送信してもよい。
【0489】
この場合、主制御部タイマ割込み処理で行う賞球数表示処理は、球数制御部600から賞球コマンド受信の返信コマンドが主制御部300に送信された場合に表示を更新するものであってもよい。
【0490】
図35(c)を参照して、シリアルコマンド送信処理の概要について説明する。
【0491】
ステップS2201では、通信確認コマンド受信フラグを判定する。通信確認コマンド受信フラグが「1」(オン)の場合は、ステップS2203に進み、そうでない場合は、処理を終了する。
【0492】
ステップS2203では、通信確認コマンド(第二の通信確認コマンド)をセットする。球数制御部600のCPUが球数制御部用マイクロコンピュータ770に内蔵されたシリアル通信回路752の送信データレジスタ776に賞球コマンドをセットすると、シリアル通信回路752は送信データレジスタ776にセットされた通信確認コマンドを主制御部300(主制御部用マイクロコンピュータ760)に送信する。これにより、主制御部300からの通信確認コマンドの受信の報知(返信)を行う。
【0493】
ステップS2205では、通信確認コマンド受信フラグに「0」(またはオフ)をセットする。
【0494】
ステップS2207では、その他シリアルコマンド送信処理を行う。その他シリアルコマンド送信処理では、通信確認コマンド以外の情報(たとえばエラー情報)などを送信する。ここでは、通信確認コマンド受信の返信(第二の通信確認コマンド)を球数制御部600から主制御部300に送信する場合、これと合わせて、それ以外のエラー情報を送信する。このような処理が可能となるのは、主制御部300から通信の主導となるコマンド(第一の通信確認コマンドまたは賞球コマンド)を球数制御部600に送信する構成に限る。
【0495】
同図(d)は、シリアルコマンド送信処理の他の形態を示すフローチャートである。この場合、ステップS2201で通信確認コマンド受信フラグを判定し、当該フラグが「0」(またはオフ)、すなわち、通信確認コマンド受信の返信を主制御部300に送信しない場合、通信確認コマンド以外のエラー情報などをステップS2207のその他シリアルコマンド送信処理にて送信する。例えば主制御通信エラーなどは、この送信処理によって送信できる。これ以外は、同図(c)と同様であるので説明は省略する。
【0496】
また、図35では、シリアルコマンド受信処理とシリアルコマンド送信処理のフローチャートを分けて記載している。このため通信確認コマンド受信フラグを使用し、シリアルコマンド受信処理(同図(b))のステップS2107において当該フラグに「1」(オン)をセットし、シリアルコマンド送信処理(同図(c))のステップS2201でこのフラグを判定し、続くステップS2203にて通信確認コマンドを送信データレジスタセット(送信)するものとした。しかし、通信確認コマンド受信フラグを使用せず、シリアルコマンド受信処理(同図(b))のステップS2105において、主制御通信エラーフラグが「0」(正常である)場合には、続くステップS2107で通信確認コマンドを送信データレジスタにセット(送信)するものとしてもよい。
【0497】
また上記の例では、球数制御部600のシリアルコマンド管理処理は、球数制御部割込み処理のタイマ更新処理(ステップS1203)とエラー管理処理(ステップS1205)の間で実行する場合を例に説明したが、例えば、エラー管理処理(ステップS1205)とエラー解除スイッチ監視処理(ステップS1207)の間で実行するものとしてもよい。
【0498】
図36から図40は、主制御部300と球数制御部600の間の通信処理のタイミングチャートの一例を示す。
【0499】
図36から図40において、主制御部300と球数制御部600の時間軸(横軸)上の目盛は、それぞれの定期的な割込み処理の周期を示す。時間軸は左から右に時間の経過を表す。既述の如く、主制御部300のタイマ割込み処理は例えば4msの周期で発生し、球数制御部600のタイマ割込み処理は例えば2msの周期で発生する。また主制御部300の割込み処理のタイミングに合わせて、シリアルコマンド通信エラーフラグ、シリアルコマンドステータスフラグ、通信確認コマンド送信カウンタ、通信確認コマンド送信タイマの内容を併記した。また、各図において、実線矢印が通信確認コマンドであり、破線が賞球コマンドである。
【0500】
図36(a)は、正常動作の場合に起こりうる通信処理の一例を示すタイミングチャートであり、図36(b)は、主制御通信エラーの場合の通信処理の一例を示すタイミングチャートである。
【0501】
図36(a)を参照して、まず、1ブロック目(1)において、通信確認コマンド送信タイマ(以下、TM)が「1」から「0」に変わり、100ms毎に主制御部300から球数制御部600に通信確認コマンドを送信するタイミングになった場合、主制御部300は、球数制御部600に通信確認コマンド(第一の通信確認コマンド)を送信する。この場合、TMは初期値の「25」がセットされ、以降主制御部300の割込み処理毎に減算され、「0」になると初期値「25」が設定される(以下同様)。通信確認コマンド送信カウンタ(以下、CT)は「10」から「9」に更新される。この場合賞球コマンドは同時に送信できないため(図31(a)参照)、シリアルコマンドステータスフラグ(以下、ST)は「1」がセットされる。シリアルコマンド通信エラーフラグ(以下、ER)はこの状態では「0」である。
【0502】
通信確認コマンドを受信した球数制御部600は、次の割込み処理のタイミングで通信確認コマンド(第二の通信確認コマンド)を主制御部300に送信(返信)する。これにより、CTは「9」から「10」に更新され、STは(賞球コマンドの送信が可能となったため)「1」から「0」に更新される。その後例えば、主制御部300の4割込み目で賞球コマンドが球数制御部600に送信される。
【0503】
2ブロック目(2)において、(例えば1ブロック目の通信確認コマンドから100ms経過後)TMが「0」のタイミングで主制御部300から球数制御部600に通信確認コマンドが送信される。このときCTは「10」から「9」に、STは「0」から「1」に更新される。球数制御部600から主制御部300に通信確認コマンドが送信(返信)されると、STは「1」、CTは「10」に更新される。この間に複数の入賞が成立していた場合には、例えばTMが「23」および「22」になるタイミングで、主制御部300から球数制御部600に連続して賞球コマンドが送信される。
【0504】
3ブロック目(3)において、例えば、主制御部300から球数制御部600に通信確認コマンドを送信する割込み(TMが「0」)になる割込み)とその1つ前の主制御部300の割込みとの間に賞球コマンドの送信要因(入賞)が成立している場合、STが「0」であっても次の主制御部300の割込みがTMが「0」の割込みの場合、主制御部300から通信確認コマンドが送信され(TMは「25」)、球数制御部600から通信確認コマンドが送信された後まで、賞球コマンドを送信できない。したがって賞球コマンドは次の(TMが「24」の)割込み処理で球数制御部600に送信される。
【0505】
4ブロック目(4)において、TMが「1」、ST「0」の割込みで主制御部300から球数制御部600に賞球コマンドが送信される。このとき、1回の割込み処理では1つの賞球コマンドしか送信できないため、他に(同時に)成立していた入賞がある場合には、次の主制御部300の割込みまで送信が待機される。しかし4ブロック目のように、先の賞球コマンドの送信後の次の主制御部300の割込みが、TMが「0」のタイミングになると、主制御部300は通信確認コマンドを送信するので、賞球コマンドの送信ができない(STが「1」になる)。主制御部300は、球数制御部600から通信確認コマンドを受信した後の割込み(TMが「0」の割込み、このときSTは「0」)で、賞球コマンドを球数制御部600に送信できる。つまり、この場合は複数の入賞が成立していたが、1つの賞球コマンドを送信した後の主制御部300の割込みが、100ms毎の通信確認コマンドを送信する処理を実行したため、確認後(数割込み後)まで他の賞球コマンドの送信が待機状態となった場合である。
【0506】
5ブロック目(5)は、通信確認コマンドの送受信のみを行っている状態である。
【0507】
同図(b)を参照して、主制御通信エラーの場合の通信処理の一例について説明する。
【0508】
まず1ブロック目(1)は、正常動作の状態を示し、TMが「0」のタイミングで、主制御部300は通信確認コマンドを送信し(STは「1」)、球数制御部600から通信確認コマンドが送信される。次(TMが「0」)の主制御部300の割込みではSTが「0」であり賞球コマンドの送信条件が成立すれば、賞球コマンドの送信が可能な状態となる。
【0509】
2ブロック目(2)では、次の通信確認コマンドの送信タイミング(TMが「0」)で主制御部300から球数制御部600に通信確認コマンドを送信するが、球数制御部600から主制御部300へ通信確認コマンド(返信)が送信されない。通信確認コマンドの返信がないため、STは「1」が維持され、CTも「9」が維持される。
【0510】
3ブロック目(3)は、2ブロック目から所定期間経過後で、2ブロック目以降、8回の通信確認コマンドを主制御部300から球数制御部600に送り、球数制御部600からは通信確認コマンドの送信が無い状態を示す。TMが「0」になる割込みで主制御部300は、9回目の通信確認コマンドを球数制御部600に送信する。これによりCTは「1」となり、球数制御部600から通信確認コマンドの送信が無いためその値が維持される。
【0511】
4ブロック目(4)では、TMが「0」の割込み処理で主制御部300が10回目の通信確認コマンドを送信する。CTは「0」となり、球数制御部600から通信確認コマンドの返信が無い場合これに基づき、ERに「1」がセットされ、主制御部通信エラーの状態となる。CTが「0」になったことに基づき、各種フラグの値が所定の値にセットされる(例えばCTは初期値の「10」がセットされる)。
【0512】
5ブロック目(5)は、正常動作に戻った場合を示しており、主制御部300から送信した通信確認コマンドに対し、球数制御部600から主制御部300に通信確認コマンドが送信されると、各種フラグやカウンタが初期化される。すなわちこの場合、ERは「0」、STは「0」、CTは「10」、TMは「24」がセットされる。
【0513】
なお、ここでは一例として主制御部300および球数制御部600のいずれもコマンドを受信した場合に、当該コマンドに対応する信号を出力する場合を例に説明している。しかしこれに限らず、コマンドに対応したフラグを設け、コマンド受信した場合にフラグをセットし、次の割込みで当該フラグを判定して信号を出力するようにしてもよい。
【0514】
図37から図40は、主制御部300と球数制御部600のさらに詳細なタイミングチャートである。これらの図では、ER、ST、CT、TMの図示は省略し、それぞれのタイミングチャート上で発生する入賞および、主制御部300または球数制御部600で行う各処理のタイミングを破線で示している。タイミングA、Iは、主制御部300で各入賞口等への入球が検出されたタイミングであり、タイミングB、Jは、入賞パターンが一致したことにより主制御部300において入賞受付処理が行われたタイミングであり、タイミングC、Kは主制御部300から球数制御部600に賞球コマンドが送信されたタイミングであり、タイミングD、G、Lは、主制御部300が賞球数表示装置690に賞球数を表示するタイミングであり、タイミングEは、球数制御部600が球数表示部640に遊技球数を表示するタイミングである。またタイミングFは、通信確認コマンドを送信するタイミングであり、タイミングHは、球数制御部600から主制御部300に通信確認コマンドを送信するタイミングである。また、図37から図40に示す主制御部300は、主制御部タイマ割込み処理(図13)において、第1の賞球数表示処理(ステップS216)は行わず、第2の賞球数表示処理(ステップS220)のみを行う場合を例に示す。更に、図示された以外の遊技球数の更新(イン球数、貸球数、再プレイ球数、計数球数による更新)は、省略して説明する。
【0515】
図37は、図36(a)の一部分に対応するタイミングチャートであり、図37(a)は、正常にまた通常のタイミングで賞球コマンドを送信する場合(図36(a)の1ブロック目に対応)のタイミングチャートの一例である。例えば遊技開始後最初に各入賞口等のいずれか(例えば一般入賞口226)に入球(入賞)があると(タイミングA)、主制御部300は、タイマ割込み処理の入賞受付処理(図13のステップS217)を行う(タイミングB)。主制御部300と球数制御部600間の通信確認コマンドの送受信は、例えばタイミングAとタイミングBの間の割込み処理で正常に行われているとすると、主制御部300は、入賞受付後、直ちに賞球コマンド送信処理(図13のステップS219)により球数制御部600に入賞に対応した賞球数(例えば10個)を含む賞球コマンドを送信する(タイミングC)。主制御部300は、賞球コマンド送信処理(ステップS219)後にのみ、未送信の賞球数を賞球数表示処理(ステップS220)を実行する。つまりタイミングCで1つの賞球コマンドを送信した後は、入賞数記憶領域に記憶されている値は全て「0」であるので、賞球数表示部690の表示も「0」が維持される(タイミングD)。その後、賞球コマンドを受信した球数制御部600はこれに基づき、球数制御部割込み処理(図17)の遊技球数設定処理(ステップS1211)において遊技球数に賞球数(10個)を加算し、更新された遊技球数を球数表示部640に表示する。例えば、遊技開始時の遊技球数が「10」の場合、球数表示部600の表示は「20」となる(タイミングE)。このように、球数制御部600に未送信の賞球数を表示する賞球表示部690と、遊技球数を表示する球数表示部640の表示のタイミングには若干のずれが生じており、特に、主制御部300の賞球数表示処理(ステップS220)が賞球コマンド送信処理(ステップS219)の後にのみ行われる構成では、獲得した賞球数が賞球表示部690に表示されない場合もある。
【0516】
図37(b)は、賞球コマンドの送信のタイミングと、通信確認コマンドの送信のタイミングが重なった場合(図36(a)の3ブロック目に対応)のタイミングチャートの一例である。
【0517】
例えば遊技開始後最初に、例えば一般入賞口226に入球(入賞)があり(タイミングA)、主制御部300がタイマ割込み処理の入賞受付処理を行う(タイミングB)。その後、賞球コマンド送信処理(ステップS219)を行うが、シリアルコマンド管理処理において通信確認コマンド送信タイマ(TM)が「0」になっている場合、主制御部300は、(第一の)通信確認コマンドを球数制御部600に送信する(タイミングF)。その後、主制御部300は、賞球数表示処理(ステップS220)を行い、一般入賞口用入賞数記憶領域の値(入賞数「1」)に基づき、賞球数「10」を賞球数表示部690に表示する(タイミングG)。タイミングFの通信確認コマンド送信によって賞球コマンドの送信は待機されており、一般入賞口用入賞数記憶領域に「0」以外の値が記憶されているため、これに基づき賞球数表示部690に賞球数が表示される。主制御部300から通信確認コマンドを受信した球数制御部600は、球数制御部割込み処理(図17)のシリアルコマンド管理処理(ステップS1204)において主制御部300に(第二の)通信確認コマンドを送信する(タイミングH)。その後、主制御部300は通信確認コマンドを送信した(タイミングF)割込み処理の、次の割込み処理において球数制御部600に賞球コマンドを送信する(タイミングC)。主制御部300は賞球数表示処理(ステップS220)を行うが、賞球コマンドの送信により一般入賞口用入賞数記憶領域およびそれ以外の入賞記憶領域の値は「0」となっており、賞球数表示部690には「0」が表示される(タイミングD)。賞球コマンドを受信した球数制御部600はこれに基づき、球数制御部割込み処理(図17)の遊技球数設定処理(ステップS1211)において遊技球数に賞球数(10個)を加算し、更新された遊技球数を球数表示部640に表示する。例えば、遊技開始時の遊技球数が「10」の場合、球数表示部600の表示は「20」となる(タイミングE)。このように、主制御部300の1回の割込み処理において、入賞受付(タイミングB)と通信確認コマンド送信(タイミングF)が重なった場合、賞球コマンド送信(タイミングC)は、次以降の主制御部300の割込み処理で行われ、その間、賞球コマンドの送信、賞球数の遊技球数への加算および球数制御部640への遊技球数の表示は待機される。一方、賞球数表示部690への賞球数の表示は、賞球コマンドの送信がされておらず、主制御部300の通信確認コマンドの送信処理と同一の割込み処理内で行えるので、この場合、賞球数表示装置690に賞球数が表示される。
【0518】
図38は、図36(a)の2ブロック目に対応するタイミングチャートであり、同一の主制御部300の割込み処理において、(同時に)複数の入賞受付があった場合の一例を示す。例えば遊技開始後最初に、例えば第1特図始動口230に入球(入賞)があり(タイミングI)、続けて一般入賞口226に入球(入賞)があった場合(タイミングA)、主制御部300は、同一のタイマ割込み処理の入賞受付処理(図13のステップS217)で複数(この場合2つ)の入賞受付を同時に行う(タイミングB、J)。主制御部300と球数制御部600間の通信確認コマンドの送受信は、例えばタイミングAとタイミングBの間の割込み処理で正常に行われているとすると、主制御部300は、入賞受付後、直ちに賞球コマンド送信処理(図13のステップS219)により球数制御部600に入賞に対応した賞球数を含む賞球コマンドを送信する(タイミングC)。賞球コマンドの送信は、1つの割込み処理につき1つのみ送信する仕様の場合、タイミングCで送信される賞球コマンドは、入賞が受け付けられた2つの入賞のうち一方となる。この場合の優先順位は、RAMに設けられた入賞数記憶領域の配置により決まる。例えば、各入賞数記憶領域が、図29(b)に示すように配置されている場合、アドレスの小さい番地から順に値を取得するので、タイミングCでは、第1特図始動口230に対応する賞球コマンド(賞球数は「3」)が送信される。その後の賞球数表示処理(ステップS220)では、賞球コマンドが送信されていない他方の入賞(一般入賞口226)に対応する賞球数(例えば「10」)が、賞球数表示部690に表示される。の表示も「0」が維持される(タイミングD)。その後、賞球コマンドを受信した球数制御部600はこれに基づき、球数制御部割込み処理(図17)の遊技球数設定処理(ステップS1211)において遊技球数に第1特図始動口230に対応する賞球数(3個)を加算し、更新された遊技球数を球数表示部640に表示する。例えば、遊技開始時の遊技球数が「10」の場合、球数表示部600の表示は「13」となる。一般入賞口226入賞の賞球コマンドは、主制御部300の次の割込み処理の賞球コマンド送信処理で送信される(タイミングK)。これにより、各入賞数記憶領域の値は全て「0」となり、その後の賞球数表示処理では、賞球数表示部690に「0」が表示される(タイミングL)。また、図示は省略するが、賞球コマンドを受信した球数制御部600は遊技球数設定処理(ステップS1211)において遊技球数に一般入賞口226に対応する賞球数(10個)を加算し、更新された遊技球数を球数表示部640に表示する。例えば、遊技開始時の遊技球数が「13」の場合、球数表示部600の表示は「23」となる。
【0519】
このように、主制御部300の同一の割込み処理で複数の入賞の受付がされた場合であっても、賞球コマンドの送信はそれ以降の割込み処理で、各割込み処理につき1回ずつの送信となる。
【0520】
図39は、球数制御部600の他の形態のタイミングチャートの一例を示すものであり、図35(b)に示す球数制御部600のシリアルコマンド受信処理において、主制御部300から送信された賞球コマンドに対しても賞球コマンド受信の報知(返信)を行う場合の一例である。タイミングMは、球数制御部600から主制御部300に、賞球コマンド受信の報知(返信)を行うタイミングである。
【0521】
例えば遊技開始後最初に、例えば一般入賞口226に入球(入賞)があり(タイミングA)、主制御部300がタイマ割込み処理の入賞受付処理を行う(タイミングB)。その後、賞球コマンド送信処理(ステップS219)を行うが、シリアルコマンド管理処理において通信確認コマンド送信タイマ(TM)が「0」になっている場合、主制御部300は、(第一の)通信確認コマンドを球数制御部600に送信する(タイミングF)。その後、主制御部300は、賞球数表示処理(ステップS220)を行い、一般入賞口用入賞数記憶領域の値(入賞数「1」)に基づき、賞球数「10」を賞球数表示部690に表示する(タイミングG)。タイミングFの通信確認コマンド送信によって賞球コマンドの送信は待機されており、一般入賞口用入賞数記憶領域に「0」以外の値が記憶されているため、これに基づき賞球数表示部690に賞球数が表示される。主制御部300から通信確認コマンドを受信した球数制御部600は、球数制御部割込み処理(図17)のシリアルコマンド管理処理(ステップS1204)において主制御部300に(第二の)通信確認コマンドを送信する(タイミングH)。その後、主制御部300は通信確認コマンドを送信した(タイミングF)割込み処理の、次の割込み処理において球数制御部600に賞球コマンドを送信する(タイミングC)。主制御部300は賞球数表示処理(ステップS220)を行うが、賞球コマンドの送信により一般入賞口用入賞数記憶領域およびそれ以外の入賞記憶領域の値は「0」となっており、賞球数表示部690には「0」が表示される(タイミングD)。賞球コマンドを受信した球数制御部600は、球数制御部600のシリアルコマンド受信処理(図35(b)のステップS2113)において賞球コマンド受信のコマンド(返信)を主制御部300に送信する(タイミングM)。また球数制御部600は、遊技球数設定処理(ステップS1211)において遊技球数に賞球数(10個)を加算し、更新された遊技球数を球数表示部640に表示する。例えば、遊技開始時の遊技球数が「10」の場合、球数表示部600の表示は「20」となる(タイミングE)。
【0522】
図40は、図37のさらに詳細なタイミングチャートである。遊技中は、遊技球数の加算(賞球数の加算)だけでなく、非入賞の場合や、計数操作を行った場合などには遊技球数が減算されていく場合もある。封入式のパチンコ機100では、機内球710は一定量であるため、遊技者が遊技可能な遊技球数を超えた場合には、例えば機内球710の循環を制御し、発射や球送りを不可能にする必要がある。図40では、遊技球数が0になる可能性がある場合について、説明する。
【0523】
図40(a)は、図37(a)のタイミングBからタイミングEの部分を拡大したものであり、主に、賞球数を表示する賞球表示部690と、遊技球数を表示する球数表示部640の表示のタイミングについて説明する。
【0524】
球数制御部600に賞球数(例えば10個)を含む賞球コマンドが送信されると(タイミングC)、その後の賞球数表示処理において賞球数表示部690に「0」が表示(維持)される(タイミングD)。その後、球数制御部600では、図17に示す割込み処理において、シリアルコマンド管理処理(ステップS1204)を行う(タイミングO)。そしてシリアルコマンド管理処理において賞球コマンドを受信した球数制御部600は、その後の遊技球数設定処理(ステップS1211)において遊技球数に賞球数(10個)を加算する。そして更新された遊技球数を球数表示部640に表示する(タイミングE)。ただし、タイミングOからタイミングEまでの間に、遊技者が機内球710の発射を行い、これらが非入賞であったり、計数ボタン652の操作が行われるなどすると、遊技球数は賞球数の加算だけでなく、イン球数や計数球数の減算も行われそれらも含めて更新されている。つまり、タイミングOからタイミングEまでの間に遊技球数(遊技球数記憶領域の遊技球数)が「0」になり、球数表示部640に「0」が表示される場合もある。そうなると、賞球表示部690と球数表示部640のいずれにも「0」が表示され、遊技者の遊技球数(発射可能な遊技球数)はこのタイミングで存在しないことになる。このような場合に、機内球710の発射や球送りが可能となるのは望ましくないため、所定期間(例えば次回の球数制御部600の割込み処理のタイミングまで)球送りや発射の駆動処理Pを行うタイミングを待機するとよい。
【0525】
実際には、タイミングDとタイミングEのずれはわずかであり、例えば、いずれも「0」が表示される期間はごく短いものであるが、所定期間待機し、賞球数が遊技球数に反映された後に(球数表示部640の表示が「1」以上となった場合に)発射や球送りの駆動処理Pを行うと好適である。なお、球送りや発射の駆動処理Pは、球数制御部割込み処理の遊技球数設定処理(ステップS1211)より後のステップで行ってもよい。
【0526】
図40(b)は、図37(b)のタイミングBからタイミングEの部分を拡大したものであり、図40(a)の如く、遊技球数(遊技球数記憶領域に記憶された遊技球数)が「0」の場合には、遊技不可として発射や球送りの駆動処理Pを制限する場合の一例について説明する。
【0527】
例えば、遊技球数が「0」(球数表示部640の表示が「0」)の状態の場合であるが領域内球数が例えば一般入賞口226に入賞したとする。この場合主制御部300が一般入賞口226の入賞受付処理を行い(タイミングB)、主制御部300が(第一の)通信確認コマンドを球数制御部600に送信する(タイミングF)。その後、主制御部300は、賞球数表示処理で一般入賞口226の賞球数「10」を賞球数表示部690に表示する(タイミングG)。その後球数制御部600は、割込み処理のシリアルコマンド管理処理において主制御部300に(第二の)通信確認コマンドを送信する(タイミングH)。その後、主制御部300は球数制御部600に賞球コマンドを送信する(タイミングC)。主制御部300の賞球数表示処理により賞球数表示部690には「0」が表示される(タイミングD)。賞球コマンドを受信した球数制御部600は遊技球数設定処理において遊技球数に賞球数(10個)を加算し、更新された遊技球数を球数表示部640に表示する。この場合、タイミングBの時点で球数表示部600の表示は「0」であり、更新後の球数表示部600の表示は「10」となる(タイミングE)。
【0528】
このような場合、たとえタイミングBで球数表示部640の表示が「0」であっても、タイミングGでは賞球数表示部690に賞球数「10」が表示され、遊技者の発射可能な(実質的な)遊技球数としては「1」以上存在している。しかし、遊技球数更新のタイミング(遊技球数設定処理におけるシリアルコマンド管理処理のタイミング)によって、遊技球数記憶領域の遊技球数は「0」のままであるので、タイミングGからタイミングDまでの間は遊技球数の発射や球送りの駆動処理が行われず、遊技ができない状態となる場合がある。
【0529】
このように、遊技球数が少ない場合(「0」の場合)に入賞すると、通信確認コマンド送受信によるタイムラグにより直ちにデータが更新されない場合がある。これにより、遊技者が球発射ハンドル134を連続して操作していても、機内球710の発射間隔が一定ではなくなる場合がある。
【0530】
つまり、遊技球数の更新処理は、機内球710の発射制御や、球送り制御とも密接に関連している。以下、発射制御および球送り制御について、説明する。
<球送り制御処理および発射制御処理>
【0531】
図41から図52を参照して、パチンコ機100の発射制御処理および球送り制御処理について説明する。
【0532】
図41は、球送り制御処理および発射制御処理に関する構成を示すブロック図である。パチンコ機100は例えば、タッチセンサ806、発射強度センサ808、発射停止スイッチ810、球送り装置616、発射装置622を有する。タッチセンサ806、発射強度センサ808、発射停止スイッチ810は操作部中継基板802を介して発射制御部(発射制御回路)800に接続する。球送り装置616および発射装置622は、発射中継基板804を介して発射制御部800に接続する。発射制御部800は、ここでは一例として球数制御部600に設けられた発射制御回路であるが、球数制御部600と別体の構成としてもよい。
【0533】
タッチセンサ806、発射強度センサ808および発射停止スイッチ810は、例えば球発射ハンドル134に設けられ、遊技者による球発射ハンドル134の操作を検出する。具体的にはタッチセンサ806は、遊技者が球発射ハンドル134に接触しているか否かの検出を行う。発射強度センサは、遊技者の球発射ハンドル134の操作量を検出し、これにより機内球710の遊技領域124への発射強度を調整する。球発射ハンドル134の操作量は球発射ハンドル134の回転角度であり、ハンドルボリュームともいう。発射停止スイッチ810は、押下されることによって(押下を発射停止センサで検知することにより)機内球710の発射を停止する。タッチセンサ806、発射強度センサ808および発射停止スイッチ810は、球送り制御用各種センサに含まれる。
【0534】
球送り装置616は例えば、球送り駆動装置812と球通路(不図示)を含んで構成され、発射装置612例えば、発射駆動装置814と発射杵622aを含んで構成される。球送り駆動装置812および発射駆動装置814はここではそれぞれソレノイドを用いる場合を例に説明するが、ソレノイドに限らず例えば、モータ、動力シリンダーなど他のアクチュエーターであってもよい。
【0535】
球数制御部600(発射制御部800)は、タッチセンサ806および発射強度センサ808を検出し、球発射ハンドル134が遊技者により操作されていることを検知した場合には、球送り駆動装置(球送りソレノイド)812を駆動する。球送りソレノイド812は球通路を回動可能に支持し、球送りソレノイド812の駆動(例えば、球通路の吸引)によって機内球710が回動する球通路に沿って移動し、発射レール624に搬送される。機内球710が発射レール624で停止すると球数制御部600は、発射駆動装置(発射ソレノイド)814を駆動する。発射ソレノイド814は、発射杵622aを回動可能に支持し、発射ソレノイド814の駆動(例えば吸引)により発射杵622aが回動し、発射レール624上の機内球710を遊技領域124に打ち出す。発射の強弱は、発射強度センサ808で検出した球発射ハンドル134の操作量(ハンドルボリューム)によって発射ソレノイド814の駆動量(吸引量)を変化させて制御する。既述の如く、発射レール624から機内球710が発射されたことを減算センサ604Zが検出すると、遊技球数を1個減算する。
【0536】
球数制御部600(発射制御部800)は、球発射ハンドル134のタッチ状態を非検出の場合、発射停止スイッチが押下されている場合、球発射ハンドル134が一定角以上回転されていない場合、および管理装置620が未接続の場合などには、機内球710の発射(球送りソレノイド812、発射ソレノイド814の少なくとも一方の駆動)を停止する。
【0537】
また、球数制御部600は、球数制御部割込み処理において主制御通信エラー中の場合には、すなわち図34(a)に示す主制御通信エラー管理処理において主制御通信エラーと設定された場合には、球送りソレノイド812および発射ソレノイド814の少なくとも一方の駆動を停止することもできる。
【0538】
さらに球数制御部600は、遊技球数を参照して球送りソレノイド812および発射ソレノイド814の駆動および停止を制御することもできる。例えば、遊技球数が「0(ゼロ)」の場合には、球送りソレノイド812および発射ソレノイド814の少なくとも一方の駆動を停止し、機内球710の発射を不可能にする。
【0539】
またパチンコ機100では、1分間に発射できる機内球710が所定数以下と定められており、球発射ハンドル134を連続操作した場合であっても、機内球710の発射間隔の最短時間は一定となる。一例として1分間に発射できる機内球710は100個以下であり、これにより機内球710の発射間隔は最短で600msである。球数制御部600は、遊技球数が少なく(例えば、10球以下、5球以下など)なった場合、機内球710の発射間隔を通常の発射間隔(遊技球数が一定量以上の場合の発射間隔:600ms)より長くするような制御を行うこともできる。
【0540】
図42から図45を参照して、パチンコ機100の球送り制御処理および発射制御処理の一例について具体的に説明する。
【0541】
図42は、機内球710を発射レール624に送る球送り制御処理(球送り装置制御処理)の流れを示すフローチャートであり、図42(a)が遊技球数の有無を球送り制御の条件とする場合のフローチャートであり、図42(b)が遊技球数の有無を球送り制御の条件としない場合のフローチャートである。またいずれの場合も、機内球710の最短発射間隔(ここでは600ms)のタイマ管理は発射制御で行うものとする。
【0542】
図42(a)を参照して、ステップS2301では、球送り制御用各種センサの状態を検出し、球送り制御実行条件が成立しているか否かを判定する。球送り用各種センサの状態は、例えば、タッチセンサフラグ、ボリュームスイッチフラグ、発射停止フラグ、通信エラーフラグなどで判定できる。例えば、遊技者が球操作ハンドル134にタッチしていることをタッチセンサ806で検出した場合は、RAMに設けられたタッチセンサフラグがオン(または例えば「1」がセット)になる。球発射ハンドル134の操作は例えばデジタル的に判定可能であり、ハンドルボリュームが所定値以上の場合(球発射ハンドル134の操作量が所定角度以上)であることを発射強度センサ808で検出した場合は、RAMに設けられたボリュームスイッチフラグがオン(また例えば「1」がセット)になる。また、発射停止スイッチ810が押下されていない場合は、RAMに設けられた発射停止フラグがオフ(または例えば「0」がセット)となる。また、主制御部通信エラーの判定がされていない場合、通信エラーフラグがオフ(または例えば「0」がセット)となる。
【0543】
本ステップではこれらのフラグを判定し、タッチセンサフラグがオン、ボリュームスイッチフラグがオン、発射停止フラグがオフ、通信エラーフラグがオフ、のすべてを満たした場合、ステップS2303に進み、そうでない場合は処理を終了する。
【0544】
ステップS2303では、遊技球数記憶領域に記憶されている遊技球数を取得し、有無を判定する。遊技球数が有る場合はステップS2305に進み、そうでない場合は処理を終了する。
【0545】
ステップS2305では球送りフラグを判定する。球送りフラグは前回の機内球710発射後に球送り(機内球710の発射レール624への搬送)を行っているか否かを判定するフラグであり、球送りフラグがオフ(または「0」をセット)の場合は球送りを行っていないことを示し、球送りフラグがオン(または「1」をセット)の場合は球送りを行っていることを示す。球送りフラグがオフの場合はステップS2307に進み、そうでない場合は処理を終了する。機内球710の1分間の発射球数を100個以内に制限するタイマ管理処理を発射制御処理で行うために、球送り制御処理において球送りフラグの判定と設定を行っている。球送りフラグは、後述する発射制御処理において初期化(オフが設定)され、そのタイミングは最短で600msである。球送りフラグの設置および球送り制御処理での球送りフラグの判定処理(本ステップ)は、所定の構成を有するパチンコ機100の場合に必要となるが、それについては後述する。
【0546】
ステップS2307では、球送りソレノイド812を駆動する。これにより1個の機内球710が発射レール624に搬送される。
【0547】
ステップS2309では、球送りを行ったことを示す、球送りフラグをオンにする。
【0548】
この球送り制御処理では、遊技球数が有る場合には球送りが行われる一方で、遊技球数が無い場合は球送りが行われない。
【0549】
同図(b)を参照して、遊技球数の有無によらず球送り制御が可能な球送り制御処理について説明する。球送り制御用各種センサおよびその状態検出、球送りフラグについては同図(a)と同様であるので説明は省略する。
【0550】
ステップS2401では、球送り制御用各種センサの状態を検出し、球送り制御実行条件が成立しているか否かを判定する。例えば、タッチセンサフラグがオン、ボリュームスイッチフラグがオン、発射停止フラグがオフのすべてを満たした場合、ステップS2403に進み、そうでない場合は処理を終了する。
【0551】
ステップS2403では、球送りフラグを判定し、球送りフラグがオフの場合はステップS2405に進み、そうでない場合は処理を終了する。ステップS2405では、球送りソレノイド812を駆動する。これにより1個の機内球710が発射レール624に搬送される。ステップS2407では、球送りを行ったことを示す、球送りフラグをオンにする。
【0552】
この球送り制御処理では、遊技球数が「0」であっても球送りが可能となる。パチンコ機100の球送り制御処理では、同図(a)または(b)のいずれかが採用できる。
【0553】
図43を参照して、機内球710を遊技領域124に発射する発射制御処理(発射装置制御処理)について説明する。同図は発射制御処理の流れを説明するフローチャートの一例である。これらの発射制御処理では、機内球710の最短発射間隔(ここでは600ms)のタイマ管理を行っており、例えば図42に示した球送り制御処理(のいずれか)とともに採用できる。また、同図に示す発射制御処理における、球送り制御用各種センサの状態検出と、球送りフラグの設定は、図42に示す球送り制御処理の場合と同様であるので、説明は省略する。
【0554】
同図(a)を参照して、ステップS2501では、球送り制御用各種センサの状態を検出し、球送り制御実行条件が成立しているか否かを判定する。球送り制御用各種センサの球送り制御実行条件は、球送り制御処理の判定時に成立していても発射制御処理のタイミングでは不成立となる可能性があるので、本ステップにて改めて判定を行う。球送り制御実行条件が成立した場合、例えば、タッチセンサフラグがオン、ボリュームスイッチフラグがオン、発射停止フラグがオフのすべてを満たした場合、ステップS2503に進み、そうでない場合はステップS2513に進む。
【0555】
あるいは、破線の矢印で示すように、球送り制御実行条件が不成立の場合、処理を終了するようにしてもよい。これにより、例えば最短発射間隔の600msの期間中に一旦、遊技者が球操作ハンドル134から手を離した場合などに、発射間隔タイマを一時停止するような処理が可能になる。
【0556】
ステップS2503では、発射間隔タイマから「1」を減算する。発射間隔タイマは、機内球710の最短発射間隔を600msに維持するためのタイマであり、初期値として「300」(球数制御部600のタイマ割込み処理の周期が2msの場合)に設定されている。
【0557】
ステップS2505では、発射間隔タイマが「0」であるか否かを判定する。発射間隔タイマが「0」の場合(前回の発射から600msが経過したことを示す)は、ステップS2507に進み、そうでない場合は、処理を終了する。
【0558】
ステップS2507では、球送りフラグを判定する。球送りフラグがオンの場合は、ステップS2509に進み、そうでない場合は処理を終了する。図42の球送り制御処理にて設定される球送りフラグがオフの場合は、機内球710の球送りを行っていないのであるから、発射制御処理において発射レノイド814は駆動しなくてよい。一方、球送り制御用各種センサの状態が球送り制御実行条件を満たしている場合は、発射すべきところを発射できていない可能性がある。そこで本ステップで球送りフラグを判定し、発射ソレノイド814の駆動を判断する。
【0559】
ステップS2509では発射ソレノイド814を駆動する。前のステップS2507の判定の結果、球送りフラグがオンであれば、球送り制御実行条件も満たし、球送りも行われている状態であるので発射ソレノイド814を駆動する。
【0560】
例えば、パチンコ機100が、球送りソレノイド812と発射ソレノイド814とが連動して駆動し、遊技球数が「0」になった場合に球送りソレノイド812および発射ソレノイド814が停止する構成であるが、球送り後に遊技球数が「0」となった場合(最後の遊技球数を球送りした後)には1回だけ発射ソレノイドの駆動が許容されるように構成されている場合には、球送り制御処理での球送りフラグの設定および判定と、発射制御処理での球送りフラグの判定が必要となる。すなわち、当該構成のパチンコ機100においては、最後の遊技球数を球送りした(球送りフラグがオン)が、機内球710が発射レール624から発射されないという事象が生じる可能性がある。しかし球送りフラグを設けて(球送り制御処理でフラグの設定および判定を行い)発射制御処理において、これを参照することで、球送りされたにもかかわらず発射されない機内球710(最後の遊技球)を打ち出すことが可能となる。
【0561】
ステップS2511では、球送りフラグをオフに(または「0」をセット)する。ステップS2513では、発射間隔タイマに初期値を設定する。初期値はここでは「300」(=600ms/2ms)である。ステップS2501において球送り制御実行条件が不成立の場合、すなわち、タッチセンサの検知なしを示すオフ(または「0」がセット)、停止スイッチの検知有りを示すオン(または「1」がセット)、ボリュームスイッチフラグの操作無しを示すオフ(または「0」がセット)、主制御部通信エラーがオン(または「1」がセット)のいずれかである場合、本ステップにおいて、発射間隔タイマに初期値「300」がセットされる。球送り条件不成立となる球送り用各種センサの各フラグの解除後(初期化後)は、最短で600ms後に機内球710の発射が可能となる。
【0562】
同図(b)は、球送り制御実行条件によらず、発射間隔タイマを常に更新する発射制御処理の流れを示すフローチャートである。
【0563】
ステップS2601では、発射間隔タイマから「1」を減算する。発射間隔タイマは、同図(a)の場合と同様であるので説明は省略する。ステップS2603では、発射間隔タイマが「0」であるか否かを判定し、発射間隔タイマが「0」の場合はステップS2505に進み、そうでない場合は処理を終了する。
【0564】
ステップS2605では、球送りフラグを判定し、オンの場合はステップS2607に進み、そうでない場合は、処理を終了する。球送りフラグを判定する理由は、同図(a)と同様であるので説明は省略する。
【0565】
ステップS2607では、球送り制御用各種センサの状態を検出し、球送り制御実行条件が成立しているか否かを判定する。球送り制御実行条件が成立した場合は、ステップS2609に進み、そうでない場合はステップS2613に進む。
【0566】
ステップS2609では発射ソレノイド814を駆動する。ステップS2611では、球送りフラグをオフに(または「0」をセット)する。ステップS2613では、発射間隔タイマに初期値を設定する。初期値はここでは「300」(=600ms/2ms)である。
【0567】
図44は、機内球710の最短発射間隔(ここでは600ms)のタイマ管理を球送り制御処理で行う場合の、球送り制御処理と発射制御処理の流れを示すフローチャートの一例である。同図(a)は球送り制御処理(球送り装置制御処理)のフローチャートであり、同図(b)は発射制御処理(発射装置制御処理)のフローチャートである。なお、同図における、球送り制御用各種センサの状態検出と、球送りフラグの設定は、図42に示す球送り制御処理の場合と同様であるので、説明は省略する。
【0568】
ステップS2701では、球送り間隔タイマから「1」を減算する。球送り間隔タイマは、機内球710の最短球送り間隔を600msに維持するためのタイマであり、初期値として「300」(球数制御部600のタイマ割込み処理の周期が2msの場合)に設定されている。最短球送り間隔を600msに制限することで最短発射間隔も600msに制限される。
【0569】
ステップS2703では、球送り間隔タイマが「0」であるか否かを判定する。球送り間隔タイマが「0」の場合(前回の球送りから600msが経過したことを示す)は、ステップS2705に進み、そうでない場合は、処理を終了する。
【0570】
ステップS2705では、球送り間隔タイマに初期値を設定する。初期値はここでは「300」(=600ms/2ms)である。
【0571】
ステップS2707では、球送り制御用各種センサの状態を検出し、球送り制御実行条件が成立しているか否かを判定する。球送り制御実行条件が成立した場合、例えば、タッチセンサフラグがオン、ボリュームスイッチフラグがオン、発射停止フラグがオフのすべてを満たした場合、ステップS2709に進み、そうでない場合は処理を終了する。
【0572】
ステップS2709では、遊技球数記憶領域に記憶されている遊技球数を取得し、有無を判定する。遊技球数が有る場合はステップS2711に進み、そうでない場合は処理を終了する。
【0573】
ステップS2711では、球送りフラグを判定する。球送りフラグがオフの場合はステップS2713に進み、そうでない場合は処理を終了する。
【0574】
ステップS2713では、球送りソレノイド812を駆動し、1個の機内球710を発射レール624に搬送する。ステップS2715では、球送りを行ったことを示す、球送りフラグをオンにする。
【0575】
この球送り制御処理では、遊技球数の有無によらず、遊技球710を一定の周期(600ms)で発射レール624に送り出す。この場合、最後の遊技球数を発射直後に賞球や貸球等で遊技球数が増加した場合(遊技球数が「0」から「10」になった場合)であっても、遊技球数の更新(増加)後、直ちに球送りを行うのではなく、(遊技球数の有無によらず)更新されている球送り間隔タイマに合わせて一定周期で球送りを行う。
【0576】
同図(b)を参照して、発射制御処理の流れについて説明する。
【0577】
ステップS2801では、球送り制御用各種センサの状態を検出し、球送り制御実行条件が成立しているか否かを判定する。球送り制御実行条件が成立した場合、例えば、タッチセンサフラグがオン、ボリュームスイッチフラグがオン、発射停止フラグがオフのすべてを満たした場合、ステップS2803に進み、そうでない場合は処理を終了する。
【0578】
ステップS2803では、球送りフラグを判定する。球送りフラグがオンの場合はステップS2805に進み、そうでない場合は処理を終了する。
【0579】
ステップS2805では、発射ソレノイド814を駆動する。ステップS2807では、球送りフラグにオフをセットする。
【0580】
なお、図示は省略するが、発射制御処理において、球送り許可フラグを用いて、発射後(ステップS2805の発射ソレノイド駆動後)球送り許可フラグにオン(または「1」)を設定するものとしてもよい。当該フラグがオンの場合は、球送りを許可することを示す。その場合、同図(a)の球送り処理では、球送りソレノイド駆動処理(ステップS2713)以前に球送り許可フラグを判定し、当該フラグがオンの場合には、球送りソレノイドを駆動し、駆動後に球送り許可フラグをオフ(または「0」)に設定する。また球送りソレノイド駆動の条件に替えて、他の条件で球送り許可フラグをオフにしてもよい。他の条件とはたとえば、減算センサ604Zによる検知である。あるいは球送りソレノイド駆動条件と他の条件の論理積で球送り許可フラグをオフに設定してもよく、例えば、球送りソレノイドが駆動し、且つ減算センサ604Zが正しく機内球710を検知した場合に球送り許可フラグをオフに設定してもよい。
【0581】
図45を参照して、球送り制御処理(球送り装置制御装置)および発射制御処理(発射装置制御処理)の他の形態について説明する。図45は、球送り制御処理および発射制御処理を分離せず、一連の処理で行う場合のフローチャートの一例を示す。
【0582】
この場合、発射・球送りの最短間隔を管理する共通のタイマ(例えば発射間隔タイマ)の値に基づき、球送りソレノイド812と発射ソレノイド814を駆動する。つまり、一定間隔毎(例えば300ms毎)に球送りソレノイド812と発射ソレノイドを交互に駆動し、機内球710の球送りと発射を行う。球送り制御用各種センサの状態検出は、既述の処理と同様であり、説明は省略する。
【0583】
ステップS2901では、球送り制御用各種センサの状態を検出し、球送り制御実行条件が成立しているか否かを判定する。球送り制御実行条件が成立した場合は、ステップS2903に進み、そうでない場合はステップS2913に進む。
【0584】
ステップS2903では、発射間隔タイマから「1」を減算する。発射間隔タイマは、既述の発射間隔タイマと同様であるが、ここでは球送りの間隔も管理する。
【0585】
ステップS2905では、発射間隔タイマが所定値(ここでは「150」)であるか否かを判定する。最短発射間隔が600msの場合、発射間隔タイマの初期値は「300」に設定されている。本処理では、最短発射間隔の間に一定間隔で球送りを行うため、発射間隔タイマの値が「150」であるか否かを判定し、「150」の場合はステップS2907に進み、そうでない場合はステップS2909に進む。ステップS2907では、球送りソレノイド812を駆動する。
【0586】
ステップS2909では、発射間隔タイマが「0」であるか否かを判定する。発射間隔タイマが「0」の場合は、ステップS2911に進み、そうでない場合は処理を終了する。ステップS2911では、発射ソレノイド814を駆動する。
【0587】
ステップS2913では、発射間隔タイマの値を初期値「300」に設定する。
【0588】
なお、本処理においても既述の球送りフラグを設け、これを判定するものとしてもよい。また、ステップS2907の球送りソレノイド駆動処理の前に遊技球数を判断し、遊技球数が有る場合にのみ球送りソレノイド812を駆動するようにしてもよい。
【0589】
またこの処理では、例えば、ステップS2901で球送り制御用各種センサの状態を検出し、球送り制御実行条件が成立しているか否かを判定している。したがって、例えば600msの途中で球発射ハンドル134から遊技者が手を離すようなことがあると、その後球発射ハンドル134を操作した時点から600ms経過しないと機内球710を発射できない。更に、球送り後300ms以内に球発射ハンドル134から手を離すと、球送り済み(発射前)であるにもかかわらず、再度球送りをしてしまう。これを回避するには、球送りフラグなどを用いて、少なくとも球送りの後はタッチセンサが非検出(非接触を検出した場合)であっても発射間隔タイマを初期化しないなどの方法がある。
【0590】
図46から図48は、球送りソレノイド812と発射ソレノイド814の駆動状態の一例を示すタイミングチャートである。また球送りソレノイド812の駆動による遊技球数の変化(減算センサ604Zによる機内球710の検出による遊技球数の変化)の一例も併記した。
【0591】
図46(a)は、遊技球数の有無によって球送りの可否が制限され(例えば図42(a)の球送り制御処理)、最短発射間隔は発射制御側で管理する場合で、通常の場合(遊技球数が徐々に減少していく場合)のタイミングチャートを示している。球数制御部600は、球送りソレノイド812を駆動し、発射レール624に機内球710が搬送されると球送りフラグがオンとなる。球送りフラグがオンであるので発射ソレノイド814を駆動し、機内球710を発射するとともに球送りフラグをオフにする。球送りソレノイド812から機内球710が発射装置622に送られるとこれが減算センサ604Zによって検出され、遊技球数が更新されるので、例えば「3」であった遊技球数が「2」となる。わずかなタイムラグのあと、球送りフラグがオフであるので球数制御部600は球送りソレノイド812を駆動する。以降同様に処理が進む。発射ソレノイドの発射間隔は最短で600msである。遊技球数が「1」から「0」になると、例えば、球発射ハンドル134の操作を行っており球送り制御実行条件が成立している場合であっても、球数制御部600は破線の如く、球送りソレノイド812を駆動せず、球送りフラグがオフであるので、発射ソレノイド814も駆動しない。発射ソレノイド814は遊技球数が「0」になることで間接的に停止する。
【0592】
図46(b)は、図46(a)と同様の処理であるが、球送りソレノイド812の駆動間隔が600ms以内となる場合のタイミングチャートである。
【0593】
例えば、3回目の発射ソレノイド814の駆動で機内球710が発射され、遊技球数が「0」になると、次の球送りソレノイドは破線の如く停止する。その直後に賞球等により遊技球数が「10」に増加すると、球数制御部600は直ちに球送りソレノイド812を駆動する。球送りソレノイド812の駆動により、球数制御部600は前回の発射ソレノイド814の駆動から600ms経過後再び発射ソレノイド814を駆動し、機内球710を発射する。これにより球送りフラグがオフになると、その後球数制御部600は球送りソレノイド812を駆動する。発射間隔タイマは、発射制御処理で管理しており、球送りソレノイド812は球送りフラグがオフになったことを契機として駆動するので、遊技球数が増加したときの球送りソレノイド812の駆動から次の球送りソレノイド812の駆動までの間隔t1は、600ms以内になる場合があるが、発射ソレノイド814の発射間隔は600msで管理されている。
【0594】
図46(c)は、球送りソレノイド812の駆動間隔が600msを超える場合の一例を示すタイミングチャートである。球送り制御処理は例えば、図43(a)に示す処理と同様の処理を行うが、更にステップS2501において発射ソレノイド814の駆動条件に遊技球数が有無も判定している場合のタイミングチャートである。
【0595】
例えば、3回目の発射ソレノイド814の駆動で機内球710が発射され、遊技球数が「0」になると、次の球送りソレノイドは破線の如く停止する。その直後に賞球等により遊技球数が「10」に増加すると、球数制御部600は直ちに球送りソレノイド812を駆動する。発射ソレノイド814の駆動条件に、「遊技球数が有ること」を含んでいる場合には、球送りソレノイド812の再開時から600ms経過後に発射ソレノイド814が駆動し、その後に次の球送りソレノイド812が駆動する。したがってこの場合、遊技球数が増加した後の球送りソレノイド812からその次の球送りソレノイド812までの間隔t2は、600ms以上になる場合がある。
【0596】
図47(a)は、球発射ハンドル134のタッチセンサ806が検出された直後のタイミングチャートである。球数制御部600がタッチセンサ806のオンを検出すると、球送りソレノイド812を駆動する。これにより機内球710は発射レール624に搬送されるが、球数制御部600はタッチセンサ806の検出から600ms後に発射ソレノイド814を駆動する。
【0597】
図47(b)は図44に示した、球送り制御処理にて球送りの最短間隔を600msに管理する場合のタイミングチャートの一例である。球送りソレノイド812は、600ms間隔で駆動され、球送りが行われる。一方で発射ソレノイド814は球送りソレノイド812の駆動を契機として(球送りフラグがオンの場合に)球数制御部600が駆動するので、球送りソレノイド812の駆動後、比較的短い時間t3の経過後に駆動する場合がある。遊技球数が「0」になると球数制御部600はいずれの駆動も停止する。
【0598】
図47(c)は、図45に示す球送りおよび発射制御処理のタイムチャートの一例である。この場合、球送りソレノイド812は600ms間隔で駆動し、発射ソレノイド814は、球送りソレノイド812の駆動後、300ms経過すると駆動する。球送りソレノイド812の駆動間隔および発射ソレノイド814の駆動間隔はいずれも、600msである。遊技球数が「0」になると球数制御部600はいずれの駆動も停止する。
【0599】
図48は発射制御処理の他の形態を示すタイムチャートである。遊技球数が「0」になり、球送りソレノイド812の駆動を停止した場合であっても、球数制御部600は、発射ソレノイド814の駆動を継続してもよい。球送りソレノイド812が停止し、球送りがされなければ、発射ソレノイド814が駆動していても遊技球数の増減に影響は及ばない。
<遊技媒体経路の変形例>
【0600】
図49から図51を参照して、他の形態の遊技媒体経路610Aについて説明する。
【0601】
図49は、遊技領域124の正面図であって、図7に示すものと同一構成要素は同一符号で示し、その説明は省略する。なお、この場合も減算センサ604Zは球送り装置616から発射装置622に送り出された機内球710を検出する。
【0602】
遊技媒体経路610Aは、球磨き装置612と、揚上装置614と、球送り装置616を有し、例えば揚上装置614と球送り装置616の間に機内球710の貯留部830を有する。貯留部830は例えば、第1貯留部832と第2貯留部834を含み、第1貯留部832には揚上装置614から排出された機内球710が一時的に貯留される。第2貯留部834は、第1貯留部832に貯留された機内球710の一部または全部が貯留される。第2貯留部834の機内球710の数量は、遊技球数の一部または全部に相当する量である。第2貯留部834に貯留された機内球710は球送り装置616で発射レール624に搬送される。
【0603】
具体的に説明すると、一例として第2貯留部834には最大で100個(最大貯留数)の機内球710が貯留できる。第1貯留部832には例えば、機内球710の全てが貯留可能である。遊技球数が100個以上(例えば2000個)の場合、第1貯留部832から第2貯留部834に100個の機内球710が送られる。1個の機内球710が打ち出されると第2貯留部834の貯留数は99個になり、減算センサ604Zで通過が検出されると、遊技球数から1個が減算され、遊技球数は1999個になる。遊技球数が第2貯留部834の最大貯留数(100個)より多く、且つ第2貯留部834の貯留数(99個)が最大貯留数(100個)より少ないので、第1貯留部832から1個が第2貯留部834に送られ、第2貯留部834の貯留数は100個となる。一方、遊技球数が第2貯留部834の貯留数(100個)より少なくなった場合には、機内球710を発射した場合でも第1貯留部832から第2貯留部834に機内球710を送らない。このように、することで、遊技球数の増減を、実際に循環する機内球710で管理できる。
【0604】
このような構成の場合には、球送りソレノイド812および発射ソレノイド814は、遊技球数によらず駆動することができる。封入式のパチンコ機100では電子情報上の遊技球数が無い場合に、機内球710としては循環可能であることから、遊技球数が無い場合に球送りソレノイド812および発射ソレノイド814が駆動する場合が問題となる。
【0605】
このような構成によれば、遊技球数が無い場合いは、貯留部830に機内球710が貯留されないため、このような問題が生じない。
【0606】
図50を参照して、図49に示した遊技媒体経路610の貯留部830における貯留球数管理処理について説明する。図50は、貯留球数管理処理の流れを示すフローチャートの一例である。
【0607】
ステップS3001では、機内球710の減算センサ604通過の有無を判定する。減算センサ604Zを通過したと判定された場合にはステップS3003に進み、そうでない場合は処理を終了する。
【0608】
ステップS3003では、機内球710の通過により遊技球数が消費したとして遊技球数から「1」を減じる。
【0609】
ステップS3005では遊技球数と、第2貯留部834の最大貯留数(例えば、100個)を比較する。遊技球数が最大貯留数より大きい場合は、ステップS3007に進み、そうでない場合は処理を終了する。
【0610】
ステップS3007では、第2貯留部834貯留数と最大貯留数を比較する。貯留すが最大貯留数より少ないときはステップS3009に進み、そうでない場合は処理を終了する。
【0611】
ステップS3009では、最大貯留可能量から発射球数を減算し、差分を第1貯留部832から第2貯留部834に送る。
【0612】
ステップS3011では、発射球数を初期化(クリア)する。
【0613】
なおこのフローチャートは、貯留部830における貯留数の管理の主要な処理を抜粋して説明するものであり、この処理を実行するタイミングによっては、図示する処理の順に行われなくてもよい。当該処理は、遊技球数の更新時に合わせて実行される。例えば定期的な割り込み処理で実行される遊技球数設定処理や、シリアルコマンド管理処理、あるいは貸球ボタン144が再プレイボタン146が操作された場合にも同様の処理を行うことができる。また例えば、発射球数は例えば上述のイン球数を利用することもできるが、初期化等のタイミングを考慮し、適切に更新されるような処理の流れを選択する。
【0614】
図51は、遊技媒体経路610の変形例における、球送りソレノイド812と発射ソレノイド814のタイミングチャートであり、遊技球数も併記した。
【0615】
球数制御部600は、球送りソレノイド812を例えば、600ms間隔で駆動し、球送りソレノイド812の駆動後所定時間が経過した後、発射ソレノイド814を駆動する。例えば、3回目の発射ソレノイド814の駆動で遊技球数が「0」になった場合には、第2貯留部834に貯留される機内球710も0個になる。したがって、この場合には球送りソレノイド812および発射ソレノイド814が駆動を続けていたとしても、機内球710が遊技領域124に打ち出されることはない。
【0616】
図52は、主制御部300および球数制御部600間の通信処理と、発射制御処理および球送り制御処理のタイミングの関係について説明するタイミングチャートである。
【0617】
この図の主制御部300と球数制御部600のタイミングチャートは、図37(b)の再掲であり、遊技球数が「0」になった後、タイミングBで入賞受付があった状態を示している。例えば、発射ソレノイド814が、600ms間隔で駆動していた場合、次回の駆動がタイミングF(タイミングG、H、Cまたはこれらの間でも同様)の位置になる場合がある。タイミングGでは賞球数表示部690に遊技球数になるべき賞球数「10」が表示されているものの、遊技球数の更新(タイミングCからタイミングDの間に実行)が行われていないため、発射ソレノイド814の本来の駆動タイミングでは遊技球数が「0」のままである。このため、発射ソレノイド814(あるいは球送りソレノイド812)の駆動が制限される。あるいは、図49に示す第2貯留部834の貯留球数が0個であるため、発射ソレノイド814(あるいは球送りソレノイド812)が駆動していても、機内球710の発射が制限される。つまりこの場合、遊技者が球発射ハンドル134を操作しても機内球710が発射されず、タイミングD以降で機内球710が発射される。発射ソレノイド814の駆動(機内球710の発射)のタイミングとしては、最短の発射間隔である600ms(タイミングFの位置)よりも遅れ、発射間隔が長くなる。
【0618】
このように、遊技球数が少ない場合に(「0」の場合にに入賞すると通信のタイムラグにより直ちにデータが更新されない場合があり、発射間隔が一定でなくなる。つまり、遊技球数が少なくなった場合には、機内球710を最短間隔で発射するように球発射ハンドル134を連続して操作しても、機内球710の発射のタイミングが一定でなくなり、最短の発射間隔より長くすることができる。この発射間隔は、遊技球数が少なくなるほど徐々に長くなるため、遊技者が例えば、球数表示部640を注視していなくても、遊技者に遊技球数が少なくなっていることを認識させることが可能になる。またそれにより遊技球数がなくなる前に、貸球や再プレイを行い、遊技球数を補充することが可能になるため、遊技の継続意欲を促進させ、長時間遊技を楽しむことができる。また、遊技店側においては遊技台の稼動を上げることができる。
【0619】
以上、本実施形態では、主制御部300が通信処理の主導となるコマンド(例えば、第一の通信確認コマンドおよび賞球コマンド)を球数制御部600に送信する場合を例に説明した。しかしこれに限らず、球数制御部600が主導となるコマンド(例えば、第一の通信確認コマンドおよび、主制御部300に対し賞球コマンドの送信を要求するコマンド)を主制御部300に送信する構成であってもよい。
【0620】
また、本実施形態では主制御部300の1回の割込み処理につき、1つの賞球コマンドが送信される場合を例に説明した。しかしこの構成に限らず、主制御部300の1回の割込み処理につき、複数の賞球コマンドが送信される構成でもよいし、所定のグループ(入賞口ごと、あるいは同じ賞球数毎などのグループ)単位で送信する構成でもよいし、例えば255コマンドを超えない範囲で複数のコマンドをまとめて送信する構成であってもよい。
【0621】
また、主制御部300と球数制御部600のシリアルコマンド管理処理は、それぞれのタイマ割込み処理の一部で実行する場合を例に説明したが、主制御部300のシリアルコマンド管理処理は主制御部メイン処理で、球数制御部600のシリアルコマンド管理処理は球数制御部メイン処理でそれぞれ行ってもよい。
【0622】
また、主制御部300と球数制御部600のシリアルコマンド管理処理以外の各種送信処理および出力処理についても、主制御部300と球数制御部600のそれぞれのメイン処理で行ってもよく、例えば、全ての送信および出力処理をメイン処理で行う構成、全ての送信および出力処理をそれぞれのタイマ割込み処理で行う構成、送信および出力処理の一部をメイン処理で行いそれ以外をタイマ割込み処理で行う構成などであってもよい。
【0623】
また、主制御部300と第1副制御部400、主制御部300と第2副制御部500の通信はそれぞれシリアル通信でもよいしパラレル通信であってもよい。
【0624】
また、遊技球数の更新処理(遊技球数設定処理)は、球数制御部の割込み処理で行っているが、その実行タイミングは図示にて説明したものに限らない。例えば、タイマ割込み処理で行うタイミングによっては、賞球コマンド受信後同一の割込み処理で遊技球数を更新してもよいし、賞球コマンド受信後次の割込み処理で遊技球数を更新してもよい。
【0625】
同様に各種フラグやステータス等の更新タイミングも図示したタイミングに限らない。
【0626】
また、主制御部300と球数制御部600間の通信確認コマンドの送信処理は、定期的に行っているが、賞球コマンドの送信前のみ送信するようにしてもよい。すなわち、賞球コマンド1送信につき、通信確認コマンド1送信としてもよい。また、通信確認コマンドを定期的に送受信する場合、球数制御部600では通信確認コマンドの送信タイミングでデバイス等の状態に関する情報を送信してもよい。賞球コマンドの送受信でこれらの情報を送受信すると、通信量が増大する可能性があるが、通信確認コマンドの送信タイミングであれば、通信量が増大しても影響を少なくできる。更に、主制御部300から球数制御部600に通信確認コマンドを送信する場合、合わせて賞球コマンドを送信する構成としてもよい。再送処理などを適切に行うことでこのような構成も可能となる。
【0627】
また、入賞数記憶領域は、各球検出センサ320B毎のほか、例えば、第1特図始動口230と第2特図始動口232で共通の領域とするなど、賞球個数毎に設けてもよい。
【0628】
また、第1特図始動口230と第2特図始動口232では、入賞による賞球数が例えば3個と1個等、異なってもよい。
【0629】
また、球送り制御実行条件に、イン球数とアウト球数が不一致の場合を含めてもよい。
【0630】
また、球送りソレノイド812を駆動後、発射ソレノイド814の駆動前の期間では、球送りソレノイド812の駆動時点で発射ソレノイド814を吸引している。したがって、発射の停止を行う目的でハンドルボリュームを「0」にしても、機内球710が発射させることになり、発射の停止は不可能となる。
<電断・復電時の球数管理制御処理>
【0631】
次に、図53から図56を参照して、パチンコ機100の電断・復電時の球数管理制御処理について説明する。
【0632】
図53および図54は、パチンコ機100の電断・復電時の球数管理制御処理を説明する概要図である。既述の如くパチンコ機100は、投入検出センサ(減算センサ604Z)および、排出検出センサ(入賞検出センサ60Sおよび非入賞検出センサ604K)によってイン球数、アウト球数および、領域内球数を所定のタイミングで(例えば、球数制御部タイマ処理などで)更新、記憶し、これらの値の異常の有無を監視する球数管理制御を行っている。そして遊技中に電源の遮断(電断)状態になりその後復電した場合には、領域内球数が存在していてもイン球数、アウト球数および領域内球数を初期化する。
【0633】
具体的に説明すると、例えば図53(a)のように遊技中に領域内球数が3個存在している状態(例えば、領域内球数記憶領域に記憶された値が「+3」)で、停電などにより電断があると、その後の復電時(電断後の電源投入時)には、同図(b)の如く領域内球数記憶領域に記憶された値をクリアし(領域内球数記憶領域に「0」を記憶し)、新たに球数管理制御を開始する。
【0634】
電断後の復電時にイン球数、アウト球数および領域内球数の情報がRAMのそれぞれの記憶領域に残っていると、パチンコ機100は、例えば新たに遊技を開始したにも関わらす、遊技領域124内に機内球710が残存したと判断し、エラーとして報知する場合がある。新たに遊技を開始した遊技者は適正な遊技が行えない上、不正を疑われる恐れもある。そこで本実施形態では、電断後の復電時には、例えば球数制御部メイン処理の初期化処理などで領域内球数記憶領域に記憶された値をクリアし、電断時のイン球数、アウト球数および領域内球数の情報によらず、新たに球数管理制御を開始する。これにより、遊技者は適正な遊技を行うことが可能となる。
【0635】
一方で、電断前に領域内球数に異常が生じていた場合は、その異常の情報(エラー情報)の記憶領域は初期化せず、復電時まで維持する。
【0636】
図54を参照して具体的に説明する。例えば図54(a)のように遊技中に、領域内球数記憶領域の領域内球数(例えば20個)が異常判定条件を超えて異常と判定され、領域内球数エラーフラグにオン(または異常を示す例えば「1」)が設定された状態で電源が遮断すると、復電時には、球数制御部600は、領域内球数記憶領域、イン球数記憶領域およびアウト球数記憶領域に記憶された値をクリアする一方で、領域内球数エラーフラグの値は、復電時にクリアせずその情報を維持し(同図(b))、新たに前記数量管理処理を行う。
【0637】
このようにすることで、異常が発生したという情報は電断・復電後も維持されるので、例えば復電後に外部装置などに異常状態を送信したり、異常を報知することが可能となる。
<電源制御部>
【0638】
図55を参照して、パチンコ機100の電源制御部660について説明する。図55は電源制御部660およびこれに接続する制御部のブロック図である。なお、以下の説明において、DCは直流、ACは交流、VBBはバッテリバックアップされた電圧であることを表す。
【0639】
電源制御部660は、パチンコ機100に外部から供給されるAC100Vの電源を直流に変換し、球数制御部600および第1副制御部400に供給する。球数制御部600は主制御部300および夜間監視スイッチ692に電源を供給し、第1副制御部400は第2副制御部500に電源を供給する。
【0640】
電源制御部660は、第1の整流・平滑回路(整流回路1・平滑回路1)660Aと、第1の+24V生成回路(+24V生成回路1)660Bと、第1の+12V生成回路(+12V生成回路1)660Cと、第1の+5V生成回路(+5V生成回路1)660Dと、第1の電源遮断検出回路(電源遮断検出回路1)660Eと、第2の電源遮断検出回路(電源遮断検出回路2)660Fと、RAMクリアスイッチ回路660Gと、第1のバックアップ電源生成回路(バックアップ電源生成回路1)660Hと、第2のバックアップ電源生成回路(バックアップ電源生成回路2)660Iと、第3のバックアップ電源生成回路(バックアップ電源生成回路3)660Jと、第2の整流回路および平滑回路(整流回路2・平滑回路2)660Kと、第2の+24V生成回路(+24V生成回路2)660Lと、第2の+12V生成回路(+12V生成回路2)660Mと、第2の+5V生成回路(+5V生成回路2)660Nとを有する。
【0641】
電源制御部600は、パチンコ機100に外部から供給される単相交流100Vから整流平滑した電源をスイッチング方式で第1の電源系統(DC24V-1、DC12V-1、DC5V-1)として生成する。また、単相交流100Vから上記とは異なる整流平滑した電源を用いてスイッチング方式で第2の電源系統(DC24V-2、DC12V-2、DC5V-2)として生成する。
【0642】
球数制御部600における電源・信号使用用途は以下の通りである。DC24V-1は研磨モータ用電源として、DC12V-1は各種センサ604用電源、揚上モータ用電源、発射ソレノイド用電源および球送りソレノイド用電源として、DC5V-1はIC電源として、VBB-2はRAMバックアップ用電源として、電源遮断1は電源遮断検出用信号として、RAMクリアはRAMクリアスイッチ用信号として用いられる。
【0643】
主制御部300における電源・信号使用用途は以下の通りである。DC24V-1は各種モータおよびソレノイド用電源として、DC12V-1は各種センサ、モータ及びソレノイド用電源として、DC5V-1はIC電源として、VBB-1はRAMバックアップ用電源として、電源遮断2は電源遮断検出用信号として、RAMクリアはRAMクリアスイッチ用信号として用いられる。また夜間監視スイッチ692では、VBB-3がバックアップ電源として用いられる。
【0644】
第2副制御部500における電源・信号使用用途は以下の通りである。DC24V-2は電飾、モータ用及び損他電源生成用電源として、DC12V-1は電飾、モータ用及び損他電源生成用電源として、DC5V-2は、IC電源用、その他電源生成用電源として用いられる。
<バックアップ電源の動作原理>
【0645】
バックアップ電源の動作原理は、以下の通りである。主制御部300および球数制御部600は、電断・復電時(例えば停電復旧時など)に遊技状態の復旧を行うため電断発生時の遊技状態を電源遮断処理によりRAMに記憶し、バックアップ電源によりRAMの内容を保持する。
【0646】
パチンコ機100のバックアップ機能の構成として、図示は省略するがバックアップ電源部、電源監視回路、RAMクリアスイッチを備えており、5Vからバックアップ電源を3系統生成し、球数制御部600、主制御部300および夜間監視スイッチ692に出力する。また、電源を監視し、電源遮断時に電源遮断信号を2系統生成し、球数制御部600および主制御部300に出力する。
【0647】
バックアップしたRAMのデータを初期化する機能のためにRAMクリアスイッチを搭載しており、球数制御部600および主制御部300に出力する。生成した電源・信号は球数制御部600に供給を行い、主制御部300へは球数制御部600経由で電源・信号の供給を行う。
【0648】
主制御部300のバックアップを行う項目は例えば、大当たり状態(ラウンド回数も含む)、高確率・時短状態、保留メモリ(特別図柄、普通図柄)の乱数値、エラー状態、未送信コマンド、可動部材(普通電動役物、第1種特別電動役物)の動作状態などである。また球数制御部600のバックアップ項目は例えば、遊技球数、エラー状態、未送信コマンド、遊技情報、遊技台情報、(IC)カード情報などである。遊技台情報は例えば、主制御部300のCPU304の固有ID、球数制御部600のCPUの固有ID、遊技台のメーカーコード、セキュリティチップメーカーコード、遊技台の形式コード、流通コードなどである。またカード情報は、カードIDなどである。
【0649】
図56は、電源遮断処理においてRAMに設けた各記憶領域に記憶される項目の一例を示す概要図である。
【0650】
各記憶領域には、小さいアドレス番地(7F00H)から順に例えば、遊技球数(遊技球数記憶領域の値)、貸球数(貸球数記憶領域の値)、賞球数(賞球数記憶領域の値)、領域内球数異常状態(領域内球数エラーフラグの値)、電断時内枠開放回数(後述する)、電断時ガラス枠開放回数(後述する)、未送信コマンド、遊技台情報、カード情報、RWMチェックサム値、プログラム起動状態フラグ、電源状態情報、領域内球数(領域内球数記憶領域の値)などが格納される。以下これらの領域を、バックアップ領域と称する場合がある。
【0651】
そして、電断検出をしていない初期化処理(例えば、図12のステップS113、図16のステップS1011)ではこれらの記憶領域の全てを初期化(クリア)し、復帰起動時の復電時処理(図12のステップS111、図16のステップS1009)ではこれらのうち一部のみを初期化(クリア)する。つまり、所定のアドレス番地から所定のアドレス番地までの記憶領域で構成される第1の領域と、それ以降のアドレス番地で構成される第2の領域があり、初期化処理では第1の領域と第2の領域がクリアされ、復電時処理では後半の第2の領域のみがクリアされる。
【0652】
本実施形態では、領域内球数異常状態(領域内球数エラーフラグの値)は、第1の領域の記憶領域に格納され、領域内球数(領域内球数記憶領域の値)は、第2の領域の記憶領域に格納される。これにより、電断後の復電時には、球数制御部600は、領域内球数記憶領域に記憶された値をクリアする一方で、領域内球数エラーフラグの値は復電時にクリアせずその情報を維持し、報知することができる。
【0653】
また、第1の領域は、復帰起動時にクリアされないので、復帰条件が成立した場合(復電時処理)にRAMの所定の領域に設定される。すなわちバックアップ領域の遊技可能球数、貸球数、賞球数は、それぞれ復電時にRAMの遊技球数記憶領域、貸球数記憶領域、賞球数記憶領域に設定される。
【0654】
なお、領域内球数異常状態のバックアップ領域にはその他のエラー状態を記憶してもよい。また、イン球数(イン球数記憶領域の値)、アウト球数(アウト球数記憶領域の値)が第2の領域にバックアップされてもよい。
【0655】
このように球数制御部600は、各種のエラーの監視や報知などのエラー管理処理、およびこれに伴う各種処理を行う。以下これについて説明する。
<エラー管理処理>
【0656】
図57から図61を参照して、主に球数制御部600で行うエラー管理処理について説明する。図57から図61は、球数制御部600で行う処理の流れを説明するフローチャートであるが、ここでは主に、エラー管理処理の主要な流れについて説明する。なお、図57から図61のフローチャートでは、主制御部300から球数制御部600に通信確認コマンドを送信する処理(上述のシリアルコマンド管理処理)を球数制御部メイン処理で行う場合を例に示しており、その点では球数制御部タイマ割込み処理でシリアルコマンド管理処理を行う既述の球数制御部600(図16、図17、図35参照)の他の形態ということができる。
【0657】
図57は、球数制御部600のCPUが実行する処理について説明する図であり、同図(a)は、球数制御部600のメイン処理の流れを示すフローチャートであり、同図(b)は、球数制御部600のコマンド受信割込みのフローチャートである。なお、図16のフローチャートを参照して既に説明した処理(ステップ)と同様の処理については、詳細な説明を省略する。
【0658】
ステップS3101?ステップS3113は、図16のステップS1001?ステップS1013と同様である。なお、ステップS3109の復電時処理では、ステップS311の初期化処理よりも電源遮断処理において記憶される各種情報の記憶領域を少ない範囲で(第2の領域の記憶領域のみを)クリアする。
【0659】
ステップS3115は、主制御部300から入力したデータの中に未解析データがあるか無いかを判定し、未解析データがある場合にはステップS3117に進み、未解析データがない場合にはステップS3119に進む。ステップS3117ではコマンド解析処理を行う。これについては後に詳述する。
【0660】
ステップS3119では、未送信コマンドの有無を判定する。未送信コマンドがある場合は、ステップS3121に進み、そうでない場合は、ステップS3123に進む。
【0661】
ステップS3121では、コマンド出力処理を行う。コマンド出力処理は、ステップS3117のコマンド解析処理で設定したコマンドを出力する。
【0662】
ステップS3123?ステップS3127は、図16のステップS1019?ステップS1023と同様である。なおステップS3125の電断処理については、後に詳述する。
【0663】
同図(b)は、球数制御部600のコマンド受信割込みのフローチャートであり、図16(b)と同様である。ステップS3201では受信したコマンドを記憶する。
【0664】
図58は、図57(a)のコマンド解析処理(ステップS3121)と、電断処理(ステップS3125)の処理の流れを説明するフローチャートである。
【0665】
図58(a)を参照して、コマンド解析処理について説明する。
【0666】
ステップS3301では賞球コマンドの受信の有無を判定し、受信している場合は、ステップS3303に進み、そうでない場合はステップS3305に進む。
【0667】
ステップS3303では、賞球コマンド受信時の処理を行う。この処理では例えば、賞球数記憶領域の値を読出し、受信したコマンドの賞球数を加算して元の賞球数記憶領域に記憶する。また、遊技球数記憶領域の値に賞球数記憶領域の値を加算して賞球数記憶領域の値をクリアする。
【0668】
ステップS3305では、主制御部300からの通信確認コマンド(以下、主制御通信確認コマンド)を受信しているか否かを判定する。この主制御通信確認コマンドは、図28(d)に示した主制御部300のシリアルコマンド送信処理によって球数制御部600に送信されるものである。主制御通信確認コマンドを受信している場合は、ステップS3307に進み、そうでない場合は処理を終了する。
【0669】
ステップS3307では、受信した主制御通信確認コマンドが電源投入後最初の主制御通信確認コマンドであるか否かを判定する。最初の主制御通信確認コマンドである場合は、ステップS3309に進み、そうでない場合はステップS3313に進む。この主制御通信確認コマンドには、主制御部300が初期起動時であるか復帰起動時であるかの情報も含まれる。
【0670】
ステップS3309では、主制御通信確認コマンド受信済みフラグを設定する。当該フラグは例えばオン(または「1」)を設定した場合は受信済みを意味し、後の処理で当該フラグがオンの場合には、球数制御部タイマ割込み処理を実行する。
【0671】
なお、主制御通信確認コマンドが、初期起動であることを示す情報を含み、且つ球数制御部600の起動方法が復帰起動である場合は、球数制御部600の起動方法を初期起動とし、RAMの記憶領域の所定領域を初期化してもよい。復帰起動の場合は、図56に示すバックアップ領域の一部(第2の領域)の記憶領域のみが初期化されるのであるが、主制御部300が初期起動状態を示し、且つ球数制御部600が復帰起動の場合には、全てのバックアップ領域(第1の領域と第2の領域)を初期化するものとしてもよい。
【0672】
ステップS3311では、夜間枠開放エラーの有無を判定し、エラー情報をRAMのバックアップ領域に設定する。夜間枠開放エラーは以下のように判定する。内枠104を開放する毎に(内枠開放センサで開放が検出される度に)カウントされるカウンタIC(内枠開放カウンタ)を設け、内枠104の開放回数をカウントする。内枠104の開放回数は電源遮断時(夜間)でもカウンタICによってカウント可能とする。電断時に内枠開放カウンタの値をバックアップ領域の電断時内枠開放回数の記憶領域に格納する。最初の主制御通信確認コマンドを受信した場合に、バックアップ領域の電断時内枠開放回数と、内枠開放カウンタの値(現在の内枠開放回数)を比較し、不一致の場合は夜間枠開放エラーと判定するとともに、差分の回数をエラー情報としてRAMに記憶する。ガラス枠106の開放回数についても同様に、ガラス枠106を開放する毎にカウントされるカウンタIC(ガラス枠開放カウンタ)で開放回数をカウントし、電断時にガラス枠開放カウンタの値をバックアップ領域の電断時ガラス枠開放回数の記憶領域に格納して監視を行い、同様に判定する。
【0673】
ステップS3313では、主制御通信確認コマンド受信時の処理を行う。ここでは、主制御部300との通信エラー(主制御通信エラー)を監視するタイマエリア(主制御監視タイマ)に初期値(例えば「500」)を設定する(図35(b)参照)。
図58(b)を参照して、電断処理について説明する。
【0674】
ステップS3401では、割り込み禁止設定処理を行い、ステップS3403では、全出力ポートにクリアデータを出力し、ステップS3405では、サスペンド情報を設定する。
【0675】
ステップS3407では、内枠開放カウンタの値を電断時内枠開放回数のバックアップ領域に格納する。
【0676】
ステップS3409では、ガラス枠開放カウンタの値を電断時ガラス枠開放回数のバックアップ領域に格納する。
【0677】
ステップS3411ではチェックサムを算出する。例えば、RAMの所定の領域(例えば全ての領域)に記憶している1バイトデータを初期値が0である1バイト構成のレジスタに全て加算することによりチェックサムを算出する。
【0678】
ステップS3413ではRWMチェックサムエリアに算出結果を設定し、ステップS3415では、内蔵RAMアクセスの禁止設定を行う。
【0679】
図59を参照して、図57の球数制御部メイン処理を実行する場合の球数制御部割込み処理について説明する。同図は、図17に示す球数制御部割込み処理の他の形態のフローチャートであり、図17で説明した処理(ステップ)と同様の処理についてはその詳細な説明を省略する。
【0680】
ステップS3501では、レジスタ値を退避し、ステップS3503では、割り込みフラグをクリアし、ステップS3505では、WDTクリアおよびリスタートを行う。
【0681】
ステップS3507では、受信コマンドの処理を行う。この処理では、主制御部300からのコマンド受信(例えば、賞球コマンドの受信など)の有無を判定し、受信している場合は、受信したコマンドデータを受信コマンドバッファエリアに設定する。
【0682】
ステップS3509では、主制御通信確認コマンドを受信済みか否かを判定する。受信済みの場合は、ステップS3511に進み、そうでない場合はステップS3529に進む。主制御部300は球数制御部600から電源の供給を受けているため(図55参照)、その起動が球数制御部600より遅れる。このため、本ステップでは主制御部300が起動するまで、これ以降のステップS3511?ステップS3527の処理を待機するために判定処理を行う。
【0683】
ステップS3511?ステップS3517はそれぞれ、図17のステップS1201、ステップS1203、ステップS1205およびステップS1209と同様である。なお、ステップS3515のエラー管理処理については後に詳述する。
【0684】
ステップS3519では、遊技媒体経路管理処理を行い、ステップS3521では、遊技球数管理処理を行い、ステップS3523では、領域内球数管理処理を行う。これらの処理(ステップS3519?ステップS3523)については後述する。
【0685】
ステップS3525では、信号出力処理を行う。信号出力処理では、例えば、賞球が所定個数(例えば、10個)発生する毎に、所定時間(例えば128ms)賞球発生信号を管理装置620に出力する。また、内枠104またはガラス枠106の開放状態を検出している間、扉開放信号を管理装置620に出力する。なお、これらの信号を外部端子基板信号として出力するようにしてもよい。更にこれらの信号を、ステップS3517のIU通信処理で出力する場合は、本ステップは省略できる。
【0686】
ステップS3527では、送信コマンド設定処理を行う。送信コマンド設定処理では、球数制御部600から主制御部300に送信する、通信確認コマンド、エラーコマンド、賞球信号コマンドを設定する。
【0687】
ステップS3529ではレジスタ値を復帰し、ステップS3531では、割り込み許可設定を行う。
<エラー管理処理、遊技球数管理処理、領域内球数管理処理>
【0688】
図60を参照して、エラー管理処理、遊技球数管理処理、領域内球数管理処理について説明する。図60(a)は、エラー管理処理の流れを説明するフローチャートの一例であり、図60(b)は、遊技球数管理処理の流れを説明するフローチャートの一例であり、図60(c)は、領域内球数管理処理の流れを説明するフローチャートの一例である。
図60(a)を参照してエラー管理処理について説明する。
【0689】
ステップS3601では、内枠104の開放の有無をRAMに設けたエラーステータス記憶領域に記憶する。
【0690】
ステップS3603では、ガラス枠106開放の有無をRAMに設けたエラーステータス記憶領域に記憶する。
【0691】
ステップS3605では、主制御通信エラーの有無をRAMに設けたエラーステータス記憶領域に記憶する。主制御通信エラーは、主制御部300からの通信確認コマンド(主制御通信確認コマンド)の受信間隔が所定期間(例えば、1000ms)を超えた場合のエラーである。
【0692】
ステップS3607では、管理装置未接続エラーの有無をRAMに設けたエラーステータス記憶領域に記憶する。管理装置未接続エラーは、管理装置620との接続信号のオフを検出し、その状態が所定時間(例えば16ms)継続した場合のエラーである。
【0693】
ステップS3609では、管理装置通信エラーの有無をRAMに設けたエラーステータス記憶領域に記憶する。管理装置通信エラーは、管理装置620との通信において不正な入力を検知した場合のエラーである。例えば、球貸操作情報と球貸要求情報が不一致の場合などにエラーとなる。
【0694】
ステップS3611では、領域内球数エラーの有無をRAMに設けたエラーステータス記憶領域に記憶する。領域内球数が所定の範囲(例えば-20?+20)を超えた場合のエラーである。
【0695】
ステップS3613では、球検出センサエラーの有無をRAMに設けたエラーステータス記憶領域に記憶する。球数制御部600で検出する球検出センサ604B(減算センサ604Z、入賞検出センサ604S、非入賞検出センサ604K)が所定期間(例えば、1秒以上)継続して検知された場合のエラーである。
【0696】
ステップS3615では、カセットエラーの有無をRAMに設けたエラーステータス記憶領域に記憶する。カセットエラーは、球磨き装置612のカセットが未装着であることを検出した場合のエラーである。
【0697】
ステップS3617では、モータセンサエラーの有無をRAMに設けたエラーステータス記憶領域に記憶する。例えば、遊技媒体経路610の球磨きモータセンサ、揚上モータセンサ、布送りモータセンサが異常を検知した場合にエラーとなる。
【0698】
ステップS3619では、その他のエラーの有無をRAMに設けたエラーステータス記憶領域に記憶する。例えば、電源投入時のパチンコ機100の認証異常がある場合、カード挿入中以外での加算指示がある場合、主制御部300の球検出センサ320Bと球数制御部600の排出検出センサで通過の個数が不一致となる入賞数異常などの場合である。
【0699】
ステップS3621では、内枠104の開放毎に更新される内枠開放カウンタ(0?15)の現在の値を設定する。
【0700】
ステップS3623では、ガラス枠106の開放毎に更新されるガラス枠開放カウンタ(0?15)の現在の値を設定する。
【0701】
ステップS3625では、エラー解除スイッチ監視処理を行う。エラー解除スイッチ168が押下されている場合、球数制御部600の全てのエラーステータス記憶領域について、エラー解除時の設定を行う。
【0702】
ステップS3627では、エラー表示設定処理を行う。エラー表示設定処理は、エラー状態に応じて、遊技盤200の背面側に設けた基板表示部630のLEDの表示の更新を行う。
【0703】
図60(b)を参照して、遊技球数管理処理について説明する。
【0704】
ステップS3701では、遊技球数の更新条件が成立しているか否かを判定し、成立している場合はステップS3703に進み、そうでない場合は、ステップS3705に進む。遊技球数の更新条件は、球貸要求がある場合(球貸ボタン140のタッチによる球貸要求情報が管理装置620から球数制御部600に送信された場合)、賞球がある場合(賞球コマンドを球数制御部600が受信した場合)、減算センサ604Zで機内球710の通過を検出した場合、計数ボタン652の操作を検出した場合、再プレイボタン146が操作された場合、返却ボタン142が操作された場合のうちの少なくともいずれかである。
【0705】
ステップS3703では、遊技球数更新処理を行う。遊技球数更新処理では、遊技球数記憶領域に記憶されている値(遊技球数)と、貸球数記憶領域の値(貸球数)、賞球数記憶領域の値(賞球数)、イン球数記憶領域の値(イン球数)、計数球数記憶領域の値(計数球数)、再プレイ球数記憶領域の値(再プレイ球数)をそれぞれ読出し、球貸要求の場合は貸球数を遊技球数に加算、賞球がある場合は賞球数を遊技球数に加算、減算センサ604Zの検出がある場合はイン球数を遊技球数から減算、計数ボタン652の検出は遊技球数から減算、再プレイボタン146の操作がある場合は遊技球数に加算、返却ボタン142の操作がある場合は遊技球数から減算し、更新後の遊技球数をもとの遊技球数記憶領域に記憶する。
【0706】
ステップS3705では、遊技球数表示更新処理を行う。遊技球数表示更新処理では、球数表示部640に更新後の遊技球数を表示する。
【0707】
図60(c)を参照して、領域内球数管理処理について説明する。
【0708】
ステップS3801では、領域内球数更新条件が成立しているか否かを判定し、成立している場合はステップS3803に進み、そうでない場合は処理を終了する。領域内球数の更新条件は、減算センサ604Zで機内球710の通過を検出した場合、入賞検出センサ604Sで機内球710の通過を検出した場合、非入賞検出センサ604Kで機内球710の通過を検出した場合のうち、少なくともいずれかである。
【0709】
ステップS3803では、領域内球数更新処理を行う。領域内球数更新処理では、領域内球数記憶領域に記憶されている値(領域内球数)と、イン球数記憶領域の値(イン球数)、アウト球数記憶領域の値(アウト球数)をそれぞれ読出し、減算センサ604Zの検出がある場合は領域内球数にイン球数を加算、入賞検出センサ604Sまたは非入賞検出センサ604Kの検出がある場合は領域内球数からアウト球数を減算し、更新後の領域内球数をもとの領域内球数記憶領域に記憶する。
<遊技媒体経路管理処理>
【0710】
図61を参照して遊技媒体経路管理処理について説明する。図61(a)は、遊技媒体経路管理処理の流れを示すフローチャートであり、図61(b)は、研磨装置制御処理の流れを示すフローチャートであり、図61(c)は、揚上装置制御処理の流れを示すフローチャートである。
【0711】
図61(a)を参照して、遊技媒体経路管理処理について説明する。
【0712】
ステップS3901では、研磨装置制御処理(後述)を行い、ステップS3903では揚上装置制御処理(後述)を行う。
【0713】
ステップS3905では球送り装置制御処理を行う。球送り装置制御処理は、図42、図44(a)を参照して説明した処理と同様であるので、説明は省略する。
【0714】
ステップS3907では発射装置制御処理を行う。発射装置制御処理は、図43、図44(b)を参照して説明した処理と同様であるので、説明は省略する。なお、球送り装置制御処理と発射装置制御処理は、図45のように1つの連続した処理として行ってもよい。
【0715】
図61(b)を参照して、球磨き装置制御処理について説明する。
【0716】
ステップS4001では、球磨き装置612の駆動条件が成立しているか否かを判定する。成立している場合は、ステップS4003に進み、そうでない場合は処理を終了する。球磨き装置612の駆動条件は、球送り装置入口センサが遊技球を検知していない場合(非満タン状態である場合)で、且つ、カセットセンサ、研磨モータセンサ、布送りモータセンサのいずれもが正常である場合である。
【0717】
ステップS4003では球磨き装置駆動処理を行う。球数制御部600は、球磨き装置入口センサにより機内球710が球入口に進入したことを検知すると、球磨きモータを駆動する。球磨きモータはギアを介してスクリューと接続しており、スクリューの回転によって機内球710を研磨布で研磨しながら球出口まで搬送する。球出口から排出された機内球は揚上装置614に受け渡される。
【0718】
図61(c)を参照して、揚上装置制御処理について説明する。
【0719】
ステップS4101では、揚上装置614の駆動条件が成立しているか否かを判定する。成立している場合は、ステップS4103に進み、そうでない場合は処理を終了する。揚上装置614の駆動条件は、球送り装置入口センサが遊技球を検知していない場合(非満タン状態である場合)で、且つ、揚上モータセンサが正常である場合である。
【0720】
ステップS4103では揚上装置駆動処理を行う。球数制御部600は、揚上装置入口センサにより機内球710が球入口に進入したことをが検知すると、揚上モータを駆動する。揚上モータはギアを介してスクリューと接続しており、スクリューの回転によって機内球が1球ずつ、パチンコ機100の上部に搬送される。球出口から排出された機内球は、球送り装置616に受け渡される。
【0721】
図62は、図60(b)の遊技球数管理処理および同図(c)の領域内球数管理処理における、球検出センサ604B(減算センサ604Z、入賞検出センサ604Sおよび非入賞検出センサ604K)の検出による機内球710の状態(通過)判定の一例を示す図である。これらの球検出センサ604B判定方法は、既述の主制御部300の球検出センサ320Bによる判定方法と同様であるが、I/Oの入力ポート状態とそれに基づく各センサ604Z、604S、604Kのレベル状態について、概要図を用いて説明する。
【0722】
球数制御部600は、I/Oの入力ポートを介して、減算センサ604Z、入賞検出センサ604Sおよび非入賞検出センサ604Kの検出信号を入力して検出信号の有無を監視し、RAMに各種センサ604Z、604S、604K320ごとに区画して設けた信号状態記憶領域に記憶する。検出の間隔は、球数制御部600のタイマ割込み処理の周期(2ms)である。
【0723】
減算センサ604Zの検出信号を例にして説明すれば、前々回のタイマ割込処理(約4ms前)で検出した各々の球検出センサの検出信号の有無の情報を、RAMに設けた前回検出信号記憶領域から読み出し、この情報をRAMに設けた前々回検出信号記憶領域に記憶し、前回のタイマ割込処理(約2ms前)で検出した各々の球検出センサの検出信号の有無の情報を、RAMに設けた今回検出信号記憶領域から読み出し、この情報を上述の前回検出信号記憶領域に記憶する。また、今回検出した減算センサの検出信号を、上述の今回検出信号記憶領域に記憶する。
【0724】
この前々回検出信号記憶領域、前回検出信号記憶領域、および今回検出信号記領域の各記憶領域に記憶した減算センサ604Zの検出信号の有無の情報を比較し、過去3回分の検出信号の有無の情報(今回レベル状態、前回レベル状態、前々回レベル状態)が入賞判定パターン情報と一致するか否かを判定する。一個の機内球710が一つの減算センサ604Zを通過する間に、約2msという非常に短い間隔で球数制御部タイマ割込処理が起動する度に、同じ機内球710が同じ減算センサ604Zを通過したことを表す検出信号(レベル状態)を確認することになる。この結果、上述の前々回検出信号記憶領域、前回検出信号記憶領域、および今回検出信号記領域それぞれに、同じ機内球710が同じ減算センサ604Zを通過したことを表す検出信号が記憶される。すなわち、機内球710が減算センサ604Zを通過し始めたときには、前々回検出信号無し(レベル状態「0」)、前回検出信号有り(レベル状態「1」)、今回検出信号有り(レベル状態「1」)になる(状態(3))。この場合には、通過があったと判定する。つまり、図62に示す過去3回分のレベル状態が、予め定めた通過判定パターン情報(本実施形態では、前々回レベル状態「0」、前回レベル状態「1」、今回レベル状態「1」)と一致した場合(状態(3))に、減算センサ604Zを機内球710が通過したと判定する(アップエッジ状態)。なお、球数制御部600のROMには、通過判定クリアパターン情報(本実施形態では、前々回レベル状態「1」、前回レベル状態「1」、今回レベル状態「0」)が記憶されている。通過が一度あったと判定した後は、減算センサ604Zにおいて過去3回分の検出信号の有無の情報が、その通過判定クリアパターン情報に一致するまで通過があったとは判定せず(状態(5)においてアップエッジ状態「0」)、通過判定クリアパターン情報に一致すれば、次からは上記通過判定パターン情報に一致するか否かの判定を行う。入賞検出センサ604K、非入賞検出センサ604Sについても同様である。
【0725】
図63を参照して、エラー発生時の報知態様の一例について説明する。
【0726】
報知するエラー(異常)は例えば、磁気センサ検知時、電波センサ検知時、振動センサ検知時、認証エラー、通信異常、入賞数異常、ガラス枠106・内枠104の開放時、加算異常、近接センサ異常、領域内球数異常、夜間枠開放時、などである。磁気センサ、電波センサ、振動センサは主制御部300にて検出される。認証エラー、通信異常、入賞数異常、ガラス枠106・内枠104の開放、加算異常、近接センサ異常、領域内球数異常、夜間枠開放は、球数制御部600にて検出される。図中丸印が報知を行うものである。報知態様は、主制御部300の所定の処理をスキップする遊技停止、機内球710の発射を停止する発射停止、所定の音声で報知する音声出力、所定のパターンでランプを発光させるランプ点灯、所定の画像(文字)を液晶表示装置に表示する液晶表示、球数UI部680(画像表示部656)に表示するUI表示、外部装置(管理装置620やホールコンピュータなど)に情報を出力する外部出力、などである。遊技停止による報知は主制御部300が制御し、発射停止による報知は球数制御部600が制御し、音声出力、ランプ点灯および液晶表示による報知は副制御部(第1副制御部400または第2副制御部500)が制御し、UI表示による報知は球数UI部680が、外部出力による報知は管理装置620がそれぞれ制御する。
【0727】
例えば、遊技停止による報知では、主制御部タイマ割込み処理の例えば、演出乱数更新処理(ステップS211)とタイマ更新処理(ステップS213)の間で、磁気センサ検知、認証エラー、通信異常、入賞数異常の有無を判定し、いずれかに異常がある場合は、電断検出判定(ステップS235)に進む。タイマ更新処理(ステップS213)からデバイス監視処理(ステップS233)までの処理をスキップすることにより、遊技停止状態となる。なお、エラーの種類と報知態様の組合せは図示したものに限らない。またこれ以外のエラーを報知してもよい。
<液晶表示装置を用いた第1のエラー報知態様>
【0728】
図64は、液晶表示装置を用いたエラー情報の報知態様の一例を示す概要図である。本実施形態では、各種のエラー情報を例えば第1副制御部400によって液晶表示装置(装飾図柄表示装置208)に表示する第1の報知態様と、管理装置620によって球数UI部680の液晶表示装置(情報表示部656)に表示する第2の報知態様で報知することができる。
【0729】
一例を挙げると、球数制御部600は、第1のエラー情報(例えば、夜間枠開放エラー情報など)を含む第1のコマンドを、球数制御部割込み処理の送信コマンド設定処理(図59のステップS33527)により設定し、主制御部300に出力するとともに、当該第1のエラー情報を含む含む第二のコマンドをIU通信処理(図59ステップS3517)により管理装置620に出力する。第1のコマンドを受信した主制御部300は、第1副制御部400にエラーの報知を指令し、第1副制御部400はエラー情報を含む画像を生成して、装飾図柄表示装置208に表示する。
【0730】
また、第2のコマンドを受信した管理装置620は、エラー情報に基づく画像を生成し、球数UI部680にエラー表示を指令する。球数UI部680は当該画像を、画像表示部656に表示する。
【0731】
図65は、例えば、球数制御部600で検出したエラー情報(例えば、夜間開放エラーの情報)を装飾図柄表示装置208および球数UI部680で報知するまでのタイムチャートの一例を示す。図面の縦軸方向、上から下に時間が経過する。
【0732】
例えば、閉店後に電源が遮断されると(1)、球数制御部600では電断時処理として、電断時の内枠開放回数とガラス枠開放回数を記憶する(2)。電断後(夜間)に枠開放が生じると(3)、カウンタICによって枠開放回数が加算される(4)。翌朝など開店時に電源が投入され(5)、主制御部300が起動すると、最初の主制御通信確認コマンドが球数制御部600に送信される(6)。球数制御部600は、主制御部300より先に起動している場合であっても、主制御通信確認コマンドの受信があるまでエラー管理処理やコマンド送信処理等を待機する(球数制御部メイン処理のコマンド解析処理(図58(a))および球数制御部割込み処理(図59)参照)。球数制御部600は、主制御通信確認コマンドを受信すると、通信確認コマンドを主制御部300に送信する(7)。その後、エラー管理処理によって例えば夜間枠開放エラーを検出し、当該エラー情報を含む第1のコマンド(エラーコマンド)を主制御部300に送信する(8)。また当該エラー情報を含む第2のコマンド(エラーコマンド)を管理装置620に送信する(9)。第1のコマンドを受信した主制御部300は、これに含まれるエラー情報に基づき、副制御部(第1副制御部400)にエラー報知を指令する(10)。第1副制御部400はエラーを報知する画像を生成し、装飾図柄表示装置208に表示する(11)。
【0733】
一方、第2のコマンドを受信した管理装置620は、これに含まれるエラー情報に基づき、エラー報知画像を生成し、球数UI部680にエラー報知画像の表示を指示する(12)。
【0734】
図66は、装飾図柄表示装置208に表示する画像の表示例(同図(a))と、球数UI部680に表示する画像の表示例(同図(b))を示す。
【0735】
例えば、装飾図柄表示装置208にはエラー情報を示す画像として「夜間開放エラー」というエラー検出を示す文字と、「夜間に5回内枠が開放されました」というエラーの詳細な内容を示す文字を表示する。装飾図柄表示装置208は表示面積が大きく多くの情報を表示でき、また多彩で目立つ印象の画像を表示することができる。
【0736】
一方、球数UI部680の画像表示部656には、通常表示される遊技球に関する情報を報知する情報報知画像802と共に、エラー情報を示す画像として「夜間開放エラー」というエラー検出を示す文字のみを、装飾図柄表示装置208に表示される画像と比較するとシンプルな表示態様で表示する。このようにすることで、エラーの報知に多様性を持たせることができる。
<液晶表示装置を用いた第2のエラー報知態様>
【0737】
パチンコ機100は、開店時の電源投入時には、装飾図柄表示装置208のエラー情報の画像より早期に、球数UI部680でエラー情報を表示することができる。以下これについて説明する。
【0738】
既述の如く主制御部300は、球数制御部600から電源の供給を受けているため(図55参照)、その起動が球数制御部600より遅れる。また、主制御部300は、所定の遅延処理(例えば、セキュリティーモードの固定延長処理やランダム延長処理、低電圧信号判定処理(ステップS105)、副制御部起動待ち処理など)を行うことでその起動が球数制御部600より遅れる。このため、第1のエラー報知態様で報知する、図57?図59のフローチャートで示した球数制御部600の処理では、主制御部300が起動し、最初の主制御通信確認コマンドを受信するまで、球数制御部600のエラー管理処理やコマンド送信処理などを待機している。
【0739】
第2のエラー報知態様は、装飾図柄表示装置208のエラー情報の画像より先に、球数UI部680でエラー情報を表示するものであり、これを実現する球数制御部600の処理について、説明する。
【0740】
図67および図68は、第2のエラー報知態様による報知が可能な、球数制御部600の主要な処理の流れを示すフローチャートである。第1のエラー報知態様を行う場合の処理と異なる部分を示しており、図67(a)はコマンド解析処理、図67(b)は電断処理、図68は球数制御部割込み処理のそれぞれの流れを示すフローチャートである。各フローチャートにおけるそれぞれのステップの内容は、第1のエラー報知態様の場合(図58および図59)と同様であり、説明は省略する。なお図58および図59の対応するステップを、括弧書きで付記する。
【0741】
図67(a)を参照して、コマンド解析処理について説明する。
【0742】
ステップS4201では賞球コマンドの受信の有無を判定し(ステップS3301)、受信している場合は、ステップS4203に進み、そうでない場合はステップS4205に進む。
【0743】
ステップS4203では、賞球コマンド受信時の処理を行う(ステップS3303)。ステップS4205では、主制御通信確認コマンドを受信しているか否かを判定する(ステップS3305)。主制御通信確認コマンドを受信している場合は、ステップS4207に進み、そうでない場合は処理を終了する。
【0744】
ステップ4207では、受信した主制御通信確認コマンドが電源投入後最初の主制御通信確認コマンドであるか否かを判定する(ステップS3307)。最初の主制御通信確認コマンドである場合は、ステップS4209に進み、そうでない場合はステップS4211に進む。
【0745】
ステップS4211では、主制御通信確認コマンド受信処理を行う(ステップS3313)。
図67(b)を参照して、電断処理について説明する。
【0746】
ステップS4301では割り込み禁止設定処理(ステップS3401)を行い、ステップS4303では、全出力ポートにクリアデータを出力し(ステップS3403)、ステップS4305では、サスペンド情報を設定する(ステップS3405)。
【0747】
ステップS4307では、RAMのバックアップ領域に起動時情報出力フラグの初期値を設定する。起動時情報出力フラグは、例えば、パチンコ機100の起動時(電源投入時)に球数UI部680に情報を表示するか否かを示すフラグであり、例えばオン(または「1」)の場合は、情報を表示することを示す。
【0748】
ステップS4309では、内枠開放カウンタの値を電断時内枠開放回数のバックアップ領域に格納する(ステップS3407)。
【0749】
ステップS4311では、ガラス枠開放カウンタの値を電断時ガラス枠開放回数のバックアップ領域に格納する(ステップS3409)。
【0750】
ステップS4313ではチェックサムを算出する(ステップS3411)。
【0751】
ステップS4315ではRWMチェックサムエリアに算出結果を設定し(ステップS3413)、ステップS4317では、内蔵RAMアクセスの禁止設定を行う(ステップS3415)。
【0752】
図68を参照して、球数制御部割込み処理について説明する。
【0753】
ステップS4401では、レジスタ値を退避し(ステップS3501)、ステップS4403では、割り込みフラグをクリアし(ステップS3503)、ステップS44405では、WDTクリアおよびリスタートを行う(ステップS3505)。ステップS4407では、受信コマンドの処理を行う(ステップS3507)。
【0754】
ステップS4409では、起動時情報出力フラグを判定し、オンの場合はステップS4411に進み、そうでない場合(オフまたは「0」の場合)は、ステップS4417に進む。電源投入後最初の球数制御部割込み処理では、初期値の「オン」が設定されている(図68(b)参照)。
【0755】
ステップS4411では、起動時情報出力フラグにオフ(または「0」)をセットする。
【0756】
ステップS4413では、夜間枠開放エラーの有無を判定し、エラー情報をRAMのバックアップ領域に設定する(ステップS3311)。
【0757】
ステップS4415では、送信コマンド設定処理を行う(ステップS3527)。これにより、球数制御部600は起動後、主制御部300の起動を待機せずに、所定のコマンド(例えば、夜間開放エラー情報を含むコマンドなど)を、管理装置620に送信することができる。
【0758】
ステップS4417では、主制御通信確認コマンドを受信済みか否かを判定する(ステップS3509)。受信済みの場合は、ステップS4419に進み、そうでない場合はステップS4437に進む。
【0759】
以降のステップS4419?ステップS4439の処理は、ステップS3511からステップS3531までと同様である。
【0760】
図69は、例えば、球数制御部600で検出したエラー情報(例えば、夜間開放エラーの情報)を装飾図柄表示装置208および球数UI部680で報知するまでの、第2のエラー報知態様によるタイムチャートの一例を示す。図面の縦軸方向、上から下に時間が経過する。
【0761】
例えば、閉店後に電源が遮断されると(1)、球数制御部600では電断時処理として、電断時のうち枠開放回数とガラス枠開放回数を記憶する(2)。電断後(夜間)に枠開放が生じると(3)、カウンタICによって枠開放回数が加算される(4)。翌朝など開店時に電源が投入されると(5)、まず電源制御部600から直接が電源が供給される球数制御部600が起動する。電源投入後に起動時情報フラグがオンになっており(図67(b)参照)、球数制御部600は、夜間枠開放エラーを検出し、当該エラー情報を含む第2のコマンド(エラーコマンド)を管理装置620に送信する(6)
【0762】
第2のコマンドを受信した管理装置620は、これに含まれるエラー情報に基づき、エラー報知画像を生成し、球数UI部680にエラー報知画像の表示を指示する(7)。
【0763】
球数制御部600の起動後に、球数制御部600から電源供給を受けて主制御部300が起動すると、最初の主制御通信確認コマンドが球数制御部600に送信される(8)。主制御通信確認コマンドを受信すると、通信確認コマンドを主制御部300に送信する(9)。その後、エラー情報を含む第1のコマンド(エラーコマンド)を主制御部300に送信する(10)。第1のコマンドを受信した主制御部300は、これに含まれるエラー情報に基づき、副制御部(第1副制御部400)にエラー報知を指令する(11)。第1副制御部400はエラーを報知する画像を生成し、装飾図柄表示装置208に表示する(12)。
【0764】
このような処理によって、電源投入時に球数UI部680にエラー情報が表示され、その後主制御部300および第1副制御部400が起動し、装飾図柄表示装置208が起動した後、これにもエラー情報が表示される。
【0765】
図70は、装飾図柄表示装置208に表示する画像の表示例(同図(a))と、球数UI部680に表示する画像の表示例(同図(b))を示す。
【0766】
例えば、球数UI部680は起動すると直ちに、画像表示部656に電源投入後通常表示される遊技球に関する情報を報知する情報報知画像802と共に、エラー情報を示す画像として「夜間開放エラー」というエラー検出を示す文字のみを表示する。装飾図柄表示装置208の起動前あるいは起動準備中であっても、エラー情報を速報できる。球数UI部680は、装飾図柄表示装置208に表示される画像と比較するとシンプルな表示態様でエラー情報を含む画像を表示する。また、球数UI部680の球数表示部640は、球数制御部600で制御されるので、これにエラーを示す情報(例えば、ERRxxや、E9999)を表示してもよい。
<液晶表示装置を用いた第3のエラー報知態様>
【0767】
図71は、液晶表示装置を用いた第3のエラー報知態様を示す図であり、球数UI部680の上面(正面)図である。
【0768】
図70(a)は、管理装置620によって生成されたエラー表示の画像の表示例である。この場合、切替ボタン144のタッチによって、装飾図柄表示装置208に表示されるエラー情報を示す画像を、球数UI部680の画像表示部656に表示できる。
【0769】
図70(b)が切替後の表示例であり、例えば、第1副制御部400が生成した、「夜間開放エラー」というエラー検出を示す文字と、「夜間に5回内枠が開放されました」というエラーの詳細な内容を示す文字を表示できる。この場合、タッチパネル654のうち、切替ボタン144のみ(同じ位置で)表示し、他のボタンは表示しないようにしてもよく、これによりエラー情報の表示領域を大きく確保できる。
【0770】
また、エラーの詳細情報(例えば、内枠104の開放回数)は、球数制御部600で管理されるので、その情報を管理装置620に送信し、同図(b)に示す画像を管理装置620で生成してもよい。電源投入直後には、同図(a)のエラー情報を速報し、切替ボタン144をタッチすることによって、管理装置620が生成した同図(b)の情報を表示させる。これにより、装飾図柄表示装置208が起動準備中であっても、エラーの詳細な情報を表示させることができる。
【0771】
なお、イン球数およびアウト球数を管理する領域内球数管理処理について、電断発生時に領域内球数が存在する場合であっても、電源投入時には新たに、領域内球数管理処理を行ってもよい。
【0772】
また、電断発生時に領域内球数が「0(ゼロ)」以外であっても、電源投入時には新たに、領域内球数管理処理を行ってもよい。
【0773】
また、電源投入時にRAM(バックアップ領域)の領域内球数情報(領域内球数)の記憶領域をクリアしてもよい。
【0774】
また、電源投入時に復帰起動処理を行う場合であっても、RAM(バックアップ領域)の領域内球数を記憶する領域をクリアしてもよい。
【0775】
また、電源投入時にRAM(バックアップ領域)の領域内球数を記憶する領域に所定値(例えば0)を設定してもよい。
【0776】
また、領域内球数が所定値(例えば、-20以下または20以上)となった場合に異常が発生したと判定する異常判定手段を備えてもよい。
【0777】
前記所定値は、プラスの値の自然数よりマイナスの値の自然数が少なくてもよい(例えば、-1以下または20以上)。
【0778】
また、更新条件(球検出センサ604Bの通過)が成立した場合に更新される第一の情報(領域内球数)を記憶可能な記憶手段と、前記第一の情報が所定値となった場合に異常が発生したと判定する判定手段と、を備え、前記判定手段が前記異常が発生したと判定した場合に第二の情報(領域内球数エラー情報)を前記記憶手段が記憶するようにしてもよい。
【0779】
また、第一の情報が記憶された記憶手段のアドレスよりも、第二の情報が記憶された記憶手段のアドレスのほうが小さくてもよい。
【0780】
また、遊技者の利益情報が記憶された記憶手段のアドレスよりも、第二の情報が記憶された記憶手段のアドレスのほうが大きくてもよい。
【0781】
また、領域内球数を外部機器に出力してもよい。また、領域内球数を報知手段で報知してもよい。また、領域内球数を球数表示部640で報知してもよい。また、領域内球数を副制御部(第1副制御部400または第2副制御部500)が制御する表示装置で報知してもよい。また、領域内球数を外部機器が制御する表示装置で報知してもよい。また、領域内球数エラー情報を外部機器に出力してもよい。また、領域内球数エラー情報を報知手段で報知してもよい。また、領域内球数エラー情報を球数表示部640で報知してもよい。また、領域内球数エラー情報を副制御部が制御する表示装置で報知してもよい。また、領域内球数エラー情報を外部機器が制御する表示装置で報知してもよい。
【0782】
また、球数制御部600は、非遊技状態(カード未挿入状態の場合、遊技球数が「0」の場合、球発射ハンドル134のタッチセンサがオフである場合、またこれらのうちいずれかの状態となってから所定時間経過した場合など)を検出した場合に、主制御部300に省電力要求コマンドを出力し、主制御部300は、副制御部に省電力要求コマンドを出力し、副制御部は、省電力要求コマンドが入力された場合に、省電力状態に移行するようにしてもよい。
【0783】
また、第一の情報が記憶された記憶手段のアドレスの上位バイトの値は、第一のレジスタ(Tレジスタ)が記憶する特定の値であってもよい。
【0784】
また、第二の情報が記憶された記憶手段のアドレスの上位バイトの値は、第一のレジスタ(Tレジスタ)が記憶する特定の値であってもよい。
【0785】
復帰制御条件は、夜に第二の信号が制御手段に入力され、次の日の朝に該制御手段に第一の信号が入力された場合であっても、バックアップ電源が残っていれば、成立する場合がある。
【0786】
また、第二の信号が制御手段に入力されてから該制御手段に第一の信号が入力されるまでのタイムラグは、極短時間(例えば、数ナノs、数マイクロs、数ミリs等)から長時間(例えば、数時間、半日、一日、数日等)様々な時間が考えられる。
【0787】
また、バックアップ電源が残存していればある程度の長時間のタイムラグを許容できるものである。
【0788】
なお、第一の制御手段が球数制御部600であり、第二の制御手段が主制御部300であってもよい。また、第一の制御手段が球数制御部600であり、第二の制御手段が主制御部300と第一副制御部400であってもよい。また、第一の制御手段が球数制御部600であり、第二の制御手段が主制御部300と第一副制御部400と第二副制御部500であってもよい。また、第一の制御手段が球数制御部600と主制御部300であり、第二の制御手段が第一副制御部400であってもよい。また、第一の制御手段が球数制御部600と主制御部300であり、第二の制御手段が第一副制御部400と第二副制御部500であってもよい。
【0789】
また、第二の制御手段は複数の副制御手段から構成され、複数の副制御手段のうちのそれぞれの副制御手段は別の基板に設けられていてもよい。
【0790】
また、第一の制御手段は、異常判定手段による判定結果が特定の判定結果であった場合に、異常発生中フラグをオンにするように構成され、第一の信号出力条件は、異常発生中フラグがオンであることを少なくとも含むものであってもよい。
【0791】
また、第一の制御手段は、異常判定手段による判定結果が特定の判定結果であった場合に、異常発生中フラグをオンにするように構成され、第二の信号出力条件は、異常発生中フラグがオンであることを少なくとも含むものであってもよい。
【0792】
第一及び第二の信号出力条件に含まれる特定の判定結果は同一のものであってもよい。
【0793】
第一及び第二の信号出力条件に含まれる異常発生中フラグは同一のものであってもよい。
【0794】
以上、第1の実施形態について説明したが、第1の実施形態に係る封入式遊技台における機能(例えばシリアル通信回路、シリアル通信処理)の一部または全てを、後述する実施形態2以降で説明する遊技台に適用することもできる。例えば、第1の実施形態における主制御部300と球数制御部600間のシリアル通信処理を、以下に説明する実施形態2以降の、主制御部300と払出制御部600間の通信処理に適用することが可能である。
【0795】
また、次の実施形態2以降で説明する遊技台(例えば、実施形態2に係るパチンコ機100や、実施形態3に係るスロットマシン1100など)が備える構成の一部または全てや、当該遊技台が実行する処理の一部または全てを、本実施形態に係る封入式遊技台(パチンコ機100)に適用することもできる。
【0796】
例えば、実施形態2に係るパチンコ機100が備えるROM306、RAM308、内蔵レジスタ、メモリ空間、I/O空間、LD命令、CALL命令、EXESUB命令、特殊命令、第2特殊命令、第3特殊命令、第4特殊命令などの構成の一部または全てを、本実施形態に係る封入式遊技台が備えていてもよい。
【0797】
また、実施形態2に係るパチンコ機100が実行する主制御部メイン処理、主制御部タイマ割込処理、初期化処理、Tレジチェック処理、特図状態更新処理、普図状態更新処理、特別図柄変動時間抽選処理、初期設定処理などの各種処理の一部または全てを、本実施形態に係る封入式遊技台が実行してもよい。
【0798】
また、実施形態3に係るパチンコ機が実行する主制御部メイン処理、主制御部タイマ割込処理、リセットが実行された場合の処理、電断時処理、特図当選乱数および普図当選乱数を取得する処理などの各種処理の一部または全てを、本実施形態に係る封入式遊技台が実行してもよい。
【0799】
また、実施形態4に係るパチンコ機が備えるCPU304、ROM306、RAM308、外部バス制御回路3110、パラレル入力ポート3102、アドレスデコード回路3103、タイマ回路311、カウンタ回路312、リセット制御回路314、割込み制御回路3100、クロック回路3200、乱数生成回路318などの構成の一部または全てを、本実施形態に係る封入式遊技台が備えていてもよい。
【0800】
例えば、他の実施形態や実施形態9に係るパチンコ機が備える第5特殊命令(WARU命令)、パッケージ、ICソケット、コネクト部、ソケット端子、配線パターン、基板などの構成の一部または全てや、当該遊技台が実行する実行する主制御部メイン処理、主制御部タイマ割込処理、固定延長処理、ランダム延長処理、タイマ更新処理などの処理の一部または全てを本実施形態に係る封入式遊技台が備えていてもよい。
【0801】
また、実施形態7に係るパチンコ機が実行する乱数取得判定/取得処理などの各種処理の一部または全てを、本実施形態に係る封入式遊技台が実行してもよい。
【0802】
また、実施形態8に係るパチンコ機が備える乱数回路などの構成や、実施形態8に係るパチンコ機が実行する乱数取得処理などの処理の一部または全てを、本実施形態に係る封入式遊技台が備えていてもよい。
【0803】
また、実施形態10に係るパチンコ機が実行するハードラッチ、ソフトラッチ、乱数取得処理、入力ポート状態更新処理における入賞パターン判定などの処理の一部または全てを、本実施形態に係る封入式遊技台が実行してもよい。
【0804】
また、本実施形態に係る遊技台(例えば、パチンコ機100)は、マイクロプロセッサを備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、前記マイクロプロセッサは、CPUを内蔵するマイクロプロセッサであり、前記マイクロプロセッサは、ROMを内蔵するマイクロプロセッサであり、前記ROMは、複数種類の命令で構成された制御プログラムが記憶されており、前記CPUは、複数種類のレジスタを有し、前記複数種類のレジスタのうちの一のレジスタ(以下、「第三のレジスタ」という。)は、フラグレジスタであり、前記第三のレジスタは、複数のビットから構成されるレジスタであり、前記複数のビットのうちの一のビット(以下、「第一のビット」という。)は、第一のゼロフラグ(例えば、Zフラグ)として機能するビットであり、前記複数のビットのうちの一のビット(以下、「第二のビット」という。)は、第二のゼロフラグ(例えば、SZフラグ)として機能するビットであり、前記CPUは、前記複数種類の命令を実行可能であり、前記複数種類の命令のうちの一の命令(以下、「第一の命令」という。)は、ジャンプ先アドレスを特定可能に構成された演算&ジャンプ命令(例えば、CPJPNZ命令)であり、前記第一の命令は、前記複数種類のレジスタのうちの一のレジスタ(以下、「第一のレジスタ」という。)の値に基づいて動作することを特定可能に構成されており、前記CPUは、前記第一の命令を受け付けた場合に、前記第一のレジスタの値から0を減算する演算を行い、該演算の結果が0ではない場合に、前記第一のゼロフラグおよび前記第二のゼロフラグ(以下、「2つのゼロフラグ」という。)をクリアし、前記ジャンプ先アドレスにジャンプする動作を実行するように構成され、前記CPUは、前記第一の命令を受け付けた場合に、前記第一のレジスタの値から0を減算する演算を行い、該演算の結果が0である場合に、前記2つのゼロフラグをセットし、該第一の命令の後続の命令を実行するように構成されており、前記第一のレジスタは、アキュムレータおよび汎用レジスタのうちの一方のレジスタであり、前記複数種類の命令のうちの一の命令(以下、「第二の命令」という。)は、演算&リターン命令(例えば、CPRTNZ命令)であり、前記第二の命令は、前記複数種類のレジスタのうちの一のレジスタ(以下、「第二のレジスタ」という。)の値に基づいて動作することを特定可能に構成されており、前記CPUは、前記第二の命令を受け付けた場合に、前記第二のレジスタの値から0を減算する演算を行い、該演算の結果が0ではない場合に、前記2つのゼロフラグをクリアし、呼び出し元の処理に復帰する動作を実行するように構成され、前記CPUは、前記第二の命令を受け付けた場合に、前記第二のレジスタの値から0を減算する演算を行い、該演算の結果が0である場合に、前記2つのゼロフラグをセットし、該第二の命令の後続の命令を実行するように構成されており、前記第二のレジスタは、アキュムレータおよび汎用レジスタのうちの一方のレジスタであり、前記CPUによって、前記遊技台の遊技制御が行われる、ことを特徴とする遊技台である。
本実施形態に係る遊技台によれば、改良したマイクロプロセッサが搭載された遊技台を提供できる場合がある。
また、前記第一のビットと前記第二のビットは、前記複数のビットのうちの別のビットであってもよい。また、主制御手段(例えば、主制御部300)と、払出制御手段(例えば、払出制御部600)と、を備え、前記遊技制御は、前記主制御手段による制御(以下、「主制御」という。)および前記払出制御手段による制御(以下、「払出制御」という。)を含む制御であり、前記主制御手段は、前記払出制御手段に対してコマンド信号を送信可能であり、前記マイクロプロセッサは、前記主制御手段および前記払出制御手段のうちの少なくとも一方の手段に設けられており、前記CPUによって、前記主制御および前記払出制御のうちの少なくとも一方の制御が行われるものでもよい。
また、前記第一のレジスタは、前記アキュムレータであってもよい。また、前記CPUは、複数種類の前記汎用レジスタ(以下、「複数種類の汎用レジスタ」という。)を備えており、前記複数種類の汎用レジスタとは、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ、B’レジスタ、C’レジスタ、D’レジスタ、E’レジスタ、H’レジスタおよびL’レジスタの12種類のレジスタのことであり、前記第一のレジスタは、前記複数種類の汎用レジスタのうちの一の汎用レジスタであってもよい。また、前記第二のレジスタは、前記アキュムレータであってもよい。また、前記CPUは、複数種類の前記汎用レジスタ(以下、「複数種類の汎用レジスタ」という。)を備えており、前記複数種類の汎用レジスタとは、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ、B’レジスタ、C’レジスタ、D’レジスタ、E’レジスタ、H’レジスタおよびL’レジスタの12種類のレジスタのことであり、前記第二のレジスタは、前記複数種類の汎用レジスタのうちの一の汎用レジスタであってもよい。
また、本実施形態に係るパチンコ機100は、マイクロプロセッサ(例えば、マイクロプロセッサ3000)を少なくとも備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、前記マイクロプロセッサは、CPU(例えば、CPU304)が少なくとも搭載されたものであり、前記マイクロプロセッサは、ROM(例えば、ROM(内蔵ROM)306)が少なくとも搭載されたものであり、前記マイクロプロセッサは、乱数回路(例えば、乱数生成回路318)が少なくとも搭載されたものであり、前記ROMは、ユーザプログラムが少なくとも記憶されたものであり、前記ユーザプログラムは、第一の処理(例えば、主制御部メイン処理)のプログラムを少なくとも含むプログラムであり、前記ユーザプログラムは、第二の処理(例えば、主制御部タイマ割込処理)のプログラムを少なくとも含むプログラムであり、前記乱数回路は、設定された値の範囲で、乱数値を発生可能なものであり、前記第一の処理は、前記CPUがリセットされた場合に、先頭から開始される処理であり、前記第二の処理は、割込みの発生に応じて、先頭から開始される処理であり、前記第二の処理のプログラムは、前記乱数値を前記乱数回路のレジスタからロードする命令を少なくとも含むプログラムであり、前記CPUがリセットされた場合に、前記割込みの発生が禁止された状態にされるように構成されており、前記値の範囲は、前記割込みの発生が禁止された状態において設定されるものであり、前記乱数回路は、設定された前記値の範囲で、値の更新を少なくとも実行可能なものであり、前記割込みの発生が許可されるよりも前に、前記値の更新が少なくとも開始される、ことを特徴とする遊技台である。
【0805】
また、前記第一の処理のプログラムは、前記値の範囲を設定するプログラム(図160のステップS3053の処理を行うプログラム)を少なくとも含むプログラムであり、前記第一の処理のプログラムは、前記値の範囲を設定した後で、前記割込みの発生を許可する命令が実行されるように構成されたプログラムである、ものとしてもよい。
【0806】
このような構成によれば、主制御部メイン処理は、リセットがかかる度に実行される処理であるため、乱数生成範囲の設定もリセットがかかる度に実行される。このようにすることで、乱数生成範囲の異常による問題を防止することができる。すなわち、CPUがリセットされた場合に割込み禁止状態とするとともに、当該割込み禁止状態において乱数回路の数値範囲を再設定することで、リセット後や電源投入後に予期しない割込み処理によって乱数回路の数値範囲が誤った値に設定されてしまい、その後の遊技において、誤った数値範囲で導出された数値で各種の抽選が行われてしまうような事態を未然に防止することが可能で、安定かつ公平な遊技制御を行うことができる場合がある。また、新たに乱数がラッチされたとしても各種抽選に使用されることはなく、抽選処理の安定化を図ることができる。
【0807】
また、前記乱数値は、前記第二の処理において、ロード条件の成立があった場合に、少なくとも前記CPUのレジスタにロードされるように構成されたものであり、前記乱数値は、前記第二の処理において、前記ロード条件の成立がなかった場合に、少なくとも前記CPUのレジスタにロードされないように構成されたもの、としてもよい。
【0808】
このような構成によれば、ロード条件があった場合に、乱数値をCPUのレジスタにロードすることで、リセット後や電源投入後に予期しない割込み処理によって乱数回路の数値範囲が誤った値に設定されてしまい、その後の遊技において、誤った数値範囲で導出された数値で各種の抽選が行われてしまうような事態を未然に防止することが可能で、安定かつ公平な遊技制御を行うことができる場合がある。
【0809】
また、前記値の範囲の下限値は、0であり、前記値の範囲の設定は、該値の範囲の下限値を変更するものではなく、該値の範囲の上限値を変更するもの、としてもよい。
【0810】
また、前記CPUは、リセット条件の成立があった場合に、少なくともリセットされるものであり、前記リセット条件は、複数の条件のうちの少なくとも一つの条件の成立があった場合に、成立するものである、ものとしてもよい。
【0811】
また、前記マイクロプロセッサは、ウォッチドッグタイマ(以下、「WDT」という。)が少なくとも搭載されたものであり、前記複数の条件のうちの少なくとも一つの条件は、第一の条件であり、前記第一の条件の成立要件は、前記WDTがタイムアウトしたことを少なくとも含む要件である、ものとしてもよい。
【0812】
このような構成によれば、CPUがWDTのタイムアウトによりリセットされた場合に割込み禁止状態とするとともに、当該割込み禁止状態において乱数回路の数値範囲を再設定することで、リセット後や電源投入後に予期しない割込み処理によって乱数回路の数値範囲が誤った値に設定されてしまい、その後の遊技において、誤った数値範囲で導出された数値で各種の抽選が行われてしまうような事態を未然に防止することが可能で、安定かつ公平な遊技制御を行うことができる場合がある。
【0813】
また、前記マイクロプロセッサは、指定エリア外走行禁止回路(以下、「IAT回路」という。)が少なくとも搭載されたものであり、前記IAT回路は、指定エリア外に記憶されているプログラムが実行された場合に、指定エリア外走行禁止信号(以下、「IAT信号」という。)を少なくとも出力可能な回路であり、前記複数の条件のうちの少なくとも一つの条件は、第二の条件であり、前記第二の条件の成立要件は、前記IAT回路からの前記IAT信号の出力があったことを少なくとも含む要件である、ものとしてもよい。
【0814】
このような構成によれば、CPUがIAT信号の出力によりリセットされた場合に割込み禁止状態とするとともに、当該割込み禁止状態において乱数回路の数値範囲を再設定することで、リセット後や電源投入後に予期しない割込み処理によって乱数回路の数値範囲が誤った値に設定されてしまい、その後の遊技において、誤った数値範囲で導出された数値で各種の抽選が行われてしまうような事態を未然に防止することが可能で、安定かつ公平な遊技制御を行うことができる場合がある。
【0815】
また、前記マイクロプロセッサは、リセット入力端子が少なくとも設けられたものであり、前記複数の条件のうちの少なくとも一つの条件は、第三の条件であり、前記第三の条件の成立要件は、前記リセット入力端子にリセット信号の入力があったことを少なくとも含む要件である、ものとしてもよい。
【0816】
このような構成によれば、CPUがリセット入力端子にリセット信号の入力があったことによりリセットされた場合に割込み禁止状態とするとともに、当該割込み禁止状態において乱数回路の数値範囲を再設定することで、リセット後や電源投入後に予期しない割込み処理によって乱数回路の数値範囲が誤った値に設定されてしまい、その後の遊技において、誤った数値範囲で導出された数値で各種の抽選が行われてしまうような事態を未然に防止することが可能で、安定かつ公平な遊技制御を行うことができる場合がある。
【0817】
また、前記マイクロプロセッサは、割込み制御手段(例えば、割込み制御回路3100)が少なくとも搭載されたものであり、前記割込み制御手段は、第一の割込み要求(例えば、タイマ割込信号)の通知があった場合に、前記割込み(以下、「第一の割込み」という。)を発生可能なものであり、前記第一の割込み要求は、設定された周期ごとに前記割込み制御手段に通知されるものである、ものとしてもよい。
【0818】
このような構成によれば、CPUがリセットされた場合に割込み禁止状態とするとともに、当該割込み禁止状態において乱数回路の数値範囲を再設定することで、タイマ割込処理によって乱数回路の数値範囲が誤った値に設定されてしまい、その後の遊技において、誤った数値範囲で導出された数値で各種の抽選が行われてしまうような事態を未然に防止することが可能で、安定かつ公平な遊技制御を行うことができる場合がある。
【0819】
また、前記割込み制御手段は、第二の割込み要求の通知(例えば、システムリセット信号の入力)があった場合に、第二の割込み(例えば、システムリセット)を発生可能なものであり、前記第二の割込みは、前記第一の割込み(例えば、タイマ割込)とは異なる割込みであり、前記第二の割込み要求が通知される要因は、前記第一の割込み要求が通知される要因とは異なるものであり、前記ユーザプログラムは、第三の処理(例えば、セキュリティチェック処理)のプログラムを少なくとも含むプログラムであり、前記第三の処理は、前記第二の割込みの発生に応じて、先頭から開始される処理である、ものとしてもよい。
【0820】
このように構成することで、ユーザプログラムの解析結果と乱数生成回路318の動作が合わなくなるため、基本回路302の動作の解析が困難になり、不正を防止することができる場合がある。従って、不正により基本回路302の動作が不安定にされることがなく、遊技制御の安定化を図ることができる場合がある。仮に、不正により基本回路302の動作が解析された場合、遊技者に有利な操作が行われてしまう虞があるが、上記の構成であればこのような不正が防止できるため、遊技制御の安定化を図ることができる場合がある。さらに、乱数生成回路318が乱数更新を行うか否かに関わらず、CPU304に乱数生成回路初期設定処理を実行する指示を行わせた場合、ユーザリセットが実行された場合の処理を統一することができる場合がある。すなわち、ユーザリセット後に不安定な状態となった場合にも分岐処理を行わずにすむため、遊技制御の安定化を図ることができる場合がある。
【0821】
また、前記マイクロプロセッサは、セキュリティチェックを少なくとも実行可能なものであり、前記セキュリティチェックは、前記ユーザプログラムに異常がないかをチェックする機能を少なくとも有するものであり、前記マイクロプロセッサは、前記セキュリティチェックのランダム延長を行うことが可能なものであり、前記マイクロプロセッサは、前記セキュリティチェックのランダム延長によって、前記セキュリティチェックの時間をランダムに変化させることが可能なものであり、前記マイクロプロセッサは、前記セキュリティチェックにおいて異常なしであった場合に、前記第一の処理を先頭から少なくとも開始可能なもの、としてもよい。
【0822】
また、前記マイクロプロセッサは、システムリセットを発生させる機能を有するものであり、前記マイクロプロセッサは、ユーザリセットを発生させる機能を有するものであり、前記マイクロプロセッサは、前記システムリセットの後に、前記セキュリティチェックを少なくとも実行可能なもの、としてもよい。
【0823】
このような構成によれば、ランダム延長時間の設定が同じであってもランダム延長時間を変化させることによって、リセット出力端子XRSTOのHレベル信号出力から、ユーザモードが開始されるまでの時間を、システムリセットの度に変化させることができる。このため、リセット信号出力端子XRSTOに接続されたIC11?IC14や他の回路にHレベルの信号を出力してから(IC11?IC14や他の回路を起動したり初期化してから)、遊技制御用プログラムが実行されるまでの時間を変化させることができ、CPU304の各端子からの出力信号やCPU304の周辺ICの動作などを手掛かりにして遊技制御用プログラムの実行タイミング(例えば、当否判定の抽選タイミング)を把握するような不正行為を未然に防止できる場合がある。
【0824】
また、本実施形態に係るパチンコ機100は、外部装置(例えば、管理装置620)と少なくとも接続された制御手段(例えば、制御部)と、遊技媒体(例えば、機内球710)が少なくとも転動可能な遊技領域(例えば、遊技領域124)と、前記遊技媒体を前記遊技領域に少なくとも発射可能な発射手段(例えば、発射装置622)と、前記遊技領域から退出した前記遊技媒体を前記発射手段に少なくとも供給可能な遊技媒体経路(例えば、遊技媒体経路610)とを少なくとも備えた遊技媒体封入式の遊技台であって、前記制御手段は、前記遊技領域に進入する前記遊技媒体を少なくとも検出可能な第一の検出手段(例えば、投入検出センサ)と接続されたものであり、前記制御手段は、前記遊技領域から退出された前記遊技媒体を少なくとも検出可能な第二の検出手段(例えば、排出検出センサ)に接続されたものであり、前記制御手段は、持ち媒体情報(例えば、遊技球数情報)を前記外部装置に送信する指令を受付けた場合に、前記遊技領域内に残存媒体が存在する場合であっても、該持ち媒体情報を含む信号を前記外部装置に少なくとも送信することが可能なものであり、前記制御手段は、前記第一および第二の検出手段による検出結果を用いて、前記残存媒体の有無を少なくとも判定可能なものであり、前記制御手段は、前記第一および第二の検出手段による検出結果に応じて、前記持ち媒体情報を少なくとも更新可能なものである。
【0825】
このような構成とすることで、遊技媒体の管理に関するメンテナンス性を向上することができる場合があるとともに、遊技媒体の量に関する情報の送信後の処理(例えば、当該情報の記憶媒体への記憶や、当該記憶媒体の返却など)を速やかに行うことができる場合がある。
【0826】
前記制御手段は、持ち媒体情報を前記外部装置に送信する指令を受付けた場合に、前記遊技領域内に残存媒体が存在するか否かを判定せずに、該持ち媒体情報を含む信号を前記外部装置に少なくとも送信することが可能なものであってもよい。
【0827】
また、本実施形態に係るパチンコ機100は、遊技制御を少なくとも実行可能な制御手段(例えば、制御部)と、遊技媒体(例えば、機内球710)が少なくとも転動可能な遊技領域(例えば、遊技領域124)と、前記遊技媒体を前記遊技領域に少なくとも発射可能な発射手段(例えば、発射手段622)と、前記遊技領域から排出された前記遊技媒体を前記発射手段に少なくとも供給可能な遊技媒体経路(例えば、遊技媒体経路610)と、を少なくとも備えた遊技媒体封入式の遊技台であって、前記制御手段は、前記遊技媒体の量を少なくとも管理可能な管理装置(例えば、管理装置620)に接続されたものであり、前記制御手段は、前記遊技領域に発射される前記遊技媒体の通過を検出する第一の検出手段(例えば、減算センサ604Z)と、前記遊技領域から排出される前記遊技媒体の通過を検出する第二の検出手段(例えば、入賞検出センサ604Sおよび非入賞検出センサ604K)に接続し、所定の期間に、前記第一の検出手段を通過した前記遊技媒体の第一の数量(例えば、イン球数)と、前記第二の検出手段を通過した前記遊技媒体の第二の数量(例えば、アウト球数)を記憶し、前記一の数量から第二の数量を減じて前記遊技媒体の領域内数量(例えば、領域内球数)を算出し、前記制御手段は、遊技者による前記遊技媒体の量に関する情報を前記管理装置に送信する指令を受付けた場合には、前記領域内数量が存在する場合であっても、前記情報を前記管理装置に送信することが少なくとも可能なものである。
【0828】
本実施形態に係るパチンコ機100は、外部装置(例えば、管理装置620)と少なくとも接続された制御手段(例えば、制御部)と、遊技媒体(例えば、機内球710)が少なくとも転動可能な遊技領域(例えば、遊技領域124)と、前記遊技媒体を前記遊技領域に少なくとも発射可能な発射手段(例えば、発射装置622)と、前記遊技領域から退出した前記遊技媒体を前記発射手段に少なくとも供給可能な遊技媒体経路(例えば、遊技媒体経路610)と、を少なくとも備えた遊技媒体封入式の遊技台であって、前記制御手段は、前記遊技領域に進入する前記遊技媒体を少なくとも検出可能な第一の検出手段(例えば、投入検出センサ)と接続されたものであり、前記制御手段は、前記遊技領域から退出された前記遊技媒体を少なくとも検出可能な第二の検出手段(例えば、排出検出センサ)に接続されたものであり、前記制御手段は、持ち媒体情報(例えば、遊技球数情報)を前記外部装置に送信する指令を受付けた場合に、前記遊技媒体の前記発射手段による発射を待って、該持ち媒体情報を含む信号を前記外部装置に少なくとも送信することが可能なものであり、前記制御手段は、前記第一および第二の検出手段による検出結果を用いて、前記残存媒体の有無を少なくとも判定可能なものであり、前記制御手段は、前記第一および第二の検出手段による検出結果に応じて、前記持ち媒体情報を少なくとも更新可能なものである。
【0829】
このような構成とすることで、遊技媒体の管理に関するメンテナンス性を向上することができる場合があるとともに、持ち媒体情報の送信後の処理(例えば、当該情報の記憶媒体への記憶や、当該記憶媒体の返却など)を速やかに行うことができる場合がある。更に、持ち媒体情報を管理装置に送信することを指令された時点で発射の準備がされていた遊技媒体は消費した分として持ち媒体情報に反映されるので、持ち媒体情報を記憶媒体に記憶する場合などには、正確な量として記憶することが可能となる場合がある。
【0830】
また、前記制御手段は、持ち球情報を前記外部装置に送信する指令を受付けた場合に、前記待機処理(例えば、送信を遅延する処理)を行ってから、該持ち球情報を前記外部装置に少なくとも送信することが可能なものであり、前記発射手段が発射準備状態である場合にのみ、前記待機処理を行ってから、前記送信を行うように構成してもよい。また前記発射手段が発射準備状態でなければ、前記待機処理を行わずに、前記送信を行うように構成してもよい。ここで発射準備状態はどのような状態を対応させてもよいが、例えば発射手段が発射動作を開始している場合には、前記発射手段が発射準備状態にあるものとしてもよいし、発射手段が完全に停止している場合以外を、前記発射手段が発射準備状態にあるものとしてもよいし、発射手段が動作を開始する前に、該開始を禁止する動作が可能な状態以外を、前記発射手段が発射準備状態にあるものとしてもよいし、前記発射手段に供給する球が存在していれば、発射手段発射準備状態にあるものとしてもよい。前記発射手段が発射準備状態であるかどうかに関わらず、前記発射手段が次に待機状態に戻るまでの間、前記待機処理を行うように構成してもよい。ここでの待機状態は、発射杆622aが待機位置で静止している状態としてもよく、待機位置は、発射手段が発射動作を行った後で、発射球が発射位置に供給されるまでの間に発射杆622aが制している位置のことを示すものとしてもよい。
【0831】
また、前記制御手段は、持ち媒体情報を前記外部装置に送信する指令を受付けた場合に、前記遊技領域内に残存媒体が存在するか否かを判定せずに、該持ち媒体情報を含む信号を前記外部装置に少なくとも送信することが可能なものであってもよい。
【0832】
また、本実施形態に係るパチンコ機100は、遊技制御を少なくとも実行可能な制御手段(例えば、制御部)と、遊技媒体(例えば、機内球710)が少なくとも転動可能な遊技領域(例えば、遊技領域124)と、前記遊技媒体を前記遊技領域に少なくとも発射可能な発射手段(例えば、発射装置622)と、前記遊技領域から排出された前記遊技媒体を前記発射手段に少なくとも供給可能な遊技媒体経路(例えば、遊技媒体経路610)と、を少なくとも備えた遊技媒体封入式の遊技台であって、前記制御手段は、前記遊技媒体の量を少なくとも管理可能な管理装置(例えば、管理装置620)に接続されたものであり、前記制御手段は、遊技者による前記遊技媒体の量に関する情報を前記管理装置に送信する指令を受付けた場合には、前記指令を受付けた際に発射の準備がされている前記遊技媒体の前記発射手段による発射を待って、前記情報を前記管理装置に送信することが少なくとも可能なものである。
【0833】
本実施形態に係るパチンコ機100は、外部装置(例えば、管理装置620)と少なくとも接続された制御手段(例えば、制御部)と、遊技媒体(例えば、機内球710)が少なくとも転動可能な遊技領域(例えば、遊技領域124)と、前記遊技媒体を前記遊技領域に少なくとも発射可能な発射手段(例えば、発射装置622)と、前記遊技領域から退出した前記遊技媒体を前記発射手段に少なくとも供給可能な遊技媒体経路(例えば、遊技媒体経路610)と、を少なくとも備えた遊技媒体封入式の遊技台であって、前記制御手段は、前記遊技領域に進入する前記遊技媒体を少なくとも検出可能な第一の検出手段(例えば、投入検出センサ)と接続されたものであり、前記制御手段は、前記遊技領域から退出された前記遊技媒体を少なくとも検出可能な第二の検出手段(例えば、排出検出センサ)に接続されたものであり、前記制御手段は、ICカード返却情報を前記外部装置に送信する指令を受付けた場合に、前記遊技領域内に残存媒体が存在する場合であっても、該ICカード返却情報を前記外部装置に少なくとも送信することが可能なものであり、前記制御手段は、前記第一および第二の検出手段による検出結果を用いて、前記残存媒体の有無を少なくとも判定可能なものである。
【0834】
このような構成とすることで、遊技媒体の管理に関するメンテナンス性を向上することができる場合があるとともに、遊技媒体の遊技領域内の落下および遊技領域からの排出を待機する必要がないので、記憶媒体の速やかな返却が可能となる場合がある。
【0835】
また、本実施形態に係るパチンコ機100は、遊技制御を少なくとも実行可能な制御手段(例えば、制御部)と、遊技媒体(例えば、機内球710)が少なくとも転動可能な遊技領域(例えば、遊技領域124)と、前記遊技媒体を前記遊技領域に少なくとも発射可能な発射手段(例えば、発射装置622)と、前記遊技領域から排出された前記遊技媒体を前記発射手段に少なくとも供給可能な遊技媒体経路(例えば、遊技媒体経路610)と、を少なくとも備えた遊技媒体封入式の遊技台であって、前記制御手段は、前記遊技媒体の量を少なくとも管理可能な管理装置(例えば、管理装置620)に接続されたものであり、前記制御手段は、前記遊技領域に発射される前記遊技媒体の通過を検出する第一の検出手段(例えば、減算センサ604Z)と、前記遊技領域から排出される前記遊技媒体の通過を検出する第二の検出手段(例えば、入賞検出センサ604Sおよび非入賞検出センサ604K)に接続し、所定の期間に、前記第一の検出手段を通過した前記遊技媒体の第一の数量(例えば、イン球数)と、前記第二の検出手段を通過した前記遊技媒体の第二の数量(例えば、アウト球数)を記憶し、前記一の数量から第二の数量を減じて前記遊技媒体の領域内数量(例えば、領域内球数)を算出し、前記制御手段は、遊技者による前記遊技媒体の量を記憶可能な記憶媒体の返却指定を前記管理装置に送信する指令を受付けた場合には、前記領域内数量が存在する場合であっても、前記情報を前記管理装置に送信することが少なくとも可能なものである。
【0836】
本実施形態に係るパチンコ機100は、外部装置(例えば、管理装置620)と少なくとも接続された制御手段(例えば、制御部)と、遊技媒体(例えば、機内球710)が少なくとも転動可能な遊技領域(例えば、遊技領域124)と、前記遊技媒体を前記遊技領域に少なくとも発射可能な発射手段(例えば、発射装置622)と、前記遊技領域から退出した前記遊技媒体を前記発射手段に少なくとも供給可能な遊技媒体経路(例えば、遊技媒体経路610)と、を少なくとも備えた遊技媒体封入式の遊技台であって、前記制御手段は、ICカード返却情報を前記外部装置に少なくとも送信することが可能なものであり、表示手段(例えば、球数UI部680)をさらに備え、前記表示手段は、前記ICカードに関する情報を表示可能なものであり、前記表示手段は、遊技を演出する演出表示を表示可能なものである。
【0837】
このような構成とすることで、遊技媒体の管理に関するメンテナンス性を向上することができる場合があるとともに、前記表示手段による多彩な演出が可能となり、遊技者の興趣を高めることができる場合がある。
【0838】
また、本実施形態に係るパチンコ機100は、遊技制御を少なくとも実行可能な制御手段(例えば、制御部)と、遊技媒体(例えば、機内球710)が少なくとも転動可能な遊技領域(例えば、遊技領域124)と、前記遊技媒体を前記遊技領域に少なくとも発射可能な発射手段(例えば、発射装置622)と、前記遊技領域から排出された前記遊技媒体を前記発射手段に少なくとも供給可能な遊技媒体経路(例えば、遊技媒体経路610)と、情報を表示可能な表示手段(例えば、枠側表示装置658)と、を少なくとも備えた遊技媒体封入式の遊技台であって、前記制御手段は、前記遊技媒体の量を少なくとも管理可能な管理装置(例えば、管理装置620)に接続されたものであり、前記表示手段は、前記遊技媒体の量に関する情報を表示可能なものであり、前記表示手段は、遊技を演出する演出表示を表示可能なものとしてもよい。
【0839】
また、前記制御手段(例えば、制御部)は、前記遊技制御を実行可能な第一の制御手段(例えば、主制御部300)と、前記持ち媒体情報に関する制御が少なくとも可能な第二の制御手段(例えば、球数制御部600)を含み、前記第二の制御手段と前記管理装置(例えば、管理装置620)とは双方向の通信が可能である、ものとしてもよい。
【0840】
このような構成とすることで、暗号化処理などによって第二の制御手段と管理装置間の通信データの整合性を確認することができ、これらのインターフェース部を狙った不正アクセスを防ぐことができる場合がある。また、例えば第二の制御手段から取得した遊技台の固有の情報(固有IDなど)を管理装置の通信網を経由して外部の管理センタなどに登録された遊技台の固有の情報と照合することで遊技台の認証を行うことが可能となり、電源投入時などに判定を行うことで不正改造の発見が容易となる場合がある。
【0841】
また、前記第一の制御手段(例えば、主制御部300)と前記第二の制御手段(例えば、球数制御部600)とは双方向の通信が可能である、としてもよい。
【0842】
このような構成とすることで、暗号化処理などによって第一の制御手段と第二の制御手段間の通信データの整合性を確認することができ、これらのインターフェース部を狙った不正アクセスを防ぐことができる場合がある。
【0843】
また、前記管理装置(例えば、管理装置620)は、携帯型の記憶媒体(例えば、ICカード)に記憶された記憶内容にアクセスが可能なものであり、前記持ち媒体情報は、前記記憶媒体に記憶され持ち媒体(例えば、遊技球数)との交換が可能な金銭の残高であってもよい。
【0844】
このような構成とすることで、例えば、持ち媒体情報を記憶媒体に記憶することが可能となり、遊技者の保持する持ち媒体に交換可能な残高の管理が容易になる場合がある。
【0845】
また、前記管理装置(例えば、管理装置620)は、携帯型の記憶媒体(例えば、ICカード)に記憶された記憶内容にアクセスが可能なものであり、前記持ち媒体情報は、前記記憶媒体に記憶されている遊技球の貯球数であってもよい。
【0846】
このような構成とすることで、例えば、持ち媒体情報を記憶媒体に記憶することが可能となり、遊技者の保持する持ち媒体の管理が容易になる場合がある。
【0847】
また、制御手段(例えば、制御部)と、遊技媒体が少なくとも転動可能な遊技領域(例えば、遊技領域124)と、前記遊技媒体を前記遊技領域に少なくとも発射可能な発射手段(例えば、発射装置622)と、前記遊技領域から退出した前記遊技媒体を前記発射手段に少なくとも供給可能な遊技媒体経路(例えば、遊技媒体経路610)と、第一の表示手段(例えば、装飾図柄表示装置208)と、第二の表示手段(例えば、球数UI部680)と、を少なくとも備えた遊技媒体封入式の遊技台であって、前記制御手段は、ICカードの返却情報(以下、「ICカード返却情報」という。)を外部装置に少なくとも送信することが可能なものであり、前記第一の表示手段は、遊技を演出する第一の演出表示を表示可能なものであり、前記第二の表示手段は、前記ICカードに関する情報(以下、「ICカード関連情報」という。)を表示可能なものであり、前記第二の表示手段は、遊技を演出する第二の演出表示を少なくとも表示可能なもの、としてもよい。
【0848】
また、当否判定を少なくとも実行可能な当否判定手段を備え、前記第一の表示手段は、図柄変動表示を少なくとも実行可能なものであり、前記第一の表示手段は、前記図柄変動表示の後で、前記当否判定手段による前記当否判定の結果に対応する図柄態様を表示可能なものであり、前記第二の表示手段は、前記第一の表示手段における前記図柄変動表示中に、前記当否判定手段による前記当否判定の結果に関する予告表示を少なくとも実行可能なものであり、前記第二の演出表示とは、前記予告表示のことである、ものとしてもよい。
【0849】
このような構成とすることで、遊技媒体の管理に関するメンテナンス性を向上することができる場合があるとともに、前記第一の表示手段と第二の表示手段による多彩な演出が可能となり、遊技者の興趣を高めることができる場合がある。
【0850】
また、前記制御手段は、第一の制御手段(例えば、主制御部300)を少なくとも含んで構成されたものであり、
【0851】
前記制御手段は、第二の制御手段(例えば、球数制御部600)を少なくとも含んで構成されたものであり、前記第一の制御手段は、遊技制御を少なくとも実行可能なものであり、前記第二の制御手段は、持ち媒体情報に関する制御を少なくとも実行可能なものであり、前記第二の制御手段は、前記外部装置と双方向の通信が可能なものであり、前記第二の制御手段は、前記第一の制御手段と双方向の通信が可能なものであり、前記持ち媒体情報とは、遊技者が遊技に供することが可能な前記遊技媒体の数に関する情報のことである、ものとしてもよい。
【0852】
このような構成とすることで、暗号化処理などによって第二の制御手段と管理装置間の通信データの整合性を確認することができ、これらのインターフェース部を狙った不正アクセスを防ぐことができる場合がある。また、例えば第二の制御手段から取得した遊技台の固有の情報(固有IDなど)を管理装置の通信網を経由して外部の管理センタなどに登録された遊技台の固有の情報と照合することで遊技台の認証を行うことが可能となり、電源投入時などに判定を行うことで不正改造の発見が容易となる場合がある。また、暗号化処理などによって第一の制御手段と第二の制御手段間の通信データの整合性を確認することができ、これらのインターフェース部を狙った不正アクセスを防ぐことができる場合がある。
【0853】
また、前記第二の表示手段は、タッチパネル方式で遊技者による操作を受付可能な操作受付手段であり、前記ICカード返却情報とは、遊技者による前記ICカードの返却を指示する操作を前記操作受付手段によって受け付けられたことを示す情報である、ものとしてもよい。
【0854】
また、前記ICカード関連情報のうちの少なくとも一部の情報は、残高情報であり、前記第二の表示手段は、前記残高情報を少なくとも表示可能なものであり、前記残高情報とは、前記持ち媒体情報に変換可能な金銭の残高を示す情報である、ものとしてもよい。
【0855】
このような構成とすることで、前記表示手段による多彩な演出が可能となり、遊技者の興趣を高めることができる場合がある。また、ICカードに関する情報を遊技者に認識させやすくすることができる場合がある。
【0856】
また、前記遊技台は、ぱちんこ機であり、前記遊技領域は、遊技盤に設けられたものであり、前記遊技盤を支持可能な本体を備えた、ものとしてもよい。
【0857】
本実施形態に係るパチンコ機100は、遊技制御を少なくとも実行可能な第一の制御手段(例えば、主制御部300)と、賞を付与する制御を少なくとも実行可能な第二の制御手段(例えば、球数制御部600、払出制御部600など)と、賞の付与を少なくとも実行可能な賞付与手段(例えば、遊技球数設定処理、スプロケットなど)と、を少なくとも備えた遊技台であって、前記第一の制御手段は、シリアル通信回路(例えば、シリアル通信回路750)を少なくとも含むものであり、前記第一の制御手段は、第一のコマンド(例えば、賞球コマンド)送信条件の成立があった場合に、第一のコマンドを前記第二の制御手段に送信可能なものであり、前記第一の制御手段は、第二のコマンド(例えば、第一の通信確認コマンド)送信条件の成立があった場合に、第二のコマンドを前記第二の制御手段に送信可能なものであり、前記第一および第二のコマンドは、前記シリアル通信回路を介して送信されるものであり、前記第二の制御手段は、賞情報に対応する大きさの賞を前記賞付与手段に付与させる制御を少なくとも実行可能なものであり、前記第一のコマンドは、前記賞情報を少なくとも含むものである。
【0858】
このような構成とすることで、遊技媒体の管理に関するメンテナンス性を向上することができる場合があるとともに、第一の制御手段が入賞判定等を行う場合であっても、当該入賞判定により遊技者に付与される利益の情報を、第二の制御手段に送信することができる場合がある。更にシリアル形式で送信可能であるので、信号線を少なくすることができる場合がある。
【0859】
また、前記第二の制御手段(例えば、球数制御部600、払出制御部600)は、第二のシリアル通信回路(例えば、シリアル通信回路752)を少なくとも含むものであり、前記第二の制御手段は、第三のコマンド(例えば、第二の通信確認コマンド)送信条件の成立があった場合に、第三のコマンドを前記第一の制御手段に送信可能なものであり、前記第三のコマンドは、前記第二のシリアル通信回路を介して送信されるものであってもよい。
【0860】
また、前記第三のコマンド(例えば、第二の通信確認コマンド)送信条件は、前記第二の制御手段が前記第二のコマンド(例えば、第一の通信確認コマンド)を受信したことを少なくとも含むものとしてもよい。
【0861】
このようにすることで、第一の制御手段から送信された第一コマンドを、第二の制御手段で受信したことを確認する第二のコマンドを送信できるので、通信の信頼性が向上する場合がある。
【0862】
また、前記第一の制御手段(例えば、主制御部300)は、遊技制御処理を少なくとも実行可能な第一の制御マイクロプロセッサ(例えば、主制御部用マイクロコンピュータ760、遊技制御用マイクロコンピュータ)を少なくとも含むものとしてもよい。
【0863】
また、前記第二の制御手段(例えば、球数制御部600、払出制御部600)は、賞を付与する制御処理を少なくとも実行可能な第二の制御マイクロプロセッサ(例えば、球数制御部用マイクロコンピュータ770、払出制御用マイクロコンピュータ)を少なくとも含むものとしてもよい。
【0864】
本実施形態に係るパチンコ機100は、遊技制御を少なくとも実行可能な第一の制御手段(例えば、主制御部300)と、賞を付与する制御を少なくとも実行可能な第二の制御手段(例えば、球数制御部600)と、賞の付与を少なくとも実行可能な賞付与手段(例えば、遊技球数設定処理)と、を少なくとも備えた遊技台であって、前記第一の制御手段は、シリアル通信回路(例えば、シリアル通信回路750)を少なくとも含むものであり、前記第一の制御手段は、第一のコマンド(例えば、賞球コマンド)送信条件の成立があった場合に、第一のコマンドを前記第二の制御手段に送信可能なものであり、前記第一の制御手段は、第二のコマンド(例えば、第一の通信確認コマンド)送信条件の成立があった場合に、第二のコマンドを前記第二の制御手段に送信可能なものであり、前記第一および第二のコマンドは、前記シリアル通信回路を介して送信されるものであり、前記第二の制御手段は、賞情報に対応する大きさの賞を前記賞付与手段に付与させる制御を少なくとも実行可能なものであり、前記第一のコマンドは、前記賞情報を少なくとも含むものである。
【0865】
また、前記第二の制御手段(例えば、球数制御部600)は、第二のシリアル通信回路(例えば、シリアル通信回路752)を少なくとも含むものであり、前記第二の制御手段は、第三のコマンド(例えば、第二の通信確認コマンド)送信条件の成立があった場合に、第三のコマンドを前記第一の制御手段に送信可能なものであり、前記第三のコマンドは、前記第二のシリアル通信回路を介して送信されるものであってもよい。
【0866】
また、前記第三のコマンド(例えば、第二の通信確認コマンド)送信条件は、前記第二の制御手段が前記第二のコマンド(例えば、第一の通信確認コマンド)を受信したことを少なくとも含むものとしてもよい。
【0867】
また、前記第一の制御手段(例えば、主制御部300)は、遊技制御処理を少なくとも実行可能な第一の制御マイクロプロセッサ(例えば、主制御部用マイクロコンピュータ760)を少なくとも含むものとしてもよい。
【0868】
また、前記第二の制御手段(例えば、球数制御部600)は、賞を付与する制御処理を少なくとも実行可能な第二の制御マイクロプロセッサ(例えば、球数制御部用マイクロコンピュータ770)を少なくとも含むものとしてもよい。
【0869】
本実施形態に係るパチンコ機100は、遊技制御を少なくとも実行可能な第一の制御手段(例えば、主制御部300)と、賞を付与する制御を少なくとも実行可能な第二の制御手段(例えば、払出制御部600など)と、賞の付与を少なくとも実行可能な賞付与手段(例えば、スプロケットなど)と、を少なくとも備えた遊技台であって、前記第一の制御手段は、シリアル通信回路(例えば、シリアル通信回路750)を少なくとも含むものであり、前記第一の制御手段は、第一のコマンド(例えば、賞球コマンド)送信条件の成立があった場合に、第一のコマンドを前記第二の制御手段に送信可能なものであり、前記第一の制御手段は、第二のコマンド(例えば、第一の通信確認コマンド)送信条件の成立があった場合に、第二のコマンドを前記第二の制御手段に送信可能なものであり、前記第一および第二のコマンドは、前記シリアル通信回路を介して送信されるものであり、前記第二の制御手段は、賞情報に対応する大きさの賞を前記賞付与手段に付与させる制御を少なくとも実行可能なものであり、前記第一のコマンドは、前記賞情報を少なくとも含むものである。
【0870】
また、前記第二の制御手段(例えば、払出制御部600)は、第二のシリアル通信回路(例えば、シリアル通信回路752)を少なくとも含むものであり、前記第二の制御手段は、第三のコマンド(例えば、第二の通信確認コマンド)送信条件の成立があった場合に、第三のコマンドを前記第一の制御手段に送信可能なものであり、前記第三のコマンドは、前記第二のシリアル通信回路を介して送信されるものであってもよい。
【0871】
また、前記第三のコマンド(例えば、第二の通信確認コマンド)送信条件は、前記第二の制御手段が前記第二のコマンド(例えば、第一の通信確認コマンド)を受信したことを少なくとも含むものとしてもよい。
【0872】
また、前記第一の制御手段(例えば、主制御部300)は、遊技制御処理を少なくとも実行可能な第一の制御マイクロプロセッサ(例えば、遊技制御用マイクロコンピュータ)を少なくとも含むものとしてもよい。
【0873】
また、前記第二の制御手段(例えば、払出制御部600)は、賞を付与する制御処理を少なくとも実行可能な第二の制御マイクロプロセッサ(例えば、払出制御用マイクロコンピュータ)を少なくとも含むものとしてもよい。
【0874】
また、本実施形態に係るパチンコ機100は、遊遊技制御を少なくとも実行可能な遊技制御手段(例えば、主制御部300)と、払出制御を少なくとも実行可能な払出制御手段(例えば、払出制御部600)と、賞媒体を少なくとも払出可能な払出手段(例えば、スプロケット)と、を備えた遊技台であって、前記遊技制御手段は、シリアル通信回路(例えば、シリアル通信回路750)を少なくとも含むものであり、前記遊技制御手段は、第一のコマンド(例えば、賞球コマンド)送信条件の成立があった場合に、第一のコマンドを前記払出制御手段に送信可能なものであり、前記遊技制御手段は、第二のコマンド(例えば、第一の通信確認コマンド)送信条件の成立があった場合に、第二のコマンドを前記払出制御手段に送信可能なものであり、前記第一および第二のコマンドは、前記シリアル通信回路を介して送信されるものであり、前記払出制御手段は、賞媒体情報に対応する数の賞媒体を前記払出手段に払出させる制御を少なくとも実行可能なものであり、前記第一のコマンドは、前記賞媒体情報を少なくとも含むものである。
【0875】
また、前記払出制御手段(例えば、払出制御部600は、第二のシリアル通信回路(例えば、シリアル通信回路752)を少なくとも含むものであり、前記払出制御手段は、第三のコマンド(例えば、第二の通信確認コマンド)送信条件の成立があった場合に、第三のコマンドを前記遊技制御手段に送信可能なものであり、前記第三のコマンドは、前記第二のシリアル通信回路を介して送信されるものとしてもよい。
【0876】
また、前記第三のコマンド(第二の通信確認コマンド)送信条件は、前記払出制御手段が前記第二のコマンド(第一の通信確認コマンド)を受信したことを少なくとも含むものとしてもよい。
【0877】
また、前記遊技制御手段(例えば、主制御部300)は、遊技制御処理を少なくとも実行可能な主制御マイクロプロセッサ(例えば、遊技制御用マイクロコンピュータ)を少なくとも含むものとしてもよい。
【0878】
また、前記払出制御手段(例えば、払出制御部600)は、払出制御処理を少なくとも実行可能な払出制御マイクロプロセッサ(例えば、払出制御用マイクロコンピュータ)を少なくとも含むものとしてもよい。
【0879】
本実施形態に係るパチンコ機100は、遊技媒体(例えば、機内球710)が少なくとも転動可能な遊技領域(例えば、遊技領域124)と、第一の信号が入力されたことに基づいて制御を少なくとも開始可能な制御手段(例えば、制御部)と、前記制御手段によって少なくとも更新される記憶手段と、を少なくとも備えた遊技台であって、前記制御手段は、復帰制御条件の成立があった場合に、第二の信号が入力された際の制御状態に復帰させる復帰制御を少なくとも実行可能なものであり、前記復帰制御条件は、前記第二の信号が前記制御手段に入力された後で、該制御手段に前記第一の信号が入力されたことを少なくとも含むものであり、前記制御手段は、前記遊技領域への前記遊技媒体の進入および該遊技領域からの前記遊技媒体の退出の少なくとも何れかがあった場合に、第一の値(例えば、領域内球数)を少なくとも更新可能なものであり、前記第一の値は、前記記憶手段に記憶された値であり、前記制御手段は、前記復帰制御において、前記第一の値に、第二の値ではなく、第三の値を少なくとも設定可能なものであり、前記第二の値は、前記第二の信号が前記制御手段に入力された際の前記第一の値であり、前記第三の値は、初期値である、ものである。
【0880】
このような構成とすることで、遊技媒体の管理に関するメンテナンス性を向上することができる場合があるとともに、電断後の電源投入時にイン球数とアウト球数の情報が残ることで遊技台が遊技領域内に不正に機内球が残存したと判断し、エラーとして報知することを回避できる場合があり、遊技者が不正を疑われることなく、適正な遊技が行うことができる場合がある。
【0881】
また本実施形態に係るパチンコ機100は、遊技媒体(例えば、機内球710)が少なくとも転動可能な遊技領域(例えば、遊技領域124)と、第一の信号が入力されたことに基づいて制御を少なくとも開始可能な制御手段(例えば、制御部)と、前記制御手段によって少なくとも更新される記憶手段と、を少なくとも備えた遊技台であって、前記制御手段は、復帰制御条件の成立があった場合に、第二の信号が入力された際の制御状態に復帰させる復帰制御を少なくとも実行可能なものであり、前記復帰制御条件は、前記第二の信号が前記制御手段に入力された後で、該制御手段に前記第一の信号が入力されたことを少なくとも含むものであり、前記制御手段は、前記遊技領域への前記遊技媒体の進入および該遊技領域からの前記遊技媒体の退出の少なくとも何れかがあった場合に、第一の値(例えば、領域内球数)を少なくとも更新可能なものであり、前記第一の値は、前記記憶手段に記憶された値であり、前記制御手段は、前記復帰制御において、前記第一の値に、第二の値ではなく、第三の値を少なくとも設定可能なものであり、前記第二の値は、前記第二の信号が前記制御手段に入力された際の前記第一の値であり、前記第三の値は、初期値であり、前記第一の値が第四の値である場合に異常が発生したと判定する異常判定手段を備えた、ことを特徴とする遊技台である。
【0882】
このような構成とすることで、遊技媒体の管理に関するメンテナンス性を向上することができる場合があるとともに、遊技者が不正を疑われることなく、適正な遊技が行うことができる場合がある。また、復電後も初期化されない記憶領域に第一の数量情報および前記第二の数量情報の異常状態を記憶するので、例えば復電後に外部装置などに異常状態を送信したり、異常を報知することが可能となる場合がある。
【0883】
また、前記遊技領域(例えば、遊技領域124)へ進入する前記遊技媒体(例えば、機内球710)を少なくとも検出可能な第一の検出手段(例えば、投入検出センサ)を備え、前記制御手段は、前記第一の検出手段の検出結果に基づいて前記第一の値を少なくとも更新可能なものとしてもよい。
【0884】
このようにすることで、遊技領域へ発射する時点で遊技媒体を検出でき、それに基づき第一の数量情報を更新できるので遊技媒体の数量を確実に管理できる場合がある。
【0885】
また、前記遊技領域(例えば、遊技領域124)から退出した前記遊技媒体(例えば、機内球710)を少なくとも検出可能な第二の検出手段(例えば、排出検出センサ)を備え、前記制御手段は、前記第二の検出手段の検出結果に基づいて前記第一の値を少なくとも更新可能なものとしてもよい。
【0886】
このようにすることで、遊技領域から排出された時点で遊技媒体を検出でき、それに基づき第二の数量情報を更新できるので遊技媒体の数量を確実に管理できる場合がある。
【0887】
また、前記制御手段(例えば、制御部)は、遊技制御を少なくとも実行可能な第一の制御手段(例えば、主制御部300)と、前記遊技媒体の量に関する制御が少なくとも可能な第二の制御手段(例えば、球数制御部600)を含み、前記第二の制御手段は、前記第一の制御手段から第三の信号が入力された場合に、前記遊技媒体の量に関する制御を実行可能なものとしてもよい。
【0888】
このようにすることで、第一の制御手段の制御に合わせて第二の制御手段の制御を行うことができ、適正な遊技を行うことができる場合がある。
【0889】
また、前記第一の制御手段(例えば、主制御部300)と前記第二の制御手段(例えば、球数制御部600)とは双方向の通信が可能である、としてもよい。
【0890】
このような構成とすることで、暗号化処理などによって第一の制御手段と第二の制御手段間の通信データの整合性を確認することができ、これらのインターフェース部を狙った不正アクセスを防ぐことができる場合がある。
【0891】
また本実施形態に係るパチンコ機100は、制御を少なくとも実行可能な第一の制御手段(例えば、球数制御部600)と、制御を少なくとも実行可能な第二の制御手段(例えば、主制御部300)と、異常発生の有無を判定する異常判定手段(例えば、エラー管理処理)と、を備えた遊技台であって、前記第一の制御手段は、第一の信号出力条件の成立があった場合に、第一の信号(例えば、エラーコマンド)を前記第二の制御手段に少なくとも出力可能なものであり、前記第二の制御手段は、報知条件の成立があった場合に、第一の報知を実行可能なものであり、前記報知条件は、前記第一の信号を受信したことを少なくとも含むものであり、前記第一の制御手段は、第二の信号出力条件の成立があった場合に、第二の信号(例えば、エラーコマンド)を外部機器(例えば、管理装置620)に対して少なくとも出力可能なものであり、前記第二の信号は、外部機器に第二の報知を少なくとも行わせるために出力されるものであり、前記第一の信号出力条件は、前記異常判定手段による判定結果が特定の判定結果であったことを少なくとも含むものであり、前記第二の信号出力条件は、前記異常判定手段による判定結果が特定の判定結果であったことを少なくとも含むものであり、前記第一の報知の態様と前記第二の報知の態様は異なる態様とするものである。
【0892】
このようにすることで、遊技媒体の管理に関するメンテナンス性を向上することができる場合があるとともに、エラーの報知に多様性を持たせることができる場合がある。
【0893】
また、前記第一の制御手段(例えば、球数制御部600)は、前記遊技媒体の量に関する制御が少なくとも可能であるものとしてもよい。
【0894】
このようにすることで、前記遊技媒体の量に関する情報に関するエラー情報の報知に多様性を持たせることができる場合がある。
【0895】
また、前記第一の制御手段(例えば、球数制御部600)と前記外部機器(例えば、管理装置とは双方向の通信が可能である、ことを特徴とする遊技台である。
【0896】
このような構成とすることで、暗号化処理などによって第一の制御手段と外部機器間の通信データの整合性を確認することができ、これらのインターフェース部を狙った不正アクセスを防ぐことができる場合がある。
【0897】
また、前記第二の制御手段(例えば、主制御部300)は、前記遊技の進行を少なくとも制御可能であるものとしてもよい。このようにすることで、遊技制御にかかわる電気的、磁気的あるいは機械的なエラー情報などの報知に多様性を持たせることができる場合がある。
【0898】
また、前記第一の制御手段(例えば、球数制御部300)と第二の制御手段(例えば、主制御部300)とは双方向の通信が可能としてもよい。
【0899】
このような構成とすることで、暗号化処理などによって第一の制御手段と第二の制御手段間の通信データの整合性を確認することができ、これらのインターフェース部を狙った不正アクセスを防ぐことができる場合がある。
【0900】
以上、上記の実施形態では、携帯型の記憶媒体としてICカードの場合を例に説明したが、これに限らず、携帯型の記憶媒体は、例えば電子マネーサービス等で利用可能なICチップ内蔵の携帯電子端末(例えば、携帯電話端末)等であってもよい。
【0901】
また、主制御部と第1副制御部で双方向の通信を可能とする一方で、第1副制御部から第2副制御部への通信は一方向の通信としてもよい。
<実施形態2>
【0902】
以下、図面を用いて、本発明の実施形態2に係る遊技台(パチンコ機100)について詳細に説明する。
<全体構成>
【0903】
まず、図72を用いて、本発明の実施形態2に係るパチンコ機100の全体構成について説明する。なお、同図はパチンコ機100を正面側(遊技者側)から見た外観斜視図である。
【0904】
パチンコ機100は、外部的構造として、外枠102と、本体104と、前面枠扉106と、球貯留皿付扉108と、発射装置110と、遊技盤200と、をその前面に備える。
【0905】
外枠102は、遊技機設置営業店に設けられた設置場所(島設備等)へと固定させるための縦長方形状から成る木製の枠部材である。本体104は、内枠と呼ばれ、外枠102の内部に備えられ、ヒンジ部112を介して外枠102に回動自在に装着された縦長方形状の遊技機基軸体となる部材である。また、本体104は、枠状に形成され、内側に空間部114を有している。また、本体104が開放された場合、本体104の開放を検出する不図示の内枠開放センサを備える。
【0906】
前面枠扉106は、ロック機能付きで且つ開閉自在となるようにパチンコ機100の前面側となる本体104の前面に対しヒンジ部112を介して装着され、枠状に構成されることでその内側を開口部とした扉部材である。なお、この前面枠扉106には、開口部にガラス製又は樹脂製の透明板部材118が設けられ、前面側には、スピーカ120や枠ランプ122が取り付けられている。前面枠扉106の後面と遊技盤200の前面とで遊技領域124を区画形成する。また、前面枠扉106が開放された場合、前面枠扉106の開放を検出する不図示の前面枠扉開放センサを備える。
【0907】
球貯留皿付扉108は、パチンコ機100の前面において本体104の下側に対して、ロック機能付きで且つ開閉自在となるように装着された扉部材である。球貯留皿付扉108は、複数の遊技球(以下、単に「球」と称する場合がある)が貯留可能で且つ発射装置110へと遊技球を案内させる通路が設けられている上皿126と、上皿126に貯留しきれない遊技球を貯留する下皿128と、遊技者の操作によって上皿126に貯留された遊技球を下皿128へと排出させる球抜ボタン130と、遊技者の操作によって下皿128に貯留された遊技球を遊技球収集容器(俗称、ドル箱)へと排出させる球排出レバー132と、遊技者の操作によって発射装置110へと案内された遊技球を遊技盤200の遊技領域124へと打ち出す球発射ハンドル134と、遊技者の操作によって各種演出装置206の演出態様に変化を与えるチャンスボタン136と、チャンスボタン136を発光させるチャンスボタンランプ138と、遊技店に設置されたカードユニット(CRユニット)に対して球貸し指示を行う球貸操作ボタン140と、カードユニットに対して遊技者の残高の返却指示を行う返却操作ボタン142と、遊技者の残高やカードユニットの状態を表示する球貸表示部144と、を備える。また、下皿128が満タンであることを検出する不図示の下皿満タンセンサを備える。
【0908】
発射装置110は、本体104の下方に取り付けられ、球発射ハンドル134が遊技者に操作されることによって回動する発射杆146と、遊技球を発射杆146の先端で打突する発射槌148と、を備える。
【0909】
遊技盤200は、前面に遊技領域124を有し、本体104の空間部114に臨むように、所定の固定部材を用いて本体104に着脱自在に装着されている。なお、遊技領域124は、遊技盤200を本体104に装着した後、開口部から観察することができる。
【0910】
図73は、図72のパチンコ機100を背面側から見た外観図である。パチンコ機100の背面上部には、上方に開口した開口部を有し、遊技球を一時的に貯留するための球タンク150と、この球タンク150の下方に位置し、球タンク150の底部に形成した連通孔を通過して落下する球を背面右側に位置する払出装置152に導くためのタンクレール154とを配設している。
【0911】
払出装置152は、筒状の部材からなり、その内部には、不図示の払出モータとスプロケットと払出センサとを備えている。スプロケットは、払出モータによって回転可能に構成されており、タンクレール154を通過して払出装置152内に流下した遊技球を一時的に滞留させると共に、払出モータを駆動して所定角度だけ回転することにより、一時的に滞留した遊技球を払出装置152の下方へ1個ずつ送り出すように構成している。
【0912】
払出センサは、スプロケットが送り出した遊技球の通過を検知するためのセンサであり、遊技球が通過しているときにハイまたはローの何れか一方の信号を、遊技球が通過していないときはハイまたはローの何れか他方の信号を払出制御部600へ出力する。なお、この払出センサを通過した遊技球は、不図示の球レールを通過してパチンコ機100の表側に配設した上皿126に到達するように構成しており、パチンコ機100は、この構成により遊技者に対して球の払い出しを行う。
【0913】
払出装置152の図中左側には、遊技全般の制御処理を行う主制御部300を構成する主基板156を収納する主基板ケース158、主制御部300が生成した処理情報に基づいて演出に関する制御処理を行う第1副制御部400を構成する第1副基板160を収納する第1副基板ケース162、第1副制御部400が生成した処理情報に基づいて演出に関する制御処理を行う第2副制御部500を構成する第2副基板164を収納する第2副基板ケース166、遊技球の払出に関する制御処理を行う払出制御部600を構成するとともに遊技店員の操作によってエラーを解除するエラー解除スイッチ168を備える払出基板170を収納する払出基板ケース172、遊技球の発射に関する制御処理を行う発射制御部630を構成する発射基板174を収納する発射基板ケース176、各種電気的遊技機器に電源を供給する電源制御部660を構成するとともに遊技店員の操作によって電源をオンオフする電源スイッチ178と電源投入時に操作されることによってRWMクリア信号を主制御部300に出力するRWMクリアスイッチ180とを備える電源基板182を収納する電源基板ケース184、および払出制御部600とカードユニットとの信号の送受信を行うCRインターフェース部186を配設している。
【0914】
図74は、遊技盤200を正面から見た略示正面図である。遊技盤200には、外レール202と内レール204とを配設し、遊技球が転動可能な遊技領域124を区画形成している。
【0915】
遊技領域124の略中央には、演出装置206を配設している。この演出装置206には、略中央に装飾図柄表示装置208を配設し、その周囲に、普通図柄表示装置210と、第1特別図柄表示装置212と、第2特別図柄表示装置214と、普通図柄保留ランプ216と、第1特別図柄保留ランプ218と、第2特別図柄保留ランプ220と、高確中ランプ222を配設している。なお、以下、普通図柄を「普図」、特別図柄を「特図」と称する場合がある。
【0916】
演出装置206は、演出可動体224を動作して演出を行うものであり、詳細については後述する。装飾図柄表示装置208は、装飾図柄ならびに演出に用いる様々な表示を行うための表示装置であり、本実施例では液晶表示装置(Liquid Crystal Display)によって構成する。この装飾図柄表示装置208は、左図柄表示領域208a、中図柄表示領域208b、右図柄表示領域208cおよび演出表示領域208dの4つの表示領域に分割し、左図柄表示領域208a、中図柄表示領域208bおよび右図柄表示領域208cはそれぞれ異なった装飾図柄を表示し、演出表示領域208dは演出に用いる画像を表示する。さらに、各表示領域208a、208b、208c、208dの位置や大きさは、装飾図柄表示装置208の表示画面内で自由に変更することを可能としている。なお、装飾図柄表示装置208として液晶表示装置を採用しているが、液晶表示装置でなくとも、種々の演出や種々の遊技情報を表示可能に構成されていればよく、例えば、ドットマトリクス表示装置、7セグメント表示装置、有機EL(ElectroLuminescence)表示装置、リール(ドラム)式表示装置、リーフ式表示装置、プラズマディスプレイ、プロジェクタを含む他の表示デバイスを採用してもよい。
【0917】
普図表示装置210は、普図の表示を行うための表示装置であり、本実施例では7セグメントLEDによって構成する。第1特図表示装置212および第2特図表示装置214は、特図の表示を行うための表示装置であり、本実施例では7セグメントLEDによって構成する。
【0918】
普図保留ランプ216は、保留している普図変動遊技(詳細は後述)の数を示すためのランプであり、本実施例では、普図変動遊技を所定数(例えば、2つ)まで保留することを可能としている。第1特図保留ランプ218および第2特図保留ランプ220は、保留している特図変動遊技(詳細は後述)の数を示すためのランプであり、本実施例では、特図変動遊技を所定数(例えば、4つ)まで保留することを可能としている。高確中ランプ222は、遊技状態が大当りが発生し易い高確率状態であること、または高確率状態になることを示すためのランプであり、遊技状態を大当りが発生し難い低確率状態から高確率状態にする場合に点灯し、高確率状態から低確率状態にする場合に消灯する。
【0919】
また、この演出装置206の周囲には、所定の球進入口、例えば、一般入賞口226と、普図始動口228と、第1特図始動口230と、第2特図始動口232と、可変入賞口234を配設している。
【0920】
一般入賞口226は、本実施例では遊技盤200に複数配設しており、この一般入賞口226への入球を所定の球検出センサ(図示省略)が検出した場合(一般入賞口226に入賞した場合)、払出装置152を駆動し、所定の個数(例えば、10個)の球を賞球として上皿126に排出する。上皿126に排出した球は遊技者が自由に取り出すことが可能であり、これらの構成により、入賞に基づいて賞球を遊技者に払い出すようにしている。なお、一般入賞口226に入球した球は、パチンコ機100の裏側に誘導した後、遊技島側に排出する。本実施例では、入賞の対価として遊技者に払い出す球を「賞球」、遊技者に貸し出す球を「貸球」と区別して呼ぶ場合があり、「賞球」と「貸球」を総称して「球(遊技球)」と呼ぶ。
【0921】
普図始動口228は、ゲートやスルーチャッカーと呼ばれる、遊技領域124の所定の領域を球が通過したか否かを判定するための装置で構成しており、本実施例では遊技盤200の左側に1つ配設している。普図始動口228を通過した球は一般入賞口226に入球した球と違って、遊技島側に排出することはない。球が普図始動口228を通過したことを所定の球検出センサが検出した場合、パチンコ機100は、普図表示装置210による普図変動遊技を開始する。
【0922】
第1特図始動口230は、本実施例では遊技盤200の中央に1つだけ配設している。この第1特図始動口230への入球を所定の球検出センサが検出した場合、後述する払出装置152を駆動し、所定の個数(例えば、3個)の球を賞球として上皿126に排出するとともに、第1特図表示装置212による特図変動遊技を開始する。なお、第1特図始動口230に入球した球は、パチンコ機100の裏側に誘導した後、遊技島側に排出する。
【0923】
第2特図始動口232は、電動チューリップ(電チュー)と呼ばれ、本実施例では第1特図始動口230の真下に1つだけ配設している。この第2特図始動口232は、左右に開閉自在な羽根部材232aを備え、羽根部材232aの閉鎖中は球の入球が不可能であり、普図変動遊技に当選し、普図表示装置210が当り図柄を停止表示した場合に羽根部材232aが所定の時間間隔、所定の回数で開閉する。第2特図始動口232への入球を所定の球検出センサが検出した場合、払出装置152を駆動し、所定の個数(例えば、4個)の球を賞球として上皿126に排出するとともに、第2特図表示装置214による特図変動遊技を開始する。なお、第2特図始動口232に入球した球は、パチンコ機100の裏側に誘導した後、遊技島側に排出する。
【0924】
可変入賞口234は、大入賞口またはアタッカーと呼ばれ、本実施例では遊技盤200の中央部下方に1つだけ配設している。この可変入賞口234は、開閉自在な扉部材234aを備え、扉部材234aの閉鎖中は球の入球が不可能であり、特図変動遊技に当選して特図表示装置が大当り図柄を停止表示した場合に扉部材234aが所定の時間間隔(例えば、開放時間29秒、閉鎖時間1.5秒)、所定の回数(例えば15回)で開閉する。可変入賞口234への入球を所定の球検出センサが検出した場合、払出装置152を駆動し、所定の個数(例えば、15個)の球を賞球として上皿126に排出する。なお、可変入賞口234に入球した球は、パチンコ機100の裏側に誘導した後、遊技島側に排出する。
【0925】
さらに、これらの入賞口や始動口の近傍には、風車と呼ばれる円盤状の打球方向変換部材236や、遊技釘238を複数個、配設していると共に、内レール204の最下部には、いずれの入賞口や始動口にも入賞しなかった球をパチンコ機100の裏側に誘導した後、遊技島側に排出するためのアウト口を設けている。
【0926】
このパチンコ機100は、遊技者が上皿126に貯留している球を発射レールの発射位置に供給し、遊技者の操作ハンドルの操作量に応じた強度で発射モータを駆動し、発射杆146および発射槌148によって外レール202、内レール204を通過させて遊技領域124に打ち出す。そして、遊技領域124の上部に到達した球は、打球方向変換部材236や遊技釘238等によって進行方向を変えながら下方に落下し、入賞口(一般入賞口226、可変入賞口234)や始動口(第1特図始動口230、第2特図始動口232)に入賞するか、いずれの入賞口や始動口にも入賞することなく、または普図始動口228を通過するのみでアウト口240に到達する。
<演出装置206>
【0927】
次に、パチンコ機100の演出装置206について説明する。
【0928】
この演出装置206の前面側には、遊技球の転動可能な領域にワープ装置242およびステージ244を配設し、遊技球の転動不可能な領域に演出可動体224を配設している。また、演出装置206の背面側には、装飾図柄表示装置208および遮蔽装置246(以下、扉と称する場合がある)を配設している。すなわち、演出装置206において、装飾図柄表示装置208および遮蔽手段は、ワープ装置242、ステージ244、および演出可動体224の後方に位置することとなる。
【0929】
ワープ装置242は、演出装置206の左上方に設けたワープ入口242aに入った遊技球を演出装置206の前面下方のステージ244にワープ出口242bから排出する。ステージ244は、ワープ出口242bから排出された球や遊技盤200の釘などによって乗り上げた球などが転動可能であり、ステージ244の中央部には、通過した球が第1特図始動口230へ入球し易くなるスペシャルルート244aを設けている。
【0930】
演出可動体224は、本実施形態では人間の右腕の上腕と前腕を模した上腕部224aと前腕部224bとからなり、肩の位置に上腕部224aを回動させる不図示の上腕モータと肘の位置に前腕部224bを回動させる不図示の前腕モータを備える。演出可動体224は、上腕モータと前腕モータによって装飾図柄表示装置208の前方を移動する。
【0931】
遮蔽装置246は、格子状の左扉246aおよび右扉246bからなり、装飾図柄表示装置208および前面ステージ244の間に配設する。左扉246aおよび右扉246bの上部には、不図示の2つのプーリに巻き回したベルトをそれぞれ固定している。すなわち、左扉246aおよび右扉246bは、モータによりプーリを介して駆動するベルトの動作に伴って左右にそれぞれ移動する。遮蔽手段は、左扉246aおよび右扉246bを閉じた状態ではそれぞれの内側端部が重なり、遊技者が装飾図柄表示装置208を視認し難いように遮蔽する。左扉246aおよび右扉246bを開いた状態ではそれぞれの内側端部が装飾図柄表示装置208の表示画面の外側端部と若干重なるが、遊技者は装飾図柄表示装置208の表示の全てを視認可能である。また、左扉246aおよび右扉246bは、それぞれ任意の位置で停止可能であり、例えば、表示した装飾図柄がどの装飾図柄であるかを遊技者が識別可能な程度に、装飾図柄の一部だけを遮蔽するようなことができる。なお、左扉246aおよび右扉246bは、格子の孔から後方の装飾図柄表示装置208の一部を視認可能にしてもよいし、格子の孔の障子部分を半透明のレンズ体で塞ぎ、後方の装飾図柄表示装置208による表示を漠然と遊技者に視認させるようにしてもよいし、格子の孔の障子部分を完全に塞ぎ(遮蔽し)、後方の装飾図柄表示装置208を全く視認不可にしてもよい。
<制御部>
【0932】
次に、図75を用いて、このパチンコ機100の制御部の回路構成について詳細に説明する。なお、同図は制御部の回路ブロック図を示したものである。
【0933】
パチンコ機100の制御部は、大別すると、主に遊技の進行(例えば、遊技者による操作の検出、遊技状態の遷移、遊技媒体の払出制御、当否判定など)を制御する主制御部300と、主制御部300が送信するコマンド信号(以下、単に「コマンド」と呼ぶ)に応じて主に演出の制御を行う第1副制御部400と、第1副制御部400より送信されたコマンドに基づいて各種機器を制御する第2副制御部500と、主制御部300が送信するコマンドに応じて主に遊技球の払い出しに関する制御を行う払出制御部600と、遊技球の発射制御を行う発射制御部630と、パチンコ機100に供給される電源を制御する電源制御部660と、によって構成している。
<主制御部>
【0934】
まず、パチンコ機100の主制御部300について説明する。
【0935】
主制御部300は、主制御部300の全体を制御する基本回路302を備えており、この基本回路302には、CPU304と、制御プログラムや各種データを記憶するためのROM306と、一時的にデータを記憶するためのRAM308と、各種デバイスの入出力を制御するためのI/O310と、時間や回数等を計測するためのカウンタタイマ312と、プログラム処理の異常を監視するWDT314を搭載している。なお、ROM306やRAM308については他の記憶装置を用いてもよく、この点は後述する第1副制御部400についても同様である。この基本回路302のCPU304は、水晶発振器316bが出力する所定周期のクロック信号をシステムクロックとして入力して動作する。
【0936】
また、基本回路302には、水晶発振器316aが出力するクロック信号を受信する度に0?65535の範囲で数値を変動させるハードウェア乱数カウンタとして使用しているカウンタ回路318(この回路には2つのカウンタを内蔵しているものとする)と、所定の球検出センサ、例えば各始動口、入賞口、可変入賞口を通過する遊技球を検出するセンサや、前面枠扉開放センサや内枠開放センサや下皿満タンセンサを含む各種センサ320が出力する信号を受信し、増幅結果や基準電圧との比較結果をカウンタ回路318および基本回路302に出力するためのセンサ回路322と、所定の図柄表示装置、例えば第1特図表示装置212や第2特図表示装置214の表示制御を行うための駆動回路324と、所定の図柄表示装置、例えば普図表示装置210の表示制御を行うための駆動回路326と、各種状態表示部328(例えば、普図保留ランプ216、第1特図保留ランプ218、第2特図保留ランプ220、高確中ランプ222等)の表示制御を行うための駆動回路330と、所定の可動部材、例えば第2特図始動口232の羽根部材232aや可変入賞口234の扉部材234a等を開閉駆動する各種ソレノイド332を制御するための駆動回路334を接続している。
【0937】
なお、第1特図始動口230に球が入賞したことを球検出センサ320が検出した場合には、センサ回路322は球を検出したことを示す信号をカウンタ回路318に出力する。この信号を受信したカウンタ回路318は、第1特図始動口230に対応するカウンタのそのタイミングにおける値をラッチし、ラッチした値を、第1特図始動口230に対応する内蔵のカウンタ値記憶用レジスタに記憶する。また、カウンタ回路318は、第2特図始動口232に球が入賞したことを示す信号を受信した場合も同様に、第2特図始動口232に対応するカウンタのそのタイミングにおける値をラッチし、ラッチした値を、第2特図始動口232に対応する内蔵のカウンタ値記憶用レジスタに記憶する。
【0938】
さらに、基本回路302には、情報出力回路336を接続しており、主制御部300は、この情報出力回路336を介して、外部のホールコンピュータ(図示省略)等が備える情報入力回路350にパチンコ機100の遊技情報(例えば、遊技状態)を出力する。
【0939】
また、主制御部300には、電源制御部660から主制御部300に供給している電源の電圧値を監視する電圧監視回路338を設けており、この電圧監視回路338は、電源の電圧値が所定の値(本実施例では9V)未満である場合に電圧が低下したことを示す低電圧信号を基本回路302に出力する。
【0940】
また、主制御部300には、電源が投入されると起動信号(リセット信号)を出力する起動信号出力回路(リセット信号出力回路)340を設けており、CPU304は、この起動信号出力回路340から起動信号を入力した場合に、遊技制御を開始する(詳細は後述する)。
【0941】
また、主制御部300は、第1副制御部400にコマンドを送信するための出力インタフェースと、払出制御部600にコマンドを送信するための出力インタフェースをそれぞれ備えており、この構成により、第1副制御部400および払出制御部600との通信を可能としている。なお、主制御部300と第1副制御部400および払出制御部600との情報通信は一方向の通信であり、主制御部300は第1副制御部400および払出制御部600にコマンド等の信号を送信できるように構成しているが、第1副制御部400および払出制御部600からは主制御部300にコマンド等の信号を送信できないように構成している。
<副制御部>
【0942】
次に、パチンコ機100の第1副制御部400について説明する。第1副制御部400は、主に主制御部300が送信したコマンド等に基づいて第1副制御部400の全体を制御する基本回路402を備えており、この基本回路402には、CPU404と、制御プログラムや各種演出データを記憶するためのROM406と、一時的にデータを記憶するためのRAM408と、各種デバイスの入出力を制御するためのI/O410と、時間や回数等を計測するためのカウンタタイマ412を搭載している。この基本回路402のCPU404は、水晶発信器414が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。なお、ROM406は、制御プログラムと各種演出データとを別々のROMに記憶させてもよい。
【0943】
また、基本回路402には、スピーカ120(およびアンプ)の制御を行うための音源IC416と、各種ランプ418(例えば、チャンスボタンランプ138)の制御を行うための駆動回路420と、遮蔽装置246の駆動制御を行うための駆動回路432と、遮蔽装置246の現在位置を検出する遮蔽装置センサ430と、チャンスボタン136の押下を検出するチャンスボタン検出センサ426と、遮蔽装置センサ430やチャンスボタン検出センサ426からの検出信号を基本回路402に出力するセンサ回路428と、CPU404からの信号に基づいてROM406に記憶された画像データ等を読み出してVRAM436のワークエリアを使用して表示画像を生成して装飾図柄表示装置208に画像を表示するVDP434(ビデオ・ディスプレイ・プロセッサー)と、を接続している。
【0944】
次に、パチンコ機100の第2副制御部500について説明する。第2副制御部500は、第1副制御部400が送信した制御コマンドを入力インタフェースを介して受信し、この制御コマンドに基づいて第2副制御部500の全体を制御する基本回路502を備えており、この基本回路502は、CPU504と、一時的にデータを記憶するためのRAM508と、各種デバイスの入出力を制御するためのI/O510と、時間や回数等を計測するためのカウンタタイマ512を搭載している。基本回路502のCPU504は、水晶発振器514が出力する所定周期のクロック信号をシステムクロックとして入力して動作し、第2副制御部500の全体を制御するための制御プログラム及びデータ、画像表示用のデータ等が記憶されたROM506が設けられている。
【0945】
また、基本回路502には、演出可動体224の駆動制御を行うための駆動回路516と、演出可動体224の現在位置を検出する演出可動体センサ424と、演出可動体センサ424からの検出信号を基本回路502に出力するセンサ回路518と、遊技盤用ランプ532の制御を行うための遊技盤用ランプ駆動回路530と、遊技台枠用ランプ542の制御を行うための遊技台枠用ランプ駆動回路540と、遊技盤用ランプ駆動回路530と遊技台枠用ランプ駆動回路540との間でシリアル通信による点灯制御を行うシリアル通信制御回路520と、を接続している。
<払出制御部、発射制御部、電源制御部>
【0946】
次に、パチンコ機100の払出制御部600、発射制御部630、電源制御部660について説明する。
【0947】
払出制御部600は、主に主制御部300が送信したコマンド等の信号に基づいて払出装置152の払出モータ602を制御すると共に、払出センサ604が出力する制御信号に基づいて賞球または貸球の払い出しが完了したか否かを検出すると共に、インタフェース部606を介して、パチンコ機100とは別体で設けられたカードユニット608との通信を行う。
【0948】
発射制御部630は、払出制御部600が出力する、発射許可または停止を指示する制御信号や、球発射ハンドル134内に設けた発射強度出力回路が出力する、遊技者による球発射ハンドル134の操作量に応じた発射強度を指示する制御信号に基づいて、発射杆146および発射槌148を駆動する発射モータ632の制御や、上皿126から発射装置110に球を供給する球送り装置634の制御を行う。
【0949】
電源制御部660は、パチンコ機100に外部から供給される交流電源を直流化し、所定の電圧に変換して主制御部300、第1副制御部400等の各制御部や払出装置152等の各装置に供給する。さらに、電源制御部660は、外部からの電源が断たれた後も所定の部品(例えば主制御部300のRAM308等)に所定の期間(例えば10日間)電源を供給するための蓄電回路(例えば、コンデンサ)を備えている。なお、本実施形態では、電源制御部660から払出制御部600と第2副制御部500に所定電圧を供給し、払出制御部600から主制御部300と第2副制御部500と発射制御部630に所定電圧を供給しているが、各制御部や各装置に他の電源経路で所定電圧を供給してもよい。
<図柄の種類>
【0950】
次に、図76(a)?(c)を用いて、パチンコ機100の第1特別図柄表示装置212、第2特別図柄表示装置214、装飾図柄表示装置208、普通図柄表示装置210が停止表示する特図および普図の種類について説明する。同図(a)は特図の停止図柄態様の一例を示したものである。
【0951】
第1特図始動口230に球が入球したことを第1始動口センサが検出したことを条件として特図1変動遊技が開始され、第2特図始動口232に球が入球したことを第2始動口センサが検出したことを条件として特図2変動遊技が開始される。特図1変動遊技が開始されると、第1特別図柄表示装置212は、7個のセグメントの全点灯と、中央の1個のセグメントの点灯を繰り返す「特図1の変動表示」を行う。また、特図2変動遊技が開始されると、第2特別図柄表示装置214は、7個のセグメントの全点灯と、中央の1個のセグメントの点灯を繰り返す「特図2の変動表示」を行う。これらの「特図1の変動表示」および「特図2の変動表示」が本発明にいう図柄の変動表示の一例に相当する。そして、特図1の変動開始前に決定した変動時間(本発明にいう変動時間が相当)が経過すると、第1特別図柄表示装置212は特図1の停止図柄態様を停止表示し、特図2の変動開始前に決定した変動時間(これも本発明にいう変動時間が相当)が経過すると、第2特別図柄表示装置214は特図2の停止図柄態様を停止表示する。したがって、「特図1の変動表示」を開始してから特図1の停止図柄態様を停止表示するまで、あるいは「特図2の変動表示」を開始してから特図2の停止図柄態様を停止表示するまでが本発明にいう図柄変動停止表示の一例に相当し、以下、この「特図1又は2の変動表示」を開始してから特図1又は2の停止図柄態様を停止表示するまでの一連の表示を図柄変動停止表示と称する。後述するように、図柄変動停止表示は複数回、連続して行われることがある。同図(a)には、図柄変動停止表示における停止図柄態様として「特図A」から「特図J」までの10種類の特図が示されており、図中の白抜きの部分が消灯するセグメントの場所を示し、黒塗りの部分が点灯するセグメントの場所を示している。
【0952】
「特図A」は15ラウンド(15R)特別大当り図柄であり、「特図B」は15R大当り図柄である。本実施形態のパチンコ機100では、後述するように、特図変動遊技における大当りか否かの決定はハードウェア乱数の抽選によって行い、特別大当りか否かの決定はソフトウェア乱数の抽選によって行う。大当りと特別大当りの違いは、次回の特図変動遊技で、大当りに当選する確率が高い(特別大当り)か低い(大当り)かの違いである。以下、この大当りに当選する確率が高い状態のことを特図高確率状態と称し、その確率が低い状態のことを特図低確率状態と称する。また、15R特別大当り遊技終了後および15R大当り遊技終了後はいずれも時短状態に移行する。時短については詳しくは後述するが、時短状態に移行する状態のことを普図高確率状態と称し、時短状態に移行しない状態のことを普図低確率状態と称する。15R特別大当り図柄である「特図A」は、特図高確率普図高確率状態であり、15R大当り図柄である「特図B」は、特図低確率普図高確率状態である。これらの「特図A」および「特図B」は、遊技者に付与する利益量が相対的に大きな利益量になる図柄である。
【0953】
「特図C」は突然確変と称される2R大当り図柄であり、特図高確率普図高確率状態である。すなわち、15Rである「特図A」と比べて、「特図C」は2Rである点が異なる。「特図D」は突然時短と称される2R大当り図柄であり、特図低確率普図高確率状態である。すなわち、15Rである「特図B」と比べて、「特図D」は2Rである点が異なる。
【0954】
「特図E」は隠れ確変と称される2R大当り図柄であり、特図高確率普図低確率状態である。「特図F」は突然通常と称される2R大当り図柄であり、特図低確率普図低確率状態である。これら「特図E」および「特図F」はいずれも、2Rであるとともに、時短状態に移行しない状態である。
【0955】
「特図G」は第1小当り図柄であり、「特図H」は第2小当り図柄であり、何れも特図低確率普図低確率状態である。ここにいう小当りは、2R時短無し大当りと同じものに相当する。すなわち、この「特図G」、「特図H」は「特図F」と同じ状態であるが、両者では装飾図柄表示装置208に表示される演出が異なり、あえて、同じ状態でも「特図G」、「特図H」と「特図F」を設けておくことで、遊技の興趣を高めている。
【0956】
また、「特図I」は第1はずれ図柄であり、「特図J」は第2はずれ図柄であり、遊技者に付与する利益量が相対的に小さな利益量になる図柄である。
【0957】
なお、本実施形態のパチンコ機100には、15R特別大当り図柄として「特図A」以外の図柄も用意されており、15R大当り図柄等の他の図柄についても同様である。
【0958】
図76(b)は装飾図柄の一例を示したものである。本実施形態の装飾図柄には、「装飾1」?「装飾10」の10種類がある。第1特図始動口230または第2特図始動口232に球が入賞したこと、すなわち、第1特図始動口230に球が入球したことを第1始動口センサが検出したこと、あるいは第2特図始動口232に球が入球したことを第2始動口センサが検出したことを条件にして、装飾図柄表示装置208の左図柄表示領域208a、中図柄表示領域208b、右図柄表示領域208cの各図柄表示領域に、「装飾1」→「装飾2」→「装飾3」→・・・・「装飾9」→「装飾10」→「装飾1」→・・・の順番で表示を切り替える「装飾図柄の変動表示」を行う。そして、「特図B」の15R大当りを報知する場合には、図柄表示領域208a?208cに15R大当りに対応する、同じ装飾図柄が3つ並んだ図柄組合せ(例えば「装飾1-装飾1-装飾1」や「装飾2-装飾2-装飾2」等)を停止表示する。「特図A」の15R特別大当りを報知する場合には、同じ奇数の装飾図柄が3つ並んだ図柄組合せ(例えば「装飾3-装飾3-装飾3」や「装飾7-装飾7-装飾7」等)を停止表示する。
【0959】
また、「特図E」の隠れ確変と称される2R大当り、「特図F」の突然通常と称される2R大当り、あるいは「特図G」の第1小当り、「特図H」の第2小当りを報知する場合には、「装飾1-装飾2-装飾3」を停止表示する。さらに、「特図C」の突然確変と称される2R大当り、あるいは「特図D」の突然時短と称される2R大当りを報知する場合には、「装飾1-装飾3-装飾5」を停止表示する。一方、「特図I」の第1はずれ、「特図J」の第2はずれを報知する場合には、図柄表示領域208a?208cに同図(b)に示す図柄組合せ以外の図柄組合せを停止表示する。
【0960】
図76(c)は普図の停止表示図柄の一例を示したものである。本実施形態の普図の停止表示態様には、当り図柄である「普図A」と、外れ図柄である「普図B」の2種類がある。普図始動口228を球が通過したことを上述のゲートセンサが検出したことに基づいて、普通図柄表示装置210は、7個のセグメントの全点灯と、中央の1個のセグメントの点灯を繰り返す「普図の変動表示」を行う。そして、普図変動遊技の当選を報知する場合には「普図A」を停止表示し、普図変動遊技の外れを報知する場合には「普図B」を停止表示する。この同図(c)においても、図中の白抜きの部分が消灯するセグメントの場所を示し、黒塗りの部分が点灯するセグメントの場所を示している。
<主制御部の基本回路>
【0961】
次に、上述の主制御部300の基本回路302について詳細に説明する。図77は、主制御部300から基本回路302の主要部のみを抜き出して示した図である。
【0962】
主制御部300の基本回路302は、主制御部300全体の制御を行うCPU304と、CPU304が実行する制御プログラムやCPU304が参照する各種データを記憶するためのROM306と、CPU304が一時的にデータを記憶するためのRAM308と、を有している。
<主制御部のCPUの内蔵レジスタ>
【0963】
CPU304は、カウンタ回路、タイマ回路、シリアル通信回路、乱数回路、演算回路、リセット/割込みコントローラ等を制御するための制御レジスタのほか、CPU304が制御プログラムを実行する際に使用するレジスタなどの内蔵レジスタを備える。内蔵レジスタには、本発明の特徴点の一つであるTレジスタ(特殊レジスタ)と、汎用レジスタと、プログラムカウンタ(PC)、命令レジスタ等が含まれる。汎用レジスタの種類は特に限定されないが、本実施形態では、Iレジスタ、Aレジスタ、Fレジスタ、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタの8ビットレジスタを備えており、BレジスタとCレジスタ、DレジスタとEレジスタ、HレジスタとLレジスタは、それぞれ、16ビット長の演算が可能なBCレジスタ、DEレジスタ、HLレジスタの16ビットレジスタ(ペアレジスタ)としても機能するように構成されている。
【0964】
また、本実施形態では、内蔵デバイスが出力する割込みベクタ(所定のデバイスから読み込んだ割込みベクタ)の値を下位8ビット、Iレジスタ(割込みベクタレジスタ、インタラプトレジスタ)の内容を上位8ビットとした合計16ビットのアドレスを、割込処理のアドレスとして読み込んで、後述する割込処理に分岐(ジャンプ)するように構成している。例えば、Iレジスタの値が00H、割込みベクタの値が60Hのときに割込処理の要求が発生した場合には、0060H(上位バイトがIレジスタの00H、下位バイトが割込みベクタの60H)で示されるアドレスに記憶された値(例えば、12H)を下位バイト、続く0061Hで示されるアドレスに記憶された値(例えば、04H)を上位バイトとする2バイトのアドレス(例えば、0412H)がPCにロードされ、このアドレスを先頭アドレスとする割込処理に分岐(ジャンプ)するように構成している。
【0965】
Fレジスタは、命令が実行されると、その実行結果に従ってFレジスタ内のビット7から順にSフラグ(サインフラグ)、Zフラグ(ゼロフラグ)、SZフラグ(セカンドゼロフラグ)、Hフラグ(ハーフキャリフラグ)、ビット3(空きビット)、P/Vフラグ(パリティ/オーバーフローフラグ)、Nフラグ(サブトラクトフラグ)、Cフラグ(キャリーフラグ)の各フラグが、1または0に変化したり、あるいは変化しなかったりする。SZフラグは、Zフラグが変化する命令ではZフラグ同様に変化するとともに、Z80互換命令の全てのLD命令、全ての16ビット算術演算命令(INC命令、DEC命令も含む)、ローテートシフト命令のRLCA命令、RLA命令、RRCA命令、RRA命令、「IN A,(n)」命令で変化する。
【0966】
なお、16ビット演算命令のADC命令、SBC命令は、Zフラグが変化し、他の命令ではZフラグは変化せず、16ビット演算命令の全てでSZフラグは変化する。また、「IN A,(n)」命令は、SZフラグが変化し、Zフラグが変化しない。Fレジスタ内のSZフラグや空きビットの位置は上記したビット以外のビットであってもよい。なお、後述する特殊命令の場合にSZフラグが変化しないようにしてもよい。
【0967】
また、本実施形態では、A、F、B、C、D、E、H、Lの各汎用レジスタ(主レジスタ)に対応する補助レジスタ(裏レジスタ)として、A´、F´、B´、C´、D´、E´、H´、L´の各汎用レジスタを備えているが、特殊レジスタであるTレジスタのみ補助レジスタを備えていない。よって、Tレジスタの使用用途は限定され、Tレジスタの使用頻度は汎用レジスタに比べて低くなるため、不用意にTレジスタの値が書き換えられてしまうような事態(Tレジスタの内容が破壊されてしまうような事態)を未然に防止できる場合がある。なお、補助レジスタの値は各種命令によって直接読み書きすることができず、特殊な交換命令(EX命令、EXX命令)によって主レジスタの値と補助レジスタの値を交換することのみが許されている。ここでは、説明の便宜上、レジスタの値をPUSH命令・POP命令等の命令で変更し易いレジスタを汎用レジスタとしたが、これに限らず、Aレジスタ(アキュムレータ)とFレジスタ(フラグレジスタ)など特別な役割を持つレジスタを汎用レジスタに含めなくてもよい。
【0968】
また、ここでは、TレジスタをCPU304に内蔵する例を示したが、例えば、CPU304の外部に設けてもよいし、CPU304とは別体のRAM308の一部に設けてもよい。すなわち、Tレジスタは、制御プログラムを記憶するための記憶手段(本実施形態ではROM306)と物理的に異なる場所に設けられていることが好ましい。さらには、Tレジスタに(後述する)特定の値を書き込む処理を行う制御部と、ROM306から制御プログラムを読み出して遊技制御を行う制御部と、が異なることが好ましい。制御部を異ならせることで、制御プログラムの改造と特定の値の不正取得の両方を行うことを困難にすることができるためである。
<主制御部のCPUのメモリ空間とI/O空間>
【0969】
次に、図78を用いて、主制御部300のCPU304のメモリ空間とI/O空間について説明する。なお、同図(a)はCPU304のメモリマップを示した図であり、同図(b)はCPU304のI/Oマップを示した図である。
【0970】
主制御部300のCPU304は、上述の内蔵レジスタ、ROM306、RAM308などにアクセスするためのメモリ空間と、上述のI/O310との間で制御信号の入出力を行うためのI/O空間を有している。具体的には、同図(a)のメモリマップに示すように、主制御部300のROM306のアドレス/データ信号線は、メモリ空間のROM領域(本実施形態では、0000H?2FFFH(Hは16進数を示す。以下、同じ)のうち、0000H?2FBFH。2FC0H?2FFFHはプログラム管理エリア)に割り当てられ、CPU304は、このROM領域を指定してROM306からのデータの読み出しを行う。また、本実施形態では、ROM領域を第一領域?第八領域の8つの領域に分けて管理を行っており、第一領域は0000Hから始まる領域としている。
【0971】
また、内蔵レジスタのアドレス/データ信号線は、メモリ空間のレジスタエリア(本実施形態では、FE00H?FEBFH)に割り当てられ、CPU304は、このレジスタエリアを介して内蔵レジスタからのデータの読み出しやレジスタへのデータの書き込みを行う。
【0972】
また、RAM308のアドレス/データ信号線は、メモリ空間のRWM領域(本実施形態では、F000H?F3FFH)に割り当てられ、CPU304は、このRWM領域を指定してRAM308からのデータの読み出しやRAM308へのデータの書き込みを行う。なお、メモリ空間の他の領域(本実施形態では、3000H?EFFFH、F400H?FDFFH、FEC0H?FFFFH)は非使用領域とされている。
【0973】
また、同図(b)のI/Oマップに示すように、主制御部300のI/O310は、I/O空間のワークエリア(本実施形態では、00H?BFH)に割り当てられ、CPU304は、このI/O空間を介して、I/O310との間で制御信号の入出力を行う。なお、I/O空間の他の領域(本実施形態では、C0H?FFH)は非使用領域とされている。
<初期化処理>
【0974】
次に、図79を用いて、主制御部300の初期化処理について説明する。なお、同図は初期化処理の流れを示すフローチャートである。
【0975】
上述したように、主制御部300には、電源が投入されると起動信号(システムリセット信号)を出力する起動信号出力回路(リセット信号出力回路)340を設けている。この起動信号を入力した基本回路302のCPU304は、後述するセキュリティモードまたはユーザモードに移行する前に、この初期化処理を実行する。
【0976】
具体的には、ステップS51では、CPU304に内蔵されたTレジスタに、特定の値(本実施形態では、上述のRWM領域の先頭アドレスF000Hの上位バイトであるF0H)を記憶する。ステップS52では、Tレジスタ以外の他のレジスタに初期値をセットした後にステップS53に進み、後述する主制御部メイン処理を実行する。
【0977】
なお、Tレジスタに記憶する特定の値はF0Hに限定されないことは言うまでもなく、例えば、上述のレジスタエリアの先頭アドレス(本実施形態ではFE00H)の上位バイトであるFEHをTレジスタに記憶するように構成すれば、後述するRAM308へのアクセスと同様の原理で、内蔵レジスタへのアクセス効率を高めることができる場合がある。また、第一のタイミングではTレジスタにRWM領域の先頭アドレスの上位バイトを設定し、その後(または、その前)の第二のタイミングでTレジスタにレジスタエリアの先頭アドレスの上位バイトを設定するように構成してもよい。また、所定条件が成立している場合(例えば、所定の端子にLレベルの信号が入力されている場合)にはTレジスタにRWM領域の先頭アドレスの上位バイトを設定し、所定条件が成立していない場合には、Tレジスタにレジスタエリアの先頭アドレスの上位バイトを設定するように構成してもよい。
【0978】
また、この初期化処理において制御プログラムによらずに(自動的に)TレジスタにRWM領域の先頭アドレスの上位バイトを設定(または/およびTレジスタにレジスタエリアの先頭アドレスの上位バイトを設定)し、この初期化処理後に制御プログラム(例えば、後述するステップS101の初期設定1処理、ステップS107の初期設定2処理、ステップS113の初期化処理など)によって(手動で)Tレジスタにレジスタエリアの先頭アドレスの上位バイトを設定(または/およびTレジスタにRWM領域の先頭アドレスの上位バイトを設定)するように構成してもよい。
【0979】
ここで、上述のリセット割込みには、システムリセット割込み(システムリセット端子に一定期間のリセット信号を入力するなど、外部イベントが要因となって行われるリセット割込み)と、ユーザリセット割込み(ユーザリセット端子に一定期間のリセット信号を入力するなど、外部イベントが要因となって行われるリセット割り込みや、WDTのタイムアウトや指定エリア外のアクセスなど、内部イベントが要因となって行われるリセット割込み)の2種類の割込みがある。システムリセット割込みによるリセットでは、制御レジスタや汎用レジスタを含む全ての内部回路が初期化され(例えば、レジスタに応じた初期値(例えばIレジスタに00Hがセットされる))、ユーザリセット割込みによるリセットでは、内部回路の一部が初期化される。
【0980】
図80は、システムリセット後の起動処理のタイムチャートである。システムリセット(XSRST端子に所定期間(例えば、システムクロックの4周期分の期間)以上のLレベルの信号が入力された後にHレベルの信号が入力された場合)による初期化処理を実行した後は、所定条件が成立している場合(例えば、所定の端子にLレベルの信号が入力されている場合)はセキュリティモードに移行し、所定条件が成立していない場合はユーザモードに移行する。ここで、セキュリティモードは、ユーザプログラムの認証を行うモードである。具体的には、システムリセット入力時にユーザプログラムを基に計算された認証コードが正しいかどうかの再計算を行い、結果(セキュリティチェックの結果)がOK(異常なし)の場合、このモードを終了して自動的にユーザモードに移行可能とし、セキュリティチェックの結果がNG(異常あり)の場合、CPU304が停止するように構成している。なお、認証コードは、ROM書き込み時にユーザプログラム(以下、「制御プログラム」と称する場合がある)とともにROM306に書き込まれる。
【0981】
このセキュリティモードにおいてセキュリティチェックが終了した後、一定の期間の経過を待つ固定延長処理(以下、「固定遅延機能」ともいう)が終了したときにXRSTO端子からHレベルのリセット出力を出力し、その後、ランダムな期間の経過を待つランダム延長処理(以下、「ランダム遅延機能」ともいう)が終了した場合にユーザモードに移行するように構成されている(固定延長処理とランダム延長処理を合わせて「セキュリティモード延長処理」や「セキュリティモード延長機能」ともいう)。ユーザモードは、ROMのリセットアドレス(上述のROM領域の第一領域の先頭アドレスである0000H)からユーザプログラムを実行するモードであり、後述する主制御部メイン処理が開始される。なお、本実施形態では、CPU304がユーザプログラムを実行する際に1回の処理(1ステート)で命令レジスタに読みこむデータのバイト長を1バイト(8ビット)長としているが、1ステート当りのデータ長は特に限定されず、例えば、16ビット長や32ビット長でもよい。
【0982】
また、本実施形態では、上述の初期化処理はセキュリティモードやユーザモードへの移行前に(自動的に(制御プログラムによらずに))実行されるように構成しているが、セキュリティモードやユーザモードへの移行後に実行されるよう構成してもよい。また、リセットの種類(ユーザリセット割込みの場合には割込み要因の種類)によって、初期化処理の実行タイミングが異なるように構成してもよい。
【0983】
具体的には、直前に発生したリセット要因を管理するためのレジスタ(内蔵レジスタのうちの一つである)を参照して、直前に発生したリセット要因が(1)システムリセットであるか否か、(2)WDTのタイムアウトによるユーザリセットであるか否か、(3)指定エリア外のアクセスによるユーザリセットであるか否か、を判定し、判定結果に応じて初期化処理の実行タイミングを決定するように構成してもよい。また、初期化処理でセットされる特定の値と初期値は、リセットの種類やレジスタの種類によって異なるように構成してもよい(例えば、汎用レジスタはシステムリセットでもユーザリセットでも初期値として00Hがセットされ、Tレジスタはシステムリセット時は特定の値としてF0Hがセットされるがユーザリセット時は初期化されないように構成してもよい)。
【0984】
また、セキュリティモードの時間は、設定した時間分だけ延長することも、ランダムな時間分だけ延長することも可能である。ランダムな時間分だけ延長することにより、不正行為者はユーザプログラムの開始タイミングが狙いにくくなる場合がある。また、ユーザリセット(例えばWDTのタイムアウトによるリセット)からユーザプログラムの実行開始までの時間をランダムな時間に設定可能な構成としてもよい。このような構成とすれば、ユーザプログラムの開始タイミングを狙った不正行為を未然に防止できる場合がある。
<主制御部メイン処理>
【0985】
次に、図81を用いて、主制御部300のCPU304が実行する主制御部メイン処理について説明する。なお、同図は主制御部メイン処理の流れを示すフローチャートである。
【0986】
ステップS101では、初期設定1を行う。この初期設定1では、CPU304のスタックポインタ(SP)へのスタック初期値の設定(仮設定)、割込マスクの設定、I/O310の初期設定、RAM308に記憶する各種変数の初期設定、WDT314の起動やタイマアウト時間の設定、Tレジチェック処理(詳細は後述)等を行う。本実施形態では、WDT314のタイムアウト時間として32.8msに相当する数値を初期値として設定する。なお、ここでは、WDT314の起動とタイムアウト時間の設定を、主制御部メイン処理のメインループに入る直前で行う例を示したが、例えば、上述の初期化処理など、他の処理の中で行ってもよい。また、ステップS103では、WDT314のカウンタの値をクリアし、WDT314による時間計測を再始動(リスタート)する。なお、WDT314のクリア&リスタートをメインループ開始直後に行う例を示したが、例えば、後述する主制御部タイマ割込処理の中で定期的に行ってもよい。
【0987】
また、図示は省略するが、基本回路302は、WDT314を制御するレジスタとして、スタートレジスタとクリアレジスタを備えている。スタートレジスタは、WDT314の起動/停止を制御するための8ビット長のレジスタであり、WDT314を起動するときには起動を指示する値(例えば、CCH)を設定し(書き込み)、WDT314を停止するときには停止を指示する値(例えば、33H)を設定するように構成されている。
【0988】
また、このスタートレジスタは、リセット時にプログラム管理エリアに「ソフトウェアによる起動」を設定(選択)したときに有効となるレジスタであり、その場合、停止を指示する値(例えば、33H)が初期値として設定される。したがって、「ソフトウェアによる起動」を設定(選択)したときにWDT314を起動するためには、遊技制御プログラムによって(手動で)起動を指示する値(例えば、CCH)を設定する必要がある。一方、リセット時に「ソフトウェアによる起動」を設定(選択)しなかったときは、スタートレジスタには、起動を指示する値(例えば、CCH)が遊技制御プログラムによらずに(自動的に)初期値として設定され、遊技制御プログラムによらずに(自動的に)WDT314が起動される。
【0989】
クリアレジスタは、WDT314のクリアとリスタートを制御するための8ビット長のレジスタであり、所定の第一の値(例えば、55H)を設定した後に、所定の第二の値(例えば、AAH)を設定したときにWDT314がクリアされ、直後にリスタートされる。なお、クリアレジスタの値を読み込んだときは、所定の固定値(例えば、FFH)が読みだされる。また、詳細は後述するが、本実施形態では、CPU304の所定記憶領域に、4ビット長の設定値データ0000B?1000Bのいずれかを予め設定することによって、WDT314のタイムアウト時間を自由に設定できるように構成されている(図186参照)。なお、WDTが手動起動される前(停止された状態で)にクリアレジスタに第一の値、第二の値の順に値が設定されたとしてもWDT314は上記したクリアとリスタートの処理を実行しないように構成されている。
【0990】
ステップS105では、低電圧信号がオンであるか否か、すなわち、電圧監視回路338が、電源制御部660から主制御部300に供給している電源の電圧値が所定の値(本実施形態では9V)未満である場合に電圧が低下したことを示す低電圧信号を出力しているか否かを監視する。そして、低電圧信号がオンの場合(CPU304が電源の遮断を検知した場合)にはステップS103に戻り、低電圧信号がオフの場合(CPU304が電源の遮断を検知していない場合)にはステップS107に進む。なお、電源が投入された直後で未だ上記所定の値(9V)に達しない場合にもステップS103に戻り、供給電圧がその所定の値以上になるまで、ステップS105は繰り返し実行される。
【0991】
ステップS107では、初期設定2を行う。この初期設定2では、後述する主制御部タイマ割込処理を定期毎に実行するための周期を決める数値をカウンタタイマ312に設定する処理、I/O310の所定のポート(例えば試験用出力ポート、第1副制御部400への出力ポート)からクリア信号を出力する処理、RAM308への書き込みを許可する設定等を行う。
【0992】
ステップS109では、電源の遮断前(電断前)の状態に復帰するか否かの判定を行い、電断前の状態に復帰しない場合(主制御部300の基本回路302を初期状態にする場合)には初期化処理(ステップS113)に進む。
【0993】
具体的には、最初に、電源基板に設けたRWMクリアスイッチ180を遊技店の店員などが操作した場合に送信されるRAMクリア信号がオン(操作があったことを示す)であるか否か、すなわちRAMクリアが必要であるか否かを判定し、RAMクリア信号がオンの場合(RAMクリアが必要な場合)には、基本回路302を初期状態にすべくステップS113に進む。一方、RAMクリア信号がオフの場合(RAMクリアが必要でない場合)には、RAM308に設けた電源ステータス記憶領域に記憶した電源ステータスの情報を読み出し、この電源ステータスの情報がサスペンドを示す情報であるか否かを判定する。そして、電源ステータスの情報がサスペンドを示す情報でない場合には、基本回路302を初期状態にすべくステップS113に進み、電源ステータスの情報がサスペンドを示す情報である場合には、RAM308の所定の領域(例えば全ての領域)に記憶している1バイトデータを初期値が0である1バイト構成のレジスタに全て加算することによりチェックサムを算出し、算出したチェックサムの結果が特定の値(例えば0)であるか否か(チェックサムの結果が正常であるか否か)を判定する。そして、チェックサムの結果が特定の値(例えば0)の場合(チェックサムの結果が正常である場合)には電断前の状態に復帰すべくステップS111に進み、チェックサムの結果が特定の値(例えば0)以外である場合(チェックサムの結果が異常である場合)には、パチンコ機100を初期状態にすべくステップS113に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップS113に進む。
【0994】
ステップS111では、復電時処理を行う。この復電時処理では、電断時にRAM308に設けられたスタックエリアに記憶しておいたスタックポインタの値を読み出し、スタックポインタに再設定(本設定)する。また、後述するように、電断時にRAM308に設けられたレジスタ退避領域に記憶しておいた所定のレジスタの値を読み出し、これらのレジスタに再設定した後、割込許可(EI)の設定を行う。以降、CPU304が、再設定後のスタックポインタやレジスタに基づいて制御プログラムを実行する結果、パチンコ機100は電源断時の状態に復帰する。すなわち、電断直前にタイマ割込処理(後述)に分岐する直前に行った(ステップS115内の所定の)命令の次の命令から処理を再開する。
【0995】
本実施形態に係るCPU304は、PUSH命令として、「PUSH TI」命令、「PUSH ALL」命令、「PUSH GRP」命令を備えている。「PUSH TI」命令は、T、Iレジスタに記憶されている値を上述のスタックエリアに退避させる命令であり、具体的には、PUSH命令実行時のスタックポインタをSPとした場合、PUSH命令実行時にTレジスタに記憶されている値を、(SP-1)で示されるアドレスに退避させ、PUSH命令実行時にIレジスタに記憶されている値を、(SP-2)で示されるアドレスに退避させる。また、「PUSH ALL」命令は、PUSH命令実行時にT、I、A、F、B、C、D、E、H、L、IX_(H)、IX_(L)、IY_(H)、IY_(L)レジスタに記憶されている値を、この順番でスタックエリアに退避させる命令である。また、「PUSH GRP」命令は、PUSH命令実行時にA、F、B、C、D、E、H、Lレジスタに記憶されている値を、この順番でスタックエリアに退避させる命令である。
【0996】
また、CPU304は、POP命令として、「POP TI」命令、「POP ALL」命令、「POP GRP」命令を備えている。「POP TI」命令は、スタックエリアに記憶されている値をT、Iレジスタに復帰させる(RAM308の記憶領域からT、Iレジスタにデータをロードする)命令であり、具体的には、POP命令実行時のスタックポインタをSPとした場合、POP命令実行時に(SP-1)で示されるアドレスに記憶されている値をTレジスタに復帰させ、POP命令実行時に(SP-2)で示されるアドレスに記憶されている値をIレジスタに復帰させる。また、「POP ALL」命令は、POP命令実行時にスタックエリアに記憶されている値を、T、I、A、F、B、C、D、E、H、L、IX_(H)、IX_(L)、IY_(H)、IY_(L)レジスタに復帰させる命令である。また、「PUSH GRP」命令は、POP命令実行時にスタックエリアに記憶された値を、A、F、B、C、D、E、H、Lレジスタに復帰させる命令である。
【0997】
なお、Tレジスタをスタックエリアから復帰させるためには、「POP TI」命令を使用する必要があるが、Iレジスタを使用しない場合でも、Iレジスタにもスタックエリアの値が復帰されてしまうことになる。このように、Tレジスタをオペランドとする命令の汎用性を無くすことによって(使い難くすることによって)、Tレジスタをオペランドとする命令が多用されることを未然に防ぐことができ、Tレジスタの値が不用意に書き替ってしまうような事態(Tレジスタの内容が破壊されてしまうような事態)を回避できる場合がある。
【0998】
また、CPU304は、割込み要求の受付を許可する命令(EI命令)と、割込み要求の受付を禁止する命令(DI命令)を備えており、上述の「POP TI」命令は、DI命令によって割込み要求の受付が禁止されている場合にのみ実行するように構成され、EI命令によって割込み要求の受付が許可されている場合に実行しないように構成されている。このように、割込み要求の受付が許可されている状態において「POP TI」命令の実行しないように構成すれば、「POP TI」命令の実行によって、割込みベクタレジスタやインタラプトレジスタとして機能するIレジスタに、スタックエリアから予期しない値が復帰されてしまうおそれがなく、割込み処理を確実に実行することで信頼性の高い遊技制御を行うことができる場合がある。
【0999】
また、CPU304は、上述の命令の他にも、8ビットロード(転送)命令、16ビットロード(転送)命令、スタック操作命令、8ビット算術論理演算命令、16ビット算術論理演算命令、乗算・除算命令、アキュムレータ操作命令、MPUコントロール命令、交換命令、ブロック転送命令、ブロックサーチ命令、ビット操作命令、ローテート・シフト命令、無条件ジャンプ命令・条件付きジャンプ命令、コール命令・リターン命令、入出力命令、複合命令などを備えている。
【1000】
本実施形態では、電断時には、「PUSH GRP」命令によってT、Iレジスタを含まない、A、F、B、C、D、E、H、Lレジスタの値をスタックエリアに退避(記憶)させ、復電時には、「POP GRP」命令によってT、Iレジスタを含まない、A、F、B、C、D、E、H、Lレジスタの値をスタックエリアから復帰させるように構成しており、Tレジスタについては「PUSH GRP」命令による退避と「POP GRP」命令による復帰の両方ができないように構成している(これらの命令のオペランドとしてTレジスタが指定できないように構成している)。また、本実施形態では、加算命令(INC命令)や減算命令(DEC命令)のオペランドとしてもTレジスタが指定できないように構成している。後述するように、TレジスタはRAM308へのアクセスにおいて重要な役割を果たす特殊レジスタであるが、コーディングミスなどによってTレジスタに予期しない値が設定されてしまうような事態を確実に回避することができ、安定した遊技制御が可能である。また、TレジスタについてはPUSH命令による退避とPOP命令による復帰の両方を行わないため、電断時や復帰時の処理を速めることができる場合がある。
【1001】
また、主制御部300における基本回路302に搭載されているRAM308には、送信情報記憶領域が設けられている。このステップS111では、その送信情報記憶領域に、復電コマンドをセットする。この復電コマンドは、電源断時の状態に復帰したことを表すコマンドであり、後述する、主制御部300のタイマ割込処理におけるステップS233において、第1副制御部400へ送信される。また、ステップS116では、RAMクリアの場合はRAMクリアした後に、RAMクリアしない場合は各レジスタへデータを復帰させた後に、WDT314の起動開始を行う。
【1002】
ステップS113では、初期化処理を行う。この初期化処理では、割込禁止(DI)の設定、スタックポインタへのスタック初期値の設定(本設定)、RAM308の全ての記憶領域の初期化などを行う。さらにここで、主制御部300のRAM308に設けられた送信情報記憶領域に正常復帰コマンドをセットする。この正常復帰コマンドは、主制御部300の初期化処理(ステップS113)が行われたことを表すコマンドであり、復電コマンドと同じく、主制御部300のタイマ割込処理におけるステップS233において、第1副制御部400へ送信される。また、ステップS114では、RAMクリアの場合はRAMクリアした後に、RAMクリアしない場合は各レジスタへデータを復帰させた後に、WDT314の起動開始を行う。
【1003】
ステップS115では、割込禁止の設定を行った後、基本乱数初期値更新処理を行う。この基本乱数初期値更新処理では、普図当選乱数カウンタ、および特図乱数値カウンタの初期値をそれぞれ生成するための2つの初期値生成用乱数カウンタと、普図タイマ乱数値、および特図タイマ乱数値それぞれを生成するための2つの乱数カウンタを更新する。例えば、普図タイマ乱数値として取り得る数値範囲が0?100とすると、RAM308に設けた普図タイマ乱数値を生成するための乱数カウンタ記憶領域から値を取得し、取得した値に1を加算してから元の乱数カウンタ記憶領域に記憶する。このとき、取得した値に1を加算した結果が101であれば0を元の乱数カウンタ記憶領域に記憶する。他の初期値生成用乱数カウンタ、乱数カウンタもそれぞれ同様に更新する。なお、初期値生成用乱数カウンタは、後述するステップS207でも更新する。主制御部300は、所定の周期ごとに開始するタイマ割込処理を行っている間を除いて、ステップS115の処理を繰り返し実行する。
<Tレジチェック処理>
【1004】
図82(a)は、初期設定1で行うTレジチェック処理の流れを示すフローチャートであり、同図(b)は、Tレジチェック処理のプログラムリストの一例である。
【1005】
このTレジチェック処理のステップS131では、Tレジスタの値をAレジスタにセットし(LD A,T)、次のステップS132では、Aレジスタの値が特定の値(F0H)に一致するか否かを判定し(SUB F0H、JP Z,SEIJYOU)、一致しない場合(異常の場合;Aレジスタの値から特定の値(F0H)を減算した値が0以外の値となりZフラグが0になった場合)にはステップS133に進み、一致した場合(正常の場合;Aレジスタの値から特定の値(F0H)を減算した値が0となりZフラグが1になった場合)には、Tレジスタの値が正常であると判定してTレジチェック処理を終了し、後続の処理に進む。ステップS133では、Tレジスタの値が異常であると判定してTレジスタに特定の値(F0H)をセットした後に(LD T,F0H)、Tレジチェック処理を終了して後続の処理に進む。
【1006】
なお、Tレジチェック処理は図82に示す処理に限定されるものではなく、例えば、図83に示すような処理でもよい。図83(a)は、変形例に係るTレジチェック処理の流れを示すフローチャートであり、同図(b)は、変形例に係るTレジチェック処理のプログラムリストの一例である。
【1007】
この変形例に係るTレジチェック処理では、上記ステップS133の処理に替えて、ステップS135のエラー処理を行うように構成している。具体的には、ステップS132においてAレジスタの値が特定の値(F0H)に一致しないと判定した場合(異常の場合;Aレジスタの値から特定の値(F0H)を減算した値が0以外の値となりZフラグが0になった場合)にはステップS135に進みエラー処理を行う(SUB F0H、JP NZ,moError)。このエラー処理の内容は特に限定されないが、例えば、無限ループに入って後続の主制御部メイン処理を実行しないように構成したり、後続の主制御部メイン処理において液晶表示装置やスピーカなどを用いてエラーを報知したりすることが考えられる。なお、Tレジチェック処理の実行タイミングは初期設定1に限らない。また、Tレジチェック処理の実行タイミングは初期設定1(WDTリスタート前、低電圧信号?処理前)でのみ実行するようにしてもよい。
<LD命令>
【1008】
次に、主制御部300が備えるLD命令について説明する。LD命令(LD OP1,OP2)は、第1オペランドOP1で示されるレジスタに、第2オペランドOP2で示されるレジスタに記憶された値(または、第2オペランドOP2で示されるイミディエイト値(即値または直値ともいう。以下同じ)を記憶するための命令である。例えば、上述のTレジチェック処理の実行前にTレジスタにF0Hが記憶されている状態で「LD A,T」の命令を実行した場合、Aレジスタには第2オペランドで示されるTレジスタに記憶された値、すなわちF0Hが記憶される。また、「LD A,F0H」の命令を実行した場合にも、Aレジスタには第2オペランドで示されるイミディエイト値、すなわちF0Hが記憶される。
【1009】
一方、第1オペランドOP1をTレジスタとするLD命令では、第2オペランドはイミディエイト値に限定されており、第2オペランドにレジスタを設定することは禁止されている(機械語にアセンブルされる過程でエラーとなりアセンブルすることができない)。CPU304用のアセンブラでエラーが発生するのは、CPU304に当該命令が備えられていないからである。上記LD命令の場合と同様に、例えば既述のTレジスタに関する「PUSH GRP」命令による退避と「POP GRP」命令による復帰の両方ができないように構成している(これらの命令のオペランドとしてTレジスタが指定できないように構成している)というのは、アセンブリでエラーとなることであり、CPU304用の命令のオペランドとして指定できない、つまり、CPU304はTレジスタに関し「PUSH GRP」命令と「POP GRP」命令を備えていないのである。
【1010】
したがって、上述のTレジチェック処理で説明したように、第2オペランドをイミディエイト値とするLD命令(先の例では「LD T,F0H」)のプログラミング(コーディング)は認められるが、第2オペランドにレジスタを設定するLD命令(例えば「LD T,A」)のプログラミング(コーディング)は認められない。このように、第1オペランドOP1をTレジスタとするLD命令では、Tレジスタに対して直値でデータを転送するよう構成されているので、セットしているデータを確認し易くなる場合がある。また、Tレジスタに対して他のレジスタを介してデータを転送できないように構成されているので、Tレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。
【1011】
図84はプログラムリストからLD命令のみを抜き出して示した図である。この例では、5つのLD命令を使用しているが、例えば、(4)のLD命令「LD B,A」の実行後にBレジスタに記憶される値についてデバッグでトレースを行う場合を考える。この場合、LD命令「LD B,A」の第2オペランドであるAレジスタについて、プログラムリストを遡ってトレースすることが必要であるが、例えば、「LD A」という検索キーでプログラムリストの検索を行った場合、(1)のLD命令「LD A,B」に加えて(3)のLD命令「LD A,H」がヒットすることになる。すなわち、第1オペランドにAレジスタを設定したLD命令は、第2オペランドにレジスタを設定することと、第2オペランドをイミディエイト値とすることの両方が認められているため使用頻度が高く、コーディングの見直し作業や、デバッグ(例えば、Aレジスタのトレースなど)の効率を低下させる一因となり得る。なお、ここでは、最も利用頻度が高いAレジスタについて説明したが、Tレジスタを除く他のレジスタを利用した場合にも同様のことが言える。
【1012】
一方、第1オペランドにTレジスタを設定したLD命令は、第2オペランドにレジスタを設定することが禁止され、第2オペランドをイミディエイト値とすることのみが認められているため、Aレジスタを利用したLD命令よりも相対的に使用頻度が低く、コーディングの見直し作業や、デバッグ(例えば、Tレジスタのトレースなど)の効率を高めることが可能となり、制御プログラムの開発効率が向上する場合がある。なお、Tレジスタは、INC命令やDEC命令(算術論理演算命令)でTレジスタの値を変化させることを可能にしてもよい。
<主制御部タイマ割込処理>
【1013】
次に、図85を用いて、主制御部300のCPU304が実行する主制御部タイマ割込処理について説明する。なお、同図は主制御部タイマ割込処理の流れを示すフローチャートである。
【1014】
主制御部300は、所定の周期(本実施形態では約2msに1回)でタイマ割込信号を発生するカウンタタイマ312を備えており、このタイマ割込信号を契機として主制御部タイマ割込処理を所定の周期で開始する。なお、タイマ割込み周期は設定により適宜変更することが可能である。
【1015】
ステップS201では、タイマ割込開始処理を行う。このタイマ割込開始処理では、CPU304の各レジスタの値をスタック領域に一時的に退避する処理などを行う。
【1016】
ステップS203では、WDT314のカウント値が初期設定値(本実施形態では32.8ms)を超えてWDT割込が発生しないように(処理の異常を検出しないように)、WDTを定期的に(本実施形態では、主制御部タイマ割込の周期である約2msに1回)リスタートを行う。
【1017】
ステップS205では、入力ポート状態更新処理を行う。この入力ポート状態更新処理では、I/O310の入力ポートを介して、上述の前面枠扉開放センサや内枠開放センサや下皿満タンセンサ、各種の球検出センサを含む各種センサ320の検出信号を入力して検出信号の有無を監視し、RAM308に各種センサ320ごとに区画して設けた信号状態記憶領域に記憶する。球検出センサの検出信号を例にして説明すれば、前々回のタイマ割込処理(約4ms前)で検出した各々の球検出センサの検出信号の有無の情報を、RAM308に各々の球検出センサごとに区画して設けた前回検出信号記憶領域から読み出し、この情報をRAM308に各々の球検出センサごとに区画して設けた前々回検出信号記憶領域に記憶し、前回のタイマ割込処理(約2ms前)で検出した各々の球検出センサの検出信号の有無の情報を、RAM308に各々の球検出センサごとに区画して設けた今回検出信号記憶領域から読み出し、この情報を上述の前回検出信号記憶領域に記憶する。また、今回検出した各々の球検出センサの検出信号を、上述の今回検出信号記憶領域に記憶する。
【1018】
また、ステップS205では、上述の前々回検出信号記憶領域、前回検出信号記憶領域、および今回検出信号記領域の各記憶領域に記憶した各々の球検出センサの検出信号の有無の情報を比較し、各々の球検出センサにおける過去3回分の検出信号の有無の情報が入賞判定パターン情報と一致するか否かを判定する。一個の遊技球が一つの球検出センサを通過する間に、約2msという非常に短い間隔で起動を繰り返すこの主制御部タイマ割込処理は何回か起動する。このため、主制御部タイマ割込処理が起動する度に、上述のステップS205では、同じ遊技球が同じ球検出センサを通過したことを表す検出信号を確認することになる。この結果、上述の前々回検出信号記憶領域、前回検出信号記憶領域、および今回検出信号記領域それぞれに、同じ遊技球が同じ球検出センサを通過したことを表す検出信号が記憶される。すなわち、遊技球が球検出センサを通過し始めたときには、前々回検出信号無し、前回検出信号有り、今回検出信号有りになる。本実施形態では、球検出センサの誤検出やノイズを考慮して、検出信号無しの後に検出信号が連続して2回記憶されている場合には、入賞があったと判定する。図75に示す主制御部300のROM306には、入賞判定パターン情報(本実施形態では、前々回検出信号無し、前回検出信号有り、今回検出信号有りであることを示す情報)が記憶されている。このステップS205では、各々の球検出センサにおいて過去3回分の検出信号の有無の情報が、予め定めた入賞判定パターン情報(本実施形態では、前々回検出信号無し、前回検出信号有り、今回検出信号有りであることを示す情報)と一致した場合に、一般入賞口226、可変入賞口234、第1特図始動口230、および第2特図始動口232への入球、または普図始動口228の通過があったと判定する。すなわち、これらの入賞口226、234やこれらの始動口230、232、228への入賞があったと判定する。例えば、一般入賞口226への入球を検出する一般入賞口センサにおいて過去3回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致した場合には、一般入賞口226へ入賞があったと判定し、以降の一般入賞口226への入賞に伴う処理を行うが、過去3回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致しなかった場合には、以降の一般入賞口226への入賞に伴う処理を行わずに後続の処理に分岐する。なお、主制御部300のROM306には、入賞判定クリアパターン情報(本実施形態では、前々回検出信号有り、前回検出信号無し、今回検出信号無しであることを示す情報)が記憶されている。入賞が一度あったと判定した後は、各々の球検出センサにおいて過去3回分の検出信号の有無の情報が、その入賞判定クリアパターン情報に一致するまで入賞があったとは判定せず、入賞判定クリアパターン情報に一致すれば、次からは上記入賞判定パターン情報に一致するか否かの判定を行う。なお、入賞判定パターン情報は上記例に限らず適宜変更してもよい。例えば、入賞判定パターン情報として、前々回の1つ前の回での検出信号無し、前々回検出信号有り、前回検出信号有り、今回検出信号有りであってもよいし、前々回の1つ前の回での検出信号有り、前々回検出信号有り、前回検出信号有り、今回検出信号無しであってもよい。
【1019】
ステップS207およびステップS209では、基本乱数初期値更新処理および基本乱数更新処理を行う。これらの基本乱数初期値更新処理および基本乱数更新処理では、上記ステップS115で行った初期値生成用乱数カウンタの値の更新を行い、次に主制御部300で使用する、普図当選乱数値、特図1乱数値、および特図2乱数値をそれぞれ生成するための2つの乱数カウンタを更新する。例えば、普図当選乱数値として取り得る数値範囲が0?100とすると、RAM308に設けた普図当選乱数値を生成するための乱数カウンタ記憶領域から値を取得し、取得した値に1を加算してから元の乱数カウンタ記憶領域に記憶する。このとき、取得した値に1を加算した結果が101であれば0を元の乱数カウンタ記憶領域に記憶する。また、取得した値に1を加算した結果、乱数カウンタが一周していると判定した場合にはそれぞれの乱数カウンタに対応する初期値生成用乱数カウンタの値を取得し、乱数カウンタの記憶領域にセットする。例えば、0?100の数値範囲で変動する普図当選乱数値生成用の乱数カウンタから値を取得し、取得した値に1を加算した結果が、RAM308に設けた所定の初期値記憶領域に記憶している前回設定した初期値と等しい値(例えば7)である場合に、普図当選乱数値生成用の乱数カウンタに対応する初期値生成用乱数カウンタから値を初期値として取得し、普図当選乱数値生成用の乱数カウンタにセットすると共に、普図当選乱数値生成用の乱数カウンタが次に1周したことを判定するために、今回設定した初期値を上述の初期値記憶領域に記憶しておく。また、普図当選乱数値生成用の乱数カウンタが次に1周したことを判定するための上述の初期値記憶領域とは別に、特図乱数生成用の乱数カウンタが1周したことを判定するための初期値記憶領域をRAM308に設けている。なお、本実施形態では特図1の乱数値を取得するためのカウンタと特図2の乱数値を取得するためのカウンタとを別に設けたが、同一のカウンタを用いてもよい。
【1020】
ステップS211では、演出乱数更新処理を行う。この演出乱数更新処理では、主制御部300で使用する演出用乱数値を生成するための乱数カウンタを更新する。
【1021】
ステップS213では、タイマ更新処理を行う。このタイマ更新処理では、普通図柄表示装置210に図柄を変動・停止表示する時間を計時するための普図表示図柄更新タイマ、第1特別図柄表示装置212に図柄を変動・停止表示する時間を計時するための特図1表示図柄更新タイマ、第2特図表示装置214に図柄を変動・停止表示する時間を計時するための特図2表示図柄更新タイマ、所定の入賞演出時間、所定の開放時間、所定の閉鎖時間、所定の終了演出期間などを計時するためのタイマなどを含む各種タイマを更新する。
【1022】
ステップS215では、入賞口カウンタ更新処理を行う。この入賞口カウンタ更新処理では、入賞口226、234や始動口230、232、228に入賞があった場合に、RAM308に各入賞口ごと、あるいは各始動口ごとに設けた賞球数記憶領域の値を読み出し、1を加算して、元の賞球数記憶領域に設定する。
【1023】
また、ステップS217では、入賞受付処理を行う。この入賞受付処理では、第1特図始動口230、第2特図始動口232、普図始動口228および可変入賞口234への入賞があったか否かを判定する。ここでは、ステップS205における入賞判定パターン情報と一致するか否かの判定結果を用いて判定する。第1特図始動口230へ入賞があった場合且つRAM308に設けた対応する保留数記憶領域が満タンでない場合、カウンタ回路318の当選用カウンタ値記憶用レジスタから値を特図1当選乱数値として取得するとともに特図1乱数値生成用の乱数カウンタから値を特図1乱数値として取得して対応する乱数値記憶領域に格納する。第2特図始動口232へ入賞があった場合且つRAM308に設けた対応する保留数記憶領域が満タンでない場合、カウンタ回路318の当選用カウンタ値記憶用レジスタから値を特図2当選乱数値として取得するとともに特図2乱数値生成用の乱数カウンタから値を特図2乱数値として取得して対応する乱数値記憶領域に格納する。普図始動口228へ入賞があった場合且つRAM308に設けた対応する保留数記憶領域が満タンでない場合、普図当選乱数値生成用の乱数カウンタから値を普図当選乱数値として取得して対応する乱数値記憶領域に格納する。可変入賞口234へ入賞があった場合には、可変入賞口用の入賞記憶領域に、可変入賞口234に球が入球したことを示す情報を格納する。
【1024】
ステップS219では、払出要求数送信処理を行う。なお、払出制御部600に出力する出力予定情報および払出要求情報は、例えば1バイトで構成しており、ビット7にストローブ情報(オンの場合、データをセットしていることを示す)、ビット6に電源投入情報(オンの場合、電源投入後一回目のコマンド送信であることを示す)、ビット4?5に暗号化のための今回加工種別(0?3)、およびビット0?3に暗号化加工後の払出要求数を示すようにしている。
【1025】
ステップS221では、普図状態更新処理を行う。この普図状態更新処理は、普図の状態に対応する複数の処理のうちの1つの処理を行う。例えば、普図変動表示の途中(上述する普図表示図柄更新タイマの値が1以上)における普図状態更新処理では、普通図柄表示装置210を構成する7セグメントLEDの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。この制御を行うことで、普通図柄表示装置210は普図の変動表示(普図変動遊技)を行う。
【1026】
また、普図変動表示時間が経過したタイミング(普図表示図柄更新タイマの値が1から0になったタイミング)における普図状態更新処理では、当りフラグがオンの場合には、当り図柄の表示態様となるように普通図柄表示装置210を構成する7セグメントLEDの点灯・消灯駆動制御を行い、当りフラグがオフの場合には、外れ図柄の表示態様となるように普通図柄表示装置210を構成する7セグメントLEDの点灯・消灯駆動制御を行う。また、主制御部300のRAM308には、普図状態更新処理に限らず各種の処理において各種の設定を行う設定領域が用意されている。ここでは、上記点灯・消灯駆動制御を行うとともに、その設定領域に普図停止表示中であることを示す設定を行う。この制御を行うことで、普通図柄表示装置210は、当り図柄(図76(c)に示す普図A)および外れ図柄(図76(c)に示す普図B)いずれか一方の図柄の確定表示を行う。さらにその後、所定の停止表示期間(例えば500m秒間)、その表示を維持するためにRAM308に設けた普図停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により、確定表示された図柄が所定期間停止表示され、普図変動遊技の結果が遊技者に報知される。
【1027】
また、普図変動遊技の結果が当りであれば、後述するように、普図当りフラグがオンされる。この普図当りフラグがオンの場合には、所定の停止表示期間が終了したタイミング(普図停止時間管理用タイマの値が1から0になったタイミング)における普図状態更新処理では、RAM308の設定領域に普図作動中を設定するとともに、所定の開放期間(例えば2秒間)、第2特図始動口232の羽根部材232aの開閉駆動用のソレノイド(332)に、羽根部材232aを開放状態に保持する信号を出力するとともに、RAM308に設けた羽根開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。
【1028】
また、所定の開放期間が終了したタイミング(羽根開放時間管理用タイマの値が1から0になったタイミング)で開始する普図状態更新処理では、所定の閉鎖期間(例えば500m秒間)、羽根部材の開閉駆動用のソレノイド332に、羽根部材を閉鎖状態に保持する信号を出力するとともに、RAM308に設けた羽根閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。
【1029】
また、所定の閉鎖期間が終了したタイミング(羽根閉鎖時間管理用タイマの値が1から0になったタイミング)で開始する普図状態更新処理では、RAM308の設定領域に普図非作動中を設定する。さらに、普図変動遊技の結果が外れであれば、後述するように、普図外れフラグがオンされる。この普図外れフラグがオンの場合には、上述した所定の停止表示期間が終了したタイミング(普図停止時間管理用タイマの値が1から0になったタイミング)における普図状態更新処理でも、RAM308の設定領域に普図非作動中を設定する。普図非作動中の場合における普図状態更新処理では、何もせずに次のステップS223に移行するようにしている。
【1030】
ステップS223では、普図関連抽選処理を行う。この普図関連抽選処理では、普図変動遊技および第2特図始動口232の開閉制御を行っておらず(普図の状態が非作動中)、且つ、保留している普図変動遊技の数が1以上である場合に、上述の乱数値記憶領域に記憶している普図当選乱数値に基づいた乱数抽選により普図変動遊技の結果を当選とするか、不当選とするかを決定する当り判定をおこない、当選とする場合にはRAM308に設けた当りフラグにオンを設定する。不当選の場合には、当りフラグにオフを設定する。また、当り判定の結果に関わらず、次に上述の普図タイマ乱数値生成用の乱数カウンタの値を普図タイマ乱数値として取得し、取得した普図タイマ乱数値に基づいて複数の変動時間のうちから普図表示装置210に普図を変動表示する時間を1つ選択し、この変動表示時間を、普図変動表示時間として、RAM308に設けた普図変動時間記憶領域に記憶する。なお、保留している普図変動遊技の数は、RAM308に設けた普図保留数記憶領域に記憶するようにしており、当り判定をするたびに、保留している普図変動遊技の数から1を減算した値を、この普図保留数記憶領域に記憶し直すようにしている。また当り判定に使用した乱数値を消去する。
【1031】
次いで、特図1および特図2それぞれについての特図状態更新処理を行うが、最初に、特図2についての特図状態更新処理(特図2状態更新処理)を行う(ステップS225)。この特図2状態更新処理は、特図2の状態に応じて、次の8つの処理のうちの1つの処理を行う。例えば、特図2変動表示の途中(上述の特図2表示図柄更新タイマの値が1以上)における特図2状態更新処理では、第2特別図柄表示装置214を構成する7セグメントLEDの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。この制御を行うことで、第2特別図柄表示装置214は特図2の変動表示(特図2変動遊技)を行う。また、コマンド設定送信処理(ステップS233)で回転開始設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶してから処理を終了する。
【1032】
また、主制御部300のRAM308の当否判定結果記憶領域には、15R大当りフラグ、2R大当りフラグ、第1小当りフラグ、第2小当りフラグ、第1はずれフラグ、第2はずれフラグ、特図確率変動フラグ、および普図確率変動フラグそれぞれのフラグが用意されている。特図2変動表示時間が経過したタイミング(特図2表示図柄更新タイマの値が1から0になったタイミング)で開始する特図2状態更新処理では、15R大当りフラグはオン、特図確率変動フラグもオン、普図確率変動フラグもオンの場合には図76(a)に示す特図A、15R大当りフラグはオン、特図確率変動フラグはオフ、普図確率変動フラグはオンの場合には特図B、2R大当りフラグはオン、特図確率変動フラグもオン、普図確率変動フラグもオンの場合には特図C、2R大当りフラグはオン、特図確率変動フラグはオフ、普図確率変動フラグはオンの場合には特図D、2R大当りフラグはオン、特図確率変動フラグもオン、普図確率変動フラグはオンの場合には特図E、2R大当りフラグはオン、特図確率変動フラグはオフ、普図確率変動フラグもオフの場合には特図F、第1小当りフラグがオンの場合には特図G、第2小当りフラグがオンの場合には特図H、第1はずれフラグがオンの場合には特図I、第2はずれフラグがオンの場合には特図Iそれぞれの態様となるように、第2特別図柄表示装置214を構成する7セグメントLEDの点灯・消灯駆動制御を行い、RAM308の設定領域に特図2停止表示中であることを表す設定を行う。この制御を行うことで、第2特別図柄表示装置214は、15R特別大当り図柄(特図A)、15R大当り図柄(特図B)、突然確変図柄(特図C)、突然時短図柄(特図D)、隠れ確変図柄(特図E)、突然通常図柄(特図F)、第1小当り図柄(特図G)、第2小当り図柄(特図H)、第1はずれ図柄(特図I)、および第2はずれ図柄(特図J)のいずれか一つの図柄の確定表示を行う。さらにその後、所定の停止表示期間(例えば500m秒間)その表示を維持するためにRAM308に設けた特図2停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により、確定表示された特図2が所定期間停止表示され、特図2変動遊技の結果が遊技者に報知される。また、RAM308に設けられた時短回数記憶部に記憶された時短回数が1以上であれば、その時短回数から1を減算し、減算結果が1から0となった場合は、特図確率変動中(詳細は後述)でなければ、時短フラグをオフする。さらに、大当り遊技中(特別遊技状態中)にも、時短フラグをオフする。
【1033】
また、コマンド設定送信処理(ステップS233)で回転停止設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶するとともに、変動表示を停止する図柄が特図2であることを示す特図2識別情報を、後述するコマンドデータに含める情報としてRAM308に追加記憶してから処理を終了する。
【1034】
また、特図2変動遊技の結果が大当りであれば、後述するように、大当りフラグがオンされる。この大当りフラグがオンの場合には、所定の停止表示期間が終了したタイミング(特図2停止時間管理用タイマの値が1から0になったタイミング)における特図2状態更新処理では、RAM308の設定領域に特図2作動中を設定するとともに、所定の入賞演出期間(例えば3秒間)すなわち装飾図柄表示装置208による大当りを開始することを遊技者に報知する画像を表示している期間待機するためにRAM308に設けた特図2待機時間管理用タイマの記憶領域に入賞演出期間を示す情報を設定する。また、コマンド設定送信処理(ステップS233)で入賞演出設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【1035】
また、所定の入賞演出期間が終了したタイミング(特図2待機時間管理用タイマの値が1から0になったタイミング)で開始する特図2状態更新処理では、所定の開放期間(例えば29秒間、または可変入賞口234に所定球数(例えば10球)の遊技球の入賞を検出するまで)可変入賞口234の扉部材234aの開閉駆動用のソレノイド(332)に、扉部材234aを開放状態に保持する信号を出力するとともに、RAM308に設けた扉開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。また、コマンド設定送信処理(ステップS233)で大入賞口開放設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【1036】
また、所定の開放期間が終了したタイミング(扉開放時間管理用タイマの値が1から0になったタイミング)で開始する特図2状態更新処理では、所定の閉鎖期間(例えば1.5秒間)可変入賞口234の扉部材234aの開閉駆動用のソレノイド(332)に、扉部材234aを閉鎖状態に保持する信号を出力するとともに、RAM308に設けた扉閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。また、コマンド設定送信処理(ステップS233)で大入賞口閉鎖設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【1037】
また、この扉部材の開放・閉鎖制御を所定回数(本実施例では15ラウンドか2ラウンド)繰り返し、終了したタイミングで開始する特図2状態更新処理では、所定の終了演出期間(例えば3秒間)すなわち装飾図柄表示装置208による大当りを終了することを遊技者に報知する画像を表示している期間待機するように設定するためにRAM308に設けた演出待機時間管理用タイマの記憶領域に演出待機期間を示す情報を設定する。また、普図確率変動フラグがオンに設定されていれば、この大当り遊技の終了と同時に、RAM308に設けられた時短回数記憶部に時短回数100回をセットするともに、RAM308に設けられた時短フラグをオンする。なお、その普図確率変動フラグがオフに設定されていれば、時短回数記憶部に時短回数をセットすることもなく、また時短フラグをオンすることもない。ここにいう時短とは、特図変動遊技における大当りを終了してから、次の大当りを開始するまでの時間を短くするため、パチンコ機が遊技者にとって有利な状態になることをいう。この時短フラグがオンに設定されていると、普図高確率状態である。普図高確率状態では普図低確率状態に比べて、普図変動遊技に大当りする可能性が高い。また、普図高確率状態の方が、普図低確率状態に比べて普図変動遊技の変動時間および特図変動遊技の変動時間は短くなる。さらに、普図高確率状態では普図低確率状態に比べて、第2特別始動口232の一対の羽根部材232aの1回の開放における開放時間が長くなりやすい。加えて、普図高確率状態では普図低確率状態に比べて、一対の羽根部材232aは多く開きやすい。また、上述のごとく、時短フラグは、大当り遊技中(特別遊技状態中)にはオフに設定される。したがって、大当り遊技中には、普図低確率状態が維持される。これは、大当り遊技中に普図高確率状態であると、大当り遊技中に可変入賞口234に所定の個数、遊技球が入球するまでの間に第2特図始動口232に多くの遊技球が入球し、大当り中に獲得することができる遊技球の数が多くなってしまい射幸性が高まってしまうという問題があり、これを解決するためのものである。
【1038】
さらに、コマンド設定送信処理(ステップS233)で終了演出設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【1039】
また、所定の終了演出期間が終了したタイミング(演出待機時間管理用タイマの値が1から0になったタイミング)で開始する特図2状態更新処理では、RAM308の設定領域に特図2非作動中を設定する。さらに、特図2変動遊技の結果が外れであれば、後述するように、はずれフラグがオンされる。このはずれフラグがオンの場合には、上述した所定の停止表示期間が終了したタイミング(特図2停止時間管理用タイマの値が1から0になったタイミング)における特図2状態更新処理でも、RAM308の設定領域に特図2非作動中を設定する。特図2非作動中の場合における特図2状態更新処理では、何もせずに次のステップS227に移行するようにしている。
【1040】
続いて、特図1についての特図状態更新処理(特図1状態更新処理)を行う(ステップS227)。この特図1状態更新処理では、特図1の状態に応じて、上述の特図2状態更新処理で説明した各処理を行う。この特図1状態更新処理で行う各処理は、上述の特図2状態更新処理で説明した内容の「特図2」を「特図1」と読み替えた処理と同一であるため、その説明は省略する。なお、特図2状態更新処理と特図1状態更新処理の順番は逆でもよい。
【1041】
ステップS225およびステップS227における特図状態更新処理が終了すると、今度は、特図1および特図2それぞれについての特図関連抽選処理を行う。ここでも先に、特図2についての特図関連抽選処理(特図2関連抽選処理)を行い(ステップS229)、その後で、特図1についての特図関連抽選処理(特図1関連抽選処理)を行う(ステップS231)。これらの特図関連抽選処理についても、主制御部300が特図2関連抽選処理を特図1関連抽選処理よりも先に行うことで、特図2変動遊技の開始条件と、特図1変動遊技の開始条件が同時に成立した場合でも、特図2変動遊技が先に変動中となるため、特図1変動遊技は変動を開始しない。また、装飾図柄表示装置208による、特図変動遊技の大当り判定の結果の報知は、第1副制御部400によって行われ、第2特図始動口232への入賞に基づく抽選の抽選結果の報知が、第1特図始動口230への入賞に基づく抽選の抽選結果の報知よりも優先して行われる。
【1042】
ステップS233では、コマンド設定送信処理を行い、各種のコマンドが第1副制御部400に送信される。なお、第1副制御部400に送信する出力予定情報は例えば16ビットで構成しており、ビット15はストローブ情報(オンの場合、データをセットしていることを示す)、ビット11?14はコマンド種別(本実施形態では、基本コマンド、図柄変動開始コマンド、図柄変動停止コマンド、入賞演出開始コマンド、終了演出開始コマンド、大当りラウンド数指定コマンド、復電コマンドなどコマンドの種類を特定可能な情報)、ビット0?10はコマンドデータ(コマンド種別に対応する所定の情報)で構成している。
【1043】
具体的には、ストローブ情報は上述のコマンド送信処理でオン、オフするようにしている。また、コマンド種別が図柄変動開始コマンドの場合であればコマンドデータに、15R大当りフラグや2R大当りフラグの値、特図確率変動フラグの値、特図関連抽選処理で選択したタイマ番号などを示す情報を含み、図柄変動停止コマンドの場合であれば、15R大当りフラグや2R大当りフラグの値、特図確率変動フラグの値などを含み、入賞演出コマンドおよび終了演出開始コマンドの場合であれば、特図確率変動フラグの値などを含み、大当りラウンド数指定コマンドの場合であれば特図確率変動フラグの値、大当りラウンド数などを含むようにしている。コマンド種別が基本コマンドを示す場合は、コマンドデータにデバイス情報、第1特図始動口230への入賞の有無、第2特図始動口232への入賞の有無、可変入賞口234への入賞の有無などを含む。
【1044】
また、上述の回転開始設定送信処理では、コマンドデータにRAM308に記憶している、15R大当りフラグや2R大当りフラグの値、特図確率変動フラグの値、特図1関連抽選処理および特図2関連抽選処理で選択したタイマ番号、保留している第1特図変動遊技または第2特図変動遊技の数などを示す情報を設定する。上述の回転停止設定送信処理では、コマンドデータにRAM308に記憶している、15R大当りフラグや2R大当りフラグの値、特図確率変動フラグの値などを示す情報を設定する。上述の入賞演出設定送信処理では、コマンドデータに、RAM308に記憶している、入賞演出期間中に装飾図柄表示装置208・各種ランプ418・スピーカ120に出力する演出制御情報、特図確率変動フラグの値、保留している第1特図変動遊技または第2特図変動遊技の数などを示す情報を設定する。上述の終了演出設定送信処理では、コマンドデータに、RAM308に記憶している、演出待機期間中に装飾図柄表示装置208・各種ランプ418・スピーカ120に出力する演出制御情報、特図確率変動フラグの値、保留している第1特図変動遊技または第2特図変動遊技の数などを示す情報を設定する。上述の大入賞口開放設定送信処理では、コマンドデータにRAM308に記憶している大当りラウンド数、特図確率変動フラグの値、保留している第1特図変動遊技または第2特図変動遊技の数などを示す情報を設定する。上述の大入賞口閉鎖設定送信処理では、コマンドデータにRAM308に記憶している大当りラウンド数、特図確率変動フラグの値、保留している第1特図変動遊技または第2特図変動遊技の数などを示す情報を設定する。また、このステップS233では一般コマンド特図保留増加処理も行われる。この一般コマンド特図保留増加処理では、コマンドデータにRAM308の送信用情報記憶領域に記憶している特図識別情報(特図1または特図2を示す情報)、予告情報(事前予告情報、偽事前予告情報、または事前予告無情報のいずれか)を設定する。
【1045】
第1副制御部400では、受信した出力予定情報に含まれるコマンド種別により、主制御部300における遊技制御の変化に応じた演出制御の決定が可能になるとともに、出力予定情報に含まれているコマンドデータの情報に基づいて、演出制御内容を決定することができるようになる。
【1046】
ステップS235では、外部出力信号設定処理を行う。この外部出力信号設定処理では、RAM308に記憶している遊技情報を、情報出力回路336を介してパチンコ機100とは別体の情報入力回路350に出力する。
【1047】
ステップS237では、デバイス監視処理を行う。このデバイス監視処理では、ステップS205において信号状態記憶領域に記憶した各種センサの信号状態を読み出して、所定のエラーの有無、例えば前面枠扉開放エラーの有無または下皿満タンエラーの有無などを監視し、前面枠扉開放エラーまたは下皿満タンエラーを検出した場合に、第1副制御部400に送信すべき送信情報に、前面枠扉開放エラーの有無または下皿満タンエラーの有無を示すデバイス情報を設定する。また、各種ソレノイド332を駆動して第2特図始動口232や、可変入賞口234の開閉を制御したり、表示回路324、326、330を介して普通図柄表示装置210、第1特別図柄表示装置212、第2特別図柄表示装置214、各種状態表示部328などに出力する表示データを、I/O310の出力ポートに設定する。また、払出要求数送信処理(ステップS219)で設定した出力予定情報を出力ポート(I/O310)を介して第1副制御部400に出力する。
【1048】
ステップS239では、低電圧信号がオンであるか否かを監視する。そして、低電圧信号がオンの場合(電源の遮断を検知した場合)にはステップS243に進み、低電圧信号がオフの場合(電源の遮断を検知していない場合)にはステップS241に進む。
【1049】
ステップS241では、タイマ割込終了処理を行う。このタイマ割込終了処理では、ステップS201で一時的に退避した各レジスタの値を元の各レジスタに設定したり、割込許可の設定などを行い、その後、主制御部メイン処理に復帰する。
【1050】
一方、ステップS243では、復電時に電断時の状態に復帰するための特定の変数やスタックポインタを復帰データとしてRAM308の所定の領域に退避し、入出力ポートの初期化等の電断処理を行い、その後、主制御部メイン処理に復帰する。
<第1副制御部400の処理>
【1051】
次に、図86を用いて、第1副制御部400の処理について説明する。なお、同図(a)は、第1副制御部400のCPU404が実行するメイン処理のフローチャートである。同図(b)は、第1副制御部400のストローブ割込み処理のフローチャートである。同図(c)は、第1副制御部400のタイマ変数更新割込処理のフローチャートである。同図(d)は、第1副制御部400の画像制御処理のフローチャートである。
【1052】
まず、同図(a)のステップS301では、各種の初期設定を行う。電源投入が行われると、まずS301で初期化処理が実行される。この初期化処理では、入出力ポートの初期設定や、RAM408内の記憶領域の初期化処理等を行う。
【1053】
ステップS303では、タイマ変数が10以上か否かを判定し、タイマ変数が10となるまでこの処理を繰り返し、タイマ変数が10以上となったときには、ステップS305の処理に移行する。ステップS305では、タイマ変数に0を代入する。
【1054】
ステップS307では、コマンド処理を行う。第1副制御部400のCPU404は、主制御部300からコマンドを受信したか否かを判別する。
【1055】
ステップS309では、演出制御処理を行う。例えば、S307で新たなコマンドがあった場合には、このコマンドに対応する演出データをROM406から読み出す等の処理を行い、演出データの更新が必要な場合には演出データの更新処理を行う。
【1056】
ステップS311では、チャンスボタンの押下を検出していた場合、ステップS309で更新した演出データをチャンスボタンの押下に応じた演出データに変更する処理を行う。ステップS313では、S309で読み出した演出データの中にVDP434への命令がある場合には、この命令をVDP434に出力する(詳細は後述)。
【1057】
ステップS315では、S309で読み出した演出データの中に音源IC416への命令がある場合には、この命令を音源IC416に出力する。ステップS317では、S309で読み出した演出データの中に各種ランプ418への命令がある場合には、この命令を駆動回路420に出力する。
【1058】
ステップS319では、S309で読み出した演出データの中に遮蔽装置246への命令がある場合には、この命令を駆動回路432に出力する。ステップS321では、S309で読み出した演出データの中に第2副制御部500に送信する制御コマンドがある場合には、この制御コマンドを出力する設定を行い、S303へ戻る。
【1059】
次に、同図(b)を用いて、第1副制御部400のコマンド受信割込処理について説明する。このコマンド受信割込処理は、第1副制御部400が、主制御部300が出力するストローブ信号を検出した場合に実行する処理である。コマンド受信割込処理のステップS401では、主制御部300が出力したコマンドを未処理コマンドとしてRAM408に設けたコマンド記憶領域に記憶する。
【1060】
次に、同図(c)を用いて、第1副制御部400のCPU404によって実行する第1副制御部タイマ割込処理について説明する。第1副制御部400は、所定の周期(本実施例では2msに1回)でタイマ割込を発生するハードウェアタイマを備えており、このタイマ割込を契機として、タイマ割込処理を所定の周期で実行する。
【1061】
第1副制御部タイマ割込処理のステップS501では、第1副制御部メイン処理におけるステップS303において説明したRAM408のタイマ変数記憶領域の値に、1を加算して元のタイマ変数記憶領域に記憶する。従って、ステップS303において、タイマ変数の値が10以上と判定されるのは20ms毎(2ms×10)となる。
【1062】
第1副制御部タイマ割込処理のステップS503では、ステップS319で設定された第2副制御部500への制御コマンドの送信や、演出用乱数値の更新処理等を行う。
【1063】
次に、同図(d)を用いて、第1副制御部400のメイン処理におけるステップS313の画像制御処理について説明する。同図は、画像制御処理の流れを示すフローチャートを示した図である。
【1064】
ステップS601では、画像データの転送指示を行う。ここでは、CPU404は、まず、VRAM436の表示領域Aと表示領域Bの描画領域の指定をスワップする。これにより、描画領域に指定されていない表示領域に記憶された1フレームの画像が装飾図柄表示装置208に表示される。次に、CPU404は、VDP434のアトリビュートレジスタに、位置情報等テーブルに基づいてROM座標(ROM406の転送元アドレス)、VRAM座標(VRAM436の転送先アドレス)などを設定した後、ROM406からVRAM436への画像データの転送開始を指示する命令を設定する。VDP434は、アトリビュートレジスタに設定された命令に基づいて画像データをROM406からVRAM436に転送する。その後、VDP436は、転送終了割込信号をCPU404に対して出力する。
【1065】
ステップS603では、VDP434からの転送終了割込信号が入力されたか否かを判定し、転送終了割込信号が入力された場合はステップS605に進み、そうでない場合は転送終了割込信号が入力されるのを待つ。ステップS605では、演出シナリオ構成テーブルおよびアトリビュートデータなどに基づいて、パラメータ設定を行う。ここでは、CPU404は、ステップS601でVRAM436に転送した画像データに基づいてVRAM436の表示領域AまたはBに表示画像を形成するために、表示画像を構成する画像データの情報(VRAM436の座標軸、画像サイズ、VRAM座標(配置座標)など)をVDP434に指示する。VDP434はアトリビュートレジスタに格納された命令に基づいてアトリビュートに従ったパラメータ設定を行う。
【1066】
ステップS607では、描画指示を行う。この描画指示では、CPU404は、VDP434に画像の描画開始を指示する。VDP434は、CPU404の指示に従ってフレームバッファにおける画像描画を開始する。
【1067】
ステップS609では、画像の描画終了に基づくVDP434からの生成終了割込み信号が入力されたか否かを判定し、生成終了割込み信号が入力された場合はステップS611に進み、そうでない場合は生成終了割込み信号が入力されるのを待つ。ステップS611では、RAM408の所定の領域に設定され、何シーンの画像を生成したかをカウントするシーン表示カウンタをインクリメント(+1)して処理を終了する。
<第2副制御部500の処理>
【1068】
次に、図87を用いて、第2副制御部500の処理について説明する。なお、同図(a)は、第2副制御部500のCPU504が実行するメイン処理のフローチャートである。同図(b)は、第2副制御部500のコマンド受信割込処理のフローチャートである。同図(c)は、第2副制御部500のタイマ割込処理のフローチャートである。
【1069】
まず、同図(a)のステップS701では、各種の初期設定を行う。電源投入が行われると、まずS701で初期化処理が実行される。この初期化処理では、入出力ポートの初期設定や、RAM508内の記憶領域の初期化処理等を行う。
【1070】
ステップS703では、タイマ変数が10以上か否かを判定し、タイマ変数が10となるまでこの処理を繰り返し、タイマ変数が10以上となったときには、ステップS705の処理に移行する。
【1071】
ステップS705では、タイマ変数に0を代入する。ステップS707では、コマンド処理を行う。第2副制御部500のCPU504は、第1副制御部400のCPU404からコマンドを受信したか否かを判別する。ステップS709では、演出制御処理を行う。例えば、S707で新たなコマンドがあった場合には、このコマンドに対応する演出データをROM506から読み出す等の処理を行い、演出データの更新が必要な場合には演出データの更新処理を行う。
【1072】
ステップS711では、第1副制御部400からの遊技盤用ランプ532や遊技台枠用ランプ542への命令がある場合には、この命令をシリアル通信制御回路520に出力する。
【1073】
ステップS713では、第1副制御部400からの演出可動体224への命令がある場合には、この命令を駆動回路516に出力し、S703に戻る。
【1074】
次に、同図(b)を用いて、第2副制御部500のコマンド受信割込処理について説明する。このコマンド受信割込処理は、第2副制御部500が、第1副制御部400が出力するストローブ信号を検出した場合に実行する処理である。コマンド受信割込処理のステップS801では、第1副制御部400が出力したコマンドを未処理コマンドとしてRAM508に設けたコマンド記憶領域に記憶する。
【1075】
次に、同図(c)を用いて、第2副制御部500のCPU504によって実行する第2副制御部タイマ割込処理について説明する。第2副制御部500は、所定の周期(本実施例では2msに1回)でタイマ割込を発生するハードウェアタイマを備えており、このタイマ割込を契機として、タイマ割込処理を所定の周期で実行する。
【1076】
第2副制御部タイマ割込処理のステップS901では、第2副制御部メイン処理におけるステップS703において説明したRAM508のタイマ変数記憶領域の値に、1を加算して元のタイマ変数記憶領域に記憶する。従って、ステップS703において、タイマ変数の値が10以上と判定されるのは20ms毎(2ms×10)となる。第2副制御部タイマ割込処理のステップS903では、演出用乱数値の更新処理等を行う。
<主制御部のROM>
【1077】
次に、図88を用いて、主制御部300のROM306に記憶されるデータの種類について説明する。なお、同図は、上述のROM306に記憶されるデータの一例を示した図である。
【1078】
ROM306の記憶領域に対応するROM領域(本実施形態では、0000H?2FFFHの16Kバイト領域)は、ROM制御領域(本実施形態では、0000H?0BB0H)、非使用領域(本実施形態では、0BB1H?0FFFH)、ROMデータ領域(本実施形態では、1000H?18FDH)およびその他領域(本実施形態では、18FEH?2FFFH)で構成されている。このROM制御領域に対応するROM306の記憶領域には、CPU304が実行する複数種類の命令それぞれに対応する命令データ(オペコード)やCPU304がそれぞれの命令を実行するために必要な補足データ(オペランド)によって構成される制御プログラム用のデータ(単に、制御プログラムデータと称する場合がある)が記憶され、非使用領域に対応するROM306の記憶領域には、特定値(本実施形態では、00H)が一律に記憶され、ROMデータ領域に対応するROM306の記憶領域には、上記の制御プログラムによって参照される参照データ(例えば、上述の各種抽選データ)が記憶されている。また、その他領域に対応するROM306の記憶領域には、制御プログラムを管理するための管理データ(例えば、制御プログラムデータの最終アドレスを示すデータ)などが記憶されている。なお、本実施形態では、ROM領域の各々のアドレスに対応するROM306の記憶領域には、1バイト(8ビット)のデータが記憶可能であり、上述の各データ(命令データ、補足データ、参照データ、管理データ)が1バイトを超えるバイト数(例えば、2バイト)のデータである場合には、ROM制御領域の連続する複数のアドレスに対応するROM306の記憶領域に1バイト毎に分割して記憶している。
【1079】
また、制御プログラムは、複数のサブルーチンによって構成されており、後述するCALL命令やEXESUB(EXECUTE SUBROUTINE)命令などによってサブルーチンの先頭アドレスに移動して、当該サブルーチンを順次実行することが可能になっている。
【1080】
ところで、遊技台の分野では、制御プログラムの検査効率化の観点から、制御プログラムデータを記憶する記憶領域を制限する必要があり、本実施形態では、上述の通りROM制御領域を0000H?0BB0Hに制限している。また、不正改造の抑止の観点から、制御プログラムデータ間に非使用領域や非使用のデータを設けないようにROM制御領域の若いアドレスに詰めて制御用プログラムデータを記憶する必要があるため、開発段階で非使用となった制御プログラムデータの記憶領域を埋めるために別の制御プログラムデータを分割して割り当てるなどの作業が発生し、結果としてサブルーチンを呼び出す制御プログラムデータが多数必要となってくる。さらに、制御プログラムの開発効率を向上させるためや、制御プログラムのデバッグ作業等のメンテナンス作業を簡便にするためにもサブルーチンを多用しているため、サブルーチンを呼び出す制御プログラムデータが多数必要となってくる。
【1081】
このような開発環境の中で遊技の興趣を高めることを可能にするためには、ROM制御領域に対応するROM306の記憶領域に記憶されている従来の制御プログラムデータ(例えば、上述のサブルーチンを呼び出す制御プログラムデータ)を圧縮し、ROM制御領域に対応するROM306の記憶領域に新しい制御プログラムデータを追加することが可能な記憶領域を確保することが必要となってくる。
【1082】
特に、所定の周期(例えば、10ms)毎に所定の処理を実行するタイマ割込み処理を実行するための制御プログラムには、複数の遊技制御処理のうちランダムに発生する複数の外部情報(各センサの変化等)を検出する処理(例えば、入力ポート状態更新処理(ステップS205))や外部情報の検出結果に基づいた処理(例えば、デバイス監視処理(ステップS237))など多くのサブルーチンを呼び出すための制御プログラムデータが含まれているため、このタイマ割込み処理を実行するための制御プログラムに含まれるサブルーチンを呼び出す制御プログラムデータの圧縮が必要となってくる。
【1083】
また、安定した遊技制御をおこなえるようにするためには、上述のタイマ割込み処理を重点的に安定化させなければならない。具体的には、コーディングミスを抑止すること、所定の周期(例えば、10ms)毎に所定の処理を実行させるために(リアルタイム性を確保するために)処理速度を向上させることなどが必須となるため、サブルーチンを呼び出す制御プログラムに関する工夫が必要となる(詳細は後述する)。
<主制御部の命令データ>
【1084】
次に、主制御部300の命令データについて説明する。図89は、主制御部300の命令データの構成の一例を示した図である。また、図90(a)は、主制御部300の命令データの上位ビットと下位ビットを示した図であり、同図(b)は、命令データテーブルの一例を示した図である。
【1085】
主制御部300の命令データは、例えば、命令データが1バイト(8ビット)のデータによって構成される場合には、最大で256パターン定義することが可能である。なお、定義された命令データはROM306に記憶されているものではなく、CPU304にハード的に組み込まれているものである。また、1バイトの命令データについて、各々を上位4ビットと下位4ビットによって分類分けすると、上記パターンと命令データの関係性は、図90(b)に示される通りとなる。例えば、「INC BC(BCレジスタを1つ加算する命令)」に使用されるINC(命令データ)は、上位ビット0H(0000B)、下位ビット3H(0011B)に割り当てられ、「DEC B(Bレジスタを1つ減算する命令)」に使用されるDEC(命令データ)は、上位ビット0H(0000B)、下位ビット5H(0101B)に割り当てられている。
【1086】
なお、1バイト長で定義可能な256パターンの命令データを上回るパターン数の命令データを割り当てる方法として、例えば、上記1バイトで定義される256パターンのうち1パターンに対してさらに新たな1バイトで定義される256パターンを対応付けることで最大511パターン(255パターン(1バイトの命令データ)+256パターン(2バイトの命令データ))の命令データを定義する方法があるが、拡張した命令データは、2バイトのデータによって構成されるため、この命令を使用すると、上述の1バイトの命令データを使用するよりもROM制御領域に対応するROM306の記憶領域を圧迫してしまう。
【1087】
そこで、本実施形態では、図90(b)の太線で囲った領域、すなわち、上位ビット1H(0001B)と下位ビット8H(1000B)?FH(1111B)の組合せと、上位ビット3H(0011B)と下位ビット8H(1000B)?FH(1111B)の組合せからなる領域を、後述するEXESUB命令を割り当てるための特別な領域としている。このように、従来、命令データが割り当てられていない、または、割り当てられていた命令データが削除された空き領域を特別な領域として利用することで、限られたハードウェア資源(例えば、1バイトで定義可能なパターン(256パターン))を有効利用することができ、命令データによるROM制御領域に対応するROM306の記憶領域の圧迫を抑制することができる。
【1088】
また、命令データは、アセンブル後の機械語のチェックを簡便にするためにも役割ごとにグループ化(一の上位ビットに対して連続する複数の下位ビットの組合せからなる領域、または、一の下位ビットに対して連続する複数の上位ビットの組合せからなる領域に、同系統の役割を持つ命令データを割り当てる)して命令データテーブルに割り当てている(例えば、上位ビット8H(1000B)と下位ビット0H(0000B)?7H(0111B)の組合せで定義される部分におけるADD命令)。近年では、チップの開発負担を軽減するため、従来の命令データテーブルに割り当てている命令データの削減、または削減した命令データを割り当てていた部分への新たな命令データを追加するなどしてチップの開発を行う。このため、アセンブル後の機械語のチェックを簡便にしつつも、データ圧縮のために命令データを新たに追加する際には、追加する同系統の命令データをグループにして割り当てていく必要があり、本実施形態では、EXESUB命令をグループにして特別な領域に割り当てることで解決を図っている。さらに、小分けされた特別な領域に対して新たな命令データを効率良く割り当てるためには、追加する命令データのグループを小分けのグループにして割り当てていく必要があり、本実施形態では、さらに、EXESUB命令を小分けのグループにして小分けされた特別な領域に割り当てることで解決を図っている。
<CALL命令>
【1089】
次に、上述の制御プログラムの一つであるCALL命令について説明する。図91は、CALL命令によるアドレスの移動の一例を概念的に示したものであり、図92は、CALL命令の命令データと補足データの一例を示したものである。
【1090】
例えば、実行中の制御プログラムのアドレスが0700Hで、移動先のサブルーチンの先頭アドレスが03FFHの場合には、図91の符号Xで示すように、両者の相対アドレス(移動元のアドレスと移動先のアドレスの差)は、0301H(=0700H-03FFH)であり、この相対アドレスは2バイトのデータで表現可能である。ここで、この制御プログラムをCALL命令によって表現すると、図92(a)に示すように、CALL命令を示す1バイトの命令データと移動先のアドレスを示す2バイトの補足データで合計3バイトの制御プログラムデータが必要となる。
【1091】
また、実行中の制御プログラムのアドレスが0700Hで、移動先のサブルーチンの先頭アドレスが075FHの場合には、図91の符号Yで示すように、両者の相対アドレスは、005FH(=075FH-03FFH)であり、この相対アドレスは1バイトのデータで表現可能である。この場合であっても、この制御プログラムをCALL命令によって表現すると、図92(b)に示すように、CALL命令を示す1バイトの命令データと移動先のアドレスを示す2バイトの補足データで合計3バイトの制御プログラムデータが必要である。
【1092】
すなわち、CALL命令を実行するための制御プログラムは、移動先のアドレス(2バイトで定義可能な記憶領域(0000H?FFFFH)内の任意のアドレス)に関わらず、3バイトの制御プログラムデータが必要となる。
【1093】
なお、CALL命令を実行する際にCPU304は、具体的に、PCレジスタ(プログラムカウンタ)に記憶されているデータ(2バイト)をスタックエリアに記憶させる処理を実行した後に、CALL命令を実行するための補足データ(移動先のサブルーチンの先頭アドレスを示すデータ(2バイト))をPCレジスタ(プログラムカウンタ)に記憶させる処理(サブルーチンの先頭アドレスに移動)を実行することで、サブルーチンを呼び出すことが可能となる。
<EXESUB命令>
【1094】
次に、上述の制御プログラムの一つであるEXESUB命令について説明する。図93(a)は、EXESUB命令の構成の一例を示した図であり、同図(b)は、図90(b)の空き領域に対してEXESUB命令を割り当てた命令データテーブルを示した図である。
【1095】
EXESUB命令は、上述のCALL命令同様にサブルーチンを呼び出すことが可能となる命令という点では同じであるが、命令データ/補足データの構造および制御プログラムデータに必要な記憶容量が異なる(詳細は後述する)。
<EXESUB命令/命令データ>
【1096】
EXESUB命令の命令データは、本実施形態では、最上位ビット7(MSB)から最下位ビット0(LSB)の順番で、ビット7の0(固定値)、ビット6の0(固定値)、ビット5のα(可変値)、ビット4の1(固定値)、ビット3の1(固定値)、ビット2のβ(可変値)、ビット1のγ(可変値)、ビット0のδ(可変値)の合計8ビット(1バイト)で構成されている。すなわち、EXESUB命令は上述の可変値を変えることによって定義されるパターン(2の4乗=16パターン)の命令データとなる。なお、ビット5のα、ビット2のβ、ビット1のγおよびビット0のδの合計4ビットのデータであるmは、0H?FHの数値範囲を表現可能であり、呼び出すサブルーチンの先頭アドレスを識別可能な識別情報(バイナリ形式)の一部である。
【1097】
また、EXESUB命令の命令データは、上述の通り、命令データテーブルのうちの同図(b)に示す太線で囲った領域、すなわち、上位ビット1H(0001B)と下位ビット8H(1000B)?FH(1111B)の組合せと、上位ビット3H(0011B)と下位ビット8H(0111B)?FH(1111B)の組合せからなる空き領域(従来、命令データが割り当てられていない、または、割り当てられていた命令データが削除された領域)に割り当てられる。
【1098】
なお、上述の通り、EXESUB命令の命令データが、可変値のビットと可変値のビットの間に、固定値のビットが入るように構成されていることにより、EXESUB命令の命令データをグループ化しつつ、上述の空き領域に割り当てることが可能になる。よって、EXESUB命令データの機械語のチェックを簡便となり、コーディングミスを抑制することができる。
【1099】
さらに、上述の通り、EXESUB命令の命令データが、1または複数の固定値のビット(例えば、上記のビット4、ビット3)を挟んで上位にある可変値のビット数(例えば、1(上記のビット5))と比較して当該固定値のビットを挟んで下位にある可変値のビット数(例えば、3(上記のビット2、ビット1、ビット0))が大きくなる(記憶容量が大きくなる)ように構成されていることにより、EXESUB命令の命令データをグループ化しつつも、きめ細かく上述の空き領域に割り当てることが可能になる。よって、限られたハードウェア資源(例えば、1バイトで定義可能なパターン(256パターン))を有効利用することができ、命令データの圧縮によるROM制御領域に対応するROM306の記憶領域に記憶されている従来の制御プログラムデータの圧縮が可能となる。なお、1または複数の固定値のビットを挟んで下位にある可変値のビット数と比較して当該固定値を挟んで上位にある可変値のビット数が大きくなる(記憶容量が大きくなる)ように構成した場合であっても、上述の効果を奏する。
【1100】
なお、上述の可変値α、β、γおよびδとEXESUB命令の命令データのビット7?0の対応関係は上述の対応関係に限らず、例えば、ビット4に可変値αを対応させ、同様に、ビット2に可変値β、ビット1に可変地γ、ビット0に可変値δを対応させてもよく、上述した対応関係であればよい。
【1101】
さらに、命令データを構成する可変値α、β、γおよびδの順序は、任意の順序としてもよいが、上述の順序(上位ビットから順にα、β、γ、δ)、すなわち、後述するアドレスmnのmを上位ビットからα、β、γ、δの順に並べることで定義可能になる順序とすることで、EXESUB命令データの機械語のチェックを簡便となり、コーディングミスを抑制することができる。
<EXESUB命令/補足データ>
【1102】
EXESUB命令の補足データは、本実施形態では、00H?FFHの数値範囲を示す8ビットのデータであるnで構成されている。
【1103】
よって、EXESUB命令は、命令データに含まれる4ビットのデータであるmと、8ビットの補足データであるnを、この順番で並べて(mを上位、nを下位として)構成される合計12ビットのアドレスmnによって定義可能なアドレス領域(0000H?0FFFH)に先頭アドレスを持つサブルーチンを呼び出すことができる命令となる。すなわち、nは呼び出すサブルーチンの先頭アドレスを識別可能な識別情報(バイナリ形式)から、当該識別情報の一部(m)を除いた情報の少なくとも一部である。
<EXESUB命令/サブルーチンの呼び出し>
【1104】
図94は、EXESUB命令によるアドレスの移動の一例を概念的に示した図である。本実施形態では、m(4ビットのデータ)は、同図(a)に示すように、ROM領域のアドレス0000H?2FFFHのうち、上位1バイトの下位4ビット(0H?FH)を示し、n(8ビットのデータ)は、同図(b)に示すように、上位アドレスmによって表現される100H単位の記憶領域(0m00H?0mFFH:m=0H?FH)を1ブロックとしたときに、当該1ブロック内のアドレス(00H?FFH)を示す値である。
【1105】
なお、移動先のアドレスを設定可能なアドレス領域を、nまたはmのいずれのデータを上位アドレスのデータとして定義しても、後述する制御プログラムデータの削減の効果は得られるが、上述の通り、命令データに含まれるmを上位アドレスのデータとして定義することで、図94(a)に示すように、アドレス領域に対してEXESUB命令の命令データをグループ化して対応付けることができ、コーディングミスを抑制することができる。
【1106】
また、EXESUB命令の命令データは、呼び出すサブルーチンの先頭アドレスの一部を構成するデータであるmを含んで構成されていることから、移動先のアドレスデータを間違ってしまった場合であっても、間違ってしまったデータが命令データに含まれていれば、制御プログラムの実行が停止されるため、コーディングミスを抑制することができる。
【1107】
図95は、EXESUB命令によるサブルーチンの先頭アドレスの呼び出しの一例を示したものであり、図96は、EXESUB命令の命令データと補足データの一例を示した図である。
【1108】
例えば、実行中の制御プログラムのアドレスが0700Hで、移動先のサブルーチンの先頭アドレスが03FFHの場合を挙げる。この制御プログラムをCALL命令で表現すると、上述の通り、図95の符号X´で示す両者の相対アドレス(移動元のアドレスと移動先のアドレスの差)は、0301H(=0700H-03FFH)であり、この相対アドレスは2バイトのデータで表現可能であり、1バイトの命令データと2バイトの補足データで合計3バイトの制御プログラムデータが必要である。
【1109】
一方、この制御プログラムをEXESUB命令で表現すると、移動先のアドレスへの移動は概念的にX´´で示すものとなり、この相対アドレスは、1バイトのデータで表現可能な00FFH(=03FFH-0300H)となる。すなわち、EXESUB命令は、図96(a)に示すように、00011011Bで表される1バイトの命令データと、11111111Bで表される1バイトの補足データで合計2バイトの制御プログラムデータが必要となる。
【1110】
また、実行中の制御プログラムのアドレスが0700Hで、呼び出し先のサブルーチンの先頭アドレスが075FHの場合を挙げる。この場合は、この制御プログラムがCALL命令またはEXESUB命令のいずれで表現する場合であっても、上述の通り、図95の符号Y´で示すように、両者の相対アドレスは、1バイトで表現可能な005FH(=0C5FH-0C00H)であり、この相対アドレスは1バイトのデータで表現可能であるが、この制御プログラムをCALL命令で表現すると、1バイトの命令データと2バイトの補足データで合計3バイトの制御プログラムデータが必要となる。
【1111】
一方、この制御プログラムをEXESUB命令で表現すると、図96(b)に示すように、00011111Bで表される1バイトの命令データと、01011111Bで表される1バイトの補足データの合計2バイトの制御プログラムデータが必要となり、上述のCALL命令よりも、1命令当りのデータを1バイト削減することができる。
【1112】
よって、EXESUB命令を実行するための制御プログラムは、移動先のアドレス(12ビットで定義可能な記憶領域(0000H?0FFFH)内の任意のアドレス)に関わらず、2バイトの制御プログラムデータが必要となり、上述のCALL命令よりも、1命令当りの制御プログラムデータを1バイト削減することができる。
【1113】
すなわち、サブルーチンを呼び出す制御プログラムに上述のEXESUB命令を用いることで、従来のサブルーチンを呼び出す制御プログラム(例えば、CALL命令)を圧縮することができ、ROM制御領域に対応するROM306の記憶領域に記憶されている従来の制御プログラムデータを圧縮することが可能となる。
【1114】
なお、EXESUB命令を実行する際にCPU304は、具体的に、PCレジスタ(プログラムカウンタ)に記憶されているデータ(2バイト)をスタックエリアに記憶させる処理を実行した後に、EXESUB命令を実行するための補足データ(移動先のサブルーチンの先頭アドレスを示すデータ(2バイト))をPCレジスタ(プログラムカウンタ)に記憶させる処理(サブルーチンの先頭アドレスに移動)を実行することで、サブルーチンを呼び出すことが可能となる。
【1115】
また、サブルーチンを呼び出す制御プログラムに上述のEXESUB命令を用いることで、上述制御プログラムの圧縮に起因して従来(例えば、CALL命令)よりもサブルーチンを呼び出す制御プログラムの処理速度を向上させる(ステート数を少なくする)ことができる。
【1116】
さらに、上述のように、ROM領域は、上述のEXESUB命令によって呼び出すことができる領域(本実施形態では、0000H?0FFFH)に対応するROM306の記憶領域に、全ての制御プログラムデータが記憶されるようにROM制御領域(本実施形態では、0000H?0BB1H)を設け、少なくとも、上述のEXESUB命令によって呼び出すことができる領域(本実施形態では、0000H?0FFFH)から、制御プログラムデータが記憶されているROM制御領域(本実施形態では、0000H?0BB1H)を除いた領域(本実施形態では、0BB1H?0FFFH)を、非使用領域となるように構成されるとともに、非使用領域の後にROMデータ領域が続くように構成されている。
【1117】
このようにROM領域を構成した遊技台において、サブルーチンを呼び出す制御プログラムに上述のEXESUB命令を用いる(ROM制御領域に対応するROM306の記憶領域にEXESUB命令の制御プログラムデータを記憶する)ことで、CPU304が制御プログラムデータおよび非使用データを除くデータを命令データとして直接読み込むことがないため、補足データのコーディングミスによるCPU304の誤作動を防止できる場合がある。
<制御プログラムの一例>
【1118】
図97は、上述の主制御部タイマ割込処理の制御プログラムの一例を示したプログラムリストである。なお、「**」はEXESUB命令の補足データを示す。
【1119】
CPU304は、タイマ割込み処理を開始すると、まずWDTをリスタートする処理を実行し、所定の処理(詳細は省略)を実行し、その後、EXESUB命令(1)?(18)を用いて、それぞれ、以下のサブルーチンを読み出す処理を実行する。入力ポート状態更新処理、基本乱数初期値更新処理、基本乱数更新処理、演出乱数更新処理、タイマ更新処理、入賞口カウンタ更新処理、入賞受付処理、払出要求数送信処理、普図状態更新処理、普図関連抽選処理特図先読み制御処理、特図2状態更新処理、特図1状態更新処理、特図2関連抽選処理、特図1関連抽選処理、コマンド設定送信処理、外部出力信号設定処理、デバイス監視処理、を実行し、その他の処理(詳細は省略)を実行する。なお、詳細は省略するが、上述のEXESUB命令(1)?(18)によって呼び出されるサブルーチンの先頭アドレスはROM制御領域(本実施形態では、0000H?0BB0H)に含まれている。
【1120】
このように、タイマ割込み処理におけるサブルーチンを呼び出す制御プログラムに上述のEXESUB命令を用いる(ROM制御領域のうちタイマ割り込み処理の領域に対応するROM306の記憶領域にEXESUB命令の制御プログラムデータを記憶する)ことで、タイマ割込み処理を安定化させることができる。
【1121】
ところで、遊技台の開発では、一般的に従来の制御プログラムの一部を変更(削除や追加など)することで新たな遊技台を開発している。特に、遊技制御の安定化を図るためにできるだけ制御プログラムの変更は避けることが望まれる。
【1122】
よって、ROM領域(例えば、タイマ割込み処理の領域)におけるサブルーチンを呼び出す制御プログラムすべてに、上述のEXESUB命令を用いる必要はなく、必要(例えば、上述の制御プログラムデータの圧縮の要求の有無)に応じて適宜用いればよい。さらに、上述のEXESUB命令は、従来の1バイトの命令データと2バイトの補足データで構成される3バイト命令の制御プログラムデータ(例えば、CALL命令)を、1バイトの命令データと1バイトの補足データで構成される2バイト命令の制御プログラムデータに圧縮した制御プログラムであるが、命令データと補足データで構成される制御プログラムを圧縮する制御プログラムであればよい。すなわち、EXESUB命令は、呼び出すサブルーチンの先頭アドレスを識別可能な識別情報(バイナリ形式)の一部を含んで構成される命令データと、当該識別情報から当該命令データに含まれた識別情報を除いた情報の少なくとも一部で構成される補足データとで構成される制御プログラムであればよく、さらに言えば、上述の命令データおよび補足データそれぞれが、CPU304が一回の処理で読み込むデータ長(例えば、8ビット)の整数倍であればよい。
<ROM制御領域の変形例>
【1123】
図98は、ROM領域が、上述のEXESUB命令(EXESUBmn)によって呼び出すことができる領域(本実施形態では、0000H?0FFFH)よりも、制御プログラムデータが記憶されているROM制御領域(本実施形態では、0000H?11B8H)が広くなるように構成されている場合を示した図である。また、図99(a)および(b)は、EXESUB命令(EXESUBmn)によって呼び出すことができるサブルーチンの先頭アドレスの領域を拡張した場合の一例を示した図である。
【1124】
例えば、図98に示すように、ROM制御領域(本実施形態では、0000H?11B8H)が、EXESUB命令(EXESUBmn)で呼び出すことができるサブルーチンの先頭アドレスの領域(本実施形態では、0000H?0FFFH)より広い場合、ROM制御領域は、EXESUB対象領域(本実施形態では、0000H?0FFFH)と、EXESUB非対象領域(例えば、1000H?11B8H)で構成されることとなる。
【1125】
この場合、EXESUB非対象領域に対応するアドレスを先頭アドレスに持つサブルーチンを呼び出す命令に上述のCALL命令を用いて補ったとしても、上述の通り、遊技の興趣を高めることを可能にしつつ、安定した遊技制御を実現することは可能である。
【1126】
しかし、図99に示すように、EXESUB命令(EXESUBmn)によって呼び出すことができるサブルーチンの先頭アドレスの領域を拡張することで、上述の効果をより高めることが可能になる。
【1127】
具体的な手段としては、図99(a)および(b)に示すように、後述する可変値σを用いて、EXESUB命令(EXESUBmn)に要する記憶容量を維持しつつ、EXESUB命令(EXESUBmn)の命令データを拡張するものである。なお、以下は、同図に新たに追加した可変値σについて説明することとする。
【1128】
可変値σは、EXESUB命令(後述のEXESUBm´n)を拡張するために用いられ、図99(a)に示すように、EXESUB命令(後述のEXESUBm´n)の命令データ(本実施形態では、8ビット)のビット6を構成する値であり、呼び出すサブルーチンの先頭アドレスを示すアドレスm´nのうちm´の値に応じて変化するものである。
【1129】
また、命令データテーブルには、図99(b)に示すように、可変値σによって拡張されたEXESUB命令(EXESUBm´n)が、同図(b)に示す太線で囲った領域、すなわち、上位ビット5H(0101B)と下位ビット8H(1000B)および9H(1001B)の組合せからなる空き領域に割り当てられている。
【1130】
ここで、m´は、図93(a)で示したmと同一の役割を持つデータであるが、上述のmがビット5のα、ビット2のβ、ビット1のγおよびビット0のδの合計4ビットのデータであったのに対して、m´はビット6のσ、ビット5のα、ビット2のβ、ビット1のγおよびビット0のδの合計5ビットのデータである点が異なり、m´は、00H?11Hの数値範囲を表現可能なデータであり、呼び出すサブルーチンの先頭アドレスを識別可能な識別情報(バイナリ形式)の一部である。
【1131】
このように、上述のEXESUB命令(EXESUBmn)の命令データのビット6に可変値σを設けたEXESUB命令(EXESUBm´n)を用いて、アドレスmnによって定義可能なアドレス領域(000H?FFFH)を拡張(アドレスm´nによって定義可能なアドレス領域を0000H?11FFHに)することで、上述のEXESUB非対象領域に対応するアドレスを先頭アドレスに持つサブルーチンをEXESUB命令(EXESUBm´n)を用いて呼び出すことができる。
【1132】
なお、上述の可変値σ、α、β、γおよびδとEXESUB命令(EXESUBm´n)の命令データのビット7?0の対応関係は上述の対応関係に限らず、例えば、ビット5に可変値σを対応させ、同様に、ビット4に可変値α、ビット2に可変値β、ビット1に可変地γ、ビット0に可変値δを対応させてもよく、図93を用いて説明した対応関係と同じであればよい。
【1133】
さらに、命令データを構成する可変値σ、α、β、γおよびδの順序は、任意の順序としてもよいが、上述の順序(上位ビットから順にσ、α、β、γ、δ)、すなわち、後述するアドレスm´nのm´を上位ビットからσ、α、β、γ、δの順に並べることで定義可能になる順序とすることで、EXESUB命令データの機械語のチェックを簡便となり、コーディングミスを抑制することができる。
【1134】
このように、上述のROM制御領域(例えば、0000H?11B8H)に対応させて上述のEXESUB命令(EXESUBm´n)の命令データを設けることで、ROM制御領域に対応するROM306の記憶領域に記憶されている従来の制御プログラムデータの圧縮が可能となる。
【1135】
ところで、図88および図98で示したように、制限されたROM制御領域の中でも開発された遊技台ごとに設けられたROM制御領域が異なる場合があるが、このような遊技台それぞれに対して、上述のEXESUBmnまたはEXESUBm´nそれぞれを命令データとして備えているCPUを使い分けて開発を行うことは、開発工数およびコストの観点からも無駄であるとともに、コーディングミスの原因ともなり、安定した遊技制御の実現を困難にしてしまうこととなる。よって、図88で示したROM制御領域を持つ遊技台であっても、EXESUB命令にEXESUBm´nを用いた方が望ましい。
【1136】
この場合であっても、EXESUBm´nによって呼び出すことができる領域(本実施形態では、0000H?11FFH)よりも、制御プログラムデータが記憶されているROM制御領域(本実施形態では、0000H?0BB1H)が狭くなるように構成されているため、少なくとも、上述のEXESUBm´nによって呼び出すことができる領域から、制御プログラムデータが記憶されているROM制御領域を除いた領域(本実施形態では、0BB1H?11FFH)を、hituka用領域で構成するとともに、非使用領域の後にROMデータ領域が続くように構成すればよい。
<特図状態更新処理、普図状態更新処理>
【1137】
次に、図100を用いて、上述の特図2状態更新処理(ステップS225)、特図1状態更新処理(ステップS227)、普図状態更新処理(ステップS221)の制御プログラムの一部について説明する。なお、同図(a)は特図2状態更新処理および特図1状態更新処理の制御プログラムの一部を抜き出したものであり、同図(b)は普図状態更新処理の制御プログラムの一部を抜き出したものである。
【1138】
例えば、同図(a)に示す特図状態更新処理では、まず最初に、「LD L,Low.vbTokuzuStatus」の命令を実行することによって、同図(d)においてvbTokuzuStatusとして定義されたアドレス(この例では、RAM308に設けた特図ステータス用記憶領域を示すアドレスであるF060H)の下位バイト(この例では、60H)をLレジスタに記憶する。
【1139】
続いて、「JP moReadMemory」の命令を実行することによって、同図(c)に示すmoReadMemory(メモリ読出し処理)に移動し、当該処理を実行する。このメモリ読み出し処理では、まず最初に「LD H,F0H」の命令を実行することによってHレジスタにF0Hを記憶した後、「LD A,(HL)」の命令を実行することによってHLレジスタで示されるアドレス(この例では、F060H)の内容(この例では、特図ステータス)をAレジスタに記憶する。続いて、「AND A」の命令を実行した後に、読み出し元の特図状態更新処理に戻る。なお、同図(b)に示す普図状態更新処理も共通のサブルーチンであるmoReadMemory(メモリ読出し処理)を利用することによって、RAM308の普図ステータス用記憶領域に記憶された普図ステータスの読みだしを行う。このように、同図(c)に示す従来のメモリ読出し処理を利用した場合には、「LD H,F0H」という命令により、特図ステータス用記憶領域や普図ステータス用記憶領域のアドレスの上位(F0H)が解析され、不正行為を誘発するおそれがある。このため、本実施形態では、同図(c)に示す従来のメモリ読出し処理に替えて、同図(e)に示すメモリ読出し処理を採用する。
【1140】
この本実施形態に係るメモリ読出し処理では、「LD A,T」の命令を実行することによって、Tレジスタの値をAレジスタに記憶するが、上述のように、Tレジスタには特定の値(F0H)が記憶されているため、AレジスタにはF0Hが記憶される。以降の処理は従来の処理と同様であるが、イミディエイト値を利用する代わりにTレジスタを利用しているため、特図ステータス用記憶領域や普図ステータス用記憶領域のアドレスの上位(F0H)が解析されるおそれが少なく、不正行為を未然に防止できる場合がある。また、イミディエイト値を利用した場合には、例えば、F0HをF1Hと間違って入力するなど、コーディングミスの可能性が高くなるが、Tレジスタを利用すればコーディングミスを未然に防止できる場合がある。
【1141】
図101は、図100(c)に示す従来のメモリ読出し処理の機械語と、図100(e)に示す本実施形態に係るメモリ読出し処理の機械語と、を比較した図である。従来のメモリ読出し処理における1行目の「LD H,F0H」命令をアセンブルした場合、機械語は「26F0H」となり「F0H」を含むため、従来のメモリ読出し処理では、特図ステータス用記憶領域や普図ステータス用記憶領域のアドレスの上位(F0H)が解析されてしまうおそれがある。一方、本実施形態のメモリ読出し処理における1行目の「LD A,T」命令をアセンブルした場合、機械語は「ED01H」となり「F0H」を含まないため、本実施形態のメモリ読出し処理では、特図ステータス用記憶領域や普図ステータス用記憶領域のアドレスの上位(F0H)が解析されるおそれが極めて低く、不正行為を未然に防止できる場合がある。
<特図1関連抽選処理>
【1142】
次に、図102を用いて、上述の主制御部タイマ割込処理における特図1関連抽選処理について説明する。なお、同図は、特図1関連抽選処理の流れを示すフローチャートである。
【1143】
ステップS1001では、特別図柄乱数移行処理を行う。この特別図柄乱数移行処理では、一次記憶した乱数値を、RAM308に設けた特別図柄関連抽選乱数の格納領域に移行(記憶)する。ステップS1002では、特別図柄当り抽選処理を行う。この特別図柄当り抽選処理では、上述の特図乱数値(特図1乱数値、特図2乱数値)と、ROM306に予め記憶している特別図柄抽選データを比較する抽選を行い、当該抽選結果に応じて、上述の15R大当りフラグ、2R大当りフラグ、第1小当りフラグ、第2小当りフラグ、第1はずれフラグ、第2はずれフラグ、特図確率変動フラグ、および普図確率変動フラグなどを設定し、特別図柄遊技状態を変動中に設定する。
【1144】
ステップS1003では、表示図柄抽選処理を行う。この表示図柄抽選処理では、RAM308に記憶している表示図柄判定乱数と、ROM306に予め記憶している表示図柄抽選データを比較する抽選を行い、当該抽選結果に応じて、15R特別大当り図柄(特図A)、15R大当り図柄(特図B)、突然確変図柄(特図C)、突然時短図柄(特図D)、隠れ確変図柄(特図E)、突然通常図柄(特図F)、第1小当り図柄(特図G)、第2小当り図柄(特図H)、第1はずれ図柄(特図I)、および第2はずれ図柄(特図J)のいずれか一つの図柄を設定する。
【1145】
ステップS1004では、特別図柄変動時間抽選処理を行う(詳細は後述する)。ステップS1005では、特別図柄変動時間設定処理を行う。この特別図柄変動時間設定処理では、上記ステップS1004の特別図柄変動時間抽選処理で取得した変動パターン(パターン番号)に応じたタイマを特別図柄変動タイマとして設定(記憶)する。ステップS1006では、特別図柄保留内情報移行処理を行う。この特別図柄保留内情報移行処理では、特別図柄保留内情報を変動順が先の格納領域に移行(記憶)した後に処理を終了する。
【1146】
なお、ここでは一例として、上述の主制御部タイマ割込処理における特図1関連抽選処理(ステップS231)について説明したが、例えば、特図2関連抽選処理(ステップS229)や普図関連抽選処理(ステップS223)についても同様の処理を適用することができる。
<主制御部のデータテーブルと変数記憶領域>
【1147】
次に、図103および図104を用いて、主制御部300のROM306に記憶されるデータテーブルの一部と、RAM308に設けられる変数記憶領域の一部について説明する。 <テーブル選択用テーブル>
【1148】
図103(a)は、テーブル選択用テーブルの一例を示した図であり、図104は、主制御部300のROM306に記憶されるデータテーブルの定義の一部と、RAM308に設けられる変数格納領域の定義の一部を示したプログラムリストの一例である。
【1149】
図103(a)に示すテーブル選択用テーブルには、後述する第1変動パターン選択テーブルが記憶されるROM306のアドレスを示す飛先アドレスが、特図変動遊技の保留数毎に0個用?3個用の4つに区分けされて記憶されている。具体的には、ROMデータ領域のアドレス1600H?1601Hに対応するROM306の2バイトの記憶領域には、保留数が0の場合に参照する第1変動パターン選択テーブルの飛先アドレスとして174FHが記憶されている(1600 DEFB 174FH)。また、ROMデータ領域のアドレス1602H?1603Hに対応するROM306の2バイトの記憶領域には、保留数が1の場合に参照する第1変動パターン選択テーブルの飛先アドレスとして174FHが記憶されている(1602 DEFB 174FH)。また、ROMデータ領域のアドレス1604H?1605Hに対応するROM306の2バイトの記憶領域には、保留数が2の場合に参照する第1変動パターン選択テーブルの飛先アドレスとして174FHが記憶されている(1604 DEFB 174FH)。また、ROMデータ領域のアドレス1606H?1607Hに対応するROM306の2バイトの記憶領域には、保留数が3の場合に参照する第1変動パターン選択テーブルの飛先アドレスとして1755Hが記憶されている(1606 DEFB 1755H)。
<第1変動パターン選択テーブル>
【1150】
図103(b)は、第1変動パターン選択テーブルの一例を示した図である。この第1変動パターン選択テーブルには、当該テーブルのアドレスと、後述する第2変動パターン選択テーブルが記憶されたアドレスとの差(オフセット)と、乱数の個数が記憶されている。具体的には、ROMデータ領域のアドレス1750Hに対応するROM306の1バイトの記憶領域には、オフセットとしてAEHが記憶されているとともに、このアドレスに連続する1751Hに対応するROM306の1バイトの記憶領域には、乱数の個数として20が記憶され(1750H DEFB AEH,20)、以降のROMデータ領域のアドレス1752H?1759Hに対応するROM306の記憶領域には、図103(b)および図104に示すように、1バイト長のオフセットと、1バイト長の乱数の個数が交互に連続して記憶されている。なお、第1変動パターン選択テーブルにおいて乱数の個数は10進数で示している。
<第2変動パターン選択テーブル>
【1151】
図103(c)は、第2変動パターン選択テーブルの一例を示した図である。この第2変動パターン選択テーブルには、パターン番号と、乱数の個数が記憶されている。具体的には、ROMデータ領域のアドレス1800Hに対応するROM306の1バイトの記憶領域には、パターン番号として01Hが記憶されているとともに、このアドレスに連続する1801Hで示される1バイトの領域には、乱数の個数として255が記憶され(1800H DEFB 01H,255)、以降のROMデータ領域のアドレス1802H?180FHに対応するROM306の記憶領域には、図103(c)および図104に示すように、1バイト長のパターン番号と、1バイト長の乱数の個数が交互に連続して記憶されている。なお、第2変動パターン選択テーブルにおいて乱数の個数は10進数で示している。
<変数記憶領域>
【1152】
図103(d)は、RWM領域のアドレスF040H?F042Hに対応するRAM308の記憶領域に設けられる保留数記憶領域、乱数1記憶領域、乱数2記憶領域を示した図である。RWM領域のアドレスF040Hに対応するRAM308の1バイトの記憶領域には保留数記憶領域が設けられ(F040 vbHoryuuSP1 DEFS 1)、この保留数記憶領域には保留数が記憶される。また、アドレスF041Hに対応するRAM308の1バイトの記憶領域には乱数1記憶領域が設けられ(F041 vbRndHendou1 DEFS 1)、この乱数1記憶領域には乱数1が記憶される。また、アドレスF042Hに対応するRAM308の1バイトの記憶領域には乱数2記憶領域が設けられ(F042 vbRndHendou2 DEFS 1)、この乱数2記憶領域には乱数2が記憶される。
<特別図柄変動時間抽選処理>
【1153】
次に、図105および図106を用いて、上述の特図1関連抽選処理における特別図柄変動時間抽選処理について説明する。なお、図105は、特別図柄変動時間抽選処理の流れを示すフローチャートであり、図106は、特別図柄変動時間抽選処理のプログラムリストの一例である。
【1154】
ステップS1101では、演出用乱数取得処理を行う。この演出用乱数取得処理では、上述の特図1関連抽選処理で取得した特図1乱数値(0?255)を、上述の乱数値1記憶領域(RWM領域のアドレスF041H)に記憶し、上述の特図2関連抽選処理で取得した特図2乱数値(0?255)を、上述の乱数値2記憶領域(RWM領域のアドレスF042H)に記憶する。
【1155】
次のステップS1102では、上述のテーブル選択用テーブル(図103(a))の先頭アドレス(本実施形態では、1600H)を、HLレジスタに転送する(LD HL,tableSelectTable)。これにより、HLレジスタに1600Hが記憶される。
【1156】
次のステップS1103では、上述の保留数記憶領域(RWM領域のアドレスF040H)に記憶された保留数を、Aレジスタに転送する(LDT A,(40H))。ここで、「LDT A、(n:イミディエイト値)」命令は、図107に示すように、Tレジスタを上位、イミディエイト値を下位で示すアドレスのデータをAレジスタにロードする命令である。本実施形態では、TレジスタにF0Hを記憶しているため、「LDT A,(40H)」命令を実行した場合、Tレジスタ(F0H)を上位、イミディエイト値(40H)を下位で示すアドレス(F040H)のデータ、すなわち保留数記憶領域に記憶された保留数がAレジスタにロード(転送)される。例えば、保留数記憶領域に記憶された保留数が2の場合には、Aレジスタに02Hがロード(転送)される。
【1157】
次のステップS1104では、Aレジスタの値にAレジスタの値を加算する(ADD A,A)。先の例では、Aレジスタの値(02H)にAレジスタの値(02H)を加算することによってAレジスタに04Hが記憶される。次のステップS1105では、HLレジスタにAレジスタの値を加算する(ADDTWOONE HL,A)。詳細は後述するが、ADDTWOONE命令(ADDTWOONE HL,A)は、HLレジスタに記憶された2バイト長の値に、Aレジスタに記憶された1バイト長の値を加算するための命令である。先の例では、HLレジスタ(1600H)にAレジスタの値(04H)を加算することによってHLレジスタに1604Hが記憶される。
【1158】
次のステップS1106では、HLレジスタが示すアドレスの値をDEレジスタに転送する(LDTWO DE,(HL))。ここで、「LDTWO DE,(HL)」命令は、図107に示すように、HLレジスタが示すアドレスのデータをDEレジスタにロードする命令である。先の例では、HLレジスタが示すアドレス(1604H)の値(174FH)をDEレジスタに転送することによってDEレジスタには174FHが記憶される。
【1159】
次のステップS1107では、DEレジスタの値とHLレジスタの値を交換する(EXDE,HL)。先の例では、DEレジスタの値(174FH)とHLレジスタの値(1604H)を交換することによって、HLレジスタには174FHが記憶され、DEレジスタには1604Hが記憶される。
【1160】
次のステップS1108では、上述の乱数1記憶領域に記憶された乱数1(特別図柄変動時間判定乱数1)をAレジスタに転送する(LDT A,(41H))。本実施形態では、TレジスタにF0Hを記憶しているため、「LDT A,(41H)」命令を実行した場合、Tレジスタ(F0H)を上位、イミディエイト値(41H)を下位で示すアドレス(F041H)のデータ、すなわち乱数1記憶領域に記憶された乱数1がAレジスタにロード(転送)される。例えば、乱数1記憶領域に記憶された乱数1が250の場合には、Aレジスタに250が記憶される。
【1161】
次のステップS1109では、HLレジスタの値で示されるアドレスの次の連続した2つのアドレスに格納された値をBCレジスタに転送する(INCTENSOU BC,(HL))。詳細は後述するが、「INCTENSOU BC,(HL)」命令は、HLレジスタに記憶された2バイト長の値に1を加算し、加算後のHLレジスタの値で示されるアドレスに記憶された1バイト長の値を、BCレジスタのうちの下位のCレジスタに記憶した後に、HLレジスタに記憶された2バイト長の値にさらに1を加算し、加算後のHLレジスタの値で示されるアドレスに記憶された1バイト長の値を、BCレジスタのうちの上位のBレジスタに記憶するための命令である。先の例では、HLレジスタに記憶された2バイト長の値(174FH)に1を加算し、加算後のHLレジスタの値(1750H)で示されるアドレスに記憶された1バイト長の値(AEH)を、BCレジスタのうちの下位のCレジスタに記憶した後に、HLレジスタに記憶された2バイト長の値にさらに1を加算し、加算後のHLレジスタの値(1751H)で示されるアドレスに記憶された1バイト長の値(20)を、BCレジスタのうちの上位のBレジスタに記憶する。
【1162】
次のステップS1110では、Aレジスタの値からBレジスタの値を減算する(SUBB)。先の例では、Aレジスタの値(250)からBレジスタの値(20)を減算する。次のステップS1111では、ステップS1110の減算の結果、キャリーが発生したか否か、すなわち減算の結果が負の値になったかどうかを判定し、該当する場合にはステップS1112に進み、該当しない場合には該当するまでステップS1109?S1111の処理を繰り返し実行する(JP NC,LOOP01)。先の例では、ステップS1109?S1111の処理を3回繰り返すことによってキャリーが発生し、ステップS1112に進む際には、Bレジスタの値が8、Cレジスタ値がB0H、HLレジスタの値が1755Hになる。
【1163】
次のステップS1112では、HLレジスタの値にCレジスタの値を加算する(ADDTWOONE)。先の例では、HLレジスタの値(1755H)にCレジスタの値(B0H)を加算することによってHLレジスタには1805Hが記憶される。次のステップS1113では、上述の乱数2記憶領域(本実施形態では、F042H)に記憶された乱数2(特別図柄変動時間判定乱数2)をAレジスタに転送する(LDT A,(42H))。本実施形態では、TレジスタにF0Hを記憶しているため、「LDT A,(42H)」命令を実行した場合、Tレジスタ(F0H)を上位、イミディエイト値(42H)を下位で示すアドレス(F042H)のデータ、すなわち乱数2記憶領域に記憶された乱数2がAレジスタにロード(転送)される。例えば、乱数2が148の場合には、Aレジスタに148が記憶される。
【1164】
次のステップS1114では、HLレジスタの値で示されるアドレスの次の連続した2つのアドレスに格納された値をBCレジスタに転送する(INCTENSOU BC,(HL))。先の例では、HLレジスタに記憶された2バイト長の値(1805H)に1を加算し、加算後のHLレジスタの値(1806H)で示されるアドレスに記憶された1バイト長の値(04H)を、BCレジスタのうちの下位のCレジスタに記憶した後に、HLレジスタに記憶された2バイト長の値にさらに1を加算し、加算後のHLレジスタの値(1807H)で示されるアドレスに記憶された1バイト長の値(128)を、BCレジスタのうちの上位のBレジスタに記憶する。
【1165】
次のステップS1115では、Aレジスタの値からBレジスタの値を減算する(SUBB)。先の例では、Aレジスタの値(148)からBレジスタの値(128)を減算する。次のステップS1116では、ステップS1115の減算の結果、キャリーが発生したか否か、すなわち減算の結果が負の値になったかどうかを判定し、該当する場合にはステップS1117に進み、該当しない場合には該当するまでステップS1114?S1116の処理を繰り返し実行する(JP NC,LOOP02)。先の例では、ステップS1114?S1116の処理を2回繰り返すことによってキャリーが発生し、ステップS1117に進む際には、Bレジスタの値が32、Cレジスタの値が05H、HLレジスタの値が1809Hになる。ステップS1117では、その他の処理を行った後に処理を終了する。なお、ここでは一例として、特図1や特図2に関する処理について説明したが、例えば、普図の保留数や乱数値についても同様の処理を適用することができる。
<主制御部の特殊命令>
【1166】
次に、図107および図108を用いて、主制御部300が備える特殊命令について説明する。なお、図107は、主制御部300が備える命令の一部と、その説明を示した図である。また、図108(a)は、主制御部300の命令データの上位ビットと下位ビットを示した図であり、同図(b)は、命令データテーブルの一例を示した図である。
<特殊命令/LDT命令>
【1167】
特殊命令の一つである「LDT A、(n:イミディエイト値)」命令は、上述のとおり、Tレジスタを上位、イミディエイト値を下位で示すアドレスのデータをAレジスタにロードする命令であり、例えば、上述の特別図柄変動時間抽選処理のステップS1103では、「LDT A、(40H)」命令を実行することによって、Tレジスタ(F0H)を上位、イミディエイト値(40H)を下位で示すアドレス(F040H)のデータ、すなわち保留数記憶領域に記憶された保留数をAレジスタにロード(転送)している。
【1168】
また、図示はしないが、主制御部300は、さらに、Aレジスタに記憶されたデータを、Tレジスタを上位、イミディエイト値を下位で示すアドレスにロードするための「LDT(n:イミディエイト値),A」命令を備えている。一方、Tレジスタを上位、汎用レジスタ(例えば、Hレジスタ)を下位で示すアドレスのデータをAレジスタにロードする命令(例えば、「LDT A,H」のような命令)や、Aレジスタに記憶されたデータを、Tレジスタを上位、汎用レジスタ(例えば、Hレジスタ)を下位で示すアドレスにロードするための命令(例えば、「LDT H,A」のような命令)は備えていない。
【1169】
すなわち、LDT命令によって指定可能なアドレスの下位バイトは、イミディエイト値に限定されており、汎用レジスタを指定することは禁止されている(機械語にアセンブルされる過程でエラーとなりアセンブルすることができない)。このため、LDT命令では、プログラムリストの確認などを行う際にアドレスの確認が容易となる上に、Tレジスタの値(アドレスの上位バイト)を不用意に変更することができなくなる結果、コーディングミスや不具合の発生を減少させることができる場合がある。
<特殊命令/LDTWO命令>
【1170】
特殊命令の一つである「LDTWO OP1,(OP2)」命令は、上述のとおり、第2オペランドOP2で示される2つのレジスタが示すアドレスのデータを第1オペランドOP1で示される2つのレジスタにロードする命令であり、「LDTWO(OP2),OP1」命令は、第2オペランドOP2で示される2つのレジスタが示すアドレスに第1オペランドOP1で示される2つのレジスタのデータをロードする命令であり、例えば、上述の特別図柄変動時間抽選処理のステップS1106では、「LDTWO DE,(HL)」命令を実行することによって、HLレジスタが示すアドレス(1604H)の値(174FH)をDEレジスタにロード(転送)してDEレジスタには174FHを記憶している。OP2がHLレジスタではないBCレジスタまたはDEレジスタである場合、OP1がBCレジスタ、DEレジスタ、HLレジスタ、IXレジスタ、IYレジスタとなり、OP2がHLレジスタである場合のみ、OP1がBCレジスタ、DEレジスタ、HLレジスタ、ACレジスタ、AEレジスタ、BDレジスタ、IXレジスタ、IYレジスタとなる。LDTWO命令は、AレジスタやHLレジスタを保護するのに適している。
【1171】
また、LDTWO命令では、必要なステート数は14ステート、必要なバイト数は2バイトである。一方、従来の命令によってLDTWO命令と同様の処理を行う場合には、図107に示すように、必要なステート数は14ステート(=4+6+4)、必要なバイト数は3バイト(=1+1+1)である。したがって、HLレジスタが示すアドレスのデータをDEレジスタにロードする場合にLDTWO命令を使用すれば、制御プログラムの処理時間を短縮して制御負担を軽減することができる上に、プログラムコード量を削減することができ、メモリ容量が制限されているROMの記憶領域を有効に利用することができる場合がある。また、遊技性を高めるためにプログラムコードが増えたとしても、プログラム容量の増加や処理速度の低下を抑止できる場合がある。また、プログラム容量を削減することによって、開発者のコーディングミスやチェックミスを減らし、デバッグが容易で開発効率を高めることが可能となることに加えて、遊技台として適正な機能を有するか否かを外部機関が確認する際にも、確認作業のミスを防止でき、遊技者が安心して遊技を行うことができる遊技台を提供できる場合がある。
<特殊命令/ADDTWOONE命令>
【1172】
特殊命令の一つであるADDTWOONE命令(ADDTWOONE OP1,OP2)は、第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値(または、第2オペランドOP2で示される1バイト長のイミディエイト値)を加算するための命令である。ADDTWOONE命令の命令コードの上位1バイトは固定値(この例ではEDH)とし、下位バイトは、命令データテーブルの上位ビット4H(0100B)と下位ビット0H(0000B)?2H(0010B)の組合せと、命令データテーブルの上位ビット4H(0100B)と下位ビット4H(0100B)?7H(0001B)、9H(1001H)の組合せに割り当てている。このように、従来は空き領域とされていた命令の領域を利用することで、限られたハードウェア資源を有効利用することができる上に、空き領域に不正な命令(隠し命令)を埋め込むような不正行為を未然に防止することができ、遊技の公平性を担保できる場合がある。なお、本実施形態では、特殊命令の命令コードを2バイト長としているが、命令コードのバイト長は特に限定されず、例えば1バイト長でもよい。また、ADDTWOONE命令のうちの特定の命令(例えば、「ADDTWOONE HL,A」命令)のみ、他のADDTWOONE命令よりも命令コードが短く(例えば、1バイト長)てもよい。また、「ADDTWOONE OP1,A」命令のうちの特定の命令(例えば、「ADDTWOONE HL,A」命令)のみ、他のADDTWOONE命令よりも命令コードが短く(例えば、1バイト長)てもよい。この場合、該命令の利便性を高めることができる。
【1173】
「ADDTWOONE HL,C」命令を例に挙げると、第1オペランドで示されるペアレジスタHLに記憶された2バイト長の値に、第2オペランドで示されるCレジスタに記憶された1バイト長の値を加算する場合に使用される命令であり、例えば、上述の特別図柄変動時間抽選処理のステップS1112では、「ADDTWOONE HL,C」を実行することによって、HLレジスタに記憶された2バイト長の値(1755H)に、Cレジスタに記憶された1バイト長の値(B0H)を加算することによって、HLレジスタの値を1805Hに更新している。なお、ADDTWOONE命令(ADDTWOONE OP1,OP2)は、キャリーが発生し難いが、HLレジスタに記憶された2バイト長の値(例えば、FF01H)にCレジスタに記憶された1バイト長の値(例えば、FFH)を加算する場合には、キャリーが発生する。すなわち、ADDTWOONE命令(ADDTWOONE OP1,OP2)を実行後にキャリーが発生する場合には、HレジスタがFFHであると判断することができる。
【1174】
また、「ADDTWOONE HL,C」命令では、必要なステート数は8ステート、必要なバイト数は2バイトである。一方、従来の命令によって「ADDTWOONE HL,C」命令と同様の処理を行う場合には、図107に示すように、必要なステート数は22ステート(=4+4+10+4)、必要なバイト数は6バイト(=1+1+3+1)である。したがって、HLレジスタに記憶された2バイト長の値にCレジスタに記憶された1バイト長の値を加算する場合に「ADDTWOONE HL,C」命令を使用すれば、制御プログラムの処理時間を短縮して制御負担を軽減することができる上に、プログラムコード量を削減することができ、メモリ容量が制限されているROMの記憶領域を有効に利用することができる場合がある。また、遊技性を高めるためにプログラムコードが増えたとしても、プログラム容量の増加や処理速度の低下を抑止できる場合がある。また、プログラム容量を削減することによって、開発者のコーディングミスやチェックミスを減らし、デバッグが容易で開発効率を高めることが可能となることに加えて、遊技台として適正な機能を有するか否かを外部機関が確認する際にも、確認作業のミスを防止でき、遊技者が安心して遊技を行うことができる遊技台を提供できる場合がある。
【1175】
また、従来CPUに実行可能に備えられている8ビット演算命令では、「ADD A,E」命令のように、加算結果(「SUB A,E」命令の場合は減算結果)をAレジスタに入れるしかなかったが、ADDTWOONE命令を実行して「ADDTWOONE HL,E」命令とすることで「ADD L,E」を可能にしており、Aレジスタを使用せずに温存することができる(使用用途が広いAレジスタを他の命令で使用することが可能となる結果、プログラム容量を削減できる場合がある)。また、「LD H,00H」命令を実行してHレジスタに00Hを転送した後に、「ADDTWOONE HL,E」命令を実行してLレジスタにEレジスタの値を加算して「SRL H」命令を実行してLレジスタが桁あふれしたかどうかをキャリーフラグが立ったか否かで確認することでAレジスタを使用せずに温存することができる(使用用途が広いAレジスタを他の命令で使用することが可能となる結果、プログラム容量を削減できる場合がある)。
【1176】
すなわち、「ADD A,L」命令は実行可能であり、「ADD L,A」命令は実行不可能であるが、「ADDTWOONE HL,A」命令を実行可能にした命令セットを備えたことにより、命令セットにおける命令数を1つ増やすだけで、8ビット演算の加算結果を格納可能なレジスタを増やすことができるとともに、16ビット-8ビット演算も可能にしており、命令セットを1命令増やすだけで2つの機能を実現可能としている。
【1177】
換言すると、加算命令「特定のレジスタペア←特定のレジスタペア+特定のレジスタ」を命令セットに含むとともに、特定のレジスタペアの下位側のレジスタを8ビット演算のアキュムレータとは異なるレジスタとした。
【1178】
従来では、命令セットにおける命令数を増やしたくなかったため、16ビット演算と8ビット演算しか搭載せず、さらに16ビットのアキュムレータは複数のレジスタペアのうちの特定レジスタペアのみとし、8ビットのアキュムレータは複数のレジスタのうちの特定レジスタのみとしていたが、上記構成により、少ない命令数の増加で複数の機能を実現することができる。
【1179】
また、HLレジスタが0か否かを確認するために従来では、「LD A,H」命令でHレジスタの値をAレジスタに転送した後に「OR A,L」命令を実行後に0フラグが立つか否かでHLレジスタが0か否かを確認していた。すなわち、8ビット演算を実行して0か否かを確認しているため、8ビット演算のアキュムレータ(この場合はAレジスタ)を使用してしまっていた。しかし、「ADDTWOONE HL,n(00H)」命令後に0フラグが立つか否かを確認することによってAレジスタを使用しないで済む。すなわち、「ADDTWOONE HL,n」命令は、16ビットレジスタペアに8ビットの直値を加算する機能と、16ビットレジスタペアが0か否かを確認する機能と、Aレジスタを温存する機能とを備えている。また、命令に直値を使用しているので、プログラムソースの可読性を向上できる。
<特殊命令/INCTENSOU命令>
【1180】
特殊命令の一つであるINCTENSOU命令(INCTENSOU OP1,OP2)は、第2オペランドOP2で示される2つのレジスタに記憶された2バイト長の値に1を加算し、加算後の2つのレジスタの値で示されるアドレスに記憶された1バイト長の値を、第1オペランドOP1で示される2つのレジスタのうちの下位のレジスタに記憶した後に、第2オペランドOP2で示される2つのレジスタに記憶された2バイト長の値にさらに1を加算し、加算後の2つのレジスタの値で示されるアドレスに記憶された1バイト長の値を、第1オペランドOP1で示される2つのレジスタのうちの上位のレジスタに記憶するための命令である。INCTENSOU命令の命令コードの上位1バイトは固定値(この例ではEDH)とし、下位バイトは、命令データテーブルの上位ビット1H(0001B)と下位ビット8H(1000B)?9H(10001B)の組合せと、命令データテーブルの上位ビットDH(1101B)と下位ビット4H(0100B)?6H(0110B)の組合せに割り当てている。本例では、第1オペランドOP1にアキュムレータを含む機械命令のコードを連番(例えば、「INCTENSOU AC,(HL)」命令のコードがEDD4H、「INCTENSOU AE,(HL)」のコードがEDD5H)にしている。また、第1オペランドOP1にアキュムレータを含む命令のうちの特定のINCTENSOU命令の機械命令のコード(例えば、「INCTENSOU AE,(HL)」命令のコードがEDD5H)と、第1オペランドOP1にアキュムレータを含まない命令のうちの特定のINCTENSOU命令の機械命令のコード(例えば、「INCTENSOU BD,(HL)」命令のコードがEDD6H)を連番にしている。また、第1オペランドOP1にアキュムレータを含まずペアレジスタを含む命令のうちの複数のINCTENSOU命令の機械命令のコード(例えば、「INCTENSOU BC,(HL)」命令のコードがED18H、「INCTENSOU DE,(HL)」命令のコードがED19H)と、第1オペランドOP1にアキュムレータを含まない命令のうちの特定のINCTENSOU命令の機械命令のコード(例えば、「INCTENSOU BD,(HL)」命令のコードがEDD6H)とを離れた番号にしている。このように、従来は空き領域とされていた命令の領域を利用することで、限られたハードウェア資源を有効利用することができる上に、空き領域に不正な命令(隠し命令)を埋め込むような不正行為を未然に防止することができ、遊技の公平性を担保できる場合がある。
【1181】
「INCTENSOU BC,(HL)」命令を例に挙げると、第2オペランドで示されるペアレジスタHLに記憶された2バイト長の値に1を加算し、加算後のペアレジスタHLの値で示されるアドレス(HL)に記憶された1バイト長の値を、第1オペランドで示されるペアレジスタBCのうちの下位のレジスタCに記憶した後に、第2オペランドで示されるペアレジスタHLに記憶された2バイト長の値にさらに1を加算し、加算後のペアレジスタHLの値で示されるアドレス(HL)に記憶された1バイト長の値を、第1オペランドで示されるペアレジスタBCのうちの上位のレジスタBに記憶するための命令である。INCTENSOU命令は、HLレジスタの値で示されるアドレスの次以降のアドレスに格納されている値をレジスタに転送するのに適している。また、INCTENSOU命令は、該命令実行後にHLレジスタに記憶された値が示すアドレスに格納された値に基づいて該命令を繰り返すか否かの判断処理を行う場合、繰り返すと判断した場合には該命令でHLレジスタにプラス1することでHLレジスタに記憶された値が示すアドレスを次のアドレスにできるために該命令を使用するのに適している。
【1182】
例えば、上述の特別図柄変動時間抽選処理のステップS1109では、「INCTENSOU BC,(HL)」を実行することによって、HLレジスタに記憶された2バイト長の値(174FH)に1を加算し、加算後のHLレジスタの値(1750H)で示されるアドレスに記憶された1バイト長の値(AEH)を、BCレジスタのうちの下位のCレジスタに記憶した後に、HLレジスタに記憶された2バイト長の値にさらに1を加算し、加算後のHLレジスタの値(1751H)で示されるアドレスに記憶された1バイト長の値(20)を、BCレジスタのうちの上位のBレジスタに記憶している。
【1183】
また、「INCTENSOU BC,(HL)」命令では、必要なステート数は14ステート、必要なバイト数は2バイトである。一方、従来の命令によってINCTENSOU命令と同様の処理を行う場合には、図107に示すように、必要なステート数は26ステート(=6+7+6+7)、必要なバイト数は4バイト(=1+1+1+1)である。したがって、HLレジスタの値で示されるアドレスの次の連続した2つのアドレスに格納された値をBCレジスタに転送する場合に「INCTENSOU BC,(HL)」命令を使用すれば、制御プログラムの処理時間を短縮して制御負担を軽減することができる上に、プログラムコード量を削減することができ、メモリ容量が制限されているROMの記憶領域を有効に利用することができる場合がある。
【1184】
また、遊技性を高めるためにプログラムコードが増えたとしても、プログラム容量の増加や処理速度の低下を抑止できる場合がある。特に、本実施形態では、ステップS1109?S1111のループ処理、またはステップS1114?S1116のループ処理においてINCTENSOU命令を繰り返し実行することになるため、処理速度の短縮の効果が高い。また、プログラム容量を削減することによって、開発者のコーディングミスやチェックミスを減らし、デバッグが容易で開発効率を高めることが可能となることに加えて、遊技台として適正な機能を有するか否かを外部機関が確認する際にも、確認作業のミスを防止でき、遊技者が安心して遊技を行うことができる遊技台を提供できる場合がある。
<特殊命令/TENSOUINC命令>
【1185】
特殊命令の一つであるTENSOUINC命令(TENSOUINC OP1,OP2)は、第2オペランドOP2で示される2つのレジスタの値で示されるアドレスに記憶された1バイト長の値を、第1オペランドOP1で示される2つのレジスタのうちの下位のレジスタに記憶し、第2オペランドOP2で示される2つのレジスタに記憶された2バイト長の値に1を加算した後に、第2オペランドOP2で示される2つのレジスタの値で示されるアドレスに記憶された1バイト長の値を、第1オペランドOP1で示される2つのレジスタのうちの上位のレジスタに記憶し、第2オペランドOP2で示される2つのレジスタに記憶された2バイト長の値にさらに1を加算するための命令である。TENSOUINC命令の命令コードの上位1バイトは固定値(この例ではEDH)とし、下位バイトは、命令データテーブルの上位ビット1H(0001B)と下位ビット6H(0110B)?7H(0111B)の組合せと、命令データテーブルの上位ビットDH(1101B)と下位ビット0H(0000B)?2H(0010B)の組合せに割り当てている。本例では、第1オペランドOP1にアキュムレータを含む機械命令のコードを連番(例えば、「TENSOUINC AC,(HL)」命令のコードがEDD0H、「TENSOUINC AE,(HL)」のコードがEDD1H)にしている。また、第1オペランドOP1にアキュムレータを含む命令のうちの特定のTENSOUINC命令の機械命令のコード(例えば、「TENSOUINC AE,(HL)」命令のコードがEDD1H)と、第1オペランドOP1にアキュムレータを含まない命令のうちの特定のTENSOUINC命令の機械命令のコード(例えば、「TENSOUINC BD,(HL)」命令のコードがEDD2H)を連番にしている。また、第1オペランドOP1にアキュムレータを含まずペアレジスタを含む命令のうちの複数のTENSOUINC命令の機械命令のコード(例えば、「TENSOUINC BC,(HL)」命令のコードがED16H、「TENSOUINC DE,(HL)」命令のコードがED17H)と、第1オペランドOP1にアキュムレータを含まない命令のうちの特定のTENSOUINC命令の機械命令のコード(例えば、「TENSOUINC BD,(HL)」命令のコードがEDD2H)とを離れた番号にしている。また、TENSOUINC命令とINCTENSOU命令は、同一の第1オペランドOP1の命令はTENSOUINC命令のほうがINCTENSOU命令よりも番号が若い(例えば、「TENSOUINC BC,(HL)」命令のコードがED16H、「INCTENSOU BC,(HL)」命令のコードがED18H)。また、第1オペランドOP1にアキュムレータを含むTENSOUINC命令の機械命令のコード(例えば、「TENSOUINC AC,(HL)」命令のコードがEDD0H)と、第1オペランドOP1にアキュムレータを含むINCTENSOU命令の機械命令のコード(例えば、「INCTENSOUAC,(HL)」命令のコードがEDD4H)とは離れた番号、および/またはTENSOUINC命令とINCTENSOU命令以外の命令の機械命令のコード(例えば、コードEDD3H)の前後にしている。
【1186】
「TENSOUINC BC,(HL)」命令を例に挙げると、第2オペランドで示されるペアレジスタHLの値で示されるアドレス(HL)に記憶された1バイト長の値を、第1オペランドで示されるペアレジスタBCのうちの下位のレジスタCに記憶し、第2オペランドで示されるペアレジスタHLに記憶された2バイト長の値に1を加算した後に、第2オペランドで示されるペアレジスタHLの値で示されるアドレス(HL)に記憶された1バイト長の値を、第1オペランドで示されるペアレジスタBCのうちの上位のレジスタBに記憶し、第2オペランドで示されるペアレジスタHLに記憶された2バイト長の値にさらに1を加算するための命令である。TENSOUINC命令は、HLレジスタの値で示されるアドレス以降のアドレスに格納されている値をレジスタに転送するのに適している。また、TENSOUINC命令は、該命令を実行後にBレジスタの値が0か否かで該命令を繰り返すか否かの判断処理を行う場合、繰り返すと判断した場合には判断前にHLレジスタにプラス1されているために該命令を使用するのに適している。また、繰り返し処理を行わない場合にもTENSOUINC命令後はHLレジスタの値をプラス1した状態で次の処理を行うことができるので該命令を使用するのに適している。
【1187】
また、「TENSOUINC BC,(HL)」命令では、必要なステート数は14ステート、必要なバイト数は2バイトである。一方、従来の命令によってTENSOUINC命令と同様の処理を行う場合には、図107に示すように、必要なステート数は26ステート(=7+6+7+6)、必要なバイト数は4バイト(=1+1+1+1)である。したがって、HLレジスタの値で示されるアドレスと次のアドレスに格納された値をBCレジスタに転送する場合に「TENSOUINC BC,(HL)」命令を使用すれば、制御プログラムの処理時間を短縮して制御負担を軽減することができる上に、プログラムコード量を削減することができ、メモリ容量が制限されているROMの記憶領域を有効に利用することができる場合がある。また、遊技性を高めるためにプログラムコードが増えたとしても、プログラム容量の増加や処理速度の低下を抑止できる場合がある。また、プログラム容量を削減することによって、開発者のコーディングミスやチェックミスを減らし、デバッグが容易で開発効率を高めることが可能となることに加えて、遊技台として適正な機能を有するか否かを外部機関が確認する際にも、確認作業のミスを防止でき、遊技者が安心して遊技を行うことができる遊技台を提供できる場合がある。なお、INCTENSOU命令とTENSOUINC命令は、CPUに両方実行可能に備えるようにしても良いし、何れか一方のみ実行可能に備えるようにしてもよい。
<特殊命令/CPT命令>
【1188】
特殊命令の一つである「CPT A,(n:イミディエイト値)」命令は、Aレジスタの内容と、Tレジスタを上位、イミディエイト値を下位で示すアドレスのデータを比較する命令であり、例えば、TレジスタにF0Hが記憶された状態で「CPT A,(40H)」を実行した場合、Aレジスタの内容と、Tレジスタを上位、イミディエイト値を下位で示すアドレス(F040H)のデータが比較される。
<特殊命令/ADDONETWO命令>
【1189】
特殊命令の一つであるADDONETWO命令(ADDONETWO OP1,OP2)は、第1オペランドOP1で示されるレジスタに記憶された1バイト長の値に、第2オペランドOP2で示される2つのレジスタに記憶された2バイト長の値(または、第2オペランドOP2で示される2バイト長のイミディエイト値)を加算するための命令である。ADDONETWO命令の命令コードの上位1バイトは固定値(この例ではEDH)とし、下位バイトは、命令データテーブルの上位ビット4H(0100B)と下位ビットAH(1010B)の組合せに割り当てている。このように、従来は空き領域とされていた命令の領域を利用することで、限られたハードウェア資源を有効利用することができる上に、空き領域に不正な命令(隠し命令)を埋め込むような不正行為を未然に防止することができ、遊技の公平性を担保できる場合がある。なお、ADDONETWO命令(ADDONETWO OP1,OP2)は、キャリーが発生し易く、Aレジスタに記憶された1バイト長の値(例えば、00H)にHLレジスタに記憶された2バイト長の値(例えば、0100H)を加算する場合には、キャリーが発生する。すなわち、Hレジスタが00H以外である場合にADDONETWO命令(ADDONETWO OP1,OP2)を実行することでキャリーを発生させることができる。なお、ADDTWOONE命令とADDONETWO命令は、CPUに両方備えるようにしても良いし、何れか一方のみ備えるようにしてもよい。
<特殊命令/SUBTWOONE命令>
【1190】
特殊命令の一つであるSUBTWOONE命令(SUBTWOONE OP1,OP2)は、第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値から、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値(または、第2オペランドOP2で示される1バイト長のイミディエイト値)を減算するための命令である。SUBTWOONE命令の命令コードの上位1バイトは固定値(この例ではEDH)とし、下位バイトは、命令データテーブルの上位ビット4H(0100B)と下位ビット8H(1000B)の組合せに割り当てている。このように、従来は空き領域とされていた命令の領域を利用することで、限られたハードウェア資源を有効利用することができる上に、空き領域に不正な命令(隠し命令)を埋め込むような不正行為を未然に防止することができ、遊技の公平性を担保できる場合がある。なお、SUBTWOONE命令(SUBTWOONE OP1,OP2)は、キャリーが発生し難いが、HLレジスタに記憶された2バイト長の値(例えば、0001H)からAレジスタに記憶された1バイト長の値(例えば、FFH)を減算する場合には、キャリーが発生する。すなわち、SUBTWOONE命令(SUBTWOONE OP1,OP2)を実行後にキャリーが発生する場合には、Hレジスタが00Hであると判断することができる。
<データテーブルの変形例>
【1191】
次に、図109を用いて、上述のデータテーブルの変形例について説明する。なお、同図は、テーブル選択用テーブル、第1変動パターン選択テーブル、および第2変動パターン選択テーブルの変形例を示した図であり、上記図103に相当する図である。
【1192】
同図(b)に示す第1変動パターン選択テーブルでは、上記図103(b)に示す第1変動パターン選択テーブルに対して、乱数の個数の項目を乱数の上限の項目に変更している。また、同図(c)に示す第2変動パターン選択テーブルでは、上記図103(c)に示す第2変動パターン選択テーブルに対して、乱数の個数の値を変更している。
<特別図柄変動時間抽選処理の変形例>
【1193】
次に、図110を用いて、上記図105に示す特別図柄変動時間抽選処理の変形例について説明する。なお、同図は、変形例に係る特別図柄変動時間抽選処理の流れを示すフローチャートである。
【1194】
この変形例に係る特別図柄変動時間抽選処理では、上記図105に示す特別図柄変動時間抽選処理の「INCTENSOU BC,(HL)」命令を用いたステップS1109の処理やステップS1114の処理を、「INCTENSOU AC,(HL)」命令を用いたステップS1150の処理やステップS1152の処理に変更するとともに、ステップS1151、S1153において、上述のCPT命令を利用している。
【1195】
具体的には、ステップS1150では、HLレジスタの値で示されるアドレスの次の連続した2つのアドレスに格納された値をACレジスタに転送する(INCTENSOUAC,(HL))。例えば、HLレジスタの値が174FHの場合には、HLレジスタの値で示されるアドレスの次の連続した2つのアドレス(1750H、1751H)に格納された値をACレジスタに転送することによって、Aレジスタに19を、CレジスタにAEHを記憶する。
【1196】
次のステップS1151では、「CPT A,(41H)」を実行することによって、Aレジスタの内容と、Tレジスタ(F0H)を上位、イミディエイト値(41H)を下位で示すアドレス(F041H)のデータ、すなわち、上述の乱数1記憶領域に記憶された乱数1と、を比較する(Aレジスタの値から乱数1を減算する)。次のステップS1154では、ステップS1151の比較(減算)の結果、キャリーが発生しないか否か、すなわち減算の結果が正の値になったかどうかを判定し、該当する場合にはステップS1112に進み、該当しない場合には該当するまでステップS1150?S1151の処理を繰り返し実行する。
【1197】
また、ステップS1152では、HLレジスタの値で示されるアドレスの次の連続した2つのアドレスに格納された値をACレジスタに転送する(INCTENSOU AC,(HL))。例えば、HLレジスタの値が17FFHの場合には、HLレジスタの値で示されるアドレスの次の連続した2つのアドレス(1800H、1801H)に格納された値をACレジスタに転送することによって、Aレジスタに255を、Cレジスタに01Hを記憶する。
【1198】
次のステップS1153では、「CPT A,(42H)」を実行することによって、Aレジスタの内容と、Tレジスタ(F0H)を上位、イミディエイト値(42H)を下位で示すアドレス(F042H)のデータ、すなわち、上述の乱数2記憶領域に記憶された乱数2を比較する(Aレジスタの値から乱数2を減算する)。次のステップS1155では、ステップS1153の比較(減算)の結果、キャリーが発生しないか否か、すなわち減算の結果が正の値になったかどうかを判定し、該当する場合にはステップS1117に進み、該当しない場合には該当するまでステップS1152?S1153の処理を繰り返し実行する。
<初期設定処理>
【1199】
次に、図111および図112を用いて、上述の主制御部メイン処理の初期設定2(ステップS107)で実行される初期設定処理について説明する。なお、図111(a)は、ROM306に記憶される初期設定データテーブルの一例を示した図であり、同図(b)は、初期設定処理後のRAM308の記憶領域の一部を示した図であり、同図(c)は、初期設定処理の流れを示すフローチャートである。また、図112は、初期設定処理のプログラムリストの一例である。
【1200】
ステップS1201では、上述のTENSOUINC命令(「TENSOUINC BD,(HL)」によって、HLレジスタの値で示されるアドレス(HL)に記憶された1バイト長の値を、BDレジスタのうちの下位のDレジスタに記憶し、HLレジスタに記憶された2バイト長の値に1を加算した後に、HLレジスタの値で示されるアドレス(HL)に記憶された1バイト長の値を、BCレジスタのうちの上位のBレジスタに記憶し、HLレジスタに記憶された2バイト長の値にさらに1を加算する。例えば、HLレジスタに、同図(a)に示す初期設定データテーブルの先頭アドレスである100DHを設定した場合には、DレジスタにはF0Hが、Bレジスタには3が記憶される。
【1201】
次のステップS1202では、上述のTENSOUINC命令(「TENSOUINCAE,(HL)」によって、HLレジスタの値で示されるアドレス(HL)に記憶された1バイト長の値を、AEレジスタのうちの下位のEレジスタに記憶し、HLレジスタに記憶された2バイト長の値に1を加算した後に、HLレジスタの値で示されるアドレス(HL)に記憶された1バイト長の値を、AEレジスタのうちの上位のAレジスタに記憶し、HLレジスタに記憶された2バイト長の値にさらに1を加算する。例えば、先の例では、Eレジスタには、100FHに記憶されている値である17Hが、Aレジスタには、1010に記憶されている値である01Hが記憶され、HLレジスタの値は1011Hに更新される。
【1202】
次のステップS1203では、Aレジスタの値をDEレジスタの値で示されるアドレス(DE)に記憶する。先の例では、Aレジスタの値である01Hを、DEレジスタの値で示されるアドレスであるRAM308のF017Hに記憶する(同図(b)参照)。
【1203】
次のステップS1204では、Bレジスタの値から1を減算し、減算結果が0になるまでステップS1202?S1203の処理を繰り返し実行し(ステップS1202の処理のアドレスまで相対ジャンプして処理を実行し)、減算結果が0になった場合にはステップS1205に進む。
【1204】
先の例では、Bレジスタが2の場合には、ステップS1202の処理により、Eレジスタには、1011Hに記憶されている値である20Hが、Aレジスタには、1012Hに記憶されている値である16Hが記憶され、HLレジスタの値は1013Hに更新され、ステップS1203の処理により、Aレジスタの値である16Hを、DEレジスタの値で示されるアドレスであるRAM308のF020Hに記憶する(同図(b)参照)。
【1205】
また、Bレジスタが1の場合には、ステップS1202の処理により、Eレジスタには、1013Hに記憶されている値である3AHが、Aレジスタには、1014Hに記憶されている値である06Hが記憶され、HLレジスタの値は1015Hに更新され、ステップS1203の処理により、Aレジスタの値である06Hを、DEレジスタの値で示されるアドレスであるRAM308のF03AHに記憶する(同図(b)参照)。なお、上記F017H、F020H、F03AHに記憶する遊技設定(遊技制御に用いる各種情報)としては、例えば電源ステータス、払出制御コマンド加工種別、表示器表示ステータスなどが挙げられ、また、遊技設定の数は、複数でもよいし、1つのみでもよい。また、初期設定処理(moDataSet)は、処理開始時のHLレジスタの値を異ならせることにより(HLレジスタに設定するアドレスを、初期設定データテーブルとは異なる他のテーブルの先頭アドレスなどに設定することにより)、複数の処理から呼び出し可能な(例えば、HLレジスタを引数として呼び出し可能な)汎用的なデータ設定処理モジュールとして扱ってもよい。この場合、プログラム容量の削減や処理速度の向上を図ることができる。
【1206】
この初期設定処理では、ステップS1201、S1202でTENSOUINC命令を使用しているため、ステート数を従来の26ステートから14ステートに削減することができ、処理時間を短縮することができる上に、バイト数を従来の4バイトから2バイトに削減することができ、プログラム容量を削減することができる。特に、この例では、ステップS1202?S204のループ処理においてTENSOUINC命令を繰り返し実行することになるため、処理速度の短縮の効果が高い。
【1207】
また、TENSOUINC命令の中でも、Aレジスタ(アキュムレータ)と他のレジスタのペアをオペランドとする命令(本実施形態では、TENSOUINC AC,(HL)、TENSOUINC AE,(HL))は、Aレジスタの値を変更すると同時に、ペアレジスタ(本実施形態では、BCレジスタとDEレジスタ)の上位バイトのレジスタ(本実施形態では、BレジスタとDレジスタ)を固定しつつ、ペアレジスタの下位バイトのレジスタ(本実施形態では、CレジスタとEレジスタ)の値だけを変更することができるため、従来よりも高度なプログラミングが可能で、プログラム容量の削減や処理速度の向上を図ることができる。
【1208】
また、TENSOUINC命令の中でも、第1のペアレジスタ(本実施形態では、BCレジスタ)の上位バイトのレジスタ(本実施形態では、Bレジスタ)と、第2のペアレジスタ(本実施形態では、DEレジスタ)の上位バイトのレジスタ(本実施形態では、Dレジスタ)のペアをオペランドとする命令(本実施形態では、TENSOUINC BD,(HL))は、第1のペアレジスタと第2のペアレジスタの上位バイトのレジスタの値のみを変更することができるため、従来よりも高度なプログラミングが可能で、プログラム容量の削減や処理速度の向上を図ることができる。
【1209】
また、TENSOUINC命令の中でも、オペランドにBレジスタを含む命令(本実施形態では、TENSOUINC BC,(HL)、TENSOUINC BD,(HL))を利用し、かつ、上述の初期設定処理のステップS1202?S1204のループ処理のように、Bレジスタによってループ処理の回数を判定するように構成すれば、ループ処理のプログラム容量の削減や処理速度の向上を図ることができる。
【1210】
なお、CPU304は、TENSOUINC命令とINCTENSOU命令両方を実行可能であり、遊技制御プログラムは第一の命令(TENSOUINC)によるテーブルサーチと第二の命令(INCTENSOU)によるテーブルサーチの両方を実行するようにしてもよい。
【1211】
「テーブルサーチ」は一般的な用語どおりの意味としてもよく、例えば、一または複数の行と一または複数の列から構成されたテーブル(例えば、図103、図109の第1変動パターン選択テーブル・第2変動パターン選択テーブル、図111の初期設定データテーブル)から対応する行を探し出し、その行の一または複数の列の値を取り出す処理を示してもよいし、探し出した行のテーブル内の行の位置(例えば行番号)を導出する処理としてもよい。同様に対応する列を探し出し、その列の一または複数の行の値を取り出す処理を示すものとしてもよいし、探し出した列のテーブル内の列の位置(例えば列番号)を導出する処理としてもよい。
【1212】
ここで対応する行を探し出す処理は、探している一または複数の値が、テーブル内の特定の行における一または複数の特定の列の値と一致または関係する場合に、当該特定の行を対応する行とするような処理としてもよい。対応する列を探し出す処理も同様としてもよい。
<主制御部の第2特殊命令>
【1213】
次に、主制御部300が備える第2特殊命令について説明する。図113(a)は、主制御部300が備える第2特殊命令の一部を示した図である。
<第2特殊命令/CPRT命令(演算+リターン命令)>
【1214】
第2特殊命令の一つである「CPRTZ r」命令(または、「CPRTZ (rr)」命令)は、オペランドrが示すレジスタ(または、オペランド(rr)が示すペアレジスタrrに格納されたアドレス)に記憶された値から0を減算し、Zフラグが1にセットされる状態の場合(減算結果が0の場合。以下、同じ)に、スタックポインタSPが示すスタック領域SPに記憶されたデータをプログラムカウンタPCの下位アドレスに、また、スタックポインタSPが示すスタック領域SP+1に記憶されたデータをプログラムカウンタPCの上位アドレスにそれぞれロード(復帰)した後にスタックポインタSPを2つ加算してからZフラグを1にセットし、Zフラグが0にクリアされる状態の場合(減算結果が0以外の場合。以下、同じ)に、後続の処理のアドレスをプログラムカウンタPCにセットしてからZフラグを0にクリアする命令である。なお、プログラムカウンタPCをセットするタイミングとZフラグを0にクリアするタイミングは、逆でもよいし、同時でもよい。
【1215】
また、「CPRTNZ r」命令(または、「CPRTNZ (rr)」命令)は、オペランドrが示すレジスタ(または、オペランド(rr)が示すペアレジスタrrに格納されたアドレス)に記憶された値から0を減算し、Zフラグが0にクリアされる状態の場合に、スタックポインタSPが示すスタック領域SPに記憶されたデータをプログラムカウンタPCの下位アドレスに、また、スタックポインタSPが示すスタック領域SP+1に記憶されたデータをプログラムカウンタPCの上位アドレスにそれぞれロード(復帰)した後にスタックポインタSPを2つ加算してからZフラグを0にクリアし、Zフラグが1にセットされる状態の場合に、後続の処理のアドレスをプログラムカウンタPCにセットしてからZフラグを1にセットする命令である。なお、オペランドrが示すレジスタとしては、B、C、D、E、H、Lレジスタなどが挙げられ、オペランドrrが示すペアレジスタとしては、BC、DE、HLなどが挙げられる(次のCPJR命令も同様)。
<第2特殊命令/CPJR命令(演算+ジャンプ命令)>
【1216】
第2特殊命令の一つである「CPJRZ r、e」命令(または、「CPJPZ (rr)、e」命令)は、オペランドrが示すレジスタ(または、オペランド(rr)が示すペアレジスタrrに格納されたアドレス)に記憶された値から0を減算し、Zフラグが1にセットされる状態の場合にプログラムカウンタPC+e(eは+127?-128の数値)が示すアドレスにジャンプしてからZフラグを1にセットし、Zフラグが0にクリアされる状態の場合に、後続の処理のアドレスをプログラムカウンタPCにセットしてからZフラグを0にクリアする命令である。また、「CPJRNZ r、e」命令(または、「CPJPNZ (rr)、e」命令)は、オペランドrが示すレジスタ(または、オペランドrrが示すペアレジスタ)に記憶された値から0を減算し、Zフラグが0にクリアされる状態の場合にプログラムカウンタPC+e(eは+127?-128の数値)が示すアドレスにジャンプしてからZフラグを0にクリアし、Zフラグが1にセットされる状態の場合に、後続の処理のアドレスをプログラムカウンタPCにセットしてからZフラグを1にセットする命令である。
【1217】
また、「CPJRC r、n、e」命令(または、「CPJRC (rr)、n、e」命令)は、オペランドrが示すレジスタ(または、オペランド(rr)が示すペアレジスタrrに格納されたアドレス)に記憶された値からn(8ビット長のイミディエイト値)を減算し、Cフラグが1にセットされる状態の場合(減算結果が0の場合。以下、同じ)に、プログラムカウンタPC+e(eは+127?-128の数値)が示すアドレスにジャンプしてからCフラグを1にセットし、Cフラグが0にクリアされる状態の場合(減算結果が0以外の場合。以下、同じ)に、後続の処理のアドレスをプログラムカウンタPCにセットしてからCフラグを0にセットする命令である。また、「CPJRNC r、n、e」命令(または、「CPJRNC (rr)、n、e」命令)は、オペランドrが示すレジスタ(または、オペランド(rr)が示すペアレジスタrrに格納されたアドレス)に記憶された値からn(8ビット長のイミディエイト値)を減算し、Cフラグが0にクリアされる状態の場合に、プログラムカウンタPC+e(eは+127?-128の数値)が示すアドレスにジャンプしてからCフラグを0にクリアし、Cフラグが1にセットされる状態の場合に、後続の処理のアドレスをプログラムカウンタPCにセットしてからCフラグを1にセットする命令である。
【1218】
図113(b)は、第2特殊命令を実行する前後のフラグレジスタの状態を示した図である。主制御部300は、Sフラグ、Zフラグ、SZフラグ、Hフラグ、、P/Vフラグ、Nフラグ、Cフラグを有する8ビットのフラグレジスタを備えている。このフラグレジスタに含まれるSフラグ、Zフラグ、SZフラグ、Hフラグ、Cフラグは、第2特殊命令の実行や、その他の算術論理演算命令の実行によって1にセットされるか0にクリアされる。
<CPJR命令を用いた処理>
【1219】
次に、CPJR命令を用いた処理について説明する。図114は、CPJR命令を用いた処理の一例を示した図である。同図に示す第一のモジュールでは、処理Xを実行した後に、CPJR命令を実行し、所定条件が成立した場合に処理Zにジャンプする処理を行い、所定条件が成立しなかった場合に後続の処理Yを実行する処理を行う。
【1220】
ここで、「所定条件が成立した場合」とは、上述の「CPJRZ r、e」命令(または、「CPJRZ (rr)、e」命令)であれば、Zフラグが1にセットされる状態となった場合であり、上述の「CPJPNZ r、e」命令(または、「CPJRNZ (rr)、e」命令)であれば、Zフラグが0にクリアされる状態になった場合である。また、上述の「CPJRC r、n、e」命令(または、「CPJPC (rr)、n、e」命令)であれば、Cフラグが1にセットされる状態になった場合であり、「CPJRNC r、n、e」命令(または、「CPJPNC (rr)、n、e」命令)であれば、Cフラグが0にクリアされる状態になった場合である。
【1221】
また、CPJR命令の実行前に行われる処理Xにおけるフラグレジスタの内容が第1の内容αであった場合、CPJR命令の実行により、後続の処理Y、処理Zにおけるフラグレジスタの内容は第2の内容βに変化する。しかしながら、本実施形態では、CPJR命令の実行中にフラグレジスタの内容を参照しないことに加えて、CPJR命令の実行後の処理Y、処理Zでも、CPJR命令によって変化したフラグレジスタの内容を一切参照することなく処理を行うように構成している。
【1222】
このように、CPJR命令の実行中にフラグレジスタの内容を参照しないことに加えて、CPJR命令の実行によりフラグレジスタの内容を変化させるが、CPJR命令の実行後に行う所定の処理においてはフラグレジスタの内容を参照することなく処理を行うように構成すれば、フラグレジスタの内容の変化とプログラムの実行の流れの関連性を無くすことができ、プログラムの解析を困難とし、不正なプログラムの改ざんを未然に防止できる場合がある。なお、この例では、CPJR命令の実行中にフラグレジスタの内容を参照しないように構成したが、CPJR命令の実行中にはフラグレジスタの内容を参照し、CPJR命令の実行後に行う所定の処理においてはCPJR命令の実行前に変化したフラグレジスタの内容を参照することなく処理を行うように構成しても、同様の効果を得ることができる場合がある(以下、同様)。
【1223】
図115(a)は、従来の命令を用いたプログラムの一例を示した図であり、同図(b)は、CPJR命令を用いたプログラムの一例である。例えば、Aレジスタの値が0であるか0以外であるかを判定し、Aレジスタの値が0の場合に所定の処理にジャンプするプログラムを組む場合、同図(a)に示す従来のプログラムでは、(1-1)に示すAND命令(AND A)と、(1-2)に示すJR命令(JR Z、ITmrRnwCtl020)の2つの命令によって実現する必要があるが、同図(b)に示す本実施形態のプログラムでは、(2-1)に示す1つのCPJR命令(CPJRZ A、ITmrRnwCtl020)だけで同一の処理を実現している。
【1224】
このように、所定条件が成立するか否かを判定し、所定条件が成立した場合に所定の処理にジャンプするプログラムを組む場合にCPJR命令を用いれば、従来よりもプログラムコードを減らすことができ、限られたメモリを有効に活用できる場合がある。
【1225】
また、同図(b)に示す本実施形態のプログラムでは、(2-1)に示すCPJR命令(CPJRZ A、ITmrRnwCtl020)の実行後の処理Y、処理Zでは、CPJR命令によって変化したフラグレジスタの内容を一切参照することなく処理を行うように構成している。このように、CPJR命令の実行によりフラグレジスタの内容を変化させる一方で、CPJR命令の実行後に行う所定の処理においてはフラグレジスタの内容を参照することなく処理を行うように構成すれば、フラグレジスタの内容の変化とプログラムの実行の流れの関連性を無くすことができ、プログラムの解析を困難とし、不正なプログラムの解析を未然に防止できる場合がある。
【1226】
なお、同図(b)に示す本実施形態のプログラムの処理Zに続く処理Vでは、CPJR命令の実行後に他の命令(この例では、「OR (HL)」命令)によって変化したフラグレジスタの内容(この例では、Zフラグの内容)に基づいた処理(この例では、JR命令)を行っている。このように、フラグレジスタの内容を参照しない処理Zとフラグレジスタの内容を参照する処理Vを連続させれば、フラグレジスタの内容の変化とプログラムの実行の流れの関連性を複雑にすることができ、プログラムの解析を困難とし、不正なプログラムの解析を未然に防止できる場合がある。
【1227】
さらに、この例では、処理ZでLD命令(ロード命令)を実行しているが、LD命令は命令の実行後にZフラグを変化させずにSZフラグを変化させる命令の一つであるため、「LD A、(HL)」命令の実行後にはZフラグは変化しないが、SZフラグが変化する。一方、その後の処理Vでは「JR Z、ITmrRnwCtL040」を実行しているが、ここでは、処理Zの「LD A、(HL)」命令の実行によって変化していないZフラグを参照して分岐処理を行っている。
【1228】
このように、SZフラグとZフラグを含む複数のフラグの値を変化させる第1の命令(例えば、CPJR命令)を実行し、当該フラグを参照しない第2の命令(例えば、DEC A命令)を実行し、ZフラグとSZフラグのうちいずれか一方のみが変化する第3の命令(例えば、LD命令)を実行し、変化しない方(変化した方)のフラグを参照する第4の命令(例えば、JR Z命令)を実行するように構成すれば、フラグレジスタの内容の変化とプログラムの実行の流れの関連性を複雑にすることができ、プログラムの解析を困難とし、不正なプログラムの解析を未然に防止できる場合がある。
【1229】
図116は、CPJR命令を用いた他の処理の一例を示した図である。同図に示す第一のモジュールでは、処理Xを実行した後に、CPJR命令を実行し、所定条件が成立した場合に、第一のモジュールとは異なる第二のモジュールにジャンプして処理Zを行い、所定条件が成立しなかった場合に後続の処理Yを実行している。このように、CPJR命令を用いて所定条件が成立した場合に所定の処理にジャンプするプログラムを組む場合には、同一のモジュール内の処理だけではなく、他のモジュールの処理にジャンプさせてもよい。
【1230】
図117は、上述の処理Vを含む、CPJR命令を用いた他の処理の一例を示した図である。同図に示す第二のモジュールでは、処理Zを実行した後に、算術論理演算命令を実行し、当該命令の実行によって変化したフラグレジスタの内容γに基づいて分岐処理を行っている。このように、CPJR命令の実行によって変化したフラグレジスタに基づいた処理は行わず、CPJR命令以外の命令(この例では、算術論理演算命令)の実行によって変化したフラグレジスタに基づいた処理を行うように構成すれば、フラグレジスタの内容の変化とプログラムの実行の流れの関連性を複雑にすることができ、プログラムの解析を困難とし、不正なプログラムの解析を未然に防止できる場合がある。
<CPRT命令を用いた処理>
【1231】
次に、CPRT命令を用いた処理について説明する。図118は、CPRT命令を用いた処理の一例を示した図である。同図に示す第一のモジュールでは、CALL命令を実行して第二のモジュールを呼び出し、呼び出し先の第二のモジュールで処理Xを実行した後に、CPRT命令を実行し、所定条件が成立した場合に呼び出し元の第一のモジュールに戻って処理Zを行い、所定条件が成立しなかった場合に後続の処理Yを実行している。
【1232】
ここで、「所定条件が成立した場合」とは、上述の「CPRTZ r」命令(または、「CPRTZ (rr)」命令)であれば、Zフラグが1にセットされる状態になった場合であり、上述の「CPRTNZ r」命令(または、「CPRTNZ (rr)」命令)であれば、Zフラグが0にクリアされる状態になった場合である。
【1233】
また、CPRT命令の実行前に行われる処理Xにおけるフラグレジスタの内容が第1の内容αであった場合、CPRT命令の実行により、後続の処理Y、処理Zにおけるフラグレジスタの内容は第2の内容βに変化する。しかしながら、CPRT命令の実行中にフラグレジスタを参照しないことに加えて、CPRT命令の実行後の処理Y、処理Zでも、CPRT命令によって変化したフラグレジスタの内容を一切参照することなく処理を行うように構成している。
【1234】
このように、CPRT命令の実行中にフラグレジスタを参照しないことに加えて、CPRT命令の実行によりフラグレジスタの内容を変化させる一方で、CPRT命令の実行後に行う所定の処理においてはフラグレジスタの内容を参照することなく処理を行うように構成すれば、フラグレジスタの内容の変化とプログラムの実行の流れの関連性を無くすことができ、プログラムの解析を困難とし、不正なプログラムの解析を未然に防止できる場合がある。
【1235】
図119(a)は、CPRT命令を用いたプログラムの一例を示した図であり、同図(b)は、従来の命令を用いたプログラムの一例である。例えば、Aレジスタの値が0であるか0以外であるかを判定し、Aレジスタの値が0の場合に所定の処理にリターン(復帰)するプログラムを組む場合、同図(b)に示す従来のプログラムでは、(1-1)に示すAND命令(AND A)と(1-2)に示すRET命令(RET Z)の2つの命令によって実現する必要があるが、同図(a)に示す本実施形態のプログラムでは、(2-1)に示す1つのCPRT命令(CPRTZ A)だけで同一の処理を実現している。
【1236】
このように、所定条件が成立するか否かを判定し、所定条件が成立した場合に所定の処理にリターン(復帰)するプログラムを組む場合にCPRT命令を用いれば、従来よりもプログラムコードを減らすことができ、限られたメモリを有効に活用できる場合がある。
【1237】
また、同図(a)に示す本実施形態のプログラムでは、(2-1)に示すCPRT命令(CPRTZ A)の実行後の処理Y、処理Zでは、CPRT命令によって変化したフラグレジスタの内容を一切参照することなく処理を行うように構成している。このように、CPRT命令の実行によりフラグレジスタの内容を変化させる一方で、CPRT命令の実行後に行う所定の処理においてはフラグレジスタの内容を参照することなく処理を行うように構成すれば、フラグレジスタの内容の変化とプログラムの実行の流れの関連性を無くすことができ、プログラムの解析を困難とし、不正なプログラムの解析を未然に防止できる場合がある。
【1238】
なお、同図(a)に示す本実施形態のプログラムの処理Zに続く処理Vでは、CPRT命令の実行後に他の命令によって変化したフラグレジスタの内容に基づいた処理を行っている。このように、フラグレジスタの内容を参照しない処理Zとフラグレジスタの内容を参照する処理Vを連続させれば、フラグレジスタの内容の変化とプログラムの実行の流れの関連性を複雑にすることができ、プログラムの解析を困難とし、不正なプログラムの解析を未然に防止できる場合がある。
<主制御部の第3特殊命令>
【1239】
次に、主制御部300が備える第3特殊命令について説明する。図120は、主制御部300が備える第3特殊命令の一部を示した図である。
<第3特殊命令/RES命令>
【1240】
第3特殊命令の一つである「RESmZ n、r」命令(mは0?7の数値)は、第2オペランドrで示されるレジスタに記憶されている値のうち、mで示されるビットのアクセスを禁止するとともに、第1オペランドで示されるビットn(nは、mを除く0?7の数値)を0にリセットする命令である。また、「RESmZ n、(rr)」命令(mは0?7の数値)は、第2オペランド(rr)で示されるペアレジスタrrに格納されたアドレスに記憶されているアドレスに格納された値のうち、mで示されるビットのアクセスを禁止するとともに、第1オペランドで示されるnビット(nは、mを除く0?7の数値)を0にリセットする命令である。
【1241】
例えば、図121(a)に示すように、「RES2Z 2、L」命令は、第2オペランドLで示されるLレジスタに記憶されている値のうち、mで示されるビット(この例では、ビット2)のアクセスを禁止するとともに、第1オペランドで示されるビット2を0にリセットする命令であり、この命令ではLレジスタのビット2は0にリセットされない。一方、同図(b)に示すように、「RES2Z 4、L」命令は、第2オペランドLで示されるLレジスタに記憶されている値のうち、mで示されるビット(この例では、ビット2)のアクセスを禁止するとともに、第1オペランドで示されるビット4を0にリセットする命令であり、この命令では、Lレジスタのビット2のアクセスは禁止されるがビット4は0にリセットされる。
【1242】
また、図122(a)に示すように、「RES2Z 2、(HL)」命令は、第2オペランド(HL)で示されるペアレジスタHLに記憶されているアドレス(この例では、F010H)に格納された値のうち、mで示されるビット(この例では、ビット2)のアクセスを禁止するとともに、第1オペランドで示されるビット2を0にリセットする命令であり、この命令では、F010Hに格納されている値のビット2は0にリセットされない。一方、同図(b)に示すように、「RES2Z 4、(HL)」命令は、第2オペランド(HL)で示されるペアレジスタHLに記憶されているアドレス(この例では、F010H)に格納された値のうち、mで示されるビット(この例では、ビット2)のアクセスを禁止するとともに、第1オペランドで示されるビット4を0にリセットする命令であり、この命令では、F010Hに格納されている値のビット2のアクセスは禁止されるがビット4が0にリセットされる。
【1243】
このようなRES命令によれば、所定のビットのアクセスを禁止しつつ、同時に他のビットを0にリセットすることができるため、所定のビットの数値を保護することができ、所定のビットが予期しない数値に変化して不具合を起こすような事態を未然に防止できる場合がある。
【1244】
図123は、主制御部300の命令マップのうち、RES命令に該当する部分を抜き出して示した図である。上述のとおり、「RES2Z 2、L」命令と「RES2Z 2、(HL)」命令は、ビット2のアクセスが禁止されビット2がリセットできない命令であるため(実質的に意味の無い命令であるため)、同図の太線の四角で示すように、「RES2Z2、L」命令に該当する25Hの部分と、「RES2Z 2、(HL)」命令に該当する26Hの部分は空き領域とされている。このように、命令マップの一部に空き領域を設けることによって、命令マップを使ったプログラム(機械語)の解析を困難にすることができる場合がある。
<RES命令の変形例1>
【1245】
図124は、変形例1に係るRES命令を示した図である。RES命令の変形である「RESmZ n、r」命令(mは1?254の10進数の数値)は、第2オペランドrで示されるレジスタに記憶されている値のうち、10進数のmを1バイトの2進数に変換したときに1がセットされるビットのアクセスを禁止するとともに、第1オペランドで示されるビットn(nは、mを1バイトの2進数に変換したときに1がセットされないビット)を0にリセットする命令である。また、「RESmZ n、(rr)」命令(mは1?254の10進数の数値)は、第2オペランドrrで示されるペアレジスタに記憶されているアドレスに格納された値のうち、10進数のmを1バイトの2進数に変換したときに1がセットされるビットのアクセスを禁止するとともに、第1オペランドで示されるnビット(nは、mを2進数に変換したときに1がセットされないビット番号)を0にリセットする命令である。
【1246】
例えば、図125(a)に示すように、「RES2Z 4、L」命令は、第2オペランドLで示されるレジスタLに記憶されている値のうち、10進数の2を1バイトの2進数に変換したときに1がセットされるビット(この例では、ビット1)のアクセスを禁止するとともに、第1オペランドで示されるビット4を0にリセットする命令である。また、同図(b)に示すように、「RES3Z 4、L」命令は、第2オペランドLで示されるレジスタLに記憶されている値のうち、10進数の3を1バイトの2進数に変換したときに1がセットされるビット(この例では、ビット1、ビット0)のアクセスを禁止するとともに、第1オペランドで示されるビット4を0にリセットする命令である。
【1247】
図126は、変形例1に係るRES命令を用いたプログラムの一例を示した図である。上述のとおり、「RESmZ n、(rr)」命令(mは1?254の10進数の数値)は、第2オペランド(rr)で示されるペアレジスタrrに記憶されているアドレスに格納された値のうち、10進数のmを1バイトの2進数に変換したときに1がセットされるビットのアクセスを禁止するとともに、第1オペランドで示されるnビット(nは、mを2進数に変換したときに1がセットされないビット番号)を0にリセットする命令である。
【1248】
したがって、同図の(3-1)に示す「RES251Z 2(=ebCS20pnSGt)、(HL)」命令は、第2オペランド(HL)で示されるペアレジスタHLに記憶されているアドレス(この例では、F096H(=v0ptCS2))に格納された値のうち、10進数の251を1バイトの2進数に変換したときに1がセットされるビット(この例では、ビット0?1、3?7)のアクセスを禁止するとともに、第1オペランドで示されるビット(この例では、ビット2)を0にリセットする命令である。
【1249】
このようなRES命令によれば、所定のビットのアクセスを禁止しつつ、同時に他のビットを0にリセットすることができるため、所定のビットの数値を保護することができ、従来のビット操作命令(例えば、CLR命令、SET命令、RES命令、BIT命令など)のように、コーディングミスなどによって所定のビットが予期しない数値に変更されてしまうような事態を未然に防止でき、デバックやテストの作業を短縮化でき、また、安定した遊技制御を行うことができる場合がある。また、アクセスを禁止するビットを10進数の数値で指定することができるため、プログラムの解析を困難にすることができる場合がある。
<RES命令の変形例2>
【1250】
図127は、変形例2に係るRES命令を示した図である。RES命令の変形である「RESmZ n、r」命令(mは0?7の数値)は、第2オペランドrで示されるレジスタを含むペアレジスタに記憶されている値のうち、mで示されるビットのアクセスを禁止するとともに、第1オペランドで示されるビットn(nは、mを除く0?8の数値)を0にリセットする命令である。また、「RESmZ n、(rr)」命令(mは0?7の数値)は、第2オペランド(rr)で示されるペアレジスタrrに記憶されているアドレスと、このアドレスに連続するアドレスに格納された2バイト長の値のうち、mで示されるビットのアクセスを禁止するとともに、第1オペランドで示されるビットn(nは、mを除く0?8の数値)を0にリセットする命令である。
【1251】
例えば、図128に示すように、「RES2Z 8、L」命令は、第2オペランドLで示されるレジスタLを含むペアレジスタHLに記憶されている値のうち、2で示されるビット(ビット2)のアクセスを禁止するとともに、第1オペランドで示されるビット8(この例では、HLレジスタの上位バイトであるHレジスタのビット0)を0にリセットする命令である。
【1252】
また、図129に示すように、「RES2Z 8、(HL)」命令は、第2オペランド(HL)で示されるペアレジスタHLに記憶されているアドレス(この例では、F010H)と、このアドレスに連続するアドレス(この例では、F011H)に格納された2バイト長の値のうち、2で示されるビット(ビット2)のアクセスを禁止するとともに、第1オペランドで示されるビット8(この例では、F010Hに連続するF011Hに格納された値のビット0値)を0にリセットする命令である。
【1253】
図130は、主制御部300の命令マップのうち、変形例2に係るRES命令に該当する部分を抜き出して示した図である。上述のとおり、「RES2Z 2、L」命令と「RES2Z 2、(HL)」命令は、ビット2のアクセスが禁止されビット2がリセットできない命令であるため、同図に太線の四角で示すように、これらの命令に替えて、「RES2Z8、L」命令と「RES2Z 8、(HL)」命令を割り当てている。このように、命令マップの一部の並び順を不規則にすることによって、プログラム(機械語)の解析を困難にすることができる場合がある。
<RES命令の他の変形例>
【1254】
図131は、RES命令の他の変形例を示した図である。例えば、同図(a)に示すRES命令では、上述の変形例1の「RESmZ n、r」命令または「RESmZ n、(rr)」命令(mは1?254の10進数の数値)において、数値mに0が指定できるように変更し、0を指定した場合には全てのビットのアクセスを許可するように構成している。また、同図(b)に示すRES命令では、上述の変形例1の「RESmZ n、r」命令または「RESmZ n、(rr)」命令(mは1?254の10進数の数値)において、数値mの指定が省略できるように変更し、指定を省略した場合には全てのビットのアクセスを許可するように構成している。
【1255】
図132(a)は、所定ビットのアクセスを禁止しないRES命令を備えた場合の命令マップと、所定ビットのアクセスを禁止するRES命令を備えた場合の命令マップを示した図である。このように、所定ビットのアクセスを禁止しないRES命令を備えた場合と、所定ビットのアクセスを禁止するRES命令を備えた場合で命令マップの一部の並び順を変更することによって、プログラム(機械語)の解析を困難にすることができる場合がある。
【1256】
また、同図(b)は、RES命令の第1オペランドの数値の大小と、RES命令の命令マップの並び順を異ならせた例を示した図である。このように、RES命令の第1オペランドの数値が8→1→2→3→4→5→6→7と不規則に並ぶようにRES命令を命令マップに割り当てることによって、プログラム(機械語)の解析を困難にすることができる場合がある。
<ユーザプログラムの具体例>
【1257】
次に、上述のユーザプログラムの具体例について説明する。上述のとおり、主制御部300のCPU304がユーザモードに移行すると、ROM領域の第一領域の先頭アドレスである0000H以降に記憶された命令が順次、実行されてユーザプログラムが開始される。
【1258】
図133(a)は、ユーザプログラムの一部であるプログラム起動設定処理の一例を示した図であり、同図(b)は、ユーザプログラムの一部である電源投入時設定処理の一例を示した図である。同図に示すユーザプログラムでは、最初にプログラム起動設定処理(アドレス0000H?0005Hに記憶された命令)が実行されることによって、スタックポインタや割込みモードの設定が行われ、その後に電源投入時設定処理(アドレス0062H)にジャンプするように構成されている。電源投入時処理では、アドレス0062H以降に記憶された命令が順次、実行されることによって、WDTへの動作許可及び初期値の設定や、電源電圧の監視処理が行われる。
【1259】
図134は、上述の主制御部タイマ割込処理に相当するユーザプログラムの一部を示した図である。主制御部300の基本回路302は、カウンタタイマ312からタイマ割込信号が入力された場合に、同図に示すような割込みベクトルテーブルを参照し、割込みベクトルテーブルに定義されたアドレスにジャンプするように構成されており、この例では、タイマ割込みに対応して定義されたアドレス040AHにジャンプするように構成されている。主制御部タイマ割込処理では、アドレス040AH以降に記憶された命令が順次、実行されることによって、レジスタの退避や、同図(1)?(18)に示す各種処理が、この順番で行われる。
<主制御部の第4特殊命令>
【1260】
次に、主制御部300が備える第4特殊命令について説明する。図135は、主制御部300が備える第4特殊命令の内容と、主制御部300のROM領域を示した図である。
<第4特殊命令/RST命令>
【1261】
第4特殊命令の一つである「RST」命令は、固定のアドレスをプログラムカウンタPCに設定することによって、固定のアドレスにジャンプするための命令である。
【1262】
本実施形態では、プログラムカウンタPCにストアされるアドレスが異なる8種類のRST命令を備えており、RST命令の命令データは、5ビットの命令コード(オペコード)と、3ビットのオペランドによって構成されている。具体的には、命令データCFH?FFHの7種類のRST命令のビット7?6、2?0の5ビットは、RST命令の命令コード(オペコード)を、それ以外のビット5?3の3ビット(太線で囲まれた部分)は、オペランドとして、各々のRST命令の実行によって分岐することが可能なジャンプ先のアドレスの一部(この例では、ジャンプ先のアドレスのビット5?3を示す。アドレスのビット2?0は1固定)を示している。
【1263】
例えば、命令データCFHのRST命令のビット5?3は、001Bであるため、ジャンプ先のアドレスのビット5?3が001Bで、ビット2?0が0(固定)、すなわち0008Hであることを示しており、命令データD7HのRST命令のビット5?3は010Bであるため、ジャンプ先のアドレスのビット5?3が010Bで、ビット2?0が0(固定)、すなわち0010Hであることを示している。また、その他のRST命令のジャンプ先のアドレスは図に示す通りである。
【1264】
一方、命令データC7HのRST命令のビット7?6、2?0の5ビットは、RST命令の命令コード(オペランド)を示しており、それ以外のビット5?3の3ビット(太線で囲まれた部分)は、このRST命令の実行によって分岐することが可能なジャンプ先のアドレス(この例では、ビット5?3に格納される数値000Bからは予測が不可能な0040H)を示している。すなわち、この命令データC7HのRST命令では、仮に機械語に基づいてオペコードやオペランドを解析できたとしても、当該RST命令の実行によって分岐することが可能なジャンプ先のアドレスを解析することが極めて困難とされている。
【1265】
また、これらのRST命令の命令データは、上述の通り、5ビットの命令コード(オペコード)と3ビットのオペランドによって構成されているため、ユーザはオペランドを自由に設定することができず(RST命令によって分岐することが可能なジャンプ先のアドレスを自由に設定することができず)、上述の8種類のRST命令によって分岐することが可能なジャンプ先のアドレスを選択することだけが許されている。
【1266】
なお、この例では、命令データにオペランドを含めることによって、当該命令によって分岐することが可能なジャンプ先のアドレスを規制する例を示したが、命令データにオペランドを含めなくてもよい。例えば、「RST 0040H」のように、オペコード(RST)とオペランド(0040H)を別々に構成した上で、指定可能なアドレス以外のアドレス(例えば、0000H)がオペランドとして設定された場合にアセンブルエラーにして機械語に変換できないように構成するなど、設定可能なオペランドを制限してもよい。また、命令データにオペランドを含む構成を採用した場合でも、指定可能なアドレス以外のアドレスがオペランドとして設定された場合にアセンブルエラーにして機械語に変換できないように構成するなど、設定可能なオペランドを制限してもよい。
【1267】
すなわち、本実施形態に係るRST命令では8種類のアドレス(0008H、0010H、0018H、0020H、0028H、0030H、0038H、0040H)だけにジャンプすることが可能となっており、例えば、RST命令によってROM領域の第一領域の先頭アドレス0000Hにジャンプすることができないように構成されている。このため、不正プログラムを組み込んで先頭アドレスにジャンプさせる(ユーザプログラムを先頭アドレスから開始させて不正に初期状態とする)ような行為を未然に防止できる場合がある。
【1268】
また、命令データC7HのRST命令では、命令データには含まれない数値である0040Hをジャンプ先のアドレスとしているため、逆アセンブルなどによってジャンプ先のアドレスやプログラムの流れを特定することが極めて困難で、不正なプログラム改造を未然に防止できる場合がある。また、RST命令では、図136の命令マップに示すように、命令コードの順番を昇順(C7H→CFH→…)に設定しているのに対して、ジャンプ先のアドレスの順番(0040H→0008H→…)を昇順にはしないように構成しているため、命令の分析を行うことが極めて困難で、不正なプログラム改造を未然に防止できる場合がある。
<実施形態3>
【1269】
以下、図面を用いて、本発明の実施形態3に係る遊技台(スロットマシン1100)について詳細に説明する。
<全体構成>
【1270】
まず、図137を用いて、本発明の実施形態3に係るスロットマシン1100の全体構成について説明する。なお、同図はスロットマシン1100を正面側(遊技者側)から見た外観斜視図である。
【1271】
同図に示すスロットマシン1100は、本体1101と、本体1101の正面に取り付けられ、本体1101に対して開閉可能な前面扉1102と、を備える。本体1101の中央内部には、(図示省略)外周面に複数種類の図柄が配置されたリールが3個(左リール1110、中リール1111、右リール1112)収納され、スロットマシン1100の内部で回転できるように構成されている。これらのリール1110乃至1112はステッピングモータ等の駆動装置により回転駆動される。
【1272】
本実施形態において、各図柄は帯状部材に等間隔で適当数印刷され、この帯状部材が所定の円形筒状の枠材に貼り付けられて各リール1110乃至1112が構成されている。リール1110乃至1112上の図柄は、遊技者から見ると、図柄表示窓1113から縦方向に概ね3つ表示され、合計9つの図柄が見えるようになっている。そして、各リール1110乃至1112を回転させることにより、遊技者から見える図柄の組み合せが変動することとなる。つまり、各リール1110乃至1112は複数種類の図柄の組合せを変動可能に表示する表示装置として機能する。なお、このような表示装置としてはリール以外にも液晶表示装置等の電子画像表示装置も採用できる。また、本実施形態では、3個のリールをスロットマシン1100の中央内部に備えているが、リールの数やリールの設置位置はこれに限定されるものではない。
【1273】
各々のリール1110乃至1112の背面には、図柄表示窓1113に表示される個々の図柄を照明するためのバックライト(図示省略)が配置されている。バックライトは、各々の図柄ごとに遮蔽されて個々の図柄を均等に照射できるようにすることが望ましい。なお、スロットマシン1100内部において各々のリール1110乃至1112の近傍には、投光部と受光部から成る光学式センサ(図示省略)が設けられており、この光学式センサの投光部と受光部の間をリールに設けられた一定の長さの遮光片が通過するように構成されている。このセンサの検出結果に基づいてリール上の図柄の回転方向の位置を判断し、目的とする図柄が入賞ライン上に表示されるようにリール1110乃至1112を停止させる。
【1274】
入賞ライン表示ランプ1120は、有効となる入賞ライン1114を示すランプである。有効となる入賞ラインは、遊技媒体としてベットされたメダルの数によって予め定まっている。入賞ライン1114は5ラインあり、例えば、メダルが1枚ベットされた場合、中段の水平入賞ラインが有効となり、メダルが2枚ベットされた場合、上段水平入賞ラインと下段水平入賞ラインが追加された3本が有効となり、メダルが3枚ベットされた場合、右下り入賞ラインと右上り入賞ラインが追加された5ラインが入賞ラインとして有効になる。なお、入賞ライン1114の数については5ラインに限定されるものではなく、また、例えば、メダルが1枚ベットされた場合に、中段の水平入賞ライン、上段水平入賞ライン、下段水平入賞ライン、右下り入賞ラインおよび右上り入賞ラインの5ラインを有効な入賞ラインとして設定してもよく、ベット数に関係なく、一律に同一数の入賞ラインを有効な入賞ラインとして設定してもよい。
【1275】
告知ランプ1123は、例えば、後述する内部抽選において特定の入賞役(具体的には、ボーナス)に内部当選していること、または、ボーナス遊技中であることを遊技者に知らせるランプである。遊技メダル投入可能ランプ1124は、遊技者が遊技メダルを投入可能であることを知らせるためのランプである。再遊技ランプ1122は、前回の遊技において入賞役の一つである再遊技に入賞した場合に、今回の遊技が再遊技可能であること(メダルの投入が不要であること)を遊技者に知らせるランプである。リールパネルランプ1128は演出用のランプである。
【1276】
ベットボタン1130乃至1132は、スロットマシン1100に電子的に貯留されているメダル(クレジットという)を所定の枚数分投入するためのボタンである。本実施形態においては、ベットボタン1130が押下される毎に1枚ずつ最大3枚まで投入され、ベットボタン1131が押下されると2枚投入され、ベットボタン1132が押下されると3枚投入されるようになっている。以下、ベットボタン1132はMAXベットボタンとも言う。なお、遊技メダル投入ランプ1129は、投入されたメダル数に応じた数のランプを点灯させ、規定枚数のメダルの投入があった場合、遊技の開始操作が可能な状態であることを知らせる遊技開始ランプ1121が点灯する。
【1277】
メダル投入口1141は、遊技を開始するに当たって遊技者がメダルを投入するための投入口である。すなわち、メダルの投入は、ベットボタン1130乃至1132により電子的に投入することもできるし、メダル投入口1141から実際のメダルを投入(投入操作)することもでき、投入とは両者を含む意味である。貯留枚数表示器1125は、スロットマシン1100に電子的に貯留されているメダルの枚数を表示するための表示器である。遊技情報表示器1126は、各種の内部情報(例えば、ボーナス遊技中のメダル払出枚数)を数値で表示するための表示器である。払出枚数表示器1127は、何らかの入賞役に入賞した結果、遊技者に払出されるメダルの枚数を表示するための表示器である。貯留枚数表示器1125、遊技情報表示器1126、および、払出枚数表示器1127は、7セグメント(SEG)表示器とした。
【1278】
スタートレバー1135は、リール1110乃至1112の回転を開始させるためのレバー型のスイッチである。即ち、メダル投入口1141に所望するメダル枚数を投入するか、ベットボタン1130乃至1132を操作して、スタートレバー1135を操作すると、リール1110乃至1112が回転を開始することとなる。スタートレバー1135に対する操作を遊技の開始操作と言う。
【1279】
ストップボタンユニット1136には、ストップボタン1137乃至1139が設けられている。ストップボタン1137乃至1139は、スタートレバー1135の操作によって回転を開始したリール1110乃至1112を個別に停止させるためのボタン型のスイッチであり、各リール1110乃至1112に対応づけられている。以下、ストップボタン1137乃至1139に対する操作を停止操作と言い、最初の停止操作を第1停止操作、次の停止操作を第2停止操作、最後の停止操作を第3停止操作という。なお、各ストップボタン1137乃至1139の内部に発光体を設けてもよく、ストップボタン1137乃至1139の操作が可能である場合、該発光体を点灯させて遊技者に知らせることもできる。
【1280】
メダル返却ボタン1133は、投入されたメダルが詰まった場合に押下してメダルを取り除くためのボタンである。精算ボタン1134は、スロットマシン1100に電子的に貯留されたメダル、ベットされたメダルを精算し、メダル払出口1155から排出するためのボタンである。ドアキー孔1140は、スロットマシン1100の前面扉1102のロックを解除するためのキーを挿入する孔である。ストップボタンユニット1136の下部には、機種名の表示と各種証紙の貼付とを行うタイトルパネル1162が設けられている。タイトルパネル1162の下部には、メダル払出口1155、メダルの受け皿1161が設けられている。
【1281】
音孔1180はスロットマシン1100内部に設けられているスピーカの音を外部に出力するための孔である。前面扉1102の左右各部に設けられたサイドランプ1144は遊技を盛り上げるための装飾用のランプである。前面扉1102の上部には演出装置1160が配設されており、演出装置1160の上部には音孔1143が設けられている。この演出装置1160は、水平方向に開閉自在な2枚の右シャッタ1163a、左シャッタ1163bからなるシャッタ(遮蔽装置)1163と、このシャッタ1163の奥側に配設された液晶表示装置1157(演出画像表示装置)を備えており、右シャッタ1163a、左シャッタ1163bが液晶表示装置1157の手前で水平方向外側に開くと液晶表示装置1157の表示画面がスロットマシン1100正面(遊技者側)に出現する構造となっている。なお、液晶表示装置でなくとも、種々の演出画像や種々の遊技情報を表示可能な表示装置であればよく、例えば、複数セグメントディスプレイ(7セグディスプレイ)、ドットマトリクスディスプレイ、有機ELディスプレイ、プラズマディスプレイ、リール(ドラム)、或いは、プロジェクタとスクリーンとからなる表示装置等でもよい。また、表示画面は、方形をなし、その全体を遊技者が視認可能に構成している。本実施形態の場合、表示画面は長方形であるが、正方形でもよい。また、表示画面の周縁に不図示の装飾物を設けて、表示画面の周縁の一部が該装飾物に隠れる結果、表示画面が異形に見えるようにすることもできる。表示画面は本実施形態の場合、平坦面であるが、曲面をなしていてもよい。
【1282】
図138は、前面扉102を開けた状態のスロットマシン1100を示す正面図である。本体1101は、上面板1261、左側の側面板1260、右側の側面板1260、下面板1264および背面板1242で囲われ、前面に開口する箱体である。本体1101の内部には、背面板1242の上部に設けた通風口1249と重ならない位置に、内部に主制御基板を収納した主制御基板収納ケース1210が配置され、この主制御基板収納ケース1210の下方に、3つのリール1110乃至1112が配置されている。主制御基板収納ケース1210及びリール1110乃至1112の側方、即ち向って左側の側面板1260には、内部に副制御基板を収納した副制御基板収納ケース1220が配設してある。また、向かって右側の側面板1260には、主制御基板に接続されて、スロットマシン1100の情報を外部装置に出力する外部集中端子板1248が取り付けられている。
【1283】
そして、下面板1264には、メダル払出装置1180(バケットに溜まったメダルを払出す装置)が配設され、このメダル払出装置1180の上方、即ちリール1110乃至1112の下方には、電源基板を有する電源装置1252が配設され、電源装置1252正面には電源スイッチ1244を配設している。電源装置1252は、スロットマシン1100に外部から供給される交流電源を直流化し、所定の電圧に変換して後述する主制御部1300、副制御部1400、1500等の各制御部、各装置に供給する。さらには、外部からの電源が断たれた後も所定の部品(例えば主制御部1300のRAM1308等)に所定の期間(例えば10日間)電源を供給するための蓄電回路(例えばコンデンサ)を備えている。
【1284】
メダル払出装置1180の右側には、メダル補助収納庫1240が配設してあり、この背後にはオーバーフロー端子が配設されている(図示省略)。電源装置1252には、電源コード1264を接続する電源コード接続部が設けられ、ここに接続された電源コード1264が、本体1101の背面板1242に開設した電源コード用穴1262を通して外部に延出している。
【1285】
前面扉1102は、本体1101の左側の側面板1260にヒンジ装置1276を介して蝶着され、図柄表示窓1113の上部には、演出装置1160、および、この演出装置1160を制御する演出制御基板(図示省略)、上部スピーカ1272、を設けている。図柄表示窓1113の下部には、投入されたメダルを選別するためのメダルセレクタ1170、このメダルセレクタ1170が不正なメダル等をメダル受皿1161に落下させる際にメダルが通過する通路1266等を設けている。さらに、音孔1180に対応する位置には低音スピーカ1277を設けている。
【1286】
図139を用いて、スロットマシン1100の制御部の回路構成について詳細に説明する。なお、同図は制御部の回路ブロック図を示したものである。
【1287】
スロットマシン1100の制御部は、大別すると、主に遊技の進行(例えば、遊技者による操作の検出、遊技状態の遷移、遊技媒体の払出制御、当否判定など)を制御する主制御部1300と、主制御部1300が送信するコマンド信号(以下、単に「コマンド」と呼ぶ)に応じて、主に演出の制御を行う第1副制御部1400と、第1副制御部1400より送信されたコマンドに基づいて各種機器を制御する第2副制御部1500と、によって構成されている。
<主制御部>
【1288】
まず、スロットマシン1100の主制御部1300について説明する。主制御部1300は、主制御部1300の全体を制御する基本回路1302を備えており、この基本回路1302には、CPU1304と、制御プログラムデータ、入賞役の内部抽選時に用いる抽選データ、リールの停止位置等を記憶するためのROM1306と、一時的にデータを記憶するためのRAM1308と、各種デバイスの入出力を制御するためのI/O1310と、時間や回数等を計測するためのカウンタタイマ1312と、WDT(ウォッチドックタイマ)1314を搭載している。なお、ROM1306やRAM1308については他の記憶装置を用いてもよく、この点は後述する第1副制御部1400や第2副制御部500についても同様である。この基本回路1302のCPU1304は、水晶発振器1314が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。さらには、CPU1304は、電源が投入されるとROM1306の所定エリアに格納された分周用のデータをカウンタタイマ1312に送信し、カウンタタイマ1312は受信した分周用のデータを基に割り込み時間を決定し、この割り込み時間ごとに割り込み要求をCPU1304に送信する。CPU1304は、この割込み要求を契機に各センサ等の監視や駆動パルスの送信を実行する。例えば、水晶発振器1314が出力するクロック信号を8MHz、カウンタタイマ1312の分周値を1/256、ROM1306の分周用のデータを47に設定した場合、割り込みの基準時間は、256×47÷8MHz=1.504msとなる。
【1289】
主制御部1300は、0?65535の範囲で数値を変動させるハードウェア乱数カウンタとして使用している乱数値生成回路1316と、電源が投入されると起動信号(リセット信号)を出力する起動信号出力回路1338を備えており、CPU1304は、この起動信号出力回路1338から起動信号が入力された場合に、遊技制御を開始する(後述する主制御部メイン処理を開始する)。
【1290】
また、主制御部1300には、センサ回路1320を備えており、CPU1304は、割り込み時間ごとに各種センサ1318(ベットボタン1130センサ、ベットボタン1131センサ、ベットボタン1132センサ、メダル投入口1141から投入されたメダルのメダル受付センサ、スタートレバー1135センサ、ストップボタン1137センサ、ストップボタン1138センサ、ストップボタン1139センサ、精算ボタン1134センサ、メダル払出装置1180から払い出されるメダルのメダル払出センサ、リール1110のインデックスセンサ、リール1111のインデックスセンサ、リール1112のインデックスセンサ、等)の状態を監視している。
【1291】
なお、センサ回路1320がスタートレバーセンサのHレベルを検出した場合には、この検出を示す信号を乱数発生回路1316に出力する。この信号を受信した乱数発生回路1316は、そのタイミングにおける値をラッチし、抽選に使用する乱数値を格納するレジスタに記憶する。
【1292】
メダル受付センサは、メダル投入口1141の内部通路に2個設置されており、メダルの通過有無を検出する。スタートレバー1135センサは、スタートレバー1135内部に2個設置されており、遊技者によるスタート操作を検出する。ストップボタン1137センサ、ストップボタン1138センサ、および、ストップボタン1139は、各々のストップボタン1137乃至1139に設置されており、遊技者によるストップボタンの操作を検出する。
【1293】
ベットボタン1130センサ、ベットボタン1131センサ、および、ベットボタン1132センサは、メダル投入ボタン1130乃至1132のそれぞれに設置されており、RAM1308に電子的に貯留されているメダルを遊技への投入メダルとして投入する場合の投入操作を検出する。精算ボタン1134センサは、精算ボタン1134に設けられている。精算ボタン1134が一回押されると、電子的に貯留されているメダルを精算する。メダル払出センサは、メダル払出装置1180が払い出すメダルを検出するためのセンサである。なお、以上の各センサは、非接触式のセンサであっても接点式のセンサであってもよい。
【1294】
リール1110のインデックスセンサ、リール1111のインデックスセンサ、および、リール1112のインデックスセンサは、各リール1110乃至1112の取付台の所定位置に設置されており、リールフレームに設けた遮光片が通過するたびにLレベルになる。CPU1304は、この信号を検出すると、リールが1回転したものと判断し、リールの回転位置情報をゼロにリセットする。
【1295】
主制御部1300は、リール装置1110乃至1112に設けたステッピングモータを駆動する駆動回路1322、投入されたメダルを選別するメダルセレクタ1170に設けたソレノイドを駆動する駆動回路1324、メダル払出装置1180に設けたモータを駆動する駆動回路1326、各種ランプ1338(入賞ライン表示ランプ1120、告知ランプ1123、遊技メダル投入可能ランプ1124、再遊技ランプ1122、遊技メダル投入ランプ1129は、遊技開始ランプ1121、貯留枚数表示器1125、遊技情報表示器1126、払出枚数表示器1127)を駆動する駆動回路1328を備えている。
【1296】
また、基本回路1302には、情報出力回路1334(外部集中端子板1248)を接続しており、主制御部1300は、この情報出力回路1334を介して、外部のホールコンピュータ(図示省略)等が備える情報入力回路1652にスロットマシン1100の遊技情報(例えば、遊技状態)を出力する。
【1297】
また、主制御部1300は、電源管理部(図示しない)から主制御部1300に供給している電源の電圧値を監視する電圧監視回路1330を備えており、電圧監視回路1330は、電源の電圧値が所定の値(本実施例では9V)未満である場合に電圧が低下したことを示す低電圧信号を基本回路1302に出力する。
【1298】
また、主制御部1300は、第1副制御部1400にコマンドを送信するための出力インタフェースを備えており、第1副制御部1400との通信を可能としている。なお、主制御部1300と第1副制御部1400との情報通信は一方向の通信であり、主制御部1300は第1副制御部1400にコマンド等の信号を送信できるように構成しているが、第1副制御部1400からは主制御部1300にコマンド等の信号を送信できないように構成している。
<副制御部>
【1299】
次に、スロットマシン1100の第1副制御部1400について説明する。第1副制御部1400は、主制御部1300が送信した制御コマンドを入力インタフェースを介して受信し、この制御コマンドに基づいて第1副制御部1400の全体を制御する基本回路1402を備えており、この基本回路1402は、CPU1404と、一時的にデータを記憶するためのRAM1408と、各種デバイスの入出力を制御するためのI/O1410と、時間や回数等を計測するためのカウンタタイマ1412を搭載している。基本回路1402のCPU1404は、水晶発振器1414が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。ROM406は、第1副制御部1400の全体を制御するための制御プログラム及びデータ、バックライトの点灯パターンや各種表示器を制御するためのデータ等を記憶する。
【1300】
CPU1404は、所定のタイミングでデータバスを介してROM1406の所定エリアに格納された分周用のデータをカウンタタイマ1412に送信する。カウンタタイマ1412は、受信した分周用のデータを基に割り込み時間を決定し、この割り込み時間ごとに割り込み要求をCPU1404に送信する。CPU1404は、この割込み要求のタイミングをもとに、各ICや各回路を制御する。
【1301】
また、第1副制御部1400には、音源IC1418を設けており、音源IC1418に出力インタフェースを介してスピーカ1272、1277を設けている。音源IC1418は、CPU1404からの命令に応じてアンプおよびスピーカ1272、1277から出力する音声の制御を行う。音源IC1418には音声データが記憶されたS-ROM(サウンドROM)が接続されており、このROMから取得した音声データをアンプで増幅させてスピーカ1272、1277から出力する。
【1302】
また、第1副制御部1400には、駆動回路1422が設けられ、駆動回路1422に入出力インタフェースを介して各種ランプ1420(上部ランプ、下部ランプ、サイドランプ1144、タイトルパネル1162ランプ、等)が接続されている。
【1303】
また、CPU1404は、出力インタフェースを介して第2副制御部1500へ信号の送受信を行う。第2副制御部1500は、演出画像表示装置1157の表示制御を含む演出装置1160の各種制御を行う。なお、第2副制御部1500は、例えば、液晶表示装置1157の表示の制御を行う制御部、各種演出用駆動装置の制御を行う制御部(例えば、シャッタ1163のモータ駆動を制御する制御部)とするなど、複数の制御部で構成するようにしてもよい。
【1304】
第2副制御部1500は、第1副制御部1400が送信した制御コマンドを入力インタフェースを介して受信し、この制御コマンドに基づいて第2副制御部1500の全体を制御する基本回路1502を備えており、この基本回路1502は、CPU1504と、一時的にデータを記憶するためのRAM1508と、各種デバイスの入出力を制御するためのI/O1510と、時間や回数等を計測するためのカウンタタイマ1512と、を搭載している。基本回路1502のCPU1504は、水晶発振器1514が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。ROM506は、第2副制御部1500の全体を制御するための制御プログラム及びデータ、画像表示用のデータ等を記憶する。
【1305】
CPU1504は、所定のタイミングでデータバスを介してROM1506の所定エリアに格納された分周用のデータをカウンタタイマ1512に送信する。カウンタタイマ1512は、受信した分周用のデータを基に割り込み時間を決定し、この割り込み時間ごとに割り込み要求をCPU1404に送信する。CPU1504は、この割込み要求のタイミングをもとに、各ICや各回路を制御する。
【1306】
また、第2副制御部1500には、シャッタ1163のモータを駆動する駆動回路1530を設けており、駆動回路1530には出力インタフェースを介してシャッタ1163を設けている。この駆動回路1530は、CPU1504からの命令に応じてシャッタ1163に設けたステッピングモータ(図示省略)に駆動信号を出力する。また、第2副制御部1500には、センサ回路1532を設けており、センサ回路1532には入力インタフェースを介してシャッタセンサ1538を接続している。CPU1504は、割り込み時間ごとにシャッタセンサ1538状態を監視している。
【1307】
また、第2副制御部1500には、VDP1534(ビデオ・ディスプレイ・プロセッサー)を設けており、このVDP1534には、バスを介してROM1506、VRAM1536が接続されている。VDP1534は、CPU1504からの信号に基づいてROM1506に記憶された画像データ等を読み出し、VRAM1536のワークエリアを使用して表示画像を生成し、演出画像表示装置1157に画像を表示する。
<図柄配列>
【1308】
次に、図140(a)を用いて、上述の各リール1110乃至1112に施される図柄配列について説明する。なお、同図は、各リール(左リール1110、中リール1111、右リール1112)に施される図柄の配列を平面的に展開して示した図である。
【1309】
各リール1110乃至1112には、同図の右側に示す複数種類(本実施形態では8種類)の図柄が所定コマ数(本実施形態では、番号0?20の21コマ)だけ配置されている。また、同図の左端に示した番号0?20は、各リール1110乃至1112上の図柄の配置位置を示す番号である。例えば、本実施形態では、左リール1110の番号1のコマには「リプレイ」の図柄、中リール1111の番号0のコマには「ベル」の図柄、右リール1112の番号2のコマには「スイカ」の図柄、がそれぞれ配置されている。
<入賞役の種類>
【1310】
次に、図140(b)を用いて、スロットマシン1100の入賞役の種類について説明する。なお、同図は入賞役(作動役を含む)の種類、各入賞役に対応する図柄組合せ、各入賞役の作動または払出を示している。
【1311】
本実施形態における入賞役のうち、ビッグボーナス(BB1、BB2)および、レギュラーボーナス(RB)はボーナス遊技に移行する役として、また、再遊技(リプレイ)は新たにメダルを投入することなく再遊技が可能となる役として、それぞれ入賞役とは区別され「作動役」と呼ばれる場合があるが、本実施形態における「入賞役」には、作動役である、ビッグボーナス、レギュラーボーナス、再遊技が含まれる。また、本実施形態における「入賞」には、メダルの配当を伴わない(メダルの払い出しを伴わない)作動役の図柄組合せが有効ライン上に表示される場合も含まれ、例えば、ビッグボーナス、レギュラーボーナス、再遊技への入賞が含まれる。
【1312】
スロットマシン1100の入賞役には、ビッグボーナス(BB1、BB2)と、レギュラーボーナス(RB)と、小役(チェリー、スイカ、ベル)と、再遊技(リプレイ)がある。なお、入賞役の種類は、これに限定されるものではなく、任意に採用できることは言うまでもない。
【1313】
「ビッグボーナス(BB1、BB2)」(以下、単に、「BB」と称する場合がある)は、入賞により特別遊技であるビッグボーナス遊技(BB遊技)が開始される特別役(作動役)である。対応する図柄組合せは、BB1が「白7-白7-白7」、BB2が「青7-青7-青7」である。また、BB1、BB2についてはフラグ持越しを行う。すなわち、BB1、BB2に内部当選すると、これを示すフラグが立つ(主制御部1300のRAM1308の当否判定結果記憶領域に記憶される)が、その遊技においてBB1、BB2に入賞しなかったとしても、入賞するまで内部当選を示すフラグが立った状態が維持され、次遊技以降でもBB1、BB2に内部当選中となり、BB1に対応する図柄組み合わせ「白7-白7-白7」、BB2に対応する図柄組み合わせ「青7-青7-青7」が、揃って入賞する状態にある。
【1314】
「レギュラーボーナス(RB)」は、入賞によりレギュラーボーナス遊技(RB遊技)が開始される特殊役(作動役)である。対応する図柄組合せは、「ボーナス-ボーナス-ボーナス」である。なお、RBについても上述のBBと同様にフラグ持越しを行う。但し、(詳細は後述するが)ビッグボーナス遊技(BB遊技)においては、レギュラーボーナス遊技(RB遊技)が内部当選することや、図柄組み合わせが入賞ライン上に表示されること、を開始条件とせずに、ビッグボーナス遊技の開始後からレギュラーボーナス遊技を開始し、1回のレギュラーボーナス遊技を終了した場合には次のレギュラーボーナス遊技をすぐに開始するような自動的にレギュラーボーナス遊技を開始させる設定としてもよい。 「小役(チェリー、スイカ、ベル)」(以下、単に、「チェリー」、「スイカ」、「ベル」と称する場合がある)は、入賞により所定数のメダルが払い出される入賞役で、対応する図柄組合せは、チェリーが「チェリー-ANY-ANY」、スイカが「スイカ-スイカ-スイカ」、ベルが「ベル-ベル-ベル」である。また、対応する払出枚数は同図に示す通りである。なお、「チェリー-ANY-ANY」の場合、左リール1110の図柄が「チェリー」であればよく、中リール1111と右リール1112の図柄はどの図柄でもよい。
【1315】
「再遊技(リプレイ)」は、入賞により次回の遊技でメダル(遊技媒体)の投入を行うことなく遊技を行うことができる入賞役(作動役)であり、メダルの払出は行われない。なお、対応する図柄組合せは、再遊技は「リプレイ-リプレイ-リプレイ」である。
<遊技状態の種類>
【1316】
次に、スロットマシン1100の遊技状態の種類について説明する。遊技状態とは、抽選などにおいて選択する抽選データの種別を識別するための情報である。本実施形態では、スロットマシン1100の遊技状態は、通常遊技と、BB遊技と、RB遊技と、ビッグボーナス(BB)およびレギュラーボーナス(RB)の内部当選遊技と、に大別した。但し、内部当選遊技は、通常遊技に含まれる区分けであってもよい。
<通常遊技>
【1317】
通常遊技に内部当選する入賞役には、ビッグボーナス(BB)と、レギュラーボーナス(RB)と、再遊技(リプレイ)と、小役(チェリー、スイカ、ベル)がある。
【1318】
「ビッグボーナス(BB)」は、入賞により特別遊技であるビッグボーナス遊技(BB遊技)が開始される特別役(作動役)である。レギュラーボーナス(RB)」は、入賞によりレギュラーボーナス遊技(RB遊技)を開始する特殊役(作動役)である。「再遊技(リプレイ)」は、入賞により次回の遊技でメダルの投入を行うことなく遊技を行うことができる入賞役(作動役)であり、メダルの払出も行われない。「小役」は、入賞により所定数のメダルが払い出される入賞役である。なお、各々の役の内部当選確率は、通常遊技に用意された抽選データから、各々の役に対応付けされた抽選データの範囲に該当する数値データを、内部抽選時に取得される乱数値の範囲の数値データ(例えば65535)で除した値で求められる。通常遊技に用意された抽選データは、予めいくつかの数値範囲に分割され、各数値範囲に各々の役やハズレを対応付けしている。内部抽選を実行した結果得られた乱数値が、何れの役に対応する抽選データに対応する値であったかを判定し、内部抽選役を決定する。この抽選データは少なくとも1つの役の当選確率を異ならせた設定1?設定6が用意され、遊技店の係員等はいずれかの設定値を任意に選択し、設定することができる。
【1319】
通常遊技は、内部抽選の結果が概ねハズレ(ビッグボーナス(BB)、レギュラーボーナス(RB)、再遊技(リプレイ)および小役に当選していない)となる設定、又は、停止表示結果がいずれの役の図柄組合せに該当しないハズレの停止表示結果が概ね導出される設定がされており、獲得するメダルの総数が、投入したメダルの総数に満たない遊技状態になっている。よって、遊技者にとっては不利益となる遊技状態である。但し、予め定めた条件を満たした場合(例えば、特定の図柄組み合わせが表示された場合)には、再遊技の内部当選の確率を上昇させる変動をさせてもよい遊技状態であり、この場合、遊技に用いられるメダルの消費が抑えられ、小役の入賞によって所定数のメダルが払い出されることにより、獲得するメダルの総数が、投入したメダルの総数を超える遊技状態になり、遊技者にとっては利益となる遊技状態になる場合がある。
<BB遊技>
【1320】
BB遊技は、遊技者にとっては利益となる遊技状態になるように設定されている。つまり、BB遊技は、獲得するメダルの総数が、投入したメダルの総数を超える遊技状態となる。BB遊技は、本実施形態では、ビッグボーナス(BB)の入賞により開始され、RB遊技(後述する)を連続して繰り返し実行可能になっており、遊技中に予め定められた一の数(例えば、465枚)を超えるメダルが獲得された場合に終了する。但し、BB遊技はRB遊技を複数回数実行可能であればよく、例えば、RB遊技を開始する役(図柄組み合わせは例えば、リプレイ-リプレイ-リプレイ)を設定し、この役が内部当選した場合、または、入賞した場合に、RB遊技を開始するように設定してもよい。さらには、BB遊技は、BB遊技中のRB遊技を除くBB一般遊技を予め定めた回数(例えば、30回)実行した場合、または、BB遊技中に実行したRB遊技の回数が予め定めた回数に達した場合(例えば、3回)に終了するようにしてもよい。
<RB遊技>
【1321】
RB遊技は、遊技者にとっては利益となる遊技状態になるように設定されている。つまり、RB遊技は、獲得するメダルの総数が、投入したメダルの総数を超える遊技状態となる。RB遊技は、本実施形態では、レギュラーボーナス(RB)の入賞により開始され、予め定めた一の役が内部当選の確率を上昇させる変動(例えば、「設定1」「通常遊技」に設定された「小役1」の内部当選確率1/15を、予め定めた一の値である内部当選確率1/1.2に上昇させる)をし、予め定めた一の数(例えば、8回)の入賞があった場合に終了する。RB遊技は、予め定めた回数(少なくとも2回)の入賞があった場合(例えば、8回)、または、RB遊技中に実行したRB遊技の回数が予め定めた回数に達した場合(例えば、8回)に終了するようにしてもよい。上述したBB遊技は、RB遊技を複数回数実行可能であるので、一回のRB遊技を行った場合には、BB遊技で得られるメダルの総数よりも少ないメダル数を獲得して終了することとなる。
【1322】
<ビッグボーナス(BB)およびレギュラーボーナス(RB)の内部当選遊技>
【1323】
ビッグボーナス(BB)およびレギュラーボーナス(RB)の内部当選遊技に内部当選する入賞役には、再遊技(リプレイ)と、小役がある。ビッグボーナス(BB)およびレギュラーボーナス(RB)は内部当選することはなく、ビッグボーナス(BB)かレギュラーボーナス(RB)に対応する図柄組み合わせを入賞させることが可能となっている遊技状態である。
【1324】
但し、ビッグボーナス(BB)およびレギュラーボーナス(RB)に内部当選した次遊技から、再遊技の内部当選の確率を変動させてもよく、例えば、再遊技の内部当選の確率を上昇させる変動をさせて、ビッグボーナス(BB)およびレギュラーボーナス(RB)対応する図柄組み合わせが入賞するまでの間は、獲得するメダルの総数が、投入したメダルの総数とほぼ同じとなる遊技状態とし、通常遊技と比べると遊技者にとっては利益となる遊技状態としてもよい。なお、BB遊技、RB遊技は両者とも遊技者にとって利益となる遊技状態であるため、総じて、ボーナス遊技、又は、特別遊技と称する場合がある。
<主制御部メイン処理>
【1325】
次に、図141を用いて、主制御部1300のCPU1304が実行する主制御部メイン処理について説明する。なお、同図は主制御部メイン処理の流れを示すフローチャートである。
【1326】
上述したように、主制御部1300には、電源が投入されると起動信号(リセット信号)を出力する起動信号出力回路(リセット信号出力回路)1338を設けている。この起動信号を入力した基本回路1302のCPU1304は、リセット割込によりリセットスタートしてROM1306に予め記憶している制御プログラムに従って、この主制御部メイン処理を実行する。
【1327】
電源投入が行われると、まず、ステップS2101で各種の初期設定を行う。この初期設定では、CPU1304のスタックポインタ(SP)へのスタック初期値の設定、割込禁止の設定、I/O1310の初期設定、RAM1308に記憶する各種変数の初期設定、WDT1314への動作許可及び初期値の設定等を行う。ステップS2103ではメダル投入・スタート操作受付処理を実行する。ここではメダルの投入の有無をチェックし、メダルの投入に応じて入賞ライン表示ランプ1120を点灯させる。なお、前回の遊技で再遊技に入賞した場合は、前回の遊技で投入されたメダル枚数と同じ数のメダルを投入する処理を行うので、遊技者によるメダルの投入が不要となる。また、スタートレバー1135が操作されたか否かのチェックを行い、スタートレバー1135の操作があればステップS2105へ進む。
【1328】
ステップS2105では投入されたメダル枚数を確定し、有効な入賞ラインを確定する。ステップS2107では後述する主制御部タイマ割込み処理で格納された乱数値を取得する。ステップS2109では、現在の遊技状態に応じてROM1306に格納されている入賞役抽選テーブルを読み出し、これとステップS2107で取得した乱数値とを用いて内部抽選を行う。内部抽選の結果、いずれかの入賞役(作動役を含む)に内部当選した場合、その入賞役のフラグがONになる。ステップS2111では内部抽選結果に基づき、リール停止データを選択する。なお、本実施形態では乱数値生成回路1316から取得した乱数をそのまま内部抽選に使用するように構成しているが、取得した乱数を加工し、加工した乱数を使用して内部抽選を行うように構成してもよい。
【1329】
ステップS2113では全リール1110乃至1112の回転を開始させる。ステップS2115では、ストップボタン1137乃至1139の受け付けが可能になり、いずれかのストップボタンが押されると、押されたストップボタンに対応するリール1110乃至1112の何れかをステップS2111で選択したリール停止制御データに基づいて停止させる。全リール1110乃至1112が停止するとステップS2117へ進む。ステップS2117では、入賞判定を行う。ここでは、有効化された入賞ライン1114上に、何らかの入賞役に対応する図柄組合せが表示された場合にその入賞役に入賞したと判定する。例えば、有効化された入賞ライン上に「ベル-ベル-ベル」が揃っていたならばベル入賞と判定する。ステップS2119では払い出しのある何らかの入賞役に入賞していれば、その入賞役に対応する枚数のメダルを入賞ライン数に応じて払い出す。ステップS2121では遊技状態制御処理を行う。遊技状態制御処理では、通常遊技、BB遊技、RB遊技、内部当選遊技、の各遊技状態の移行に関する処理を行い、それらの開始条件、終了条件の成立により、遊技状態を移行する。以上により1ゲームが終了する。以降ステップS2103へ戻って上述した処理を繰り返すことにより遊技が進行することになる。
<主制御部1300タイマ割込処理>
【1330】
次に、図142を用いて、主制御部1300のCPU1304が実行する主制御部タイマ割込処理について説明する。なお、同図は主制御部タイマ割込処理の流れを示すフローチャートである。
【1331】
主制御部1300は、所定の周期(本実施形態では約2msに1回)でタイマ割込信号を発生するカウンタタイマ1312を備えており、このタイマ割込信号を契機として主制御部タイマ割込処理を所定の周期で開始する。
【1332】
ステップS2201では、タイマ割込開始処理を行う。このタイマ割込開始処理では、CPU1304の各レジスタの値をスタック領域に一時的に退避する処理などを行う。ステップS2203では、WDT1314のカウント値が初期設定値(本実施形態では32.8ms)を超えてWDT割込が発生しないように(処理の異常を検出しないように)、WDT1314を定期的に(本実施形態では、主制御部タイマ割込の周期である約2msに1回)リスタートを行う。
【1333】
ステップS2205では、入力ポート状態更新処理を行う。この入力ポート状態更新処理では、I/O1310の入力ポートを介して、各種センサ1318のセンサ回路1320の検出信号を入力して検出信号の有無を監視し、RAM1308に各種センサ1318ごとに区画して設けた信号状態記憶領域に記憶する。より具体的には、この信号状態記憶領域それぞれに対して前々回、前回、今回の割込み時における検出信号の有無を記憶している。
【1334】
ステップS2207では、各種遊技処理を行う。具体的には、割込みステータスを取得し(各種センサ1318からの信号に基づいて各種割込みステータスを取得する)、この割込みステータスに従った処理を行う。例えば、この割込みステータスが遊技開始のためのスタートレバー操作を待っている状態を示す場合、上述した信号記憶領域のうちスタートレバーの操作を検出するためのセンサに対応する領域を参照し、前々回、前回、今回の割込み時における検出信号の有無のパターンが予め定められた判定パターンと一致した場合に乱数値生成回路1316の内部抽選用のチャンネルの乱数をラッチするためのラッチ信号を出力する処理(具体的には、ソフトラッチレジスタ3186の内部抽選用のチャンネルに対応する領域に所定の値を書き込む処理)を実行するとともに、このラッチ信号によってラッチされた乱数を取得するためのリード信号を出力する処理(具体的には、図148に示す乱数レジスタ3188のうちの特図1のチャンネルに対応する乱数レジスタに対してリード信号を出力する処理)を実行してラッチされている乱数を取得して対応する乱数値記憶領域に格納する。なお、本実施形態では、スタートレバーの操作があったか否かの判定として、前々回、前回および今回の検出信号が予め定められた判定パターン情報と一致した否かを判定していたが、このような方法に限らず、例えば、前回および今回の検出信号が予め定められた入賞判定パターン情報(例えば、前回検出信号なし、今回検出信号あり(いわゆるアップエッジ))と一致したか否かを判定するように構成してもよい。すなわち、スタートレバーの操作を検出するためのセンサの検出信号の有無を監視し、この監視結果の履歴が予め定められたパターンと一致したか否かを判定するように構成すればよい。
【1335】
また、本実施形態では、乱数値生成回路1316から乱数を取得する方法として内部抽選用のチャンネルの乱数をラッチするためのラッチ信号を出力する処理を行った後にラッチした乱数を取得するリード信号を出力する方法を採用しているが、内部抽選用のチャンネルの乱数を直読みする処理(具体的には、乱数レジスタ3188の値を直接リードする処理)を実行して取得するようにしてもよい。
【1336】
また、本実施形態では、内部抽選用の乱数を取得するためのリード信号を出力する処理(乱数レジスタ3188の値を直接リードする処理とは異なる)を主制御部タイマ割込み処理において実行するように構成しているが、この処理に関しては上述した主制御部メイン処理の内部抽選を行う直前に実行するように構成してもよい。
【1337】
また、内部抽選用の乱数を取得するためのリード信号を出力する処理とともに、主制御部タイマ割込み処理において内部抽選処理を行うように構成してもよい。
【1338】
ステップS2209では、タイマ更新処理を行う。各種タイマをそれぞれの時間単位により更新する。
【1339】
ステップS2211では、コマンド設定送信処理を行い、各種のコマンドが第1副制御部1400に送信される。なお、第1副制御部1400に送信する出力予定情報は本実施形態では16ビットで構成しており、ビット15はストローブ情報(オンの場合、データをセットしていることを示す)、ビット11?14はコマンド種別(本実施形態では、基本コマンド、スタートレバー受付コマンド、演出抽選処理に伴う演出コマンド、リール1110乃至1112の回転を開始に伴う回転開始コマンド、ストップボタン1137乃至1139の操作の受け付けに伴う停止ボタン受付コマンド、リール1110乃至1112の停止処理に伴う停止位置情報コマンド、メダル払出処理に伴う払出枚数コマンド及び払出終了コマンド、遊技状態を示すコマンド等)、ビット0?10はコマンドデータ(コマンド種別に対応する所定の情報)で構成されている。第1副制御部1400では、受信した出力予定情報に含まれるコマンド種別により、主制御部1300における遊技制御の変化に応じた演出制御の決定が可能になるとともに、出力予定情報に含まれているコマンドデータの情報に基づいて、演出制御内容を決定することができるようになる。
【1340】
ステップS2213では、外部出力信号設定処理を行う。この外部出力信号設定処理では、RAM1308に記憶している遊技情報を、情報出力回路1334を介してスロットマシン1100とは別体の情報入力回路1652に出力する。
【1341】
ステップS2215では、デバイス監視処理を行う。このデバイス監視処理では、まずはステップS2205において信号状態記憶領域に記憶した各種センサ1318の信号状態を読み出して、メダル投入異常及びメダル払出異常等に関するエラーの有無を監視し、エラーを検出した場合には(図示省略)エラー処理を実行させる。さらに、現在の遊技状態に応じて、メダルセレクタ1170(メダルセレクタ1170内に設けたソレノイドが動作するメダルブロッカ)、各種ランプ1338、各種の7セグメント(SEG)表示器の設定を行う。
【1342】
ステップS2217では、低電圧信号がオンであるか否かを監視する。そして、低電圧信号がオンの場合(電源の遮断を検知した場合)にはステップS2221に進み、低電圧信号がオフの場合(電源の遮断を検知していない場合)にはステップS2219に進む。
【1343】
なお、本実施形態では、電源の遮断を判定する処理(ステップS2217)および電断処理(ステップS2221)を主制御部の割込み制御において実行しているが、必ずしも主制御部の割込み制御で行う必要はなく、低電圧信号の入力に基づいて強制割込みを発生させ、この強制割込みによって電断処理が実行されるように構成してもよい。ただし、このように強制割込みによって実行される電断処理では、本実施形態における電断処理(ステップS2221)の処理に加え、上述したタイマ割込み開始処理(ステップS2201)において実行されるCPU1304の各レジスタの値をスタック領域に一時的に退避する処理も同時に実行する必要がある。
【1344】
ステップS2219では、タイマ割込終了処理を終了する各種処理を行う。このタイマ割込終了処理では、ステップS2201で一時的に退避した各レジスタの値を元の各レジスタに設定等行う。その後、主制御部メイン処理に復帰する。一方、ステップS2221では、復電時に電断時の状態に復帰するための特定の変数やスタックポインタを復帰データとしてRAM1308の所定の領域に退避し、入出力ポートの初期化等の電断処理を行い、その後、主制御部メイン処理に復帰する。
<第1副制御部400の処理>
【1345】
次に、図143を用いて、第1副制御部1400の処理について説明する。なお、同図(a)は、第1副制御部1400のCPU1404が実行するメイン処理のフローチャートであり、同図(b)は、第1副制御部1400のコマンド受信割込処理のフローチャートである。また、同図(c)は、第1副制御部1400のタイマ割込処理のフローチャートである。
【1346】
まず、同図(a)のステップS2301では、各種の初期設定を行う。電源投入が行われると、まずステップS2301で初期化処理が実行される。この初期化処理では、入出力ポートの初期設定や、RAM1408内の記憶領域の初期化処理等を行う。
【1347】
ステップS2303では、タイマ変数が10以上か否かを判定し、タイマ変数が10となるまでこの処理を繰り返し、タイマ変数が10以上となったときには、ステップS2305の処理に移行する。ステップS2305では、タイマ変数に0を代入する。ステップS2307では、コマンド処理を行う。コマンド処理では第1副制御部1400のCPU1404は、主制御部1300からコマンドを受信したか否かを判別する。
【1348】
ステップS2309では、演出制御処理を行う。この演出制御処理では、例えば、ステップS2307で新たなコマンドがあった場合には、このコマンドに対応する処理を行う。この処理には、例えば、演出データをROM1406から読み出す等の処理を行い、演出データの更新が必要な場合には演出データの更新処理を行うことが含まれる。
【1349】
ステップS2311では、ステップ2309の処理結果に基づいて音制御処理を行う。例えば、ステップS2309で読み出した演出データの中に音源IC1418への命令がある場合には、この命令を音源IC1418に出力する。ステップS2313では、ステップ2309の処理結果に基づいてランプ制御処理を行う。例えば、ステップS2309で読み出した演出データの中に各種ランプ1420への命令がある場合には、この命令を駆動回路1422に出力する。
【1350】
ステップS2315では、ステップ2309の処理結果に基づいて第2副制御部500に制御コマンドを送信する設定を行う情報出力処理を行う。例えば、ステップS2309で読み出した演出データの中に第2副制御部1500に送信する制御コマンドがある場合には、この制御コマンドを出力する設定を行い、ステップS2303へ戻る。
【1351】
次に、同図(b)を用いて、第1副制御部1400のコマンド受信割込処理について説明する。このコマンド受信割込処理は、第1副制御部1400が、主制御部1300が出力するストローブ信号を検出した場合に実行する処理である。コマンド受信割込処理のステップS2401では、主制御部1300が出力したコマンドを未処理コマンドとしてRAM1408に設けたコマンド記憶領域に記憶する。
【1352】
次に、同図(c)を用いて、第1副制御部1400のCPU1404によって実行する第1副制御部タイマ割込処理について説明する。第1副制御部1400は、所定の周期(本実施形態では2msに1回)でタイマ割込を発生するハードウェアタイマを備えており、このタイマ割込を契機として、タイマ割込処理を所定の周期で実行する。
【1353】
ステップS2501では、第1副制御部メイン処理におけるステップS2303において説明したRAM1408のタイマ変数記憶領域の値に、1を加算して元のタイマ変数記憶領域に記憶する。従って、ステップS2303において、タイマ変数の値が10以上と判定されるのは20ms毎(2ms×10)となる。ステップS2503では、ステップS2315で設定された第2副制御部1500への制御コマンドの送信や、演出用乱数値の更新処理等を行う。
<第2副制御部500の処理>
【1354】
次に、図144を用いて、第2副制御部1500の処理について説明する。なお、同図(a)は、第2副制御部1500のCPU1504が実行するメイン処理のフローチャートであり、同図(b)は、第2副制御部1500のコマンド受信割込処理のフローチャートである。また、同図(c)は、第2副制御部1500のタイマ割込処理のフローチャートであり、同図(d)は、第2副制御部1500の画像制御処理のフローチャートである。
【1355】
まず、同図(a)のステップS2601では、各種の初期設定を行う。電源投入が行われると、まずステップS2601で初期化処理が実行される。この初期化処理では、入出力ポート初期設定や、RAM1508内の記憶領域の初期化処理等を行う。
【1356】
ステップS2603では、タイマ変数が10以上か否かを判定し、タイマ変数が10となるまでこの処理を繰り返し、タイマ変数が10以上となったときには、ステップS2605の処理に移行する。ステップS2605では、タイマ変数に0を代入する。ステップS2607では、コマンド処理を行う。コマンド処理では第2副制御部1500のCPU1504は、第1副制御部1400のCPU1404からコマンドを受信したか否かを判別する。ステップS2609では、演出制御処理を行う。この演出制御処理では、例えば、ステップS2607で新たなコマンドがあった場合には、このコマンドに対応する処理を行う。この処理には、例えば、演出データをROM1506から読み出す等の処理を行い、演出データの更新が必要な場合には演出データの更新処理を行うことが含まれる。
【1357】
ステップS2611では、ステップS2609の処理結果に基づいてシャッタ制御処理を行う。例えば、ステップS2609で読み出した演出データの中にシャッタ制御の命令がある場合には、この命令に対応するシャッタ制御を行う。ステップS2613では、ステップS2609の処理結果に基づいて画像制御処理を行う。例えば、ステップS2609読み出した演出データの中に画像制御の命令がある場合には、この命令に対応する画像制御を行い(詳細は後述する)、ステップS2603へ戻る。
【1358】
次に、同図(b)を用いて、第2副制御部1500のコマンド受信割込処理について説明する。このコマンド受信割込処理は、第2副制御部1500が、第1副制御部1400が出力するストローブ信号を検出した場合に実行する処理である。コマンド受信割込処理のステップS2701では、第1副制御部1400が出力したコマンドを未処理コマンドとしてRAM1508に設けたコマンド記憶領域に記憶する。
【1359】
次に、同図(c)を用いて、第2副制御部1500のCPU1504によって実行する第2副制御部タイマ割込処理について説明する。第2副制御部1500は、所定の周期(本実施形態では2msに1回)でタイマ割込を発生するハードウェアタイマを備えており、このタイマ割込を契機として、タイマ割込処理を所定の周期で実行する。
【1360】
ステップS2801では、第2副制御部メイン処理におけるステップS2603において説明したRAM1508のタイマ変数記憶領域の値に、1を加算して元のタイマ変数記憶領域に記憶する。従って、ステップS2603において、タイマ変数の値が10以上と判定されるのは20ms毎(2ms×10)となる。ステップS2803では、演出用乱数値の更新処理等を行う。
【1361】
次に、同図(d)を用いて、第2副制御部1500のメイン処理におけるステップS2613の画像制御処理について説明する。同図は、画像制御処理の流れを示すフローチャートを示した図である。
【1362】
ステップS2901では、画像データの転送指示を行う。ここでは、CPU1504は、まず、VRAM1536の表示領域Aと表示領域Bの描画領域の指定をスワップする。これにより、描画領域に指定されていない表示領域に記憶された1フレームの画像が演出画像表示装置1157に表示される。次に、CPU1504は、VDP1534のアトリビュートレジスタに、位置情報等テーブルに基づいてROM座標(ROM1506の転送元アドレス)、VRAM座標(VRAM1536の転送先アドレス)などを設定した後、ROM1506からVRAM1536への画像データの転送開始を指示する命令を設定する。VDP1534は、アトリビュートレジスタに設定された命令に基づいて画像データをROM1506からVRAM1536に転送する。その後、VDP1534は、転送終了割込信号をCPU1504に対して出力する。
【1363】
ステップS2903では、VDP1534からの転送終了割込信号が入力されたか否かを判定し、転送終了割込信号が入力された場合はステップS2905に進み、そうでない場合は転送終了割込信号が入力されるのを待つ。ステップS2905では、演出シナリオ構成テーブルおよびアトリビュートデータなどに基づいて、パラメータ設定を行う。ここでは、CPU1504は、ステップS2901でVRAM1536に転送した画像データに基づいてVRAM1536の表示領域AまたはBに表示画像を形成するために、表示画像を構成する画像データの情報(VRAM1536の座標軸、画像サイズ、VRAM座標(配置座標)など)をVDP1534に指示する。VDP1534はアトリビュートレジスタに格納された命令に基づいてアトリビュートに従ったパラメータ設定を行う。
【1364】
ステップS2907では、描画指示を行う。この描画指示では、CPU1504は、VDP1534に画像の描画開始を指示する。VDP1534は、CPU1504の指示に従ってフレームバッファにおける画像描画を開始する。ステップS2909では、画像の描画終了に基づくVDP1534からの生成終了割込み信号が入力されたか否かを判定し、生成終了割込み信号が入力された場合はステップS2911に進み、そうでない場合は生成終了割込み信号が入力されるのを待つ。ステップS2911では、RAM1508の所定の領域に設定され、何シーンの画像を生成したかをカウントするシーン表示カウンタをインクリメント(+1)して処理を終了する。
【1365】
このようなスロットマシン1100の主制御部1300に対しても、次に説明する本発明の特徴点の一つ、複数、または全てを適用することができる。
【1366】
以上説明したように、本実施形態に係るパチンコ機100(またはスロットマシン1100)は、遊技の進行を中心とした遊技制御を行うCPU(例えば、CPU304(またはCPU1304)を有する主制御部(例えば、主制御部300(または主制御部1300))と、前記主制御部の遊技制御に基づいて遊技の演出制御を行う副制御部(例えば、第1副制御部400、第2副制御部500(または、第1副制御部1400、第2副制御部1500))と、を備えた遊技台であって、前記CPUは、第一レジスタ(例えば、「POP TI命令」、「PUSH TI命令」などのロード命令で使うことができるが、演算命令では使うことができない(演算命令によって直接、自身の値を変化させることができない)Tレジスタ)と第二レジスタ(例えば、Aレジスタ、Fレジスタ、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ、およびこれらの裏レジスタ)を備えるとともに、前記第一レジスタに前記第二レジスタを介してデータを転送する命令(例えば「LD T,A」命令のように、TレジスタにAレジスタを介して直接、データを転送する命令)を備えず、前記第一レジスタに直値(イミディエイト値や即値ともいう)によりデータを設定する命令(例えば、「LD T,F0H」命令)を備えることを特徴とする遊技台である。
【1367】
本実施形態に係るパチンコ機100(またはスロットマシン1100)によれば、第一のレジスタに対して直値でデータを転送するよう構成されているので、セットしているデータを確認し易くなる場合がある。また、第一のレジスタに対して他のレジスタを介してデータを転送できないように構成されているので、第一のレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。また、第一レジスタは直値によるデータの転送のみが認められているため、レジスタを介したデータの転送と直値によるデータの転送の両方が認められている他のレジスタよりも相対的に使用頻度が低くなる。このため、コーディングの見直し作業や、デバッグ(例えば、Tレジスタのトレースなど)の効率を高めることが可能となる。
【1368】
また、本実施形態に係るパチンコ機100(またはスロットマシン1100)は、CPUを有し、遊技制御を行う遊技制御手段を備えた遊技台であって、前記遊技台は、パチンコ機またはスロットマシンであり、前記CPUは、マイクロコンピュータに内蔵され、前記CPUは、少なくとも特定レジスタ(例えば、Tレジスタ)を備え、前記CPUは、前記特定レジスタに値をセットする機能のうち、ロード命令を受けたことに基づいて行われるものとしては、直値により値をセットする機能のみを有する遊技台である。
【1369】
本実施形態に係るパチンコ機100(またはスロットマシン1100)によれば、ロード命令では特定レジスタに対して直値以外にデータをセットできないので、特定レジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができ、安定した遊技制御を行うことができる。また、特定レジスタにセットしているデータをソースコード上で目視で容易に確認することができるため、コーディングの見直し作業やデバッグの効率を高めることができ、従来よりもミスの発生を大幅に減らすことができ、安定した遊技制御を行うことができる。また、特定レジスタは直値によるデータのセットのみが認められているため、レジスタを介したデータのセットと直値によるデータのセットの両方が認められている他のレジスタよりも相対的に使用頻度が低くなる。このため、コーディングの見直し作業やデバッグ(例えば、Tレジスタのトレースなど)の効率を高めることができる場合がある。
【1370】
なお、本発明は、「プログラミングの際にロード命令を用いない」ことを特徴とするものではなく、「CPUは、特定レジスタに値をセットする機能のうち、ロード命令を受けたことに基づいて行われるものとしては、直値により値をセットする機能のみを有する」ため、「プログラミングの際に、特定レジスタについては直値により値をセットするロード命令しか用いることができない」ことを特徴としている。
【1371】
すなわち、本発明では、プログラミングの際に、たとえ特定レジスタに他のレジスタを介して値をセットするロード命令を用いようとしても、CPU自体がそのようなロード命令を実行(理解)する機能を有していないため、通常は、アセンブラ言語を機械語にアセンブルする過程で、CPUが実行(理解)できない命令として排除され、機械語に変換できないように構成される。このため、プログラマーは、プログラミングの際に、たとえ特定レジスタに他のレジスタを介して値をセットするロード命令を用いたくても、用いることができない。なお、本明細書では、アセンブリ言語を使ってプログラミングを行う例を示しているが、機械語を使ってプログラミングを行った場合も事情は同じで、プログラマーは、プログラミングの際に、たとえ特定レジスタに他のレジスタを介して値をセットするロード命令を用いたくても、CPUが実行(理解)できない以上、当該命令を用いることができない。
【1372】
このような理由により、本発明では、上述の顕著な効果を得ることができるが、従来技術では、ロード命令に関して本発明のような制約がないため、プログラマーは、プログラミングの際に、特定レジスタに他のレジスタを介して値をセットするロード命令を自由に用いることができる。「プログラミングの際にロード命令を用いるか否か(記述するか否か)は、プログラムの内容等に基づく必要に応じて当業者が適宜選択し得る事項である」ため、プログラマーは、特定レジスタに他のレジスタを介して値をセットするロード命令を用いるか否かを適宜選択することができるが、従来技術では当該命令を用いることができるという選択肢がある以上、上述の本発明特有の顕著な効果と同等の効果を確実に得ることはできない。
【1373】
また、仮にプログラミングの際には当該命令を用いないというルールを策定したとしても、ルールを守るか守らないかはプログラマー(人間)に依存することであり、本発明のように、特定レジスタに他のレジスタを介して値をセットするロード命令の使用を100%排除できるものでもない。
【1374】
さらに、特定レジスタに他のレジスタを介して値をセットするロード命令を自由に用いることができる環境では、通常は、アセンブラ言語を機械語にアセンブルする過程で、CPUが実行(理解)できる命令として、当該命令を機械語に変換できるように構成される。このため、従来技術においては、プログラマーは、プログラミングの際に、たとえ特定レジスタに他のレジスタを介して値をセットするロード命令を用いないように注意していたとしても、アセンブラの最適化などによって当該命令に相当する機械語にアセンブルされてしまう可能性を100%排除することができない。
【1375】
また、前記第二レジスタは、一の特定レジスタ(例えば、Aレジスタ)と複数の非特定レジスタ(例えば、Fレジスタ、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ、およびこれらの裏レジスタ)で構成されており、前記CPUは、前記非特定レジスタに前記第一レジスタを介してデータを転送する命令(例えば、「LDB,T」命令のように、BレジスタにTレジスタを介してデータを転送する命令)を備えず、前記特定レジスタに前記第一レジスタを介してデータを転送する命令(例えば、「LDA,T」命令)を備えてもよい。
【1376】
このような構成とすれば、第一のレジスタを他のレジスタに比べて使いにくくすることができるため、第一のレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。
【1377】
また、前記第一レジスタおよび前記第二レジスタは、8ビット長の値を記憶可能な8ビットレジスタであり、前記非特定レジスタは、他のレジスタと合わせて16ビット長の演算が可能なレジスタの組み合わせ(例えば、BCレジスタ、DEレジスタ、HLレジスタ)を構成可能なレジスタであるが、前記第一レジスタは、他のレジスタと合わせて前記16ビット長の演算が可能なレジスタの組み合わせを構成不可能なレジスタであってもよい。
【1378】
このような構成とすれば、第一のレジスタを他のレジスタに比べて使いにくくすることができるため、第一のレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。なお、Tレジスタは、他のレジスタと合わせて16ビット長の演算が可能なレジスタの組み合わせを構成不可能であるが、上述の通り、「PUSH TI」命令や、「POP TI」命令では、Iレジスタと合わせて16ビット長の退避・復帰が可能である。換言すれば、Tレジスタは、演算命令のオペランドとしては利用できないが、転送命令のオペランドとしては利用することができるレジスタである。
【1379】
また、前記遊技制御に用いるデータを記憶する記憶手段を備え、前記記憶手段は、前記CPUが実行するプログラムを記憶するROM(例えば、ROM306(またはROM1306))と、前記CPUが前記遊技制御を行う際に用いるデータを一時記憶可能なRAM(例えば、RAM308(またはRAM1308))と、を少なくとも有し、前記CPUは、前記遊技制御を開始する前(例えば、「電源投入後、主制御部300のCPU304がユーザプログラム(制御プログラム)を実行する前」、「システムリセット後、主制御部300のCPU304がユーザプログラム(制御プログラム)を実行する前」、「セキュリティモードに移行した直後」、「セキュリティチェックの結果がOKとなってユーザモードに移行した直後」、「システムリセットによる初期化処理の期間中」など)に、前記RAMの先頭アドレスのうちの上位アドレスを示す特定の値(例えば、F0H)を、(前記プログラムによらずに、)前記第一レジスタに設定してもよい。
【1380】
このような構成とすれば、RAMのデータを読み書きする場合には、第一のレジスタをRAMの上位アドレスを示す値として固定することで、RAMの下位アドレスだけを指定すればよく、プログラムコード量の削減や処理速度の向上を実現することが可能となる上に、第一のレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。
【1381】
また、CPUと、遊技制御プログラムが記憶されたROMと、データを一時記憶可能なRAMと、を内蔵するマイクロコンピュータを備えた遊技台であって、前記遊技台は、パチンコ機またはスロットマシンであり、前記CPUは、少なくとも特定のレジスタを有し、前記RAMの先頭アドレスの上位バイトは、前記ROMの先頭アドレスの上位バイトよりも大きく、前記CPUは、前記特定のレジスタに値をセットする機能のうち、ロード命令を受けたことに基づいて行われるものとしては、直値により値をセットする機能のみを有し、前記CPUは、前記特定のレジスタに値をセットする機能のうち、前記ロード命令を受けたことに基づいて行われるもの以外のものとしては、前記RAMの先頭アドレスの上位バイトと同じ値を初期値としてセットする機能を少なくとも有していてもよい。
【1382】
このような構成とすれば、RAMの上位アドレスを示す値を特定レジスタの初期値としてセットすることで、RAMのデータを読み書きする場合には、RAMの下位アドレスだけを指定すればよく、プログラムコード量の削減や処理速度の向上を実現することができる。しかも、特定レジスタには、初期値以外では、ロード命令による直値だけしかセットすることができないので、特定レジスタの値を不用意に変更することができなくなる結果、アドレスの設定ミスや、RAMへのデータの読み書きミスなどの発生を回避することができ、安定した遊技制御を行うことができる。また、頻繁に演算に用いられることにより、意図しない演算結果が記憶されたレジスタ経由で、間違った値が特定のレジスタにセットされることを防止できるとともに、初期値としてRAMの先頭アドレスの上位バイトと同じ値が特定のレジスタにセットされるので、電源投入後、特定のレジスタを用いてRAMのアクセスを行う場合であれば、特定のレジスタに値をセットする操作をせずに、特定のレジスタを用いてRAMのアクセスを行うことが可能になり、当該「RAMのアクセスを行う」ことについて、特定のレジスタの値が誤っていることから意図しないアドレスの情報をアクセスしてしまうといった不具合の防止効果をさらに高めることができる。
【1383】
また、プログラムを書き換えただけでは遊技を思い通りに制御することができないため、プログラムの書き換えによる不正行為を効果的に防止できる場合がある。特に、CPUのユーザによって設定されたユーザプログラムを実行可能なユーザモードと、該ユーザプログラムを実行不可能な非ユーザモード(例えば、セキュリティモード)と、を備え、該非ユーザモードにおいて前記特定の値を第一レジスタに設定すれば、特定の値が他の値に改ざんされたり、特定の値が読みだされたりするような不正行為を未然に防止できる場合がある。
【1384】
また、前記RAMは、第一エリア(例えば、F000H?F3FFHのワークエリア(または、I/OマップドI/O方式でアクセス可能なエリア))と第二エリア(例えば、7FE0H?7FFFHのスタックエリア(または、メモリマップドI/O方式でアクセス可能なエリア))を有して構成されており、前記特定の値は、前記第一エリアの上位アドレス(F0H)を示す値であってもよい。
【1385】
このような構成とすれば、RAMの第一エリアのデータを読み書きする場合には、第一のレジスタをRAMの第一エリアの上位アドレスを示す値として固定することで、RAMの第一エリアの下位アドレスだけを指定すればよく、プログラムコード量の削減や処理速度の向上を実現することが可能となる上に、第一のレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。また、第一エリアの上位アドレスを固定することによって、第一エリアの読み書きを行うつもりが誤って第二エリアの読み書きを行ってしまうようなミスを未然に防止できる場合がある。
【1386】
また、本実施形態に係るパチンコ機100(またはスロットマシン1100)は、遊技の進行を中心とした遊技制御を行うCPU(例えば、CPU304(またはCPU1304)と、前記遊技制御に用いるデータを記憶する記憶手段と、を備えた遊技台であって、前記記憶手段は、前記CPUが実行するプログラムを記憶するROM(例えば、ROM306(またはROM1306))と、前記CPUが前記遊技制御を行う際に用いるデータを一時記憶可能なRAM(例えば、RAM308(またはRAM1308))と、を少なくとも有し、前記CPUは、前記遊技制御を開始する前(例えば、「電源投入後、主制御部300のCPU304がユーザプログラム(制御プログラム)を実行する前」、「システムリセット後、主制御部300のCPU304がユーザプログラム(制御プログラム)を実行する前」、「セキュリティモードに移行した直後」、「セキュリティチェックの結果がOKとなってユーザモードに移行した直後」、「システムリセットによる初期化処理の期間中」など)に、前記RAMの先頭アドレスのうちの上位アドレスを示す特定の値(例えば、F0H)を、(前記プログラムによらずに、)特定レジスタ(例えば、ROM306とは別体のCPU304に内蔵されたTレジスタ)に設定することを特徴とする遊技台である。
【1387】
本実施形態に係るパチンコ機100(またはスロットマシン1100)によれば、RAMのデータを読み書きする場合には、特定レジスタをRAMの上位アドレスを示す値として固定することで、RAMの下位アドレスだけを指定すればよく、プログラムコード量の削減や処理速度の向上を実現することが可能となる上に、特定レジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。
【1388】
また、本実施形態に係るパチンコ機100(またはスロットマシン1100)は、CPUと、遊技制御プログラムを記憶するROMと、データを一時記憶可能なRAMと、を内蔵するマイクロコンピュータを備えた遊技台であって、前記遊技台は、パチンコ機またはスロットマシンであり、前記CPUは、少なくとも特定レジスタを備え、前記RAMの先頭アドレスの上位バイトは、前記ROMの先頭アドレスの上位バイトよりも大きく、前記遊技制御プログラムによらずに、前記RAMの先頭アドレスの上位バイトと同じ値が、初期値として前記特定レジスタにセットされることを特徴とする遊技台である。
【1389】
本実施形態に係るパチンコ機100(またはスロットマシン1100)によれば、遊技制御プログラム内でRAMのアドレスの上位バイトを記述する必要がなくなるので、不正行為者にプログラムを不正に解析されたとしてもRAMのアドレスが特定困難である上に、遊技制御プログラムを書き換えただけでは遊技を思い通りに制御することができないため、遊技制御プログラムの書き換えによる不正行為を効果的に防止することができる。また、RAMのデータを読み書きする場合には、特定レジスタをRAMの上位アドレスを示す値として固定することで、RAMの下位アドレスだけを指定すればよく、プログラムコード量の削減や処理速度の向上を実現することが可能となる上に、特定レジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる。
【1390】
また、プログラムを書き換えただけでは遊技を思い通りに制御することができないため、プログラムの書き換えによる不正行為を効果的に防止できる場合がある。特に、CPUのユーザによって設定されたユーザプログラムを実行可能なユーザモードと、該ユーザプログラムを実行不可能な非ユーザモード(例えば、セキュリティモード)と、を備え、該非ユーザモードにおいて前記特定の値を第一レジスタに設定すれば、特定の値が他の値に改ざんされたり、特定の値が読みだされたりするような不正行為を未然に防止できる場合がある。
【1391】
また、前記CPUは、非特定レジスタ(例えば、Aレジスタ、Fレジスタ、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ、およびこれらの裏レジスタ)をさらに備えるとともに、前記特定レジスタに前記非特定レジスタを介してデータを転送する命令(例えば「LD T,A」命令のように、TレジスタにAレジスタを介してデータを転送する命令)を備えず、前記特定レジスタに直値によりデータを設定する命令(例えば、「LD T,F0H」命令)を備えてもよい。
【1392】
このような構成とすれば、特定レジスタに対して直値でデータを転送するよう構成されているので、セットしているデータを確認し易くなる場合がある。また、特定レジスタに対して他のレジスタを介してデータを転送できないように構成されているので、特定レジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。また、特定レジスタは直値によるデータの転送のみが認められているため、レジスタを介したデータの転送と直値によるデータの転送の両方が認められている他のレジスタよりも相対的に使用頻度が低くなる。このため、コーディングの見直し作業や、デバッグ(例えば、Tレジスタのトレースなど)の効率を高めることが可能となる。
【1393】
また、前記CPUは、前記特定レジスタに直値によりデータを転送する命令に基づいて、前記特定レジスタに前記特定の値を転送することができるようにしてもよい。
【1394】
このような構成とすれば、ループ処理などで汎用レジスタの空きがなくなった場合に臨時的に特定レジスタを使用した後に、初期値に戻すことができ、利便性を高めることができる。
【1395】
また、前記CPUは、前記RAMから前記特定レジスタにデータを転送する命令に基づいて、前記特定レジスタに前記特定の値を転送(例えば、「POP TI」命令による転送)することができるように構成してもよい。
【1396】
このような構成とすれば、特定レジスタを特定の処理に使用することが可能となり、特定レジスタの利便性を高めることができる場合がある。
【1397】
また、前記RAMは、第一エリア(例えば、F000H?F3FFHのワークエリア(または、I/OマップドI/O方式でアクセス可能なエリア))と第二エリア(例えば、7FE0H?7FFFHのスタックエリア(または、メモリマップドI/O方式でアクセス可能なエリア))を有して構成されており、前記特定の値は、前記第一エリアの上位アドレス(F0H)を示す値であってもよい。
【1398】
このような構成とすれば、RAMの第一エリアのデータを読み書きする場合には、特定レジスタをRAMの第一エリアの上位アドレスを示す値として固定することで、RAMの第一エリアの下位アドレスだけを指定すればよく、プログラムコード量の削減や処理速度の向上を実現することが可能となる上に、特定レジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。また、第一エリアの上位アドレスを固定することによって、第一エリアの読み書きを行うつもりが誤って第二エリアの読み書きを行ってしまうようなミスを未然に防止できる場合がある。
【1399】
また、前記CPUは、所定の割込み条件が成立したことに基づいて実行される割込み処理(例えば、主制御部メイン処理)を実行可能であるとともに、電源投入後、最初の前記割込み処理を実行する前に、前記特定レジスタに前記特定の値が設定されているかを判定する処理(例えば、Tレジチェック処理)を実行してもよい。なお、「電源投入後、最初の前記割込み処理を実行する前」の例としては、他にも、「電源投入後、主制御部メイン処理のステップS105の低電圧状態の確認前」や、「電源投入後、主制御部メイン処理のステップS109の電断前の状態に復帰する否かの確認前」や、「電源投入後、第1副制御部の立ち上りの確認前」などを挙げることができる。また、「判定する処理」の結果に応じて、上記図82に示すように、特定レジスタに特定の値を設定したり、上記図83に示すように、エラー処理を実行してもよい。
【1400】
このような構成とすれば、特定レジスタの値を確認することで遊技台が正常動作をしているか否かを判断できる場合がある。
【1401】
また、本実施形態に係るパチンコ機100(またはスロットマシン1100)は、複数のアドレスそれぞれで示される記憶領域(例えば、ROM領域)に制御プログラムデータを含む複数種類のデータ(例えば、非使用データや参照データ)を記憶したROM(例えば、ROM306)と、前記ROMに記憶された前記制御プログラムデータに基づいて所定の周期毎に実行される割込み処理(例えば、主制御部タイマ割込み処理)を含む複数種類の遊技制御処理を実行するCPU(例えば、CPU304)と、を備え、前記ROMは、1又は複数の前記制御プログラムデータであって、前記CPUが実行する複数種類の命令それぞれに対応した命令データ(オペコード)と、1又は複数の前記制御プログラムデータであって、前記CPUが該命令を実行するために必要な補足データ(オペランド)と、を記憶し、該命令データであって、特定のアドレス(例えば、サブルーチンの先頭のアドレス)を識別可能にする特定識別情報(例えば、サブルーチンの先頭のアドレスをバイナリ形式で表現した情報)の一部である第1の識別情報を示す第1のアドレスデータ(例えば、m)および該第1のアドレスデータと異なる別データ(例えば、EXESUB命令の命令データからmを除いたデータ)で構成され、該特定のアドレスで示される記憶領域に記憶されたデータを前記CPUに読み込ませる特定命令(例えば、EXESUB命令)に対応した特定命令データ(例えば、EXESUB命令の命令データ)と、該補足データであって、該特定識別情報から該第1の識別情報を除いた情報のうちの少なくとも一部である第2の識別情報を示す第2のアドレスデータ(例えば、n)で構成され、前記CPUが該特定命令を実行するために必要な特定補足データと、を前記割込み処理で実行される命令に対応するように(例えば、ROM制御領域のうちタイマ割り込み処理の領域に対応するROM306の記憶領域(タイマ割込み処理に対応したアドレスで示される記憶領域)に)記憶していることを特徴とする遊技台である。
【1402】
本実施形態に係るパチンコ機100(またはスロットマシン1100)によれば、命令データに含まれる第1のアドレスデータmを上位アドレスのデータとして定義することで、アドレス領域に対して命令データをグループ化して対応付けることができ、コーディングミスを抑制することができる場合がある。また、命令データは、呼び出すサブルーチンの先頭アドレスの一部を構成するデータを含んで構成されていることから、移動先のアドレスデータを間違ってしまった場合であっても、間違ってしまったデータが命令データに含まれていれば、制御プログラムの実行が停止される場合があるため、コーディングミスを抑制することができる場合がある。また、従来のサブルーチンを呼び出す制御命令(例えば、CALL命令)を圧縮することができ、ROM制御領域に対応するROM306の記憶領域に記憶されている従来の制御プログラムデータを圧縮することが可能となる。また、制御プログラムの圧縮に起因して従来(例えば、CALL命令)よりもサブルーチンを呼び出す制御プログラムの処理速度を向上させる(ステート数を少なくする)ことができる場合がある。
【1403】
また、本実施形態に係るパチンコ機100(またはスロットマシン1100)は、複数のアドレスそれぞれで示される記憶領域に制御プログラムデータおよび該制御プログラムデータに基づいて参照される参照データを含む複数種類のデータを記憶したROMと、前記ROMに記憶された前記制御プログラムデータおよび前記参照データに基づいて所定の周期毎に実行される割込み処理を含む複数種類の遊技制御処理を実行するCPUと、を備え、前記ROMは、1又は複数の前記制御プログラムデータであって、前記CPUが実行する複数種類の命令それぞれに対応した命令データと、1又は複数の前記制御プログラムデータであって、前記CPUが該命令を実行するために必要な補足データと、を記憶し、前記命令データであって、特定のアドレスを識別可能にする特定識別情報の一部である第1の識別情報を示す第1のアドレスデータおよび該第1のアドレスデータと異なる別データで構成され、該特定のアドレスで示される記憶領域に記憶されたデータを前記CPUに読み込ませる特定命令に対応した特定命令データと、前記補足データであって、前記特定識別情報から前記第1の識別情報を除いた情報である第2の識別情報を示す第2のアドレスデータで構成され、前記CPUが該特定命令を実行するために必要な特定補足データと、を前記割込み処理で実行される命令に対応するように記憶し、前記特定命令の実行により前記CPUが読み込み可能な特定の記憶領域に全ての前記制御プログラムデータを記憶し、全ての制御プログラムデータが記憶された前記特定の記憶領域とは異なる記憶領域に、前記参照データを記憶していることを特徴とする遊技台である。
【1404】
本実施形態に係るパチンコ機100(またはスロットマシン1100)によれば、CPUが特定命令を実行する際に、誤って参照データを読み込んでしまい、当該参照データに基づいて意図しない遊技制御処理を行ってしまうような事態を未然に防止することができ、遊技制御の安定化を図ることができる。また、特定命令は、特定の記憶領域に記憶された全ての制御プログラムデータを読み込み可能に構成されているため、制御プログラムデータにおける呼出元と呼出先の配置(記憶場所)が制限されることがなく、制御プログラムの設計に自由度を持たせることができる。また、遊技台の分野においては、複数種類の遊技台において制御プログラムデータ(例えば、使用頻度の高いサブルーチン)を共用する一方で、各遊技台の仕様や性能に応じて参照データ(例えば、抽選値や演出データ)を異ならせることが一般的であるため、遊技台に特に好適である。
【1405】
また、複数のアドレスそれぞれで示される記憶領域に制御プログラムデータおよび該制御プログラムデータに基づいて参照される参照データを含む複数種類のデータを記憶したROMと、前記ROMに記憶された前記制御プログラムデータおよび前記参照データに基づいて所定の周期毎に実行される割込み処理を含む複数種類の遊技制御処理を実行するCPUと、を備え、前記ROMは、1又は複数の前記制御プログラムデータであって、前記CPUが実行する複数種類の命令それぞれに対応した命令データと、1又は複数の前記制御プログラムデータであって、前記CPUが該命令を実行するために必要な補足データと、を記憶し、前記命令データであって、特定のアドレスを識別可能にする特定識別情報の一部である第1の識別情報を示す第1のアドレスデータおよび該第1のアドレスデータと異なる別データで構成され、該特定のアドレスで示される記憶領域に記憶されたデータを前記CPUに読み込ませる特定命令に対応した特定命令データと、前記補足データであって、前記特定識別情報から前記第1の識別情報を除いた情報である第2の識別情報を示す第2のアドレスデータで構成され、前記CPUが該特定命令を実行するために必要な特定補足データと、を前記割込み処理で実行される命令に対応するように記憶し、前記特定命令の実行により前記CPUが読み込み可能な特定の記憶領域に全ての前記制御プログラムデータを記憶し、全ての制御プログラムデータが記憶された前記特定の記憶領域とは異なる記憶領域に、前記参照データを記憶していてもよい。
【1406】
このような構成とすれば、CPUが特定命令を実行する際に、誤って参照データを読み込んでしまい、当該参照データに基づいて意図しない遊技制御処理を行ってしまうような事態を未然に防止することができ、遊技制御の安定化を図ることができる。また、特定命令は、特定の記憶領域に記憶された全ての制御プログラムデータを読み込み可能に構成されているため、制御プログラムデータにおける呼出元と呼出先の配置(記憶場所)が制限されることがなく、制御プログラムの設計に自由度を持たせることができる。また、遊技台の分野においては、複数種類の遊技台において制御プログラムデータ(例えば、使用頻度の高いサブルーチン)を共用する一方で、各遊技台の仕様や性能に応じて参照データ(例えば、抽選値や演出データ)を異ならせることが一般的であるため、遊技台に特に好適である。
【1407】
また、前記ROMは、少なくとも前記第1の識別情報、前記第2の識別情報の順序に定義することにより前記特定のアドレスを識別可能にする前記特定識別情報(例えば、mn)のうち、前記第1の識別情報を示す前記第1のアドレスデータおよび前記別データで構成される前記特定命令データと、該特定識別情報のうち前記第2の識別情報を示す前記第2のアドレスデータで構成される前記特定補足データと、を前記割込み処理で実行される命令に対応するように記憶してもよい。
【1408】
このような構成とすれば、命令データは、呼び出すサブルーチンの先頭アドレスの一部を構成するデータを含んで構成されていることから、移動先のアドレスデータを間違ってしまった場合であっても、間違ってしまったデータが命令データに含まれていれば、制御プログラムの実行が停止されるため、コーディングミスを抑制することができる場合がある。
【1409】
また、前記ROMは、少なくとも前記第1のアドレスデータの一部である第1の構成データ(例えば、EXESUB命令の命令データのビット7)、前記別データの少なくとも一部である第2の構成データ(例えば、EXESUB命令の命令データのビット6?3)、前記第1のアドレスデータから該第1の構成データを除いた第3の構成データ(例えば、EXESUB命令の命令データのビット2?0)の順序で構成された前記特定命令データをを前記割込み処理で実行される命令に対応するように記憶してもよい。
【1410】
このような構成とすれば、命令データをグループ化しつつも、きめ細かく命令データテーブルの空き領域に割り当てることが可能になる。よって、限られたハードウェア資源(例えば、1バイトで定義可能なパターン(256パターン))を有効利用することができ、命令データの圧縮によるROM制御領域に対応するROMの記憶領域に記憶されている従来の制御プログラムデータの圧縮が可能となる。
【1411】
また、前記第3の構成データ(例えば、EXESUB命令の命令データのビット2?0)が前記第1の構成データ(例えば、EXESUB命令の命令データのビット7)と比較してデータ容量が大きくなる、または、前記第1の構成データが前記第3の構成データと比較してデータ容量が大きくなる(例えば、3ビットに対して1ビット)ように構成された前記特定命令データを前記割込み処理で実行される命令に対応するように記憶してもよい。
【1412】
このような構成とすれば、命令データをグループ化しつつも、きめ細かく命令データテーブルの空き領域に割り当てることが可能になる。よって、限られたハードウェア資源(例えば、1バイトで定義可能なパターン(256パターン))を有効利用することができ、命令データの圧縮によるROM制御領域に対応するROMの記憶領域に記憶されている従来の制御プログラムデータの圧縮が可能となる。
【1413】
また、前記ROMは、前記特定命令の実行により前記CPUが読み込み可能なデータが記憶されている特定の記憶領域(例えば、0000H?0FFFHや0000H?11FFH)に全ての前記制御プログラムデータを記憶するとともに、該特定の記憶領域から前記制御プログラムデータが記憶された制御記憶領域(例えば、ROM制御領域に対応するROM306の記憶領域)を除いた記憶領域(例えば、非使用領域に対応するROM306の記憶領域)の全てに前記遊技制御処理の実行に使用されない非使用データ(例えば、00H)を記憶するようにしてもよい。
【1414】
このような構成とすれば、CPU304が非使用データおよび制御プログラムデータを除くデータ(例えば、参照データや管理データ)を直接命令データとして読み込まれることがないため、補足データのコーディングミスによるCPU304の誤作動を防止できる場合がある。
【1415】
また、前記ROMは、複数のアドレスそれぞれで示される記憶領域に特定のデータ長(例えば、1バイト(8ビット))で表される複数種類のデータを記憶するものであり、前記CPUは、前記ROMの記憶された一のアドレスに示される記憶領域に記憶されたデータを一処理毎に読み込むことで前記割込み処理を含む複数種類の遊技制御処理を実行するものであり、前記ROMは、さらに、前記特定のデータ長の2以上の整数倍である第1のデータ長(例えば、2バイト(16ビット))で表現される前記特定のアドレスを識別可能な前記特定識別情報の一部である前記第1の識別情報を示す前記第1のアドレスデータおよび前記別データで構成される前記特定命令データと、該第1のデータ長よりも前記特定のデータ長の整数倍のデータ長だけ短い第2のデータ長(例えば、1バイト(8ビット))で表現される前記第2のアドレスデータで構成される前記特定補足データと、を前記割込み処理で実行される命令に対応するように記憶してもよい。
【1416】
このような構成とすれば、命令データをグループ化しつつも、きめ細かく命令データテーブルの空き領域に割り当てることが可能になる。よって、限られたハードウェア資源(例えば、1バイトで定義可能なパターン(256パターン))を有効利用することができ、命令データの圧縮によるROM制御領域に対応するROMの記憶領域に記憶されている従来の制御プログラムデータの圧縮が可能となる。
【1417】
また、本実施形態に係るパチンコ機100(またはスロットマシン110)は、複数の制御プログラムデータで構成される制御プログラムを記憶しているROM(例えば、ROM306)と、前記制御プログラムに基づいて遊技制御を実行するCPU(例えば、CPU304)と、を備え、前記ROMは、前記複数の制御プログラムデータのうち、第1のデータ(例えば、EXESUB命令(EXESUBmn)の命令データにおける、ビット6およびビット7)、第2のデータ(例えば、EXESUB命令(EXESUBmn)の命令データにおける、ビット5(α))、第3のデータ(例えば、EXESUB命令(EXESUBmn)の命令データにおける、ビット3およびビット4)、第4のデータ(例えば、EXESUB命令(EXESUBmn)の命令データにおける、ビット0(δ)、ビット1(γ)、ビット2(β))、第5のデータ(例えば、EXESUB命令(EXESUBmn)の命令データにおける、補足データ(n))を含んで構成された特定の制御プログラムデータ(EXESUB命令(EXESUBmn)の命令データを、少なくとも、該第2のデータ、該第3のデータ、該第4のデータ、順番に並べて(例えば、アドレスの若い順番)記憶するものであり、前記CPUは、前記特定の制御プログラムデータを読み込んだ場合に、前記第1および第3のデータを用いて特定される第1の命令(例えば、サブルーチンの先頭のアドレスを呼び出す命令)と、前記第2のデータ、前記第4のデータおよび前記第5のデータを用いて特定される第2の命令(例えば、呼び出すサブルーチンの先頭アドレスを特定する命令)と、で特定される特定命令(例えば、EXESUB命令)を所定周期で実行される割込処理(例えば、タイマ割込み処理)中に実行することを特徴とする遊技台とも言える。
【1418】
なお、前記ROMは、前記第1のデータと前記第2のデータの間、前記第2のデータと前記第3のデータの間および前記第3のデータと前記第4のデータの間のうち少なくともいずれか1つのデータ間に別のデータを含んで構成される前記特定の制御プログラムデータを記憶するものであってもよいが、前記ROMは、前記第1のデータ、前記第2のデータ、前記第3のデータおよび前記第4のデータでのみで構成される前記特定の制御プログラムデータを記憶するものであると、よりアセンブル後の機械語のチェックが簡便になり、コーディングミスを抑制することができる。
【1419】
また、前記第1のデータ、前記第2のデータ、第3のデータおよび前記第4のデータを合わせたデータ長と、前記第4のデータのデータ長を同一のデータ長(例えば、1バイト(8ビット)長)としてもよい。さらに、前記CPUが一度に読み込むデータのデータ長と前記第4のデータのデータ長を同一のデータ長としても良い。
【1420】
また、本実施形態に係るパチンコ機100(またはスロットマシン1100)は、プログラムデータおよび一時的なデータを記憶する記憶手段(例えば、ROM306、RAM308(またはROM1306、RAM1308))と、前記記憶手段に記憶されているデータを用いて遊技の進行を中心とした遊技制御を行う主制御部(例えば、主制御部300(または、主制御部1300))と、前記主制御部の遊技制御に基づいて遊技の演出制御を行う副制御部(例えば、第1副制御部400、第2副制御部500(または、第1副制御部1400、第2副制御部1500))と、を備えた遊技台であって、前記主制御部は、第一のビット長(例えば、8ビット長)からなる複数のレジスタ(例えば、Aレジスタ、Fレジスタ、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ、Tレジスタ)を有し、前記第一のビット長の倍のビット長である第二のビット長(例えば、16ビット長)の演算が可能なレジスタの組み合わせである前記複数のレジスタ(例えば、BCレジスタ、DEレジスタ、HLレジスタ)のうちの第一のレジスタと第二のレジスタ(例えば、HレジスタとLレジスタ)に格納された値によって示される前記記憶手段における第一のアドレス(例えば、1750H)、および該第一のアドレスと連続する第二のアドレス(例えば、1751H)に格納された第一の値(例えば、AEH)と第二の値(例えば、19)を、前記複数のレジスタのうちの第三のレジスタ(例えば、Cレジスタ)と第四のレジスタ(例えば、Aレジスタ)にそれぞれ転送する所定の命令(例えば、「INCTENSOU AC,(HL)」命令)を備え、該所定の命令を前記遊技制御(例えば、特別図柄変動時間抽選処理)において実行し、前記第三のレジスタと前記第四のレジスタは、前記第二のビット長の演算が可能なレジスタの組み合わせ(BCレジスタ、DEレジスタ、HLレジスタ)とは異なることを特徴とする遊技台である。なお、「第一のアドレスと連続する第二のアドレス」は第一のアドレスよりも大きなアドレスに限定されず、第一のアドレスよりも小さなアドレスでもよく、先の例では、第一アドレスが1750H、第二アドレスが174FHでもよい。
【1421】
本実施形態に係るパチンコ機100(またはスロットマシン1100)によれば、1回の命令によって、連続して配置されたアドレスに格納された2つのデータを、レジスタペアを構成しない2種類のレジスタに格納することができるため、プログラム容量を削減することができ、遊技性を向上させるためのプログラムに容量を割り当てることができ、遊技の興趣を高めることが可能となる。また、処理時間を短縮でき、安定した遊技制御を行うことができる場合がある。また、プログラム容量を削減することでプログラムが見やすくなり、コーディングミスやバグの発生を抑制できる場合がある。また、第三のレジスタと第四のレジスタとはレジスタペアではないため、16ビット演算処理を行う場合にプログラムを注意して作成することができ、コーディングミスやバグの発生を抑制できる場合がある。
【1422】
また、本実施形態に係るパチンコ機100(またはスロットマシン1100)は、少なくとも第一から第四のレジスタを備え、上位レジスタおよび下位レジスタからなるレジスタペアを用いた処理を実行可能であるCPUと、遊技制御プログラムを記憶するROMと、を内蔵するマイクロコンピュータを備えた遊技台であって、前記遊技台は、パチンコ機またはスロットマシンであり、前記CPUは、第一の命令と第二の命令を含む複数の命令を実行可能であり、少なくとも前記第一のレジスタと前記第二のレジスタの二つのレジスタの組み合わせは、前記レジスタペアのうちの所定のレジスタペアであり、前記第三のレジスタと前記第四のレジスタの少なくともいずれかは、前記上位レジスタであり、前記第一の命令が実行されたことに基づいて、前記所定のレジスタペアに格納された値によって示される第一のアドレスが示す領域に格納された第一の値が前記第四のレジスタにセットされ、該第一のアドレスと連続する第二のアドレスが示す領域に格納された第二の値が前記第三のレジスタにセットされ、該所定のレジスタペアの値が該第二のアドレスと連続するアドレスを示す値になり、前記第二の命令が実行されたことに基づいて、前記所定のレジスタペアに格納された値によって示される第一のアドレスと連続する第二のアドレスが示す領域に格納された第二の値が前記第四のレジスタにセットされ、該第二のアドレスと連続する第三のアドレスが示す領域に格納された第三の値が前記第三のレジスタにセットされ、該所定のレジスタペアの値が該第三のアドレスを示す値になり、前記CPUは、前記レジスタペアとは異なる前記第三のレジスタと前記第四のレジスタの二つのレジスタの組み合わせに前記ROMに格納された値を一命令でセットすることが可能であるとともに、前記所定のレジスタペアの値を変化させる所定の機能としては、前記第一の命令を受けたことに基づいて値をセットする第一の機能と前記第二の命令を受けたことに基づいて値をセットする第二の機能の二つのみを有することを特徴とする遊技台である。
【1423】
本実施形態に係るパチンコ機100(またはスロットマシン1100)によれば、レジスタペアよりも汎用性の低い第三のレジスタと第四のレジスタの二つの組み合わせに値を一命令でセットする機能を限定したため、遊技者の利益に係る値を不正に改ざんする不正行為を不正者が行い難くすることができる。また、第一の命令と第二の命令を前後の処理に応じて使い分けることができ、遊技制御プログラムの容量を削減することができる。また、第一の命令と第二の命令とを従来の命令で構成した場合と比較して遊技制御プログラムの容量を削減でき、遊技性を向上させるためのプログラムに容量を割り当てることができ、遊技の興趣を高めることができる。また、第三のレジスタと第四のレジスタはレジスタペアよりも汎用性が低いため、プログラムを注意して作成することができ、コーディングミスやバグの発生を抑制できる。また、命令の実行中に割込み処理が発生し、割込み処理によって命令実行途中のレジスタの値が意図しない値に書き換えられてしまったり、命令の実行が妨げられて処理が遅延してしまうといったことがなく、安定した遊技制御を行うことができる場合がある。
【1424】
また、少なくとも第一から第四のレジスタを備え、上位レジスタおよび下位レジスタからなるレジスタペアを用いた処理を実行可能であるCPUと、遊技制御プログラムを記憶するROMと、を内蔵するマイクロコンピュータを備えた遊技台であって、前記遊技台は、パチンコ機またはスロットマシンであり、前記CPUは、第一の命令と第二の命令を含む複数の命令を実行可能であり、少なくとも前記第一のレジスタと前記第二のレジスタの二つのレジスタの組み合わせは、前記レジスタペアのうちの所定のレジスタペアであり、前記第三のレジスタと前記第四のレジスタの少なくともいずれかは、前記上位レジスタであり、前記第一の命令が実行されたことに基づいて、前記所定のレジスタペアに格納された値によって示される第一のアドレスが示す領域に格納された第一の値が前記第四のレジスタにセットされ、該第一のアドレスと連続する第二のアドレスが示す領域に格納された第二の値が前記第三のレジスタにセットされ、該所定のレジスタペアの値が該第二のアドレスと連続するアドレスを示す値になり、前記第二の命令が実行されたことに基づいて、前記所定のレジスタペアに格納された値によって示される第一のアドレスと連続する第二のアドレスが示す領域に格納された第二の値が前記第四のレジスタにセットされ、該第二のアドレスと連続する第三のアドレスが示す領域に格納された第三の値が前記第三のレジスタにセットされ、該所定のレジスタペアの値が該第三のアドレスを示す値になり、前記CPUは、前記レジスタペアとは異なる前記第三のレジスタと前記第四のレジスタの二つのレジスタの組み合わせに前記ROMに格納された値を一命令でセットすることが可能であるとともに、前記所定のレジスタペアの値を変化させる所定の機能としては、前記第一の命令を受けたことに基づいて値をセットする第一の機能と前記第二の命令を受けたことに基づいて値をセットする第二の機能の二つを少なくとも有し、前記CPUは、少なくとも特定レジスタを備え、前記CPUは、前記特定レジスタに値をセットする機能のうち、ロード命令を受けたことに基づいて行われるものとしては、直値により値をセットする機能のみを有していてもよい。
【1425】
このような構成とすれば、レジスタペアよりも汎用性の低い第三のレジスタと第四のレジスタの二つの組み合わせに値を一命令でセットする機能を限定したため、遊技者の利益に係る値を不正に改ざんする不正行為を不正者が行い難くすることができる。また、第一の命令と第二の命令を前後の処理に応じて使い分けることができ、遊技制御プログラムの容量を削減することができる。また、第一の命令と第二の命令とを従来の命令で構成した場合と比較して遊技制御プログラムの容量を削減でき、遊技性を向上させるためのプログラムに容量を割り当てることができ、遊技の興趣を高めることができる。また、第三のレジスタと第四のレジスタはレジスタペアよりも汎用性が低いため、プログラムを注意して作成することができ、コーディングミスやバグの発生を抑制できる。また、命令の実行中に割込み処理が発生し、割込み処理によって命令実行途中のレジスタの値が意図しない値に書き換えられてしまったり、命令の実行が妨げられて処理が遅延してしまうといったことがなく、安定した遊技制御を行うことができる。
【1426】
また、前記第三のレジスタと前記第四のレジスタの少なくとも何れかは、前記第二のビット長の演算が可能なレジスタの組み合わせを構成してもよい(例えば、Bレジスタは、16ビット長の演算が可能なレジスタペアであるBCレジスタを構成する)。
【1427】
このような構成とすれば、16ビット演算を行うレジスタペアの一方のレジスタの値を固定にすることができ、所定の命令前に設定した一方のレジスタの値を退避することなく所定の命令後の処理で使用することができプログラム容量を削減することができる場合がある。また、16ビット演算処理を行う場合にプログラムを注意して作成することができ、コーディングミスやバグの発生を抑えることができる場合がある。
【1428】
また、前記第三のレジスタと前記第四のレジスタの少なくとも何れかは、前記第二のビット長の演算が可能なレジスタの組み合わせの上位レジスタであってもよい(例えば、Bレジスタは、16ビット長の演算が可能なレジスタペアであるBCレジスタの上位レジスタである)。
【1429】
このような構成とすれば、16ビット演算を行うレジスタペアの上位8ビットの値を変更することができ、レジスタペアで示されるアドレスの上位を変更して所定の命令後の処理で使用することができる場合がある。例えば、第三のレジスタと第四のレジスタの各々を違う処理に利用(例えば、一方をINCTENSOU命令で利用し、他方をループ処理の回数をカウントするためのカウンタとして利用)することができ、数の限られたレジスタを有効に活用することができる。また、16ビット演算処理を行う場合にプログラムを注意して作成することができ、コーディングミスやバグの発生を抑えることができる場合がある。
【1430】
また、前記所定の命令は、前記第一のレジスタと前記第二のレジスタのうちの下位レジスタの値に所定値加算する処理(例えば、HLレジスタに2を加算する処理)を含んでいてもよい。
【1431】
このような構成とすれば、所定の命令終了後に所定のアドレスから所定値加算されたアドレスの値をレジスタに設定した状態で次の処理を行うことができ、例えば、アドレスを1加算する命令を所定値回実行するようなプログラムに比べ、プログラム容量を削減できる場合がある。
【1432】
また、前記第一のアドレスは、前記所定の命令を実行する前の前記第一のレジスタと前記第二のレジスタに格納された値によって示されるアドレス(例えば、174FH)の次のアドレス(例えば、1750H)であってもよい。
【1433】
このような構成とすれば、繰り返し処理の際に最初にアドレスを指定することができ、繰り返し処理を抜けた際には所定の命令前のアドレスから所定値加算されたアドレスの値をレジスタに設定した状態で次の処理を行うことができる。特に、2種類のデータを交互に記憶したデータテーブルを利用する場合には、データテーブルから所望のデータを素早く読みだすことが可能となる。
【1434】
また、本実施形態に係るパチンコ機100(またはスロットマシン1100)は、プログラムデータおよび一時的なデータを記憶する記憶手段(例えば、ROM306、RAM308(またはROM1306、RAM1308))と、前記記憶手段に記憶されているデータを用いて遊技の進行を中心とした遊技制御を行う主制御部(例えば、主制御部300(または、主制御部1300))と、前記主制御部の遊技制御に基づいて遊技の演出制御を行う副制御部(例えば、第1副制御部400、第2副制御部500(または、第1副制御部1400、第2副制御部1500))と、を備えた遊技台であって、前記主制御部は、第一のビット長(例えば、8ビット長)の値を記憶可能な第一のレジスタ(例えば、Cレジスタ)および前記第一のビット長の整数倍の第二のビット長(例えば、16ビット長)の値を記憶可能な第二のレジスタ(例えば、HLレジスタ)を含む複数のレジスタ(例えば、BCレジスタ、DEレジスタ、HLレジスタ)を有し、前記第二のレジスタの値に前記第一のレジスタの値を加算して前記第二のレジスタに格納する所定の命令(例えば、「ADDTWOONE HL,C」命令)を備え、該所定の命令を前記遊技制御(例えば、特別図柄変動時間抽選処理)において実行することを特徴とする遊技台である。なお、第二のレジスタは、第一のビット長の整数倍の第二のビット長の値を記憶可能であればよく、例えば、第一のレジスタのビット長が4ビットである場合には4の倍数(4、8、12、…)をビット長とするレジスタでもよく、第一のレジスタのビット長が16ビットである場合には16の倍数(16、32、64、…)をビット長とするレジスタでもよい。
【1435】
本実施形態に係るパチンコ機100(またはスロットマシン1100)によれば、桁上がり処理を別途行う必要がないため、プログラム容量を削減することができ、遊技性を向上させるためのプログラムに容量を割り当てることができ、遊技の興趣を高めることが可能となる。また、処理時間を短縮でき、安定した遊技制御を行うことができる場合がある。また、プログラム容量を削減することでプログラムが見やすくなり、コーディングミスやバグの発生を抑制できる場合がある。さらに、ビット長が異なるレジスタ同士の加算演算を行うことができるため、例えば、従来は16ビット長のレジスタペアを2つ使用して行っていた加算演算を、16ビット長のレジスタペアと8ビット長のレジスタで行うことができる場合があり、数の限られたレジスタを有効に活用することができる。
【1436】
また、本実施形態に係るパチンコ機100(またはスロットマシン1100)は、8ビット長の値を記憶可能な第一から第三のレジスタを少なくとも備えるCPUを備え、前記CPUは、16ビット長の値を記憶可能な第四のレジスタを少なくとも備え、前記CPUは、前記第一のレジスタおよび前記第二のレジスタからなるレジスタペアを用いた処理を実行可能であり、前記CPUを内蔵するマイクロコンピュータを備えた遊技台であって、前記遊技台は、パチンコ機またはスロットマシンであり、前記CPUは、前記第四のレジスタの値に前記第三のレジスタの値を加算して該第四のレジスタに加算結果をセットすることが可能な第一の命令を実行可能であり、前記第一の命令は、前記レジスタペアの値に前記第三のレジスタの値を加算して該レジスタペアに加算結果をセットすることが可能であり、前記CPUは、前記レジスタペアの値から前記第三のレジスタの値を減算して該レジスタペアに減算結果をセットする第二の命令を実行可能であり、前記CPUにおける前記16ビット長の前記レジスタペアに対して前記8ビット長の値を加減算する機能は、前記第一の命令および前記第二の命令の両方によって実現されるが、前記CPUにおける前記16ビット長の前記第四のレジスタに対して前記8ビット長の値を加減算する機能は、前記第一の命令によってのみ実現されることを特徴とする遊技台である。
【1437】
本実施形態に係るパチンコ機100(またはスロットマシン1100)によれば、ビット長が異なるレジスタの値同士の加減算を行うことができるため、例えば、従来は16ビット長のレジスタペアを2つ使用して行っていた加減算を、16ビット長のレジスタペアと8ビット長のレジスタで行うことができる場合があり、数の限られたレジスタを有効に活用することができる。しかも、レジスタの値同士で加減算を行うため、RAMなどを用いた場合に比べて加減算の処理時間を短縮でき、安定した遊技制御を行うことができる。また、第四のレジスタを用いた加減算を第一の命令のみで実行可能に構成することにより、遊技者の利益に係る値を不正に改ざんする不正行為(例えば、レジスタペアに対して有利な数値を加算するような命令を不正に埋め込むような行為)を不正者が行い難くすることができる。また、第一の命令と第二の命令とを従来の命令で構成した場合と比較して遊技制御プログラムの容量を削減できるため、遊技性を向上させるためのプログラムに容量を割り当てることができ、遊技の興趣を高めることができる場合がある。
【1438】
また、少なくとも第一から第四のレジスタを備え、上位レジスタおよび下位レジスタからなるレジスタペアを用いた処理を実行可能であるCPUと、遊技制御プログラムを記憶するROMと、を内蔵するマイクロコンピュータを備えた遊技台であって、前記遊技台は、パチンコ機またはスロットマシンであり、前記CPUは、第一の命令と第二の命令を含む複数の命令を実行可能であり、少なくとも前記第一のレジスタと前記第二のレジスタの二つのレジスタの組み合わせは、前記レジスタペアのうちの所定のレジスタペアであり、前記第三のレジスタと前記第四のレジスタの少なくともいずれかは、前記上位レジスタであり、前記第一の命令が実行されたことに基づいて、前記所定のレジスタペアに格納された値によって示される第一のアドレスが示す領域に格納された第一の値が前記第四のレジスタにセットされ、該第一のアドレスと連続する第二のアドレスが示す領域に格納された第二の値が前記第三のレジスタにセットされ、該所定のレジスタペアの値が該第二のアドレスと連続するアドレスを示す値になり、前記第二の命令が実行されたことに基づいて、前記所定のレジスタペアに格納された値によって示される第一のアドレスと連続する第二のアドレスが示す領域に格納された第二の値が前記第四のレジスタにセットされ、該第二のアドレスと連続する第三のアドレスが示す領域に格納された第三の値が前記第三のレジスタにセットされ、該所定のレジスタペアの値が該第三のアドレスを示す値になり、前記CPUは、前記レジスタペアとは異なる前記第三のレジスタと前記第四のレジスタの二つのレジスタの組み合わせに前記ROMに格納された値を一命令でセットすることが可能であるとともに、前記所定のレジスタペアの値を変化させる所定の機能としては、前記第一の命令を受けたことに基づいて値をセットする第一の機能と前記第二の命令を受けたことに基づいて値をセットする第二の機能の二つを少なくとも有し、前記CPUは、少なくとも特定レジスタを備え、前記CPUは、前記特定レジスタに値をセットする機能のうち、ロード命令を受けたことに基づいて行われるものとしては、直値により値をセットする機能のみを有していてもよい。
【1439】
このような構成とすれば、レジスタペアよりも汎用性の低い第三のレジスタと第四のレジスタの二つの組み合わせに値を一命令でセットする機能を限定したため、遊技者の利益に係る値を不正に改ざんする不正行為を不正者が行い難くすることができる。また、第一の命令と第二の命令を前後の処理に応じて使い分けることができ、遊技制御プログラムの容量を削減することができる。また、第一の命令と第二の命令とを従来の命令で構成した場合と比較して遊技制御プログラムの容量を削減でき、遊技性を向上させるためのプログラムに容量を割り当てることができ、遊技の興趣を高めることができる。また、第三のレジスタと第四のレジスタはレジスタペアよりも汎用性が低いため、プログラムを注意して作成することができ、コーディングミスやバグの発生を抑制できる。また、命令の実行中に割込み処理が発生し、割込み処理によって命令実行途中のレジスタの値が意図しない値に書き換えられてしまったり、命令の実行が妨げられて処理が遅延してしまうといったことがなく、安定した遊技制御を行うことができる。
【1440】
また、前記第一のレジスタ(例えば、Cレジスタ)は、第二のビット長の演算が可能な
【1441】
レジスタ(例えば、BCレジスタ)の組み合わせの下位レジスタであってもよい。
【1442】
このような構成とすれば、レジスタペアの上位8ビットの値を固定にすることができ、16ビット演算処理を行う場合にプログラムを注意して作成することができ、コーディングミスやバグの発生を抑制できる場合がある。また、レジスタペアの上位レジスタと下位レジスタの各々を違う処理に利用(例えば、一方をADDTWOONE命令で利用し、他方をループ処理の回数をカウントするためのカウンタとして利用)することができ、数の限られたレジスタを有効に活用することができる。
【1443】
また、前記主制御部は、前記第二のレジスタ(例えば、HLレジスタ)に格納された値によって示される所定のアドレスに基づく連続する2つのアドレスに格納された第一の値と第二の値を、前記複数のレジスタのうちの前記第一のレジスタ(例えば、Cレジスタ)と第三のレジスタ(例えば、Bレジスタ)にそれぞれ転送する所定の第二の命令(例えば、「INCTENSOU BC,(HL)」命令)を備え、該所定の第二の命令を実行した後、前記所定の命令を行ってもよい。
【1444】
このような構成とすれば、連続する2つのアドレスに格納された値の何れかを第一レジスタに加算することで、所定のアドレスに関連したアドレスを示す値を第一レジスタに設定した状態で次の処理を行うことができ、プログラム容量を削減できる場合がある。
【1445】
また、前記主制御部は、前記所定の第二の命令を実行した後に所定の判定処理(例えば、上記ステップS1110?S1111に示すような、Bレジスタ(第三のレジスタ)から特定の値(RAMの所定記憶領域に記憶された値など)を減算してキャリーが発生するか否かを判定する処理)を行い、該所定の判定処理の結果が所定の値のときに(例えば、キャリーが発生したときに)前記所定の命令を行ってもよい。
【1446】
このような構成とすれば、所定の判定処理の結果が所定の値のときに、所定のアドレスに関連したアドレスを示す値を第一レジスタに設定した状態で次の処理を行うことができ、プログラム容量を削減できる場合がある。
【1447】
また、前記主制御部は、前記所定の命令を行った後、再度前記所定の第二の命令と前記所定の判定処理を実行してもよい(例えば、上記ステップS1109でINCTENSOU命令を実行し、上記ステップS1112でADDTWOONE命令を実行した後に、上記ステップS1114でINCTENSOU命令を再度実行し、上記ステップS1116でBレジスタから特定の値を減算してキャリーが発生するか否かを判定する)。
【1448】
このような構成とすれば、例えば、2段階抽選の2回目のテーブルアドレスを設定することができ、2段階抽選のプログラムを見やすく作ることができ、コーディングミスやバグの発生を抑制できる場合がある。
【1449】
また、本実施形態に係るパチンコ機100(またはスロットマシン1100)は、遊技制御を行うCPUを有する主制御部(例えば、主制御部300(または、主制御部1300))と、前記主制御部の遊技制御に基づいて遊技の演出制御を行う副制御部(例えば、第1副制御部400、第2副制御部500(または、第1副制御部1400、第2副制御部1500))と、を備えた遊技台であって、前記CPUは、所定のフラグ(例えば、Zフラグ、SZフラグ)を備え、前記主制御部は、第一の処理と第二の処理の間に実行される処理であって、前記第一の処理において第一の内容であった前記フラグの内容を、前記第二の処理の開始前に第二の内容に変化させる第三の処理を実行し、前記第二の処理は、前記第三の処理の実行結果が所定の結果である場合に行われる処理であって、前記第二の内容に変化した前記フラグを参照しない処理(例えば、CPRT命令、CPJR命令)であることを特徴とする遊技台である。
【1450】
本実施形態に係るパチンコ機100(またはスロットマシン1100)によれば、フラグの内容の変化とプログラムの実行の流れの関連性を無くすことができ、プログラムの解析を困難とし、不正なプログラムの改ざんを未然に防止できる場合がある。このため、安定した遊技制御をおこなうことができ、遊技の公平性を担保することができる場合がある。
【1451】
また、前記第三の処理は、前記第一の内容であった前記フラグを参照しない処理であってもよい。
【1452】
このような構成とすれば、フラグの内容の変化とプログラムの実行の流れの関連性を無くすことができ、プログラムの解析を困難とし、不正なプログラムの改ざんを未然に防止できる場合がある。このため、安定した遊技制御をおこなうことができ、遊技の公平性を担保することができる場合がある。
【1453】
また、本実施形態に係るパチンコ機100(またはスロットマシン1100)は、遊技制御を行うCPUを有する主制御部(例えば、主制御部300(または、主制御部1300))と、前記主制御部の遊技制御に基づいて遊技の演出制御を行う副制御部(例えば、第1副制御部400、第2副制御部500(または、第1副制御部1400、第2副制御部1500))と、を備えた遊技台であって、前記CPUは、記憶手段(例えば、ROM306、RAM308、レジスタ、プログラムカウンタ)の所定領域へのアクセスが規制された命令(例えば、RES命令、RST命令)を備え、前記命令を前記遊技制御において実行することを特徴とする遊技台である。
【1454】
本実施形態に係るパチンコ機100(またはスロットマシン1100)によれば、所定領域のアクセスを禁止することができるため、所定領域を保護することができ、所定領域の内容が予期しない数値に変化して不具合を起こすような事態を未然に防止できる場合がある。
【1455】
また、前記命令は、前記所定領域を除いた領域のうち予め定められた特定領域へのアクセスが可能な命令であってもよい。
【1456】
このような構成とすれば、所定領域のアクセスを禁止しつつ、同時に特定領域の内容を読み書きすることができるため、所定領域の内容を保護することができるとともに、プログラム設計の自由度を低下させることがない。
【1457】
また、前記CPUは、前記所定領域へのアクセスが可能な命令をさらに備えてもよい。このような構成とすれば、所定領域のアクセスを禁止しつつ、同時に特定領域の内容を読み書きすることができるため、所定領域の内容を保護することができるとともに、プログラム設計の自由度を低下させることがない。
【1458】
また、前記命令を、前記記憶手段の所定領域にジャンプすることができないように構成すれば、不正プログラムを組み込んでユーザプログラムの先頭アドレスにジャンプさせる(ユーザプログラムを先頭アドレスから開始させて不正に初期状態とする)ような行為を未然に防止できる場合がある。
【1459】
なお、本発明に係る遊技台は、上述のパチンコ機100やスロットマシン1100に限定されない。したがって、例えば、上記実施形態では、リトルエンディアンのCPUの例を示したが、ビッグエンディアンのCPUに適用することもできる。また、8ビットCPUに限定されず、16ビットCPU、32ビットCPU等にも適用できる。また、命令の名称は上記実施形態で示した名称に限定されるものではない。
【1460】
また、主制御部300のCPU304(または、主制御部1300のCPU1304)に適用した例を示したが、他の制御部のCPUに適用してもよい。また、記憶手段は、ROM、RAMに限定されず、他の記憶手段を適用してもよい。
【1461】
また、図145(a)に示す、「紙幣投入口20002に紙幣を投入し、ベット20004およびスタート20006操作に基づいて抽選を実行し、抽選結果を抽選結果表示装置20008で表示し、当選時には特典コイン数を残クレジット数に加算し、キャッシュアウト20009が選択された場合には、レシート発行機20010から残クレジット数に対応するコードが記載されたレシートを発行するカジノマシン20000」に本発明を適用してもよい。また、アレンジボール遊技機や、じゃん球遊技機、スマートボール等に適当してもよい。
【1462】
また、同図(b)に示すように、本発明の構成を含む制御部を備えている携帯電話機20100、同図(c)に示すように、本発明の構成を含む制御部を備えているポータブルゲーム機20200、本発明の構成を含む制御部を備えている家庭用テレビゲーム機20300、に本発明を適用してもよい。
【1463】
より具体的には、同図(b)における携帯電話機20100は、遊技者によって操作される操作部と、ゲームに関するデータを携帯電話回線を通して取得するデータ取得部と、取得したゲームに関するデータを記憶する記憶部と、記憶部に記憶したデータと操作部の操作とに基づいてゲームの制御を行う、本発明の構成を含む制御部と、を備えている。
【1464】
また、同図(c)におけるポータブルゲーム機20200は、遊技者によって操作される操作部と、ゲームに関するデータを所定の記憶媒体(DVD等)から取得するデータ取得部と、取得したゲームに関するデータを記憶する記憶部と、記憶部に記憶したデータと操作部の操作とに基づいてゲームの制御を行う、本発明の構成を含む制御部と、を備えている。
【1465】
また、同図(c)における家庭用テレビゲーム機20300は、遊技者によって操作される操作部と、ゲームに関するデータを所定の記憶媒体(DVD等)から取得するデータ取得部と、取得したゲームに関するデータを記憶する記憶部と、記憶部に記憶したデータと操作部の操作とに基づいてゲームの制御を行う、本発明の構成を含む制御部を備えている。
【1466】
さらには、同図(d)に示すように、本発明の構成を含む制御部を備えるデータサーバ20400に適用してもよい。このデータサーバ20400からインターネット回線を介して同図(d)に示す家庭用テレビゲーム機20300に本発明の構成を含むプログラムコードをダウンロードするような場合がある。また、パチンコ機等の実機の動作を家庭用ゲーム機用として擬似的に実行するようなゲームプログラムにおいても、本発明を適用することができる。
【1467】
また、本発明に係る遊技台は、封入式遊技機に適用することもできる。また、主制御部、第1副制御部、および第2副制御部をワンチップで構成してもよいし、主制御部と第1副制御部で双方向の通信が可能に構成してもよい。また、主制御部と第1副制御部で双方向の通信を可能とする一方で、第1副制御部から第2副制御部への通信は一方向の通信としてもよい。
<実施形態4>
【1468】
次に、図面を用いて、本発明の実施形態4に係るパチンコ機について詳細に説明する。
<主制御部の基本回路の構成例>
【1469】
次に、図146を用いて、主制御部300の基本回路302の構成例について説明する。同図は、マイクロプロセッサ3000を用いた場合の基本回路302の一構成例を示す図である。
【1470】
図146に示すマイクロプロセッサ3000には、本発明にいう電気的制御手段の一例に相当し、図75に示す基本回路302の機能と、図75に示す乱数生成回路318の機能を有するものである。なお、図146では、図75に示す構成に対応する部分を、図75で用いた符号と同じ符号を付して説明する。
【1471】
図146に示すマイクロプロセッサ3000には、CPU304、ROM(内蔵ROM)306、RAM(内蔵RAM)308、外部バス制御回路3110、パラレル入力ポート3102、アドレスデコード回路3103、タイマ回路311、カウンタ回路312、リセット制御回路314に加え、割込み制御回路3100、クロック回路3200、乱数生成回路318が備えられており、これら全てが内部バス3300を介して互いに接続されている。内蔵ROM306は、記憶部の一例に相当する。なお、外部バス制御回路3110、パラレル入力ポート3102、アドレスデコード回路3103の3つが、図75のI/O310に相当するものである。
【1472】
以下、上記説明した各部の詳細について説明する。まず、CPU304、ROM306、RAM308については、図75にて説明した通りである。外部バス制御回路3110は、IOリクエスト端子(XIORQ端子)、メモリリクエスト端子(XMREQ端子)、リード信号端子(XRD端子)、ライト信号端子(XWR端子)、16ビット幅のアドレス出力端子(A0端子?A15端子)、および8ビット幅の入出力端子であるデータ入出力端子(D0端子?D7端子)を有する。本実施形態では、このうちデータ入出力端子(D0端子?D7端子)は、図75に示す各駆動回路324,326,330,334へのデータ出力と、各周辺制御回路からのデータ入力に用いられている。このデータ入出力端子(D0端子?D7端子)によるデータの入出力先は、アドレス出力端子(A0端子?A15端子)から出力されるアドレス信号、およびアドレスデコード回路3103から出力されるチップセレクト信号を用いて切り替えられる。
【1473】
パラレル入力ポート3102は、4つの入力端子(P0端子?P3端子)を有する。これらの入力端子(P0端子?P3端子)は、図75に示すセンサ回路322に接続されており、センサ回路322からの信号の入力に用いられている。本実施形態では、第1特図始動口230への入球を検出する球検出センサからの信号がP0端子に入力され、第2特図始動口232への入球を検出する球検出センサからの信号がP1端子に入力され、普図始動口228への入球を検出する球検出センサからの信号がP2端子に入力される。また、センサ回路322からの信号は、乱数生成回路318が生成する乱数をCPU304に取得させるためのラッチ信号として、乱数生成回路318に出力する。この動作については後述する。
【1474】
アドレスデコード回路3103は、14の出力端子(XCS0端子?XCS13端子)を有する。この出力端子(XCS0端子?XCS13端子)は、マイクロプロセッサ3000の外部にある周辺制御回路に接続されており、外部バス制御回路3110のデータ入出力端子(D0端子?D7端子)から出力されるデータの送信先を切り替えるためのチップセレクト信号等の出力に用いられている。
【1475】
タイマ回路311は、時間の計測に用いられる。なお、タイマ回路311は設定された計測時間を過ぎると、タイムアウト信号をカウンタ回路312に出力する。一方、カウンタ回路312は、各種信号の立ち上がり(あるいは立ち下がり)の回数の計測に用いられる。このカウンタ回路で計測される信号には、マイクロプロセッサ3000のシステムクロックの他、上記タイマ回路からのタイムアウト信号、メモリの読み書き信号、メモリリクエスト信号、外部入出力の信号、割込みに対する応答信号等も計測することができる。
【1476】
リセット制御回路314は、システムリセット入力端子(XSRST端子)と、リセット出力端子(XRSTO端子)の2つの端子を有する。このシステムリセット入力端子(XSRST端子)は電圧監視回路338に接続されている。このシステムリセット入力端子(XSRST端子)からシステムリセット信号(例えば一定時間Lレベルの信号)が入力されると、リセット制御回路314は、マイクロプロセッサ3000の内部の回路に対してこのシステムリセット信号を出力するとともに、マイクロプロセッサ3000の外部にある周辺制御回路に対してリセット出力端子(XRSTO端子)からリセット信号(例えば、LレベルからHレベルへの立ち上がり信号)が出力される。この場合、マイクロプロセッサ3000では、システムリセットと称する処理が実行され、各回路が初期化される。このシステムリセットが実行される一例として、電源投入時が挙げられる。なお、このシステムリセットについては後述する。
【1477】
また、リセット制御回路314は、ウォッチドッグタイマ(WDT)3141(復帰指示手段の一例に相当)、および指定エリア外走行禁止回路3142を備えている。WDT3141がタイムアウトになった場合や、CPU304が所定の範囲以外のアドレスを参照(指定エリア外走行)した場合には、リセット制御回路314は、マイクロプロセッサ3000の内部の回路に対してシステムリセット信号およびユーザリセット信号のいずれかを出力する。なお、システムリセット信号およびユーザリセット信号のどちらを出力するかは、ROM306内のプログラム管理エリア(詳細は後述)の設定に従う。また、マイクロプロセッサ3000の外部にある周辺制御回路に対しては、リセット出力端子(XRSTO端子)からリセット信号が出力される。
【1478】
マイクロプロセッサ3000では、設定によって上記のシステムリセットか、あるいはユーザリセットと称する処理のいずれかを実行させることができる。なお、ユーザリセットでは、各回路が必要に応じて初期化される。このユーザリセットについては後述する。
【1479】
上記指定エリア外走行は、プログラムが想定外の動作をしていることを意味する。この場合、CPU304が本来プログラムとして扱われるはずのないコードにより動作することになる。このような状況は、プログラムミスによる所謂暴走した状態の他に、何らかの不正によって生じている可能性がある。この場合、上記のシステムリセットの処理により、正常な動作に復帰させることができるようになっている。また、WDT3141がタイムアウトになった場合としては、プログラムミスによる暴走した状態や、電圧降下によりCPU304が本来設計した動作を行うことができなくなった場合等がある。この場合にも、上記のシステムリセットの処理により、正常な動作に復帰させることができるようになっている。
【1480】
割込み制御回路3100は、外部入力や内部状態の変化に応じて適宜処理を実行させるために割込みを発生させる。この割込み処理には、例えば外部からの入力(センサによる信号)を受け付けた場合に実行する処理がある。本実施形態では、乱数生成回路318が、乱数を取得するためのラッチ信号を受信した際にも、割込み処理を実行(割込みを発生)させることができるようになっている。なお、割込み制御回路3100は、内部情報レジスタ3101を備えており、この内部情報レジスタ3101には、乱数生成回路318で乱数更新周期を決める外部クロック(カウントクロック)の周期の異常、および乱数の更新に関するの異常、さらに、直前に発生したリセット要因の情報等が格納される。なお、この内部情報レジスタ3101は、異常検出情報保持手段の一例に相当する。
【1481】
クロック回路3200は、図75に示す水晶発振器316b(以下、システム用水晶発振器316bと称する場合がある)から外部クロック入力端子(EX端子)を介して入力される外部クロック(この例では、24MHzのクロック)を所定の分周比(この例では、1/2)で分周し、分周後のシステムクロック(この例では、12MHzのクロック)をこのマイクロプロセッサ3000内部の各回路に供給する。また、このシステムクロックをシステムクロック出力端子(CLKO端子)を介してマイクロプロセッサ3000外部の周辺制御回路に出力する。
【1482】
乱数生成回路318は、乱数を更新するためのクロック信号(カウントクロック)を用いて、乱数のラッチ信号を受信したときにこの更新された乱数を乱数レジスタ内に保持するものである。本実施形態では、水晶発振器316aから外部クロック入力端子(RCK端子)を介して入力される外部クロック信号を所定の分周比(この例では、1/2)で分周してこのカウントクロックに用いているが、マイクロプロセッサ3000内部のクロック信号を用いることもでき、この場合は水晶発振器316aは不要となる。乱数レジスタに保持された値は、乱数として読み出して使用することができる。なお、乱数レジスタから乱数を読み出すと、乱数レジスタが次の乱数をラッチすることを許容する許容状態とすることができる。この乱数生成回路318の詳細は後述する。
【1483】
続いて、図147を用いて、リセットが実行された場合の処理の流れについて説明する。同図は、リセットの流れを示すフローチャートである。このフローチャートは、リセット制御回路314にシステムリセット信号が入力された場合、WDT3141がタイムアウトになった場合、あるいは指定エリア外走行を検知した場合に、マイクロプロセッサ3000の各回路で実行される処理である。
【1484】
最初のステップSH01では、実行されるリセット動作が、システムリセット動作か否か判定される。マイクロプロセッサ3000で実行されるリセット動作には、システムリセット動作とユーザリセット動作の2つがある。ここで、システムリセット動作を実行する場合には、ステップSH03に進む。このシステムリセット動作は本発明にいう復帰処理の一例に相当する。また、システムリセット動作でないリセット動作、すなわちユーザリセット動作を実行する場合には、ステップSH11に進む。
【1485】
ステップSH03では、第1内部回路初期化処理が実行される。この第1内部回路初期化処理は、CPU304のコアや内蔵レジスタ(タイマ回路311、カウンタ回路312、パラレル入力ポート3102、RAM308アクセスプロテクトレジスタ、割込み制御回路3100、乱数生成回路318を制御するレジスタ)の値を初期化する。この第1内部回路初期化処理が終了すると、ステップSH05に進む。
【1486】
ステップSH05では、セキュリティチェック処理が実行される。このセキュリティチェック処理では、ユーザプログラムを基に計算された値が、ROM306のプログラム管理エリアに記憶されている認証コードを表す値と一致するか否かの判定を行う。すなわち、認証コードが正しいか否かの再計算を行う。ここにいうユーザプログラムが、本発明にいう記憶部(内蔵ROM306)に記憶された内容の一例に相当し、内蔵ROM306のプログラム管理エリアに記憶されている認証コードが、本発明にいう所定の認証情報の一例に相当する。認証コードが正しい場合にはステップSH07に進み、そうでない場合にはCPU304の動作を停止させる。本実施形態の遊技台では、このようにしてセキュリティチェックを行なうため、遊技台により安定した制御を行なわせることができる。
【1487】
ステップSH07では、固定延長処理が実行される。この固定延長処理では、予め設定した固定時間(例えば、ROM306のプログラム管理エリア内のセキュリティ時間設定の0?2ビットを用いて設定)だけセキュリティモードを延長する。例えば、nをプログラム管理エリアに設定された時間とし、システムクロックをSCLKとした場合に、3n×2^24/SCLK秒だけ延長する。なお、この延長時間の経過時にXRSTO端子からリセット信号を出力させる。その後ステップSH09に進む。
【1488】
ステップSH09では、ランダム延長処理が実行される。このランダム延長処理では、予めランダムに選択されたランダム時間(例えば、プログラム管理エリア内のセキュリティ時間設定の3?4ビットを用いて設定)だけセキュリティモードを延長する。例えばショートモードが設定されている場合には0?Sμ秒、ミドルモードが設定されている場合には0?Mμ秒、ロングモードが設定されている場合には、0?Lμ秒それぞれ延長する(S<M<L)。この処理が終了するとユーザモードに移行し、CPU304は、メモリマップの0000H番地から処理を開始する。本実施形態では、主制御部300のメイン処理が開始されることになる。
【1489】
一方、ステップSH01で、ユーザリセット動作を実行する場合に進むステップSH11では、第2内部回路初期化処理が実行される。この第2内部回路初期化処理は、CPU304のコアや、乱数生成回路318を制御するレジスタを除く内蔵レジスタ(タイマ回路311、カウンタ回路312、パラレル入力ポート3102、RAM308アクセスプロテクトレジスタ、割込み制御回路3100)の値を初期化する。すなわち、この第2内部回路初期化処理では、乱数生成回路318を制御するレジスタの値はリセット前の状態が維持される。この第2内部回路初期化処理が終了すると、ユーザモードに移行し、CPU304は、メモリマップの0000H番地から処理を開始する。本実施形態では、主制御部300のメイン処理が開始されることになる。
<乱数生成回路>
【1490】
次に、図148を用いて、図146に示すマイクロプロセッサ3000の乱数生成回路318の詳細について説明する。同図は、図146に示す乱数生成回路318の内部構成図である。
【1491】
乱数生成回路318は、それぞれ異なる乱数を生成する4つの乱数生成チャンネルCH1?CH4を備えている。なお、各チャンネル回路の内部構成は同一であるため、図148では、1つの乱数生成チャンネルCH1を示し、残りの乱数生成チャンネルCH2?CH4については、図示を簡略化している。以下の説明では、この乱数生成チャンネルCH1を中心に乱数生成回路318について説明する。
【1492】
乱数生成回路318は、初期設定レジスタ3181と、周波数監視回路3182と、乱数更新回路3183と、乱数監視回路3184と、ノイズフィルタ3185と、ソフトラッチレジスタ3186と、ラッチ選択レジスタ3187と、乱数レジスタ3188と、乱数ラッチフラグレジスタ3189と、乱数割込み制御レジスタ3180を備えている。なお、周波数監視回路3182および乱数監視回路3184は、更新異常検出手段の一例に相当する。
【1493】
初期設定レジスタ3181には、RCK端子からの外部クロック信号とシステムクロック(内部クロック信号)のうち、いずれのクロック信号を乱数更新回路3183で使用するかを決めるクロック選択情報が、プログラム管理エリア内の情報に基づいて設定される。RCK端子からの外部クロック信号とシステムクロック(内部クロック信号)は乱数更新回路3183の手前に設けられたマルチプレクサに入力される。初期設定レジスタ3181が上記クロック選択情報に従って更新クロック選択信号をこのマルチプレクサに入力することにより、この更新クロック選択信号によって選択されたクロック信号が乱数更新回路3183に入力されるようになっている。なお、外部クロック信号が選択されている場合、所定の分周比(この例では、1/2)で分周されたクロック信号が乱数更新回路3183に入力される。なお、分周されたクロック信号が、内部クロックよりも低い周波数でない場合には使用することができない。なお、本実施形態では、外部クロック信号が選択されているものとして説明を続ける。
【1494】
周波数監視回路3182は、内部クロック信号および外部クロック信号の周期を監視し、この周期が一定でなくなった場合に、クロック信号に異常があることを示す情報を、内部情報レジスタ3101に出力する。
【1495】
乱数更新回路3183は、初期設定レジスタ3181によって選択されたクロック信号が入力され、このクロック信号の周期に従って乱数を更新する。更新した乱数の値は、乱数監視回路3184および乱数レジスタ3188にそれぞれ出力される。この乱数更新回路3183の詳細については、図150?図153を用いて後述する。
【1496】
なお、乱数値の更新は、乱数更新回路3183に最大値が設定されないCHについては、ユーザモードに移行した時に開始(自動開始)されるように構成される一方、乱数更新回路3183に最大値が設定されるCHについては、最大値が設定された時に開始(手動開始)されるように構成されている。すなわち、乱数の最大値は、乱数生成チャンネルCH1?CH4で個別に設定可能である。また、最大値が設定されないCHおよび最大値が設定されるCHともに一度更新が開始されると電源供給が断たれるかシステムリセットが発生した場合にのみ更新が停止されるものであり、予期せぬ異常が発生した場合を除きこれらの事象以外では更新を停止することができないように構成されている。
【1497】
さらに、最大値が設定されるCHに関しては、乱数更新回路3183に設けられた最大値設定レジスタに最大値が設定されたことに基づいて更新が開始され、この最大値設定レジスタはシステムリセットごとに一回のみライト可能なレジスタ(システムリセット時には初期化(更新範囲の最大値であるFFFFHが初期値として設定される)され、ユーザリセット発生時にはユーザリセット発生前に設定されていた値が維持されるレジスタ)である。すなわち、乱数が更新されている場合にユーザプログラムで最大値設定レジスタをライトする処理が実行されたとしても、最大値設定レジスタが更新されることがなく、乱数生成回路3183はその影響を受けないように構成されている。一方、リードに関してはユーザプログラムで自由にすることができるように構成されている。
【1498】
また、16ビット乱数値および8ビット乱数値の一方を初期値が設定可能に構成し、他方を初期値が設定不可能に構成してもよいし、乱数が正常に更新されているか否かについて一方を監視可能とし、他方を監視不能としてもよい。また、後述する内部リセットの場合と外部リセットの場合で乱数値の初期値を異ならせてもよく(例えば、内部リセット時の初期値は33H、外部リセット時の初期値はCCH)、この場合、ユーザプログラムの初期設定などにおいて、乱数値の初期値に基づいてリセットの種類を判別し、リセットの種類に合わせた処理を実行してもよい。
【1499】
乱数監視回路3184は、乱数更新回路3183からの入力に基づいて、乱数が正常に更新されているか否かを監視する。乱数の更新に異常がある場合、この乱数の更新に異常があることを示す情報を、内部情報レジスタ3101に出力する。
【1500】
なお、上記の説明では、乱数生成回路318の内部に周波数監視回路3182および乱数監視回路3184が設けられている構成であったが、乱数生成回路318の外部に設けてもよい。また、上記の説明では、乱数更新回路3183とは別に周波数監視回路3182および乱数監視回路3184が設けられている構成であったが、乱数更新回路3183の内部にこれらの回路を設けてもよい。
【1501】
ノイズフィルタ3185には、P0端子?P3端子からの入力が、パラレル入力ポート3102を介してラッチ信号として入力される。なお、図148では、P3端子、およびそのP3端子に接続された回路等は図示省略している。上述のごとく、P0端子には、第1特図始動口230への入球を検出する球検出センサからの信号が入力され、P1端子には、第2特図始動口232への入球を検出する球検出センサからの信号が入力され、P2端子には、普図始動口228への入球を検出する球検出センサからの信号が入力される。さらに、ノイズフィルタ3185には、初期設定レジスタ3181によって選択されたクロック信号が入力される。このクロック信号を利用して、P0端子?P3端子からの入力に生じるノイズを除去した上で、ラッチ信号を検出する。このラッチ信号が検出されると、ハードラッチ信号が乱数レジスタ3188の手前に設けられたマルチプレクサに出力される。なお、このノイズ除去の詳細については、図149を用いて後述する。
【1502】
ソフトラッチレジスタ3186には、乱数レジスタ3188から乱数をラッチすることを示す情報がCPU304からの指示によって適宜設定される。この情報が、ソフトラッチ信号として乱数レジスタ3188の手前に設けられたマルチプレクサに出力される。
【1503】
ラッチ選択レジスタ3187には、乱数レジスタ3188の手前に設けられたマルチプレクサからハードラッチ信号とソフトラッチ信号の何れを出力させるか、すなわち、乱数レジスタ3188にどちらのラッチ信号を入力するのかを示す情報が、CPU304からの指示によって適宜設定される。この情報を設定することにより、ハードラッチ信号とソフトラッチ信号を適宜使用して、乱数を取得することができる。
【1504】
乱数レジスタ3188には、3つの信号が入力される。1つ目の信号は、乱数更新回路3183から出力された乱数を表す信号である。2つ目の信号は、手前に設けられたマルチプレクサから出力された乱数ラッチ信号(ハードラッチ信号とソフトラッチ信号のうち、ラッチ選択レジスタ3187で設定された信号)である。3つ目の信号は、乱数の読み取りを示すリード信号である。
【1505】
乱数レジスタ3188には、乱数更新回路3183によって更新された乱数を示す信号が常に入力されている。ここで、乱数ラッチ信号が入力されると、この入力タイミングにおける乱数が乱数レジスタ3188内にラッチ(保持)される。このとき、乱数レジスタ3188からは、乱数がラッチされていることを示すセット信号が、乱数ラッチフラグレジスタ3189に出力される。このときCPU304は、ラッチされている乱数を取得することができる。なお、CPU304により乱数が取得されると、乱数レジスタ3188にリード信号が入力される。この信号により新たな乱数ラッチ信号が入力された場合に乱数をラッチすることを許容する許容状態となる。換言すれば、一度乱数をラッチすると、リード信号が入力されるまで新たに乱数をラッチすることができない非許容状態となる。なお、リード信号が入力されてもラッチされている乱数は保持し続けるため、CPU304はラッチされている同一のタイミングでラッチされた乱数を何度でも取得することができる。このように構成することで乱数ラッチ信号を出力するセンサ回路におけるチャタリングの影響を押さえることができる。なお、リード信号が入力されたことを示すクリア信号が乱数ラッチフラグレジスタ3189に出力される。また、図148に示すように、乱数レジスタ3188が複数あることにより、同じ乱数更新回路から生成された乱数を様々なタイミングで取得することができる。
【1506】
乱数ラッチフラグレジスタ3189には、乱数レジスタ3188に乱数がラッチされているか否かを示す情報が記憶される。なお、乱数ラッチフラグレジスタ3189は、乱数レジスタ3188にラッチされた乱数(16ビット乱数の全てまたは一部や、8ビット乱数の全てまたは一部)が読み出されたときに自動的にクリアされるように構成してもよいし、CPUによってクリアするように構成してもよい。
【1507】
乱数割込み制御レジスタ3180には、乱数レジスタ3188に乱数が保持された際に割込み制御回路に割込みを発生させるか否かを示す情報が設定される。この情報は乱数レジスタ3188毎に設定することができる。例えば、第1特図始動口230への入球により乱数発生チャンネルCH1の乱数がラッチされた場合には、割込みを発生させ、第2特図始動口232への入球により乱数発生チャンネルCH2の乱数がラッチされた場合には、割込みを発生させない、というような設定をすることができる。
【1508】
上記説明した乱数生成回路318を用いて、本実施形態では、普図始動口282、第1特図始動口230、第2特図始動口232のそれぞれに入球したタイミングで乱数を取得する。なお、任意のタイミングでCPU304に乱数を取得させるように、プログラムを実行させることもできる。さらに異なる乱数生成チャンネルを使用してそれぞれ独立の乱数を取得し、それぞれのチャンネル毎に乱数生成範囲の最大値を設定することができる。
【1509】
なお、本実施形態では、個別のチャンネルに対して乱数生成範囲を変更することができ、設定されていない場合には所定の最大値(例えば65535)が適用される例について説明したが、これ以外に例えば、乱数生成範囲を変更する場合に全てのチャンネルに対して乱数生成範囲を設定することを必要とする構成であってもよい。
【1510】
なお、普図始動口282に入球したタイミングで取得された乱数は、後述する普図当選乱数として用いられる。また、第1特図始動口230に入球したタイミングで取得された乱数は、加工(例えば、乱数生成回路とは異なる回路(例えば、基本回路302やカウンタ回路312)でカウントアップ(ダウン)される値を乱数に加算(減算)する処理など)されて、後述する特図1当選乱数として用いられる。さらに、第2特図始動口232に入球したタイミングで取得された乱数は、加工されて、後述する特図2当選乱数として用いられる。
【1511】
なお、乱数の加工は、第1特図始動口230および第2特図始動口232に入球したタイミングで取得される乱数に限らず、他の契機(例えば、普図始動口282へに入球したタイミングなど)によって取得される乱数に対して行ってもよい。さらに、上述した乱数生成範囲の最大値を設定する場合においては、設定した最大値に応じた加工(例えば、この最大値を超えない値を乱数に加算する処理など)すれば良い。
【1512】
また、乱数の加工は必ずしも行う必要はないが、乱数の加工を行うことは乱数の狙いうちの防止に有効に働く。例えば加工した後の乱数が更新されたか否かをCPU304によって監視した場合、乱数生成回路318内での乱数の更新が正常に行われているか否かを正確に判断することができない。このように、乱数を加工する場合には、上述の乱数監視回路3184による乱数の更新の監視がより有効に働くこととなる。
【1513】
続いて、図149を用いてノイズフィルタ3185の動作について説明する。同図は、図148に示すノイズフィルタ3185による処理の一例を示す図である。
【1514】
上述したように、ノイズフィルタ3185には、P0端子?P3端子からの入力が、パラレル入力ポート3102を介してラッチ信号として入力され、初期設定レジスタ3181によって選択されたクロック信号が入力される。このノイズフィルタ3185は、例えば図149に示すように、クロック信号のダウンエッジ(HレベルからLレベルへの立ち下り信号)が4回連続で入力されるまで、P0端子?P3端子からの入力信号がHレベルであれば、ハードウェアラッチ信号を出力するように構成されている。単純に信号の立ち上がりおよび立ち下がりだけを基にハードウェアラッチ信号を出力すると、ノイズが入った場合にもハードウェアラッチ信号が出力されてしまう。このため、上記のようにクロック信号を用いて、一定期間のセンサ信号を検出させることで、ノイズによりハードウェアラッチ信号が出力されてしまわないように構成されている。
【1515】
上記説明では、P0端子?P3端子からの入力によりハードラッチ信号を出力させる例について説明したが、例えば、P0端子?P3端子からの入力を一度CPU304で受け付けた上で乱数を取得する方法もある。この場合には、ハードラッチ信号ではなく、ソフトラッチレジスタ3186から出力されたソフトラッチ信号により、乱数をラッチさせることになる。この場合、上記ノイズフィルタによる処理と同様の処理がCPU304により実行される。すなわち、P0端子?P3端子からの入力が所定期間継続したか否かを判定し、これを満たす場合にP0端子?P3端子からの入力が正しく行われたと判定する。その後、ソフトラッチ信号を出力するようにソフトラッチレジスタ3186を設定する。
【1516】
次に、図150を用いて、図148に示す乱数更新回路3183の詳細について説明する。同図は、図148に示す乱数更新回路3183の詳細を示す図である。
【1517】
図150(a)に示す乱数更新回路3183は、カウンタ回路3183aと、スタート値選択回路3183bと、最大値設定レジスタ3183cを備えている。なお、図148では、乱数更新回路3183に対して外部クロック信号および内部クロック信号のいずれかが乱数更新のための更新クロック信号として入力されることが示されているが、この図150に示す乱数更新回路3183には、さらにCPU304から最大値データが入力される。
【1518】
カウンタ回路3183aからは、乱数(乱数データ)が出力される。この乱数の初期値は、スタート値選択回路3183bに設定されている。この初期値には、固定値(例えば0)、プログラム管理エリア内に記憶されているマイクロプロセッサ3000のIDナンバーを基にした値、および、乱数生成範囲内で抽選された値のいずれかが設定される。
【1519】
カウンタ回路3183aには、更新クロック信号の1クロック毎に1が加算されるカウンタが設けられており、このカウンタの値に、スタート値選択回路3183bから入力された乱数の初期値を加えた値を乱数として出力する。
【1520】
カウンタ回路3183aから出力される乱数の最大値は、最大値設定レジスタ3183cに設定されている。なお、乱数の最大値は、CPU304からの命令に従って最大値設定レジスタ3183cに設定される。図150(b)には、この最大値が設定されている16ビットのレジスタが示されている。CPU304から最大値を設定する命令がない場合の初期値は、FFFFH(65535)である。なお、この最大値設定レジスタ3183cの変わりに、例えば、ROM306のプログラム管理エリア内に最大値を設定する領域を設け、設定された最大値を参照する構成であってもよい。
【1521】
カウンタ回路3183aは、出力する乱数が最大値を超えた場合、この最大値に1を加えた値を減算した上で、この値を乱数として出力する。例えば最大値が65535の場合において、初期値とカウンタの値を足した値が、65534、65535、65536、65537の順に更新されるとすると、出力される乱数は、65534、65535、0(65536-(65535+1))、1(65537-(65535+1))のようになる。すなわち、最大値を超えると出力される乱数が0に戻ることになる。
【1522】
また、カウンタ回路3183aの内部に設けられたカウンタの値が、最大値レジスタ3183cに設定された最大値になると、このカウンタの値が0にクリアされるとともに、カウンタ回路3183aからスタート値選択回路3183bに乱数の出力が一巡したことを示す信号(一巡信号)が出力される。この一巡信号を受けたスタート値選択回路3183bでは、乱数の初期値が更新される。この際更新される初期値が、最大値設定レジスタ3183cに設定されている乱数の最大値を超えている場合、例えば、固定値を用いたり、一度現在の乱数の最大値を乗じてから設定可能な乱数生成範囲の最大値(65535)で除算した値を用いることにより、乱数の最大値を超えない値(乱数生成範囲内の値)が初期値として再設定される。無論、最初からこの再設定方法などを用いて、乱数生成範囲内の値が初期値として設定されるようにしてもよい。
【1523】
なお、本実施形態では、最大値設定レジスタ3183cに設定された最大値は、カウンタ回路3183aからの出力が一巡した時点で自動的に更新されるが、例えばCPU304からの更新命令が来た時点で更新されるようにしてもよい。
【1524】
ここで、上記の乱数生成の範囲を図151および図152を用いて説明する。図151は、乱数生成範囲の最大値が設定されていない場合(デフォルトの状態)において出力される乱数の範囲を示す図である。また、図152は、図151とは異なる最大値が設定された場合に出力される乱数の範囲を示す図である。
【1525】
まず、図151(a)ではn周期目(n-1回目の一巡信号が出力された直後)の状況について説明する。図151(a)には、0?65535の乱数生成範囲が示されている。また、出力される乱数の初期値がスタート値(X)として示されている。
【1526】
乱数更新回路3183からは、更新クロックの1クロック毎に乱数が更新されて出力される。より具体的には、最初にスタート値(X)が出力され、その後1クロック毎に、X+1、X+2の順で更新された乱数が出力される。この乱数の値が乱数生成範囲の最大値である65535になると、上記説明した処理によって、次に出力される乱数は0に戻る。その後、1、2、の順で更新された乱数が出力され、X-1が出力された時点でこの乱数生成範囲を一巡したことになる。なお、このとき、乱数更新回路3183内のカウンタ回路3183aのカウンタの値は最大値と同じ値になっている。スタート値選択回路3183bに乱数の出力が一巡したことを示す信号(一巡信号)が出力される。
【1527】
続いて1クロックが入力されると、乱数更新回路3183の出力はn+1周期目(n回目の一巡信号が出力された直後)に入る。このn+1周期目の状況について、図151(b)を用いて説明する。まず、乱数更新回路3183内のカウンタ回路3183aのカウンタの値は0にクリアされる。また、スタート値選択回路3183bでは、新たな初期値が設定される。図151(b)には、この新たな初期値がスタート値(X´)として示されている。この新たな初期値と、カウンタ回路3183aのカウンタの値により、上記説明した流れと同様の流れで乱数が出力される。
【1528】
次に、図152(a)では、図151に示す乱数生成範囲の最大値よりも小さい最大値が設定された場合のn周期目(n-1回目の一巡信号が出力された直後)の状況について説明する。図152(a)には、0?65535のうち、設定された最大値によって図151(a)に示す乱数生成範囲よりも狭くなった乱数生成範囲が示されている。なお、出力されない乱数の範囲が左下がりのハッチングで示されている。また、出力される乱数の初期値がスタート値(Y)として示されている。
【1529】
図151を用いて説明した状況と同様に、乱数更新回路3183からは、最初にスタート値(Y)が出力され、その後1クロック毎に、Y+1、Y+2の順で更新された乱数が出力される。この乱数の値が設定された最大値になると、上記説明した処理によって、次に出力される乱数は0に戻る。すなわち、左下がりのハッチングで示された範囲の乱数は出力されない。その後、1、2、の順で更新された乱数が出力され、Y-1が出力された時点でこの乱数生成範囲を一巡したことになる。なお、このとき、乱数更新回路3183内のカウンタ回路3183aのカウンタの値は設定された最大値と同じ値になっている。スタート値選択回路3183bに乱数の出力が一巡したことを示す信号(一巡信号)が出力される。
【1530】
続いて1クロックが入力されると、乱数更新回路3183の出力はn+1周期目(n回目の一巡信号が出力された直後)に入る。このn+1周期目の状況について、図152(b)を用いて説明する。図151(b)を用いて説明した場合と同様、乱数更新回路3183内のカウンタ回路3183aのカウンタの値は0にクリアされる。また、スタート値選択回路3183bでは、新たな初期値が設定される。図152(b)には、この新たな初期値がスタート値(Y´)として示されている。この新たな初期値と、カウンタ回路3183aのカウンタの値により、上記説明した流れと同様の流れで乱数が出力される。
【1531】
なお、上記のように乱数生成チャンネルの最大値を適切に設定する以外に、例えば、ある乱数生成チャンネルでは乱数の最大値が65535であるが、別の乱数生成チャンネルでは乱数の最大値が255である、というように、チャンネル毎に乱数生成範囲を予め異ならせておいてもよい。この場合には、必要とされる乱数生成範囲に応じてチャンネルを選択すればよい。この場合には、最大値設定レジスタの容量削減や、最大値設定の処理負担を軽減することができる。さらに、予め設定可能な最大値を複数設定した上で、これらの中から適切な最大値を選択して設定するようにしても、最大値設定レジスタの容量削減や、最大値設定の処理負担を軽減することができる。
【1532】
以上、乱数更新回路3183の乱数の出力について説明した。以下この乱数更新回路3183の変形例について図153を用いて説明する。同図は、最大値と最小値を設定した乱数生成範囲において、乱数を取得することができる範囲を示す図である。
【1533】
図150から図152の例では、乱数生成範囲の最大値を変更する例について説明したが、例えば、最小値を設定できるものであってもよい。さらに、最大値だけでなく最小値を設定するレジスタを用意し、図153(a)に示すように、最小値、最大値を設定し、乱数生成範囲を設定できるものであってもよい。加えて、図153(b)に示すように、複数の乱数生成範囲を設定できるものであってもよい。すなわち、出力される乱数の範囲を設定出来る構成であればよい。また、上記説明では、説明を分かり易くするため出力される乱数が1ずつ増加する例について説明したが、これ以外の乱数の更新方法であってもよい。
【1534】
以下、図154を用いて本実施形態の遊技台で使用される乱数と、その主な導出源について説明する。同図は、本実施形態の遊技台で使用される乱数の導出源を表で示す図である。なお、この図で示される各乱数は、後述のフローチャートで用いられる。
【1535】
まず、特図1当選乱数、特図2当選乱数、および普図当選乱数は、上記乱数生成回路318の乱数生成チャンネルCH1?CH4によって生成される乱数が基になる。この値を必要に応じて適宜加工してこれらの乱数として使用する。
【1536】
大当り用特図乱数、小当り用特図乱数、およびハズレ用特図乱数は、後述する主制御部タイマ割込み処理において生成される。すなわちこれらの乱数は、所謂ソフトウェア乱数である。なお、これらの乱数を生成する際に用いられる初期値生成用乱数は、主制御部メイン処理および主制御部タイマ割込み処理で生成される。
【1537】
特図変動時間決定用乱数、および普図変動時間決定用乱数は、カウンタ回路312の値を乱数として用いる。本実施形態のカウント回路312は、マイクロプロセッサ3000のシステムクロックの他、上記タイマ回路からのタイムアウト信号、メモリの読み書き信号、メモリリクエスト信号、外部入出力の信号等もカウンタの対象として用いることができる。このため、これらを組み合わせることで規則性のない値を導出させ、上記の乱数に使用している。演出用乱数は、主制御部メイン処理および主制御部タイマ割込み処理で生成される。
【1538】
次に、図155を用いて、図146に示す割込み制御回路3100に設けられた内部情報レジスタ3101の詳細について説明する。上述したように、内部情報レジスタ3101には、乱数生成回路318で乱数更新周期を決める外部クロック(カウントクロック)の周期の異常、および生成された乱数値の異常、さらに、直前に発生したユーザリセットのリセット要因の情報等が格納される。この内部レジスタ3101には、第1内部情報レジスタと第2内部情報レジスタと、第3内部情報レジスタとが用意されている。
【1539】
図155は、割込み制御回路3100の内部レジスタ3101に用意された第1内部情報レジスタを説明するための図である。図155(a)には、第1内部情報レジスタのうち、乱数生成回路318の異常を示す情報が記憶される範囲が示されている。この範囲は8ビットで構成されており、図155(b)には、これらの各ビットがどのような情報を示すものかが表で示されている。
【1540】
CPU304は、後述するタイマ割込みが実行される度にこの第1内部情報レジスタの内容を確認する(図166のステップS3235a)。この内容は、異常が発生した場合に遊技の進行を止める等の処理を行うか否かの判定に用いられる。例えば、本実施形態では、乱数生成回路318で異常が検出されると、入賞受付処理が実行されないように構成されている(図166のステップS3235cおよび図167参照)。この他、球の打ち出しを行わないようにしたり、払出しを行わないようにしたり、あるいは、変動タイマの減算を行わないようにしてもよい。特に、乱数更新に異常があった場合、乱数更新回路3183に大電流が流れている状態(ラッチアップ状態)である可能性があるため、一度電源をオフにすることを報知するようにしてもよい。
【1541】
ビット番号0は、乱数生成回路318の外部クロック(更新クロック)の異常を示すビットであり、0は異常なし、1は異常ありを示す。ビット番号1?4は、乱数生成回路318で生成された乱数の異常を、各チャンネル毎に示すビットであり、0は異常なし、1は異常ありを示す。ビット番号5?7は、不使用(0に固定)である。
【1542】
第1内部情報レジスタの値が1である場合、CPU304から読み出されると0に設定(クリア)される。なお、内部情報レジスタはCPU304に一度に読み出されるため、第1内部情報レジスタが保持している値を0に設定(クリア)したい場合は、CPU304に第1内部情報レジスタの値を読み出した後に読み出した値を破棄すれば良い。また、上述の通り、システムリセットおよびユーザリセットのいずれかの処理が実行された場合に、この内部情報レジスタは、CPU304から読み出された場合と同様に各ビットは0に設定(クリア)されることとなる。
【1543】
以上、乱数生成回路318の異常がどのように記憶されているかについて説明したが、この例と同様に上記リセット要因を示す情報(システムリセットおよびユーザリセットのうちのいずれのリセットが発生したのかを識別可能な情報)についても、第1内部情報レジスタに記憶されている。なお、上記説明では、乱数生成チャンネルの異常をビット番号1?4によってそれぞれのチャンネル毎に表していたが、1つのビットによっていずれかのチャンネルで異常が起きたか否かを表すようにしてもよい(全てのチャンネルで共通にしてもよい)。なお、本実施形態では、内部情報レジスタ3101が割込み制御回路3100内に設けられているが、他の回路に設けられているものであってもよい。なお、割込み制御回路3100の内部レジスタ3101に用意された第2内部情報レジスタおよび第3内部情報レジスタについては後述する。
【1544】
次に、図148に示す周波数監視回路3182における異常の検出例について、図156を用いて説明する。同図は、周波数監視回路3182における異常の検出例を示す図である。図156には、一番上からそれぞれ、正常時の動作、異常時の動作例1(異常時1)、異常時の動作例2(異常時2)が示されている。これらの例では、マイクロプロセッサ3000の内部クロックと、乱数生成回路318に入力される外部クロック(RCK)に加え、外部クロックの1周期に対する内部クロックの周期の比率が示されている。この検出動作では、外部クロックと内部クロックの周期の比率を監視し、この比率が変化した場合を異常として検出する。
【1545】
図156(a)に示す正常時の例では、外部クロックの1周期の間に内部クロックが2.5周期ある状態が継続している。すなわち、外部クロックと内部クロックの周期の比率が変化しないため、異常を示す情報は出力されない。
【1546】
次に、図156(b)に示す異常時の動作例1(異常時1)では、外部クロックの1周期の間に内部クロックが4.5周期ある状態が示されている。図156(a)に示す状態からこの図156(b)に示す状態になった場合には、この時点で異常を示す情報が出力される。
【1547】
次に、図156(c)に示す異常時の動作例2(異常時2)の最初には、外部クロックの1周期の間に内部クロックが0.5周期ある状態が示されている。仮に、図156(a)に示す状態からこの図156(c)の最初の状態になった場合には、この時点で異常を示す情報が出力される。さらに、図156(c)には、外部クロックの1周期の間に内部クロックが0.5周期ある状態に続き、外部クロックの1周期の間に内部クロックが2.5周期ある状態が継続している。この周期の比率が変化した時点でも異常を示す情報が出力される。
【1548】
上記の例では、外部クロックと内部クロックのいずれか一方の周期が異常になると、異常を示す情報が出力されることになる。すなわち、内部クロックを乱数の更新クロックとして使用した場合でも、異常を検出することができる。なお、外部クロックと内部クロックの比率が同じであれば、双方の周波数が変更されても異常を示す情報が出力されない。この場合、例えばプログラム管理エリア内に外部クロック又は内部クロックの周波数を示す情報を記憶させておき、この情報を用いて外部クロック又は内部クロックの異常を検出させることも可能である。なお、更新クロックの異常を検出する方法は上述した方法に限らず、更新クロックの周期の異常を検出可能な方法であれば他の方法を採用しても良い。
【1549】
続いて、図148に示す乱数監視回路3184における異常の検出例について、図157を用いて説明する。同図は、乱数監視回路3184における異常の検出例を示す図である。この検出例では、1回の乱数の更新毎に更新前後の乱数を比較し、同じ乱数が生成されていないか否かをチェックする。仮に同じ乱数が生成されている場合には、異常を示す情報が出力される。図157(a)の例では、更新前後で同じ乱数が生成されていないため、異常を示す情報は出力されない。これに対して、図157(b)の例では、更新の途中で同じ乱数が生成されており(乱数4が2回生成されている)、この時点(2回目の4が出力された時点)で異常を示す情報が出力される。なお、上記の例では、乱数が更新される度にチェックを行っているが、この乱数更新周期よりも長い所定の周期毎でチェックさせてもよい。
【1550】
上記説明したように乱数生成回路318では、周波数監視回路3182と乱数監視回路3184から異常を示す情報が内部情報レジスタ3101に対して出力される。また、内部情報レジスタ3101の値は、タイマ割込み毎にCPU304によって読み出される。
【1551】
このように周波数監視回路3182および乱数監視回路3184の双方を用いて乱数生成回路318の異常を監視することで、更新クロックの周波数に異常があるが、乱数の更新には異常がない異常状態(乱数監視回路3184のみでは検出できない異常状態)と、更新クロックの周波数に異常がないが、乱数の更新には異常がある異常状態の双方の異常状態を的確に把握することが可能になり、遊技制御の安定化を図ることができる。
【1552】
従来の遊技台では、遊技者に有利な抽選結果が導出されやすくなるように抽選に用いられる乱数に狙いを定めて不正が行われることがあり、遊技の公平性を担保することが困難になっている。しかし、本実施形態の遊技台によれば、上記の乱数生成回路318によって抽選に用いられる乱数の異常を把握したうえで対処することができるため、乱数の狙いうちを抑止して遊技の公平性を担保することができる。なお、周波数監視回路3182および乱数監視回路3184は内部情報レジスタ3101に記憶されている情報に関わらず継続してそれぞれ監視を行っている。
【1553】
ここで、内部情報レジスタ3101の値が、乱数生成回路318により生成される乱数が一巡する周期(乱数生成範囲内の全ての値を各1回出力するのに必要な期間、以下、乱数一巡周期と称する)だけ保持され、その後クリアされる構成であった場合の問題点について図158を用いて説明する。同図は、乱数が一巡する周期とタイマ割込みの周期を比較した図である。図158の一番上には、一番下に示すタイマ割込み周期t4よりも長い乱数一巡周期t1が示されている。また、図158の上から二番目および三番目には、タイマ割込み周期t4よりも短い乱数一巡周期t2およびt3がそれぞれ示されている。
【1554】
上述したように内部情報レジスタ3101の内容はタイマ割込み毎に確認される。例えば乱数一巡周期が、図158に示す乱数一巡周期t1のようにタイマ割込み周期t4よりも長い場合、内部情報レジスタ3101に保持された値がクリアされる前にこの値を読み取ることができる。しかし、本実施形態では、乱数生成範囲の最大値を設定することができるため、これに従って乱数一巡周期が短くなってしまう事態が生じ得る。例えば乱数一巡周期が、図158に示す乱数一巡周期t2およびt3のようにタイマ割込み周期t4よりも短い場合、内部情報レジスタ3101に保持された値を読み取る前にこの値がクリアされる場合がある。すなわち、CPU304が異常を示す情報を取得することが出来なくなる場合がある。
【1555】
本実施形態では、内部情報レジスタ3101の値が一旦セットされると、この値が読みとられるまでその値が保持される。すなわち、正常に戻ったか否かにかかわらずこの値が維持される。さらに、CPU304がこの値を読み取ると、読み取られた部分の値がクリアされるようになっている。このため、上記のように乱数一巡周期が変わってしまったとしても、内部情報レジスタ3101から異常を示す情報を取得することができる。なお、異常を示す値が読み取られた後に、異常が継続していれば再度異常を示す値がセットされる。
<主制御部メイン処理>
【1556】
次に、図159を用いて、図75に示す主制御部300のCPU304が実行する主制御部メイン処理について説明する。なお、同図は主制御部メイン処理の流れを示すフローチャートである。
【1557】
この主制御部メイン処理は上述のユーザモードにおける処理に相当し、システムリセットがかかった場合でも、ユーザリセットがかかった場合でも実行される処理である。図75に示す主制御部300のRAM308には、大当り用特図1乱数カウンタ、小当り用特図1乱数カウンタ、ハズレ用特図1乱数カウンタ、およびこれらのカウンタの特図2用のカウンタが設けられている。また、そのRAM308には、特図1の保留数、特図1当選乱数、大当り用特図1乱数、小当り用特図1乱数、ハズレ用特図1乱数、特図1当否判定結果、特図1決定結果、特図1変動時間、およびこれらの、保留数や乱数や結果の特図2用のものがそれぞれ記憶される。またRAM308には、当否判定(抽選)の開始を保留することができる最大数(この例では4つ)の領域に区分けされた保留記憶部が特図1と特図2で別々に用意されている。特図1の保留記憶部には、後述するように、特図1当選乱数、大当り用特図1乱数、小当り用特図1乱数、ハズレ用特図1乱数、および特図1変動時間決定用乱数の5つの乱数を1セットにしてこれら5つの乱数が入賞順(保留順)に1セットずつ1領域ごとに格納される。
【1558】
上述したように、図75に示す主制御部300には、電源が投入されると起動信号(リセット信号)を出力する起動信号出力回路(リセット信号出力回路)340を設けている。この起動信号を入力した基本回路302のCPU304は、リセット割込によりリセットスタートしてROM306に予め記憶している制御プログラムに従って図159に示す主制御部メイン処理を実行する。
【1559】
ステップS3001では、初期設定1を行う。この初期設定1では、CPU304のスタックポインタ(SP)へのスタック初期値の設定(仮設定)、割込マスクの設定、I/O310の初期設定、RAM308に記憶する各種変数の初期設定等を行う。
【1560】
ステップS3003では、低電圧信号がオンであるか否か、すなわち、電圧監視回路338が、電源制御部660が第2副制御部500を介して主制御部300に供給している電源の電圧値が所定の値(本実施形態では9V)未満である場合に電圧が低下したことを示す低電圧信号を出力しているか否かを監視する。そして、低電圧信号がオンの場合(CPU304が電源の遮断を検知した場合)には繰り返しこのステップS3003を実行し、低電圧信号がオフの場合(CPU304が電源の遮断を検知していない場合)にはステップS3005に進む。なお、電源が投入された直後で未だ上記所定の値(9V)に達しない場合にも、供給電圧がその所定の値以上になるまでステップS3003は繰り返し実行される。ステップS3005では、初期設定2を行う。
【1561】
図160は、主制御部メイン処理における初期設定2の流れを示すフローチャートである。まず、ステップS3051では、カウンタ回路312に最大値や更新ソースを決める数値を設定する処理等、カウンタ回路312に関する設定処理を行う。なお、後述する主制御部タイマ割込処理を定期毎に実行するための周期を決める数値をタイマ回路311に設定する処理等、タイマ回路311に関する設定処理も併せて行う。ステップS3052では、第1副制御部400への出力ポートからクリア信号を出力する処理を行い、ステップS3053に進む。ステップS3053では乱数生成回路初期設定処理を行い、次いで、ステップS3054でRAM308への書き込みを許可する設定を行って、この初期設定2は終了になる。
【1562】
図161は、ステップS3053における乱数生成回路初期設定処理の流れを示すフローチャートである。この乱数生成回路初期設定処理は、上述のユーザモードにおいて行われる、図148に示す乱数生成回路318の初期設定処理である。まず、乱数の取り得る範囲(乱数生成範囲)範囲の設定を行い(ステップS3053a)、ステップS3053bに進む。上述のごとく、図148に示す乱数生成回路318では、生成する乱数の最大幅は0?65535であり、この最大幅が乱数生成範囲のデフォルトになり、ここでは、図150?図153を用いて詳細に説明したように、その乱数生成範囲をデフォルトとは異なる範囲に設定することができる。図159に示す主制御部メイン処理は、リセット(システムリセットまたはユーザリセット)がかかる度に実行される処理であるため、乱数生成範囲の設定もリセットがかかる度に実行される。このようにすることで、図169、図170を用いて後述する乱数生成範囲の異常による問題を防止することができる。
【1563】
ステップS3053bでは、図148に示す乱数レジスタ3188の読み出しを行うとともに、読み出した乱数を破棄する処理を行い、ステップS3053cに進む。この処理によって、乱数生成範囲のリセットがかかるごとに乱数レジスタ3188が乱数をラッチすることを許容する許容状態になる。この許容状態においては、仮に異常の可能性がある乱数が乱数レジスタに残っている場合でもすぐに乱数を更新させることができるため、異常の可能性がある乱数の使用を防止することができる。
【1564】
本実施形態では、乱数生成回路318では、特図当選乱数の元になる乱数と普図当選乱数とを生成するが、制御状態に応じて出力チャンネルが異なる。すなわち、特図当選乱数の元になる乱数は、非確率変動中(特図低確率状態)にはチャンネルCH1から出力され、確率変動中(特図高確率状態)にはチャンネルCH2から出力される。また、普図当選乱数は、普図低確率状態(非電サポ中)にはチャンネルCH3から出力され、普図高確率状態(電サポ中)にはチャンネルCH4から出力される。なお、乱数生成回路318は、特図当選乱数そのものを生成するものであってもよいし、特図当選乱数の元になる乱数を生成するものであってもよい。また、普図当選乱数そのものを生成するものであってもよいし、普図当選乱数の元になる乱数を生成するものであってもよい。ステップS3053cでは、これら4チャンネル総てのチャンネルについてステップS3053aとステップS3053bが実行されたか否かを判定し、全チャンネルについて終了していなければ、ステップS3053aに戻り、1チャンネルごとに未了のチャンネルについて処理を行う。なお、乱数生成範囲の設定は、状態に応じて使用されているチャンネルのみを実行してもよいし、乱数生成範囲を設定されるチャンネルのみ実行するようにしてもよい。一方、全チャンネルについて終了していれば、この乱数生成回路初期設定処理は終了になる。
【1565】
なお、主制御部のタイマ割込みはこの時点では禁止されており、乱数生成回路初期設定処理はタイマ割込み許可前に行っていることになるため、新たに乱数がラッチされたとしても各種抽選に使用されることはなく、抽選処理の安定化を図ることができる。
【1566】
ところで、本実施例では、システムリセットが発生した(乱数の更新が停止されている)場合、および例えばユーザリセットが発生した場合のようにユーザプログラムが最初から実行される(乱数の更新が行われている)場合のいずれの場合であっても必ず乱数回路初期化処理が実行されるように構成されている。必ずしもこのように構成する必要はないが、このように構成することで、ユーザプログラムの解析結果と乱数生成回路318の動作が合わなくなるため、基本回路302の動作の解析が困難になり、不正を防止することができる。従って、不正により基本回路302の動作が不安定にされることがなく、遊技制御の安定化を図ることができる。仮に、不正により基本回路302の動作が解析された場合、遊技者に有利な操作が行われてしまう虞があるが、上記の構成であればこのような不正が防止できるため、遊技制御の安定化を図ることができる。
【1567】
さらに、乱数生成回路318が乱数更新を行うか否かに関わらず、CPU304に乱数生成回路初期設定処理を実行する指示を行わせた場合、ユーザリセットが実行された場合の処理を統一することができる。すなわち、ユーザリセット後に不安定な状態となった場合にも分岐処理を行わずにすむため、遊技制御の安定化を図ることができる。なお、上述した内容はユーザリセットがかかった場合について述べたが、システムリセットがかかった場合についても同様の効果を得ることができる。
【1568】
なお、上述した通り、本実施例では、システムリセットが発生した場合と、ユーザリセット等が発生した場合とで乱数生成回路初期設定処理の処理内容が同一となっているが、この処理内容をシステムリセットが発生した場合と、ユーザリセット等が発生した場合とで異ならせるようにしてもよい。具体的には、ユーザリセットが発生した場合には、最大値を設定する処理(最大値設定レジスタにROM306に記憶されている対応CHの最大値をライトする処理)を実行する一方で、ユーザリセット等が発生した時には、最大値を確認する処理(最大値設定レジスタの値をリードしてROM306に記憶されている対応するCHの最大値と比較する処理)を行うとともに、最大値が一致しなかった場合には所定の処理(例えば、遊技の進行を停止させる処理、外部に異常を示す信号を送信する処理、異常を報知する処理、異常が発生したことを記憶する処理など)を実行するように構成してもよい。なお、システムリセットが発生したのかユーザリセット等が発生したのかを識別方法としては、内部情報レジスタ(詳細は後述)に記憶されている情報を参照するようにすればよい。
【1569】
図159に示す主制御部メイン処理におけるステップS3007では、電源の遮断前(電断前)の状態に復帰するか否かの判定を行い、電断前の状態に復帰しない場合(主制御部300の基本回路302を初期状態にする場合)にはRWMクリア処理(ステップS3013)に進む。
【1570】
具体的には、最初に、図2に示す電源基板182に設けたRAMクリアスイッチ180を遊技店の店員などが操作した場合に送信されるRAMクリア信号がオン(操作があったことを示す)であるか否か、すなわちRAMクリアが必要であるか否かを判定し、RAMクリア信号がオンの場合(RAMクリアが必要な場合)には、基本回路302を初期状態にすべくステップS3013に進む。一方、RAMクリア信号がオフの場合(RAMクリアが必要でない場合)には、RAM308に設けた電源ステータス記憶領域に記憶した電源ステータスの情報を読み出し、この電源ステータスの情報がサスペンドを示す情報であるか否かを判定する。そして、電源ステータスの情報がサスペンドを示す情報でない場合には、基本回路302を初期状態にすべくステップS3013に進み、電源ステータスの情報がサスペンドを示す情報である場合には、RAM308の所定の領域(例えば全ての領域)に記憶している1バイトデータを初期値が0である1バイト構成のレジスタに全て加算することによりチェックサムを算出し、算出したチェックサムの結果が、電断前にRAM308に設定した値と一致するか否か(チェックサムの結果が正常であるか否か)を判定する。そして、チェックサムの結果が特定の値の場合(チェックサムの結果が正常である場合)には電断前の状態に復帰すべくステップS3009に進み、チェックサムの結果が特定の値以外である場合(チェックサムの結果が異常である場合)には、パチンコ機100を初期状態にすべくステップS3013に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップS3013に進む。
【1571】
ステップS3009では、データ書き戻し処理を行う。このデータ書き戻し処理では、電断時にRAM308に設けられたスタックポインタ退避領域に記憶しておいたスタックポインタの値を読み出し、スタックポインタに再設定(本設定)する。また、電断時にRAM308に設けられたレジスタ退避領域に記憶しておいた各レジスタの値を読み出し、各レジスタに再設定した後、割込許可の設定を行う。以降、CPU304が、再設定後のスタックポインタやレジスタに基づいて制御プログラムを実行する結果、パチンコ機100は電源断時の状態に復帰する。すなわち、電断直前にタイマ割込処理(後述)に分岐する直前に行った命令の次の命令から処理を再開する。また、図75に示す主制御部300における基本回路302に搭載されているRAM308には、送信情報記憶領域が設けられている。このステップS3009では、その送信情報記憶領域に、復電コマンドをセットする。この復電コマンドは、電源断時の状態に復帰したことを表すコマンドであり、後述する、主制御部300のタイマ割込処理におけるステップS231において、第1副制御部400へ送信される。
【1572】
ステップS3011では、WDT3141を起動させる処理を行う。ここでは、WDT3141の起動許可及び初期値の設定等を行う。なお、本実施形態では、WDT3141に、初期値として32.8msに相当する数値を設定する。
【1573】
ステップS3013では、RWMクリア処理を行う。このRWMクリア処理では、RAM308の全ての記憶領域の初期化を行う。また、主制御部のタイマ割込み許可の設定、スタックポインタへのスタック初期値の設定(本設定)なども併せて行う。さらにここで、主制御部300のRAM308に設けられた送信情報記憶領域に正常復帰コマンドをセットする。この正常復帰コマンドは、主制御部300のRWMクリア処理(ステップS3013)が行われたことを表すコマンドであり、復電コマンドと同じく、主制御部300のタイマ割込処理におけるステップS231において、第1副制御部400へ送信される。ステップS3015では、ステップS3011と同様、WDT3141を起動させる処理を行う。
【1574】
なお、本実施例では、少なくともタイマ割込み許可の設定を行った後の主制御部メイン処理においてWDT3141のリスタートを行わず、後述する主制御部タイマ割込処理でのみWDT3141のリスタート(詳細は後述)を行うように構成するとともに、主制御部のタイマ割込み許可の設定後にWDT3141を起動させる処理を行うように構成している。このように構成することで、正常に主制御部のタイマ割込処理が実行されている場合にのみWDT3141のカウント値が初期設定値(本実施形態では32.8ms)を超えることなく(WDT3141割込が発生せずに)、その後の処理が行われるようになる。特に、主制御部メイン処理で乱数生成回路から乱数を取得(ラッチされた乱数の取得のみ、または乱数のラッチおよびラッチされた乱数の取得)する遊技台においては、主制御部に異常がある場合(主制御部タイマ割込処理が正常に実行されてない場合)に乱数が取得されてしまうことを防止することができる。
【1575】
ステップS3017では、基本乱数初期値更新処理を行う。ここにいう基本乱数とは、ソフトウェア乱数である、大当り用特図乱数、小当り用特図乱数、およびハズレ用特図乱数が相当する。なお、各乱数には特図1用の乱数と特図2用の乱数が存在するが、以降の説明では、特に断りを入れない限り両者を区別することなく単に特図として説明する。この基本乱数初期値更新処理では、大当り用特図乱数カウンタ、小当り用特図乱数カウンタ、およびハズレ用特図乱数カウンタそれぞれの初期値を生成するための初期値生成用乱数カウンタを更新する。各カウンタがRAM308に設けられている。なお、初期値生成用乱数カウンタは、後述するステップS204でも更新する。
【1576】
ステップS3019では演出乱数更新処理を行う。ここにいう演出乱数もソフトウェア乱数であって、この演出乱数は、演出を決定する元になる乱数のことであり、本実施形態では、後述する先読み予告を実行するか否かを抽選する際に用いられる乱数等が相当する。この演出乱数更新処理では、RAM308に設けられた演出乱数カウンタを更新する。なお、演出乱数カウンタは、後述するステップS211でも更新する。
【1577】
主制御部300は、所定の周期ごとに開始するタイマ割込処理を行っている間を除いて、ステップS3017およびステップS3019の処理を繰り返し実行する。これらのステップS3017およびステップS3019は、主処理の一例に相当する。
<主制御部タイマ割込処理>
【1578】
次に、図162を用いて、主制御部300のCPU304が実行する主制御部タイマ割込処理について説明する。なお、同図は主制御部タイマ割込処理の流れを示すフローチャートである。
【1579】
図75に示す主制御部300は、所定の周期(本実施形態では約4msに1回)でタイマ割込信号を発生するタイマ回路311を備えており、このタイマ割込信号を契機として主制御部タイマ割込処理を所定の周期で開始する。
【1580】
ステップS3201では、タイマ割込スタート処理を行う。このタイマ割込スタート処理では、CPU304の各レジスタの値をスタック領域に一時的に退避する処理などを行う。ステップS3203では、WDT3141のカウント値が初期設定値(本実施形態では32.8ms)を超えてWDT3141割込が発生しないように(処理の異常を検出しないように)、WDT3141を定期的に(本実施形態では、主制御部タイマ割込の周期である約4msに1回)リスタートを行う。
【1581】
ステップS3205では、入力ポート状態更新処理を行う。この入力ポート状態更新処理では、I/O310の入力ポートを介して、各種の球検出センサを含む図75に示す各種センサ320の検出信号を入力して検出信号の有無を監視し、RAM308に各種センサ320ごとに区画して設けた信号状態記憶領域に記憶する。球検出センサの検出信号を例にして説明すれば、前回のタイマ割込処理(約8ms前)で検出した各々の球検出センサの検出信号の有無の情報を、RAM308に各々の球検出センサごとに区画して設けた前回検出信号記憶領域から読み出し、この情報をRAM308に各々の球検出センサごとに区画して設けた前々回検出信号記憶領域に記憶し、前回のタイマ割込処理(約4ms前)で検出した各々の球検出センサの検出信号の有無の情報を、RAM308に各々の球検出センサごとに区画して設けた今回検出信号記憶領域から読み出し、この情報を上述の前回検出信号記憶領域に記憶する。また、今回検出した各々の球検出センサの検出信号を、上述の今回検出信号記憶領域に記憶する。
【1582】
また、ステップS3205では、上述の前々回検出信号記憶領域、前回検出信号記憶領域、および今回検出信号記領域の各記憶領域に記憶した各々の球検出センサの検出信号の有無の情報を比較し、各々の球検出センサにおける過去3回分の検出信号の有無の情報が入賞判定パターン情報と一致するか否かを判定する。一個の遊技球が一つの球検出センサを通過する間に、約4msという非常に短い間隔で起動を繰り返すこの主制御部タイマ割込処理は何回か起動する。このため、主制御部タイマ割込処理が起動する度に、上述のステップS3205では、同じ遊技球が同じ球検出センサを通過したことを表す検出信号を確認することになる。この結果、上述の前々回検出信号記憶領域、前回検出信号記憶領域、および今回検出信号記領域それぞれに、同じ遊技球が同じ球検出センサを通過したことを表す検出信号が記憶される。すなわち、遊技球が球検出センサを通過し始めたときには、前々回検出信号無し、前回検出信号有り、今回検出信号有りになる。本実施形態では、球検出センサの誤検出やノイズを考慮して、検出信号無しの後に検出信号が連続して2回記憶されている場合には、入賞があったと判定する。図75に示す主制御部300のROM306には、入賞判定パターン情報(本実施形態では、前々回検出信号無し、前回検出信号有り、今回検出信号有りであることを示す情報)が記憶されている。このステップS3205では、各々の球検出センサにおいて過去3回分の検出信号の有無の情報が、予め定めた入賞判定パターン情報(本実施形態では、前々回検出信号無し、前回検出信号有り、今回検出信号有りであることを示す情報)と一致した場合に、一般入賞口226、可変入賞口234、第1特図始動口230、および第2特図始動口232への入球、または普図始動口228の通過があったと判定する。すなわち、これらの入賞口234、230やこれらの始動口230、232、228への入賞があったと判定する。例えば、一般入賞口226への入球を検出する一般入賞口センサにおいて過去3回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致した場合には、一般入賞口226へ入賞があったと判定し、以降の一般入賞口226への入賞に伴う処理を行うが、過去3回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致しなかった場合には、以降の一般入賞口226への入賞に伴う処理を行わずに後続の処理に分岐する。なお、主制御部300のROM306には、入賞判定クリアパターン情報(本実施形態では、前々回検出信号有り、前回検出信号無し、今回検出信号無しであることを示す情報)が記憶されている。入賞が一度あったと判定した後は、各々の球検出センサにおいて過去3回分の検出信号の有無の情報が、その入賞判定クリアパターン情報に一致するまで入賞があったとは判定せず、入賞判定クリアパターン情報に一致すれば、次からは上記入賞判定パターン情報に一致するか否かの判定を行う。なお、本実施形態では、一般入賞口226、可変入賞口234、第1特図始動口230、第2特図始動口232、普図始動口228へ入賞があったか否かの判定として、前々回、前回および今回の検出信号が予め定められた入賞判定パターン情報と一致した否かを判定していたが、このような方法に限らず、例えば、前回および今回の検出信号が予め定められた入賞判定パターン情報(例えば、前回検出信号なし、今回検出信号あり(いわゆるアップエッジ))と一致したか否かを判定するように構成してもよい。すなわち、球検出センサからの検出信号の有無を監視し、この監視結果の履歴が予め定められたパターンと一致したか否かを判定するように構成すればよい。
【1583】
ステップS3207およびステップS3209では、基本乱数初期値更新処理および基本乱数更新処理を行う。これらの基本乱数初期値更新処理および基本乱数更新処理では、上記ステップS3017で行った初期値生成用乱数カウンタの値の更新を行い、次に主制御部300で使用する、大当り用特図乱数、小当り用特図乱数、およびハズレ用特図乱数それぞれを生成するための乱数カウンタを更新する。例えば、大当り用特図乱数として取り得る数値範囲が0?100とすると、RAM308に設けた大当り用特図乱数を生成するための乱数カウンタ記憶領域から値を取得し、取得した値に1を加算してから元の乱数カウンタ記憶領域に記憶する。このとき、取得した値に1を加算した結果が101であれば0を元の乱数カウンタ記憶領域に記憶する。また、取得した値に1を加算した結果、乱数カウンタが一周していると判定した場合にはそれぞれの乱数カウンタに対応する初期値生成用乱数カウンタの値を取得し、乱数カウンタの記憶領域にセットする。例えば、0?100の数値範囲で変動する大当り用特図乱数生成用の乱数カウンタから値を取得し、取得した値に1を加算した結果が、RAM308に設けた所定の初期値記憶領域に記憶している前回設定した初期値と等しい値(例えば7)である場合に、大当り用特図乱数生成用の乱数カウンタに対応する初期値生成用乱数カウンタから値を初期値として取得し、大当り用特図乱数生成用の乱数カウンタにセットすると共に、大当り用特図乱数生成用の乱数カウンタが次に1周したことを判定するために、今回設定した初期値を上述の初期値記憶領域に記憶しておく。なお、本実施形態では特図1に関する乱数を取得するためのカウンタと特図2に関する乱数を取得するためのカウンタとを別々に設けているが、同一のカウンタを用いてもよい。
【1584】
ステップS3211では、演出乱数更新処理を行う。この演出乱数更新処理では、上記ステップS3019と同様に、主制御部300で使用する演出用乱数を生成するための乱数カウンタを更新する。ステップS3213では、タイマ更新処理を行う。このタイマ更新処理では、普通図柄表示装置210に図柄を変動・停止表示する時間を計時するための普図表示図柄更新タイマ、第1特図表示装置212に図柄を変動・停止表示する時間を計時するための特図1表示図柄更新タイマ、第2特図表示装置214に図柄を変動・停止表示する時間を計時するための特図2表示図柄更新タイマ、所定の入賞演出時間、所定の開放時間、所定の閉鎖時間、所定の終了演出期間などを計時するためのタイマなどを含む各種タイマを更新する。
【1585】
ステップS3215では、入賞口カウンタ更新処理を行う。この入賞口カウンタ更新処理では、入賞口234、230や始動口230、232、228に入賞があった場合に、RAM308に各入賞口ごと、あるいは各始動口ごとに設けた賞球数記憶領域の値を読み出し、1を加算して、元の賞球数記憶領域に設定する。
【1586】
また、ステップS3217では、入賞受付処理を行う。この入賞受付処理では、第1特図始動口230に入賞があり、且つ、保留している特図1変動遊技の数が所定数(本実施形態では4)未満である場合には、所定の始動情報を取得する。すなわち、保留数が所定数未満であれば、図75に示す乱数生成回路318から、特図1当選乱数の元になるハードウェア乱数を得、加工を施すことによって特図1当選乱数を取得する。この特図1当選乱数を取得する処理をより具体的に説明すると、乱数生成回路318の特図1に対応するチャンネルの乱数をラッチするためのラッチ信号を出力する処理(具体的には、ソフトラッチレジスタ3186の特図1のチャンネルに対応する領域に所定の値を書き込む処理)を実行するとともに、このラッチ信号によってラッチされた乱数を取得するためのリード信号を出力する処理(具体的には、乱数レジスタ3188のうちの特図1のチャンネルに対応する乱数レジスタに対してリード信号を出力する処理)を実行してラッチされている乱数を取得するとともに、取得した乱数を加工(例えば、ユーザプログラムで生成しているソフトウェア乱数を加算する処理)する処理である。なお、第2特図始動口232に入賞があった場合も同様の処理を実行する。なお、本実施形態では、乱数生成回路318から乱数を取得する方法として特図1および2に対応するチャンネルの乱数をラッチするためのラッチ信号を出力する処理を行った後にラッチした乱数を取得するリード信号を出力する方法を採用しているが、特図1および2に対応するチャンネルの乱数を直読みする処理(具体的には、乱数レジスタ3188の値を直接リードする処理)を実行して取得するようにしてもよい。さらに、本実施形態では、特図1および2のラッチされた乱数を取得するためのリード信号を出力する処理(乱数レジスタ3188の値を直接リードする処理とは異なる)を主制御部タイマ割込み処理において実行するように構成しているが、この処理に関しては上述した主制御部メイン処理において実行するように構成してもよく、この場合は、後述する特図関連抽選処理を合わせて主制御部メイン処理において実行するように構成すればよく、特図1および2に対応するチャンネルの乱数値を直読みする処理を実行する場合においては、特図関連抽選処理のみを主制御部メイン処理おいて実行するように構成すればよい。また、本実施形態では、特図1当選乱数および特図2当選乱数それぞれを、乱数生成回路318から取得した乱数を加工して導出しているが、このような場合に限らず、乱数生成回路318から取得した乱数を特図1当選乱数および特図2当選乱数としてもよい。また、RAM308に設けた乱数カウンタ記憶領域から、大当り用特図1乱数、小当り用特図1乱数、およびハズレ用特図1乱数を取得する。大当り用特図1乱数、小当り用特図1乱数、およびハズレ用特図1乱数は、RAM308に設けられたソフトウェア乱数カウンタから導出されたソフトウェア乱数を加工した値(ソフトウェア乱数の値+Rレジスタの値+1)である。さらに、図75に示すカウンタ回路312から特図1変動時間決定用乱数を取得する。図75に示す乱数生成回路318、カウンタ回路312、RAM308に設けられたソフトウェア乱数カウンタ、および乱数加工を施す主制御部300を併せたものが、始動情報を生成して導出するものであり、始動情報導出手段(第1の始動情報導出手段,第2の始動情報導出手段)の一例に相当する。ここで取得された各種乱数(始動情報)は、RAM308に設けた特図1の保留記憶部の、入賞順(保留順)に応じた空いている領域に、1セットの始動情報として記憶される。この特図1の保留記憶部は、第1特図始動口230(第1の始動領域)に遊技球が進入した場合に取得した始動情報を所定の第1上限個数(ここでは4個)まで記憶可能な第1の始動情報記憶手段に相当する。このとき各種乱数(始動情報)をRAM308に設けた一時領域に一旦記憶し、その一時領域に記憶された値を特図1の保留記憶部に記憶してもよく、この場合、一時領域を第1の始動情報記憶手段としてもよいし、特図1の保留記憶部および一時領域を第1の始動情報記憶手段としてもよい。また、主制御部300のCPU304は、RAM308に記憶されている特図1の保留数の値に1を加算し、特図1の保留数が1増加する。したがって、主制御部300のCPU304が保留手段の一例に相当する。また、特図2についても、特図1と同様に始動情報である各乱数を取得し、取得した乱数をRAM308に設けた特図2の保留記憶部に、1セットの始動情報として同様に記憶され、さらに、RAM308に記憶されている特図2の保留数の値に1を加算する。特図2の保留記憶部は、第2特図始動口232(第2の始動領域)に遊技球が進入した場合に取得した始動情報を所定の第2上限個数(ここでは4個)まで記憶可能な第2の始動情報記憶手段に相当する。このとき各種乱数(始動情報)をRAM308に設けた一時領域に一旦記憶し、その一時領域に記憶された値を特図2の保留記憶部に記憶してもよく、この場合一時領域を第2の始動情報記憶手段としてもよいし、特図2の保留記憶部および一時領域を第2の始動情報記憶手段としてもよい。
【1587】
また、普図始動口228を球が通過したことを検出し、且つ、保留している普図変動遊技の数が所定数(本実施形態では4)未満の場合には、そのタイミングで、図75に示す乱数生成回路318から普図当選乱数を所得し、RAM308に設けた特図用とは別の乱数記憶領域に記憶する。この乱数生成回路318から普図当選乱数を取得する点についても、さらに後述する。
【1588】
また、この入賞受付処理では、所定の球検出センサにより、第1特図始動口230、第2特図始動口232、普図始動口228、または可変入賞口234の入賞(入球)を検出した場合に、第1副制御部400に送信すべき送信情報に、第1特図始動口230、第2特図始動口232、普図始動口228、および可変入賞口234の入賞(入球)の有無を示す入賞受付情報を設定する。なお、特図の始動情報にしても普図の始動情報にしても、保留数がそれぞれの所定数以上であれば始動情報を取得せずに、ステップS3219に進む。
【1589】
ステップS3219では、払出要求数送信処理を行う。図75に示す払出制御部600に出力する出力予定情報および払出要求情報は1バイトで構成しており、ビット7にストローブ情報(オンの場合、データをセットしていることを示す)、ビット6に電源投入情報(オンの場合、電源投入後一回目のコマンド送信であることを示す)、ビット4?5に暗号化のための今回加工種別(0?3)、およびビット0?3に暗号化加工後の払出要求数を示すようにしている。
【1590】
ステップS3221では、普図状態更新処理を行う。この普図状態更新処理は、普図の状態に対応する複数の処理のうちの1つの処理を行う。例えば、普図変動表示の途中(上述する普図表示図柄更新タイマの値が1以上)における普図状態更新処理では、普通図柄表示装置210を構成する7セグメントLEDの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。この制御を行うことで、普通図柄表示装置210は普図の変動表示(普図変動遊技)を行う。
【1591】
また、普図変動表示時間が経過したタイミング(普図表示図柄更新タイマの値が1から0になったタイミング)における普図状態更新処理では、当りフラグがオンの場合には、当り図柄の表示態様となるように普通図柄表示装置210を構成する7セグメントLEDの点灯・消灯駆動制御を行い、当りフラグがオフの場合には、ハズレ図柄の表示態様となるように普通図柄表示装置210を構成する7セグメントLEDの点灯・消灯駆動制御を行う。また、主制御部300のRAM308には、普図状態更新処理に限らず各種の処理において各種の設定を行う設定領域が用意されている。ここでは、上記点灯・消灯駆動制御を行うとともに、その設定領域に普図停止表示中であることを示す設定を行う。この制御を行うことで、普通図柄表示装置210は、当り図柄(図76(c)に示す普図A)およびハズレ図柄(図76(c)に示す普図B)いずれか一方の図柄の確定表示を行う。さらにその後、所定の停止表示期間(例えば500m秒間)、その表示を維持するためにRAM308に設けた普図停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により、確定表示された図柄が所定期間停止表示され、普図変動遊技の結果が遊技者に報知される。
【1592】
また、普図変動遊技の結果が当りであれば、後述するように、普図当りフラグがオンされる。この普図当りフラグがオンの場合には、所定の停止表示期間が終了したタイミング(普図停止時間管理用タイマの値が1から0になったタイミング)における普図状態更新処理では、RAM308の設定領域に普図作動中を設定するとともに、所定の開放期間(例えば2秒間)、第2特図始動口232の羽根部材2321の開閉駆動用のソレノイド(332)に、羽根部材2321を開放状態に保持する信号を出力するとともに、RAM308に設けた羽根開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。このようにして一対の羽根部材2321の開放制御を行う主制御部300のCPU304が、可変始動領域制御を行う可変始動領域制御手段の一例に相当する。一方、非電サポ状態であれば、RAM308の設定領域に普図非作動中を設定するとともに、第2特図始動口232の羽根部材2321の開閉駆動用のソレノイド(332)には、何ら信号を出力しない。こうすることで、羽根部材2321は閉じた状態のままになる。なお、羽根部材2321を閉じた状態に維持するための信号を必ず出力するようにしてもよい。
【1593】
また、電サポ状態であった場合には、所定の開放期間が終了したタイミング(羽根開放時間管理用タイマの値が1から0になったタイミング)で開始する処理では、所定の閉鎖期間(例えば0.1秒間)、羽根部材2321の開閉駆動用のソレノイド(332)に、羽根部材2321を閉鎖状態に保持する信号を出力するとともに、RAM308に設けた羽根閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。
【1594】
また、電サポ状態であった場合には、所定の閉鎖期間が終了したタイミング(羽根閉鎖時間管理用タイマの値が1から0になったタイミング)で開始する普図状態更新処理において、RAM308の設定領域に普図非作動中を設定する。さらに、普図変動遊技の結果がハズレであれば、後述するように、普図ハズレフラグがオンされる。この普図ハズレフラグがオンの場合には、上述した所定の停止表示期間が終了したタイミング(普図停止時間管理用タイマの値が1から0になったタイミング)における普図状態更新処理でも、RAM308の設定領域に普図非作動中を設定する。普図非作動中の場合における普図状態更新処理では、何もせずに次のステップS3223に移行するようにしている。続いて、ステップS3223では普図関連抽選処理を実行する。
【1595】
図163(a)は、普図関連抽選処理の流れを示すフローチャートである。図163(a)に示す普図関連抽選処理では、まず、普図保留情報があるか否かを判定する(ステップS3223a)。ここにいう普図保留情報とは、普図の保留数を指す。すなわち、ここでは、保留している普図変動遊技の数が1以上であるか否かを判定する。なお、普図の保留数をデータとして持っていなくとも、例えば、保留に対応した乱数(普図当選乱数)を普図保留情報として認識するようにしても良い。普図保留情報がなければ、この普図関連抽選処理は終了になり、普図保留情報があればステップS3223bに進む。ステップS3223bでは、普図変動遊技が行われているか否かを判定し、行われていればこの普図関連抽選処理は終了になり、行われていなければステップS3223cに進む。ステップS3223cでは、第2特図始動口232の開閉制御が行われているか否か(普図作動中か否か)を判定し、普図作動中であればこの普図関連抽選処理は終了になり、普図非作動中であればステップS3223dに進む。ステップS3223dでは、上述の乱数記憶領域に記憶している普図当選乱数に基づいた乱数抽選を行う。
【1596】
図163(b)は、普図抽選テーブルを示す図である。このテーブルは、主制御部300のROM306に記憶されている。主制御部300のCPU304は、RAM308の乱数記憶領域から普図当選乱数を取り出し、時短フラグを参照し、時短フラグがオンであれば普図高確率状態(電サポ中)であるため、取得した普図当選乱数から普図高確率状態の普図当選データを引き、キャリーが発生した場合(普図当選乱数よりも普図当選データの値が大きい場合)は普図当選とし、キャリーが発生しなかった場合は普図ハズレになる。すなわち、普図当選乱数範囲は0?9になる。普図高確率状態では、普図当選乱数は、図148に示す乱数生成回路318のチャンネルCH4から出力される。このチャンネルCH4には、図161に示す乱数生成回路初期設定処理における乱数生成範囲の設定(ステップS3053a)において0?9の乱数生成範囲が設定されており、普図高確率状態の普図当選乱数の取り得る範囲は0?9になる。したがって、普図高確率状態における普図当選確率は1/1になる。一方、時短フラグがオフであれば普図低確率状態(非電サポ中)であるため、取得した普図当選乱数から、普図高確率状態のデータと同じ普図低確率状態の普図当選データを引き、キャリーが発生した場合(普図当選乱数よりも普図当選データの値が大きい場合)は普図当選とし、キャリーが発生しなかった場合は普図ハズレになる。すなわち、普図低確率状態の場合でも普図当選乱数範囲は0?9になる。普図低確率状態では、普図当選乱数は、図148に示す乱数生成回路318のチャンネルCH3から出力される。このチャンネルCH3には、乱数生成範囲の設定(ステップS3053a)において0?999の乱数生成範囲が設定されており、普図低確率状態の普図当選乱数の取り得る範囲は0?999になる。したがって、普図低確率状態における普図当選確率は1/100になる。
【1597】
本実施形態では、普図当選乱数の取り得る範囲(乱数生成範囲)を、デフォルトの0?65535から0?999に制限することで大当り確率を、きりのよい1/100にすることができる。また、普図当選データを、普図高確率状態と普図低確率状態で同じ値にすることができる。乱数生成範囲を制限せずに確率を決定することは開発工数の増大を招くとともに誤った確率設計の原因となってしまう場合がある。特に、一の契機に基づいて複数回の抽選を行う場合に煩雑さはより顕著になってしまう。よって、乱数生成範囲を制限することは開発工数を削減するとともに、抽選処理の安定化を図ることができるといえる。また、普図当選データを、普図高確率状態と普図低確率状態で共通化することも、開発工数を削減するとともに、抽選処理の安定化を図ることができるといえる。
【1598】
普図抽選に当選した場合にはRAM308に設けた当りフラグをオンに設定する。ハズレ(不当選)の場合には、当りフラグをオフに設定する。また、普図抽選の結果に関わらず、図75に示すカウンタ回路312から普図変動時間決定用乱数を取得し、取得した普図変動時間決定用乱数に基づいて複数の変動時間のうちから普図表示装置210に普図を変動表示する時間を1つ選択し、この変動表示時間を、普図変動表示時間として、RAM308に設けた普図変動時間記憶領域に記憶する。普図変動時間決定用乱数値を用いた抽選で複数の変動時間のうちから普図変動時間を1つ選択する主制御部300のCPU304が、抽選手段の一例に相当する。ここで、普図変動時間の抽選処理は、普図の当りか否かを抽選する当否判定とは異なる。なお、保留している普図変動遊技の数は、RAM308に設けた普図保留数記憶領域に記憶するようにしており、ステップS3223eを実行するたびに、保留している普図変動遊技の数から1を減算した値を、この普図保留数記憶領域に記憶し直すようにしている。また、カウンタ回路312からの普図変動時間決定用乱数の取得は、普図始動口228への入賞時に行ってもよい。
【1599】
ステップS3223eでは、上述の乱数記憶領域から、先の普図抽選に使用した普図当選乱数を消去し、この普図関連抽選処理は終了になる。続いて、特図先読み処理(ステップS3225)が実行される。この先読み処理では、まず、RAM308に設けられた特図1の保留記憶部内の特図1当選乱数を先読みするか、あるいは特図2の保留記憶部内の特図2当選乱数を先読みする。なお、ここでの先読みとは始動情報を当否判定(本抽選)の前に先に読むことを意味するが、以降の先読み処理では、先読みという言葉を、先(当否判定(本抽選)の結果)を読むという意味で使用することがある。このステップS3225では、後述する特図関連処理(ステップS3229)で用いる図165(a)に示す特図抽選テーブルの内容と同じ内容の事前判定用テーブルを用い、先読みした特図当選乱数に基づく当否判定の事前判定を行う。なお、特図関連処理では、特図抽選テーブルを用いて特図変動遊技の当否判定を改めて行い、ここでの判定結果は、あくまで事前判定の結果になる。当否判定の事前判定では、「大当り」という結果か、あるいは「大当り」以外という結果が導出され、「大当り」という結果の場合には、RAM308に設けられた特図1の保留記憶部内の大当り用特図1乱数を先読みするか、あるいは特図2の保留記憶部内の大当り用特図2乱数を先読みする。続いて、ステップS3229の特図関連処理で用いる図165(b)に示す停止図柄抽選テーブルの内容と同じ内容の事前判定用テーブルを用い、先読みした大当り用特図乱数に基づく特図の停止図柄の事前判定を行う。
【1600】
なお、特図関連処理では、停止図柄抽選テーブルを用いて特図の停止図柄の抽選を改めて行い、ここでの判定結果は、あくまで事前判定の結果になる。こうして、特図の停止図柄を事前判定すると、先読み予告の実行可否抽選を行う。この先読み予告は、特図関連抽選処理(ステップS3229)が実行される前、すなわち当否判定が行われる前に、当該特図関連抽選処理で行われる当否判定の結果が大当り(ここではより限定して15Rの大当り(15R特別大当りか15R大当り))になることを予告するための報知である。ここでの先読み予告には、停止図柄の事前判定結果が15Rの大当り図柄(特図Aまたは特図B)でなくても、15Rの大当りになるかのように偽りで予告する偽の先読み予告も含まれる。すなわち、先読み予告は、当否判定の結果が15R大当りになる可能性があることを表したり、遊技者に示唆する事前報知、あるいは当否判定の結果が15R大当りになることを遊技者に期待させる事前報知であるといえる。先読み予告の実行可否抽選を行うタイミングで、RAM308に設けられた演出乱数カウンタから演出乱数(例えば、取り得る範囲は0?99)を取得し、取得した演出乱数に基づいて実行可否抽選を行う。なお、停止図柄の事前判定結果を第1副制御部400に送信し、この実行可否抽選は、第1副制御部400が行うようにしてもよい。
【1601】
次に、特図1および特図2それぞれについての特図状態更新処理(ステップS3227)を行うが、最初に、特図2についての特図状態更新処理を行い、次いで、特図1についての特図状態更新処理を行う。特図2状態更新処理は、特図2の状態に応じて、次の8つの処理のうちの1つの処理を行う。例えば、特図2変動表示の途中(上述の特図2表示図柄更新タイマの値が1以上)における特図2状態更新処理では、第2特別図柄表示装置214を構成する7セグメントLEDの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。この制御を行うことで、第2特別図柄表示装置214は特図2の変動表示(特図2変動遊技)を行う。また、コマンド設定送信処理(ステップS3231)で一般コマンド回転開始設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶してから処理を終了する。
【1602】
また、主制御部300のRAM308には、15R大当りフラグ、2R大当りフラグ、第1小当りフラグ、第2小当りフラグ、第1ハズレフラグ、第2ハズレフラグ、確変フラグ、および時短フラグそれぞれのフラグが用意されている。特図2変動表示時間が経過したタイミング(特図2表示図柄更新タイマの値が1から0になったタイミング)で開始する特図2状態更新処理では、後述する特図関連抽選処理における特図決定結果(特図の停止図柄態様)に基づいて第2特図表示装置214を構成する7セグメントLEDの点灯・消灯駆動制御を行い、RAM308の設定領域に特図2停止表示中であることを表す設定を行う。この制御を行うことで、第2特別図柄表示装置214は、15R特別大当り図柄(特図A)、15R大当り図柄(特図B)、2R特別大当り図柄(特図C)、突然時短図柄(特図D)、隠れ確変図柄(特図E)、突然通常図柄(特図F)、第1小当り図柄(特図G)、第2小当り図柄(特図H)、第1ハズレ図柄(特図I)、および第2ハズレ図柄(特図J)のいずれか一つの図柄の確定表示を行う。さらにその後、所定の停止表示期間(例えば500m秒間)その表示を維持するためにRAM308に設けた特図2停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により、確定表示された特図2が所定期間停止表示され、特図2変動遊技の結果が遊技者に報知される。また、RAM308に設けられた電サポ回数記憶部に値がセットされている場合には、その値が1以上であれば、その時短回数から1を減算し、減算結果が1から0となった場合は、特図確率変動中でなければ、時短フラグをオフする。さらに、大当り遊技中や小当り遊技中にも、時短フラグをオフする。すなわち、主制御部300のCPU304は、大当り遊技状態中および小当り遊技状態中(第二の制御状態中)である場合に、非電サポ状態(第一の進入率制御状態)に移行させる。
【1603】
また、後述するコマンド設定送信処理(ステップS3231)で一般コマンド回転停止設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶するとともに、変動表示を停止する図柄が特図2であることを示す特図2識別情報を、後述するコマンドデータに含める情報としてRAM308に追加記憶してから処理を終了する。
【1604】
また、特図2変動遊技の結果が大当りであれば、大当りフラグがオンされる。この大当りフラグがオンの場合には、所定の停止表示期間が終了したタイミング(特図2停止時間管理用タイマの値が1から0になったタイミング)における特図2状態更新処理では、RAM308の設定領域に特図2作動中を設定するとともに、所定の入賞演出期間(例えば3秒間)すなわち装飾図柄表示装置208による大当りを開始することを遊技者に報知する画像を表示している期間待機するためにRAM308に設けた特図2待機時間管理用タイマの記憶領域に入賞演出期間を示す情報を設定する。また、コマンド設定送信処理(ステップS3231)で一般コマンド入賞演出設定送信処理を実行させるために上述の送信情報記憶領域に5Hを送信情報(コマンド種別)として追加記憶する。
【1605】
また、所定の入賞演出期間が終了したタイミング(特図2待機時間管理用タイマの値が1から0になったタイミング)で開始する特図2状態更新処理では、所定の開放期間(例えば29秒間、または可変入賞口234に所定球数(例えば10球)の遊技球の入賞を検出するまで)可変入賞口234の扉部材2341の開閉駆動用のソレノイド(332)に、扉部材2341を開放状態に保持する信号を出力するとともに、RAM308に設けた扉開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。また、コマンド設定送信処理(ステップS3231)で一般コマンド大入賞口開放設定送信処理を実行させるために上述の送信情報記憶領域に7Hを送信情報(コマンド種別)として追加記憶する。
【1606】
また、所定の開放期間が終了したタイミング(扉開放時間管理用タイマの値が1から0になったタイミング)で開始する特図2状態更新処理では、所定の閉鎖期間(例えば1.5秒間)可変入賞口234の扉部材2341の開閉駆動用のソレノイド(332)に、扉部材2341を閉鎖状態に保持する信号を出力するとともに、RAM308に設けた扉閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。また、コマンド設定送信処理(ステップS3231)で大入賞口閉鎖設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【1607】
また、この扉部材の開放・閉鎖制御を所定回数(本実施例では15ラウンドか2ラウンド)繰り返し、終了したタイミングで開始する特図2状態更新処理では、所定の終了演出期間(例えば3秒間)すなわち装飾図柄表示装置208による大当りを終了することを遊技者に報知する画像を表示している期間待機するように設定するためにRAM308に設けた演出待機時間管理用タイマの記憶領域に演出待機期間を示す情報を設定する。
【1608】
以上説明したように、主制御部300のCPU304は、大当り遊技状態中に、可変入賞口234の扉部材2341の開閉状態の変化制御を行う可変入賞制御手段の一例に相当する。なお、主制御部300のROM306には、可変入賞口234の扉部材2341の開閉パターンが記憶されており、主制御部300のCPU304は、そのROM306から、特図変動遊技の当否判定に応じた開閉パターンを取得する。
【1609】
また、主制御部300のCPU304は、特図決定結果が表す停止図柄態様に基づいて、大当り遊技の終了と同時に、RAM308に設けられた確変フラグや時短フラグをオンに設定する。すなわち、主制御部300のCPU304は、後述する特図抽選処理で特図決定結果が「特図A」や「特図C」である場合には確変フラグと時短フラグの双方をオンに設定する。また、特図決定結果が「特図E」である場合には確変フラグと時短フラグのうち確変フラグのみをオンに設定する。さらに、特図決定結果が「特図B」や「特図D」である場合には確変フラグと時短フラグのうち時短フラグのみをオンに設定するとともにRAM308に設けられた電サポ回数記憶部に電サポ回数100回をセットする。確変フラグがオンに設定されていると、特図高確率状態(確率変動中)であり、大当り遊技終了後に大当りに当選する確率が高くなっている状態(特図高確率状態)である。一方、確変フラグがオンに設定されていない(オフに設定されている)と、特図低確率状態である。したがって、確変フラグの設定状態は、当否判定(特図の抽選)の結果に影響を与える。また、時短フラグがオンに設定されていると電サポ状態であり、電チューが開きやすい(例えば当りやすい)、一回の当りに基づく開放時間が長い、一回の当りに基づく開放回数が多いなど可変始動領域制御が遊技者に有利になるように行われる。反対に、時短フラグがオフに設定されていると非電サポ状態であり、可変始動領域制御が遊技者に不利になるように行われる。したがって、時短フラグの設定状態は、可変始動領域制御にも影響を与える。よって、確変フラグおよび/または時短フラグの設定状態を表す情報は、遊技制御情報の一例に相当し、主制御部300のCPU304は遊技制御情報決定手段の一例に相当する。
【1610】
さらに、コマンド設定送信処理(ステップS3231)で一般コマンド終了演出設定送信処理を実行させるために上述の送信情報記憶領域に6Hを送信情報(コマンド種別)として追加記憶する。
【1611】
また、所定の終了演出期間が終了したタイミング(演出待機時間管理用タイマの値が1から0になったタイミング)で開始する特図2状態更新処理では、RAM308の設定領域に特図2非作動中を設定する。さらに、特図2変動遊技の結果がハズレであれば、ハズレフラグがオンされる。このハズレフラグがオンの場合には、上述した所定の停止表示期間が終了したタイミング(特図2停止時間管理用タイマの値が1から0になったタイミング)における特図2状態更新処理でも、RAM308の設定領域に特図2非作動中を設定する。特図2非作動中の場合における特図2状態更新処理では、何もせずに次の処理に移行するようにしている。
【1612】
特図2状態更新処理が終了すると、特図1状態更新処理を行う。この特図1状態更新処理では、特図1の状態に応じて、上述の特図2状態更新処理で説明した各処理を行う。この特図1状態更新処理で行う各処理は、上述の特図2状態更新処理で説明した内容の「特図2」を「特図1」と読み替えた処理と同一であるため、その説明は省略する。なお、特図2状態更新処理と特図1状態更新処理の順番は逆でもよい。
【1613】
ステップS3227における特図状態更新処理が終了すると、今度は、特図1および特図2それぞれについての特図関連抽選処理を行う。この特図関連抽選処理を実行する主制御部300のCPU304が当否判定手段の一例に相当する。主制御部300は、最初に特図2についての処理(特図2関連抽選処理)を行い、その後、特図1についての処理(特図1関連抽選処理)を行う。このように、主制御部300が特図2関連抽選処理を特図1関連抽選処理よりも先に行うことで、同じタイミングで、第1特図始動口230に遊技球が進入したことに基づいて始動情報を取得し、かつ第2特図始動口232に遊技球が進入したことに基づいて始動情報を取得した場合や、特図2変動遊技の開始条件と、特図1変動遊技の開始条件が同時に成立した場合や、特図2変動遊技の開始条件と特図1変動遊技の開始条件の両方が成立している場合でも、特図2変動遊技が先に変動中となるため、特図1変動遊技は変動を開始しない。すなわち、本実施形態のパチンコ機100は、特図2優先変動を行うものであり、第2特図始動口232への入賞に基づく抽選(特図2の当否判定)を、第1特図始動口230への入賞に基づく抽選(特図1の当否判定)よりも優先して行う。言い換えれば、本実施形態のパチンコ機100では、第1の特別始動領域に遊技球が進入した場合に第1の乱数記憶領域に乱数を最大保留数まで格納し、第2の特別始動領域に遊技球が入賞した場合に第2の乱数記憶領域に乱数を最大保留数まで格納する入賞記憶部と、前記第1の乱数記憶領域および前記第2の乱数記憶領域の両方に乱数が記憶されている場合に、前記第1の乱数記憶領域に前記乱数が記憶された時期および前記第2の乱数記憶領域に前記乱数が記憶された時期とは無関係に該第2の乱数記憶領域に記憶されている乱数に基づいて当否判定を行うとともに、前記第1の乱数記憶領域に乱数が記憶されておらず、かつ前記第2の乱数記憶領域に乱数が記憶されている場合には、該第2の乱数記憶領域に記憶されている乱数に基づいて当否判定を行い、前記第2の乱数記憶領域に乱数が記憶されておらず、かつ前記第1の乱数記憶領域に乱数が記憶されている場合には、該第1の乱数記憶領域に記憶されている乱数に基づいて当否判定を行う当否判定手段を備えている。また、第1特図表示装置212あるいは第2特図表示装置214による特図変動遊技の大当り判定の結果の報知は、主制御部300で行われ、第2特図始動口232への入賞に基づく当否判定の結果報知が、第1特図始動口230への入賞に基づく当否判定の結果報知よりも優先して行われ、当否判定が行われていない始動情報として、特図1の始動情報と特図2の始動情報のうちの特図1の始動情報のみが残っている状態で、特図2の始動情報が新たに記憶された場合には、新たに記憶された特図2の始動情報に基づく当否判定の結果の報知が、既に記憶されていた特図1の始動情報に基づく当否判定の結果の報知よりも先に行われる。また、始動情報を取得する始動情報取得手段は、第1の始動情報記憶手段および第2の始動情報記憶手段のうちの両方に始動情報が記憶されている場合には、該第2の始動情報記憶手段から始動情報を取得し、該第1の始動情報記憶手段および該第2の始動情報記憶手段のうちの一方に始動情報が記憶されている場合には、始動情報が記憶されている始動情報記憶手段から始動情報を取得するものである。なお、特図2状態更新処理に続いて先に特図2関連抽選処理を行い、それから、特図1状態更新処理を行い、その後、特図1関連抽選処理を行うようにしてもよい。
【1614】
図164は、特図関連抽選処理の流れを示すフローチャートである。この図164に示す特図関連抽選処理では、特図1と特図2を区別しないで示しているが、先に特図2についてステップS3229a?ステップS3229fまでの処理を行い、その後、特図1についてステップS3229a?ステップS3229fまでの処理を行う。ここでは、特図2と特図1を区別しないで説明する。
【1615】
図164に示す特図関連抽選処理では、まず、特図保留情報があるか否かを判定する(ステップS3229a)。ここにい特図保留情報とは、特図の保留数を指す。すなわち、ここでは、保留している特図変動遊技の数が1以上であるか否かを判定する。なお、特図の保留数をデータとして持っていなくとも、例えば、保留に対応した乱数(特図当選乱数)を特図保留情報として認識するようにしても良い。特図保留情報がなければ、この特図関連抽選処理は終了になり、特図保留情報があればステップS3229bに進む。ステップS3229bでは、特図表示装置(212,214)が特図変動表示中であるか、または停止表示中であるか否かを判定し、いずれかの表示中である場合には、この特図関連抽選処理は終了になり、いずれの表示中でもない場合には、ステップS3229cに進む。ステップS3229cでは、特図作動中であるか否かを判定し、特図作動中であれば、この特図関連抽選処理は終了になり、特図非作動中であれば、ステップS3229dに進む。
【1616】
ステップS3229dでは特図抽選処理を行う。ここではまず、RAM308に設けられた特図の保留記憶部から、最も過去に格納した始動情報である1セット分の乱数(特図当選乱数、大当り用特図乱数、小当り用特図乱数、ハズレ用特図乱数、および特図変動時間決定用乱数)を取り出し、その保留記憶部にまだ格納されている始動情報(乱数のセット)を、今記憶されている領域から隣の領域に移し替える。すなわち、最も過去に格納した始動情報を特図の保留記憶部から取り出し、さらに特図の保留記憶部に始動情報が格納されていれば、N番目に古い始動情報を特図2の保留記憶部におけるN-1番目に古い始動情報として設定したことになる。また、RAM308に記憶している保留数を1減算する。RAM308の特図の保留記憶部から1セット分の乱数(特図当選乱数、大当り用特図乱数、小当り用特図乱数、ハズレ用特図乱数、および特図変動時間決定用乱数)を取り出す処理を行う主制御部300のCPU304が、始動情報取得手段の一例に相当する。
【1617】
図165(a)は特図抽選テーブルを示す図である。このテーブルは、主制御部300のROM306に記憶されている。
【1618】
主制御部300のCPU304は、RAM308の保留記憶部から始動情報を取り出すと、確変フラグを参照し、確変フラグがオンであれば確率変動中(特図高確率状態)であるため、取得した特図当選乱数から確率変動中の特図大当り当選データを引き、キャリーが発生した場合(特図当選乱数よりも特図当選データの値が大きい場合)は特図大当りに当選とし、キャリーが発生しなかった場合は特図大当りには不当選になる。すなわち、特図大当り当選乱数範囲は0?124になる。確率変動中では、特図当選乱数の元になる乱数は、図148に示す乱数生成回路318のチャンネルCH2から出力される。このチャンネルCH2には、図161に示す乱数生成回路初期設定処理における乱数生成範囲の設定(ステップS3053a)において0?4999の乱数生成範囲が設定されており、確率変動中の特図当選乱数の取り得る範囲は0?4999になる。したがって、確率変動中における特図大当りの当選確率は1/40になる。
【1619】
一方、確変フラグがオフであれば非確率変動中(特図低確率状態)であるため、取得した特図当選乱数から、確率変動中のデータと同じ非確率変動中の特図大当り当選データを引き、キャリーが発生した場合(特図当選乱数よりも特図当選データの値が大きい場合)は特図大当りに当選とし、キャリーが発生しなかった場合は特図大当りには不当選になる。すなわち、非確率変動中でも特図大当り当選乱数範囲は0?124になる。非確率変動中では、特図当選乱数の元になる乱数は、図148に示す乱数生成回路318のチャンネルCH1から出力される。このチャンネルCH1には、乱数生成範囲の設定(ステップS3053a)において0?49999の乱数生成範囲が設定されており、非確率変動中の特図当選乱数の取り得る範囲は0?49999になる。したがって、非確率変動中における特図大当りの当選確率は1/400になる。
【1620】
本実施形態では、特図当選乱数の取り得る範囲(乱数生成範囲)を、デフォルトの0?65535から0?49999に制限することで大当り確率を、きりのよい1/400にすることができる。また、特図大当り当選データを、確率変動中と非確率変動中で同じ値にすることができる。乱数生成範囲を制限せずに確率を決定することは開発工数の増大を招くとともに誤った確率設計の原因となってしまう場合がある。特に、一の契機に基づいて複数回の抽選を行う場合に煩雑さはより顕著になってしまう。よって、乱数生成範囲を制限することは開発工数を削減するとともに、抽選処理の安定化を図ることができるといえる。また、特図大当り当選データを、確率変動中と非確率変動中で共通化することも、開発工数を削減するとともに、抽選処理の安定化を図ることができるといえる。
【1621】
図165(a)では、特図大当りの抽選テーブルしか示していないが、特図小当りの当選データとして所定の値が用意されている。主制御部300のCPU304は、取得した特図当選乱数から特図大当り当選データを引き、キャリーが発生しなかった場合(特図当選乱数よりも特図当選データの値が小さい場合)には、今度は、特図大当り当選データを引いた値から特図小当り当選データを引き、ここでキャリーが発生した場合(特図当選乱数よりも特図小当り当選データの値が大きい場合)は特図小当りに当選とし、ここでもキャリーが発生しなかった場合はハズレになる。なお、ハズレの当選データを別途設けておいてもよい。こうして、特図の「大当り」、「小当り」、「ハズレ」が判定され、判定結果を特図当否判定結果として得る。なお、保留している特図変動遊技の数は、RAM308に設けた特図保留数記憶領域に記憶するようにしており、ステップS3229dを実行するたびに、保留している特図変動遊技の数から1を減算した値を、この特図保留数記憶領域に記憶し直すようにしている。
【1622】
次いで、図164に示す特図関連抽選処理では、特図当否判定結果に基づいて特図の停止図柄をソフトウェア乱数を用いて抽選する(ステップS3229e)。図165(b)は、停止図柄抽選テーブルを示す図である。このテーブルも、主制御部300のROM306に記憶されている。この停止図柄抽選テーブルは、当否判定結果ごとに特図の停止図柄態様(図76(a)参照)に対応した図柄当選データが規定されている。また、同図(b)には、当選確率も示されている。
【1623】
主制御部300のCPU304は、当否判定結果が大当りの場合であれば、RAM308の保留記憶部から先に取得した1セット分の乱数のうちの大当り用特図乱数(取り得る数値範囲は0?99)から特図A、特図B、・・・特図Fの順序で各停止図柄に対応した図柄当選データを徐々に減算し、キャリーが発生した場合の停止図柄を特図決定結果とする。また、当否判定結果が小当りの場合であれば、RAM308の保留記憶部から先に取得した1セット分の乱数のうちの小当り用特図乱数(取り得る数値範囲は0?99)から特図Gの図柄当選データを引き、キャリーが発生した場合は「特図G」に当選とし、キャリーが発生しなかった場合には、特図Gの図柄当選データを引いた値からさらに特図Hの図柄当選データを引き、ここではキャリーが発生するため「特図H」に当選とする。なお、特図Hの図柄当選データを引く前に、「特図H」に当選したと判定してもよい。このようにして、当否判定結果が小当りの場合には、特図決定結果として「特図G」または「特図H」を決定する。さらに、当否判定結果がハズレの場合であれば、RAM308の保留記憶部から先に取得した1セット分の乱数のうちのハズレ用特図乱数(取り得る数値範囲は0?99)から特図Iの図柄当選データを引き、キャリーが発生した場合は「特図I」に当選とし、キャリーが発生しなかった場合には、特図Iの図柄当選データを引いた値からさらに特図Jの図柄当選データを引き、ここではキャリーが発生するため「特図J」に当選とする。なおここでも、特図Jの図柄当選データを引く前に、「特図J」に当選したと判定してもよい。このようにして、当否判定結果がハズレの場合には、特図決定結果として「特図I」または「特図J」を決定する。なお、第1副制御部400では、ここで決定された特図決定結果に応じた装飾図柄の組合せである停止図柄態様を決定する。
【1624】
また、RAM308の保留記憶部から先に取得した1セット分の乱数のうちの特図変動時間決定用乱数(取り得る数値範囲は0?255)を取得し、取得した特図変動時間決定用乱数を用いた抽選で、、特図決定結果に基づいて、複数の変動時間のうちから特図表示装置(212,214)に特図を変動表示する時間(特図変動時間)を1つ選択する。なお、第1副制御部400では、ここで決定された特図変動時間に応じた装飾図柄表示装置208の演出態様を決定する。特図変動時間決定用乱数値を用いた抽選で複数の変動時間のうちから特図変動時間を1つ選択する主制御部300のCPU304も、抽選手段の一例に相当する。ここで、特図変動時間の抽選処理は、特図の大当りか否かを抽選する当否判定とは異なり、特図の図柄を決定する抽選とも異なる、演出に関する抽選処理に相当する。すなわち、制御状態の変更とは無関係であって、賞球の払出にも無関係な抽選処理である。
【1625】
ステップS3229fでは、RAM308の保留記憶部から先に取得した1セット分の乱数を消去し、この特図関連抽選処理は終了になる。ステップS3229の特図関連抽選処理に続いて行われるステップS3231では、コマンド設定送信処理を行い、各種のコマンドが第1副制御部400に送信される。なお、第1副制御部400に送信する出力予定情報は本実施形態では16ビットで構成しており、ビット15はストローブ情報(オンの場合、データをセットしていることを示す)、ビット11?14はコマンド種別(本実施形態では、基本コマンド、図柄変動開始コマンド、図柄変動停止コマンド、入賞演出開始コマンド、終了演出開始コマンド、当りラウンド数指定コマンド、復電コマンド、RAMクリアコマンド、特図保留増加コマンド、普図保留増加コマンドなどコマンドの種類を特定可能な情報)、ビット0?10はコマンドデータ(コマンド種別に対応する所定の情報)で構成している。
【1626】
具体的には、ストローブ情報は上述のコマンド送信処理でオン、オフするようにしている。また、コマンド種別が図柄変動開始コマンドの場合であればコマンドデータに、特図停止図柄を表す情報、制御状態を表す情報(時短フラグおよび確変フラグの設定状態を表す情報)、特図変動時間を表す情報などを示す情報を含み、図柄変動停止コマンドの場合であれば、特図停止図柄を表す情報(特図決定結果)、制御状態を表す情報などを含み、入賞演出開始コマンドおよび終了演出開始コマンドの場合であれば、制御状態を表す情報などを含み、当りラウンド数指定コマンドの場合であれば制御状態を表す情報、当りラウンド数などを含むようにしている。コマンド種別が基本コマンドを示す場合は、コマンドデータにデバイス情報、第1特図始動口230への入賞の有無、第2特図始動口232への入賞の有無、可変入賞口234への入賞の有無などを含む。
【1627】
また、上述の一般コマンド回転開始設定送信処理では、コマンドデータにRAM308に記憶している、特図停止図柄を表す情報(特図決定結果)、制御状態を表す情報、特図変動時間を表す情報、保留している第1特図変動遊技または第2特図変動遊技の数などを示す情報を設定する。
【1628】
上述の一般コマンド回転停止設定送信処理では、コマンドデータにRAM308に記憶している、特図停止図柄を表す情報(特図決定結果)、制御状態を表す情報などを示す情報を設定する。上述の一般コマンド入賞演出開始設定送信処理では、コマンドデータに、RAM308に記憶している、入賞演出期間中に装飾図柄表示装置208・各種ランプ418・スピーカ120に出力する演出制御情報、制御状態を表す情報、保留している第1特図変動遊技または第2特図変動遊技の数などを示す情報を設定する。入演出開始コマンドを受信した第1副制御部400は、その入演出開始コマンドに基づいて第2副制御部500に入賞演出制御コマンドを送信する。入賞演出制御コマンドを受信した第2副制御部500は、装飾図柄表示装置208に、大当り遊技が開始されることを遊技者に報知する画像を所定のオープニング演出期間(例えば3秒間)表示させ、大当り遊技が開始する。
【1629】
上述の一般コマンド終了演出開始設定送信処理では、コマンドデータに、RAM308に記憶している、演出待機期間中に装飾図柄表示装置208・各種ランプ418・スピーカ120に出力する演出制御情報、制御状態を表す情報、保留している第1特図変動遊技または第2特図変動遊技の数などを示す情報を設定する。終了演出開始コマンドを受信した第1副制御部400は、その終了演出開始コマンドに基づいて第2副制御部500に終了演出制御コマンドを送信する。終了演出制御コマンドを受信した第2副制御部500は、装飾図柄表示装置208に大当りを終了することを遊技者に報知する画像を所定の終了演出期間(例えば3秒間)表示させ、大当り遊技が終了する。
【1630】
上述の一般コマンド大入賞口開放設定送信処理では、コマンドデータに、RAM308に記憶している当りラウンド数、現在のラウンド数、制御状態を表す情報などを示す情報を設定する。上述の一般コマンド大入賞口閉鎖設定送信処理では、コマンドデータに、RAM308に記憶している現在のラウンド数、制御状態を表す情報、保留している第1特図変動遊技または第2特図変動遊技の数などを示す情報を設定する。
【1631】
また、このステップS3231では一般コマンド特図保留増加処理も行われる。この一般コマンド特図保留増加処理では、特図保留増加コマンドのコマンドデータにRAM308の送信用情報記憶領域に記憶している特図識別情報(特図1または特図2を示す情報)、制御状態を表す情報、事前判定した特図1あるいは特図2の情報を設定する。
【1632】
さらに、このステップS3231では一般コマンド普図保留増加処理も行われる。この一般コマンド普図保留増加処理では、普図保留増加コマンドのコマンドデータに、制御状態を表す情報等を設定する。また、主制御部300から第1副制御部400には、普図絡みのコマンドとして、普図の変動表示が開始した(する)ことを表す普図変動開始コマンドも送信される。なお、主制御部300から第1副制御部400には、普図の変動表示が停止した(する)ことを表す普図変動停止コマンドや、一対の羽根部材2321が開放を開始した(する)ことを表す電チュー開放開始コマンドや、一対の羽根部材2321が閉鎖した(する)ことを表す電チュー閉鎖コマンドを送信するようにしてもよい。
【1633】
第1副制御部400では、受信した出力予定情報に含まれるコマンド種別により、主制御部300における遊技制御の変化に応じた演出制御の決定が可能になるとともに、出力予定情報に含まれているコマンドデータの情報に基づいて、演出制御内容を決定することができるようになる。また、第1副制御部400では、コマンドに含まれている当りラウンド数と現在のラウンド数に基づき、当り全ラウンドが終了するまでの残りラウンド数を取得する。
【1634】
また、このコマンド設定送信処理では、図75に示す払出制御部600にもコマンドを送信する。払出制御部600に出力する出力予定情報および払出要求情報は1バイトで構成しており、ビット7にストローブ情報(オンの場合、データをセットしていることを示す)、ビット6に電源投入情報(オンの場合、電源投入後一回目のコマンド送信であることを示す)、ビット4?5に暗号化のための今回加工種別(0?3)、およびビット0?3に暗号化加工後の払出要求数を示すようにしている。
【1635】
次に、図162に示す主制御部タイマ割込処理では、外部出力信号設定処理(ステップS3233)を行う。この外部出力信号設定処理では、RAM308に記憶している遊技情報を、情報出力回路336を介してパチンコ機100とは別体の情報入力回路350に出力する。ステップS3235では、デバイス監視処理を行う。
【1636】
図166は、デバイス監視処理の流れを示すフローチャートである。まず、ステップS3235aでは、内部情報レジスタ3101の情報を取得する。なお、このステップS3235aはタイマ割込み毎に実行されるため、内部情報レジスタ3101の情報はタイマ割込み毎に取得されることになる。
【1637】
ステップS3235bでは、ステップS3235aで取得した情報に基づいて、乱数生成回路318に異常があるか否かを判定する。なお、ここでの乱数生成回路の異常とは、周波数監視回路3182の異常および乱数監視回路3184の異常の双方を指す。ここで、異常があると判定された場合にはステップS3235cに進み、異常があると判定されなかった場合にはステップS3235eに進む。
【1638】
ステップS3235cでは、乱数生成回路異常フラグをオンに設定する。なお、このフラグはRAM308内に記憶されている。より具体的には、周波数監視回路3182の異常を示すフラグおよび乱数監視回路3184の異常を示すフラグがある。以下では、これらのフラグを総称して乱数生成回路異常フラグと称する場合がある。
【1639】
続いて実行されるステップS3235dでは、乱数生成回路異常フラグ設定コマンドの送信準備が実行され、ステップS3235eに進む。なお、この乱数生成回路異常フラグ設定コマンドは、周波数監視回路3182の異常か、乱数監視回路3184の異常か識別可能な情報を含むコマンドである。
【1640】
ステップS3235eでは、その他デバイス監視処理が実行される。例えば、上述のステップS3205において信号状態記憶領域に記憶した各種センサの信号状態を読み出して、ガラス枠開放エラーの有無または下皿満タンエラーの有無などを監視し、ガラス枠開放エラーまたは下皿満タンエラーを検出した場合に、第1副制御部400に送信すべき送信情報に、ガラス枠開放エラーの有無または下皿満タンエラーの有無を示すデバイス情報を設定する。また、図4に示す各種ソレノイド332を駆動して第2特図始動口232や、可変入賞口234の開閉を制御したり、駆動回路324、326、330を介して普通図柄表示装置210、第1特図表示装置212、第2特図表示装置214、各種状態表示部328などに出力する表示データを、I/O310の出力ポートに設定する。また、払出要求数送信処理(ステップS3219)で設定した出力予定情報をI/O310の出力ポートを介して第1副制御部400に出力する。これらの処理が終了すると、このステップS3235のデバイス監視処理は終了になる。
【1641】
続いて実行されるステップS3237では、電源の遮断(電断)を検出したか否かを判定するために、低電圧信号がオンであるか否かを判定する。そして、低電圧信号がオフの場合(電源の遮断を検知していない場合)にはステップS3239に進み、低電圧信号がオンの場合(電源の遮断を検知した場合)にはステップS3241に進む。
【1642】
ステップS3239では、タイマ割込終了処理を行う。このタイマ割込終了処理では、ステップS3201で一時的に退避した各レジスタの値を元の各レジスタに設定したり、割り込み許可の設定などを行い、その後、図159に示す主制御部メイン処理に復帰する。一方、ステップS3241では、復電時に電断時の状態に復帰するための電断時処理を行う。なお、本実施形態では、電源の遮断を判定する処理(ステップS3237)および電断処理(ステップS3241)を主制御部の割込み制御において実行しているが、必ずしも主制御部の割込み制御で行う必要はなく、低電圧信号の入力に基づいて強制割込みを発生させ、この強制割込みによって電断処理が実行されるように構成してもよい。ただし、このように強制割込みによって実行される電断処理では、本実施形態における電断処理(ステップS3241)の処理に加え、上述したタイマ割込み開始処理(S3201)において実行されるCPU304の各レジスタの値をスタック領域に一時的に退避する処理も同時に実行する必要がある。
【1643】
図201は、主制御部における電断時処理の流れを示すフローチャートである。
【1644】
この電断時処理では、まず、スタックポインタを復帰データとしてRAM308の所定の領域に退避し(ステップS3431)、次いで、RAM308に設けた電源ステータス記憶領域に記憶した電源ステータスをサスペンドを示す情報に更新する(ステップS3432)。続いて、RAM308の所定の領域(例えば全ての領域)に記憶している1バイトデータを初期値が0である1バイト構成のレジスタに全て加算することによりチェックサムを算出し、算出したチェックサムの結果をRAM308に設定する(ステップS3433)。最後に、RAM308へのアクセスを禁止に設定し(ステップS3434)、この電断時処理は終了になり、やがてパチンコ機100は電断する。なお、電圧が完全に低下する前に復帰した場合には、図146に示すリセット制御回路314内に設けられたWDT3141がタイムアウトすることによってリセット制御回路314によりリセットがかかり設定されたリセット動作(ここではシステムリセット)が実行される。
【1645】
以上説明した主制御部タイマ割込み処理も、主処理の一例に相当する。
【1646】
続いて、図162に示す入賞受付処理(ステップS3217)のうち、特図当選乱数および普図当選乱数を取得する処理について説明する。図167は、ステップS3217における入賞受付処理のうち、特図当選乱数および普図当選乱数を取得する処理の流れを示した図である。
【1647】
ステップS3217aでは、乱数生成回路異常フラグがオンに設定されているか否かを判定する。このフラグは、図166のステップS3235cで設定されるフラグであり、乱数更新用のクロックの周波数に異常があった場合や、図148に示す乱数更新回路3183で更新される乱数が正常に更新されなかった場合等に、対応するフラグがオンに設定される。このフラグがオンに設定されている場合には、この入賞受付処理は終了になり、異常がなかった場合にはステップS3217bに進む。
【1648】
ステップS3217bでは、第1特図始動口230に入賞したことを表す特図1の入球信号があり、且つ、保留している特図変動遊技の数が所定数(本実施形態では4)未満であるか否かを判定し、否定的な場合にはステップS3217fへ進み、肯定的な場合にはステップS3217cに進む。ステップS3217cでは、RAM308に用意された確変フラグを参照し、確率変動中(特図高確率状態)か否かを判定する。確変フラグがオフに設定されていれば、非確率変動中(特図低確率状態)であり、ステップS3217dが実行される。このステップS3217dでは、乱数生成回路318のチャンネルCH1の乱数レジスタから乱数を取得する。本実施形態では乱数をラッチする契機となる入球信号とは別に、CPUに同様の信号が送られ、CPUはその信号を受信したことに基づいて所定のチャンネル(ここではCH1)における信号に対応する乱数レジスタからラッチされている乱数を取得する。CPU304は、取得した乱数にRレジスタの値を加算し、さらに1を加えた値を特図1当選乱数として得、ステップS3217fに進む。なお、CPU304は、図161に示すステップS3053aにおいて設定された乱数生成範囲を認識しており、その乱数生成範囲に基づいて加算処理を行う。すなわち、加算した値が乱数生成範囲の最大値を超える場合には当該乱数生成範囲の最小値に残りの値を加算する。
【1649】
一方、確変フラグがオンに設定されていれば、確率変動中であり、ステップS3217eが実行される。このステップS3217eでは、乱数生成回路318のチャンネルCH2の乱数レジスタから乱数を取得し、ステップS3217dと同様に、CPU304は、取得した乱数にRレジスタの値を加算し、さらに1を加えた値を特図1当選乱数として得、ステップS3217fに進む。
【1650】
ステップS3217fでは、第2特図始動口232に入賞したことを表す特図2の入球信号があり、且つ、保留している特図変動遊技の数が所定数(本実施形態では4)未満であるか否かを判定し、否定的な場合にはステップS3217jへ進み、肯定的な場合にはステップS3217gに進む。ステップS3217gでも、ステップS3217cと同様に、RAM308に用意された確変フラグを参照し、確変フラグがオフに設定されていれば(非確率変動中であれば)、乱数生成回路318のチャンネルCH1の乱数レジスタから乱数を取得し、ステップS3217dと同様に、CPU304は、取得した乱数にRレジスタの値を加算し、さらに1を加えた値を、ここでは特図2当選乱数として得(ステップS3217H)、ステップS3217jに進む。一方、確変フラグがオンに設定されていれば(確率変動中であれば)、乱数生成回路318のチャンネルCH2の乱数レジスタから乱数を取得し、同じくステップS3217dと同様に、CPU304は、取得した乱数にRレジスタの値を加算し、さらに1を加えた値を特図2当選乱数として得(ステップS3217i)、ステップS3217jに進む。
【1651】
ステップS3217jでは、普図始動口228に入賞したことを表す普図の入球信号があり、且つ、保留している普図変動遊技の数が所定数(本実施形態では2)未満であるか否かを判定し、否定的な場合には入賞受付処理は終了になり、肯定的な場合にはステップS3217kに進む。ステップS3217kでは、RAM308に用意された時短フラグを参照し、時短フラグがオフに設定されていれば、普図低確率状態(非電サポ中)であり、ステップS3217lが実行される。ステップS3217lでは、乱数生成回路318のチャンネルCH3の乱数レジスタから普図当選乱数として乱数を取得し、この入賞受付処理は終了になる。一方、時短フラグがオンに設定されていれば、普図高確率状態(電サポ中)であり、ステップS3217mが実行される。ステップS3217mでは、乱数生成回路318のチャンネルCH4の乱数レジスタから普図当選乱数として乱数を取得し、入賞受付処理は終了になる。
【1652】
ここで、上記説明した内容を踏まえて、遊技台への電圧供給が低下した場合の動作について説明する。例えば大当り中の状態で停電などによって電源が切られた場合、再度電源投入によって遊技台が初期状態になると、遊技者にとって著しく不利益な状態になる。このような事態にならないよう、コンデンサに蓄えられた電力により遊技台の状態を保持する電断時処理(図162のステップS3241)が実行される。この電断時処理は、電源が切られた場合の他、静電気などの要因により供給電圧が一時的に低下した場合にも実行される。以下、電源が切られた場合(以下、電源オフと称する)の動作と、供給電圧が一時的に低下した場合(以下、瞬断と称する)の動作について、図168を用いて説明する。同図(a)は、電源オフの場合の動作を示す図であり、(b)は、瞬断の場合の動作を示す図である。
【1653】
電源が切られた場合、電圧が供給されなくなる(電断発生)が、すぐに電圧は0にはならず、コンデンサに蓄えられた電力により供給電圧が徐々に降下する。供給電圧が所定の電圧(本実施形態では9V)まで効果すると電圧監視回路338から低電圧信号がCPU304に送信される。この信号を受信したことにより、主制御部タイマ割込み処理のステップS3237により電断が発生したと判定され、ステップS3241の電断時処理が実行される。図168(a)には、電断が発生してから供給電圧が9Vに降下するまで通常処理が実行され、供給電圧が9Vになった時点で電断時処理が開始されていることが示されている。この電断時処理により、RAM308の内部に遊技台の状態を示すデータが記憶される。なお、本実施形態では、この電断時処理の実行に必要な時間(主制御部電断時処理猶予時間)を十分確保することができるコンデンサが備えられている。その後、電断時処理が終了すると、そのまま待機状態になる。その後電源の供給が再開されない場合、電圧が0に落ちて遊技台の動作が停止する。
【1654】
一方、瞬断の場合にも、電圧監視回路338から低電圧信号がCPU304に送信されることにより、上記電断時処理が実行された後、そのまま待機状態になる。図168(b)には、一時的な電圧降下により、電断時処理が開始されていることが示されている。ここで、電圧が動作電圧まで回復しても、待機状態が継続する。この待機状態が継続していると、主制御部300のリセット制御回路314のWDT3141がリスタートされず(図162のステップS3203が実行されない)、WDT3141がタイムアウトする。このことによりリセット制御回路314はシステムリセット信号を出力する。その後、図159に示す主制御部メイン処理が再開すると、電断時処理で記憶されていたデータに基づいてステップS3009のデータ書き戻し処理を含む復帰処理(ステップS3009?ステップS3011)が実行される。図168(b)には、WDT3141のタイムアウトによるリセット信号が送信されたことにより、待機状態から復帰処理(リセット処理)に移っていることが示されている。この復帰処理により遊技台の状態が電断時処理前の状態に復帰する。なお、ここで、電断時処理で記憶されていたデータに不具合があった場合は、電断時処理前の状態に復帰できないと判定され、RAM308の内容がクリアされる(図159のステップS3013)。
【1655】
次に、本実施形態の乱数生成回路318により、乱数の生成範囲を設定することの効果について説明し、その後問題点について説明する。上述したように本実施形態の遊技台が有する乱数生成回路318では、抽選結果の基になる乱数の生成範囲を設定することができる。この機能を利用して、遊技状態の設定が容易になる。
【1656】
まず、乱数生成範囲が0?65535の場合について説明する。例えば、これらの乱数が当りかハズレのいずれかに対応している場合に、当選確率が1/400(0.25%)になるように設計しようとしたとする。生成される乱数は65536通りあるが、65536の1/400を計算すると163.84となり、整数にならない。仮にこの数字に近い164通りの乱数を当りに対応させた場合、厳密には1/400の当選確率にならない。
【1657】
ここで、上記の乱数生成範囲が0?49999に設定されたとする。上記の場合と同様に当選確率が1/400(0.25%)になるようにするには、生成される乱数50000通りの1/400、すなわち125通りの値を当りに対応させればよい。例えば、50000通り乱数のうち0?124までの値を当りに対応させ、それ以外の125?49999の値をハズレに対応付けることで、当選確率を1/400にすることができる。すなわち、当選確率が設計値通り(例えば1/400)になるように、乱数生成範囲(例えば0?49999)および当りに対応する乱数の範囲(例えば0?124)をそれぞれ設定することができる。
【1658】
以上説明したように、乱数生成範囲を適切に設定することによって、所望の当選確率を設定することができる。これによって、例えば小当りに対応する乱数生成範囲を除外して大当りに対応する乱数生成範囲を残したり、あるいは大当りに対応する乱数生成範囲の半分に該当する乱数が生成されないようにすることも可能である。特に図153を用いて説明したような乱数生成範囲が設定できれば、最大値だけを設定する場合と比較して遊技台の設計が容易になる。このため、乱数生成範囲を設定することは、遊技台の設計において有用であると言える。
【1659】
次に、乱数生成範囲を異ならせることにより、当選確率を変更する方法について説明する。例えば、0?49999の乱数生成範囲のうち、0?124までの値を当りに対応させた状態から、乱数生成範囲の最大値を49999から249に変更したとする。この場合、0?124までの値が当りに対応し、125?249までの値がハズレに対応し、当選確率は1/2になる。すなわち、当り又はハズレに対応する値を固定したまま乱数生成範囲だけを異ならせることにより、当選確率を容易に変更することができる。なお、上記説明では、よりわかり易くするために、当りの範囲を偏らせた例について説明したが、当りの範囲が偏っていなくてもよい。
【1660】
生成された乱数に基づいて当りかハズレかを判定する方法として、これらの対応を定めたテーブルを用意しておき、これを使用する方法が考えられる。しかし、この方法で当選確率を変更しようとした場合、当選確率に対応するテーブルをそれぞれ用意しておき、遊技の状態に応じてこれらを使い分ける処理を実行させる必要がある。上記説明した方法では、当り又はハズレに対応する値を定めたテーブルが一つですむため、メモリの容量負担が少なくて済む。当然のことながら、テーブルを切り替える処理は不要である。
【1661】
なお、本実施形態では、乱数生成範囲の異なる複数の乱数生成チャンネルを用意し、これらを使い分けることにより遊技中の当選確率を変更しているが、一つのチャンネルに対して適宜乱数生成範囲を変更する構成を用いて当選確率を変更させてもよい。また、本実施形態では、乱数を加工した上で抽選に用いる場合があるが、この場合、加工を考慮したうえで対応するテーブルを用意すればよい。
【1662】
ここで、図169を用いて、乱数生成範囲が意図せずに変更されてしまった場合の問題について説明する。同図は、乱数生成範囲の問題点を示す図である。例えば、静電気等の要因によって上述した瞬断が生じ、その後復帰処理(ユーザリセット)が実行されたとする。この場合、乱数生成回路318の内部レジスタは、そのまま復帰処理以前の状態が維持される。ところが、電圧の変化によって内部レジスタの情報が書き換わる可能性がある。これによって乱数生成範囲が意図せずに変更されると、当選確率が変わってしまうことになる。
【1663】
例えば、非確率変動状態において、図169(a)の上段に示すように、0?49999の乱数生成範囲が設定されており、さらにこのうち0?124(左下がりのハッチングで示す範囲)が当りに対応する乱数であるとする。この状態で静電気等の要因が生じ、乱数生成範囲が0?250になったとする。この場合、当選確率が1/400から1/2になってしまうため、店側にとっては大きな損害になってしまう。
【1664】
また、確率変動状態において、図169(b)の上段に示すように、0?4999の乱数生成範囲が設定されており、さらにこのうち0?124(左下がりのハッチングで示す範囲)が当りに対応する乱数であるとする。この状態で静電気等の要因が生じ、乱数生成範囲が0?59999になったとする。この場合、当選確率が1/40から1/480になってしまうため、遊技者にとって著しく不利益になる。
【1665】
上記の例で説明したように、乱数が生成される数値範囲を任意の数値範囲に制限する手法を用いて抽選処理を行うと、何らかの異常で制限した数値範囲が変化した場合に抽選処理の不安定化を招いてしまうという問題が生じる。
【1666】
このような事態を防止するため、本実施形態の遊技台では、図161のステップS3053aにおいて、乱数生成範囲を復帰処理の要因が発生した直前の状態に設定し直す処理を実行させる。このように再度乱数生成範囲を設定し直すことによって、上記のような問題が生じないようにすることができる。すなわち、乱数が生成される数値範囲を任意の数値範囲に制限する手法を用いて抽選処理を行いつつも、抽選処理の不安定化を招くことを抑止することができる。
【1667】
なお、本実施形態では、遊技台の起動時に乱数生成範囲が設定されるため、復帰処理の要因が発生した直前の状態が、初期状態と同じであるが、例えば、遊技中に乱数生成範囲を変更可能な構成の場合には、直前の状態に戻す処理が実行されればよい。
【1668】
また、本実施形態のように、乱数生成範囲が設定されていたチャンネルに対しては乱数生成範囲を設定し直すとともに、乱数生成範囲が設定されていないチャンネルに対しては乱数生成範囲を設定し直さない構成の場合、初期化されるチャンネルと初期化されないチャンネルが存在することになる。この場合、基本回路302の外部からチャンネルが初期化されたか否かがわからないため、不正を防止する効果がある。
【1669】
さらに、本実施形態の遊技台では、図161のステップS3053bにおいて、乱数レジスタ3188をラッチすることを許容する許容状態にしている。このようにすることで、乱数レジスタ3188にラッチされている乱数に異常があった場合に、この乱数が使用される頻度を下げることができる。この際乱数ラッチフラグレジスタ3189の内容は、乱数レジスタ3188が乱数をラッチすることが可能な状態であることを示す情報に書き換えられる。なお、本実施形態では、ユーザプログラムによって、乱数レジスタ3188を許容状態にすることと、乱数生成範囲の設定を同時に実行している(図160参照)が、ハードウェアを用いて許容状態にするようにしてもよい。なお、本実施形態の遊技台では乱数レジスタ3188が許容状態になっても新たに乱数をラッチするまでは乱数は残った状態になるが、可能であれば乱数レジスタ3188の値を所定の値に設定(例えば0に設定)するようにしてもよい。この場合には、異常の可能性がある乱数を使用させないようにすることができる。
【1670】
上記説明した再設定は、WDT3141によるユーザリセットが実行された場合には、そのユーザリセットが実行されてから、駆動電圧の判定(図159のステップS3003)を経て実行される(図160のステップS3053)。この判定処理に要する時間は電圧の供給具合に依存するため、一定ではない。このため再設定を反映した乱数が出力され始めるタイミングにランダム性を持たせることができ、不正防止に効果がある。なお上述した、CPU304からの更新命令が来た時点で乱数の最大値を更新する構成の場合にも、同様の効果がある。
【1671】
なお、上記の説明では、電圧の変化によって生じる問題およびその対処法についての一例について説明したが、他にも例えば乱数生成回路318のスタート値選択回路3183b内の値が書き換わってしまう可能性もある。この場合、本来生成されるはずのない値が、乱数更新回路3183から出力されてしまう虞がある。このような問題に対しても、上記の乱数生成範囲の例と同様に、スタート値選択回路3183b内の値を復帰処理の要因が発生した直前の状態に設定し直す処理を実行させることにより、上記のような問題が生じないようにすることができる。また、乱数生成範囲に応じて、別途スタート値選択回路3183b内の値を設定し直すようにしてもよい。すなわち、乱数生成回路318で設定可能な値を必要に応じて適切に設定し直す処理を実行させることにより、電圧の変化により異常な動作を起こさないようにすることができる。
【1672】
また、電圧の変化以外にも、例えば、指定エリア外走行によって予期せぬ動作が生じた場合にも、上記のような問題が生じる虞がある。特に、指定エリア外走行の場合は、プログラムミス等によって同じ状況が再現される可能性が高く、電圧が変化した場合よりも不正をしやすくなる虞がある。従って、本実施形態では、指定エリア外走行が生じた場合でも、図161のステップS3053aおよびステップS3053bによる再設定を行うようにしている。
【1673】
ここで、上記説明を踏まえて、図159の主制御部メイン処理におけるWDT3141の起動開始のタイミング(ステップS3011、ステップS3015)について説明を補足する。通常WDTでは、プログラムの実行とは独立してカウントアップが行われている。この構成により、プログラムの実行に何らかの問題があっても、これに影響されずにリセット動作(ユーザリセット)を実行することができる。このため、WDTは初期設定時に起動(再起動)される必要がある。しかし、この起動タイミングによっては、問題が生じることがある。この問題について、図159におけるステップS3001の初期設定1の直後にWDTを起動する場合を例に挙げて説明する。
【1674】
ユーザリセットによってRAM308に復帰用のデータが記憶されている状態で、主制御部メイン処理が開始されたとする。まず、ステップS3001によって初期設定1が実行され、次いでWDTが起動する。次に、駆動電圧が十分確保されるまでステップS3003による待機処理が実行される。
【1675】
例えば供給電圧の不安定に起因して上記のユーザリセットが実行された場合等に、この待機処理の実行時間が長くなる場合がある。ここで待機処理に時間がかかると、後のステップS3007やステップS3009の実行中にWDTがタイムアウトして、再度ユーザリセットが実行されてしまう場合がある。この場合、再度主制御部メイン処理が最初から実行されるため、RAM308に記憶されている復帰用のデータがレジスタに戻されるまでの処理時間が長くなってしまう。
【1676】
さらに、例えばステップS3009において、RAM308のデータをレジスタに戻すとともに、RAM308のデータを消去する処理が実行されている場合には、RAM308のデータの一部が消去されている状態でユーザリセットが実行される可能性もある。この場合には、再度主制御部メイン処理が最初から実行されても、RAM308の復帰用のデータは不完全なものであり、ステップS3007で復帰可能と判定されないことになる。仮にステップS3007で復帰可能と判定されてもステップS3009のデータ書き戻し処理で完全にユーザリセット前の状態に復帰させることができない。
【1677】
このような問題を回避するため、本実施形態では、WDT3141によるタイムアウトではシステムリセットを実行するようにしているが、本実施形態ではさらに、WDT3141によるタイムアウトでユーザリセットを実行してもよいように、駆動電圧の判定後から主制御部タイマ割込み処理が許可されるまでの間にWDT3141を起動するように構成している(ステップS3011、ステップS3015)。なお、上記構成は一例であり、ユーザリセット後に主制御部メイン処理が開始されてから、主制御部タイマ割込み処理が許可されるまでの間にWDT3141がタイムアウトしないように、WDT3141を起動させるようにすることが好ましい。また、ユーザリセットが行われてから、主制御部によって遊技の進行が開始される(本実施形態では、主制御部メイン処理のステップS3017?ステップS3019が開始され、かつ、主制御部タイマ割込み処理が開始される)までの間に、WDT3141がタイムアウトしないように、WDT3141を起動させることが好ましい。特に、ユーザリセット後に遊技を復帰させるための処理(遊技の進行を開始可能にするための処理)に、液晶画像表示装置(装飾図柄表示装置)の初期設定処理を実行させるための待機処理が含まれる場合には、上記の問題がより生じやすくなるため、上記説明したタイミングでのWDT3141の起動がより効果的である。さらに、主制御部タイマ割込み処理の最初の処理において、WDT3141を起動させるようにしても、上記の問題を回避することができる。なお、上記説明ではユーザリセットが実行された場合を例に説明しているが、システムリセットが実行された場合であっても同様である。
【1678】
ここで、図170を用いて、図150で説明した乱数更新回路3183の変形例について説明する。同図は、図150で説明した乱数更新回路3183の変形例を示す図である。この図170(a)に示す乱数更新回路3183nは、図150で説明した乱数更新回路3183に、乱数列変更回路3183dを加えたものである。
【1679】
乱数列変更回路3183dは、予め内部に複数の乱数テーブルが設けられている。図170(b)には、65536個の乱数の並びを予め定めた複数の乱数列が示されている。これらの複数の乱数列を使用する際には、同じ乱数列を継続して使用するか、一つの乱数列を一周した時点で別の乱数列に変更するかを設定することができる。さらに、別の乱数列に変更する場合には、指示がなくても自動的に変更を行うか、あるいはその都度変更を指示するか否かを設定することができる。なお、カウンタ回路3183aから一巡信号を受けた時点で、一つの乱数列を一周したと判定される。
【1680】
乱数列変更回路3183d内で使用する乱数列が決定されると、カウンタ回路3183aから出力されるカウント値に従って、この乱数列から値が取り出される。この取り出された値が乱数として出力される。例えば図170(b)において、乱数列Bを使用することが決定した場合に、カウント値「5」が入力されると、乱数として「9806」が出力さ れる(図170(b)の太枠で示す部分参照)。
【1681】
ここで、最大値設定レジスタ3183cに最大値が設定された場合における処理の例について説明する。図152では、最大値設定レジスタ3183cに設定された最大値に従ってカウント回路3183aから出力される値の範囲が変更される例について説明した。なお、この図152では、このカウント回路3183aから出力される値をそのまま乱数として用いていた。ここでは、カウント回路3183aから出力される値を乱数ではなくカウント値として用い、乱数列変更回路3183dに入力する。
【1682】
例えば、最大値が9999に設定された場合、0?9999のカウント値がカウント回路3183aから出力されることになる。ここで、乱数列変更回路3183dには、最大値設定レジスタ3183cから最大値データを取得させ、乱数列の値のうち最大値を超える値を削除して空いた部分を詰める処理を実行させる。この処理により0?9999の値をランダムに並べた乱数列が用意されることになる。この乱数列を用いて上記カウント値に対応する値を乱数として出力させると、乱数生成範囲を0?9999とする乱数を出力させることができる。なお、上記方法は一例であり、例えば、カウント値に対応する値を乱数列から参照したときに最大値を超えている場合には以降の値を順次参照し、参照された値が最大値を超えない値であればその値を出力する、というように他の方法を用いてもよい。
【1683】
ここで、上記の乱数更新回路3183nを用いた場合における、乱数監視回路3184における異常の検出例について説明する。この場合には、1回の乱数の更新前後においてカウンタ回路3183aから出力されるカウント値の値を比較し、同じカウント値が出力されていないか否かをチェックする。仮に同じカウント値が出力された場合には、異常を示す情報が出力される。なお、チェックのタイミングについては、この乱数更新周期よりも長い所定の周期毎であってもよい。なお、乱数監視回路3184に乱数列変更回路3183dから出力される乱数を監視させてもよいが、上記したようにカウンタ回路3138aから出力されるカウント値を監視するようにすることで監視精度を高めるとともに、監視負担を低減することができる。
【1684】
また、図148に示す乱数生成回路318において説明したことと同様に、乱数生成回路318の外部に乱数監視回路3183nを設けてもよく、また、乱数更新回路3183nの内部に乱数監視回路3184を設けてもよい。
【1685】
次に、図171を用いて、図75に示す払出制御部600が実行する払出制御部メイン処理について説明する。なお、同図は払出制御部メイン処理の流れを示すフローチャートである。
【1686】
図75に示す払出制御部600は、CPU、RAM、ROM、I/Oポート、および電圧監視回路を備えている。これらCPU、RAM、ROM、I/Oポートは一のマイクロコンピュータ(払出制御用マイクロコンピュータ)で構成されている。また、この払出制御用マイクロコンピュータは、本明細書における主制御用マイクロコンピュータと一部の機能が同じでもよく、例えば一部の機能(例えば乱数回路)を備えていなくてもよい。払出制御部600が備える電圧監視回路も、主制御部300が備える電圧監視回路と同じく、電源管理部650から払出制御部600に供給している電源の電圧値が所定の値(本実施形態では9V)未満である場合に電圧が低下したことを示す低電圧信号を払出制御部600のCPUに出力する。なお、主制御部300の電圧監視回路338から低電圧信号が出力されていても、この払出制御部600の電圧監視回路からは低電圧信号は出力されていないことはある。
【1687】
払出制御部600には、主制御部300のCPU304から電源投入情報を含めたコマンドが送信されてくる。このコマンドを受信したことに基づいて、払出制御部600のCPUは、払出制御部メイン処理を開始する。なお、主制御部300のCPU304から電源投入情報を含めたコマンドを受信する前に払出制御部メイン処理を開始してもよく、該コマンドを受信するまで所定の処理(例えば、後述するステップS3603?ステップS3610)を実行せずにスキップするようにしてもよい。
【1688】
まず、ステップS3501では、初期設定1を行う。この初期設定1では、払出制御部600のCPUのスタックポインタ(SP)へのスタック初期値の設定等を行う。ステップS3502では、払出制御部600の電圧監視回路から低電圧信号が出力されているか否か、すなわち低電圧信号がオンであるか否かを判定する。低電圧信号がオンの場合(電源の遮断を検知した場合)にはステップS3502の処理を繰り返し実行し、低電圧信号がオフの場合(電源の遮断を検知していない場合)にはステップS3503に進む。
【1689】
ステップS3503では、初期設定2を行う。この初期設定2では、後述する払出制御部タイマ割り込み処理を定期毎に実行するための周期を決める数値をカウンタ・タイマに設定する処理、払出制御部600のRAMへの書き込みを許可する設定、I/Oポートの初期設定等を行う。
【1690】
ステップS3504では、電源の遮断前(電断前)の状態に復帰するか否かの判定を行い、電断前の状態に復帰しない場合(パチンコ機100を初期状態にする場合)にはステップS3506に進み、電断前の状態に復帰する場合にはステップS3505に進む。具体的には、このステップS3504でも、主制御部300メイン処理のステップS3009と同様な処理が行われ、RAMクリアが必要な場合には、パチンコ機100を初期状態にすべくステップS3506に進む。一方、RAMクリアが必要でない場合には、払出制御部600のRAMから電源ステータスの情報を読み出し、電源ステータスの情報が、サスペンドを示す情報でない場合にはパチンコ機100を初期状態にすべくステップS3506に進み、サスペンドを示す情報である場合には払出制御部600のRAMについてチェックサムを実行し、チェックサムの結果が正常である場合には電断前の状態に復帰すべくステップS3505に進み、チェックサムの結果が異常である場合には、パチンコ機100を初期状態にすべくステップS3506に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップS3506に進む。
【1691】
ステップS3505では、復電時処理を行う。この復電時処理では、払出制御部600のRAMの記憶領域のうち、復電時にクリアすべき記憶領域(コマンドを格納するためのコマンドバッファ、エラー状態を記憶するためのエラーステータスなどを除く記憶領域)の初期化などを行う。
【1692】
ステップS3506では、初期化処理を行う。この初期化処理では、割り込み禁止の設定、スタックポインタへのスタック初期値の設定、払出制御部600のRAMの所定の領域(例えば、全ての記憶領域)の初期化などを行う。
【1693】
ステップS3507では、初期設定3を行う。この初期設定3では、払出制御部600のRAMに設けたエラーステータス記憶領域に記憶したエラーステータスのうち、不正払出エラーと払出超過エラー以外の情報をクリアしたり、割り込み許可の設定などを行う。
【1694】
ステップS3508では、主制御部300から入力したデータの中に未解析データがあるか無いかを判定し、未解析データがある場合にはステップS3509でコマンド解析処理を行い、未解析データがない場合にはステップS3510に進む。
【1695】
ステップS3510では、ステップS3502と同じく、低電圧信号がオフであるか否かを監視し、低電圧信号がオフの場合(電源の遮断を検知していない場合)にはステップS3508に戻り、低電圧信号がオンの場合(電源の遮断を検知した場合)にはステップS3511に進む。
【1696】
ステップS3511では、電断時処理を行う。この電断時処理では、払出制御部600のRAMに設けたスタックポインタ退避領域に現在のスタックポインタの値を記憶し、上述の電源ステータス記憶領域にサスペンドを示す情報を設定する。また、払出制御部600のRAMの所定の領域(例えば全ての領域)に記憶している1バイトデータを初期値が0である1バイト構成のレジスタに全て加算し、チェックサム算出用数値記憶領域に記憶している値からその加算した結果を減算した値をチェックサム(電断時チェックサム)として算出し、算出した電断時チェックサムを上述のチェックサム算出用数値記憶領域に記憶し、払出制御部600のRAMへの書き込みを禁止する設定などを行う。なお、ステップS3511の後にステップS3502と同じく低電圧信号がオフであるか否かを監視する処理を行い、低電圧信号がオフの場合(電源の遮断を検知していない場合)には払出し制御部メイン処理の先頭(ステップS3501)に戻るようにしてもよい。
<払出制御部タイマ割り込み処理>
【1697】
次に、図172を用いて、払出制御部600のCPUが実行する払出制御部タイマ割り込み処理について説明する。なお、同図は払出制御部タイマ割り込み処理の流れを示すフローチャートである。
【1698】
払出制御部600は、所定の周期(本実施形態では1msに1回)でタイマ割り込みを発生するカウンタ回路も備えており、このタイマ割り込みを契機として払出制御部タイマ割り込み処理を所定の周期で開始する。
【1699】
ステップS3601では、タイマ割り込みスタート処理を行う。このタイマ割り込みスタート処理では、払出制御部600のCPUの各レジスタの値をスタック領域に一時的に退避する処理などを行う。払出制御部600には、ウォッチドッグタイマ(WDT)も用意されている。ステップS3602ではこのWDTのリスタートを行う。
【1700】
ステップS3603では、入力ポート状態更新処理を行う。この入力ポート状態更新処理では、払出制御部600のI/Oポートの値を取得して、図75に示す払出センサ604等の状態などを検出する。ステップS3604では、タイマ更新処理を行う。このタイマ更新処理では、払出報知用LEDの点灯/消灯時間、図75に示す払出モータ602の駆動/非駆動時間などを計時するためのタイマなどを含む各種タイマを更新する。
【1701】
ステップS3605では、エラー監視処理を行う。払出制御部600のI/Oポートには、主制御部300から、下皿満タンエラー信号やガラス枠開放エラー信号等の各種のエラー信号が送られてくる。払出制御部600のRAMには、エラーステータス記憶領域や、遊技媒体貸出情報記憶領域や、払出完了数チェック記憶領域や、モータ駆動量記憶領域が設けられている。エラーステータス記憶領域には、各エラー信号に対応した情報が記憶される。このエラー監視処理では、各種のエラー信号がオンか否かを判定し、オンの場合には、エラーステータス記憶領域に対応したエラーを示す情報を記憶し、オフの場合には、エラーステータス記憶領域に対応したエラーの解除を示す情報を記憶する。また、主制御部300と払出制御部600との間の通信が可能かどうかを、主制御部からのコマンドが所定時間(例えば1000ms)継続して受信できないか否かで判定し、エラーステータス記憶領域に、通信可能な場合には通信可能であることを示す情報を、反対に通信不可能な場合には通信不可能であること(主制御通信エラー)を示す情報を記憶する。加えて、図75に示すカードユニット(CRユニット)608と払出制御部600との間の通信が可能かどうかについても、カードユニット608からの信号が所定時間(例えば1000ms)継続して受信できないか否かで判定し、エラーステータス記憶領域に、通信可能な場合には通信可能であることを示す情報を、反対に通信不可能な場合には通信不可能であること(CRユニット未接続エラー)を示す情報を記憶する。また、払出制御部600のI/Oポートには、エラー解除信号も送られてくる。このエラー監視処理では、エラー解除信号がオンであるか否かも判定し、エラー解除信号がオンである場合には、エラーステータス記憶領域に記憶している情報を初期化して、エラーを解除する。
【1702】
ステップS3606では、CRユニット通信処理を行う。このCRユニット通信処理では、図75に示すインターフェース部606から遊技媒体貸出信号を受信して遊技媒体貸出信号センサ信号がオンであるか否かを判定し、遊技媒体貸出信号がオンの場合(インターフェース部606からの球貸要求を入力した場合)には、RAMに設けた遊技媒体貸出情報記憶領域に遊技媒体の貸出要求があったことを示す情報を記憶する。
【1703】
ステップS3607では、払出動作管理処理を行う。上述のエラーステータス記憶領域には、不正払出エラーの情報や払出超過エラーの情報も記憶されている。この払出動作管理処理では、エラーステータス記憶領域から不正払出エラーの情報、および払出超過エラーの情報を読み出し、いずれのエラーも発生していない場合には、図75に示す払出センサ604からの信号(以下、払出センサ信号と称する場合がある)に基づいて払出個数の監視を行う。すなわち、所定のエラーが発生している場合には払出モータ602の駆動停止、すなわち払出装置からの賞媒体(例えば遊技球)の払出を停止するようにしている。具体的には、払出センサ604の信号を検出して払出センサ信号がオンであるか否かを判定し、払出センサ信号がオンの場合(払出センサを球が通過した場合)には払出完了数チェックに1を加算して払出完了数チェック記憶領域に記憶する。また、賞球および貸出球の要求が無いときに払出センサ信号がオンになった場合には、上述のエラーステータス記憶領域に不正払出エラーを示す情報を記憶し、賞球数または貸出球数が各々の要求数を超え、その超過数が所定数以上になった場合には、上述のエラーステータス記憶領域に払出超過エラーを示す情報を記憶する。
【1704】
また、上述のエラーステータス記憶領域から、下皿満タンエラーを表す情報、不正払出エラーの情報、および払出超過エラーの情報を読み出し、いずれのエラーも発生していない場合に、払出開始監視処理、初期位置検索動作処理、通常払出動作処理、リトライ動作処理、逆回転動作処理のいずれかの処理を行う。
【1705】
上述のごとく、払出装置152は、払出モータ602によって回転可能に構成されたスプロケットを備えている。このスプロケットは、タンクレール154を通過して払出装置152内に流下した遊技球を一時的に滞留させると共に、払出モータ602を駆動して所定角度だけ回転することにより、一時的に滞留した遊技球を払出装置152の下方へ1個ずつ送り出す。払出開始監視処理では、貸出要求数、および賞球要求数が0であり、次賞球要求数が0以外の場合は、賞球要求数に次賞球要求数をセットし、次賞球要求数をクリアする。また、払出モータ602の位置が不確定の場合(動作モードが初期位置検索動作モードの場合)には、払出完了数チェックから1を減算して払出完了数チェック記憶領域に記憶し、払出モータ602の位置が確定している場合(動作モードが通常払出動作モードの場合)には、払出完了数チェックとして払出完了数チェック記憶領域に0を設定する。また、賞球要求数を、払出モータ602を駆動する量(モータ駆動量)に変換し、これをRAMに設けたモータ駆動量記憶領域に記憶すると共に、RAMに設けたモータ制御データテーブルを参照してモータ駆動量に対応するモータ駆動制御データを選択し、正転を示すモータ駆動制御データをI/Oポートを介して、払出モータ602を制御するモータ制御回路に出力する。これにより、モータ制御回路は払出モータ602のモータの励磁位置を所定回変化させてスプロケットを正方向に回転駆動する。
【1706】
初期位置検索動作処理および通常払出動作処理では、払出モータ602の駆動終了後に、払出完了数チェック記憶領域から払出完了チェックを読み出し、払出完了チェックが0の場合には、払出開始監視処理を実行する準備を行い、払出完了チェックが0以外の場合には、エラーステータス記憶領域に払出装置エラーを示す情報を設定すると共に、リトライ動作処理を実行する準備を行う。
【1707】
リトライ動作処理では、所定の時間が経過するのを待ち(リトライ動作開始待ちタイマが0になるのを待ち)、リトライ動作開始待ちタイマが0になった場合には、逆回転動作処理を実行する準備を行う。逆回転操作処理では、上述のモータ制御データテーブルを参照してモータ駆動量に対応するモータ駆動制御データを選択し、逆転を示すモータ駆動制御データをI/Oポートを介してモータ制御回路に出力する。これにより、モータ制御回路は払出モータ602の励磁位置を所定回変化させてスプロケットを逆回転駆動する。また、逆回転操作処理では、払出モータ602の駆動終了後に払出開始監視処理を実行する準備を行う。
【1708】
ステップS3608では、払出モータ駆動監視処理を行う。この払出モータ駆動監視処理では、駆動開始監視処理、加速駆動処理、定速駆動処理、ブレーキ駆動処理、駆動終了処理のいずれかの処理を行う。
【1709】
駆動開始監視処理では、上述のエラーステータス記憶領域から下皿満タンエラーの情報、不正払出エラーの情報、および払出超過エラーの情報を読み出し、いずれのエラーも発生していない場合には、上述のモータ制御データテーブルを参照してモータ駆動量に対応するモータ駆動制御データを選択し、正転を示すモータ駆動制御データをI/Oポートを介してモータ制御回路に出力する。これにより、モータ制御回路は払出モータ602の励磁位置を所定回変化させスプロケットを正方向に回転駆動する。
【1710】
加速駆動処理および定速駆動処理では、スプロケットの初期位置検索動作中、または、逆回転動作中の場合を除き、払出モータ602の励磁位置を16回変化させるごとに払出完了数チェックから1を減算して払出完了数チェック記憶領域に記憶する。また、更新後の払出完了数チェックが-4未満になった場合には、ブレーキ駆動処理を実行する準備を行う。さらに、上述の遊技媒体貸出情報記憶領域から遊技媒体貸出情報を読み出して、遊技媒体の貸出要求があったことを示す情報の有無を判定し、遊技媒体の貸出要求があったことを示す情報がある場合(賞球の払出中にインターフェース部606からの球貸要求を入力した場合)にも、ブレーキ駆動処理を実行する準備を行う。ブレーキ駆動処理では、所定の時間が経過するのを待ち(モータ駆動管理タイマが0になるのを待ち)、モータ駆動管理タイマが0になった場合には、駆動終了処理を実行する準備を行い、駆動終了処理では、モータ駆動の後処理を行う。
【1711】
ステップS3609では、外部出力信号設定処理を行う。この外部出力信号設定処理では、払出制御部600のRAMに記憶している遊技情報(例えば払出センサ信号を入力するたびに出力する賞球信号)を、情報出力回路(図示せず)を介してパチンコ機100とは別体の情報入力回路350に出力する。
【1712】
ステップS3610では、ポート出力処理を行う。このポート出力処理では、払出制御部600のI/Oポートから、図75に示す発射制御部630に発射を許可する発射許可信号を出力する。ただし、上述の主制御通信エラーやCRユニット未接続エラーが生じている場合には、発射許可信号を出力しない状態に設定する。したがって、主制御部300が電断し、払出制御部600には電力が供給されている状態では、上述のステップS3605において主制御通信エラーが認められ、このポート出力処理で、発射許可信号を出力しない状態に設定される。
【1713】
ステップS3611では、タイマ割り込みエンド処理を行う。このタイマ割り込みエンド処理では、ステップS3601で一時的に退避した各レジスタの値を元の各レジスタに設定したり、割り込み許可の設定などを行い、払出制御部タイマ割り込み処理は終了になる。
<第2内部情報レジスタ>
【1714】
続いて、図155に第1内部情報レジスタを示した割込み制御回路3100の第2内部情報レジスタについて説明する。図173は、割込み制御回路3100の内部情報レジスタ3101に用意された第2内部情報レジスタを説明するための図である。
【1715】
図173に示すように、第2内部情報レジスタは8ビットのレジスタであるが、7?3ビット目は「0」が設定されたままであり、使用されていない。また、2?0ビット目は、初期値は「0」である。
【1716】
本実施形態では、電源投入によって、電圧監視回路338からシステムリセット信号がリセット制御回路314に入力される。すると、リセット制御回路314からは、マイクロプロセッサ3000の内部の回路に対し内部バス3300を介して、システムリセット信号1が出力される。また、本実施形態では、WDT3141がタイムアウトになった場合には、リセット制御回路314からは、マイクロプロセッサ3000の内部の回路に対し内部バス3300を介して、WDTのタイムアウト信号が出力されたことを表すシステムリセット信号2が出力される。さらに、CPU304が所定の範囲以外のアドレスを参照(指定エリア外走行)した場合には、リセット制御回路314からは、マイクロプロセッサ3000の内部の回路に対し内部バス3300を介して、指定エリア外走行禁止信号が出力されたことを表すシステムリセット信号3が出力される。
【1717】
割込み制御回路3100は、内部バス3300を介してシステムリセット信号1を取得すると、2ビット目に「1」を設定する。すなわち、第1内部情報レジスタの2ビット目は、直前に発生したリセット要因が電源投入によるリセットであることを示すビットに相当する。
【1718】
また、割込み制御回路3100は、内部バス3300を介してシステムリセット信号2を取得すると、1ビット目に「1」を設定する。すなわち、第1内部情報レジスタの1ビット目は、直前に発生したリセット要因がWDT3141のタイムアウトであることを示すビットに相当する。
【1719】
さらに、割込み制御回路3100は、内部バス3300を介してシステムリセット信号3を取得すると、0ビット目に「1」を設定する。すなわち、第1内部情報レジスタの0ビット目は、直前に発生したリセット要因がCPU304の指定エリア外走行であることを示すビットに相当する。各ビットの値は、CPU304がその値を読み取るとクリアされる(初期値の「0」になる)ようになっている。なお、この第2内部情報レジスタを、図155に示す第1内部情報レジスタで構成してもよい。
<第3内部情報レジスタ>
【1720】
図174は、割込み制御回路3100の内部情報レジスタ3101に用意された第3内部情報レジスタを説明するための図である。図174に示すように、第3内部情報レジスタも8ビットのレジスタであるが、7?2ビット目は「0」が設定されたままであり、使用されていない。
【1721】
図174に示す第3内部情報レジスタの1ビット目は、WDT3141がタイムアウトした場合に、ユーザリセット動作を行わせるか、あるいはシステムリセット動作を行わせるかを設定するためのビットである。ユーザリセット動作を行わせる場合には「0」を設定し、システムリセット動作を行わせる場合には「1」を設定する。
【1722】
また、0ビット目は、CPU304の指定エリア外走行が生じた場合に、ユーザリセット動作を行わせるか、あるいはシステムリセット動作を行わせるかを設定するためのビットである。このビットでも、ユーザリセット動作を行わせる場合には「0」を設定し、システムリセット動作を行わせる場合には「1」を設定する。
【1723】
ここで説明した1ビット目と0ビット目それぞれに設定される値は、内蔵ROM306のプログラム管理エリアに記憶されている。プログラム管理エリアに記憶されているこれらの値は、図159に示す主制御部メイン処理における初期設定2(ステップS3007)において、プログラム管理エリアから呼び出され、1ビット目と0ビット目それぞれに設定される。本実施形態では、いずれのビットにもシステムリセット動作を行わせる「1」が設定される。なお、1ビット目にユーザリセット動作を行わせる「0」を設定し、0ビット目にシステムリセット動作を行わせる「1」を設定してもよい。また、1ビット目にシステムリセット動作を行わせる「1」を設定し、0ビット目にユーザリセット動作を行わせる「0」を設定してもよい。
【1724】
なお、この第3内部情報レジスタも、図155に示す第1内部情報レジスタの空きビット(未使用ビット)で構成してもよく、あるいは、上述の図173に示す第2内部情報レジスタの空きビット(未使用ビット)で構成してもよい。また、リセット発生時には、ROM306のプログラム管理エリアに記憶されたリセット動作設定データの値を直接参照するようにしてもよい。この場合、第3内部情報レジスタに値を設定する処理は行わなくてもよい。
<第4内部情報レジスタ>
【1725】
図175は、割込み制御回路3100の内部レジスタ3101に用意された第4内部情報レジスタを説明するための図である。図175に示すように、第4内部情報レジスタは8ビットのレジスタであるが、7?2ビット目は「0」が設定されたままであり、使用されていない。
【1726】
この第4内部情報レジスタの1ビット目は、乱数生成回路318の外部クロック(更新クロック)RCKの異常を示すビットである。更新クロックに異常がある場合には、第4内部情報レジスタの1ビット目から「1(異常あり)」の情報が読みだされ、更新クロックに異常がない場合には、第4内部情報レジスタの1ビット目から「0(異常なし)」の情報が読みだされる。
【1727】
また、0ビット目は、リセットが発生した場合に、直前のリセット要因がシステムリセット(電源投入によるリセット)であるか否かを示すためのビットである。割込み制御回路3100は、内部バス3300を介してシステムリセット信号1を取得すると、この0ビット目に「1」を設定する。直前のリセット要因がシステムリセットである場合には、第4内部情報レジスタの0ビット目から「1(システムリセット発生)」の情報が読みだされ、直前のリセット要因がシステムリセットでない場合(リセット要因がWDT3141のタイムアウトである場合、または、リセット要因がCPU304の指定エリア外走行である場合)には、第4内部情報レジスタの0ビット目から「0(システムリセット未発生)」の情報が読みだされる。
<その他の内部情報レジスタ>
【1728】
また、図示は省略するが、マイクロプロセッサ3000は、WDT3141を制御するレジスタとして、スタートレジスタとクリアレジスタを備えている。スタートレジスタは、WDT3141の起動/停止を制御するための8ビット長のレジスタであり、WDT3141を起動するときには起動を指示する値(例えば、CCH)を設定し(書き込み)、WDT3141を停止するときには停止を指示する値(例えば、33H)を設定するように構成されている。
【1729】
また、このスタートレジスタは、リセット時にプログラム管理エリアに「ソフトウェアによる起動」を設定(選択)したときに有効となるレジスタであり、その場合、停止を指示する値(例えば、33H)が初期値として設定される。したがって、「ソフトウェアによる起動」を設定(選択)したときにWDT3141を起動するためには、遊技制御プログラムによって(手動で)起動を指示する値(例えば、CCH)を設定する必要がある。一方、リセット時に「ソフトウェアによる起動」を設定(選択)しなかったときは、スタートレジスタには、起動を指示する値(例えば、CCH)が遊技制御プログラムによらずに(自動的に)初期値として設定され、遊技制御プログラムによらずに(自動的に)WDT3141が起動される。
【1730】
クリアレジスタは、WDT3141のクリアとリスタートを制御するための8ビット長のレジスタであり、所定の第一の値(例えば、55H)を設定した後に、所定の第二の値(例えば、AAH)を設定したときにWDT3141がクリアされ、直後にリスタートされる。なお、クリアレジスタの値を読み込んだときは、所定の固定値(例えば、FFH)が読みだされる。
【1731】
ここでもう一度、システムリセットの流れについて、乱数更新との関係を含めて説明する。図176は、システムリセットの流れを乱数更新との関係を含めて示す図である。これまで、静電気などの要因により瞬断が生じた場合に、WDT3141のタイムアウトによってリセット制御回路314からシステムリセット信号(ここではシステムリセット信号2)が出力され、リセット動作が行われることを説明した。また、WDT3141のタイムアウトに限らず、例えば、CPU304の指定エリア外走行が生じた場合などにも、リセット制御回路314からシステムリセット信号(ここではシステムリセット信号3)が出力され、リセット動作が行われる。このリセット動作では、遊技台はセキュリティモードに移行し、セキュリティチエック処理(図147に示すステップSH05)が実行される。
【1732】
WDT3141のタイムアウトやCPU304の指定エリア外走行は、遊技処理の正常な進行を妨げる異常の一例に相当する。また、システムリセット信号2およびシステムリセット信号3は復帰指示の一例に相当する。さらに、図147に示すリセット制御回路314は、上記異常を検出する異常検出部の一例に相当する。
【1733】
なお、図176では、図示省略したが、セキュリティモードではまず、図147に示すステップSH03の第1内部回路初期化処理が実行され、CPU304のコアやタイマ回路311、カウンタ回路312、パラレル入力ポート3102、RAM308アクセスプロテクトレジスタ、割込み制御回路3100、乱数生成回路318を制御するレジスタといった内蔵レジスタの値が初期化される。なお、乱数生成回路318を制御するレジスタが初期化されることから、乱数更新範囲が再設定されるとともに、乱数値の初期値も再設定される。CPU304の指定エリア外走行が生じたときは特に、乱数更新範囲に何らかの影響が及ぼされている可能性があるため、乱数更新範囲の再設定を行うことが好ましい。
【1734】
続いて、固定延長処理(ステップSH07)が行われ、この固定延長処理が終了すると、リセット制御回路314は、マイクロプロセッサ3000の外部にある周辺制御回路に対して、リセット出力端子(XRSTO端子)からリセット信号を出力する。すなわち、XRSTO端子からのリセット信号(リセット出力)は、固定延長処理の終了後(セキュリティモード中)に出力され、ユーザモードの開始とは異なるタイミングで出力される。
【1735】
次に、ランダム延長処理(ステップSH09)が行われ、遅延処理の時間が不定になる。ランダム延長処理が終了すると、遊技台はユーザモードに移行し、遊技制御用プログラム(ここでは主制御部メイン処理)が開始される。
【1736】
この遊技制御用プログラムでは、最初に、各種の初期設定(図159に示すステップS3001?ステップS3015)が行われる。この初期設定では、図177(a)に示すように、上述の第4内部情報レジスタの1ビット目から「更新クロック異常を示すビット」の値を読み出した後に、読み出した値を汎用レジスタにセットする(書き込む)処理を実行する一方で、第4内部情報レジスタの0ビット目から「リセット要因がシステムリセットであるか否かを示すビット」を読み出す処理は実行するが、読み出した値を汎用レジスタにセットする(書き込む)処理を実行しないように構成している。
【1737】
換言すると、同図(b)に示すように、マイクロプロセッサ3000は、第1の要因(例えば、乱数生成回路318の更新クロックの状態)に基づいて変化する内部情報レジスタのビット(例えば、第4内部情報レジスタのビット1)の値を読み出して、読み出した値を汎用レジスタにセットする(書き込む)一方で、第1の要因とは異なる第2の要因(例えば、リセット要因)に基づいて変化する内部情報レジスタのビット(例えば、第4内部情報レジスタのビット0)の値を読み出すが、読み出した値を汎用レジスタにセットしない(書き込まない)ように構成されている。
【1738】
初期設定を終えると、続いて、ソフトウェア乱数の更新処理(ステップS3017およびステップS3019)が行われ、次いで、最初に発生する大当りの乱数取得タイミングに到達する。ここで、最初に発生する大当りの乱数取得タイミングに乱数を不正に取得されると、強制的に大当りにされてしまうことがある。しかしながら、ランダム延長処理によって遅延処理の時間が不定になっているため、上述のリセット出力を不正にとらえて、最初に発生する大当りの乱数取得のタイミングを図ろうとしても、上記所定時間も不定になり、不正行為を防止することができる。
【1739】
図178は、上記図146に示すマイクロプロセッサ3000のリセット制御回路314の変形例を示した図である。この変形例に係るリセット回路1314は、図146に示すリセット制御回路314が備える指定エリア外走行禁止回路3142、ウォッチドックタイマ(WDT)3141に替えて、信号出力タイミング制御回路1314aを備えている。この信号出力タイミング制御回路1314aは、2つのリセット入力端子XSRST1、リセット入力端子XSRST2から入力するリセット入力信号に基づいて、リセット出力端子XRSTOから出力するリセット出力信号の出力タイミングを決定するための回路である。
【1740】
図179は、主制御部300と第1副制御部400とのうち主制御部300のみでWDT3141のタイムアウトが生じた場合の例を示すタイミングチャートである。図179に示すタイミングチャートでは、図の左から右に向かって時間(T)が経過していく。図の左端の状態では、主制御部300にも第1副制御部400にも12Vの電圧が供給され、主制御部300も第1副制御部400も通常処理を行っている。この例では、主制御部300は特図の変動表示を開始し、第1副制御部400は、主制御部300による特図変動表示の開始に合わせて、ここでは不図示の第2副制御部500を介して、装飾図柄表示装置208に装飾図柄の変動表示を開始させる。図179に示すタイミングチャートにおける(a)?(g)の符号は、符号が記された位置のタイミングを示すものであり、図179の下方には、そのタイミングにおける装飾図柄表示装置208の様子が示されている。
【1741】
主制御部300が特図変動表示を開始して間もなく主制御部300では瞬断が生じ、一時的な電圧降下により、電断時処理が行われ、待機状態に移行する。図168(b)を用いて説明したように、待機状態では、主制御部300のWDT3141がリスタートされず、WDT3141がタイムアウトする。リセット制御回路314からは、WDT3141のタイムアウトに基づいてシステムリセット信号2が出力される。
【1742】
システムリセット信号2が出力されたことにより、主制御部300は、図147に示すリセット処理を開始する。主制御部300では、このリセット処理で、第1内部回路初期化処理(ステップSH03)が実行された後に、セキュリティチェック処理(ステップSH05)が実行される。そして、セキュリティチェック処理が終了してもユーザモード(図159に示す主制御部メイン処理)にはすぐには移行せず、遅延処理が行われ、リセット処理が継続する。この遅延処理では、図147に示す固定延長処理(ステップSH07)が実行される。なお、上述のごとく、固定延長処理が終了すると、リセット制御回路314は、マイクロプロセッサ3000の外部にある周辺制御回路に対して、リセット出力端子(XRSTO端子)からリセット信号を出力するが、このリセット信号は、第1副制御部400に送信されるものではない。さらに、遅延処置では、ランダム延長処理(ステップSH09)が実行され、最大30秒のランダム時間だけさらに、ユーザモードへの移行が遅延される。これらステップSH07およびステップSH09は、本発明にいう遅延処理の一例に相当する。
【1743】
また、上述のごとく、電断時処理が開始されてから所定時間(例えば、1000ms)が経過するまでに、図75に示す払出制御部600が主制御部300からのコマンドを受信できない場合には、発射制御部630への発射許可信号の出力を停止する。
【1744】
一方、この例では、主制御部300では瞬断が生じたものの、第1副制御部400には継続して12Vの電圧が供給されており、主制御部300が電断時処理やリセット処理を行っている間も、第1副制御部400は通常処理を継続する。この結果、演出実行手段は演出を続けており、装飾図柄表示装置208でも、装飾図柄の変動表示が継続されており、主制御部300が電断時処理を開始して間もない(b)のタイミングでは、左図柄表示領域208aで装飾図柄の停止表示が行われる(いわゆる左図柄停止)。また、(c)のタイミングでは、右図柄表示領域208cで装飾図柄の停止表示が行われ(いわゆる右図柄停止)、リーチ状態になる。続いて、(d)のタイミングでは、スペシャルリーチ(ここではいわゆるトリプルリーチ)に発展し、(e)のタイミングでは、リーチはずれ演出が一旦行われ、(f)のタイミングでは、装飾図柄の組合せ(ここでは「装飾5-装飾4-装飾5」)が揺れ変動している。第1副制御部400は、主制御部300から図柄変動停止コマンドが送られてきたことに基づいて、装飾図柄の組合せを完全停止させて確定停止を行う。ところが、主制御部300が電断時処理やリセット処理を行っている間は、第1副制御部400には主制御部300からコマンドが送信されない。
【1745】
この結果、特図の変動時間が経過しても揺れ変動が継続することになる。いつまでも続く揺れ変動を見た遊技者は、パチンコ機100が壊れたのではないかと不安に思い、遊技店の店員を呼ぶことが期待でき、遊技店員に瞬断やリセットが発生したことを知らせることができる場合がある。すなわち、従来の遊技台では、遊技中に静電気などによる瞬間的な電圧低下でリセットが発生した場合にリセット処理を行なう技術が考案されているが、リセット処理には僅かな時間しかかからないため、遊技店側がリセットの発生を把握できず、遊技台に安定した制御を行なわせることができなかったが、本実施形態の遊技台によれば、遊技制御の開始を遅延させることで、遊技者を介してリセットの発生を遊技店員が把握できる。また、リセットの発生を遊技店員が把握できるため、リセットの発生要因を排除する(例えば、遊技台裏の配線等を離す)などして遊技台に安定した制御を行なわせることができる。さらに、この例では、リーチはずれ演出が行われているが、リーチ当り演出が行われてから揺れ変動がいつも以上に継続した場合には、大当りを期待していた遊技者に対して、パチンコ機100が壊れ、有利な状態にならないように変化してしまったのではないかといった遊技者の不安を一層煽ることができ、遊技者に店員を呼び出させ、遊技店員に瞬断が発生したことを知らせることができる場合がある。
【1746】
また、リセット処理が行われている期間は、発射許可信号の出力が停止されており、発射装置110からの遊技球の発射ができない。そのため、装飾図柄表示装置208による表示は継続しているのに、図1に示す球発射ハンドル134をいくら操作しても遊技球が発射されず、遊技者は、パチンコ機100が壊れたのではないかと不安に思い、遊技店の店員を呼ぶことが期待でき、遊技店員に瞬断やリセットが発生したことを知らせることができる場合がある。すなわち、遅延処理中は発射を停止させることで、遊技者を介してリセットの発生を遊技店員が把握できる場合がある。
【1747】
さらに、XRSTO信号が立ち下がるタイミングで主制御部300の各回路(例えば、駆動回路324?334)にクリア信号が出力され、電断時処理やリセット処理が行われている期間は、主制御部300が駆動する、普図表示装置210や、第1特図表示装置212や、第2特図表示装置214や、普図保留ランプ216や、第1特図保留ランプ218や、第2特図保留ランプ220や、高確中ランプ222等の遊技表示手段も表示されず、これらの非表示に気付いた、遊技者は、パチンコ機100が壊れたのではないかと不安に思い、遊技店の店員を呼ぶことが期待でき、遊技店員に瞬断やリセットが発生したことを知らせることができる場合がある。特に、普図保留ランプ216や、第1特図保留ランプ218や、第2特図保留ランプ220や、高確中ランプ222といった遊技者が獲得した権利に基づく状態を表示する表示器が、非表示になると、パチンコ機100が壊れて、こらまで獲得した権利が消滅してしまったのではないかといった遊技者の不安を一層煽ることができ、遊技者に店員を呼び出させ、遊技店員に瞬断やリセットが発生したことを知らせることができる場合がある。また、見方を変えれば、店員に遊技客に対してお詫びをする機会が与えられ、遊技客とのコミニュケーションが図れ、アットホームな遊技店を実現する手助けになる可能性がある。
【1748】
主制御部300では、ランダム延長処理(ステップSH09)が終了すると、ここで初めてユーザモードに移行し、通常処理(図159に示す主制御部メイン処理)が開始される。図159に示す主制御部メイン処理では、主制御部300への供給電圧が12Vまで復帰しているため、図160に示す初期設定2が行われ、第1副制御部400には、ここで初めてクリア信号が出力される(ステップS3052)。第1副制御部400は、クリア信号を受信すると各種の初期設定を行う。この初期設定で、装飾図柄表示装置208に初期設定時の画面(デフォルト画面)を表示させる。なお、WDT3141でタイムアウトが生じた場合にも、装飾図柄表示装置208にはデフォルト画面が表示される。図179に示す(g)のタイミングでは、装飾図柄表示装置208に「お待ち下さい。」という文字表示がなされている。すなわち、装飾図柄表示装置208の画面は、いつまでたっても終わらなかった揺れ変動から「お待ち下さい。」という文字表示の画面に切り替わり、この一連の表示を見ていた遊技者は、パチンコ機100が壊れたのではないかと不安に思い、遊技店の店員を呼ぶことが期待でき、遊技店員に瞬断が発生したことを知らせることができる場合がある。
【1749】
なお、主制御部メイン処理が開始されると、主制御部300から払出制御部600にもコマンドが送信されるようになり、発射制御部630へ発射許可信号が出力されて、遊技球の発射ができるようになる。
【1750】
この例では、主制御部300がリセット処理から通常処理に移行するタイミングは、装飾図柄の組合せの揺れ変動中((f)のタイミング以降)であったが、揺れ変動前((f)のタイミングより前)であっても、装飾図柄表示装置208にはデフォルト画面が表示される。
【1751】
以上説明した図179では、WDT3141のタイムアウトが生じた場合の例であったが、CPU304の指定エリア外走行が生じた場合にも同様に、遊技者を介してリセットの発生を遊技店員が把握でき、遊技台に安定した制御を行なわせることができる。また、リセットがかかるようなその他の異常が生じた場合でも、システムリセット動作を行わせるようにしておけば、システムリセット中に遅延処理が実行され、遊技者を介してリセットの発生を遊技店員が把握でき、遊技台に安定した制御を行なわせることができる場合がある。
【1752】
以上の説明では、『電源の遮断が検出されるまで繰り返し実行される主処理(例えば、ステップS3017、S3019、および主制御部タイマ割込み処理)を含む遊技に関する遊技処理を実行する遊技制御部(例えば、主制御部300)、および前記遊技制御部が前記遊技処理を実行中に該遊技処理の正常な進行を妨げる異常(例えば、WDT3141のタイムアウトやCPU304の指定エリア外走行)を検出したことに基づいて復帰指示(例えば、システムリセット信号2,3)を行う異常検出部(例えば、リセット制御回路314)が設けられた電気的制御手段(例えば、マイクロプロセッサ3000)を備え、前記遊技制御部(例えば、主制御部300)は、前記復帰指示に基づいて前記遊技処理の実行を中止するものであって、前記電気的制御手段(例えば、マイクロプロセッサ3000)は、前記遊技制御部が前記遊技処理の実行を開始するための復帰処理(例えば、システムリセット動作)を前記復帰指示に基づいて行い、該復帰処理を実行している最中に該遊技処理の開始を遅延させる遅延処理(例えば、ステップSH07,SH09)を実行するものであることを特徴とする遊技台。』についての説明がなされている。
【1753】
ここで、前記遊技処理の遊技処理プログラムを記憶した記憶部(例えば、内蔵ROM306)を備え、前記電気的制御手段は、前記遊技処理の実行を再開するための初期化処理(例えば、ステップSH03の第1内部回路初期化処理)を前記復帰指示に基づいて行うものであって、前記遊技制御部は、前記復帰指示に基づいて前記遊技処理の実行を中止し、前記初期化処理が行われた後、前記記憶部から前記遊技処理プログラムを順次読み出して前記遊技処理を再開するものであって、前記電気的制御手段は、前記初期化処理を完了してから前記遊技処理を開始するまでの間に、該遊技処理の開始時期を遅延させる遅延処理を実行するものであってもよい。すなわち、ここにいう復帰処理は、初期化処理と遅延処理を併せた処理になる。
【1754】
また、電源の遮断が検出されるまで繰り返し実行される主処理を含む遊技に関する遊技処理を実行する遊技制御手段と、前記遊技制御手段が前記遊技処理を実行中に該遊技処理の進行を妨げる異常を検出したことに基づいて復帰指示を行う異常検出手段とを備え、前記遊技制御手段は、前記復帰指示に基づいて前記遊技処理の実行を中止し、該遊技処理の実行を再開するための復帰処理を行うものであって、該復帰処理を実行している最中に該遊技処理の再開を遅延させる遅延処理を実行するものであることを特徴とする遊技台。の態様であってもよい。この態様によれば、前記電気的制御手段といった、ハードウェア処理とソフトウェア処理の双方を行うことができる手段に代えて、遊技制御手段といったソフトウェア処理のみを行う手段によって、上記復帰処理を行い、その復帰処理を実行している最中に上記遅延処理を実行する。なお、前記遊技処理の遊技処理プログラムを記憶した第1記憶部と、前記復帰処理の復帰プログラムを記憶した第2記憶部とを備え、前記遊技制御手段は、前記1記憶部から前記遊技処理プログラムを順次読み出して前記遊技処理を実行するものであって、前記電気的制御手段は、前記復帰プログラムにしたがって前記復帰処理を実行するものであってもよい。
【1755】
この場合、安定した遊技制御を行うことができる場合がある。すなわち、遊技制御の開始を遅延させることで、遊技者を介してリセットの発生を遊技店員が把握できる場合がある。また、リセットの発生を遊技店員が把握できるため、リセットの発生要因(例えば、静電気を発する電気部品)を特定して対処する(例えば、遊技台裏の配線の配置等を見直す)ことができ、遊技台に安定した制御を行なわせることができる場合がある。また、復帰処理中は遊技処理が行われないため、リセット発生時に遊技領域を転動していた遊技球が復帰処理中に第1特図始動口230に進入したとしても進入に基づく処理が行われず、遊技者に不安を抱かせて遊技店員を呼び易くすることが出来る場合がある。また、遊技店員は、遊技球を第1特図始動口230などに手で入れることによって、遊技台の状態を確認することができる場合がある。また、復帰処理中は遊技処理が行われないため、本体104または前面枠扉106を開放したとしても開放に基づく処理が行われず、遊技店員が本体104または前面枠扉106を開放することで、遊技台の状態を確認することができる場合がある。
【1756】
また、これまでの説明において、『前記電気的制御手段(例えば、マイクロプロセッサ3000)は、異常が発生したか否かを判定するセキュリティチェック処理を前記復帰処理中に行う(例えば、ステップSH05のセキュリティチェック処理を行う)ものであることを特徴とする遊技台。』についても説明がなされている。
【1757】
この場合、復帰処理中にセキュリティチェック処理も行うため、復帰処理が行われている間の時間を有効に活用することができるとともに、セキュリティを向上させることが出来る場合がある。
【1758】
なお、前記異常検出部は、前記異常のうちの第1の異常(例えば、CPU304の指定エリア外走行)があったことに基づいて前記復帰指示のうちの第1の復帰指示(例えば、システムリセット信号)を出力し、前記異常のうちの第2の異常(例えば、WDT3141のタイムアウト)があったことに基づいて前記復帰指示のうちの第2の復帰指示(例えば、ユーザリセット信号)を出力し、前記電気的制御手段は、前記第1の復帰指示に基づいて前記復帰処理を実行している最中に前記遅延処理を実行し、前記第2の復帰指示に基づいて前記復帰処理を実行している最中に前記遅延処理を実行しないものであってもよい。
【1759】
この場合、異常の種類に応じて遊技処理が開始されるまでの時間が異なるため、遊技店員が異常の種類を判別することができる場合がある。
【1760】
また、前記第1の異常は、前記第2の異常よりも異常度が高いものであってもよい。
【1761】
この場合、異常度の高い第1の異常が発生したときに復帰処理で遅延処理が行われるため、遊技店員は異常度が高い異常に基づくリセットが発生したことを確認することができる場合がある。
【1762】
また、前記電気的制御手段は、前記第1の復帰指示に基づいて前記復帰処理を実行している最中に前記セキュリティチェック処理を実行し、前記第2の復帰指示に基づいて前記復帰処理を実行している最中に前記セキュリティチェック処理を実行しないものであってもよい。
【1763】
なお、遊技領域に向けて遊技球を発射する発射手段(例えば、発射装置110)を備え、前記発射手段は、前記遅延処理が実行されている間は遊技球の発射を停止するものであってもよい。
【1764】
この場合、遊技者は、パチンコ機100が壊れたのではないかと不安に思い、遊技店の店員を呼ぶことが期待でき、遊技店員に瞬断やリセットが発生したことを知らせることができる場合がある。すなわち、遅延処理中は発射を停止させることで、遊技者を介してリセットの発生を遊技店員が把握できる場合がある。
【1765】
また、前記遊技処理の遊技処理プログラムを記憶した記憶部(例えば、内蔵ROM306)を備え、前記遊技制御部(例えば、主制御部300)は、前記記憶部から前記遊技処理プログラムを読み出して前記遊技処理を実行するものであって、前記記憶部(例えば、内蔵ROM306)は、この記憶部に記憶された内容(例えば、ユーザプログラム)に基づいて得られる所定の認証情報(例えば、認証コード)を格納したものであり、前記電気的制御手段(例えば、マイクロプロセッサ3000)は、前記記憶部に記憶されている内容に基づいて前記認証情報を前記復帰処理中に取得し、取得した認証情報が該記憶部に格納されている前記所定の認証情報に一致するか否かの判定を該復帰処理中に行う(例えば、ステップSH05のセキュリティチェック処理を行う)ものであってもよい。
【1766】
この場合、復帰処理中に所定の認証情報に一致するか否かの判定を行うため、復帰処理が行われている間の時間を有効に活用することができるとともに、セキュリティを向上させることが出来る場合がある。
【1767】
なお、前記電気的制御手段は、取得した認証情報が該記憶部に格納されている前記所定の認証情報に一致したことに基づいて、前記遅延処理を実行するものであってもよい。
【1768】
また、前記遊技制御部は、取得した認証情報が該記憶部に格納されている前記所定の認証情報に不一致であったことに基づいて、動作を停止するものであってもよい。
【1769】
また、前記電気的制御手段は、前記遊技処理の開始を、予め定まった時間遅延させる第一遅延処理(例えば、ステップSH07の固定延長処理)、および変更可能な時間遅延させる第二遅延処理(例えば、ステップSH09のランダム延長処理)のうち少なくともいずれか一方の処理を行うものであってもよい。
【1770】
また、前記電気的制御手段は、前記遊技処理の開始を予め定まった時間遅延させる第一遅延処理を行った後で、外部に対してリセット指示(例えば、リセット出力端子(XRSTO端子)からリセット信号)を出力し、その後、該遊技処理の開始を変更可能な時間遅延させる第二遅延処理処理を行うものであってもよい。ここにいう変更可能時間とは、前記電気的制御手段の製造時や設定時に、複数の用意された時間の中から選択された時間であってもよいし、任意に変えられる時間であってもよい。
【1771】
この場合、遊技処理の開始タイミングと外部に対してのリセット指示の出力タイミングとが異なるため、有利な乱数が取得可能な最初のタイミングを不正者が解析困難にすることができ、不正者の不正行為を防止することができる場合がある。
【1772】
また、前記遊技制御部は、前記遊技処理の中で、所定の数値範囲(例えば、乱数生成範囲)で数値を繰り返し更新し更新した数値を用いて所定の抽選処理(例えば、特図の当否判定)を実行するものであって、前記電気的制御手段は、前記復帰処理の中で、前記数値を初期化する(例えば、ステップSH03の第1内部回路初期化処理を実行する)ものであってもよい。
【1773】
また、前記遊技制御部によって制御される遊技表示手段(例えば、普図表示装置210や、第1特図表示装置212や、第2特図表示装置214や、普図保留ランプ216や、第1特図保留ランプ218や、第2特図保留ランプ220や、高確中ランプ222)を備え、前記遊技表示手段は、前記遅延処理が実行されている間は非表示になるものであってもよい。
【1774】
この場合、遊技表示手段の表示が行われるはずが行われないため、遊技者に不安を抱かせて遊技店員を呼び易くすることが出来る場合がある。また、遊技店員は、遊技球を第1始動口230などに手で入れることによって、遊技台の状態を確認することができる場合がある。
【1775】
また、遊技球が進入可能な第1の状態と、該第1の状態より遊技球な進入困難な第2の状態とに変化可能な可変入賞手段(例えば、第2特図始動口232、可変入賞口234)を備え、前記可変入賞手段は、前記第1の状態の場合に前記復帰指示があったことに基づいて前記第2の状態に変化するものであってもよい。
【1776】
この場合、可変入賞手段が第1の状態であるべきなのに第2の状態となるため、遊技者に不安を抱かせて遊技店員を呼び易くすることが出来る場合がある。また、遊技店員は、遊技球を第1始動口230などに手で入れることによって、遊技台の状態を確認することができる場合がある。なお、前記可変入賞手段は、前記第1の状態の場合に前記復帰指示があったことに基づいて該第1の状態を維持するものであってもよい。この場合、予め定められた所定時間(例えば、開放時間)以上第1の状態となるため、遊技者に不安を抱かせて遊技店員を呼び易くすることが出来る場合がある。
【1777】
また、前記遊技制御部からの指示に基づいて演出を実行する演出実行手段(例えば、装飾図柄表示装置208)を備え、前記演出実行手段は、前記遅延処理が実行されている間も演出を継続するものであってもよい。ここで、前記演出実行手段は、前記遊技表示手段よりも大きな表示領域を有するものであってもよい。
【1778】
この場合、遅延処理中に遊技者を退屈させないようにすることができる場合がある。
【1779】
また、前記電気的制御手段は、前記復帰指示に基づいて、第1復帰処理と第2復帰処理を選択的に実行するものであり、前記第1復帰処理の復帰動作を記憶した第1復帰動作記憶部と、前記第2復帰処理の復帰動作を記憶した第2復帰動作記憶部と、を備え、前記電気的制御手段は、前記第1復帰処理を選択した場合には前記第1復帰動作記憶部に記憶された復帰動作にしたがって前記第1復帰処理を実行し、前記第2復帰処理を選択した場合には前記第2復帰動作記憶部に記憶された復帰動作にしたがって前記第2復帰処理を実行するものであってもよい。
【1780】
また、前記遊技制御部は、前記遊技処理の中で、所定の数値範囲で数値を繰り返し更新し更新した数値を用いて所定の抽選処理を実行するものであって、前記電気的制御手段は、前記復帰指示に基づいて、前記数値を初期化する第1復帰処理(例えば、ステップSH03の第1内部回路初期化処理)と、該数値を該復帰指示がなされる前の値に保持する第2復帰処理(例えば、ステップSH11の第2内部回路初期化処理)を選択的に実行するものであってもよい。
【1781】
また、本発明を所定数の遊技球を循環して使用する封入式遊技機に適用してもよい。また、主制御部300と副制御部400は双方向通信でもよいし、主制御部300と副制御部400の機能を備えた1つの制御部を代わりに設けてもよい。
【1782】
従来より、遊技台として、遊技盤の遊技領域に遊技球の落下の方向に変化を与える障害物や、遊技球が入賞可能な入賞口、始動口、可変入賞口などを設け、これらに遊技球が入賞すると賞球を払い出すなど遊技者に特典が与えられるようにした弾球遊技機(パチンコ機)が知られている。この弾球遊技機では、遊技球が始動口へ進入したことに基づいて当否判定の抽選処理を行い、当否判定の結果に応じて、可変入賞口を所定時間開放させる等、遊技者に有利な遊技状態を発生させるようにしている。
【1783】
また、メダル(遊技媒体)を投入してスタートレバーを操作することでリールを回転させるとともに、内部抽選によって役を内部決定し、ストップボタンを操作することでリールを停止させたときに、図柄表示窓上に内部決定に応じて予め定められた図柄の組み合わせが表示されると役が成立し、メダルの払い出しを伴う役が成立した場合には、規定数のメダルを払い出すなど遊技者に特典が与えられるようした回胴遊技機(スロットマシン)も知られている。
【1784】
ところで、遊技店の営業中に、遊技台の電気系統に異常が発生し、遊技台の電源が遮断(電断)することがある。電源断した遊技台は、その後、遊技に支障がないように即座に自動的に復電する(電源が投入される)。このため、遊技台が電断したことに遊技店側がその場では気づかないことがある。また、遊技台のプログラムが想定外の動作をした場合等、何らかの異常が生じた場合には、一旦リセットがかかる。しかしながらリセットがかかるような異常が生じた場合でも、遊技に支障がないように即座に自動的に復帰する。
【1785】
遊技台の電気系統に異常が発生した原因や、リセットがかかるような異常が生じた原因としては、様々なことが考えられ、遊技店側としては電断が生じたことや、リセットがかかるような異常が生じたことを、その場で把握したい場合がある。
【1786】
一方、上記遊技台によれば、電気系統の異常が発生したことや、リセットがかかるような異常が生じたことを、遊技店側がその場で把握する機会を生じさせやすい。また、遊技制御の開始を遅延させることで、遊技者を介してリセットの発生を遊技店員が把握でき、遊技店員がリセットの発生要因を特定して対処する(例えば、遊技台裏の配線の配置等を見直す)ことができ、遊技台に安定した制御を行なわせることができる場合がある。
以下、これまで説明したことも含めて付記する。
(付記1)
【1787】
遊技に関する複数種類の処理を含む遊技制御を行う遊技制御手段と、
【1788】
前記遊技制御手段の処理の進行に関する異常を検出するとともに、該異常を検出した場合には前記遊技制御手段に復帰指示を行う異常検出手段と、
【1789】
前記遊技制御手段および前記異常検出手段に所定の電圧を供給する電圧供給手段と、を備えた遊技台であって、
前記遊技制御手段は、
【1790】
前記異常検出手段から前記復帰指示を受けたことに基づいて行われる復帰処理と、該復帰処理の後に開始され、所定の終了条件が成立するまで繰り返し実行される主処理と、を行い、
【1791】
前記復帰処理は、前記遊技制御の開始を遅延させる遅延処理を含むことを特徴とする遊技台。
(付記2)
【1792】
乱数を生成するものであって、該乱数が生成される数値範囲である乱数生成範囲を設定可能な乱数生成手段(乱数生成回路318等)と、
【1793】
前記乱数生成手段により生成された乱数を用いる抽選処理を含む、遊技に関する複数種類の処理を行う遊技制御手段(CPU304等)と、
【1794】
前記遊技制御手段の処理の進行に関する異常があるか否かを検出する処理を実行するとともに、該異常を検出した場合には前記遊技制御手段の処理を特定の処理から再開させて前記遊技制御手段の処理を正常に復帰させるための復帰指示(システムリセット又はユーザリセット)を前記遊技制御手段に対して行う異常検出手段(リセット制御回路314等)と、を備え、
前記乱数生成手段は、
【1795】
前記乱数生成範囲を設定するための乱数範囲設定指示を前記遊技制御手段から受けたことに基づいて前記乱数生成範囲を更新する生成範囲更新処理(図160のステップS3053)を実行するものであり、
前記遊技制御手段は、
【1796】
前記異常検出手段から前記復帰指示を受けた際に、該復帰指示が行われる前に設定された前記乱数生成範囲と同じ数値範囲を前記乱数生成範囲として設定するための前記乱数範囲設定指示を前記乱数生成手段に対して行う(図160のステップS3053)ものであることを特徴とする遊技台(パチンコ機100やスロットマシン1100)。
(付記3)
付記2記載の遊技台であって、
前記異常検出手段は、
【1797】
所定の開始条件が成立したことに基づいて経過時間の計測を開始し、該経過時間が特定時間を超えたか否かを判定するとともに、該経過時間が特定時間を超えたと判定したことに基づいて前記遊技制御手段に復帰指示を行う(図146のWDT3141の説明参照)ものであることを特徴とする遊技台。
(付記4)
【1798】
所定の数値範囲で所定の周期ごとに更新され、遊技に関する抽選に用いられる乱数を生成する乱数生成手段(乱数生成回路318等)と、
【1799】
前記乱数の更新に関する異常を検出する更新異常検出手段(周波数監視回路3182と乱数監視回路3184)と、
【1800】
前記異常検出手段により前記異常が検出されたことに基づいて、所定条件が成立するまで前記異常検出手段により前記異常が検出されたことを示す異常検出情報を保持する異常検出情報保持手段(内部情報レジスタ3101)と、
【1801】
所定のタイミングで前記異常検出情報保持手段を参照し、前記異常検出情報保持手段により前記異常検出情報が保持されていたことに基づいて、所定の異常対応処理を実行する異常対応処理手段(CPU304と図166のデバイス監視処理および入賞受付処理)と、を備えたことを特徴とする遊技台。
(付記5)
付記4記載の遊技台であって、
前記異常検出情報保持手段は、
【1802】
前記異常検出情報を保持している状態において前記異常対応処理手段により参照されたことに基づいて、前記異常検出情報が消去されるものであること(内部情報レジスタの説明参照)を特徴とする遊技台。
<主制御部の第1変形例>
【1803】
図180(a)は、主制御部の構成の第1変形例を示した図である。この例では、CPU304は、リセット信号入力端子XSRSTを備え、このリセット信号入力端子XSRSTには、ランダム遅延回路317が接続されている。なお、端子名称の先頭に付した「X」の文字は、端子に入出力する信号がローアクティブであることを示しているが、ハイアクティブでもよいことは言うまでもない(以下同様)。
【1804】
また、ランダム遅延回路317の入力端子には、電圧監視回路338が出力する低電圧信号と、WDT314が出力するWDT起動信号の2つが入力されている。電圧監視回路338は、電源制御部660から主制御部300に供給している電源の電圧値が所定の値(本実施形態では9V)未満である場合に電圧が低下したことを示す低電圧信号(例えば、Lレベルの信号)を出力する。また、WDT314は、WDTのタイムアウトによってWDT起動信号(例えば、Lレベルの信号)を出力する。
【1805】
ランダム遅延回路317は、電圧監視回路338が出力する低電圧信号、または、WDT314が出力するWDT起動信号を入力端子から入力した後、ランダムに選択した遅延時間の経過を待って、当該入力信号をCPU304のリセット信号入力端子XSRSTに向けて出力する。図80を用いて説明したように、CPU304は、リセット信号入力端子XSRSTに所定期間(例えば、システムクロックの4周期分の期間)以上のLレベルの信号が入力された後にHレベルの信号が入力された場合にシステムリセット(初期化)される。このため、この例では、CPU304は、電圧監視回路338が出力する低電圧信号、または、WDT314が出力するWDT起動信号のいずれかに遅延時間を付加した信号に基づいてシステムリセット(初期化)される。
<主制御部の第2変形例>
【1806】
図180(b)は主制御部の構成の第2変形例を示した図である。この例では、WDT314が出力するWDT起動信号を、ランダム遅延回路317を介さずにCPU304のリセット信号入力端子XSRSTに向けて直接、出力するように構成している。このため、この例では、CPU304は、電圧監視回路338が出力する低電圧信号の出力タイミングを遅延時間だけ遅延させた信号、または、WDT314が出力するWDT起動信号(遅延時間なし)に基づいてシステムリセット(初期化)される。
【1807】
同図(c)は、上述のランダム遅延回路317、電圧監視回路338、およびWDT314を有して構成されたリセット回路の構成例を示した図である。この例では、CPU304を、(1)WDT314が出力するWDT起動信号(遅延時間なし)に基づいてシステムリセット、(2)WDT314が出力するWDT起動信号にランダム遅延回路317で選択した遅延時間だけ出力タイミングを遅延させた信号に基づいてシステムリセット、(3)WDT314が出力するWDT起動信号をリセット信号入力端子XSRSTに入力させずに低電圧信号のみに基づいてシステムリセット、の3つの状態のいずれかをCPU304が選択可能に構成している。また、ランダム遅延回路317によって付加される遅延時間の設定が可能で、WDT起動信号に付加する遅延時間と低電圧信号に付加する遅延時間を個別に設定可能に構成している。これらの選択や設定、WDT314のスタートやリセットは、例えば、CPU304のデータ入出力端子D0?D7を介してリセット回路に内蔵したレジスタに設定値を書き込んだり、リセット回路の所定の入力端子に所定のレベルの信号(設定値に対応する信号)を入力したりすることで行われる。
<リセット回路の第1変形例>
【1808】
図181(a)は、図180(c)に示すリセット回路の第1変形例を示した図である。この例では、リセット回路に内蔵された第一WDT314aとは別に、CPU304にも第二WDT314bを内蔵している。そして、CPU304は、リセット信号入力端子XSRSTに入力するリセット信号によってシステムリセット(外部リセット)を行うか、内蔵する第二WDT314bのタイムアウトによってシステムリセット(内部リセット)を行うか、の選択が可能なレジスタを備えている。
<リセット回路の第2変形例>
【1809】
同図(b)は、図180(c)に示すリセット回路の第2変形例を示した図である。この例では、CPU304が、リセット回路に内蔵していたランダム遅延回路317を内蔵しているとともに、リセット信号出力端子XRSTOを備えている。そして、CPU304は、外部リセットに基づいてリセット信号出力端子XRSTOからリセット信号を出力するか、内部リセットに基づいてリセット信号出力端子XRSTOからリセット信号を出力するか、の選択が可能なレジスタを備えている。また、CPU304は、リセット信号出力端子XRSTOから出力するリセット信号に、ランダム遅延回路317が選択する遅延時間を付与するか否かの選択が可能なレジスタも備えており、また、外部リセットに基づくリセット信号の出力タイミングを遅延させるための遅延時間と、内部リセットに基づくリセット信号の出力タイミングを遅延させるための遅延時間を個別に設定可能に構成している。
<リセット回路の第3変形例>
【1810】
図182(a)は、図180(c)に示すリセット回路の第3変形例を示した図である。この例では、電圧監視回路338から出力される低電圧信号の出力タイミングを遅延させる遅延時間を設定するための第1ランダム遅延回路317aと、WDTが出力するWDT起動信号の出力タイミングを遅延させる遅延時間を設定するための第2ランダム遅延回路317bと、を別に設けている。すなわち、この例では、CPU304を、(1)電圧監視回路338が出力する低電圧信号に、第1ランダム遅延回路317aで選択した遅延時間だけ出力タイミングを遅延させた信号に基づいてシステムリセット、(2)WDT314が出力するWDT起動信号に、第2ランダム遅延回路317bで選択した遅延時間だけ出力タイミングを遅延させた信号に基づいてシステムリセット、(3)WDT314が出力するWDT起動信号(遅延時間なし)に基づいてシステムリセット、の3つの状態のいずれかをCPU304が選択可能に構成している。また、低電圧信号やWDT起動信号の出力タイミングを遅延させるための各々の遅延時間を第1ランダム遅延回路317a、第2ランダム遅延回路317bによって個別に設定可能に構成している。これらの選択や設定、WDT314のスタートやリセットは、例えば、CPU304のデータ入出力端子D0?D7を介してリセット回路に内蔵したレジスタに設定値を書き込んだり、リセット回路の所定の入力端子に所定のレベルの信号(設定値に対応する信号)を入力したりすることで行われる。
<リセット信号出力端子の接続の一例>
【1811】
図182(b)は、CPU304に接続される各種ICの一部を示した図である。この例では、CPU304は、リセットに関連する端子として、同図(a)に示す電圧監視回路338が出力する低電圧信号に基づいて生成されるリセット信号が入力されるリセット信号入力端子XSRST1と、同図(a)に示すWDT314が出力するWDT起動信号に基づいて生成されるリセット信号が入力されるリセット信号入力端子XSRST2と、リセット信号を出力するためのリセット信号出力端子XRSTOの3つの端子を備える。
【1812】
図80を用いて説明したように、CPU304は、リセット信号入力端子XSRST1(またはリセット信号入力端子XSRST2)に所定期間(例えば、システムクロックの4周期分の期間)以上のLレベルの信号が入力された後に、当該入力端子にHレベルの信号が入力された場合にシステムリセット(初期化)される。
【1813】
また、リセット信号出力端子XRSTOには、複数(この例では4つ)のIC11?IC14の入力端子と、他の回路の入力端子が接続されている。ここで、IC11?IC14や他の回路としては、例えば、アドレスデコーダやフリップフロップ等のロジックIC、図75に示される各種回路・IC・装置(例えば、乱数値生成回路、起動信号出力回路、駆動回路、音源IC、センサ回路、遮蔽装置、装飾図柄表示装置)を適用することができる。また、IC11?IC14や他の回路の入力端子としては、回路全体を初期化するためのリセット信号が入力されるリセット端子や、回路の一部を初期化するための信号が入力されるCLR端子などを適用することができる。
<リセット信号出力端子の接続の第1変形例>
【1814】
図183は、図182(b)に示すリセット信号出力端子XRSTOの接続の第1変形例を示した図である。この例では、CPU304は、上述のリセット信号出力端子XRSTOをIC11の入力端子9に接続することに加えて、8本のデータ信号端子D0?D7を、IC11のデータ信号入力端子1?入力端子8の各々に接続している。また、IC11は、データ信号入力端子1?入力端子8の各々に対応する出力端子1?8を備えており、これらの出力端子1?8を、図示しない第1副制御部400のCPU404の8本のデータ信号入力端子に接続している。すなわち、CPU304のデータ信号線が、IC11を介して第1副制御部400のCPU404に入力されており、CPU304と第1副制御部400のCPU404は、IC11を介して通信可能に構成されている。なお、CPU304とCPU404を、IC11に加えて(または替えて)、上述のIC12?IC14の一部または全てを介して通信可能に構成してもよい。また、CPU304とCPU404を、これらのIC11?IC14に加えて(または替えて)、中継基板を介して通信可能に構成してもよい。
<リセット信号出力端子の接続の第2変形例>
【1815】
図184は、図75を用いて説明した基本回路302と、この基本回路302に接続される各種ICの一部を示した図である。なお、ここでは、主制御部300の基本回路302について説明するが、主制御部300の基本回路302に替えて(または、加えて)第1副制御部400の基本回路402、第2副制御部500の基本回路502、その他の制御部(例えば、払出制御部600)の基本回路に相当する回路に適用することもできる。
【1816】
基本回路302は、リセットに関連する端子として、上述のリセット信号入力端子XSRSTとリセット信号出力端子XRSTOの2つの端子を備える。リセット信号入力端子XSRSTには、IC01(例えば、上述のリセット回路や電源監視回路)の出力端子が接続されており、図80を用いて説明したように、基本回路302のCPU304は、リセット信号入力端子XSRSTに所定期間(例えば、システムクロックの4周期分の期間)以上のLレベルの信号が入力された後にHレベルの信号が入力された場合にシステムリセット(初期化)される。
【1817】
また、リセット信号出力端子XRSTOには、複数(この例では4つ)のIC11?IC14の入力端子と、他の回路の入力端子が接続されている。ここで、IC11?IC14や他の回路としては、例えば、アドレスデコーダやフリップフロップ等のロジックIC、図75に示される各種回路・IC・装置(例えば、乱数値生成回路、起動信号出力回路、駆動回路、音源IC、センサ回路、遮蔽装置、装飾図柄表示装置)を適用することができる。また、IC11?IC14や他の回路の入力端子としては、回路全体を初期化するためのリセット信号が入力されるリセット端子や、回路の一部を初期化するための信号が入力されるCLR端子などを適用することができる。
<固定延長時間とランダム延長時間>
【1818】
次に、図185を用いて、システムリセット後に基本回路302によって実行される固定延長処理とランダム延長処理の時間設定について説明する。図80を用いて説明したように、CPU304は、セキュリティモードにおいてセキュリティチェック処理→固定延長処理→ランダム延長処理の順番で各々の処理を実行した後、ユーザモードに移行し、遊技制御用プログラムを実行するように構成されている。本実施形態では、固定延長処理の処理時間(固定延長時間)とランダム延長処理の処理時間(ランダム延長時間)の各々をCPU304に予め設定することによって、セキュリティモード(=セキュリティチェック処理+固定延長処理+ランダム延長処理)の時間を、設定した時間分だけ延長することが可能である。
【1819】
図185(a)は固定延長時間の設定例を示したものである。この例では、CPU304の所定記憶領域に、3ビット長の設定値データ000B?111Bのいずれかを予め設定することによって、同図に示す時間だけ固定延長時間を延長できるように構成されている。なお、この例では、設定値データが111Bの場合を除き、固定延長時間は、「2の22乗×(1/SCLK)×設定値データ」の計算式によって算出される。
【1820】
例えば、設定値データを000Bに設定した場合には、システムクロックSCLKの周波数とは無関係に固定延長時間が0(延長しない)に設定され、設定値データを001Bに設定した場合、システムクロックSCLKの周波数が8MHzのときは固定延長時間が約525ms(=2の22乗×(1/8MHz)×1)に設定され、システムクロックSCLKの周波数が10MHzのときは固定延長時間が約420ms(=2の22乗×(1/10MHz)×1)に設定され、システムクロックSCLKの周波数が12MHzのときは固定延長時間が約350ms(=2の22乗×(1/12MHz)×1)に設定される。
【1821】
なお、この例では、固定延長時間をシステムクロックSCLKに基づいて算出する例を示したが、例えば、他の設定値(例えば、後述するランダム延長時間)などに基づいて算出してもよいし、システムクロックSCLKと他の設定値の両方に基づいて算出してもよい。また、システムクロックSCLKと固定延長時間を反比例の関係にする例を示したが、両者が比例関係にあってもよい。また、設定値データが111Bの場合には、システムクロックSCLKの周波数とは無関係に固定延長時間を共通の約30000msに設定する例を示したが、設定値データが111Bの場合も上述の計算式によって算出してもよいし、最大値を設定してもよい。また、設定値データのデータ長は3ビットに限定されず、延長時間の種類を増やしてもよい。また、固定延長時間に0を含めずに0より大きい時間に限定してもよい(CPU304が必ず固定延長処理を実行するものとしてもよい)。また、内部リセットと外部リセットで、異なる固定延長時間の設定を可能に構成してもよい。
【1822】
図185(b)はランダム延長時間の設定例を示したものである。この例では、CPU304の所定記憶領域に、2ビット長の設定値データ00B?11Bのいずれかを予め設定することによって、同図に示す時間だけランダム延長時間を延長することができるように構成されている。例えば、設定値データを00Bに設定した場合、システムクロックSCLKの周波数とは無関係にランダム延長時間が0(延長しない)に設定され、設定値データを01Bに設定した場合、システムクロックSCLKの周波数が8MHzのときはランダム延長時間が0?0.5msのランダムな時間(CPU304のコアによってランダムに選択された時間)に設定され、システムクロックSCLKの周波数が10MHzのときはランダム延長時間が0?0.4msのランダムな時間に設定され、システムクロックSCLKの周波数が12MHzのときはランダム延長時間が0?0.3msのランダムな時間に設定される。
【1823】
なお、この例では、ランダム延長時間をシステムクロックSCLKによって変化させる例を示したが、異なるシステムクロックSCLK間で同一に設定してもよい。また、他の設定値(例えば、上述の固定延長時間)などに基づいて算出してもよいし、システムクロックSCLKと他の設定値の両方に基づいて算出してもよい。また、設定値データのデータ長は2ビットに限定されず、延長時間の種類を増やしてもよい。また、ランダム延長時間に0を含めずに0より大きい時間に限定してもよい(CPU304が必ずランダム延長処理を実行するものとしてもよい)。また、内部リセットと外部リセットで、異なるランダム延長時間の設定を可能に構成してもよい。また、固定延長時間とランダム延長時間の一方について基準クロックを可変とし、他方については基準クロックを固定に構成してもよい。
<WDTタイムアウト時間>
【1824】
次に、図186を用いて、WDT314のタイムアウト時間設定について説明する。なお、同図はWDT314のタイムアウト時間の設定例を示したものである。この例では、CPU304の所定記憶領域に、4ビット長の設定値データ0000B?1000Bのいずれかを予め設定することによって、同図に示す時間だけタイムアウト時間を設定できるように構成されている。例えば、設定値データを0000Bに設定した場合には、システムクロックSCLKの周波数とは無関係にタイムアウト時間が禁止(WDTを使用しない)に設定され、設定値データを0001Bに設定した場合、システムクロックSCLKの周波数が8MHzのときはタイムアウト時間が約65msに設定され、システムクロックSCLKの周波数が10MHzのときはタイムアウト時間が約52msに設定され、システムクロックSCLKの周波数が12MHzのときはタイムアウト時間が約44msに設定される。
【1825】
なお、この例では、タイムアウト時間をシステムクロックSCLKによって変化させる例を示したが、異なるシステムクロックSCLK間で同一に設定してもよい。また、他の設定値(例えば、上述の固定延長時間やランダム延長時間)などに基づいて算出してもよいし、システムクロックSCLKと他の設定値の両方に基づいて算出してもよい。また、設定値データのデータ長は4ビットに限定されず、タイムアウト時間の種類を増やしてもよい。また、タイムアウト時間が上述の固定延長時間よりも小さくなるように設定しているが、タイムアウト時間が上述の固定延長時間よりも大きくなるように設定してもよい。
<リセット出力信号とセキュリティモード>
【1826】
次に、上述のリセット出力端子XSRSTOの出力信号の変化と、セキュリティモードの状態変化との関係について説明する。図187(a)に示す例は、上記図80と同一の状態を示しており、リセット入力端子XSRSTに所定期間以上のLレベルの信号が入力された後にHレベルの信号が入力されたことによってセキュリティモードに移行している。そして、このセキュリティモードにおいて、最初にセキュリティチェック処理が実行され、次に、上述の固定延長時間の設定に応じた期間の経過を待つ固定延長処理が実行され、当該固定延長処理が終了したときにリセット出力端子XRSTOからHレベルの信号を出力し、その後、上述のランダム延長時間の設定に応じたランダムな期間の経過を待つランダム延長処理が終了した場合にユーザモードに移行し、遊技制御用プログラムの実行が開始されている。すなわち、この例では、固定延長処理の終了タイミング(=ランダム延長処理の開始タイミング)と、リセット出力端子XRSTOからHレベルの信号を出力するタイミングを一致させている。
【1827】
また、図187(b)に示す例は、固定延長処理が終了した後、所定時間が経過したときにリセット出力端子XRSTOからHレベルの信号を出力し、その後、ランダム延長処理が終了した場合にユーザモードに移行し、遊技制御用プログラムの実行が開始されている。すなわち、この例では、固定延長処理が終了した後、ランダム延長処理が終了してユーザモードに移行する前(遊技制御用プログラムの実行が開始される前)にリセット出力端子XRSTOからHレベルの信号を出力している。なお、所定時間(固定延長処理が終了してから、リセット出力端子XRSTOからHレベルの信号を出力するまでの時間)は、固定時間でもよいし可変時間でもよい。また、固定時間を採用した場合には、例えば、固定延長処理が終了してから、システムクロックSCLKが所定クロック(例えば、4クロック)経過した後のシステムクロックSCLK立上がりエッジ(または、立下りエッジ)までの時間を、所定時間に設定してもよい。また、可変時間を採用した場合には、システムリセットの度に所定時間をランダムな時間に変化させてもよい。
<ランダム延長時間を変化させる場合>
【1828】
図188(a)、(b)は、固定延長処理の終了タイミング(=ランダム延長処理の開始タイミング)と、リセット出力端子XRSTOからHレベルの信号を出力するタイミングが一致するが、ランダム延長時間が異なる例を示した図である。すなわち、同図(a)と(b)では、固定延長時間の設定値が同一(例えば、設定値=001B、SCLK=約8MHz)であるとともに、ランダム延長時間の設定値も同一(例えば、設定値=01B、SCLK=8MHz)であるが、同図(a)では、ランダム延長時間の数値範囲(例えば、0?0.5ms)から時間A1(例えば、0.2ms)が選択されている一方で、同図(b)では、ランダム延長時間の数値範囲(例えば、0?0.5ms)から、時間A1よりも長い時間A2(例えば、0.3ms)が選択されている。なお、この例では、ランダム延長時間の数値範囲として0?0.5msを選択しているため、ランダム延長時間が0(ランダム延長時間無し)になる場合も含まれている。
【1829】
このように、固定延長時間やランダム延長時間の設定が同じであってもランダム延長時間(A1、A2)を変化させることによって、リセット出力端子XRSTOのHレベル信号出力から、ユーザモードが開始されるまでの時間(A1、A2)を、システムリセットの度に変化させることができる。このため、リセット信号出力端子XRSTOに接続されたIC11?IC14や他の回路にHレベルの信号を出力してから(IC11?IC14や他の回路を起動したり初期化してから)、遊技制御用プログラムが実行されるまでの時間を変化させることができ、CPU304の各端子からの出力信号やCPU304の周辺ICの動作などを手掛かりにして遊技制御用プログラムの実行タイミング(例えば、当否判定の抽選タイミング)を把握するような不正行為を未然に防止できる場合がある。なお、この例では、ランダム延長時間の設定値を同一にしたが、両者のランダム延長時間の設定値を異ならせてもよい。
<固定延長時間を変化させる場合>
【1830】
図188(c)、(d)は、固定延長処理の終了タイミング(=ランダム延長処理の開始タイミング)と、リセット出力端子XRSTOからHレベルの信号を出力するタイミングが一致するが、固定延長時間が異なる例を示した図である。すなわち、同図(c)と(d)では、ランダム延長時間の設定値データは同一(例えば、設定値=01B、SCLK=8MHz)であり、同図(a)および(b)でランダム延長時間の数値範囲(例えば、0?0.5ms)から同一の時間A1(例えば、0.2ms)が設定される一方で、同図(c)では、固定延長時間を時間B1(例えば、設定値=001B、SCLK=8MHz、約525ms)、同図(d)では、固定延長時間を時間B1よりも長い時間B2(例えば、設定値=010B、SCLK=8MHz、約1050ms)に設定している(B1<B2)。
【1831】
このように、ランダム延長時間(A1)が同じであっても固定延長時間(B1、B2)を変化させることによって、固定延長処理が開始されてからユーザモードが開始されるまでの時間(C1、C2)を変化させることができる。このため、CPU304のシステムリセットから遊技制御用プログラムが実行されるまでの時間をシステムリセットの度に変化させることができ、CPU304のリセット入力端子XSRSTに入力するリセット信号などを手掛かりにして遊技制御用プログラムの実行タイミング(例えば、当否判定の抽選タイミング)を把握するような不正行為を未然に防止できる場合がある。なお、図180では、固定延長時間とランダム延長時間の一方を異ならせる例を示したが、両者が異なるようにすれば、遊技制御用プログラムの実行タイミングを把握するような不正行為を、より確実に防止できる場合がある。
【1832】
<固定延長処理を契機にリセット出力信号を変化させる場合>
【1833】
図189は、固定延長処理を契機にリセット出力信号を変化させる例を示した図である。この例では、固定延長処理の開始タイミング(=セキュリティチェック処理の終了タイミング)と、リセット出力端子XRSTOからHレベルの信号を出力するタイミングを一致させている。なお、固定延長処理を契機にリセット出力信号を変化させればよいため、例えば、固定延長処理の開始前(例えば、固定延長処理の開始タイミングから200ms前)にリセット出力信号を出力してもよいし、固定延長時間の設定値に応じて遅延時間を決定し、当該遅延時間の経過を待ってからリセット出力信号を出力してもよい。また、内部リセット(内蔵するWDTのタイムアウトに基づくリセット)か、外部リセット(XSRST端子への信号入力に基づくリセット)かを判別し、当該リセットの種類に応じてリセット出力信号の出力タイミングを決定してもよい。
【1834】
また、過去のリセットの種類を記憶する記憶手段を備え、当該記憶手段に記憶されたリセットの種類の履歴に基づいてリセット出力信号の出力タイミングを変化させてもよく、例えば、内部リセットが複数回連続した場合には、リセット出力信号の出力タイミングを前回よりも遅らせたり早めたりしてもよい。
<他の出力信号とセキュリティモード>
【1835】
図190は、CPU304から出力されるアドレス信号、データ信号、制御信号、およびリセット出力信号の変化と、セキュリティモードの状態変化を示した図である。この例では、CPU304は、固定延長処理が終了したとき(ランダム延長処理を開始したとき)にリセット出力端子XRSTOからHレベルの信号を出力するとともに、同じタイミングで外部のIC(例えば、ROM306、RAM308)との間でデータのリード(またはライト)を開始している。このため、この例では、リセット出力端子XRSTOからHレベルの信号を出力すると同時に、アドレス信号A0?A15端子から16ビットのアドレス情報(この例では、0000H)の出力を開始し、制御信号XM1端子からアドレス情報のラッチタイミング(外部のICがアドレス情報を取り込むタイミング)を示す制御信号を出力し、続けて、データ信号D0?D7端子から8ビットのデータ情報(この例では、オペコード)の出力を開始し、制御信号XM1端子からデータ情報のラッチタイミング(外部のICがデータ情報を取り込むタイミング)を示す制御信号を出力している。
【1836】
なお、この例では、リセット出力端子XRSTOからHレベルの信号を出力すると同時にアドレス信号と制御信号の出力を開始しているが、例えば、リセット出力よりも前にアドレス信号と制御信号の出力を開始してもよいし、リセット出力よりも後(例えば、セキュリティモードからユーザモードに移行した直後)にアドレス信号と制御信号の出力を開始してもよい。なお、XM1端子から出力する制御信号は、例えば、CPU304のマシンサイクルを示す出力信号でもよいし、メモリ空間やI/O空間へのリクエスト出力信号でもよいし、リードサイクルやライトサイクルを示す出力信号でもよい。
【1837】
図191(a)は外部リセット後の他の出力信号の状態変化を示した図であり、同図(b)は内部リセット後の他の出力信号の状態変化を示した図である。この例では、外部リセットの場合には、ランダム延長処理よりも所定時間A1だけ前に、アドレス信号A0?A15端子から16ビットのアドレス情報(この例では、0000H)の出力を開始し、制御信号XM1端子からアドレス情報のラッチタイミングを示す制御信号を出力している。一方、内部リセットの場合には、ランダム延長処理よりも所定時間A2(A2>A1)だけ前に、アドレス信号A0?A15端子から16ビットのアドレス情報(この例では、0000H)の出力を開始し、制御信号XM1端子からアドレス情報のラッチタイミングを示す制御信号を出力している。すなわち、この例では、外部リセットと内部リセットで、アドレス信号A0?A15端子の信号出力と、制御信号XM1端子の信号出力のタイミングを異ならせている。
【1838】
また、内部リセットの場合には、WDT314のタイムアウト直後に、アドレス信号A0?A15端子から16ビットのアドレス情報(この例では、E000H)の出力を行うように構成し、外部リセット直後のアドレス情報(例えば、0000H)と異ならせている。なお、内部リセット直後に出力するアドレス情報と、外部リセット直後に出力するアドレス情報を同一に設定してもよい。
【1839】
図192(a)は外部リセット後の他の出力信号の状態変化の他の例を示した図であり、同図(b)は内部リセット後の他の出力信号の状態変化の他の例を示した図である。この例では、内部リセットの場合には、外部リセットのリセット解除時間B1よりも長い時間B2の経過を待って、内部リセットを解除するように設定している。なお、本構成と、上記図186を用いて説明した各構成を組み合わせて実現してもよい。
<セキュリティモードの開始タイミング>
【1840】
図193(a)は外部システムリセット後のセキュリティモードの開始タイミングの一例を示した図であり、同図(b)は内部システムリセット後のセキュリティモードの開始タイミングの一例を示した図である。この例では、外部システムリセットの場合には、当該外部システムリセットの要因が発生してから(例えば、リセット入力信号XSRSTの立下りエッジを検出してから)、時間C1(例えば、システムクロックSCLKの4クロック分の時間)が経過した後にセキュリティモードが開始されるように構成している。一方、内部システムリセットの場合には、内部リセットの要因が発生してから(例えば、WDTタイマがタイムアウトしてから)、時間C2(例えば、システムクロックSCLKの1クロック分の時間)が経過した後にセキュリティモードが開始されるように構成している。
【1841】
なお、この例では、外部リセットの要因が発生してからセキュリティモードが開始されるまでの時間C1を、内部リセットの要因が発生してからセキュリティモードが開始されるまでの時間C2よりも長くしているが(C1>C2)、外部リセットの要因が発生してからセキュリティモードが開始されるまでの時間C1を、内部リセットの要因が発生してからセキュリティモードが開始されるまでの時間C2よりも短くしてもよい(C1<C2)。
【1842】
また、上述の例では、セキュリティモードに含まれるランダム延長処理の実行時間(ランダム延長時間)や固定延長処理(固定延長時間)をリセットの要因によらずに自由に設定可能としたが、例えば、外部リセットと内部リセットで、ランダム延長時間の設定用レジスタと固定延長時間の設定用レジスタをそれぞれ一種類だけ備えるように構成し、外部リセットと内部リセットで、ランダム延長時間や固定延長時間を個別に設定することを禁止してもよい(共通の設定だけを許可してもよい)。
【1843】
図194は、本発明の基本概念を示した図である。本発明では、第1の事象に基づいて第2の事象を開始するときに、第1の事象が第1の要因に起因する場合と、第1の事象が第2の要因に起因する場合と、で第2の事象を開始するタイミングを異ならせることができる。
【1844】
例えば、上記図193を用いて説明したセキュリティモードの開始タイミングについて考えると、第1の事象(リセット)に基づいて第2の事象(セキュリティモード)を開始する場合に、第1の事象が第1の要因(外部システムリセット)に起因する場合と、第1の事象が第2の要因(内部システムリセット)に起因する場合と、で第2の事象(セキュリティモード)を開始するタイミングを異ならせることができる。このため、第1の要因(外部システムリセット)が発生してから第2の事象(セキュリティモード)が開始されるまでの時間C1を、第2の要因(内部システムリセット)が発生してから第2の事象(セキュリティモード)が開始されるまでの時間C2よりも長くしたり(C1>C2)、第1の要因(外部システムリセット)が発生してから第2の事象(セキュリティモード)が開始されるまでの時間C1を、第2の要因(内部システムリセット)が発生してから第2の事象(セキュリティモード)が開始されるまでの時間C2よりも短くすることができる。
【1845】
また、セキュリティモードを開始するタイミングを異ならせることができるため、その後に実行されるユーザモードを開始するタイミングも異ならせることも可能となる。例えば、第1の事象が第1の要因に起因する場合と、第1の事象が第2の要因に起因する場合と、でセキュリティモードの実行時間が同じであっても、セキュリティモードを開始するタイミングを異ならせれば、第1の事象が第1の要因に起因する場合と、第1の事象が第2の要因に起因する場合と、でユーザモードを開始するタイミングを異ならせることができる。
【1846】
また、第1の事象が第1の要因に起因する場合と、第1の事象が第2の要因に起因する場合と、でセキュリティモードを開始するタイミングを異ならせなくても、セキュリティモードの実行時間を異ならせれば、第1の事象が第1の要因に起因する場合と、第1の事象が第2の要因に起因する場合と、でユーザモードを開始するタイミングを異ならせることができる。
<他の実施形態>
【1847】
次に、他の実施形態に係るパチンコ機について説明する。本実施形態に記載した複数の構成のうち、1つの構成に記載している内容を、他の構成に適用することでより遊技の幅を広げられる場合がある。
【1848】
例えば、図195(a)は、図2を用いて説明した電源基板182、払出基板170、および主基板156の接続例を示した図である。電源基板182は、RAMクリアスイッチ180と、このRAMクリアスイッチ180の操作が検出された場合に、検出信号を出力するための検出信号出力端子と、を備える。電源基板182のCPUは、RAMクリアスイッチ180の操作の有無を定期的に検出し、検出結果(例えば、操作ありの場合にはHレベルの信号、操作なしの場合にはLレベルの信号)を検出信号出力端子から払出基板170に向けて出力する。
【1849】
払出基板170は、電源基板182の検出信号出力端子に接続される検出信号入力端子と、この検出信号入力端子を介して取得したRAMクリアスイッチ180の操作情報を一時的に記憶するためのRAMクリアスイッチ操作情報一時憶手段171(例えば、RAM、CPUのレジスタ、フリップフロップ)と、このRAMクリアスイッチ操作情報一時憶手段171に記憶された操作情報を出力するための操作情報出力端子と、を備える。払出基板170のCPUは、電源投入後やシステムリセット後の初期処理などにおいて、検出信号入力端子に入力された信号を検出し、RAMクリアスイッチ180が操作されているか否かを示す操作情報(例えば、Hレベルの信号を検出した場合には操作ありを示す1の情報、Lレベルの信号を検出した場合には操作無しの情報を示す0の情報)をRAMクリアスイッチ操作情報一時憶手段171の所定記憶領域に記憶するとともに、当該操作情報に対応する情報(例えば、操作ありの操作情報の場合にはHレベルの信号、操作無しの操作情報の場合にはLレベルの信号)を操作情報出力端子から主基板156に向けて出力する。
【1850】
主基板156は、払出基板170の操作情報出力端子に接続される操作情報入力端子(上述のI/O410)と、RAMクリアタイミング報知用LED155と、を備える。主基板156に搭載されたCPU304は、初期設定において、RAMクリアタイミング報知用LED155を点灯させた後に(RAMクリアが可能であることを報知した後に)、操作情報入力端子(I/O310)の入力信号を確認し、Hレベルの信号を検出した場合には、RAM308の所定領域の初期化(RAMクリア)を行う。
【1851】
図196は、変形例に係る主制御部メイン処理の流れを示すフローチャートであり、上記図81に対応するフローチャートである。なお、図81に示すフローチャートと同一の部分については同一の符号を付し、その説明は省略する。また、図197は、主制御部メイン処理における初期設定2の流れを示すフローチャートである。
【1852】
CPU304は、初期設定2のステップS128において、RAMクリアタイミング報知用LED155を点灯させた後に(RAMクリアが可能であることを報知した後に)、操作情報入力端子(I/O310)の入力信号を確認し、RAMクリアスイッチ180が操作されているか否かを示す操作情報(例えば、Hレベルの信号を検出した場合には操作ありを示す1の情報、Lレベルの信号を検出した場合には操作無しの情報を示す0の情報)をRAM308の所定記憶領域に記憶する。
【1853】
また、初期設定2の実行後のステップS109の判定処理では、最初に、RAM308に操作ありを示す1の情報が記憶されているか否かを判定し、該当する場合(RAMクリアが必要な場合)には、基本回路302を初期状態にすべくステップS113に進む。一方、操作なしを示す0の情報が記憶されている場合(RAMクリアが必要でない場合)には、RAM308に設けた電源ステータス記憶領域に記憶した電源ステータスの情報を読み出し、この電源ステータスの情報がサスペンドを示す情報であるか否かを判定する。そして、電源ステータスの情報がサスペンドを示す情報でない場合には、基本回路302を初期状態にすべくステップS113に進み、電源ステータスの情報がサスペンドを示す情報である場合には、RAM308の所定の領域(例えば全ての領域)に記憶している1バイトデータを初期値が0である1バイト構成のレジスタに全て加算することによりチェックサムを算出し、算出したチェックサムの結果が特定の値(例えば0)であるか否か(チェックサムの結果が正常であるか否か)を判定する。そして、チェックサムの結果が特定の値(例えば0)の場合(チェックサムの結果が正常である場合)には電断前の状態に復帰すべくステップS111に進み、チェックサムの結果が特定の値(例えば0)以外である場合(チェックサムの結果が異常である場合)には、パチンコ機を初期状態にすべくステップS113に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップS113に進む。
【1854】
図195に戻って、同図(b)は、図195(a)に対応する従来の接続態様を示した図である。従来の接続態様では、主基板156において上述の固定延長時間として設定データ111B(約30秒)を設定した場合、セキュリティーモードが終了してユーザモードに移行し、遊技制御用プログラムが開始されるのは、最低でも約30秒後となる。このため、主基板156の遊技制御用プログラムにおいて操作情報入力端子(I/O410)に入力される信号を検出する構成を採用した場合、RAMクリアスイッチ180が最低でも約30秒以上操作され続けなければ、RAMクリアスイッチ180の操作の有無を検出することができない上に、外部からは、主基板156がRAMクリアスイッチ180の操作を検出するタイミングさえも知ることができない。
【1855】
これに対して、同図(a)に示す本実施形態に係る接続態様では、遊技店の店員などは、RAMクリアタイミング報知用LED155の点灯/消灯を確認することでRAMクリアが可能な状態か否かを即座に判断することができる。このため、RAMクリアタイミング報知用LED155の点灯を待ってRAMクリアスイッチ180を操作することで、確実にRAMクリアを行うことができる上に、RAMクリアスイッチ180を長時間に亘って操作し続けるような煩わしさからも解放され、利便性を高めることができる場合がある。また、RAMクリアタイミング報知用LED155の点灯前(CPU304の遊技制御用プログラムが開始される前に)にRAMクリアスイッチ180が操作されてしまった場合でも、払出基板170のCPUが起動していれば操作情報を払出基板170が記憶することが可能である。このため、主基板156は、払出基板170のRAMクリアスイッチ操作情報一時憶手段171に記憶された操作情報に基づいて、の遊技制御用プログラムの開始後にRAMクリアを確実に実行することができる場合がある。
【1856】
なお、本実施形態では、電源基板182、払出基板170、および主基板156の間の信号の入出力を入出力端子を介して行う例を示したが、例えば、通信線を介した制御コマンドの送受信によるものでもよい。また、RAMクリアスイッチ180は、電源基板182に配置される例に限定されず、例えば、払出基板170に配置してもよい。
<主制御部の他の命令>
【1857】
次に、主制御部300が備える他の命令について説明する。なお、以降の説明において、「r」、「s」、「ss」、または「qq」は任意のレジスタを表す略号であり、「k」はTレジスタとペアになる下位アドレスを表す略号であり、「n」は8ビット長の数値(16進数)を表す略号であり、「mn」は16ビット長の数値(16進数)を表す略号であり、「( )」はカッコ内の値が示すアドレスのデータを表す略号である。
<他の命令/8ビットロード命令>
【1858】
8ビットロード命令は、8ビット長のデータを所定記憶領域にロードする命令であり、例えば、LD命令、LDT命令、またはCLRT命令などが該当する。
【1859】
例えば、(LD A,T)命令は、Tレジスタに記憶されたデータを、Aレジスタにロードする命令であり、(LD T,n)命令は、8ビット長の数値nを、Tレジスタにロードする命令である。
【1860】
(LDT A,(r))命令は、Tレジスタに記憶されたデータを上位バイト、rで示されるレジスタ(A,B,C,D,E,H,L)に記憶されたデータを下位バイトとするアドレスに記憶されたデータを、Aレジスタにロードする命令であり、(LDT A,(k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを、Aレジスタにロードする命令であり、(LDT r,(k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを、rで示されるレジスタ(B,C,D,E,H,L)にロードする命令である。
【1861】
(LDT (r),A)命令は、Aレジスタに記憶されたデータを、Tレジスタに記憶されたデータを上位バイト、rで示されるレジスタ(A,B,C,D,E,H,L)に記憶されたデータを下位バイトとするアドレスにロードする命令であり、(LDT (k),A)命令は、Aレジスタに記憶されたデータを、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードする命令であり、(LDT (k),r)命令は、rで示されるレジスタ(B,C,D,E,H,L)に記憶されたデータを、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードする命令である。
【1862】
(LDT (k),(ss))命令は、ssで示されるペアレジスタ(BC,DE,HL)に記憶されたデータが示すアドレスに記憶されたデータを、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードする命令であり、(LDT (k),(HL+v))命令は、HLレジスタに記憶されたデータにvで示されるデータ(v=1?7)を加算した加算結果が示すアドレスに記憶されたデータを、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードする命令であり、(LDT (k),(HL+d))命令は、HLレジスタに記憶されたデータにdで示されるデータ(d=8?127、-1?-128)を加算した加算結果が示すアドレスに記憶されたデータを、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードする命令であり、(LDT (ss),(k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを、ssで示されるペアレジスタ(BC,DE,HL)に記憶されたデータが示すアドレスにロードする命令である。
【1863】
(LDT (HL+v),(k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを、HLレジスタに記憶されたデータにvで示されるデータ(v=1?7)を加算した加算結果が示すアドレスにロードする命令であり、(LDT (HL+d),(k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを、HLレジスタに記憶されたデータにdで示されるデータ(d=8?127、-1?-128)を加算した加算結果が示すアドレスにロードする命令であり、(LDT (k),n)命令は、nで示される値を、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードする命令である。
【1864】
(CLRT (k))命令は、数値の0を、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードする命令である。
<他の命令/16ビットロード命令>
【1865】
16ビットロード命令は、16ビット長のデータを所定記憶領域にロードする命令であり、例えば、LDT命令、LDWT命令、CLR命令、CLRWT命令などが該当する。具体的には、(LDT BC,n)命令は、Tレジスタに記憶されたデータをBレジスタにロードし、かつ、nで示される数値をCレジスタにロードする命令であり、(LDT DE,n)命令は、Tレジスタに記憶されたデータをDレジスタにロードし、かつ、nで示される数値をEレジスタにロードする命令であり、(LDT HL,n)命令は、Tレジスタに記憶されたデータをHレジスタにロードし、かつ、nで示される数値をLレジスタにロードする命令である。
【1866】
(LDT IX,n)命令は、Tレジスタに記憶されたデータを16ビット長のIXレジスタの上位8ビットにロードし、かつ、nで示される数値を16ビット長のIXレジスタの下位8ビットにロードする命令であり、(LDT IY,n)命令は、Tレジスタに記憶されたデータを16ビット長のIYレジスタの上位バイトにロードし、かつ、nで示される数値を16ビット長のIYレジスタの下位バイトにロードする命令である。
【1867】
(LDT ss,(k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを、ssで示されるペアレジスタ(BC,DE)の上位バイトにロードし、かつ、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに1を加算したアドレスに記憶されたデータを、ssで示されるペアレジスタ(BC,DE)の下位バイトにロードする命令である。
【1868】
(LDT qq,(k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを、qqで示されるペアレジスタ(IX,IY)の上位バイトにロードし、かつ、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに1を加算したアドレスに記憶されたデータを、qqで示されるペアレジスタ(IX,IY)の下位バイトにロードする命令である。
【1869】
(LDT HL,(k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを、HLレジスタのLレジスタにロードし、かつTレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに1を加算したアドレスに記憶されたデータを、HLレジスタのHレジスタにロードする命令である。
【1870】
(LDT (k),ss)命令は、ssで示されるペアレジスタ(BC,DE,HL)の下位バイトに記憶されたデータを、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードし、かつssで示されるペアレジスタ(BC,DE,HL)の上位バイトに記憶されたデータを、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに1を加算したアドレスにロードする命令である。
【1871】
(LDT (k),qq)命令は、qqで示されるペアレジスタ(IX,IY)の下位バイトに記憶されたデータを、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードし、かつqqで示されるペアレジスタ(IX,IY)の上位バイトに記憶されたデータを、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに1を加算したアドレスにロードする命令である。
【1872】
(LDT (k),HL)命令は、Lレジスタに記憶されたデータを、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードし、かつHレジスタに記憶されたデータを、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに1を加算したアドレスにロードする命令である。
【1873】
(LDWT (r),mn)命令は、Tレジスタに記憶されたデータを上位バイト、rで示されるレジスタ(A,B,C,D,E,H,L)に記憶されたデータを下位バイトとするアドレスにロードし、かつ16ビットの数値であるmn+1で示されるアドレスに記憶されたデータを、Tレジスタに記憶されたデータを上位バイト、rで示されるレジスタ(A,B,C,D,E,H,L)に記憶されたデータを下位バイトとするアドレスに1を加算したアドレスにロードする命令である。
【1874】
(CLR (ss))命令は、ssで示されるペアレジスタ(BC,DE)に数値の0を記憶する命令であり、(CLRW (ss))命令は、ssで示されるペアレジスタ(BC,DE,HL)に記憶されたデータが示すアドレスに数値の0を記憶するとともに、当該アドレスに1を加算したアドレスに数値の0を記憶する命令であり、(CLRW (qq))命令は、qqで示されるレジスタ(IX,IY)に記憶されたデータが示すアドレスに数値の0を記憶するとともに、当該アドレスに1を加算したアドレスに数値の0を記憶する命令であり、(CLRW (qq+d))命令は、qqで示されるレジスタ(IX,IY)に記憶されたデータにdで示されるデータ(d=8?127、-1?-128)を加算した加算結果が示すアドレスに、数値の0を記憶する命令である。
【1875】
(CLRT (k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに、数値の0を記憶する命令であり、(CLRWT (k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードし、かつ、数値の0を、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに1を加算したアドレスに数値の0を記憶する命令である。
【1876】
このように、ssで示されるレジスタ(BC,DE)や、qqで示されるレジスタ(IX,IY)は、(CLR (ss))命令、(CLRW (ss))命令、(CLRW (qq+d))命令のオペランドとして指定が可能である。一方、Tレジスタ(特殊レジスタ)は、CLRT命令またはCLRWT命令のオペランドとしてのみ指定が可能であることに加えて、オペランドの一部(本実施形態では、kで示されるアドレスの下位1バイト)は直値でのみ指定が可能である。このため、Tレジスタの値が予期せずに0にクリアされてしまったり、Tレジスタに予期しない値が記憶されてしまうような事態を未然に防止できる場合がある。
<他の命令/スタック操作命令>
【1877】
スタック操作命令は、スタック領域にデータを退避したり、スタック領域からデータを復帰したりするための命令であり、例えば、PUSH命令、POP命令などが該当する。
【1878】
例えば、(PUSH ss)命令は、ssで示されるペアレジスタ(AF,BC,DE,HL)の上位バイトに記憶されたデータを、(SP(スタックポインタ)-1)で示されるアドレスに退避し、かつ、ssで示されるペアレジスタ(AF,BC,DE,HL)の下位バイトに記憶されたデータを、(SP-2)で示されるアドレスに退避した後に、SPから2を減算する命令である。また、(PUSH TI)命令は、Tレジスタに記憶されたデータを、(SP-1)で示されるアドレスに退避し、かつ、Iレジスタに記憶されたデータを、(SP-2)で示されるアドレスに退避した後に、SPから2を減算する命令である。また、(PUSH qq)命令は、qqで示されるペアレジスタ(IX,IY)の上位バイトに記憶されたデータを、(SP-1)で示されるアドレスに退避し、かつ、qqで示されるペアレジスタ(IX,IY)の下位バイトに記憶されたデータを、(SP-2)で示されるアドレスに退避した後に、SPから2を減算する命令である。
【1879】
(PUSH ALL)命令は、全てのレジスタ(T,I,A,F,B,C,D,E,H,L,IXの上位バイト,IXの下位バイト,IYの上位バイト,IYの下位バイト)に記憶されたデータを、この順番で1バイトずつスタック領域に退避した後に、SPから14(レジスタの総数)を減算する命令である。また、(PUSH GPR)命令は、一部のレジスタ(A,F,B,C,D,E,H,L)に記憶されたデータを、この順番で1バイトずつスタック領域に退避した後に、SPから8を減算する命令である。
【1880】
(POP ss)命令は、SPで示されるアドレスに記憶されたデータを、ssで示されるペアレジスタ(AF,BC,DE,HL)の上位バイトに復帰し、かつ、(SP+1)で示されるアドレスに記憶されたデータを、ssで示されるペアレジスタ(AF,BC,DE,HL)の下位バイトに復帰した後に、SPに2を加算する命令である。また、(POP TI)命令は、SPで示されるアドレスに記憶されたデータを、Iレジスタに復帰し、かつ、(SP+1)で示されるアドレスに記憶されたデータを、Tレジスタに復帰した後に、SPに2を加算する命令である。また、(POP qq)命令は、SPで示されるアドレスに記憶されたデータを、qqで示されるペアレジスタ(IX,IY)の下位バイトに復帰し、かつ、(SP+1)で示されるアドレスに記憶されたデータを、qqで示されるペアレジスタ(IX,IY)の上位バイトに復帰した後に、SPに2を加算する命令である。
【1881】
(POP ALL)命令は、SP、(SP+1)、…、(SP+12)、(SP+13)に記憶されたデータを、この順番で全てのレジスタ(IYの下位バイト,IYの上位バイト,IXの下位バイト,IXの上位バイト,L,H,E,D,C,B,F,A,I,T)に1バイトずつ復帰(IYの下位バイト←(SP)、IYの上位バイト←(SP+1)、…、I←(SP+12)、T←(SP+13))した後に、SPに14を加算する命令である。また、(POP GPR)命令は、SP、(SP+1)、…、(SP+6)、(SP+7)に記憶されたデータを、この順番で一部のレジスタ(L,H,E,D,C,B,F,A)に1バイトずつ復帰(L←(SP)、H←(SP+1)、…、F←(SP+6)、A←(SP+7))した後に、SPに8を加算する命令である。
<他の命令/算術論理演算命令>
【1882】
算術論理演算命令は、各種の論理演算を行うための命令であり、例えば、ADD命令、SUB命令、ANDT命令、ORT命令、XORT命令、CPT命令、INC命令、INCT命令、INCWT命令、DEC命令、DECT命令、DECWT命令などが該当する。
【1883】
例えば、(ADD A,r)命令は、Aレジスタに記憶されたデータと、rで示されるレジスタ(A,B,C,D,E,H,L)に記憶されたデータを加算し、加算結果をAレジスタに記憶する命令であり、(ADDT r,(k))命令は、rで示されるレジスタ(B,C,D,E,H,L)に記憶されたデータと、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを加算し、加算結果をrで示されるレジスタ(B,C,D,E,H,L)に記憶する命令である。
【1884】
例えば、(SUB r)命令は、Aレジスタに記憶されたデータから、rで示されるレジスタ(A,B,C,D,E,H,L)に記憶されたデータを減算し、減算結果をAレジスタに記憶する命令であり、(SUBT r,(k))命令は、rで示されるレジスタ(B,C,D,E,H,L)に記憶されたデータから、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを減算し、減算結果をrで示されるレジスタ(B,C,D,E,H,L)に記憶する命令である。
【1885】
例えば、(ANDT (k))命令は、Aレジスタに記憶されたデータと、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータと、の論理積(AND)を算出し、演算結果をAレジスタに記憶する命令であり、(ANDT r,(k))命令は、rで示されるレジスタ(B,C,D,E,H,L)に記憶されたデータと、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータと、の論理積(AND)を算出し、演算結果をrで示されるレジスタ(B,C,D,E,H,L)に記憶する命令である。
【1886】
(ORT (k))命令は、Aレジスタに記憶されたデータと、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータと、の論理和(OR)を算出し、演算結果をAレジスタに記憶する命令であり、(ORT r,(k))命令は、rで示されるレジスタ(B,C,D,E,H,L)に記憶されたデータと、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータと、の論理和(OR)を算出し、演算結果をrで示されるレジスタ(B,C,D,E,H,L)記憶する命令である。
【1887】
(XORT (k))命令は、Aレジスタに記憶されたデータと、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータと、の排他的論理和(XOR)を算出し、演算結果をAレジスタに記憶する命令であり、(XORT r,(k))命令は、rで示されるレジスタ(B,C,D,E,H,L)に記憶されたデータと、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータと、の排他的論理和(XOR)を算出し、演算結果をrで示されるレジスタ(B,C,D,E,H,L)に記憶する命令である。
【1888】
(CPT (k))命令は、Aレジスタに記憶されたデータから、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを減算し、演算結果がオーバーフローした場合に所定のフラグを1にセットする一方で、オーバーフローしなかった場合に所定のフラグを0にクリアするとともに、Sフラグ、Zフラグ、TZフラグ、Hフラグ、またはキャリーフラグ(Cフラグ)に記憶された値を0から1(または1から0)に変化させる命令である。(CPT r,(k))命令は、rで示されるレジスタ(B,C,D,E,H,L)に記憶されたデータから、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを減算し、演算結果がオーバーフローした場合に所定のフラグを1にセットする一方で、オーバーフローしなかった場合に所定のフラグを0にクリアするとともに、Sフラグ、Zフラグ、TZフラグ、Hフラグ、またはキャリーフラグ(Cフラグ)に記憶された値を0から1(または1から0)に変化させる命令である。
【1889】
(INC T)命令は、Tレジスタに記憶されたデータに1を加算する命令であり、(INCT (r))命令は、Tレジスタに記憶されたデータを上位バイト、rで示されるレジスタ(A,B,C,D,E,H,L)に記憶されたデータを下位バイトとするアドレスに記憶されたデータに1を加算する命令であり、(INCT (k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータに1を加算する命令である。また、(INCWT(k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスと、当該アドレスに1を加算したアドレスに記憶された2バイト長のデータに1を加算する命令である。
【1890】
(DEC T)命令は、Tレジスタに記憶されたデータから1を減算する命令であり、(DECT (r))命令は、Tレジスタに記憶されたデータを上位バイト、rで示されるレジスタ(A,B,C,D,E,H,L)に記憶されたデータを下位バイトとするアドレスに記憶されたデータから1を減算する命令であり、(DECT (k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータから1を減算する命令である。また、(INCWT (k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスと、当該アドレスに1を加算したアドレスに記憶された2バイト長のデータから1を減算する命令である。
<他の命令/ローテート シフト命令>
【1891】
算術論理演算命令は、各種の論理演算を行うための命令であり、例えば、RLC命令、RLCT命令、RRC命令、RRCT命令、RL命令、RLT命令、RR命令、RRT命令、SLA命令、SLAT命令、SRA命令、SRAT命令、SRL命令、SRLT命令などが該当する。
【1892】
例えば、(RLC r)命令は、rで示されるレジスタ(A,B,C,D,E,H,L)に記憶されたデータを左に(LSBからMSB側に)1ビットだけローテートし、MSBからシフトアウトされたビットをLSBとキャリーフラグに記憶する命令であり、(RLC (HL))命令は、HLレジスタに記憶されたデータを左に1ビットだけローテートし、MSBからシフトアウトされたビットをLSBとキャリーフラグに記憶する命令であり、(RLC (qq+d))命令は、qqで示されるレジスタ(IX,IY)に記憶されたデータにdで示されるデータ(d=8?127、-1?-128)を加算した加算結果が示すアドレスに記憶されたデータを左に1ビットだけローテートし、MSBからシフトアウトされたビットをLSBとキャリーフラグに記憶する命令であり、(RLCT (k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを左に1ビットだけローテートし、MSBからシフトアウトされたビットをLSBとキャリーフラグに記憶する命令である。
【1893】
(RRC r)命令は、rで示されるレジスタ(A,B,C,D,E,H,L)に記憶されたデータを右に(MSBからLSB側に)1ビットだけローテートし、LSBからシフトアウトされたビットをMSBとキャリーフラグに記憶する命令であり、(RRC (HL))命令は、HLレジスタに記憶されたデータを右に1ビットだけローテートし、LSBからシフトアウトされたビットをMSBとキャリーフラグに記憶する命令であり、(RRC (qq+d))命令は、qqで示されるレジスタ(IX,IY)に記憶されたデータにdで示されるデータ(d=8?127、-1?-128)を加算した加算結果が示すアドレスに記憶されたデータを右に1ビットだけローテートし、LSBからシフトアウトされたビットをMSBとキャリーフラグに記憶する命令であり、(RRCT (k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを右に1ビットだけローテートし、LSBからシフトアウトされたビットをMSBとキャリーフラグに記憶する命令である。
【1894】
(RL r)命令は、rで示されるレジスタ(A,B,C,D,E,H,L)に記憶されたデータを左に(LSBからMSB側に)1ビットだけローテートし、キャリーフラグに記憶されていたビットをLSBに記憶し、MSBからシフトアウトされたビットをキャリーフラグに記憶する命令であり、(RL (HL))命令は、HLレジスタに記憶されたデータを左に1ビットだけローテートし、キャリーフラグに記憶されていたビットをLSBに記憶し、MSBからシフトアウトされたビットをキャリーフラグに記憶する命令であり、(RL (qq+d))命令は、qqで示されるレジスタ(IX,IY)に記憶されたデータにdで示されるデータ(d=8?127、-1?-128)を加算した加算結果が示すアドレスに記憶されたデータを左に1ビットだけローテートし、キャリーフラグに記憶されていたビットをLSBに記憶し、MSBからシフトアウトされたビットをキャリーフラグに記憶する命令であり、(RLT (k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを左に1ビットだけローテートし、キャリーフラグに記憶されていたビットをLSBに記憶し、MSBからシフトアウトされたビットをキャリーフラグに記憶する命令である。
【1895】
(RR r)命令は、rで示されるレジスタ(A,B,C,D,E,H,L)に記憶されたデータを右に(MSBからLSB側に)1ビットだけローテートし、キャリーフラグに記憶されていたビットをMSBに記憶し、LSBからシフトアウトされたビットをキャリーフラグに記憶する命令であり、(RR (HL))命令は、HLレジスタに記憶されたデータを右に1ビットだけローテートし、キャリーフラグに記憶されていたビットをMSBに記憶し、LSBからシフトアウトされたビットをキャリーフラグに記憶する命令であり、(RR (qq+d))命令は、qqで示されるレジスタ(IX,IY)に記憶されたデータにdで示されるデータ(d=8?127、-1?-128)を加算した加算結果が示すアドレスに記憶されたデータを右に1ビットだけローテートし、キャリーフラグに記憶されていたビットをMSBに記憶し、LSBからシフトアウトされたビットをキャリーフラグに記憶する命令であり、(RRT (k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを右に1ビットだけローテートし、キャリーフラグに記憶されていたビットをMSBに記憶し、LSBからシフトアウトされたビットをキャリーフラグに記憶する命令である。
【1896】
(SLA r)命令は、rで示されるレジスタ(A,B,C,D,E,H,L)に記憶されたデータを左に(LSBからMSB側に)1ビットだけシフトし、MSBからシフトアウトされたビットをキャリーフラグに記憶し、LSBに0を記憶する命令であり、(SLA (HL))命令は、HLレジスタに記憶されたデータを左に1ビットだけシフトし、MSBからシフトアウトされたビットをキャリーフラグに記憶し、LSBに0を記憶する命令であり、(SLA (qq+d))命令は、qqで示されるレジスタ(IX,IY)に記憶されたデータにdで示されるデータ(d=8?127、-1?-128)を加算した加算結果が示すアドレスに記憶されたデータを左に1ビットだけシフトし、MSBからシフトアウトされたビットをキャリーフラグに記憶し、LSBに0を記憶する命令であり、(SLAT (k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを左に1ビットだけシフトし、MSBからシフトアウトされたビットをキャリーフラグに記憶し、LSBに0を記憶する命令である。
【1897】
(SRA r)命令は、rで示されるレジスタ(A,B,C,D,E,H,L)に記憶されたデータを右に(MSBからLSB側に)1ビットだけシフトし、LSBからシフトアウトされたビットをキャリーフラグに記憶し、MSBに直前のMSBの値を記憶する命令であり、(SLA (HL))命令は、HLレジスタに記憶されたデータを右に1ビットだけシフトし、LSBからシフトアウトされたビットをキャリーフラグに記憶し、MSBに直前のMSBの値を記憶する命令であり、(SLA (qq+d))命令は、qqで示されるレジスタ(IX,IY)に記憶されたデータにdで示されるデータ(d=8?127、-1?-128)を加算した加算結果が示すアドレスに記憶されたデータを右に1ビットだけシフトし、LSBからシフトアウトされたビットをキャリーフラグに記憶し、MSBに直前のMSBの値を記憶する命令であり、(SLAT (k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを右に1ビットだけシフトし、LSBからシフトアウトされたビットをキャリーフラグに記憶し、MSBに直前のMSBの値を記憶する命令である。
【1898】
(SRL r)命令は、rで示されるレジスタ(A,B,C,D,E,H,L)に記憶されたデータを右に(MSBからLSB側に)1ビットだけシフトし、LSBからシフトアウトされたビットをキャリーフラグに記憶し、MSBに0を記憶する命令であり、(SRL (HL))命令は、HLレジスタに記憶されたデータを右に1ビットだけシフトし、LSBからシフトアウトされたビットをキャリーフラグに記憶し、MSBに0を記憶する命令であり、(SRL (qq+d))命令は、qqで示されるレジスタ(IX,IY)に記憶されたデータにdで示されるデータ(d=8?127、-1?-128)を加算した加算結果が示すアドレスに記憶されたデータを右に1ビットだけシフトし、LSBからシフトアウトされたビットをキャリーフラグに記憶し、MSBに0を記憶する命令であり、(SRLT (k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを右に1ビットだけシフトし、LSBからシフトアウトされたビットをキャリーフラグに記憶し、MSBに0を記憶する命令である。
<他の命令/ビット操作命令>
【1899】
ビット操作命令は、ビット単位で各種の操作を行うための命令であり、例えば、BITT命令、SETT命令、REST命令などが該当する。
【1900】
例えば、(BITT b,(k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを反転して所定のフラグに記憶する命令であり、(SETT b,(k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータに1をセットする命令であり、(REST b,(k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータに0をセットする命令である。
<他の命令/演算&ジャンプ命令>
【1901】
演算&ジャンプ命令は、演算と当該演算の演算結果に基づく分岐処理を行うための命令であり、例えば、JCPT命令や、JTT命令や、JBITT命令などが該当する。
【1902】
例えば、(JCPT Z,A、(k),e)命令は、Aレジスタに記憶されたデータから、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを減算し、Zフラグが1の場合にはeで示されるアドレスをPC(プログラムカウンタ)にロードし(eで示されるアドレスに分岐し)、Zフラグが0の場合には後続の命令を実行させる命令であり、(JCPT NZ,A、(k),e)命令は、Aレジスタに記憶されたデータから、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを減算し、Zフラグが0の場合にはeで示されるアドレスをPC(プログラムカウンタ)にロードし(eで示されるアドレスに分岐し)、Zフラグが1の場合には後続の命令を実行させる命令である。
【1903】
(JCPT C,A、(k),e)命令は、Aレジスタに記憶されたデータから、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを下位バイトとするアドレスに記憶されたデータを減算し、キャリーフラグが1の場合にはeで示されるアドレスをPC(プログラムカウンタ)にロードし(eで示されるアドレスに分岐し)、キャリーフラグが0の場合には後続の命令を実行させる命令であり、(JCPT NC,A、(k),e)命令は、Aレジスタに記憶されたデータから、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを減算し、キャリーフラグが0の場合にはeで示されるアドレスをPC(プログラムカウンタ)にロードし(eで示されるアドレスに分岐し)、キャリーフラグが1の場合には後続の命令を実行させる命令である。
【1904】
(JCPT Z,(k),ss,e)命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスと、当該アドレスに1を加算したアドレスに記憶された2バイトのデータから、ssで示されるペアレジスタ(BC,DE)に記憶された2バイトのデータを減算し、Zフラグが1の場合にはeで示されるアドレスをPC(プログラムカウンタ)にロードし(eで示されるアドレスに分岐し)、Zフラグが0の場合には後続の命令を実行させる命令であり、(JCPT NZ,(k),ss,e)命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスと、当該アドレスに1を加算したアドレスに記憶された2バイトのデータから、ssで示されるペアレジスタ(BC,DE)に記憶された2バイトのデータを減算し、Zフラグが0の場合にはeで示されるアドレスをPC(プログラムカウンタ)にロードし(eで示されるアドレスに分岐し)、Zフラグが1の場合には後続の命令を実行させる命令である。
【1905】
(JCPT C,(k),ss,e)命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスと、当該アドレスに1を加算したアドレスに記憶された2バイトのデータから、ssで示されるペアレジスタ(BC,DE)に記憶された2バイトのデータを減算し、キャリーフラグが1の場合にはeで示されるアドレスをPC(プログラムカウンタ)にロードし(eで示されるアドレスに分岐し)、キャリーフラグが0の場合には後続の命令を実行させる命令であり、(JCPT NC,(k),ss,e)命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスと、当該アドレスに1を加算したアドレスに記憶された2バイトのデータから、ssで示されるペアレジスタ(BC,DE)に記憶された2バイトのデータを減算し、キャリーフラグが0の場合にはeで示されるアドレスをPC(プログラムカウンタ)にロードし(eで示されるアドレスに分岐し)、キャリーフラグが1の場合には後続の命令を実行させる命令である。
【1906】
(JTT Z,(k)e)命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータから、数値の0を減算し、Zフラグが1の場合にはeで示されるアドレスをPC(プログラムカウンタ)にロードし(eで示されるアドレスに分岐し)、Zフラグが0の場合には後続の命令を実行させる命令であり、(JTT NZ,(k)e)命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータから、数値の0を減算し、Zフラグが0の場合にはeで示されるアドレスをPC(プログラムカウンタ)にロードし(eで示されるアドレスに分岐し)、Zフラグが1の場合には後続の命令を実行させる命令である。
【1907】
(JBITT Z,b,(k),e)命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータのうち、bで示されるビットの反転データをZフラグに記憶し、Zフラグが1の場合にはeで示されるアドレスをPC(プログラムカウンタ)にロードし(eで示されるアドレスに分岐し)、Zフラグが0の場合には後続の命令を実行させる命令であり、(JBITT NZ,b,(k),e)命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータのうち、bで示されるビットの反転データをZフラグに記憶し、Zフラグが0の場合にはeで示されるアドレスをPC(プログラムカウンタ)にロードし(eで示されるアドレスに分岐し)、Zフラグが1の場合には後続の命令を実行させる命令である。
<他の命令/演算&リターン命令>
【1908】
演算&リターン命令は、演算と当該演算の演算結果に基づく復帰処理を行うための命令であり、例えば、RTT命令などが該当する。
【1909】
例えば、(RTT Z、(k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータから、数値の0を減算し、Zフラグが1の場合にはSPと(SP+1)に記憶されたアドレスをPC(プログラムカウンタ)にロードし(SPと(SP+1)で示されるアドレスに復帰し)、Zフラグが0の場合には後続の命令を実行させる命令であり、(RTT NZ、(k))命令は、Tレジスタに記憶されたデータを上位バイト、kで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータから、数値の0を減算し、Zフラグが0の場合にはSPと(SP+1)に記憶されたアドレスをPC(プログラムカウンタ)にロードし(SPと(SP+1)で示されるアドレスに復帰し)、Zフラグが1の場合には後続の命令を実行させる命令である。
<他の命令/複合命令>
【1910】
複合命令は、複数の処理を一つにした命令であり、例えば、INCPLD命令、INCPWLD命令、DECPLD命令、DECPWLD命令などが該当する。
【1911】
(INCPLD A,r)命令は、Aレジスタに記憶されたデータから、rで示されるレジスタ(B,C,D,E,H,L)に記憶されたデータを減算し、キャリーフラグが1の場合にAレジスタに記憶されたデータに1を加算し、キャリーフラグが0の場合にAレジスタに0を記憶する命令であり、(INCPLD (HL),r)命令は、HLレジスタに記憶されたデータが示すアドレスに記憶されたデータから、rで示されるレジスタ(B,C,D,E,H,L)に記憶されたデータを減算し、キャリーフラグが1の場合に、HLレジスタに記憶されたデータが示すアドレスに記憶されたデータに1を加算し、キャリーフラグが0の場合に、HLレジスタに記憶されたデータが示すアドレスに記憶されたデータに0を記憶する命令である。
【1912】
(INCPLD A,n)命令は、Aレジスタに記憶されたデータから、数値nを減算し、キャリーフラグが1の場合にAレジスタに記憶されたデータに1を加算し、キャリーフラグが0の場合にAレジスタに0を記憶する命令であり、(INCPLD (HL),n)命令は、HLレジスタに記憶されたデータが示すアドレスに記憶されたデータから、数値nを減算し、キャリーフラグが1の場合に、HLレジスタに記憶されたデータが示すアドレスに記憶されたデータに1を加算し、キャリーフラグが0の場合に、HLレジスタに記憶されたデータが示すアドレスに記憶されたデータに0を記憶する命令である。
【1913】
(INCPLD HL,mn)命令は、HLレジスタに記憶されたデータから、数値mnを減算し、キャリーフラグが1の場合にHLレジスタに記憶されたデータに1を加算し、キャリーフラグが0の場合にHLレジスタに0を記憶する命令であり、(INCPWLD(HL),mn)命令は、HLレジスタに記憶されたデータが示すアドレスと、HLレジスタに記憶されたデータ+1が示すアドレスに記憶されたデータから、数値mnを減算し、キャリーフラグが1の場合に、HLレジスタに記憶されたデータが示すアドレスと、HLレジスタに記憶されたデータ+1が示すアドレスに記憶されたデータに1を加算し、キャリーフラグが0の場合に、HLレジスタに記憶されたデータが示すアドレスと、HLレジスタに記憶されたデータ+1が示すアドレスに記憶されたデータに0を記憶する命令である。
【1914】
(DECPLD A,r)命令は、Aレジスタに記憶されたデータから1を減算し、キャリーフラグが1の場合に、rで示されるレジスタ(B,C,D,E,H,L)に記憶されたデータをAレジスタに記憶し、キャリーフラグが0の場合に、Aレジスタから1を減算す命令であり、(DECPLD (HL),r)命令は、HLレジスタに記憶されたデータが示すアドレスに記憶されたデータから、rで示されるレジスタ(B,C,D,E,H,L)に記憶されたデータを減算し、キャリーフラグが1の場合に、rで示されるレジスタ(B,C,D,E,H,L)に記憶されたデータを、HLレジスタに記憶されたデータが示すアドレスに記憶されたデータに記憶し、キャリーフラグが0の場合に、HLレジスタに記憶されたデータが示すアドレスに記憶されたデータから1を減算する命令である。
【1915】
(DECPLD A,n)命令は、Aレジスタに記憶されたデータから、数値nを減算し、キャリーフラグが1の場合に、Aレジスタに数値nを記憶し、キャリーフラグが0の場合に、Aレジスタに記憶されたデータから1を減算する命令であり、(DECPLD(HL),n)命令は、HLレジスタに記憶されたデータが示すアドレスに記憶されたデータから、数値nを減算し、キャリーフラグが1の場合に、HLレジスタに記憶されたデータが示すアドレスに記憶されたデータに数値nを記憶し、キャリーフラグが0の場合に、HLレジスタに記憶されたデータが示すアドレスに記憶されたデータから1を減算する命令である。
【1916】
(DECPLD HL,mn)命令は、HLレジスタに記憶されたデータから、数値mnを減算し、キャリーフラグが1の場合に、HLレジスタに数値mnを記憶し、キャリーフラグが0の場合に、HLレジスタに記憶されたデータから1を減算する命令であり、(DECPWLD (HL),mn)命令は、HLレジスタに記憶されたデータが示すアドレスと、HLレジスタに記憶されたデータ+1が示すアドレスに記憶されたデータから、数値mnを減算し、キャリーフラグが1の場合に、HLレジスタに記憶されたデータが示すアドレスと、HLレジスタに記憶されたデータ+1が示すアドレスに記憶されたデータに数値mnを記憶し、キャリーフラグが0の場合に、HLレジスタに記憶されたデータが示すアドレスと、HLレジスタに記憶されたデータ+1が示すアドレスに記憶されたデータから1を減算する命令である。
【1917】
例えば、上述の主制御部メイン処理の基本乱数初期値更新処理(ステップS115)において、Aレジスタに普図タイマ乱数値、数値nに普図タイマ乱数値の最大値(例えば、100)をそれぞれ記憶(ロード)した後に、(INCPLD A,n)命令を実行すれば、キャリーフラグが1の場合、すなわち、普図タイマ乱数値が最大値ではない場合には、普図タイマ乱数値に1を加算し、キャリーフラグが0の場合、すなわち、普図タイマ乱数値が最大値になった場合には、普図タイマ乱数値に0を記憶することができる。このため、(INCPLD A,n)命令だけで、普図タイマ乱数値の更新を容易に行うことができ、プログラム容量の削減や、処理速度の向上を図ることができる場合がある。
【1918】
また、上述の主制御部メイン処理の基本乱数初期値更新処理(ステップS115)において、Aレジスタに普図タイマ乱数値、数値nに普図タイマ乱数値の最大値(例えば、100)をそれぞれ記憶(ロード)した後に、(DECPLD A,n)命令を実行すれば、キャリーフラグが1の場合、すなわち、普図タイマ乱数値が負の値になった場合には、普図タイマ乱数値に普図タイマ乱数値の最大値を記憶し、キャリーフラグが0の場合、すなわち、普図タイマ乱数値が負の値ではない場合には、普図タイマ乱数値から1を減算することができる。このため、(DECPLD A,n)命令だけで、普図タイマ乱数値の更新を容易に行うことができ、プログラム容量の削減や、処理速度の向上を図ることができる場合がある。なお、この例では、Aレジスタのみで乱数値を更新する例を示したが、他のレジスタ(例えば、Rレジスタ)を併用したり、ハードウェア乱数値を併用してもよい。
【1919】
以上説明したように、上記実施形態に係る遊技台は、CPU(例えば、CPU304)と、遊技制御プログラムが少なくとも記憶されているROM(例えば、ROM306)と、を少なくとも内蔵するマイクロプロセッサ(例えば、基本回路302)を備えた遊技台であって、前記遊技台は、パチンコ機またはスロットマシンであり、前記マイクロプロセッサは、少なくとも所定の出力端子(例えば、リセット出力端子XRSTO)を有し、前記マイクロプロセッサは、少なくともランダム延長機能(例えば、ランダム延長処理)を有し、前記ランダム延長機能は、前記遊技制御プログラムの実行開始タイミングをランダムに変化させることが可能なものであり、前記所定の出力端子からの出力は、少なくとも所定のタイミングで第一のレベルから該第一のレベル(例えば、ローレベルの信号)よりも高い第二のレベル(例えば、ハイレベルの信号)に変化するものであり、前記所定のタイミングは、前記ランダム延長機能の実行前である、ことを特徴とする遊技台である。
【1920】
また、上記実施形態に係る遊技台は、CPU(例えば、CPU304)と、遊技制御プログラムを記憶するROM(例えば、ROM306)と、を少なくとも内蔵するマイクロプロセッサ(例えば、基本回路302)を備えた遊技台であって、前記マイクロプロセッサは、少なくとも所定の出力端子(例えば、リセット出力端子XRSTO)を有し、前記マイクロプロセッサは、前記所定の出力端子(例えば、リセット出力端子XRSTO)からの所定の信号出力(例えば、リセット出力信号出力)の立上りタイミングまたは立下りタイミング(例えば、ローレベル信号からハイレベル信号に変化させる立上りタイミング)を、前記遊技制御プログラムの実行開始前に行われるランダム遅延処理の開始前に実行可能である、ことを特徴とする遊技台である。
【1921】
図198および図199は、本発明に係る所定の出力端子の信号出力の一例を説明するための図である。同図には、所定の出力端子の一例であるリセット出力端子XRSTOの出力信号の電圧変化と、本発明に係る第一のレベルであるか否かを判断するための基準電圧であるローレベルしきい値電圧VLと、本発明に係る第二のレベルであるか否かを判断するための基準電圧であるハイレベルしきい値電圧VHを示している。
【1922】
この例では、リセット出力端子XRSTOの出力信号の電圧がローレベルしきい値電圧VLよりも低い場合には第一のレベル(ローレベル)と規定し、リセット出力端子XRSTOから出力する電圧がハイレベルしきい値電圧VHよりも高い場合には第二のレベル(ハイレベル)と規定している。なお、この例では、ローレベルしきい値電圧VLとハイレベルしきい値電圧VHにヒステリシスを持たせているが、本発明はこれに限定されず、例えば、ローレベルしきい値電圧VLとハイレベルしきい値電圧VHを同一の電圧(例えば、ハイレベルの最高電圧が5V、ローレベルの最低電圧が0Vの場合に、両者の平均の2.5V)に設定してもよい。
【1923】
図198(a)では、リセット出力端子XRSTOの出力信号の電圧を、ランダム延長処理の実行開始後に、第一のレベル(ローレベル)の電圧からローレベルしきい値電圧VLを超える電圧に変化させた後に、ランダム延長処理の実行中に、さらにハイレベルしきい値電圧VHを超える電圧に変化させて第二のレベル(ハイレベル)に変化させている。同図(b)では、リセット出力端子XRSTOの出力信号の電圧を、ランダム延長処理の実行開始とほぼ同時に、第一のレベル(ローレベル)の電圧からローレベルしきい値電圧VLを超える電圧に変化させた後に、ランダム延長処理の実行中に、さらにハイレベルしきい値電圧VHを超える電圧に変化させて第二のレベル(ハイレベル)に変化させている。
【1924】
また、同図(c)では、リセット出力端子XRSTOの出力信号の電圧を、ランダム延長処理の実行開始前に、第一のレベル(ローレベル)の電圧からローレベルしきい値電圧VLを超える電圧に変化させた後に、ランダム延長処理の実行中に、ランダム延長処理の実行開始後に、さらにハイレベルしきい値電圧VHを超える電圧に変化させて第二のレベル(ハイレベル)に変化させている。同図(d)では、リセット出力端子XRSTOの出力信号の電圧を、ランダム延長処理の実行開始前に、第一のレベル(ローレベル)の電圧からローレベルしきい値電圧VLを超える電圧に変化させた後に、ランダム延長処理の実行開始とほぼ同時に、さらにハイレベルしきい値電圧VHを超える電圧に変化させて第二のレベル(ハイレベル)に変化させている。
【1925】
一方、同図(e)では、リセット出力端子XRSTOの出力信号の電圧を、ランダム延長処理の実行開始前に、第一のレベル(ローレベル)の電圧からローレベルしきい値電圧VLを超える電圧に変化させた後に、ランダム延長処理の実行開始前に、さらにハイレベルしきい値電圧VHを超える電圧に変化させて第二のレベル(ハイレベル)に変化させている。図199(a)では、リセット出力端子XRSTOの出力信号の電圧を、ランダム延長処理の実行開始前、かつ、固定延長処理の実行終了後に、第一のレベル(ローレベル)の電圧からローレベルしきい値電圧VLを超える電圧に変化させた後に、ランダム延長処理の実行開始前、かつ、固定延長処理の実行終了後に、さらにハイレベルしきい値電圧VHを超える電圧に変化させて第二のレベル(ハイレベル)に変化させている。また、同図(b)では、リセット出力端子XRSTOの出力信号の電圧を、ランダム延長処理の実行開始前、かつ、固定延長処理の実行終了とほぼ同時に、第一のレベル(ローレベル)の電圧からローレベルしきい値電圧VLを超える電圧に変化させた後に、ランダム延長処理の実行開始前、かつ、固定延長処理の実行終了後に、さらにハイレベルしきい値電圧VHを超える電圧に変化させて第二のレベル(ハイレベル)に変化させている。
【1926】
また、前記マイクロプロセッサは、前記所定の出力端子(例えば、リセット出力端子XRSTO)からの所定の信号出力(例えば、リセット出力信号出力)を、前記遊技制御プログラムの実行開始前に行われるランダム遅延処理の終了前(または、ランダム遅延処理中)に実行可能であっても、同様の効果を得ることができる。
【1927】
上記実施形態に係る遊技台によれば、所定の信号出力のタイミングと遊技制御プログラムの実行開始タイミングをずらすことが可能なため、遊技制御処理の特定の処理(例えばソフト乱数の更新処理、初期値更新処理等)の狙い撃ちを防止することができる場合がある。
【1928】
また、前記所定の出力端子はリセット信号を出力可能な端子であってもよい。このような構成とすれば、例えば、リセット信号を所定の電子部品に接続した場合、遊技制御前に電子部品が動作可能となり、不正な電波を送信した場合に電子部品が動作してしまうため、不正行為を発見しやすくなる場合がある。また、遊技制御プログラムの開始前に電子部品が動作可能なので、電子部品の作動開始タイミングと、遊技制御プログラムの実行開始タイミングとが異なると思わせることにより、遊技制御処理の特定の処理の狙い撃ちを防止することができる場合がある。
【1929】
また、少なくとも、セキュリティモードおよびユーザモードを備え、前記遊技制御プログラムは、前記ユーザモードで実行されるユーザプログラムであってもよい。
【1930】
このような構成とすれば、所定の信号出力のタイミングとユーザプログラムの実行開始タイミングをずらすことが可能なため、遊技制御処理の特定の処理(例えばソフト乱数の更新処理、初期値更新処理等)の狙い撃ちを防止することができる場合がある。
【1931】
また、前記遊技制御プログラムの実行開始は、システムリセットおよびユーザリセットのうちの少なくともいずれか一方を受け付けた後でおこなわれるものであってもよい。
【1932】
このような構成とすれば、システムリセットまたはユーザリセットの度に所定の信号出力のタイミングと遊技制御プログラムの実行開始タイミングをずらすことが可能なため、遊技制御処理の特定の処理(例えばソフト乱数の更新処理、初期値更新処理等)の狙い撃ちを防止することができる場合がある。
【1933】
また、少なくとも所定の入力端子を有する所定の電子部品(例えば、IC11?IC14)を備え、前記所定の入力端子(例えば、リセット入力端子)は、前記所定の出力端子からの前記所定の信号を入力可能な端子であってもよい。
【1934】
このような構成とすれば、遊技制御プログラムの開始前に電子部品が動作可能なので、電子部品の作動開始タイミングと、遊技制御プログラムの実行開始タイミングとが異なると思わせることにより、遊技制御処理の特定の処理の狙い撃ちを防止することができる場合がある。
【1935】
図200は、ユーザリセット時におけるシステムクロック信号、アドレス信号、データ信号、制御信号、およびリセット出力信号の変化を示した図である。上述のとおり、本実施形態のユーザリセットには、WDTのタイムアウトによるユーザリセットと、指定エリア外のアクセスによるユーザリセットの2種類があり、プログラム管理エリアの設定により、ユーザリセットを有効に設定している場合に機能する。
【1936】
WDTのタイムアウトによるユーザリセットは、WDTタイムアウト信号に基づいて発生するリセットであり、当該リセット中はアドレス信号として第一の固定値(例えば、E000H)を出力するように構成している。一方、指定エリア外のアクセスによるユーザリセットは、指定エリア外走行禁止信号に基づいて発生するリセットであり、当該リセット中はアドレス信号として第二の固定値(例えば、8000Hなど、E000H以外の値)を出力するように構成している。
【1937】
ユーザリセットが発生すると、CPUコア、タイマ回路、演算回路、入出力ポート、通信回路、割込みコントローラなどが初期化され、リセットアドレス(0000H)よりユーザプログラム(遊技制御プログラム)の実行を開始し、起動されていたウォッチドッグタイマも制御プログラムによらずに(自動的に)クリア&リスタートされる。
【1938】
このように、前記マイクロプロセッサは、所定の条件が成立した場合(例えば、図186に示すタイムアウト時間が経過した場合)に、所定の信号(例えば、WDT起動信号(WDTタイムアウト信号)や、CPU内部の信号)を少なくとも発生させることが可能なウォッチドッグタイマ(例えば、WDT314、第一WDT314a、第二WDT314b)と、正当な指定エリア以外の記憶領域のコードが実行されたことに基づいて、指定エリア外走行禁止信号を少なくとも発生させることが可能な指定エリア外走行禁止回路(例えば、指定エリア外走行禁止回路3142)と、を少なくとも有し、前記指定エリア外走行禁止信号が発生してから前記所定のタイミングの間に開始されるセキュリティチェック中に、前記ウォッチドッグタイマのカウンタが停止している期間が少なくとも含まれていてもよい。
【1939】
なお、本発明に係る「ウォッチドッグタイマのカウンタが停止している」には、カウンタが一時的に停止している場合、カウンタが初期値や0に設定された後にカウンタが一時的に停止している場合、カウンタのカウントは継続するが、カウンタがタイムアウトする前にカウンタをクリア&リスタートし続けることによってカウンタが実質的に停止する(タイムアウトさせない)場合、カウンタの値をセキュリティチェック時間の最大処理時間よりも長く設定し、セキュリティチェック中のタイムアウトを回避することによってカウンタが実質的に停止する(タイムアウトさせない)場合などが含まれる。また、「ウォッチドッグタイマのカウンタが停止している期間」には、指定エリア外走行禁止信号の発生から当該信号の発生直後までの期間、指定エリア外走行禁止信号の発生後からシステムクロックが所定クロック経過した後(例えば、指定エリア外走行禁止信号の発生後からシステムクロックの1クロック後の立ち下がりエッジまたは立ち上がりエッジまで)、リセット出力端子XRSTOの出力信号の立上りまでの期間の一部やすべてなども含まれる。また、WDTをマイコンに内蔵し、WDTタイムアウトが発生してから前記所定のタイミングの間に開始されるセキュリティチェック中に、WDT用カウンタが停止している期間が少なくとも含まれ、WDTをマイコンに内蔵し、指定エリア外走行禁止信号が発生してから前記所定のタイミングの間に開始されるセキュリティチェック中に、WDT用カウンタが停止している期間が少なくとも含まれる。
【1940】
このような構成とすれば、指定エリア外走行禁止信号に基づくリセット処理を行う際に、ウォッチドッグタイマのタイムアウトを制御プログラムによらずに(自動的に)停止させることができ、指定エリア外走行禁止信号に基づくリセット処理を迅速に行うことができる場合がある。
【1941】
また、本実施形態に係るパチンコ機100は、CPU(例えば、CPU304)と、遊技制御プログラムが少なくとも記憶されているROM(例えば、ROM306)と、を少なくとも備えた遊技台であって、前記遊技台は、パチンコ機またはスロットマシンであり、所定の条件が成立した場合(例えば、図186に示すタイムアウト時間が経過した場合)に、所定の信号(例えば、WDT起動信号(WDTタイムアウト信号)や、CPU内部の信号)を少なくとも発生させるウォッチドッグタイマ(例えば、WDT314、第一WDT314a、第二WDT314b)を備え、前記CPUは、前記所定の信号の発生を契機として前記遊技制御プログラムを所定のアドレス(例えば、図133に示す0000H番地)から実行可能であり、前記所定の信号の発生から前記遊技制御プログラムの実行開始までの時間を調整可能に構成されている、ことを特徴とする遊技台である。
【1942】
本実施形態に係るパチンコ機100によれば、遊技制御用プログラムが実行されるまでの時間を変化させることができ、遊技制御用プログラムの実行タイミング(例えば、当否判定の抽選タイミング)を把握するような不正行為を未然に防止でき、安定した遊技制御をおこなうことができる場合がある。
【1943】
なお、本発明に係るウォッチドッグタイマは、CPUと別体のもの、CPUに内蔵のもの、の両方を含み、前者の場合、リセット信号はウォッチドッグタイマからCPUに入力されるため信号線が外部に露出するが、後者の場合、リセット信号はCPU内部で配線されるため信号線は外部には露出しない。したがって、後者の場合には、WDTのタイムアウトに基づいてリセット信号が発生したか否か(CPUにリセットがかかったか否か)を隠蔽することができ、遊技制御用プログラムの実行タイミングを把握するような不正行為を、より確実に防止できる場合がある。
【1944】
また、前記CPUと前記ROMを少なくとも内蔵するマイクロプロセッサ(例えば、基本回路302)を備え、前記マイクロプロセッサは、少なくとも所定の出力端子(例えば、リセット出力端子XRSTO)を有し、前記所定の出力端子は、少なくとも所定のタイミングで立ち上がることが可能なものであり、前記所定のタイミングは、前記遊技制御プログラムの実行開始前に行われるランダム遅延処理の開始前であってもよい。
【1945】
このような構成とすれば、所定の信号出力のタイミングと遊技制御プログラムの実行開始タイミングをずらすことが可能なため、遊技制御処理の特定の処理(例えばソフト乱数の更新処理、初期値更新処理等)の狙い撃ちを防止することができる場合がある。
【1946】
また、前記CPUは、所定の出力端子(例えば、リセット出力端子XRSTO)からの信号(例えば、リセット出力信号出力)の出力の立上りタイミングまたは立下りタイミング(例えば、ローレベル信号からハイレベル信号に変化させる立上りタイミング)を、前記遊技制御プログラムの実行開始前に行われるランダム遅延処理の開始前に実行可能であってもよい。
【1947】
このような構成とすれば、遊技制御用プログラムが実行されるまでの時間を変化させながらも、リセット信号の発生から所定の信号の出力までの時間を一定にすることができ、安定した遊技制御をおこなうことができる場合がある。
【1948】
また、前記所定の出力端子はリセット信号を出力可能な端子であってもよい。このような構成とすれば、例えば、リセット信号を所定の電子部品に接続した場合、遊技制御前に電子部品が動作可能となり、不正な電波を送信した場合に電子部品が動作してしまうため、不正行為を発見しやすくなる場合がある。また、遊技制御プログラムの開始前に電子部品が動作可能なので、電子部品の作動開始タイミングと、遊技制御プログラムの実行開始タイミングとが異なると思わせることにより、遊技制御処理の特定の処理の狙い撃ちを防止することができる場合がある。
【1949】
また、少なくとも、セキュリティモードおよびユーザモードを備え、前記遊技制御プログラムは、前記ユーザモードで実行されるユーザプログラムであってもよい。
【1950】
このような構成とすれば、所定の信号出力のタイミングとユーザプログラムの実行開始タイミングをずらすことが可能なため、遊技制御処理の特定の処理(例えばソフト乱数の更新処理、初期値更新処理等)の狙い撃ちを防止することができる場合がある。
【1951】
また、リセット要因を示す所定の情報(例えば、直前に発生したリセット要因がシステムリセットであるか否かを示す情報)が少なくともセットされるレジスタ(例えば、図175に示す第4内部情報レジスタ)を備え、前記遊技制御プログラムは、前記所定の情報に基づく処理(例えば、第4内部情報レジスタから読み出した情報を汎用レジスタに書き込む処理)を含まないように(実行しないように)構成してもよい。
【1952】
このような構成とすれば、故意にCPUのリセットを発生させて特定の処理(例えばソフト乱数の更新処理、初期値更新処理等)の実行タイミングなどを狙うような不正行為を防止できる場合がある。
【1953】
また、前記マイクロプロセッサは、前記ウォッチドッグタイマと、正当な指定エリア以外の記憶領域のコードが実行されたことに基づいて、指定エリア外走行禁止信号を少なくとも発生させることが可能な指定エリア外走行禁止回路(例えば、指定エリア外走行禁止回路3142)と、を少なくとも有し、前記指定エリア外走行禁止信号が発生してから前記所定のタイミングの間に開始されるセキュリティチェック中に、前記ウォッチドッグタイマのカウンタが停止している期間が少なくとも含まれていてもよい。
【1954】
このような構成とすれば、指定エリア外走行禁止信号に基づくリセット処理を行う際に、ウォッチドッグタイマのタイムアウトを制御プログラムによらずに(自動的に)停止させることができ、指定エリア外走行禁止信号に基づくリセット処理を迅速に行うことができる場合がある。
【1955】
また、本実施形態に係るパチンコ機100は、CPU(例えば、CPU304)と、遊技制御プログラムが少なくとも記憶されているROM(例えば、ROM306)と、を少なくとも備えた遊技台であって、前記遊技台は、パチンコ機またはスロットマシンであり、前記CPUは、少なくとも特定のレジスタ(例えば、Tレジスタ)を備え、前記遊技制御プログラムは、所定の処理(例えば、図102に示す特図1関連抽選処理)と、該所定の処理から呼び出される所定のサブ処理(例えば、図105のステップS1103の「保留数記憶領域(RWM領域のアドレスF040H)に記憶された保留数を、Aレジスタに転送する処理」)を少なくとも含み、前記所定の処理は、第一の処理と第二の処理(例えば、図102に示す、特別図柄乱数移行処理、特別図柄当り抽選処理、表示図柄抽選処理、特別図柄変動時間抽選処理、特別図柄変動時間設定処理、特別図柄保留内情報移行処理のうちの2つの処理である第一の処理と第二の処理)を少なくとも含み、前記所定のサブ処理は、前記第一の処理と前記第二の処理の両方から呼び出され、前記特定のレジスタを用いた処理は、前記所定のサブ処理で少なくとも実行可能であることを特徴とする遊技台である。
【1956】
なお、本発明に係る第一の処理は、主制御部メイン処理(メインループ処理)から呼び出される処理(例えば、図81の主制御部メイン処理に示す各処理)、本発明に係る第二の処理は、主制御部タイマ割込処理(タイマ割込処理)から呼び出される処理(例えば、図85の主制御部タイマ割込処理に示す各処理)でもよく、本発明に係る所定のサブ処理は、これらの主制御部メイン処理から呼び出される処理と、主制御部タイマ割込処理から呼び出される処理の両方から呼び出されるものでもよい。
【1957】
本実施形態に係るパチンコ機100によれば、2つの異なる処理(第一の処理と第二の処理)から呼び出されるサブ処理において、共通の特定のレジスタを用いた処理を実行するため、遊技制御プログラムを簡素化することができ、プログラムのコード量を従来よりも減らすことができる上に、コーディングミスの発生を減少させることができ、安定した遊技制御を行うことができる場合がある。
【1958】
また、前記CPUは、所定の命令(例えば、図135に示すRST命令)を少なくとも実行可能であり、前記所定の命令は、該命令が実行された処理から、予め定められたアドレス(例えば、0008H、0010H、0018H、0020H、0028H、0030H、0038H、0040Hの8種類のアドレス)に配置された処理のみを呼出可能な命令であり、前記所定のサブ処理は、前記第一の処理と前記第二の処理の両方から前記所定の命令を用いて呼出可能な処理のうちの一つであってもよい。
【1959】
このような構成とすれば、遊技制御プログラムの解析や改ざんが困難となるため、不正にサブ処理を読み出すプログラムを組み込んで不正な利益を得ようとする行為や、不正にRAMに記憶された内部情報を取得するような行為を未然に防止できる場合がある。
【1960】
また、前記CPUは、前記特定のレジスタに値をセットする機能のうち、ロード命令を受けたことに基づいて行われるもの以外のものとして、所定の値を初期値としてセットする機能(例えば、8ビットロード(転送)命令、16ビットロード(転送)命令、スタック操作命令、複合命令など)を少なくとも有してもよい。
【1961】
このような構成とすれば、遊技制御プログラムの設計の自由度を高めることができ、安定した遊技制御を行うことができる場合がある。
【1962】
また、演出制御を行う演出制御手段(例えば、第1副制御部400または第2副制御部500)を備え、前記CPUは、前記演出制御手段に搭載されず、遊技制御を行う遊技制御手段(例えば、主制御部300)にのみに搭載されていてもよい。また、演出制御を行う演出制御手段(例えば、第1副制御部400または第2副制御部500)と、払出制御を行う払出制御手段(例えば、払出制御部600)と、を備え、前記CPUは、前記演出制御手段に搭載されず、遊技制御を行う遊技制御手段(例えば、主制御部300)および前記払出制御手段のうちの少なくとも一方に搭載されていてもよい。
【1963】
このような構成とすれば、遊技制御プログラムの解析や改ざんを、より困難にすることができる場合がある。
【1964】
また、前記CPUと前記ROMを少なくとも内蔵するマイクロプロセッサ(例えば、基本回路302)を備え、前記マイクロプロセッサは、少なくとも所定の出力端子(例えば、リセット出力端子XRSTO)を有し、前記所定の出力端子は、少なくとも所定のタイミング(例えば、ランダム延長機能の実行前)で立ち上がることが可能なものであり、前記マイクロプロセッサは、所定の条件が成立した場合(例えば、図186に示すタイムアウト時間が経過した場合)に、所定の信号(例えば、WDT起動信号(WDTタイムアウト信号)や、CPU内部の信号)を少なくとも発生させることが可能なウォッチドッグタイマ(例えば、WDT314、第一WDT314a、第二WDT314b)と、正当な指定エリア以外の記憶領域のコードが実行されたことに基づいて、指定エリア外走行禁止信号を少なくとも発生させることが可能な指定エリア外走行禁止回路(例えば、指定エリア外走行禁止回路3142)と、を少なくとも有し、前記指定エリア外走行禁止信号が発生してから前記所定のタイミングの間に開始されるセキュリティチェック中に、前記ウォッチドッグタイマのカウンタが停止している期間が少なくとも含まれていてもよい。
【1965】
このような構成とすれば、指定エリア外走行禁止信号に基づくリセット処理を行う際に、ウォッチドッグタイマのタイムアウトを制御プログラムによらずに(自動的に)停止させることができ、指定エリア外走行禁止信号に基づくリセット処理を迅速に行うことができる場合がある。
【1966】
また、所定の周期で数値を変化させる乱数回路と、所定の抽出条件が成立したことに基づいて前記乱数回路から数値を抽出し、少なくとも該数値に基づいて遊技に関する抽選を行う処理を含む遊技制御処理を行うためのCPUと、前記遊技制御処理の内容が予め記憶されているROMと、一時的にデータを記憶するためのRAMと、を含んで構成されたマイクロコンピューターを備え、前記CPUは、電源が遮断される場合に実行される処理であって、前記RAMの所定領域に当該処理が行われたことを示す所定のデータを記憶させる処理を含む電断時処理を行い、前記CPUは、前記所定のデータが記憶されている場合には、前記RAM領域を初期化する初期化処理を行うことなく前記遊技制御処理を復帰させることが可能である一方、前記所定のデータが記憶されていない場合には、該初期化処理を行うことなく前記遊技制御処理を復帰させることが不可能であり、前記マイクロコンピューターは、電源が投入された場合に入力される起動信号が入力されてから前記遊技制御処理が開始されるまでの時間の長さをランダムに変動させる時間変動処理を行う時間変動用回路、および正当な指定エリア以外の記憶領域のコードが実行されたことに基づいて指定エリア外走行禁止信号を発生させる指定エリア外走行禁止回路を、含んで構成され、前記CPUは、前記起動信号が入力されたことに基づいて実行されるシステムリセットの場合には、前記マイクロコンピューターによって、前記ROMが記憶している前記遊技制御処理の内容に異常がないかをチェックする処理および前記時間変動処理を含むセキュリティチェックが行われた後に、前記遊技制御処理を開始し、前記CPUは、前記指定エリア外走行禁止信号が発生したことに基づいて実行されるユーザリセットの場合には、前記マイクロコンピューターによって、前記セキュリティチェックが行われないことで、前記時間変動処理が行われず、前記遊技制御処理を開始し、前記システムリセットおよび前記ユーザリセットのいずれの場合であっても、前記CPUによって前記電断処理が行われず、前記所定領域に前記所定のデータが記憶されないことを特徴とする遊技台としてもよい。
【1967】
次に、図202を用いて、図141のステップS2101における初期設定処理の詳細について説明する。同図は、図141のステップS2101における初期設定処理のフローチャートである。
【1968】
まず、最初に実行されるステップS2101aでは、初期設定1を行う。この初期設定1では、CPU1304のスタックポインタ(SP)へのスタック初期値の設定(仮設定)、割込マスクの設定、I/O1310の初期設定、RAM1308に記憶する各種変数の初期設定等を行う。
【1969】
ステップS2101bでは、低電圧信号がオンであるか否か、すなわち、電圧監視回路1330が、主制御部1300に供給されている電源の電圧値が所定の値(本実施形態では9V)未満である場合に電圧が低下したことを示す低電圧信号を出力しているか否かを監視する。そして、低電圧信号がオンの場合(CPU1304が電源の遮断を検知した場合)には繰り返しこのステップS2101bを実行し、低電圧信号がオフの場合(CPU1304が電源の遮断を検知していない場合)にはステップS2101cに進む。なお、電源が投入された直後で未だ上記所定の値(9V)に達しない場合にも、供給電圧がその所定の値以上になるまでステップS2101bは繰り返し実行される。
【1970】
ステップS2101cでは、初期設定2を行う。この処理の詳細は、図160を用いて説明した内容と同様であるため、説明を省略する。
【1971】
ステップS2101dでは、設定キースイッチがオンであるか否か判定される。ここで、設定キースイッチとは、スロットマシン1100における遊技者の有利度(例えば1?6まで6種類の有利度)を設定するためのスイッチである。このスイッチがオンである場合にはステップS2101iに進み、そうでない場合にはステップS2101eに進む。
【1972】
ステップS2101eでは、RAM1308に記憶されているデータに異常があるか否か判定される。ここで判定されるデータは、スロットマシン1100の電源が落されるかあるいは上述の瞬断によってRAM1308に退避されたデータである(図142のステップS2221参照)。すなわち、RAM1308にデータが確実に退避されているか否かが、このステップS2101eで判定される。なお、この処理の詳細は、図159のステップS3007において説明した内容と同様である。このデータに異常がある場合にはステップS2101kに進み、異常がない場合にはステップS2101fに進む。
【1973】
ステップS2101fでは、強制RWMクリアがON状態か否かを判定する。具体的には、電源が投入され、RWMクリアボタン(不図示)が長押し(例えば、5秒以上の押下)されたことに基づき、強制RWMクリアのON状態とする。そして、強制RWMクリアがON状態の場合はステップS2101jに移行し、OFF状態の場合はステップS2101gに進む。
【1974】
ステップS2101gでは、RAM1308に記憶されたデータをCPU1304のレジスタに書き戻し、レジスタの状態を電断処理が実行される直前の状態に復帰させる処理が実行される。なお、この処理の詳細は、図159のステップS3009において説明した内容と同様である。この処理の後ステップS2101hに進む。
【1975】
ステップS2101hでは、WDT1314を起動させる処理を行う。ここでは、WDT1314の起動許可及び初期値の設定等を行う。なお、本実施形態では、WDT1314に、初期値として32.8msに相当する数値を設定する。その後、この初期設定処理を終了する。
【1976】
ステップS2101dにおいて、設定キースイッチがオンの場合に進むステップS2101iでは、設定キーの状態に従って設定値変更処理が実行される。その後、ステップS2101jに進む。
【1977】
ステップS2101jでは、RWMクリア処理を行う。この処理の詳細は、図159のステップS3103において説明した内容と同様である。この処理の後、ステップS2101hに進む。
【1978】
ステップS2101eにおいて、RAM1308のデータに異常があると判定された場合に進むステップS2101kでは、RWMエラー処理を行う。このRWMエラー処理では、使用スタックエリアを除く全てのRAM(RWM)1308の記憶領域をクリアする準備などを行った後に、無限ループ状態に移行する。なお、この状態からは、電源を入れなおした後、設定キースイッチを操作することで遊技が開始できるようになる。
【1979】
図203は、図146に示すタイマ回路311の構成を詳しく示したブロック図である。
【1980】
タイマ回路311は、8ビットのプログラマブルカウンタを3チャネル内蔵している。すなわち、図203に示すように、3つのタイマ回路(タイマ回路0?2)が用意されている。各タイマ回路は、ダウンカウンタ回路であって、それぞれ独立した動作モードの設定が可能である。これら3つのタイマ回路の構成はいずれも同じであるため、ここではタイマ回路0を用いて説明する。
【1981】
タイマ回路311は、プリスケーラレジスタ3111、制御レジスタ3112、カウンタ設定レシジスタ3113、およびカウンタレジスタ3114の4種類のレジスタと、プリスケーラ3115と、8ビットカウンタ3116を有する。
【1982】
このタイマ回路311は、プリスケーラレジスタ3111で選択されたカウントクロックを8ビットカウンタ3116のクロック源とする。プリスケーラレジスタ3111は、8ビットカウンタ3116を動作させるためのクロック数を選択する8ビットのレジスタである。このプリスケーラレジスタ3111に、初期値である「00H」を設定した場合には、8ビットカウンタ3116を動作させるためのカウントクロックは停止になる。「01H」を設定した場合には、カウントクロックはシステムクロック(SCLK)になる。また、カウントクロックは、「02H」を設定した場合にはシステムクロック/2になり、「03H」を設定した場合にはシステムクロック/3になり、・・・「FEH」を設定した場合にはシステムクロック/254になり、「FFH」を設定した場合にはシステムクロック/255になる。
【1983】
制御レジスタ3112は、割込みフラグ3110のモニタ、割込みの許可や禁止、割込みフラグ3110のクリア、8ビットカウンタ3116の各種動作条件を設定する8ビットのレジスタである。
【1984】
このタイマ回路311では、カウンタ設定レジスタ3113にカウント値を書き込むことによって、8ビットカウンタ3116のダウンカウントが開始される。カウンタ設定レジスタ3113は、8ビットカウンタ3116のカウント値を設定するレジスタである。なお、設定値に「00H」を書き込んだ場合は、8ビットカウンタ3116は動作しない。
【1985】
カウンタレジスタ3114は、CPUレジスタリード信号の入力タイミングに合わせて8ビットカウンタ3116の値を読み出すためのレジスタである。
【1986】
8ビットカウンタ3116がタイムアウトすると、タイムアウト信号が8ビットカウンタ3116からカウンタ回路312に出力される。なお、割込みが許可されている場合には、割込みフラグ3110から割込み信号が割込み制御回路3100に出力される。また、8ビットの制御レジスタの0ビット目に、「0」を設定しておくと、ワンタイムモード(初期値)になり、タイムアウト発生後、8ビットカウンタ3116は動作を停止するが、「1」を設定しておくと、リピートモードになり、タイムアウト発生後も、8ビットカウンタ3116は継続して動作を行い、タイムアウト信号が定期的に出力される。
【1987】
以上説明した、各レジスタの設定値は、内蔵ROM306のプログラムデータエリアに記憶されている。プログラムデータエリアに記憶されている各設定値は、図159に示す主制御部メイン処理における初期設定2(ステップS3005)において、プログラムデータエリアから呼び出され、各レジスタに設定されるか、あるいは主制御部メイン処理や図162に示す主制御部割込処理において呼び出され、各レジスタに設定される。
【1988】
図203に示すタイマ回路311では、プリスケーラレジスタ3111に、初期値の「00H」を設定しておくか、あるいはカウンタ設定レジスタ3113に「00H」を書き込んでおけば、8ビットカウンタ3116はダウンカウントを開始せず、タイムアウト信号は出力されない。
【1989】
図204は、図146に示すカウンタ回路312の構成を詳しく示したブロック図である。
【1990】
カウンタ回路312は、8ビットのプログラマブルカウンタを4チャネル内蔵している。すなわち、図204に示すように、4つのカウンタ回路(カウンタ回路0?3)が用意されている。各カウンタ回路は、アップカウンタ回路であって、それぞれ独立した動作モードの設定が可能である。これら4つのカウンタ回路の構成はいずれも同じであるため、ここではカウンタ回路0を用いて説明する。
【1991】
カウンタ回路は、制御レジスタ3121、8ビットカウンタ3122、カウンタ設定レジスタ3123、およびカウンタレジスタ3124を有する。制御レジスタ3121は、内部バスを流れる各種の信号を取得可能であり、図204には、制御レジスタ3121が、8種類の信号を取得可能であることが示されている。これら8種類の信号は、システムクロック信号(SCLK)、図203に示すタイマ回路0?2それぞれからのタイムアウト信号、CPUコアのメモリリクエスト信号(XMREQ信号)、CPUコアのライト信号(XWR信号)、CPUコアのIOリクエスト信号(XIORQ信号)、およびCPUコアの割込み要求応答信号(マスカブル割込みアクノリッジサイクル;XINTACK信号)である。制御レジスタ3121は、8ビットカウンタ3122を動作させるためのクロック源を選択する8ビットのレジスタである。すなわち、8本の信号線から入力されるいずれの信号をクロック源にするかを選択するものである。また、制御レジスタ3121は、8ビットカウンタ3122の許可や禁止を設定するレジスタでもある。
【1992】
図205は、制御レジスタ3121を詳しく説明するための図である。
【1993】
図205に示すように、制御レジスタ3121は8ビットのレジスタである。5?7ビット目は「0」が設定されたままであり、使用されていない。
【1994】
4ビット目は8ビットカウンタ3122の許可や禁止を設定するビットである。この4ビット目に、初期値である「0」が設定されると8ビットカウンタ3122は動作を停止し、「1」が設定されると8ビットカウンタ3122は動作を開始する。
【1995】
3ビット目は8ビットカウンタ3122のカスケード接続を設定するビットである。詳細は後述するが、カウンタ回路0の8ビットカウンタ3122と、カウンタ回路1の8ビットカウンタ3122はカスケード接続が可能であり、カウンタ回路2の8ビットカウンタ3122と、カウンタ回路3の8ビットカウンタ3122もカスケード接続が可能である。すなわち、カウンタ回路0の8ビットカウンタ3122と、カウンタ回路1の8ビットカウンタ3122が第1の組になっており、カウンタ回路2の8ビットカウンタ3122と、カウンタ回路3の8ビットカウンタ3122が第2の組になっている。同一組内で、いずれか一方の制御レジスタ3121の3ビット目に「1」が設定されると、カスケード接続が優先される。すなわち、他方の制御レジスタ3121の3ビット目に「0」が設定されていても、カスケード接続が設定され、「1」は「0」より優先される設定値である。
【1996】
2?0ビット目は、8ビットカウンタ3122のクロック源を設定するビットである。すなわち、カウンタ回路312の更新源になる信号を設定するためのビットである。この2?0ビット目に、初期値の「000」が設定されるとシステムクロック信号(SCLK)が8ビットカウンタ3122のクロック源になり、「001」が設定されるとタイマ回路0からのタイムアウト信号がクロック源になり、「010」が設定されるとタイマ回路1からのタイムアウト信号がクロック源になり、「011」が設定されるとタイマ回路2からのタイムアウト信号がクロック源になる。システムクロック信号(SCLK)は、制御レジスタ3121に定期的に入力される信号である。また、タイマ回路311をリピートモードに設定しておくと、タイムアウト信号が制御レジスタ3121に定期的に入力される。一方、メモリリクエスト信号(XMREQ信号)、ライト信号(XWR信号)、IOリクエスト信号(XIORQ信号)、割込み要求応答信号(XINTACK信号)は、制御レジスタ3121に不定期的に入力される信号である。2?0ビット目に、「100」が設定されるとライト信号(XWR信号)が8ビットカウンタ3122のクロック源になり、「101」が設定されるとメモリリクエスト信号(XMREQ信号)がクロック源になり、「110」が設定されるとIOリクエスト信号(XIORQ信号)がクロック源になり、「111」が設定されると割込み要求応答信号(XINTACK信号)がクロック源になる。このクロック源を設定する設定値は、内蔵ROM306のプログラムデータエリアに記憶されており、図159に示す主制御部メイン処理における初期設定2(ステップS3005)において、プログラムデータエリアから呼び出され、制御レジスタ3121に設定される。なお、基本回路の内部的には、内蔵RAM308への信号は、メモリリクエスト信号(XMREQ信号)とIOリクエスト信号(XIORQ信号)とのうち、メモリマップド方式を採用した場合には、メモリリクエスト信号(XMREQ信号)が用いられ、IOマップド方式を採用した場合にはIOリクエスト信号(XIORQ信号)が用いられる。以上説明したように、制御レジスタ3121の2ビット目が、定期的に入力される信号をクロック源とした(第2の条件とした)場合には「0」であり、不定期的に入力される信号をクロック源とした(第1の条件とした)場合には「1」であり、所定ビット目の一例に相当する。こうしておくことで、開発者や設定者は、制御レジスタ3121の2ビット目を見るだけで、クロック源に定期に入力される信号が用いられているか否かを確認することができる。なお、制御レジスタ3121は、上記構成に限定されず、例えば、7ビット目が空きビット、6ビット目が8ビットカウンタ3122の許可や禁止を設定するビット(0:動作停止、1:動作開始(初期値))、5ビット目がCPUコアのマスカブル割込みアクノリッジサイクルで更新するかを設定するビット(0:更新する、1:更新しない(初期値))、4ビット目がCPUコアのXIORQ信号で更新するかを設定するビット(0:更新する、1:更新しない(初期値))、3ビット目がCPUコアのXMREQ信号で更新するかを設定するビット(0:更新する、1:更新しない(初期値))、2ビット目がCPUコアのXWR信号で更新するかを設定するビット(0:更新する、1:更新しない(初期値))、1?0ビット目がどのタイマの信号で更新するかを設定するビット(00:タイマ回路0からのタイムアウト信号、01:タイマ回路1からのタイムアウト信号、10:タイマ回路2からのタイムアウト信号、11:未選択(初期値))、のように構成してもよく、5?0ビットに全て1が書き込まれた場合に更新源としてシステムクロック信号(SCLK)が設定されるようにしてもよく、カウンタ回路1の制御レジスタ3121の1?0ビット目が00の場合にはタイマ回路0からのタイムアウト信号に代えてカウンタ回路0の8ビットカウンタ3122のタイムアウト信号を更新源としてもよく、カウンタ回路3の制御レジスタ3121の1?0ビット目が00の場合にはタイマ回路2からのタイムアウト信号に代えてカウンタ回路0の8ビットカウンタ3122のタイムアウト信号を更新源としてもよい。また、カウンタ回路0はSCLK、カウンタ回路1はXWR信号、カウンタ回路2はXMREQ信号、カウンタ回路3はXIORQ信号を更新源として自動的に起動されるものであってもよく、更新範囲を0?255としてもよい(カウンタ設定レジスタ3123に初期値として255を設定してもよい)。この場合、電源立ち上げ時には、プログラムによって更新源やカウント値を設定するよりも前にカウント動作を行い、カウント動作中にプログラムによって更新源の設定(変更)やカウント値の設定(変更)を行うようにしてもよい。この場合、カウント動作中に更新源やカウント値を変更することで不正者による有利な値の取得を困難にできる場合がある。なお、カウンタ回路312は、更新源としてシステムクロック信号(SCLK)を設定した場合に、他の更新源(XWR信号、XMREQ信号、XIORQ信号、タイマ回路0のタイムアウト信号、タイマ回路1のタイムアウト信号、タイマ回路2のタイムアウト信号)を設定不可能であってもよい。換言すると、カウンタ回路は、複数の更新源のうちの第一の更新源を設定した場合に、第一の更新源を除く他の更新源を設定不可能であってもよい。
【1997】
また、カウンタ回路312は、更新源としてXWR信号、XMREQ信号、XIORQ信号、タイマ回路nのタイムアウト信号のうちの少なくとも2以上の更新源を設定可能であってもよい。換言すると、カウンタ回路は、複数の更新源のうちの第一の更新源を除く第二の更新源と第三の更新源を共に設定可能であってもよい。
【1998】
また、カウンタ設定レジスタ3123は、アップカウンタ回路である8ビットカウンタ3122のカウント値(最大値)を設定する8ビットのレジスタである。本実施形態では、0?255のカウント値を設定することができ、「255」を書き込んだ場合には、カウント値として最大値の255が設定される。この場合には0?255が所定の数値範囲になる。なお、設定値に「00」を設定した場合には、8ビットカウンタの動作を停止するようにしてもよい。なお、各カウンタ回路は、ダウンカウンタ回路であってもよく、ダウンカウンタ回路である場合には、カウンタ設定レジスタ3123は、最小値を設定するレジスタになる。
【1999】
カウンタレジスタ3124は、CPUレジスタリード信号の入力タイミングに合わせて8ビットカウンタ3122の値を読み出すためのレジスタである。
【2000】
以上説明した、各レジスタの設定値は、内蔵ROM306のプログラムデータエリアに記憶されている。プログラム管理エリアに記憶されている各設定値は、図159に示す主制御部メイン処理における初期設定2(ステップS3005)において、プログラムデータエリアから呼び出され、各レジスタに設定されるか、あるいは主制御部メイン処理や図162に示す主制御部割込処理において呼び出され、各レジスタに設定される。カウンタ設定レジスタ3123にカウント値が書き込まれると、8ビットカウンタ3122の値が「00H」にクリアされ、その後、制御レジスタ3121の4ビット目に「1」が書き込まれると、選択されたクロック源で8ビットカウンタ3122のアップカウントが開始される。
【2001】
以上説明したカウンタ回路312は、数値更新手段の一例に相当する。なお、8ビットカウンタ3116の値をCPUレジスタリード信号の入力に応じて読み出す構成を示したが、これに限定されるものではなく、ハードラッチ乱数値レジスタとハードラッチ選択レジスタを備えてもよく、8ビットカウンタ3116の値をハードラッチ乱数値レジスタに常に入力するようにしてもよく、パラレル入力ポートを介してPI0?PI5信号がそれぞれ入力されるハードラッチ選択レジスタからのラッチ信号がハードラッチ乱数値レジスタに入力された場合に値をラッチ(保持)するようにしてもよく、値のラッチによるセット信号と値の取得によるクリア信号が入力されるフラグレジスタを備えてもよい。また、この場合、ハードラッチ選択レジスタは、外部端子入力による8ビットカウンタ3116の値の取込み条件の設定(0:値を読み込まないと次の値をラッチしない(初期値)、1:値を読み込まなくても次の値をラッチ)、どの外部端子入力で8ビットカウンタ3116の値を取り込むかの設定(PI0?PI5信号)を設定可能に構成してもよい。なお、他の構成において、乱数生成回路318や乱数回路5316で乱数を生成することに代えてカウンタ回路312で乱数を生成するようにしてもよい。
【2002】
続いて、図78(a)に示すメモリマップ上における内蔵RAMエリアや内蔵レジスタエリアの読み込みや書き込みタイミングについて説明する。
【2003】
図206は、図78(a)に示すメモリマップ上における内蔵RAMエリアや内蔵レジスタエリアの読み込みや書き込みタイミングを説明するためのタイミングチャートである。
【2004】
図206では、図の左から右に向かって時間(T)が経過していく(以降のタイミングチャートにおいても同じ)。この図206に示すタイミングチャートには、上から順にシステムクロック出力信号(CLKO)、16本の信号線によって入出力されるアドレス入出力信号(A0?A15)、メモリリクエスト信号(XMREQ)、読み込み時のリード信号(XRD)、読み込み時の内蔵RAMエリアや内蔵レジスタエリアからのデータ出力信号(D0?D7)、書き込み時のライト信号(XWR)、および書き込み時の内蔵RAMエリアや内蔵レジスタエリアへのデータ出力信号(D0?D7)が示されている。なお、破線はハイインピーダンス状態を表す。
【2005】
アドレス入出力信号(A0?A15)は、図78(a)のメモリマップにおいて読み書きするアドレスを指定している。メモリリクエスト信号(XMREQ)がLレベルのときに読み書きが許可され、リード信号(XRD)がLレベルのときに読み込みが許可され、ライト信号(XWR)もLレベルのときに書き込みが許可される。したがって、メモリリクエスト信号(XMREQ)がLレベルかつリード信号(XRD)もLレベルのときに、アドレス入出力信号(A0?A15)で指定されたアドレスを読み込むことができ、メモリリクエスト信号(XMREQ)がLレベルかつライト信号(XWR)もLレベルのときに、アドレス入出力信号(A0?A15)で指定されたアドレスに書き込むことができるが、各信号では時間的ズレが生じている。しかも、クロック出力信号(CLKO)は定期的な信号であるのに対して、制御レジスタ3121に入力される、メモリリクエスト信号(XMREQ)やライト信号(XWR)は、プログラムに従って任意のタイミングで出力される不定期な信号であり、定期的なクロック出力信号(CLKO)に対して同期していないことがわかる。言い換えれば、メモリリクエスト信号(XMREQ)やライト信号(XWR)は、CPU304が内蔵メモリや内蔵レジスタとのやり取りのための命令(所定の命令)に基づいて不定期に出力する信号である。より詳細に説明すると、CPU304は、内蔵ROM306のデータの読み出し(例えば、LD A,(ROM_ADD01)命令)でメモリリクエスト信号(XMREQ)を出力し、内蔵RAM308とのデータの読み出しや書き込み(例えば、LD (RAM_ADD01),A命令)でメモリリクエスト信号(XMREQ)やライト信号(XWR)を出力する。上述のごとく、本実施形態では、これら不定期に発生するメモリリクエスト信号(XMREQ)やライト信号(XWR)をカウンタ回路312の更新ソースとして利用することができる。不定期に発生するメモリリクエスト信号(XMREQ)やライト信号(XWR)は所定の信号の一例に相当する。
【2006】
続いて、図78(b)に示すI/Oマップ上における内蔵レジスタエリアの読み込みや書き込みタイミングについて説明する。
【2007】
図207は、図78(b)に示すI/Oマップ上における内蔵レジスタエリアの読み込みや書き込みタイミングを説明するためのタイミングチャートである。
【2008】
この図207に示すタイミングチャートでも、上から順に各信号が示されており、図206に示すメモリリクエスト信号(XMREQ)に代えてIOリクエスト信号(XIORQ)が示されている。なおここでも、破線はハイインピーダンス状態を表す。
【2009】
また、アドレス入出力信号(A0?A15)は、図78(b)のメモリマップにおいて読み書きするアドレスを指定している。IOリクエスト信号(XIORQ)がLレベルのときに読み書きが許可され、リード信号(XRD)がLレベルのときに読み込みが許可され、ライト信号(XWR)もLレベルのときに書き込みが許可される。したがって、IOリクエスト信号(XIORQ)がLレベルかつリード信号(XRD)もLレベルのときに、アドレス入出力信号(A0?A15)で指定されたアドレスを読み込むことができ、IOリクエスト信号(XIORQ)がLレベルかつライト信号(XWR)もLレベルのときに、アドレス入出力信号(A0?A15)で指定されたアドレスに書き込むことができるが、ここでも各信号では時間的ズレが生じている。しかも、制御レジスタ3121に入力される、IOリクエスト信号(XIORQ)やライト信号(XWR)も、プログラムに従って任意のタイミングで出力される不定期な信号であり、定期的なクロック出力信号(CLKO)に対して同期していないことがわかる。言い換えれば、IOリクエスト信号(XIORQ)も、CPU304が内蔵メモリや内蔵レジスタとのやり取りのための命令(所定の命令)に基づいて不定期に出力する信号である。より詳細に説明すると、CPU304は、IN命令やOUT命令の際にIOリクエスト信号(XIORQ)を出力する。上述のごとく、本実施形態では、これら不定期に発生するIOリクエスト信号(XIORQ)も
【2010】
カウンタ回路312の更新ソースとして利用することができる。不定期に発生するIOリクエスト信号(XIORQ)も所定の信号の一例に相当する。
【2011】
図208は、図146に示すマイクロプロセッサ3000内部におけるカウンタ回路312への信号の流れを内部のみ示す図である。
【2012】
この図208には、CPU304、マイクロプロセッサ3000に内蔵されたROM306(以下、単に内蔵ROM306と称する)、同じくマイクロプロセッサ3000に内蔵されたRAM308(以下、単に内蔵RAM308と称する)、タイマ回路311、カウンタ回路312、割込み制御回路3100、およびクロック回路320が内部バス3300を介して互いに接続されている様子が示されている。
【2013】
また、メモリマップド方式を採用した場合には、メモリリクエスト信号(XMREQ信号)が、CPU304から内蔵ROM306や内蔵RAM308に送られ、カウンタ回路312にも取得されることが示され、I/Oマップド方式を採用した場合には、IOリクエスト信号(XIORQ信号)が、CPU304から内蔵RAM308に送られ、カウンタ回路312にも取得されることが示されている。ライト信号(XWR信号)は、CPU304から内蔵RAM308に送られ、カウンタ回路312にも取得されることが示されている。なお、本実施形態では、カウンタ回路312の8ビットカウンタ3122のクロック源としてリード信号(XRD)は選択できないが、カウンタ回路312はリード信号(XRD)も取得可能であり、そのリード信号(XRD)をクロック源として利用してもよい。さらに、割込み制御回路3100からCPU304に送られる割込み要求信号(XINT信号)を受けてCPU304から割込み制御回路3100に割込み要求応答信号(XINTACK信号)が出力される。割込み要求信号は、定期的に出力されるものもあれば不定期に出力されるもの(例えばハードウェア割込み)もあり、割込み要求応答信号(XINTACK信号)は、結局のところ不定期に出力される信号になり、所定の信号の一例に相当する。図208では、この割込み要求応答信号(XINTACK信号)がカウンタ回路312に取得されることも示されている。また、タイマ回路311に含まれるタイマ回路0?2それぞれからのタイムアウト信号は、カウンタ回路312に送られ、クロック回路320からはシステムクロック信号(SCLK)がカウンタ回路312に送られる。不定期に発生するメモリリクエスト信号(XMREQ)やライト信号(XWR)やIOリクエスト信号(XIORQ)や割込み要求応答信号(XINTACK信号)を出力するCPU304は、信号出力手段としての一機能を担っている。また、内蔵ROM306や内蔵RAM308は、記憶手段の一例に相当する。
【2014】
図209は、カウンタ回路0を不定期な更新とする例を示した図である。
【2015】
図209の上方には機能ブロック図が示され、下方にはソースコードが示されている(以下、図213まで同じ)。このソースコードでは、カウンタ回路0はPCC0で表され、カウンタ回路1はPCC1で表されている(以下、同じ)。カウンタ回路0のカウンタ設定レジスタ3123にも、カウンタ回路1のカウンタ設定レジスタ3123にも、カウント値として最大値の「255」が設定されている。また、カウンタ回路0の制御レジスタ3121には「00010101」が設定されており、4ビット目に動作開始を表す「1」が設定され、2?0ビット目には、8ビットカウンタ3122のクロック源をメモリリクエスト信号(XMREQ信号)とする「101」が設定されている。一方、カウンタ回路1の制御レジスタ3121には「00010001」が設定されており、4ビット目に動作開始を表す「1」が設定され、2?0ビット目には、8ビットカウンタ3122のクロック源をタイマ回路0からのタイムアウト信号とする「001」が設定されている。さらに、いずれの制御レジスタ3121にも、3ビット目にはカスケード接続未設定を表す「0」が設定されており、この例では、カウンタ回路0とカウンタ回路1はカスケード接続されていない。なお、図209に示すソースコードでは、タイマ回路0はPTC0で表されており、タイマ回路0のプリスケーラレジスタ3111で、システムクロックを1/240に分周し、タイマ回路0の8ビットカウンタ3116のクロック源にすることが設定されている。
【2016】
図209に示す例では、カウンタ回路0の8ビットカウンタ3122が不定期なメモリリクエスト信号(XMREQ信号)で更新される。一方、カウンタ回路1の8ビットカウンタ3122は定期的なタイマ回路0からのタイムアウト信号で更新される。
【2017】
各カウンタ回路312のカウンタレジスタ3124は、CPUレジスタリード信号の入力タイミングに合わせて8ビットカウンタ3122の値を読み出し、CPU304は、カウンタレジスタ3124が読み出した値を内部バスを介して取得する。この例では、カウント回路0のカウント値を、特図変動時間決定用乱数値として用いる。
【2018】
図210は、カウンタ回路0をカウンタ回路1の更新ソースとする変形例1を示した図である。以下、図209に示す例との相違点を中心に説明し、図209に示す例と同じ点は説明を省略することがある。
【2019】
図210に示すカウンタ回路0の制御レジスタ3121には「00011101」が設定されており、3ビット目にはカスケード接続の設定を表す「1」が設定されている。一方、カウンタ回路1の制御レジスタ3121には「00010001」が設定されており、3ビット目にはカスケード接続未設定を表す「0」が設定されている。上述のごとく、カウンタ回路0とカウンタ回路1の組では、いずれか一方の制御レジスタ3121の3ビット目に「1」が設定されていると、カスケード接続が設定される。したがって、図210に示すカウンタ回路0とカウンタ回路1はカスケード接続されている。制御レジスタ3121の3ビット目に「1」が設定されたカウンタ回路0は、0から255までカウントアップするカウンタ回路であり、カウント値が255に達し、さらにカウント値を1更新する場合には、カウンタ回路1に桁溢れ信号(特定信号)を送り、カウント値を0に戻す。カウンタ回路1は、定期的なタイマ回路0からのタイムアウト信号で更新されるが、カウンタ回路0からの桁溢れ信号によっても更新され、カウンタ回路1の更新ソースが複数となり、カウンタ回路1のランダム性が増す。しかも、カウンタ回路0は、不定期なメモリリクエスト信号(XMREQ信号)で更新されるカウンタ回路であるため、桁溢れ信号も不定期に送られてくる信号になる。なお、カウンタ回路1の更新ソースを不定期な更新ソース(例えば、XWR信号等)にすれば、ランダム性をより高めることができる。この例では、カウント回路1のカウント値を、特図変動時間決定用乱数値として用いる。
【2020】
なお、この例では、「1」が設定された方のカウンタ回路から桁溢れ信号が出力されるが、これに限らず、桁溢れ信号を出力するカウンタ回路を予め定めておいてもよい。
【2021】
図211は、カウンタ回路0とカウンタ回路1で2バイトカウンタとして機能させる変形例2を示した図である。以下、図210に示す例との相違点を中心に説明し、図210に示す例と同じ点は説明を省略することがある。
【2022】
図211に示すカウンタ回路1の制御レジスタ3121には「00010010」が設定されており、2?0ビット目には、8ビットカウンタ3122のクロック源をタイマ回路1からのタイムアウト信号とする「010」が設定されている。したがって、図211に示すカウンタ回路1の8ビットカウンタ3116は、タイマ回路1からのタイムアウト信号が入力されると更新される。さらに、図211に示すソースコードでは、タイマ回路1はPTC1で表されており、タイマ回路1のプリスケーラレジスタ3111には、タイマ回路1の8ビットカウンタ3116を動作させるためのカウントクロックを停止させる「0」が設定されている。このため、タイマ回路1の8ビットカウンタ3116からはタイムアウト信号は出力されず、カウンタ回路1は、クロック源としてタイマ回路1からのタイムアウト信号が設定されてはいるものの、そのタイムアウト信号をクロック源にしては更新されない。しかしながら、図210に示す例と同じく、カウンタ回路1には、カウンタ回路0から桁溢れ信号が送られ、カウンタ回路1は、この桁溢れ信号によって更新される。すなわち、カウンタ回路1は、カウンタ回路0からの桁溢れ信号のみをクロック源(更新源)にする。このように、タイマ回路1のカウントクロックを停止することで、実質的にカウンタ回路1の更新ソースをカウンタ回路0の桁溢れのみとすることができ、カウンタ回路0とカウンタ回路1のカウンタ値を用いて2バイトカウンタとして利用することができる。この例では、カウンタ回路0とカウンタ回路1の組によるカウント値を、特図変動時間決定用乱数値として用いる。
【2023】
図212は、カウンタ回路0の更新ソースをカウンタ回路1の更新ソースとする変形例3を示した図である。以下、図210に示す例との相違点を中心に説明し、図210に示す例と同じ点は説明を省略することがある。
【2024】
図212に示すカウンタ回路0のカウンタ設定レジスタ3123には、カウント値として「0」が設定されており、カウンタ回路0の最大値は0になる。すなわち、カウンタ回路0では所定の数値範囲が1になる。この結果、メモリリクエスト信号(XMREQ信号)がカウンタ回路0に入力されるたびに桁溢れ信号がカウンタ回路1に出力され、カウンタ回路0の更新ソースをカウンタ回路1の更新ソースとしても扱うことができ、カウンタ回路1のランダム性が増す。また、カウンタ回路1の更新ソースを不定期な信号(例えば、XWR信号等)にすることで、ランダム性がさらに増す。この例でも、カウント回路1のカウント値を、特図変動時間決定用乱数値として用いる。
【2025】
図213は、カウンタ回路0とカウンタ回路1を相互にカスケード接続する変形例4を示す図である。以下、図210に示す例との相違点を中心に説明し、図210に示す例と同じ点は説明を省略することがある。
【2026】
図213に示すカウンタ回路0の制御レジスタ3121にも「00011101」が設定されており、3ビット目にはカスケード接続の設定を表す「1」が設定されている。また、図213に示すカウンタ回路1の制御レジスタ3121には「00011110」が設定されており、3ビット目にはカスケード接続の設定を表す「1」が設定され、2?0ビット目には、不定期に入力されるライト信号(XWR信号)をクロック源とする「100」が設定されている。したがって、この例では、一組の組を構成する両カウンタ回路でカスケード接続の設定が行われており、互いに桁溢れ信号の送受信を行う。すなわち、カウンタ回路0では、カウント値が255に達し、さらにカウント値を1更新する場合には、カウンタ回路1にカウンタ回路0の桁溢れ信号を送り、カウンタ回路1でも、カウント値が255に達し、さらにカウント値を1更新する場合には、カウンタ回路0にカウンタ回路1の桁溢れ信号を送る。この結果、カウンタ回路0とカウンタ回路1がそれぞれ更新ソースが複数になり、両カウンタ回路のランダム性が増す。この例では、カウンタ回路0のカウント値を普図変動時間決定用乱数値として用い、カウント回路1のカウント値を特図変動時間決定用乱数値として用いる。
【2027】
以上説明したカウンタ回路312では、カウント値の更新にランダム性を持たせることができる。カウンタ回路312のカウント値は、普図変動時間決定用乱数値や特図変動時間決定用乱数値として用いられ、抽選処理のランダム性を高めることができる。
【2028】
続いて、他の実施形態について説明する。以下、既に述べた実施形態との相違点を中心に説明し、既に述べた実施形態と同じ点は説明を省略することがある。
【2029】
今まで説明した実施形態では、マイクロプロセッサ3000(基本回路)の内部における内蔵RAMエリアや内蔵レジスタエリアを対象にしていたが、本実施形態では、マイクロプロセッサ3000(基本回路)の外部における外部メモリや外部レジスタ、および外部の周辺機器や周辺回路を対象にする。
【2030】
図214は、マイクロプロセッサ3000(基本回路)の外部における外部メモリの読み込みや書き込みチップセレクトタイミングを説明するためのタイミングチャートである。
【2031】
この図214に示すタイミングチャートには、上から順にシステムクロック出力信号(CLKO)、8本の信号線によって入出力されるアドレス入出力信号(A0?A15)、メモリリクエスト信号(XMREQ)、読み込み時のリード信号(XRD)、読み込み時のチップセレクト信号(XCS0?XCS13)、読み込み時の外部メモリからのデータ入力信号(D0?D7)、書き込み時のライト信号(XWR)、書き込み時のチップセレクト信号(XCS0?XCS13)、および書き込み時の外部メモリへのデータ出力信号(D0?D7)が示されている。なお、破線はハイインピーダンス状態を表す。
【2032】
読み込み時のチップセレクト信号(XCS0?XCS13)によって読み込むべきチップセットが選択され、選択されたチップセットにおける読み込むべきアドレスがアドレス入出力信号(A0?A15)によって指定される。また、書き込み時のチップセレクト信号(XCS0?XCS13)によって書き込むべきチップセットが選択され、選択されたチップセットにおける書き込むべきアドレスがアドレス入出力信号(A0?A15)によって指定される。また、メモリリクエスト信号(XMREQ)がLレベルのときに読み書きが許可され、読み込み時のリード信号(XRD)がLレベルのときに読み込みが許可され、書き込み時のライト信号(XWR)もLレベルのときに書き込みが許可される。したがって、メモリリクエスト信号(XMREQ)がLレベルかつリード信号(XRD)もLレベルのときに、選択されたチップセットから指定されたアドレスのデータを読み込むことができ、メモリリクエスト信号(XMREQ)がLレベルかつライト信号(XWR)もLレベルのときに、選択されたチップセットの指定されたアドレスにデータを書き込むことができるが、各信号では時間的ズレが生じている。しかも、クロック出力信号(CLKO)は定期的な信号であるのに対して、メモリリクエスト信号(XMREQ)やライト信号(XWR)は、プログラムに従って任意のタイミングで出力される不定期な信号、すなわち、外部メモリとのやり取りのために不定期に発生する信号であり、定期的なクロック出力信号(CLKO)に対して同期していないことがわかる。本実施形態でも、これら不定期に発生するメモリリクエスト信号(XMREQ)やライト信号(XWR)が制御レジスタ3121に入力され、これら不定期の信号をカウンタ回路312の更新ソースとして利用することができる。
【2033】
続いて、マイクロプロセッサ3000(基本回路)の外部の周辺機器や周辺回路(外部I/O)に対する入出力について説明する。
【2034】
図215は、外部I/Oの読み込みや書き込みチップセレクトタイミングを説明するためのタイミングチャートである。
【2035】
この図215に示すタイミングチャートでも、上から順に各信号が示されており、図206に示すメモリリクエスト信号(XMREQ)に代えてIOリクエスト信号(XIORQ)が示されている。なおここでも、破線はハイインピーダンス状態を表す。
【2036】
また、読み込み時のチップセレクト信号(XCS0?XCS13)によって読み込むべきチップセットが選択され、選択されたチップセットにおける読み込むべきアドレスがアドレス入出力信号(A0?A15)によって指定される。また、書き込み時のチップセレクト信号(XCS0?XCS13)によって書き込むべきチップセットが選択され、選択されたチップセットにおける書き込むべきアドレスがアドレス入出力信号(A0?A15)によって指定される。また、IOリクエスト信号(XIORQ)がLレベルのときに読み書きが許可され、読み込み時のリード信号(XRD)がLレベルのときに読み込みが許可され、書き込み時のライト信号(XWR)もLレベルのときに書き込みが許可される。したがって、IOリクエスト信号(XIORQ)がLレベルかつリード信号(XRD)もLレベルのときに、選択されたチップセットから指定されたアドレスのデータを読み込むことができ、IOリクエスト信号(XIORQ)がLレベルかつライト信号(XWR)もLレベルのときに、選択されたチップセットの指定されたアドレスにデータを書き込むことができるが、ここでも各信号では時間的ズレが生じている。しかも、クロック出力信号(CLKO)は定期的な信号であるのに対して、IOリクエスト信号(XIORQ)やライト信号(XWR)は、プログラムに従って任意のタイミングで出力される不定期な信号、すなわち、外部の周辺機器や周辺回路(外部I/O)とのやり取りのために不定期に発生する信号であり、定期的なクロック出力信号(CLKO)に対して同期していないことがわかる。第2実施形態でも、これら不定期に発生するIOリクエスト信号(XIORQ)やライト信号(XWR)が制御レジスタ3121に入力され、これら不定期の信号をカウンタ回路312の更新ソースとして利用することができる
【2037】
図216は、図146に示すマイクロプロセッサ3000内部におけるカウンタ回路312への信号の流れを内部のみ示す図である。
【2038】
この図216には、CPU304、タイマ回路311、カウンタ回路312、割込み制御回路3100、クロック回路320、外部バス制御回路3110、およびアドレスデコーダ回路3103が内部バス3300を介して互いに接続されている様子が示されている。また、図216には、その他回路4000も示されている。その他回路4000には、マイクロプロセッサ3000の外部の周辺機器や周辺回路(例えば、図75に示す主制御部300の各駆動回路324、326、330、334等)が相当する。
【2039】
また、メモリリクエスト信号(XMREQ信号)は、CPU304からその他回路4000の内蔵ROMや内蔵RAMに送られ、カウンタ回路312にも取得されることが示され、IOリクエスト信号(XIORQ信号)は、CPU304からその他回路4000の内蔵レジスタに送られ、カウンタ回路312にも取得されることが示されている。また、チップセレクト信号(XCS0?XCS13)は、CPU304からその他回路4000の内蔵ROMや内蔵RAMや内蔵レジスタに送られ、カウンタ回路312にも取得されることが示されている。ライト信号(XWR信号)は、CPU304からその他回路4000の内蔵RAMや内蔵レジスタに送られ、カウンタ回路312にも取得されることが示されている。なお、本実施形態でも、カウンタ回路312の8ビットカウンタ3122のクロック源としては、先の実施形態と同じ信号が用いられ、リード信号(XRD)は選択できないが、カウンタ回路312はリード信号(XRD)も取得可能であり、そのリード信号(XRD)をクロック源として利用してもよい。さらに、不定期に出力される割込み要求応答信号(XINTACK信号)もカウンタ回路312に取得されることが示されている。また、タイマ回路311に含まれるタイマ回路0?2それぞれからのタイムアウト信号は、カウンタ回路312に送られ、クロック回路320からはシステムクロック信号(SCLK)がカウンタ回路312に送られる。
【2040】
この第2実施形態においても、カウンタ回路312の更新にランダム性を持たせることができる。カウント回路312のカウント値は、普図変動時間決定用乱数値や特図変動時間決定用乱数値として用いられ、抽選処理のランダム性を高めることができる。
【2041】
なお、以上説明した実施形態では、カウンタ回路312のカウント値を、普図変動時間決定用乱数値や特図変動時間決定用乱数値として用いているが、普図の当りや特図の大当りか否かを抽選する当否判定や、特図の図柄を決定する抽選に用いてもよい。すなわち、制御状態の変更に関係する抽選や、賞球の払出に関係する抽選に用いてもよい。あるいは、その他の演出に関する抽選処理(例えば、先読み予告の実行可否抽選)に用いてもよい。
<主制御部タイマ割込処理>の変形例
【2042】
次に、図217を用いて、主制御部300のCPU304が実行する主制御部タイマ割込処理の変形例について説明する。なお、同図は主制御部タイマ割込処理の流れを示すフローチャートである。
【2043】
主制御部300は、所定の周期(本実施形態では約4msに1回)でタイマ割込信号を発生するカウンタタイマ312を備えており、このタイマ割込信号を契機として主制御部タイマ割込処理を所定の周期で開始する。
【2044】
ステップS4201では、タイマ割込開始処理を行う。このタイマ割込開始処理では、CPU304の各レジスタの値をスタック領域に一時的に退避する処理などを行う。
【2045】
ステップS4203では、WDT314のカウント値が初期設定値(本実施形態では32.8ms)を超えてWDT割込が発生しないように(処理の異常を検出しないように)、WDTを定期的に(本実施形態では、主制御部タイマ割込の周期である約4msに1回)リスタートを行う。
【2046】
ステップS4205では、入力ポート状態更新処理を行う。この入力ポート状態更新処理では、I/O310の入力ポートを介して、上述の前面枠扉開放センサや内枠開放センサや下皿満タンセンサ、各種の球検出センサを含む各種センサ320の検出信号を入力して検出信号の有無を監視し、RAM308に各種センサ320ごとに区画して設けた信号状態記憶領域に記憶する。球検出センサの検出信号を例にして説明すれば、前回のタイマ割込処理(約4ms前)で検出した各々の球検出センサの検出信号の有無の情報を、RAM308に各々の球検出センサごとに区画して設けた前回検出信号記憶領域から読み出し、この情報をRAM308に各々の球検出センサごとに区画して設けた前々回検出信号記憶領域に記憶し、前回のタイマ割込処理(約4ms前)で検出した各々の球検出センサの検出信号の有無の情報を、RAM308に各々の球検出センサごとに区画して設けた今回検出信号記憶領域から読み出し、この情報を上述の前回検出信号記憶領域に記憶する。また、今回検出した各々の球検出センサの検出信号を、上述の今回検出信号記憶領域に記憶する。
【2047】
また、ステップS4205では、上述の前々回検出信号記憶領域、前回検出信号記憶領域、および今回検出信号記領域の各記憶領域に記憶した各々の球検出センサの検出信号の有無の情報を比較し、各々の球検出センサにおける過去3回分の検出信号の有無の情報が入賞判定パターン情報と一致するか否かを判定する。一個の遊技球が一つの球検出センサを通過する間に、約4msという非常に短い間隔で起動を繰り返すこの主制御部タイマ割込処理は何回か起動する。このため、主制御部タイマ割込処理が起動する度に、上述のステップS4205では、同じ遊技球が同じ球検出センサを通過したことを表す検出信号を確認することになる。この結果、上述の前々回検出信号記憶領域、前回検出信号記憶領域、および今回検出信号記領域それぞれに、同じ遊技球が同じ球検出センサを通過したことを表す検出信号が記憶される。すなわち、遊技球が球検出センサを通過し始めたときには、前々回検出信号無し、前回検出信号有り、今回検出信号有りになる。本実施形態では、球検出センサの誤検出やノイズを考慮して、検出信号無しの後に検出信号が連続して2回記憶されている場合には、入賞があったと判定する。図75に示す主制御部300のROM306には、入賞判定パターン情報(本実施形態では、前々回検出信号無し、前回検出信号有り、今回検出信号有りであることを示す情報)が記憶されている。このステップS4205では、各々の球検出センサにおいて過去3回分の検出信号の有無の情報が、予め定めた入賞判定パターン情報(本実施形態では、前々回検出信号無し、前回検出信号有り、今回検出信号有りであることを示す情報)と一致した場合に、一般入賞口226、可変入賞口234、第1特図始動口230、および第2特図始動口232への入球、または普図始動口228の通過があったと判定する。すなわち、これらの入賞口226、234やこれらの始動口230、232、228への入賞があったと判定する。例えば、一般入賞口226への入球を検出する一般入賞口センサにおいて過去3回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致した場合には、一般入賞口226へ入賞があったと判定し、以降の一般入賞口226への入賞に伴う処理を行うが、過去3回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致しなかった場合には、以降の一般入賞口226への入賞に伴う処理を行わずに後続の処理に分岐する。なお、主制御部300のROM306には、入賞判定クリアパターン情報(本実施形態では、前々回検出信号有り、前回検出信号無し、今回検出信号無しであることを示す情報)が記憶されている。入賞が一度あったと判定した後は、各々の球検出センサにおいて過去3回分の検出信号の有無の情報が、その入賞判定クリアパターン情報に一致するまで入賞があったとは判定せず、入賞判定クリアパターン情報に一致すれば、次からは上記入賞判定パターン情報に一致するか否かの判定を行う。なお、本実施形態では、入賞口226、234や始動口230、232、228へ入賞があったか否かの判定として、前々回、前回および今回の検出信号が予め定められた入賞判定パターン情報と一致した否かを判定していたが、このような方法に限らず、例えば、前回および今回の検出信号が予め定められた入賞判定パターン情報(例えば、前回検出信号なし、今回検出信号あり(いわゆるアップエッジ))と一致したか否かを判定するように構成してもよい。すなわち、球検出センサからの検出信号の有無を監視し、この監視結果の履歴が予め定められたパターンと一致したか否かを判定するように構成すればよい。
【2048】
ステップS4207およびステップS4209では、基本乱数初期値更新処理および基本乱数更新処理を行う。これらの基本乱数初期値更新処理および基本乱数更新処理では、上記ステップS115で行った初期値生成用乱数カウンタの値の更新を行い、次に主制御部300で使用する、普図当選乱数値を生成するためのカウンタと、特図1乱数値および特図2乱数値それぞれを加工するためのカウンタ(以下、特図当選乱数加工用カウンタ)を更新する。例えば、普図当選乱数値として取り得る数値範囲が0?100とすると、RAM308に設けた普図当選乱数値を生成するための乱数カウンタ記憶領域から値を取得し、取得した値に1を加算してから元の乱数カウンタ記憶領域に記憶する。このとき、取得した値に1を加算した結果が101であれば0を元の乱数カウンタ記憶領域に記憶する。また、取得した値に1を加算した結果、乱数カウンタが一周していると判定した場合にはそれぞれの乱数カウンタに対応する初期値生成用乱数カウンタの値を取得し、乱数カウンタの記憶領域にセットする。例えば、0?100の数値範囲で変動する普図当選乱数値生成用の乱数カウンタから値を取得し、取得した値に1を加算した結果が、RAM308に設けた所定の初期値記憶領域に記憶している前回設定した初期値と等しい値(例えば7)である場合に、普図当選乱数値生成用の乱数カウンタに対応する初期値生成用乱数カウンタから値を初期値として取得し、普図当選乱数値生成用の乱数カウンタにセットすると共に、普図当選乱数値生成用の乱数カウンタが次に1周したことを判定するために、今回設定した初期値を上述の初期値記憶領域に記憶しておく。また、普図当選乱数値生成用の乱数カウンタが次に1周したことを判定するための上述の初期値記憶領域とは別に、特図乱数生成用の乱数カウンタが1周したことを判定するための初期値記憶領域をRAM308に設けている。なお、本実施形態では特図1の乱数値および特図2の乱数値を加工するためのカウンタを同一のカウンタとして設けたが、それぞれ異なるカウンタとしてもよい。
【2049】
ステップS4211では、演出乱数更新処理を行う。この演出乱数更新処理では、主制御部300で使用する演出用乱数値を生成するための乱数カウンタを更新する。
【2050】
ステップS4213では、タイマ更新処理を行う。このタイマ更新処理では、普通図柄表示装置210に図柄を変動・停止表示する時間を計時するための普図表示図柄更新タイマ、第1特別図柄表示装置212に図柄を変動・停止表示する時間を計時するための特図1表示図柄更新タイマ、第2特図表示装置214に図柄を変動・停止表示する時間を計時するための特図2表示図柄更新タイマ、所定の入賞演出時間、所定の開放時間、所定の閉鎖時間、所定の終了演出期間などを計時するためのタイマなどを含む各種タイマを更新する。
【2051】
ステップS4215では、入賞口カウンタ更新処理を行う。この入賞口カウンタ更新処理では、入賞口226、234や始動口230、232、228に入賞があった場合に、RAM308に各入賞口ごと、あるいは各始動口ごとに設けた賞球数記憶領域の値を読み出し、1を加算して、元の賞球数記憶領域に設定する。
【2052】
また、ステップS4217では、入賞受付処理を行う。この入賞受付処理では、第1特図始動口230、第2特図始動口232、普図始動口228および可変入賞口234への入賞があったか否かを判定する。ここでは、ステップS4205における入賞判定パターン情報と一致するか否かの判定結果を用いて判定する。第1特図始動口230へ入賞があった場合、且つRAM308に設けた対応する保留数記憶領域が満タンでない場合には、乱数生成回路318の特図1に対応するチャンネルの乱数をラッチするためのラッチ信号を出力する処理(具体的には、ソフトラッチレジスタ3186の特図1のチャンネルに対応する領域に所定の値を書き込む処理)を実行するとともに、このラッチ信号によってラッチされた乱数を取得するためのリード信号を出力する処理(具体的には、乱数レジスタ3188のうちの特図1のチャンネルに対応する乱数レジスタに対してリード信号を出力する処理)を実行してラッチされている乱数を取得して対応する乱数値記憶領域に格納し、さらに、特図当選乱数加工用カウンタから値を取得して対応する乱数値記憶領域に格納する。第2特図始動口232へ入賞があった場合も第1特図始動口へ入賞があった場合と同様の処理を実行する。なお、本実施形態では、乱数生成回路318から乱数を取得する方法として特図1および2に対応するチャンネルの乱数をラッチするためのラッチ信号を出力する処理を行った後にラッチした乱数を取得するリード信号を出力する方法を採用しているが、特図1および2に対応するチャンネルの乱数を直読みする処理(具体的には、乱数レジスタ3188の値を直接リードする処理)を実行して取得するようにしてもよい。続いて普図始動口228へ入賞があった場合、且つRAM308に設けた対応する保留数記憶領域が満タンでない場合、普図当選乱数値生成用の乱数カウンタから値を普図当選乱数値として取得して対応する乱数値記憶領域に格納する。可変入賞口234へ入賞があった場合には、可変入賞口用の入賞記憶領域に、可変入賞口234に球が入球したことを示す情報を格納する。なお、本実施形態では、特図1および2のラッチされた乱数を取得するためのリード信号を出力する処理(乱数レジスタ3188の値を直接リードする処理とは異なる)を主制御部タイマ割込み処理において実行するように構成しているが、この処理に関しては上述した主制御部メイン処理において実行するように構成してもよく、この場合は、後述する特図関連抽選処理を合わせて主制御部メイン処理において実行するように構成すればよいく、特図1および2に対応するチャンネルの乱数値を直読みする処理を実行する場合においては、特図関連抽選処理のみを主制御部メイン処理おいて実行するように構成すればよい。
【2053】
ステップS4219では、払出要求数送信処理を行う。なお、払出制御部600に出力する出力予定情報および払出要求情報は、例えば1バイトで構成しており、ビット7にストローブ情報(オンの場合、データをセットしていることを示す)、ビット6に電源投入情報(オンの場合、電源投入後一回目のコマンド送信であることを示す)、ビット4?5に暗号化のための今回加工種