JP2008080004A - 遊技機 - Google Patents

遊技機 Download PDF

Info

Publication number
JP2008080004A
JP2008080004A JP2006265857A JP2006265857A JP2008080004A JP 2008080004 A JP2008080004 A JP 2008080004A JP 2006265857 A JP2006265857 A JP 2006265857A JP 2006265857 A JP2006265857 A JP 2006265857A JP 2008080004 A JP2008080004 A JP 2008080004A
Authority
JP
Japan
Prior art keywords
counter
value
program
address
main board
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006265857A
Other languages
English (en)
Inventor
Kazuyasu Takeda
和靖 武田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Okumura Yu Ki Co Ltd
Original Assignee
Okumura Yu Ki Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Okumura Yu Ki Co Ltd filed Critical Okumura Yu Ki Co Ltd
Priority to JP2006265857A priority Critical patent/JP2008080004A/ja
Publication of JP2008080004A publication Critical patent/JP2008080004A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】プログラムのメンテナンス性および処理速度を維持しつつ、不正改造抑制および不正改造発見容易性向上を実現することができる遊技機を提供する。
【解決手段】ROM23bの0008H番地から000FH番地には、変動停止コマンド送信処理のプログラムが格納されている。また、ROM23bの0020H番地から0027H番地には、賞球数コマンド送信処理のプログラムが格納されている。これらのプログラムは、1回の割込み処理で複数回発生するプログラムであり、RST命令を用いて呼び出される。
【選択図】図19

Description

本発明は、遊技機に関し、特に、命令を高速に実行する遊技機に関する。
一般に、パチンコ機の主制御基盤は、メンテナンス性、動作確認容易性等を考慮して、Zylog社のZ80により制御されている。また、パチンコ機に代表される遊技機に対しては、各種不正改造を防止するための対策が講じられている(例えば、特許文献1参照。)。このように、今後、益々悪質化する不正改造に対して、不正改造の抑制および不正改造の発見容易性の向上を行っていく必要がある。
特開2002−177478号公報
しかしながら、不正改造抑制、不正改造発見容易性の性能向上を単に行うのみでは、主制御基盤の制御プログラムが肥大化してしまい、制御プログラムのメンテナンス性および処理速度が低下してしまうという問題がある。そればかりでなく、逆に、肥大化した制御プログラムによって、不正改造プログラムが制御プログラム内に埋もれてしまい、不正改造発見容易性が低下してしまうという問題がある。
本発明は、上述の課題を解決するためになされたものであり、プログラムのメンテナンス性および処理速度を維持しつつ、不正改造抑制および不正改造発見容易性向上を実現することができる遊技機を提供することを目的とする。
上記目的を達成するために、本発明に係る遊技機は、Z80用の命令セットを用いて作成されたプログラムにより遊技機の遊技機能を司る主制御基盤を備える遊技機であって、前記主制御基盤は、前記プログラムを記憶するメモリと、前記プログラムを実行するCPU(Central Processing Unit)とを備え、前記プログラムは、前記メモリの0000H番地に格納され、前記遊技機に対する電源投入時に作動を開始し、前記遊技機に対する初期化処理を実行するとともに、割り込みが発生した際の割り込み先アドレスに関するアドレスを割り込みレジスタに設定する電源投入時初期化モジュールと、一定時間間隔ごとに発生する割り込み時に作動し、前記電源投入時初期化モジュール実行時に前記割り込みレジスタに設定された前記アドレスにより定められる前記割り込み先アドレスをプログラム開始アドレスとし、少なくとも、大当り遊技を実行するか否かを決定するための大当りカウンタの値を更新する大当りカウンタ値更新サブモジュールと、始動口への遊技球の入賞検知結果に基づいて前記大当りカウンタの値を取得する大当りカウンタ値取得サブモジュールと、取得された前記大当りカウンタの値に基づいて、大入賞口が開制御される大当り遊技を実行するか否かを判定する大当り遊技判定サブモジュールと、前記大当り遊技判定サブモジュール実行時に大当り遊技を実行すると判定された場合に大当り遊技を実行する大当り遊技実行サブモジュールとを含むタイマ割り込み時モジュールと、先の割り込みにより作動した前記タイマ割り込み時モジュールの動作終了から、次の割り込みにより作動する前記タイマ割り込み時モジュールの動作開始までの間に繰返し作動する残余時間作動モジュールとを含み、前記タイマ割り込み時モジュールは、1回のタイマ割り込みで複数回呼び出され、RST命令の呼び先である前記メモリの2進数表現をした場合に1を含む番地に配置され、所定の処理を実行するサブルーチンと、前記サブルーチンを呼び出す命令であり、かつ前記1回のタイマ割り込みで複数回実行されるRST命令とを含み、前記残余時間作動モジュールは、予め定められたカウンタの値を更新するカウンタ値更新サブモジュールを含む。
この構成によると、1回の割り込みが発生した際に複数回呼び出される可能性のあるサブルーチンを、RST命令を用いて繰返し呼び出すようにしている。このため、主制御基盤の割り込み処理を高速に実行することが可能となる。このように、割込み処理時の処理が高速化されることにより、前記タイマ割り込み時モジュールの動作終了から、次の割り込みにより作動する前記タイマ割り込み時モジュールの動作開始までの間の時間が長くなる。このため、その間に作動するカウンタ値更新サブモジュールを繰返し実行することができ、各種カウンタを更新する処理を多くの回数繰返し行うことができる。このため、不正者は、外部からカウンタの値の推測を行うことが困難となり、不正者による不正改造を防止することができる。なお、RST命令については、本発明に係る実施の形態において詳細に説明する。
また、サブルーチンは、メモリの2進数表現をした場合に1を含む番地、すなわち0000H番地以外の番地に格納されている。Z80では、電源投入時に実行される電源投入時初期化モジュールは、0000H番地に格納される。また、0000H番地以外のRST命令の呼び先の番地は、0000H番地から8番地おきに連続する0008H番地、0010H番地、0018H番地、0020H番地、0028H番地、0030H番地、0038H番地に限定される。通常は、電源投入時初期化モジュールは、数十バイト以上あるモジュールである。このため、RST命令の呼び先である各番地には、電源投入時初期化モジュールが配置されるのが一般的である。
しかし、本願発明では、上述した0000H番地以外のRST命令の呼び先の番地に、電源投入時初期化モジュールではなく、残余時間作動モジュールの一部であるカウンタ値更新のためのサブルーチンを配置している。このように、不正者が電源初期化モジュールが配置されていると考えるであろうメモリ領域にカウンタ値更新のためのサブルーチンを配置していている。よって、不正者によるカウンタ更新のためのサブルーチンの発見を困難にし、不正改造自体をあきらめさせることが可能となる。
また、一般的なプログラム構成では、サブルーチンの呼び出しは、CALL命令を使用して行なわれる。なぜならば、CALL命令を使用することにより、プログラマは、プログラムの作成や変更を容易に行なえるという利点があるからである。ところが、サブルーチンの呼び出しにCALL命令が一般的に利用されるということは、言い換えれば、不正者は、CALL命令を中心にプログラムを解析するということである。また、CALL命令では、サブルーチンの呼び先が即値アドレスで記述されている。このため、CALL命令でサブルーチンの呼び出しを記述したプログラムは、不正者によるカウンタ値更新のためのサブルーチンの格納番地の発見を容易にし、プログラムの改竄や、再構築がされやすいという問題を含んでいる。
この問題に対して、本願発明では、CALL命令ではなく、RST命令を用いてサブルーチンの呼び出しを行なっている。RST命令は、CALL命令とは異なり、サブルーチンが格納されている番地を即値アドレスで指定するものではない。このため、サブルーチンを即値アドレスを用いたCALL命令で呼び出す場合と比較し、不正者は、容易にサブルーチンが格納されている番地を知ることができない。よって、不正者は、遊技機に対する不正改造をあきらめざるを得なくなる。
以上の次第であり、上述の遊技機では、不正遊技や、主基盤に対する不正改造を防止することができる。
なお、RST命令は1バイトで済むので、仮に不正改造が行われたとしても、プログラマは、カウンタ更新制御の不正改造の発見を容易に行うことが可能である。
また、RST命令は1バイトで済むので、CALL命令を用いた場合に比べて、プログラムのサイズが小さくなる。
また、RST命令によるプログラムの呼び先はあらかじめ固定されているため、プログラム作成者とプログラムチェック者とが異なっている場合であっても、プログラムのチェックを用意に行うことが可能となる。
このため、上述の遊技機では、プログラムのメンテナンス性および処理速度を維持しつつ、不正改造抑制および不正改造発見容易性向上を実現することができる。
なお、本発明は、このような遊技機として実現することができるだけでなく、その制御方法やプログラム、そのプログラムを格納する記憶媒体としても実現することができる。
(実施の形態1)
以下、本発明の実施の形態における遊技機について図面を参照しながら説明する。
図1は、本発明の実施の形態における遊技機の斜視図である。
本実施の形態における遊技機10は、図1(a)に示されるように、パチンコ機として構成されており、外枠11、前枠12、窓枠13、および窓枠13に覆われた遊技盤などを備えている。また、遊技機10の背面には、図1(b)に示されるように、液晶ディスプレイなどの表示制御を行なう表示サブ基盤21、各種遊技音の出力制御を行なう音サブ基盤22、入賞時における遊技機10の動作等を含む遊技機10の主要な動作を制御する主基盤(主制御装置)23、パチンコ球(遊技球)の払い出し動作を制御する払出基盤24、各基盤等に電源を供給する電源基盤25等の各種基盤が例えば透明ケースに収納された状態で取り付けられている。
具体的に、外枠11は、パチンコホールの台島に設置されており、図1に示すように、前後面が開口するように四角筒状に形成されている。前枠12は、外枠11の前端面に左側辺部の垂直な軸を中心に回動可能に装着されている。また、この前枠12の前面下部には、上面が開口する下皿14と、上面が開口する上皿15とが固定されている。
下皿14の右端周辺にはハンドル台16が固定されており、ハンドル台16には発射ハンドル19が回動自在に装着されている。この発射ハンドル19の後方には発射モータが固定されており、発射モータの回転軸には打球槌が連結されている。この発射モータは打球槌の駆動源に相当するものであり、発射ハンドル19が回動操作されたときには発射モータに駆動電源が与えられ、打球槌が駆動することに基づいて上皿15内のパチンコ球を上皿15内から弾き出す。
窓枠13は前枠12の前面に装着されている。この窓枠13は円形孔状の窓部17を有し、窓部17の内周面には透明なガラス窓17aが固定されている。この窓枠13の左上隅部および右上隅部の裏面には、遊技音を出力するスピーカ18が固定されている。また、窓枠13には複数の装飾LEDが固定されている。
上述の遊技盤は、前枠12の後面に装着されている。以下、この遊技盤について図2を用いて説明する。
図2は、遊技盤の正面図である。
この遊技盤30は、上述のように前枠12の後面に装着されており、窓枠13のガラス窓17aに前方から覆われている。
この遊技盤30は、遊技板31、レールセット32、始動口33、大入賞口34、扉34a、一般入賞口35、本物特図表示器(図柄表示装置)36、演出表示器(演出表示装置)37、および保留ランプ38を備えている。
遊技板31は、遊技盤30の有する各構成部材を固定するための板である。
レールセット32は、この遊技板31の前面に固定されて、この遊技板31上に、パチンコ球の発射通路31aと遊技領域31bとを形成する。遊技領域31bには複数の障害釘39が打ち込まれている。
上述の打球槌が弾いたパチンコ球は、発射通路31aを通して遊技領域31b内に放出される。そして、遊技領域20内に放出されたパチンコ球は障害釘39に当りながら遊技領域20内を落下する。
始動口33は、遊技領域31b内に固定され、上面が開口するポケット状に形成されている。また、この始動口33内には、センサである始動口スイッチが固定されており、始動口スイッチは、始動口33内にパチンコ球が入賞したことを検出する。さらに、この始動口33には、一対の片33aが回動自在に取り付けられている。この一対の片33aは、始動口ソレノイドのプランジャに機械的に連結されており、そのプランジャの動作に応じて、互いの先端側が離れたり近づいたりするように回動する。つまり、この一対の片33aは始動口33を開閉し、開いたときには、パチンコ球は始動口33に入賞し易くなり、閉じたときには、パチンコ球は始動口33に入賞し難くなる。
一般入賞口35は、始動口33と同様、上面が開口するポケット状に形成されている。そして、この一般入賞口35内には、センサである一般入賞口スイッチが固定されており、一般入賞口スイッチは、一般入賞口35内にパチンコ球が入賞したことを検知する。
大入賞口34は、遊技領域31b内に前面が開口するように形成されている。そして、扉34aは、この大入賞口34を開閉するように装着されている。この扉34aは、大入賞口ソレノイドのプランジャに機械的に連結されており、そのプランジャの動作に応じて、大入賞口34を開閉する。また、この大入賞口34内には、センサである大入賞口スイッチが固定されており、大入賞口スイッチは、パチンコ球が大入賞口34内に入賞したことを検出する。
本物特図表示器36は、遊技領域31b内に固定され、7セグメント型のLEDとドット形のLEDとから構成されている。このような本物特図表示器36は、各セグメントやドットを発光させることにより、例えば、「0」〜「9」の数字などの図柄、および、ドットが付された数字などの図柄を表示する。以下、この本物特図表示器36により表示される図柄を本物特図(特別図柄)という。
即ち、本物特図表示器36は、ハズレや、確率変動の伴わない大当り(通常当り)、確率変動を伴う大当り(確変当り)など遊技結果を本物特図により正確に表示する。
保留ランプ38は、遊技領域31b内に4つ固定されている。これらの4つの保留ランプ38は、点灯個数に応じて、始動口33に入賞したパチンコ球の判定処理の待ち状況を通知する。
演出表示器37は、本物特図表示器36に比べて大きな表示領域を有するカラーの液晶ディスプレイから構成されている。
このような演出表示器37は、3つの数字を変動させて表示することにより、遊技結果の表示の演出を行なうとともに、3つの数字を停止して表示することにより、遊技結果を演出として遊技者に報知する。なお、このような遊技結果の演出には、物語風のアニメーション画像などが使用される。また、演出表示器37に表示される3つの数字を、以下、装飾図柄という。
図3は、本実施の形態における遊技機10のブロック図である。
始動口スイッチ40は、上述のように、始動口33内にパチンコ球が入賞したことを検出し、その検出結果、つまり入賞したことを示す始動口入賞信号を主基盤23に出力する。
始動口ソレノイド43は、主基盤23からの制御に応じて、始動口33に取り付けられた一対の片33aを回動させる。
一般入賞口スイッチ49は、上述のように、一般入賞口35内にパチンコ球が入賞したことを検出し、その検出結果、つまり入賞したことを示す一般入賞口入賞信号を主基盤23に出力する。
大入賞口スイッチ41は、上述のように、大入賞口34内にパチンコ球が入賞したことを検出し、その検出結果、つまり入賞したことを示す大入賞口入賞信号を主基盤23に出力する。
大入賞口ソレノイド42は、主基盤23からの制御に応じて、扉34aを回動せる。
主基盤23は、始動口スイッチ40と一般入賞口スイッチ49と大入賞口スイッチ41との検出結果に基づいて、大入賞口ソレノイド42、始動口ソレノイド43、保留ランプ38、本物特図表示器36、払出基盤24、および統合サブ基盤44を制御する。
このような主基盤23は、CPU(Central Processing Unit)23a、ROM(Read Only Memory)23b、RAM(Random Access Memory)23c、およびI/O部23dを備えている。
I/O部23dは、本物特図表示器36、始動口スイッチ40、一般入賞口スイッチ49、大入賞口スイッチ41、大入賞口ソレノイド42、始動口ソレノイド43、統合サブ基盤44、保留ランプ38、および払出基盤24と、CPU23aとの間の入出力処理を行なう。
ROM23bは、CPU23aの制御プログラムや本物特図に関する図柄データを格納し、RAM23cは、CPU23aのワークメモリとして機能する。このROM23bは、完全ハズレやリーチハズレなどの複数種のハズレに対応付けられた本物特図「1」と、確変当りに対応付けられた複数種の本物特図「2」、「3」、「4」、「5」と、通常当りに対応付けられた複数種の本物特図「6」、「7」、「8」、「9」とをそれぞれ記憶している。
CPU23aは、ROM23bから制御プログラムを読み出して、RAM23cを使用しながら、その制御プログラムに基づく動作を実行する。つまり、CPU23aは、I/O部23dを介して、始動口スイッチ40と一般入賞口スイッチ49と大入賞口スイッチ41との検出結果を取得し、その検出結果に基づいて、大入賞口ソレノイド42、始動口ソレノイド43、保留ランプ38、本物特図表示器36、払出基盤24、および統合サブ基盤44を制御する。なお、CPU23aには、メンテナンス性や内容確認の容易性等を考慮して、Zylog社のZ80が使用される。
払出モータ47は、例えばステッピングモータとして構成されており、払出基盤24からの指示に応じた個数のパチンコ球を賞球として上皿15に払い出す。
払出球確認センサ46は、上皿15に賞球として払い出されたパチンコ球を検出して、検出結果を払出基盤24に出力する。
払出基盤24は、主基盤23からの制御および払出球確認センサ46の検出結果に応じて、払出モータ47を駆動する。
払出基盤24は、CPU24a、ROM24b、RAM24c、およびI/O部24dを備えている。
I/O部24dは、主基盤23、払出球確認センサ46および払出モータ47と、CPU24aとの間の入出力処理を行なう。
ROM24bは、CPU24aの制御プログラムやデータを格納し、RAM24cは、CPU24aのワークメモリとして機能する。
CPU24aは、ROM24bから制御プログラムを読み出して、RAM24cを使用しながら、その制御プログラムに基づく動作を実行する。つまり、CPU24aは、I/O部24dを介して、主基盤23からの制御信号と払出モータ47の検出結果とを取得し、その制御信号と検出結果とに基づいて、払出モータ47を制御する。
表示サブ基盤21は、統合サブ基盤44からの制御に応じて、演出表示器37に装飾図柄を表示させるものであって、CPU21a、ROM21b、RAM21c、およびI/O部21dを備えている。
I/O部21dは、統合サブ基盤44および演出表示器37と、CPU21aとの間の入出力処理を行なう。
ROM21bは、CPU21aの制御プログラムや装飾図柄に関する図柄データを格納し、RAM21cは、CPU21aのワークメモリとして機能する。
CPU21aは、ROM21bから制御プログラムを読み出して、RAM21cを使用しながら、その制御プログラムに基づく動作を実行する。つまり、CPU21aは、I/O部21dを介して、統合サブ基盤44からの制御信号を取得し、その制御信号に応じた図柄データをROM21bから読み出す。そして、CPU21aは、制御信号に応じた態様でその図柄データの示す装飾図柄を演出表示器37に表示させる。
音サブ基盤22は、統合サブ基盤44からの制御に応じて、スピーカ18に遊技音を出力させるものであって、CPU22a、ROM22b、RAM22c、およびI/O部22dを備えている。
I/O部22dは、統合サブ基盤44およびスピーカ18と、CPU22aとの間の入出力処理を行なう。
ROM22bは、CPU22aの制御プログラムや遊技音に関する音データを格納し、RAM22cは、CPU22aのワークメモリとして機能する。
CPU22aは、ROM22bから制御プログラムを読み出して、RAM22cを使用しながら、その制御プログラムに基づく動作を実行する。つまり、CPU22aは、I/O部22dを介して、統合サブ基盤44からの制御信号を取得し、その制御信号に応じた音データをROM22bから読み出す。そして、CPU22aは、その音データの示す遊技音をスピーカ18に出力させる。
LEDサブ基盤45は、統合サブ基盤44からの制御に応じて、装飾LED48を発光させるものであって、CPU45a、ROM45b、RAM45c、およびI/O部45dを備えている。ここで、装飾LED48は、遊技盤30周辺の窓枠13の内側に、装飾用として複数個配置されている。
I/O部45dは、統合サブ基盤44および装飾LED48と、CPU45aとの間の入出力処理を行なう。
ROM45bは、CPU45aの制御プログラムや、装飾LED48の発光態様に関する装飾データを格納し、RAM45cは、CPU45aのワークメモリとして機能する。
CPU45aは、ROM45bから制御プログラムを読み出して、RAM45cを使用しながら、その制御プログラムに基づく動作を実行する。つまり、CPU45aは、I/O部45dを介して、統合サブ基盤44からの制御信号を取得し、その制御信号に応じた装飾データをROM45bから読み出す。そして、CPU45aは、その装飾データの示す態様で装飾LED48を発光させる。
統合サブ基盤44は、主基盤23らの指示に応じて、表示サブ基盤21、音サブ基盤22およびLEDサブ基盤45を制御するものであって、CPU44a、ROM44b、RAM44c、およびI/O部44dを備えている。
I/O部44dは、主基盤23、表示サブ基盤21、音サブ基盤22およびLEDサブ基盤45と、CPU44aとの間の入出力処理を行なう。
ROM44bは、CPU44aの制御プログラムを格納し、RAM44cは、CPU44aのワークメモリとして機能する。
CPU44aは、ROM44bから制御プログラムを読み出して、RAM44cを使用しながら、その制御プログラムに基づく動作を実行する。つまり、CPU44aは、I/O部44dを介して、主基盤23からの制御信号を取得し、その制御信号に基づいて、さらに、表示サブ基盤21、音サブ基盤22およびLEDサブ基盤45を制御する。
図4は、主基盤23の動作を説明するための図である。
主基盤23は、0から199までの数値をカウントする大当りカウンタと、0から7までの数値をカウントする最終停止図柄カウンタと、0から99までの数値をカウントする変動パターンカウンタとを有する。また、主基盤23は、0から199までの数値をカウントする大当りカウンタ用初期値カウンタと、0から7までの数値をカウントする最終停止図柄カウンタ用初期値カウンタとを有する。
大当りカウンタおよび最終停止図柄カウンタはそれぞれ、例えば4msごとに1ずつ増加するようにカウントを行なって、そのカウントされた値が最大値に達するとその値を0にリセットする。また、変動パターンカウンタは、上記各カウンタとは独立に、1つずつ増加するようにカウントを行なって、そのカウントされた値が最大値に達するとその値を0にリセットする。
また、大当りカウンタ用初期値カウンタは、後述する処理により1ずつ増加するようにカウントを行って、そのカウントされた値が最大値に達するとその値を0にリセットする。さらに、変動パターンカウンタ用初期値カウンタは、後述する処理により1ずつ増加するようにカウントを行って、そのカウントされた値が最大値に達するとその値を0にリセットする。
なお、大当りカウンタの初期値は、大当りカウンタ用初期値カウンタの値により決定される。なお、大当りカウンタは円弧状のカウンタである。
図5は、大当りカウンタの基本動作を示す図である。同図に示すように、大当りカウンタは、0から199までの数値をカウンタした後、再度0から199までの数値をカウントする。
ただし、大当りカウンタの初期値は、大当りカウンタ用初期値カウンタの値により決定される。このため、図6に示すように、例えば、初期値がx1と決定された場合には、大当りカウンタはx1から(x1−1)までをカウントする。すなわち、x1から199までカウントした後、カウントした値を0にリセットし、0から(x1−1)までカウントする。大当りカウンタは、(x1−1)までのカウントが終了した時点で初期値を大当りカウンタ用初期値カウンタの値に設定しなおす。例えば、大当りカウンタ用初期値カウンタの値がx2である場合には、大当りカウンタは、初期値をx2に設定する。大当りカウンタは、x2から199までカウントした後、カウントした値を0にリセットし、0から(x2−1)までカウントする。このように、大当りカウンタの初期値の更新は、大当りカウンタが一周分の値をカウントするたびに行われる。ここで、x1=0の場合には、(x1−1)=199とする。x2についても同様である。
再度、図4を用いて、主基盤23の動作を説明する。主基盤23は、パチンコ球が始動口33に入賞したタイミング、すなわち始動口スイッチ40がパチンコ球を検出したタイミングにおける、上述の大当りカウンタ、最終停止図柄カウンタ、および変動パターンカウンタの値に基づいて、そのパチンコ球に対する大当り判定と、最終停止図柄、変動パターン、および演出時間の決定とを行なう。ここで、最終停止図柄とは、大当りやハズレなどの遊技結果を統合サブ基盤44に対して指示するための図柄であり、変動パターンとは、演出表示器37に表示される装飾図柄の変動開始から停止までの変動のパターンであり、演出時間とは、その変動が行われている時間である。つまり、変動パターンは演出時間を一意に示し、その変動パターンによって演出時間が特定される。
例えば、主基盤23は、通常時には、大当りカウンタの値が7以外であれば、遊技結果がハズレであると判定し、大当りカウンタの値が7であれば、遊技結果が大当りであると判定する。また、主基盤23は、確率変動時(確変時)には、大当りカウンタの値が7,17,27,37,47以外であれば、遊技結果がハズレであると判定し、大当りカウンタの値が7,17,27,37,47であれば、遊技結果が大当りであると判定する。つまり、大当りの確率は、通常時には、1/200であるところ、確率変動時には、1/40に上昇する。
主基盤23は、ハズレと判定したときには、最終停止図柄カウンタの値にかかわらず、最終停止図柄を「123」に決定する。一方、大当りと判定したときには、主基盤23は、最終停止図柄カウンタの値が0または1であれば最終停止図柄を「111」と決定し、最終停止図柄カウンタの値が2または3であれば最終停止図柄を「222」と決定し、最終停止図柄カウンタの値が4または5であれば最終停止図柄を「333」と決定し、最終停止図柄カウンタの値が6または7であれば最終停止図柄を「444」と決定する。
ここで、主基盤23は、最終停止図柄が「111」または「333」である場合には、その大当りは確率変動を伴う当り(確変当り)として扱い、最終停止図柄が「222」または「444」である場合には、その大当りは確率変動を伴わない当り(通常当り)として扱う。
さらに、主基盤23は、例えば、最終停止図柄が「123」である場合に、変動パターンカウンタの値が0から32までの値であれば、変動パターンとして「P1」と、演出時間として「T1」とを決定し、変動パターンカウンタの値が33から65までの値であれば、変動パターンとして「P2A」と、演出時間として「T2」とを決定し、変動パターンカウンタの値が66から99までの値であれば、変動パターンとして「P2B」と、演出時間として「T3」とを決定する。ここで、例えば、演出時間「T1」は10秒であり、演出時間「T2」は40秒であり、演出時間「T3」は50秒である。また、主基盤23は、例えば、最終停止図柄が「111」である場合に、変動パターンカウンタの値が0から15までの値であれば、変動パターンとして「P3A」と、演出時間として「T4」とを決定し、変動パターンカウンタの値が16から31までの値であれば、変動パターンとして「P4A」と、演出時間として「T5」とを決定し、変動パターンカウンタの値が32から65までの値であれば、変動パターンとして「P3B」と、演出時間として「T6」とを決定し、変動パターンカウンタの値が66から99までの値であれば、変動パターンとして「P4B」と、演出時間として「T7」とを決定する。ここで、例えば、演出時間「T4」=演出時間「T2」+a、演出時間「T5」=演出時間「T2」+b、演出時間「T6」=演出時間「T3」+a、演出時間「T7」=演出時間「T3」+b、およびa<bの関係が成立する。
主基盤23は、このように決定された最終停止図柄および変動パターンを、統合サブ基盤44に通知する。
なお、図4に示すような各カウンタに対応する情報は、主基盤23のROM23bに格納されており、主基盤23のCPU23aは、このような情報をROM23bから読み出すことにより上述のよう動作を実行する。
ここで、本実施の形態における主基盤23の動作について図7から図18を用いて説明する。
図7は、主基盤23の基本動作を示すフローチャートである。
主基盤23は、電源が投入されると、まず、各種の初期化処理を実行する(ステップS1)。その後、主基盤23は、バックアップ復帰が有るか否かを判別し(ステップS2)、有ると判別したときには(ステップS2のY)、バックアップ復帰処理を実行する(ステップS3)。
次に、主基盤23は、割り込みを禁止にセットし(ステップS4)、大当りカウンタ用初期値カウンタ更新サブ処理を実行する。すなわち、主基盤23は、大当りカウンタ用初期値カウンタの値を更新する(ステップS5)。また、主基盤23は、最終停止図柄カウンタ用初期値カウンタ更新サブ処理を実行する。すなわち、主基盤23は、最終停止図柄カウンタ用初期値カウンタの値を更新する(ステップS6)。さらに、主基盤23は、変動パターンカウンタ更新サブ処理を実行する。すなわち、主基盤23は、変動パターンカウンタの値を更新する(ステップS7)。その後、主基盤23は、割り込みを許可にセットし(ステップS8)、ステップS4からの処理を繰返し実行する。
図8は、大当りカウンタ用初期値カウンタ更新サブ処理(図7のステップS5)の詳細な動作を示すフローチャートである。
主基盤23は、大当りカウンタ用初期値カウンタの値が最大値になっているか否かを判別する(ステップS501)。ここで、最大値になっていると判別したときには(ステップS501のY)、主基盤23は、大当りカウンタ用初期値カウンタの値を0にリセットする(ステップS502)。一方、最大値になっていないと判別したときには(ステップS501のN)、主基盤23は、大当りカウンタ用初期値カウンタの値に1を加算してその大当りカウンタ用初期値カウンタの値を更新する(ステップS503)。
図9は、最終停止図柄カウンタ用初期値カウンタ更新サブ処理(図7のステップS6)の詳細な動作を示すフローチャートである。
主基盤23は、最終停止図柄カウンタ用初期値カウンタの値が最大値になっているか否かを判別する(ステップS601)。ここで、最大値になっていると判別したときには(ステップS601のY)、主基盤23は、最終停止図柄カウンタ用初期値カウンタの値を0にリセットする(ステップS602)。一方、最大値になっていないと判別したときには(ステップS601のN)、主基盤23は、最終停止図柄カウンタ用初期値カウンタの値に1を加算してその最終停止図柄カウンタ用初期値カウンタの値を更新する(ステップS603)。
図10は、変動パターンカウンタ更新サブ処理(図7のステップS7)の詳細な動作を示すフローチャートである。
主基盤23は、変動パターンカウンタの値が最大値になっているか否かを判別する(ステップS701)。ここで、最大値になっていると判別したときには(ステップS701のY)、主基盤23は、変動パターンカウンタの値を0にリセットする(ステップS702)。一方、最大値になっていないと判別したときには(ステップS701のN)、主基盤23は、変動パターンカウンタの値に1を加算してその変動パターンカウンタの値を更新する(ステップS703)。
図11は、主基盤23の割り込み動作を示すフローチャートである。
主基盤23は、図7に示す基本動作を実行しているときに、例えば4msごとに割り込み動作を実行する。この割り込み動作は、Z80CTCによるモード2割り込みである。
具体的に、主基盤23は、割り込み動作を開始すると、まず、カウンタ更新サブ処理を実行する。即ち、主基盤23は、大当りカウンタおよび最終停止図柄カウンタのそれぞれの値を更新する(ステップS11)。
次に、主基盤23は、始動口入賞サブ処理を実行する。即ち、主基盤23は、始動口33にパチンコ球が入賞したことに基づいて、大当りカウンタおよび最終停止図柄カウンタのそれぞれの値を保留エリアに格納する(ステップS12)。そして、主基盤23は、大当り判定の処理(大当り判定サブ処理)を実行し(ステップS13)、払出モータ47にパチンコ球を賞球として払い出させるための賞球払出サブ処理を実行し(ステップS14)、大当り遊技を行なうための大当り遊技サブ処理を実行する(ステップS15)。
ここで、大当り遊技は、演出表示器37に大当りを示す確定停止図柄が停止表示されたときに開始される。この大当り遊技は、大入賞口34の扉34aを開放し、大入賞口34内にパチンコ球が入賞することを許容する遊技者有利の状態を発生させるものである。このとき、大入賞口34は、上限個のパチンコ球が入賞する個数条件または開放時間が上限値に達する時間条件が満足されるまで開放される。この大入賞口34の個数条件および時間条件を基準とする開放動作は、大当りラウンドと称されるものであり、個数条件および時間条件のいずれかが満足されたときには大当りラウンドが再開される。この大当りラウンドの繰返し回数には上限値が設定されており、大当りラウンドの繰返し回数が上限値に到達したときには大当り遊技が無条件に終了する。
図12は、カウンタ更新サブ処理(図11のステップS11)の詳細な動作を示すフローチャートである。
主基盤23は、図11に示すステップS11のカウンタ更新サブ処理を実行するときには、まず、大当りカウンタの値が最大値になっているか否かを判別する(ステップS21)。ここで、主基盤23は、最大値になっていると判別したときには(ステップS21のY)、大当りカウンタの値を0にリセットし(ステップS22)、最大値になっていないと判別したときには(ステップS21のN)、大当りカウンタの値に1を加算してその大当りカウンタの値を更新する(ステップS23)。
次に、主基盤23は、最終停止図柄カウンタの値が最大値になっているか否かを判別する(ステップS24)。ここで、主基盤23は、最大値になっていると判別したときには(ステップS24のY)、最終停止図柄カウンタの値を0にリセットし(ステップS25)、最大値になっていないと判別したときには(ステップS24のN)、最終停止図柄カウンタの値に1を加算してその最終停止図柄カウンタの値を更新する(ステップS26)。
図13は、始動口入賞サブ処理(図11のステップS12)の詳細な動作を示すフローチャートである。
主基盤23は、図11に示すステップS12の始動口入賞サブ処理を実行するときには、まず、始動口スイッチ40から始動口入賞信号が出力されたか否かを判別する(ステップS31)。ここで、主基盤23は、出力されていないと判別したときには(ステップS31のN)、始動口入賞サブ処理を終了する。
一方、主基盤23は、出力されたと判別したときには(ステップS31のY)、大当りカウンタの値を取得するとともに(ステップS32)、最終停止図柄カウンタの値を取得する(ステップS33)。
そして、主基盤23は、各カウンタの値を取得した後、保留最大フラグがオンになっているか否かを判別する(ステップS35)。ここで、保留最大フラグとは、上記各カウンタの値を記憶するための領域(以下、保留エリアという)に空き容量があるか否かを示すフラグである。つまり、保留最大フラグがオンのときには、その保留最大フラグは、保留エリアに空き容量がなく、新たな上記各カウンタの値を記憶することができないことを示し、保留最大フラグがオフのときには、その保留最大フラグは、保留エリアに空き容量があり、新たな上記各カウンタの値を記憶することができることを示す。また、保留エリアは、例えば、FIFO(First-In First-Out)の方式で扱われ、5組の上記各カウンタの値を記憶することができる程度の容量を有する。
主基盤23は、ステップS35で保留最大フラグがオンになっていると判別すると(ステップS35のY)、ステップS32〜S33で取得した各カウンタの値を保留エリアに格納することなく、始動口入賞サブ処理を終了する。一方、主基盤23は、保留最大フラグがオフになっていると判別すると(ステップS35のN)、ステップS32〜S33で取得した各カウンタの値を、保留エリアの最後尾に格納する(ステップS36)。このとき、主基盤23は、保留エリアの先頭の0番地に1組のカウンタの値が格納されていれば、この値に基づく大当り判定サブ処理などの処理を直ぐに実行する。また、主基盤23は、保留エリアの先頭の0番地から1番地までに2組のカウンタの値が格納されていれば、1番地にある1組のカウンタの値に対する処理を保留し、保留ランプ38を1つ点灯させる。同様に、主基盤23は、保留エリアの先頭の0番地から2番地までに3組のカウンタの値が格納されていれば、1番地から2番地にある2組のカウンタの値に対する処理を保留し、保留ランプ38を2つ点灯させる。さらに同様に、主基盤23は、保留エリアの先頭の0番地から3番地までに4組のカウンタの値が格納されていれば、1番地から3番地にある3組のカウンタの値に対する処理を保留し、保留ランプ38を3つ点灯させ、保留エリアの先頭の0番地から4番地までに5組のカウンタの値が格納されていれば、1番地から4番地にある4組のカウンタの値に対する処理を保留し、保留ランプ38を4つ点灯させる。
主基盤23は、ステップS36の処理が終了すると、保留エリアに空き容量があるか否か、つまり、保留エリアがその最大容量まで使用されているか否かを判別する(ステップS37)。ここで、主基盤23は、使用されていると判別したときには(ステップS37のY)、保留最大フラグをオンにして(ステップS38)、始動口入賞サブ処理を終了する。一方、主基盤23は、使用されていないと判別したときには(ステップS37のN)、保留最大フラグをオンにすることなく、始動口入賞サブ処理を終了する。
図14〜図16は、大当り判定サブ処理(図11のステップS13)の詳細な動作を示すフローチャートである。
主基盤23は、図11に示すステップS13の大当り判定サブ処理を実行するときには、まず、変動表示指示フラグがオンになっているか否かを判別する(ステップS41)。なお、この変動表示指示フラグは、演出表示器37の装飾図柄の変動が行なわれているか否かを示すフラグである。つまり、変動表示指示フラグがオンのときには、その変動表示指示フラグは装飾図柄が現在のところ変動していることを示し、変動表示指示フラグがオフのときには、その変動表示指示フラグは装飾図柄が現在のところ変動していないことを示す。
主基盤23は、変動表示指示フラグがオンになっていると判別したときには(ステップS41のY)、さらに、変動時間タイマによる計測時間が最大時間に達したか否かを判別する(ステップS42)。つまり、主基盤23は、変動時間タイマによって、演出表示器37の装飾図柄が変動している時間を計測しており、その計測時間が、予め設定されている最大時間(演出時間)に達したか否かを判別する。
ここで、主基盤23は、最大時間に達していないと判別したときには(ステップS42のN)、大当り判定サブ処理を終了する。一方、主基盤23は、最大時間に達したと判別したときには(ステップS42のY)、変動停止コマンド(変動停止信号)を統合サブ基盤44に送信して、装飾図柄の変動を停止するように指示する(ステップS43)。このときさらに、主基盤23は、計測処理をしていた変動時間タイマを停止させてリセットし(ステップS44)、変動表示指示フラグをオフに設定する(ステップS45)。そしてさらに、主基盤23は、本物特図表示器36に、先に決定された本物特図を確定表示させる(ステップS46)。つまり、本物特図は、装飾図柄と同様に変動しており、主基盤23は、ステップS46で、先に決定された本物特図を停止して本物特図表示器36に表示させる。そして、主基盤23は大当り判定サブ処理を終了する。
また、主基盤23は、ステップS41で変動表示指示フラグがオンになっていないと判別したときには(ステップS41のN)、さらに、大当り遊技フラグがオンになっているか否かを判別する(ステップS47)。なお、この大当り遊技フラグは、大当り遊技が行なわれているか否かを示すフラグであり、オンのときには、大当り遊技が行なわれていることを示し、オフのときには、大当り遊技がおこなわれていないことを示す。
ここで、主基盤23は、大当り遊技フラグがオンのときには(ステップS47のY)、大当り判定サブ処理を終了し、大当り遊技フラグがオフのときには(ステップS47のN)、さらに、保留エリアに1組のカウンタの値が格納されているか否かを判別する(ステップS48)。
ここで、主基盤23は、格納されていないと判別したときには(ステップS48のN)、大当り判定サブ処理を終了し、格納されていると判別したときには(ステップS48のY)、保留エリアの先頭の0番地に格納されている1組のカウンタの値を読出して削除し、保留エリアに格納されている他のデータの番地が1つ小さい番地に移るように、他のデータの領域をシフトする(ステップS49)。
そして、主基盤23は、ステップS49で読み出した1組のカウンタの中の大当りカウンタの値に基づいて、大当りかハズレかを判定する(ステップS50)。つまり、主基盤23は、電源投入時などの通常時には、大当りカウンタの値が7以外であればハズレと判定し、大当りカウンタの値が7であれば大当りと判定する。また、主基盤23は、確率変動時には、大当りカウンタの値が7,17,27,37,47以外であればハズレと判定し、大当りカウンタの値が7,17,27,37,47の何れかであれば大当りと判定する。
ここで、主基盤23は、当りと判定したときには(ステップS50のY、図15参照)、ステップS49で読み出した1組のカウンタの中の最終停止図柄カウンタの値に基づいて、最終停止図柄を決定してこれを設定する(ステップS51)。さらにこのとき、主基盤23は、ステップS51で決定した最終停止図柄に基づいて、最終的に停止して表示させるべき本物特図を決定してこれを設定する(ステップS52)。そしてさらに、主基盤23は、大当り遊技フラグをオンに設定する(ステップS53)。
次に、主基盤23は、ステップS51で決定した最終停止図柄が確率変動の図柄であるか否かを判別する(ステップS54)。例えば、主基盤23は、最終停止図柄が「111」または「333」であれば、その最終停止図柄が確率変動の図柄であると判別し、最終停止図柄が「222」または「444」であれば、その最終停止図柄が確率変動の図柄でないと判別する。
ここで、主基盤23は、確率変動の図柄でないと判別したときには(ステップS54のN)、大当りテーブルを通常タイプのテーブルに設定し(ステップS55)、確率変動の図柄であると判別したときには(ステップS55のY)、大当りテーブルを確変タイプのテーブルに設定する(ステップS56)。なお、大当りテーブルとは、大当りカウンタの値と大当りまたはハズレとを対応付けたテーブルであって、通常タイプと確変タイプとがある。通常タイプの大当りテーブルは、大当りカウンタの値「7」と「大当り」とを対応付け、大当りカウンタの値「7以外の0から199までの値」と「ハズレ」とを対応付けている。確変タイプの大当りテーブルは、大当りカウンタの値「7,17,27,37,47」と「大当り」とを対応付け、大当りカウンタの値「7,17,27,37,47以外の0から199までの値」と「ハズレ」とを対応付けている。そして、通常タイプの大当りテーブルが設定されているときは、上述の通常時を示し、確変タイプの大当りテーブルが設定されているときには、上述の確率変動時を示す。
主基盤23は、ステップS55,S56で大当りテーブルを設定すると、ステップS49で読み出した1組のカウンタの中から、変動パターンカウンタの値を取得し(ステップS57)、その取得した変動パターンカウンタと選択テーブルとに基づいて、変動パターンを選択して決定する(ステップS58)。なお、選択テーブルは、例えば、図4に示すように構成されたテーブルである。
次に、主基盤23は、ステップS51で決定した最終停止図柄を統合サブ基盤44に指示するための最終停止図柄情報と、ステップS58で決定した変動パターンを統合サブ基盤44に指示するための変動パターンコマンドとを、統合サブ基盤44に送信する(ステップS59)。さらに、主基盤23は、本物特図表示器36に対して本物特図の変動を開始させる(ステップS60)。
そして、主基盤23は、変動時間タイマの最大時間に、ステップS58で選択された変動パターンの演出時間を設定するとともに(ステップS61)、変動時間タイマによる計測を開始させる(ステップS62)。
さらに、主基盤23は、変動表示指示フラグをオンにするとともに(ステップS63)、保留最大フラグがオンになっていれば、その保留最大フラグをオフに変更する(ステップS64)。
また、主基盤23は、図14のステップS50でハズレと判定したときには(ステップS50のN、図16参照)、最終停止図柄を「123」に決定してこれを設定する(ステップS65)。さらにこのとき、主基盤23は、最終的に停止して表示させるべき本物特図を「1」に決定してこれを設定する(ステップS66)。
そして、主基盤23は、ステップS49で読み出した1組のカウンタの中から、変動パターンカウンタの値を取得し(ステップS67)、その取得した変動パターンカウンタと選択テーブルとに基づいて、変動パターンを選択して決定する(ステップS68)。
次に、主基盤23は、ステップS65で決定した最終停止図柄「123」を統合サブ基盤44に指示するための最終停止図柄情報と、ステップS68で決定した変動パターンを統合サブ基盤44に指示するための変動パターンコマンドとを、統合サブ基盤44に送信する(ステップS69)。さらに、主基盤23は、本物特図表示器36に対して本物特図の変動を開始させる(ステップS70)。
そして、主基盤23は、変動時間タイマの最大時間に、ステップS68で選択された変動パターンの演出時間を設定するとともに(ステップS71)、変動時間タイマによる計測を開始させる(ステップS72)。
さらに、主基盤23は、変動表示指示フラグをオンにするとともに(ステップS73)、保留最大フラグがオンになっていれば、その保留最大フラグをオフに変更する(ステップS64、図15参照)。
図17は、賞球払出サブ処理(図11のステップS14)の詳細な動作を示すフローチャートである。
主基盤23は、図11に示すステップS14の賞球払出サブ処理を実行するときには、まず、始動口スイッチ40から始動口入賞信号が出力されているか否かを判別する(ステップS81)。ここで、主基盤23は、始動口入賞信号が出力されていると判別したときには(ステップS81のY)、始動口33に応じた賞球数だけパチンコ球を払い出すように指示する賞球数コマンドをセットする(ステップS82)。
さらに、主基盤23は、一般入賞口スイッチ49から一般入賞口入賞信号が出力されているか否かを判別する(ステップS83)。ここで、主基盤23は、一般入賞口入賞信号が出力されていると判別したときには(ステップS83のY)、一般入賞口35に応じた賞球数だけパチンコ球を払い出すように指示する賞球数コマンドをセットする(ステップS84)。
さらに、主基盤23は、大入賞口スイッチ41から大入賞口入賞信号が出力されているか否かを判別する(ステップS85)。ここで、主基盤23は、大入賞口入賞信号が出力されていると判別したときには(ステップS85のY)、大入賞口34に応じた賞球数だけパチンコ球を払い出すように指示する賞球数コマンドをセットする(ステップS86)。
そして、主基盤23は、ステップS82,S84,S86で賞球数コマンドがセットされていれば、そのセットされている賞球数コマンドを払出基盤24に送信する(ステップS87)。
図18は、大当り遊技サブ処理(図11のステップS15)の詳細な動作を示すフローチャートである。
主基盤23は、図11に示すステップS15の大当り遊技サブ処理を実行するときには、まず、変動表示指示フラグがオンになっているか否かを判別する(ステップS91)。ここで、主基盤23は、オンになっていると判別したときには(ステップS91のY)、大当り遊技サブ処理を終了し、オフになっていると判別したときには(ステップS91のN)、さらに、大当り遊技フラグがオンになっているか否かを判別する(ステップS92)。
主基盤23は、大当り遊技フラグがオフになっていると判別したときには(ステップS92のN)、大当り遊技サブ処理を終了し、大当り遊技フラグがオンになっていると判別したときには(ステップS92のY)、大当り遊技制御を実行する(ステップS93)。つまり、主基盤23のCPU23aは、ROM23bに格納されている大当り遊技用の制御プログラムを読み出して、その制御プログラムを実行することにより、大当り遊技が開始される。また、主基盤23は、ステップS93において、必要に応じて大当りラウンド表示コマンド(大当り表示指示信号)や大当りラウンド表示終了コマンドを統合サブ基盤44に送信する。
そして、主基盤23は、大当り遊技制御が終了したか否かを判別する(ステップS94)。ここで、主基盤23は、大当り遊技制御が終了したと判別したときには(ステップS94のY)、大当り遊技フラグをオフにして(ステップS95)、大当り遊技制御が終了していないと判別したときには(ステップS94のN)、大当り遊技フラグをオンにした状態で、大当り遊技サブ処理を終了する。
図19は、主基盤23のROM23bに格納されているCPU23aが実行するプログラムの配置の一例を示す図である。
上述したように、主基盤23のCPU23aは図7〜図18に示した処理を実行する。このため、これらの処理を実現するためのプログラムが、ROM23bに格納される。
例えば、図19に示すように、ROM23bの0000H番地から0007番地には、図7に示した主基盤23の基本動作のプログラムの前半部分が格納されている。なお、このプログラムの最後には、基本動作のプログラムの後半部分(L1番地)へジャンプするための命令「JR L1」が挿入されているものとする。0000H番地に基本動作のプログラムを格納しているのは、電源投入時には、一般的に0000H番地からプログラムが読み込まれ、処理が開始されるからである。
また、ROM23bの0008H番地から000FH番地には、変動停止コマンド送信処理(図14のステップS43)のプログラムが格納されている。ROM23bの0010H番地から0017H番地には、変動パターンコマンド及び最終停止図柄情報送信処理(図15のステップS59)のプログラムが格納されている。ROM23bの0018H番地から001FH番地には、変動パターンコマンド及び最終停止図柄情報送信処理(図16のステップS69)のプログラムが格納されている。ROM23bの0020H番地から0027H番地には、賞球数コマンド送信処理(図17のステップS87)のプログラムが格納されている。ROM23bの0028H番地から002FH番地には、大当りラウンド表示コマンド送信処理(図18のステップS93)のプログラムが格納されている。ROM23bの0030H番地から0037H番地には、大当たりラウンド表示終了コマンド送信処理(図18のステップS93)のプログラムが格納されている。ROM23bの0038H番地から003FH番地には、始動口入賞信号送信処理のプログラムが格納されている。なお、始動口入賞信号処理は、始動口入賞信号が検知された場合に、主基盤23から統合サブ基盤44に当該信号が検知されという情報を送信する処理である(図13のステップS31)。これらの0008H番地から003FH番地に格納されているプログラムは、主基盤23の割り込み処理時に呼び出されるサブルーチンである。
また、ROM23bの0040H番地以降には、図11〜図18に示した主基盤23の割り込み処理のプログラムが格納されている。その後の、ROM23bのL1番地以降には、図7に示した主基盤23の基本動作プログラムの後半部分(0000H番地から0008番地に格納されなかった部分)が格納されている。
CPU23aには、上述したようにZ80が使用される。Z80には、特定のアドレス(0000H番地、0008H番地、0010H番地、0018H番地、0020H番地、0028H番地、0030H番地および0038H番地)に格納されたサブルーチンを呼び出すための命令として、「RST命令」が用意されている。このため、上述したROM23bの0008H番地、0010H番地、0018H番地、0020H番地、0028H番地、0030H番地および0038H番地に各々格納されているプログラムは、RST命令を用いて呼び出されるものとする。これらのプログラムは、主基盤23から統合サブ基盤44または払出基盤24に対して、各種コマンドまたは信号を送信するためのプログラムである。これらのプログラムは、1回のモード2割り込みにおいて、複数回呼び出される可能性のあるプログラムである。なお、それぞれのプログラムの最後にはRET命令が挿入されており、RET命令を実行後には、当該プログラムを呼び出したRST命令の次の番地の命令が実行される。
「RST命令」とは、2進数表現にて8ビット(1バイト)で形成され、命令が実行されると現在のプログラムカウンタの値をスタックに格納した後、プログラムカウンタの値を限られた特定値に書換え可能で、該特定値を前記8ビット内の所定の3ビット内に2進数で収納し、残りの5ビットにて2進数で当該命令自身を形成している命令のことである。
図20は、RST命令を2進数表現した図である。
同図に示すように、最上位ビットのビット番号を「0」、最下位ビットのビット番号を「7」とした場合に、ビット番号「2」〜「4」の3ビットで特定値を示す。すなわち、特定値は、RST命令が呼び出し可能なサブルーチンの先頭アドレスの値(0000H、0008H、0010H、0018H、0020H、0028H、0030Hおよび0038H)である。
すなわち、2進数表現で「11000111」、「11001111」、「11010111」、「11011111」、「11100111」、「11101111」、「11110111」および「11111111」で示されるRST命令が呼び出し可能なサブルーチンの先頭アドレスは、それぞれ、「0000H」、「0008H」、「0010H」、「0018H」、「0020H」、「0028H」、「0030H」および「0038H」である。
図21および図22は、RST命令によるサブルーチンの呼び出し処理を説明するための図である。
図21に示すような、メモリ中のプログラム配置において、メインプログラムmain()とサブルーチンsub()とを考え、メインプログラムmain()中より、RST命令を用いて、サブルーチンsub()を呼び出すものとする。サブルーチンsub()の先頭アドレスは、RST命令で呼び出し可能な8つのアドレスのうちのいずれかである。図21では、サブルーチンsub()の先頭アドレスを「0018H」としている。
図22は、メインプログラムmain()とサブルーチンsub()との関係を示している。
すなわち、図22(a)に示すように、メインプログラムmain()の先頭からRST命令までの命令が実行される(S302)。RST命令の実行により、サブルーチンsub()が呼び出され、実行される(S304)。サブルーチンsub()中のRET命令(サブルーチンの呼び出し元に戻る命令)が実行されることにより、メインプログラムmain()中のRST命令の次の命令から順次、命令実行が行なわれる(S306)。
図22(a)に示したRST命令によるサブルーチン呼び出しについて、図22(b)〜図22(d)を用いて、より詳細に説明する。ここで、メインプログラムmain()内で最初に実行される命令のアドレスを「a」とし、RST命令の次にある、すなわちサブルーチンsub()から戻ってきたときに最初に実行される命令のアドレスを「b」とする。また、サブルーチンsub()内で最初に実行される命令のアドレスを「c」とする。
図22(b)に示すように、プログラムカウンタPCには、「a」がセットされている。CPU23aは、アドレス「a」に格納されている命令から順に、プログラムカウンタPCの値を1つずつ増やしながら、命令を実行していく(S302)。命令実行の過程でRST命令が読み込まれるが、その際のプログラムカウンタPCは、RST命令の次の命令の格納アドレスである「b」を格納している。
図22(c)に示すように、CPU23aは、RST命令のための処理として、プログラムカウンタPCの値「b」をスタックにいれ、ジャンプ先のアドレス「c」をプログラムカウンタPCに入れる。そして、アドレス「c」に格納されている命令から順に、プログラムカウンタPCの値を1つずつ増やしながら命令を実行していく(S304)。やがて、RET命令にたどり着く。
図22(d)に示すように、RET命令が読み込まれたとき、プログラムカウンタPCはその次の命令のアドレスを指しているが、この値は無視される。CPU23aは、RET命令のための処理として、スタックの値をプログラムカウンタPCに格納する。その結果、プログラムカウンタPCには戻り先のアドレスである「b」が入る。CPU23aは、アドレス「b」に格納されている命令から順に、プログラムカウンタの値を1つずつ増やしながら、命令を実行していく(S306)。
なお、Z80には、サブルーチンを呼び出すための命令として、その他に、「CALL命令」が用意されている。この命令では、絶対アドレスを指定することにより、当該アドレスに格納されたサブルーチンを呼び出すことができる。
なお、図23に示すように、CALL命令の命令サイズは3バイトであり、命令実行時に必要なサイクル数は5サイクルである。これに対して、RST命令の命令サイズは1バイトであり、命令実行時に必要なサイクル数は3サイクルであり、CALL命令と比較して、命令サイズも小さく、かつ高速処理が可能である。
上述したように、図11に示したモード2割り込み処理は4msごとに発生し、ステップS11〜S15までの処理が実行されるが、これらの処理の実行後、次のモード2割り込み処理が発生するまでの時間(以下、「残余時間」という。)では、図7に示したステップS4〜S8の処理が繰返し実行されることとなる。この残余時間では、大当りカウンタ用初期値カウンタ更新サブ処理(図7のステップS5、図8)のプログラム、最終停止図柄カウンタ用初期値カウンタ更新サブ処理(図7のステップS6、図9)のプログラムおよび変動パターンカウンタ更新サブ処理(図7のステップS7、図10)のプログラムの呼び出しが繰返し行われる。
なお、モード2割り込みが発生した際の割り込み先アドレスである0020Hは、割り込みレジスタであるIレジスタに設定されている。このIレジスタの値の設定は、図7に示した基本処理の途中で行われる。
以上説明したように、本発明の実施の形態によると、1回のモード2割り込みが発生した際に複数回呼び出される可能性のあるサブルーチン(プログラム)を、RST命令を用いて繰返し呼び出すようにしている。このため、主基盤23の割り込み処理を高速に実行することが可能となる。
例えば、遊技者が60分間遊技を行い、1分あたりの始動口入賞が5回あったとする。また、この際、大当りは起こらなかったものとする。この場合、1回の始動口入賞あたり、変動パターンコマンド及び最終停止図柄情報送信処理(図16のステップS69)のプログラムと、始動口入賞信号送信処理のプログラム(図13のS31)と、変動停止コマンド送信処理(図14のステップS43)のプログラムと、賞球数コマンド送信処理(図17のステップS87)のプログラムとの4つのプログラムがRST命令で呼び出される。CALL命令とRST命令とのサイクル数の差は2サイクルである。このため、1時間あたり、2400サイクル(=60×5×4×2)処理が高速化される。
このように、割込み処理時の処理が高速化されることにより、残余時間が長くなる。このため、大当りカウンタ用初期値カウンタ、最終停止図柄カウンタ用初期値カウンタおよび変動パターンカウンタの値を多くの回数更新することができる。このため、外部からカウンタの値の推測を行うことが困難となり、不正改造が困難となる。
また、RST命令は1バイトで済むので、CALL命令を用いた場合に比べて、プログラムのサイズを小さくすることができる。
さらに、RST命令は1バイトで済むので、仮に不正改造が行われたとしても、コマンド送信制御または信号送信制御の不正改造の発見を容易に行うことが可能である。また、RST命令によるサブルーチンの呼び先はあらかじめ固定されているため、プログラム作成者とプログラムチェック者とが異なっている場合であっても、プログラムのチェックを容易に行うことが可能となる。
さらにまた、ROM23bの0000H番地には、電源投入時に実行される主基盤23の基本動作のプログラムが格納されている。このため、各種コマンド送信および信号送信のプログラムをROM23bのプログラム内に埋没させることができる。このため、どこにこれらのプログラムがあるのかの発見が困難となり、不正改造自体をあきらめさせることも可能となる。
(実施の形態2)
本発明の実施の形態1においては、モード2割り込み時に、頻繁に実行されるプログラムを、RST命令を用いて呼び出すようにした。これに対し、本実施の形態では、モード2割り込み時に、頻繁に実行されるプログラムの格納先のアドレスを決定するアドレス決定処理のプログラムを、RST命令を用いて呼び出す点が異なる。
本実施の形態に係る遊技機の構成およびその主要な動作は、図1〜図23を参照して説明した実施の形態1に係る遊技機と同様である。このため、その詳細な説明はここでは繰り返さない。
図24は、主基盤23のROM23bに格納されているCPU23aが実行するプログラムの配置の一例を示す図である。
図19に示した実施の形態1でのプログラム配置と異なる点は、0008H番地から000FH番地に後述するアドレス決定処理のプログラムが格納されている点と、0010H番地以降に、図11〜図18に示した主基盤23の割り込み処理のプログラムが格納されている点である。また、この割込み処理のプログラム中に、実施の形態1ではRST命令の呼び先に格納されていたプログラム(例えば、変動停止コマンド送信処理のプログラム)が格納されている点も異なる。ここでは、一例として、変動停止コマンド送信処理(図14のステップS43)のプログラムが、1216H番地以降に格納されているものとする。
図25は、主基盤23のROM23bに格納されているアドレステーブルの一例を示す図である。アドレステーブルとは、プログラムの格納先アドレスの配列のことである。例えば、アドレステーブルの先頭番地(オフセット値0)には、あるプログラムの格納先アドレスが記憶されており、その格納先アドレスは11C4H番地であることが同図では示されている。なお、アドレステーブルの先頭番地はHLレジスタに格納され、先頭番地からのオフセットはCレジスタにより特定される。すなわち、HLレジスタとCレジスタとに格納された値を加算した値のアドレスに、呼び出すプログラムの格納先アドレスが記憶されている。
図26は、アドレス決定処理の動作を示すフローチャートである。アドレス決定処理は、サブルーチンを呼び出すたびに実行される。CPU23aは、アドレステーブルの先頭番地をHLレジスタに設定する(ステップS201)。次に、CPU23aは、呼び出すプログラム(サブルーチン)に対応するオフセットをCレジスタに設定する(ステップS202)。ステップS201およびS202の処理の後、HLレジスタの値とCレジスタの値とを加算した値(番地)に格納されている値、すなわち呼び出すプログラムの格納先アドレスがHLレジスタに設定される(ステップS203)。
例えば、上述の変動停止コマンド送信処理を実行する際には、アドレステーブルの先頭番地がHLレジスタに設定され、オフセットとして「8」がCレジスタに設定されると、HLレジスタに変動停止コマンド送信処理のプログラムの格納先アドレスである1216H番地が設定される。その後、1216H番地に格納されたプログラムが実行される。
以上説明したように、本実施の形態によると、1回のモード2割り込みが発生した際に、アドレス決定処理のプログラムを、RST命令を用いて繰返し呼び出すことができる。このため、主基盤23の割込み処理を高速に実行することが可能となる。
これにより、実施の形態1に説明したのと同様の作用、効果を奏することが可能となる。
なお、実施の形態1および2では、モード2割り込み発生時に頻繁に呼び出されるプログラムを、RST命令を用いて呼び出すようにしたが、モード2割り込み時以外に頻繁に読み出されるプログラムを、RST命令を用いて呼び出すようにしてもよい。
なお、特許請求の範囲において前記タイマ割り込み時処理手段は、1回の割り込みで複数回呼び出されるプログラムを、RST命令を用いて呼び出すこととしているが、複数回には、1回も含まれるものとする。
[発明の効果]
本発明の遊技機によると、プログラムのメンテナンス性および処理速度を維持しつつ、不正改造抑制および不正改造発見容易性向上を実現することができるという作用効果を奏する。
本発明は、プログラムのメンテナンス性および処理速度を維持しつつ、不正改造抑制および不正改造発見容易性向上を実現することができるという効果を奏し、例えば、パチンコ機などに適用することができる。
本発明の実施の形態1における遊技機の斜視図。 同上の遊技盤の正面図。 同上の遊技機のブロック図。 同上の主基盤の動作を説明するための図。 同上の大当りカウンタの基本動作を示すための図。 同上の大当りカウンタの基本動作の具体例を示すための図。 同上の主基盤の基本動作を示すフローチャート。 大当りカウンタ用初期値カウンタ更新サブ処理の動作を示すフローチャート。 最終停止図柄カウンタ用初期値カウンタ更新サブ処理の動作を示すフローチャート。 変動パターンカウンタ更新サブ処理の動作を示すフローチャート。 同上の主基盤の割り込み動作を示すフローチャート。 同上のカウンタ更新サブ処理の詳細な動作を示すフローチャート。 同上の始動口入賞サブ処理の詳細な動作を示すフローチャート。 同上の大当り判定サブ処理の詳細な動作の一部を示すフローチャート。 同上の大当り判定サブ処理の詳細な動作の他の一部を示すフローチャート。 同上の大当り判定サブ処理の詳細な動作のさらに他の一部を示すフローチャート。 同上の賞球払出サブ処理の詳細な動作を示すフローチャート。 同上の大当り遊技サブ処理の詳細な動作を示すフローチャート。 主基盤のROMに格納されているプログラムの配置の一例を示す図。 RST命令を2進数表現した図。 RST命令によるサブルーチンの呼び出し処理を説明するための図。 RST命令によるサブルーチンの呼び出し処理を説明するための図。 CALL命令とRST命令とのバイト数等を比較した図。 本発明の実施の形態1における主基盤のROMに格納されているプログラムの配置の一例を示す図。 同上のアドレステーブルの一例を示す図。 同上のアドレス決定処理の詳細な動作を示すフローチャート。
符号の説明
10 遊技機、 11 外枠、 12 前枠、 13 窓枠、 14 下皿、
15 上皿、 16 ハンドル台、 17 窓部、 18 スピーカ、
19 発射ハンドル、 21 表示サブ基盤、 22 音サブ基盤、 23 主基盤、
23a CPU、 23b ROM、 24 払出基盤、 36 本物特図表示器、
37 演出表示器、 38 保留ランプ、 40 始動口スイッチ、
41 大入賞口スイッチ、 42 大入賞口ソレノイド、 43 始動口ソレノイド

Claims (1)

  1. Z80用の命令セットを用いて作成されたプログラムにより遊技機の遊技機能を司る主制御基盤を備える遊技機であって、
    前記主制御基盤は、
    前記プログラムを記憶するメモリと、
    前記プログラムを実行するCPU(Central Processing Unit)とを備え、
    前記プログラムは、
    前記メモリの0000H番地に格納され、前記遊技機に対する電源投入時に作動を開始し、前記遊技機に対する初期化処理を実行するとともに、割り込みが発生した際の割り込み先アドレスに関するアドレスを割り込みレジスタに設定する電源投入時初期化モジュールと、
    一定時間間隔ごとに発生する割り込み時に作動し、前記電源投入時初期化モジュール実行時に前記割り込みレジスタに設定された前記アドレスにより定められる前記割り込み先アドレスをプログラム開始アドレスとし、少なくとも、大当り遊技を実行するか否かを決定するための大当りカウンタの値を更新する大当りカウンタ値更新サブモジュールと、始動口への遊技球の入賞検知結果に基づいて前記大当りカウンタの値を取得する大当りカウンタ値取得サブモジュールと、取得された前記大当りカウンタの値に基づいて、大入賞口が開制御される大当り遊技を実行するか否かを判定する大当り遊技判定サブモジュールと、前記大当り遊技判定サブモジュール実行時に大当り遊技を実行すると判定された場合に大当り遊技を実行する大当り遊技実行サブモジュールとを含むタイマ割り込み時モジュールと、
    先の割り込みにより作動した前記タイマ割り込み時モジュールの動作終了から、次の割り込みにより作動する前記タイマ割り込み時モジュールの動作開始までの間に繰返し作動する残余時間作動モジュールとを含み、
    前記タイマ割り込み時モジュールは、
    1回のタイマ割り込みで複数回呼び出され、RST命令の呼び先である前記メモリの2進数表現をした場合に1を含む番地に配置され、所定の処理を実行するサブルーチンと、
    前記サブルーチンを呼び出す命令であり、かつ前記1回のタイマ割り込みで複数回実行されるRST命令とを含み、
    前記残余時間作動モジュールは、予め定められたカウンタの値を更新するカウンタ値更新サブモジュールを含む
    ことを特徴とする遊技機。
JP2006265857A 2006-09-28 2006-09-28 遊技機 Pending JP2008080004A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006265857A JP2008080004A (ja) 2006-09-28 2006-09-28 遊技機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006265857A JP2008080004A (ja) 2006-09-28 2006-09-28 遊技機

Publications (1)

Publication Number Publication Date
JP2008080004A true JP2008080004A (ja) 2008-04-10

Family

ID=39351441

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006265857A Pending JP2008080004A (ja) 2006-09-28 2006-09-28 遊技機

Country Status (1)

Country Link
JP (1) JP2008080004A (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014073397A (ja) * 2013-11-26 2014-04-24 Daito Giken:Kk 遊技台
JP2014161421A (ja) * 2013-02-22 2014-09-08 Sophia Co Ltd 遊技機
JP2014161420A (ja) * 2013-02-22 2014-09-08 Sophia Co Ltd 遊技機
JP2015033584A (ja) * 2014-09-02 2015-02-19 株式会社大都技研 遊技台
JP2015057098A (ja) * 2014-10-29 2015-03-26 株式会社大都技研 遊技台
JP2015057097A (ja) * 2014-10-27 2015-03-26 株式会社大都技研 遊技台
JP2016187615A (ja) * 2016-07-07 2016-11-04 株式会社大都技研 遊技台
JP2017094214A (ja) * 2017-02-24 2017-06-01 株式会社ソフイア 遊技機
JP2018094127A (ja) * 2016-12-14 2018-06-21 株式会社ソフイア 遊技機
JP2020171351A (ja) * 2019-04-08 2020-10-22 株式会社藤商事 遊技機
JP2022010074A (ja) * 2018-06-01 2022-01-14 株式会社藤商事 遊技機
JP2022146109A (ja) * 2021-03-22 2022-10-05 株式会社三洋物産 遊技機
JP2022146108A (ja) * 2021-03-22 2022-10-05 株式会社三洋物産 遊技機

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014161421A (ja) * 2013-02-22 2014-09-08 Sophia Co Ltd 遊技機
JP2014161420A (ja) * 2013-02-22 2014-09-08 Sophia Co Ltd 遊技機
JP2014073397A (ja) * 2013-11-26 2014-04-24 Daito Giken:Kk 遊技台
JP2015033584A (ja) * 2014-09-02 2015-02-19 株式会社大都技研 遊技台
JP2015057097A (ja) * 2014-10-27 2015-03-26 株式会社大都技研 遊技台
JP2015057098A (ja) * 2014-10-29 2015-03-26 株式会社大都技研 遊技台
JP2016187615A (ja) * 2016-07-07 2016-11-04 株式会社大都技研 遊技台
JP2018094127A (ja) * 2016-12-14 2018-06-21 株式会社ソフイア 遊技機
JP2017094214A (ja) * 2017-02-24 2017-06-01 株式会社ソフイア 遊技機
JP2022010074A (ja) * 2018-06-01 2022-01-14 株式会社藤商事 遊技機
JP7295199B2 (ja) 2018-06-01 2023-06-20 株式会社藤商事 遊技機
JP2020171351A (ja) * 2019-04-08 2020-10-22 株式会社藤商事 遊技機
JP7284619B2 (ja) 2019-04-08 2023-05-31 株式会社藤商事 遊技機
JP2022146109A (ja) * 2021-03-22 2022-10-05 株式会社三洋物産 遊技機
JP2022146108A (ja) * 2021-03-22 2022-10-05 株式会社三洋物産 遊技機

Similar Documents

Publication Publication Date Title
JP2008080004A (ja) 遊技機
JP2008080005A (ja) 遊技機
JP2017077391A (ja) 遊技台
JP2017029332A (ja) 遊技台
JP2011200423A (ja) 遊技台
JP2017077390A (ja) 遊技台
JP2019024613A (ja) 遊技機
JP2004243037A (ja) 遊技機
JP5753478B2 (ja) 遊技機
JP2007222241A (ja) 遊技機
JP4961835B2 (ja) 遊技機
JP4788386B2 (ja) 遊技機
JP2017077453A (ja) 遊技台
JP3968249B2 (ja) 遊技機、予告演出プログラム、記憶媒体
JP2010158436A (ja) 遊技機の演出方法
JP2009178214A (ja) 遊技機
JP4504992B2 (ja) 遊技機
JP5672263B2 (ja) 遊技台
JP2019024615A (ja) 遊技機
JP6593398B2 (ja) 遊技機
JP2009153796A (ja) 遊技機
JP2009233140A (ja) 遊技機
JP2009050619A (ja) 遊技機
JP5411435B2 (ja) 遊技機
JP2015181881A (ja) 遊技台

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090818

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091215