JP2000126425A5 - - Google Patents

Download PDF

Info

Publication number
JP2000126425A5
JP2000126425A5 JP1998303885A JP30388598A JP2000126425A5 JP 2000126425 A5 JP2000126425 A5 JP 2000126425A5 JP 1998303885 A JP1998303885 A JP 1998303885A JP 30388598 A JP30388598 A JP 30388598A JP 2000126425 A5 JP2000126425 A5 JP 2000126425A5
Authority
JP
Japan
Prior art keywords
game
area
information
program
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP1998303885A
Other languages
Japanese (ja)
Other versions
JP4056150B2 (en
JP2000126425A (en
Filing date
Publication date
Application filed filed Critical
Priority to JP30388598A priority Critical patent/JP4056150B2/en
Priority claimed from JP30388598A external-priority patent/JP4056150B2/en
Publication of JP2000126425A publication Critical patent/JP2000126425A/en
Publication of JP2000126425A5 publication Critical patent/JP2000126425A5/ja
Application granted granted Critical
Publication of JP4056150B2 publication Critical patent/JP4056150B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の名称】遊技用演算処理装置[Title of the Invention] Arithmetic processor

【発明の名称】遊技用演算処理装置
【特許請求の範囲】
【請求項1】遊技プログラムを収めた不揮発性記憶手段と、
前記遊技プログラムを実行して遊技機の遊技制御を行う演算処理手段と、
前記遊技プログラムの実行に必要なデータ領域とスタック領域を含む作業領域を提供する揮発性記憶手段とを備えた遊技用演算処理装置において、
前記データ領域とスタック領域の間に該二つの領域に属さず且つ該二つの領域に接する少なくとも1バイト以上の使用禁止領域を確保するとともに、
該使用禁止領域のアドレス範囲がアクセスされた場合に所定の警報信号をアクティブにする監視手段を設け、
該警報信号のアクティブに応答させて前記演算処理手段の状態を所定の状態にすることを特徴とする遊技用演算処理装置。
【請求項2】前記所定の状態は、リセット状態であることを特徴とする請求項1記載の遊技用演算処理装置。
【請求項3】前記所定の状態は、動作用クロックの停止状態であることを特徴とする請求項1記載の遊技用演算処理装置。
【請求項4】前記所定の状態は、HALT状態であることを特徴とする請求項1記載の遊技用演算処理装置。
【発明の詳細な説明】
【0001】
【発明の属する技術分野】
本発明は、弾球遊技機(通称パチンコ遊技機)や回胴式遊技機(通称スロットル遊技機)などの遊技制御を司る遊技用演算処理装置に関し、特に法令(風営法第二十条:遊技機の規制及び認定等)の規定に反する不正な制御を排除して遊技業界全般の健全な発展に寄与する遊技用演算処理装置に関する。
【0002】
【従来の技術】
弾球遊技機や回胴式遊技機など(以下、遊技機という)の遊技制御は相当複雑であり、その制御手段としてマイクロコンピュータは欠かせない存在であるが、近年、マイクロコンピュータ特有の手口を用いた不正行為(例えば、裏ロムの組み込み)が後を絶たず、憂慮すべき社会問題となっている。
裏ロムとは、例えば、ある手順を行うと大当たりが発生するように改竄(かいざん)された遊技プログラムを収めたROMのことである。裏ロムが組み込まれた遊技機は一見して普通の台と変わらないうえ、大当たりの回数や出玉数が異常に多くならない限り不正の発見は困難である。
【0003】
そこで、特開平6−327831号公報には、遊技プログラムの実行アドレスを監視して、あらかじめ設定されたアドレスの上下限値を超えた場合に、不正なプログラム(改竄されたプログラム若しくは不正なアドレスをコールするバグを含むプログラム)であるとして、プログラムの停止等、所要の処置を講ずる旨の不正排除技術が記載されている。
【0004】
ところで、上記公報に記載された“アドレスの上下限値”は、同公報「0023」欄の「アプリケーションプログラムが作業領域を越えてプログラムを実行するとき・・・・装置の停止指令がCPU1に対し発せられ」からも明らかなように、RAMに確保された作業領域(ワーキングエリアとも言う)の上下限アドレスのことを指している。例えば、遊技機の技術基準によれば、パチンコ用の作業領域は256バイトと規定されているので、下限アドレスは「0000h」、上限アドレスは「00FFh」(10進表記で255)となり、また、スロットル用の作業領域は512バイトと規定されているので、下限アドレスは「0000h」、上限アドレスは「01FFh」(10進表記で511)となる。
【0005】
したがって、上記公報に記載の技術は、単に作業領域を越えたアドレスをコールするような不正な命令を含む遊技プログラム(改竄されたプログラム又はバグを含むプログラム)が実行されたときに、そのプログラムを停止するなどの所要の処置を講じるものであるから、かかる改竄プログラムを収めた裏ロムを排除できる効果は認められるものの、スタック領域を意図的にオーバーフローさせて隣接するデータ領域の一部を書き換えるといった新手の不正行為(以下便宜的に「意図的オーバフロー」という)にはまったく対処できないという不都合がある。
【0006】
ここで、上記不都合を理解する上で必要な背景技術を概説する。
図10は、マイクロコンピュータ一般のプログラム開発段階を示す図である。この図は、認証情報の書込み手続きを含まない点で、遊技機の開発スタイルと若干相違するが、純粋なプログラム開発だけに注目すればまったく同一である。
原始プログラムはマイクロコンピュータに対応したアセンブリ言語で記述されたソースプログラムである。この段階のプログラムは、デバッグ性などを考慮して可読性のあるシンボリックな表現になっており、例えば、アドレスはラベルと呼ばれる文字列で表記されている。アセンブラは原始プログラムを機械語に翻訳するツールである。機械語に翻訳されたプログラムは目的プログラムとも呼ばれ、命令はコードに、アドレス(ラベル)は対応する記憶装置の実アドレスに置き換えられているので、そのままマイクロコンピュータで実行することができる。
【0007】
目的プログラムは、例えば、汎用のアプリケーションプログラムのようにフロッピィディスクやCD−ROMなどの可搬型記憶媒体に収めて配布されることが多いが、遊技機では配布途中の改竄防止のためにROMに書き込まれるとともに、そのROMを遊技機内部の制御基盤に取り付けてから出荷する。また、前述の裏ロム対策として、ROMと一緒にCPUや周辺回路を一体化(ワンチップ化)することも行われている。
【0008】
図11は、RAMに確保される作業領域の構造図である。遊技機で用いられるプログラムは前述のようにアセンブリ言語で記述されている。そして、その命令の中には、レジスタのデータをスタックに退避させるPUSH命令や、戻り先番地のアドレスデータをスタック領域に退避させるとともに、呼び出し先のモジュールを実行するCALL命令などが用意されており、これらの命令が実行される度にスタック領域へデータが退避され、その結果、同領域内のA方向にデータが積み重ねられていく。すなわち、現在のスタック領域に確保されているデータがどの領域まで確保されているかを示すレジスタ(スタックポインタ)が、次第にAの方向へと値を変化させていくとともに、このレジスタで示される領域に新たなデータが格納されるという処理が行われることになる。
【0009】
また、これらの命令の実行後には、最終的にPOP命令(スタック領域のデータをレジスタに復帰させる命令)やRET命令(スタック領域に退避されていたアドレスデータが示す戻り先番地へ処理を戻す命令)が実行されるようプログラムが記述されており、これらの命令が実行される度にスタックポインタの値がAとは逆方向に変化する。
【0010】
ところで、前述のPUSH命令やCALL命令が、POP命令やRET命令よりも数多く実行されると、スタックポインタがデータ領域に侵入してしまい、PUSH命令やCALL命令の実行時にデータ領域の値を破壊(いわゆるオーバーフロー)しかねない。そのため、スタック領域は充分に確保しておくのが普通である。
【0011】
さて、以上の背景を理解した上で、本題の「意図的オーバフロー」の説明に戻ると、遊技機におけるデータ領域には、遊技制御に必要な各種変数が割り付けられ、また、スタック領域には一時的に退避されるデータや、サブルーチンの戻り先番地のアドレスデータが割り付けられる。
【0012】
データ領域に割り付けられた変数には、例えば、大当たり発生用の乱数データが含まれており、このデータが書き換えられた場合は、設定と異なる確率で大当たりが発生することになる。若しその大当たり確率が高ければ遊技者側に有利となり、低ければホール側に有利となるが、いずれにせよ該当法令の趣旨に反した不正な行為であることに変わりない。
【0013】
このような不正行為は前述の裏ロムでも可能である。正規の遊技プログラムを逆アセンブリ(目的プログラムから原始プログラムへ逆翻訳)し、その原始プログラムの適当な部分に乱数データを書き換えるルーチンを忍ばせた後、再び目的プログラムに翻訳して裏ロムに書き込めばよい。しかし、この方法ではプログラムの行数が増えてしまい、作業領域の最大アドレスが大きくなるため、前述の公報記載の技術で見破ることができる。
【0014】
【発明が解決しようとする課題】
しかしながら、あるハード的な仕掛け(詳細は後述)を施すことにより、プログラムのコードを一切変えることなく、したがって、前述の公報記載の技術でも見破られずに、「意図的オーバフロー」を起こすことができ、この意図的オーバフローによって、例えば、乱数用のデータが変化した場合には、上記の不正行為と同一の状況(大当たり確率の変化)が発生するという問題点がある。また、プログラムのバグによるスタック領域のオーバーフローが発生した場合にも同一の状況が発生するという問題点がある。
【0015】
そこで、本発明は、スタック領域のオーバフローを検出して、プログラムの停止等、所要の処置を講じることができ、以って遊技業界全般の健全な発展に寄与する遊技用演算処理装置の提供を目的とする。
【0016】
【課題を解決するための手段】
本発明は、遊技プログラムを収めた不揮発性記憶手段と、前記遊技プログラムを実行して遊技機の遊技制御を行う演算処理手段と、前記遊技プログラムの実行に必要なデータ領域とスタック領域を含む作業領域を提供する揮発性記憶手段とを備えた遊技用演算処理装置において、前記データ領域とスタック領域の間に該二つの領域に属さず且つ該二つの領域に接する少なくとも1バイト以上の使用禁止領域を確保するとともに、該使用禁止領域のアドレス範囲がアクセスされた場合に所定の警報信号をアクティブにする監視手段を設け、該警報信号のアクティブに応答させて前記演算処理手段の状態を所定の状態にすることを特徴とする。
また、前記所定の状態は、リセット状態、動作用クロックの停止状態若しくはHALT状態であることを特徴とする。
【0017】
【発明の実施の形態】
以下、本発明の実施の形態を、多数のパチンコ遊技機を設置した遊技店(以下「ホール」という)を例にして図面を参照しながら説明する。
1.ホールの全体構成
図1はホールの全体構成を示すブロック図である。図1において、1はホールであり、ホール1にはCR(カードリーダ)式の遊技機10j(jはa、b…;以下同様)が多数設置されたパチンコ島11、状態変化情報記録装置JR、補助状態変化情報記録装置JRs、履歴処理装置12、カウンタ用コンピュータCC、FAX装置13、事務所用コンピュータHC、プリンタ14、通信制御装置15〜18、玉計数機19、島金庫20、監視カメラシステム21、アナウンスシステム22及び設定・検査装置23が配置されている。なお、設定・検査装置23は、必要の都度、店内ネットワーク37に接続される。
【0018】
パチンコ島11は、情報収集BOXとも呼ばれる情報収集端末装置31a、31b(以下適宜に「情報収集端末装置31」で代表する)、遊技機10a、10b(同「遊技機10」)、カード式球貸装置32a、32b(同「カード式球貸装置32」)、球切装置33a、33b(同「球切装置33」)、パルスタンク34a、34b(同「パルスタンク34」)及びネットワーク中継装置35(例えば、ルータ)を備えている。なお、パチンコ島11はホール1に複数配置されるが、それぞれの“島”は類似(但し、島ごとに遊技機の機種が異なることが多い)の構成のため、ここでは1つのパチンコ島11について説明することにする。
【0019】
ネットワーク中継装置35は1つのパチンコ島11について、それぞれ1台ずつ配置されるが、その他の各装置(例えば、情報収集端末装置31、球切装置33、パルスタンク34)は遊技機10a、10bと同数だけ(すなわち、遊技機10と対をなして)配置されている。
【0020】
遊技機10a、10bは、遊技状態を制御する遊技制御装置41a、41b(以下適宜に「遊技制御装置41」で代表する)をそれぞれ有しており、遊技制御装置41は役物の制御を行う遊技用演算処理装置(図面では単に「演算処理装置」と表記している)200(これは、いわゆるアミューズチップ用のICであり、その詳細な構成は後述する)を内蔵している。遊技制御装置41は遊技制御基板やその基板を収納するケース等を含む。
【0021】
遊技機10の側方にはカード式球貸装置32が配置されており、プリペイドカード(PC)を使用した球の貸出し操作等は遊技機10で行うことが可能である。
球切装置33は遊技機10の補給タンクへパチンコ島11から球を補給するもので、例えば、球が10個補給される毎に1パルスとなる信号(後述の図2に示す補給球数信号)が球切装置33から出力される。パルスタンク34は遊技機10から外部に回収された遊技終了後の球を計数するもので、パルスタンク34からは、例えば、球の10個流出(回収)ごとに1パルスとなる信号(後述の図2に示す回収球数信号)が出力される。
【0022】
情報収集端末装置31a、31bは、それぞれ、PJ1及びPJ2並びに分配回路42a、42b(以下適宜に「分配回路42」で代表する)を備えている。分配回路42は遊技機10、カード式球貸装置32、球切装置33及びパルスタンク34に接続され、これらの各装置から入出力される信号をPJ1やPJ2に分配して転送する。例えば、分配回路42は、PJ1に対して売上信号、補給球数信号、回収球数信号、大当り信号、特図回転信号、確変信号及びアミューズ通信信号を分配して転送し、PJ2に対して打止信号、金枠開閉信号、木枠開閉信号、空皿信号(遊技機10の貯留タンクにパチンコ島11から補給される球量が少なくなったことを検出する信号)、異常信号(不正な電磁波を出す等の不正な磁気力及び電磁波を検出する信号)及び電源断信号を分配して転送する。
【0023】
PJ1は売上信号、補給球数信号、回収球数信号、大当り信号、特図回転信号及び確変信号並びに遊技制御装置41から入出力されるアミューズ通信信号に基づいて、自分が受け持つ遊技機10及び遊技設備装置より出力された遊技情報と、PJ2から転送された遊技情報(状態変化情報)とを併せて演算加工し、収集した遊技情報より遊技情報の変化を検出する処理等を行うとともに、遊技用演算処理装置200の正当性判定(真偽判定)も行うもので、その詳細なブロック構成は後述する。
【0024】
PJ2は遊技機10及び遊技設備装置より収集した主に遊技機10を監視するための状態変化情報(例えば、金枠開放信号、空皿信号等)をPJ1へ転送する処理やPJ1から発射停止要求があった場合に遊技機10を不能動化する処理等を行う。
ネットワーク中継装置35は、例えば、ルータ(Router)の機能を有し、島内ネットワーク36と店内ネットワーク37の各LON間を中継接続する装置である。島内ネットワーク36にはLON(米国エシャロン社によって開発されたLON(Local Operating Network:エシャロン社登録商標)が採用されている。
【0025】
パチンコ島11は店内ネットワーク37を介してJR、JRs、履歴処理装置12、CC、HC、通信制御装置15〜18及び設定・検査装置23と接続されている。店内ネットワーク37には同様にLONが採用される。
島内ネットワーク36、ネットワーク中継装置35及び店内ネットワーク37は、全体としてPJ1、PJ2、JR、CC及びHCの間を接続する通信網61(「LON通信網」ということもある)を構成する。
JRはホール1に1台ずつ設けられている。例えば、遊技機500台に対して1台設置されている。又は、複数階がある場合には各階毎に1台設置でもよい。JRは各パチンコ島11のPJ1から通報される遊技情報(状態変化情報)を遊技機毎に整理して記録し、JRsはJRをバックアップする。
【0026】
履歴処理装置12は通信網37に接続されているPJ1、PJ2、JR、JRs等からのエラー情報を記録する装置であり、エラー履歴を事後に分析して故障の発生したノード(PJ1、PJ2、JR、JRs等が接続されたノード)を特定するためのものである。
CCとしては、汎用のパーソナルコンピュータを使用することができる。CCは当日の遊技機10の状態変化情報をJR若しくはJRsをポーリングして収集し、状態変化を検出して表示する処理を行う。一般に状態変化情報の中で大当りや確率変動は、CCで当該事象が発生した遊技機10の詳細な遊技情報も確認したい場合が普通なので、この特定の状態変化の場合は直接に該当する遊技機10のPJ1から遊技情報を収集し、先の状態変化情報と併せて詳細な遊技情報を表示する。また、JRがトラブルを起こして情報を収集できない場合は、直ちにバックアップ用のJRsに切り替えて同様の情報収集と表示を行う。
さらに、CCで所望の遊技機10の遊技情報を確認したい場合は、直接該当するPJ1から遊技情報を収集して表示する機能もある。CCとHCとの間は専用のネットワークケーブル62(例えば、イーサネット)で接続されており、CCで売上や機種情報及び時系列情報等の経営情報を確認したい場合は、HCから当該情報を入手して表示できるようになっている。
なお、CCにはFAX装置13が接続されており、CCで収集分析した情報を所定の印刷フォーマットに加工して外部に送信可能である。
【0027】
HCにも汎用のパーソナルコンピュータを使用することができる。HCは当日や過去分の遊技情報を元にして経営判断に資する各種情報を生成するものであり、PJ1若しくはPJ2を所定間隔毎にポーリングして遊技情報を収集し、ハードディスクなどに記録するとともに、所定のフォーマットで表示したり印刷したりできるものである。また、HCで特定の遊技機10の遊技情報を確認したい場合は、直接該当するPJ1から遊技情報を収集して表示する機能もある。さらに、HCで遊技機10の状態変化情報(リアル系の情報)を確認したい場合は、ネットワークケーブル62を介してCCから当該情報を入手して表示することもできる。なお、HCにはプリンタ14が接続されており、収集した情報を所定のフォーマットで印刷可能である。CC及びHCは遊技店1の全体的な遊技情報を管理する管理装置を構成する。
【0028】
通信制御装置15〜18は玉計数機19、島金庫20、監視カメラシステム21及びアナウンスシステム22と店内ネットワーク37との間の通信インターフェースを行う装置である。
玉計数機19は遊技者が獲得した球(例えば、景品交換のため)の計数を行い、計数値をCC及びHCに転送するとともに、当該遊技者に対して景品交換用の計数結果紙片をプリントアウトして出力する。島金庫20はホール1に設けられた両替機や現金式球貸装置等から回収した硬貨及び紙幣を収納する装置であり、現在の収納金額をHC及びCCに逐一転送する。
監視カメラシステム21はホール1内に配置された監視カメラを管理して、撮像された画像を記録するシステムであり、アナウンスシステム22はホール1内のアナウンスを手動及び自動的に行うシステムである。
【0029】
設定・検査装置23には、例えばノート型のパーソナルコンピュータを使用することができる。設定・検査装置23は必要に応じて店内ネットワーク37に接続することができ、接続時にLON通信網のアカウントを自動取得し、任意のPJ1に接続された遊技機10(の遊技制御装置41に内蔵されている遊技用演算処理装置200)をアクセスして正当性判定のための固有IDを設定することができるものである。
既述のとおり、設定・検査装置23は“必要の都度”、店内ネットワーク37に接続される。必要の都度とは、例えば、新台に入れ替える場合であり、入れ替え後に設定・検査装置23を店内ネットワーク37に接続し、新台のPJ1を介してその台(入れ換えられた遊技機10)の遊技制御装置41に内蔵されている遊技用演算処理装置200をアクセスして正当性判定のための固有IDを設定する。
【0030】
なお、PJ1で遊技用演算処理装置200の正当性を判定する場合に、上記のような固有IDの判定に加えて、遊技プログラムを判定情報として使用してもよく、その場合には遊技用演算処理装置200に内蔵されている遊技プログラムと同一の基準遊技プログラムを設定・検査装置23からPJ1に設定する。PJ1は遊技用演算処理装置200から遊技プログラムを読み出し、設定された基準遊技プログラムと比較して正当性の判定を行う。
【0031】
2.PJ1の構成
次に、PJ1のブロック構成について説明する。図2はPJ1のブロック図である。図2において、PJ1はCPU51、ROM52、RAM53、EEPROM54、バックアップ電源55、発振回路56、通信制御装置57、出力インターフェース(I/F)58、入力インターフェース(I/F)59及びバス60を備えている。
【0032】
CPU51はROM52に格納されている処理プログラムに基づいて自分が受け持つ遊技機10及び遊技設備装置より出力された遊技情報と、PJ2より転送された遊技情報(状態変化情報)を併せて演算加工し、収集した遊技情報より遊技情報の変化を検出する処理等を行うとともに、遊技用演算処理装置200の正当性判定も行う。ROM52は遊技用演算処理装置200の正当性判定を行う処理プログラムや遊技情報の収集・加工等のための処理プログラムを格納しており、RAM53はワークエリアとして用いられる。
【0033】
EEPROM54は当該PJ1に接続された遊技用演算処理装置200の固有IDを記憶する。EEPROM54への固有IDの格納手続きは、設定・検査装置23によって行われる。また、EEPROM54は状態変化情報の監視用の設定値も記憶する。この設定値はCC若しくはHCによって設定される。
バックアップ電源55はRAM53の記憶情報を停電時も保持するための電源である。発振回路56はCPU51に制御クロック信号を供給し、通信制御装置57は島内ネットワーク36を介して当該PJ1と他のネットワーク端末との間の通信制御を行う。また、通信制御装置57には装置毎に異なる監視装置IDが格納されており、監視装置IDは情報の送受信を行う際に当該PJ1を識別するために使用される。
【0034】
出力インターフェース58は遊技機10とCPU51との間の出力インターフェース処理を行うもので、出力インターフェース58から遊技機10の遊技制御装置41に対してアミューズ通信信号(例えば、プログラム要求コマンド)が出力される。
入力インターフェース59は遊技機10及び遊技設備装置(球貸装置32等)とCPU51との間の入力インターフェース処理を行うもので、アミューズ通信信号、カード式の球貸装置32Cからのカードによる売上信号、現金式の球貸装置32Gからの現金による売上信号、球切装置33からの補給球数信号、パルスタンク34からの回収球数信号、遊技制御装置41からの特図回転信号(特図の回転を知らせる信号)、大当り信号、確変信号(確率変動中及び大当り遊技中に、それを知らせる信号)がそれぞれ入力されるようになっている。
ここで、PJ1及びPJ2は、全体として、遊技機10の遊技制御装置41に含まれる遊技用演算処理装置200の固有IDを監視して当該遊技用演算処理装置200の正当性を評価する監視装置を構成する。
【0035】
3.遊技機の構成
図3は遊技機10を示す図であり、遊技機10は額縁状の前面枠71と、ガラスを支持する金枠(ガラス枠)72と、遊技領域が形成された遊技盤73と、前面表示パネル74と、前面表示パネル74の下方に設けられた操作パネル75とを有している。前面枠71は遊技機10を設置している木製の機枠(図示略)に対して上部蝶番77及び下部蝶番78によって開閉可能に支持され、金枠72は前面枠71に開閉可能に支持されている。
【0036】
表示パネル74は一端側が前面枠71に開閉可能に支持され、賞球を受ける上皿81が形成されるとともに、上皿81の球を球貯留皿(受皿ともいう)82に移すために両者を接続する通路を開閉するための開閉レバー83が設けられている。操作パネル75には、灰皿84及び前述の球貯留皿82が形成されるとともに、球貯留皿82に貯留された球を外部下方に抜くための球抜きレバー85が設けられている。また、操作パネル75の右端部側には玉発射用の操作ノブ86が設けられており、遊技機10の前面枠71の上部には大当り時に点灯又は点滅する大当り表示器87が設けられている。
【0037】
遊技盤73には前面の略円形領域をガイドレール88で取り囲んだ遊技領域が形成されており、この遊技領域には、複数の識別情報(いわゆる特別図柄;以下「特図」という)を複数列で変動表示する特図表示装置89、大入賞口を有する特別変動入賞装置90、特図始動口として機能する普通変動入賞装置91(いわゆる普電)、普通変動入賞装置91に設けられた普通図柄(いわゆる普図;以下「普図」という)を表示する普図表示装置92、スルーチャッカー形式の複数の普図始動ゲート93、複数の一般入賞口94、風車と呼ばれる複数の打球方向変換部材96、左右のサイドランプ97、98、アウト穴99などが備えられている。
【0038】
そして、普通変動入賞装置91内の入賞流路には特図始動スイッチ100が、普図始動ゲート93内の通過流路には普図始動ゲートスイッチ101が、それぞれ設けられている。また、特別変動入賞装置90の大入賞口内における継続入賞流路には継続スイッチ102が、一般入賞流路にはカウントスイッチ103がそれぞれ設けられている(上記各スイッチは図4参照)。
【0039】
特図表示装置89の上部には前述した一般入賞口94が配置され、また、4個の特図始動記憶表示器105が設けられており、普通変動入賞装置91には、4個の普図始動記憶表示器106が設けられている。普図表示装置92は、例えば、一桁の数字を表示する7セグメントの表示部を有する液晶又はLED等よりなる表示器であり、この場合、普通図柄(普図)は一桁の数字である。始動記憶表示器105、106は、特図あるいは普図の始動記憶数をそれぞれ表示するものである。
【0040】
特図始動スイッチ100は普通変動入賞装置91に玉が入賞したことを検出し、普図始動ゲートスイッチ101は普図始動ゲート93を玉が通過したことを検出し、カウントスイッチ103は特別変動入賞装置90の大入賞口に入った全ての玉を検出し、継続スイッチ102は大入賞口に入った玉のうち継続入賞(いわゆるV入賞)した玉を検出する。
なお、遊技盤73の遊技領域には、天釘やヨロイ釘などと呼ばれる多数の障害釘が設けられているが、ここでは図面の輻輳を避けるために省略している。また、遊技盤73には、その他の各種装飾ランプやLED等が設けられていてもよい。
また、遊技盤における遊技領域の種類は、いわゆる「第1種」に属するものや図柄表示装置を備えた「第3種」に属するものを含め種々のものがあるが、本発明は何れの種類にも適用できる。要は、遊技制御を司る遊技用演算処理装置200を備えるものであればよい。ちなみに、本実施の形態のものは「第1種」に属するタイプである。
【0041】
4.遊技制御装置の構成
図4は遊技制御装置41のブロック図であり、遊技制御装置41は、パチンコ遊技等に必要な役物制御を行うマイクロコンピュータからなる遊技用演算処理装置200と、水晶の固有振動数を分周して所定のクロック信号を発生する発振器111と、そのクロック信号を更に分周して、例えば、2ms周期のパルス信号(リセット割込み信号RST)を発生する割込み信号発生回路112と、各種センサ信号を入力する入力インターフェース113と、各種駆動信号を出力する出力インターフェース114と、遊技に必要な効果音(機械音又は音声若しくはその双方)を生成するサウンドジェネレータ115と、サウンドジェネレータ115からの効果音信号を増幅して遊技機10の所定箇所に設置されたスピーカー116に出力するアンプ117と、遊技制御装置41と情報収集端末装置31j(図1の情報収集端末装置31a、31b参照)との間で信号の受け渡しを行う外部通信用端子118と、を含んで構成される。
【0042】
入力インターフェース113には、特図始動スイッチ100、普図始動ゲートスイッチ101、継続スイッチ102、カウントスイッチ103及びセーフセンサ104からの信号が入力される。セーフセンサ104は入賞した遊技球を検出する。出力インターフェース114からは、情報収集端末装置31に遊技情報を出力するための外部情報端子119、特図表示装置89の表示制御を行う表示制御装置120、特別変動入賞装置90である大入賞口を開閉駆動する大入賞口ソレノイド121、特図始動記憶表示器105、普図表示装置92、普通変動入賞装置91を駆動する普通電動役物ソレノイド122、普図始動記憶表示器106、入賞球に対応して賞球の排出を制御する賞球排出回路123、各種装飾ランプ、LED(例えばサイドランプ97、98等を含む装飾具)124に制御信号が出力される。
【0043】
5.遊技用演算処理装置200の構成
図5は遊技用演算処理装置200のブロック図である。図5において、遊技用演算処理装置200はいわゆるアミューズチップ用のICとして製造され、遊技制御を行う遊技領域部200Aと情報管理を行う情報領域部200Bに区分される。
【0044】
まず、遊技領域部200AはCPUコア201(演算処理手段)、ROM202(不揮発性記憶手段)、RAM203(揮発性記憶手段)、外部バスインターフェース204、乱数生成回路205、クロックジェネレータ206、リセット/割込制御回路207、アドレスデコーダ208、出力制御回路209、バス210及び監視回路211(監視手段)により構成される。
CPUコア201は遊技制御のための演算処理を行い、ROM202はその制御プログラム(遊技プログラム)を格納するとともに、所定領域に正当性確認情報を記憶している。正当性確認情報とは、遊技用演算処理装置200の正当性の簡易チェックを行う場合の情報であり、例えば、後述の書込終了コード、初期設定情報、メーカコード(遊技機の製造メーカ毎に割り振られた固有のコード)、認定コード及び固有IDを使用して所定の演算(例えば、各情報を加算演算したチェックサム、CRC等の演算)を行った結果値である。正当性確認情報は第3者機関あるいは遊技機の製造メーカがROM202に遊技プログラムを書き込む際に、所定の領域に書き込まれる。なお、遊技機の製造メーカが書き込む際には、その結果値だけが第3者機関から知らされる。
【0045】
遊技用演算処理装置200の簡易チェックを行う場合、遊技用演算処理装置200の電源立ち上がり時に、遊技用演算処理装置200自身が演算した演算値と、遊技プログラムが格納されているROM202の所定領域に予め書き込まれている正当性確認情報(すなわち、第3者機関等によって予め設定された結果値)とを比較判定することで、簡易的な遊技用演算処理装置200のチェックを可能にする構成になっている。
RAM203は、遊技領域部200Aにおける遊技プログラムに基づく処理を実行する際にワークエリア(作業領域)として用いられるものであり、データ領域とスタック領域を有する点で冒頭の従来例と一致するが、その領域間に「使用禁止領域」(図7参照)という特殊な領域を有する点で相違する。なお、使用禁止領域の役割や設定の仕方については後述する。
【0046】
外部バスインターフェース204は、16ビットのアドレス信号A0〜A15、8ビットのデータ信号D0〜D7、メモリリクエスト信号MREQ、入出力リクエスト信号IORQ、メモリ書込み信号WR、メモリ読み出し信号RD及びモード信号MODEなどの外部信号とのインターフェース処理を行うものである。例えば、MODE信号を[H]レベルにした状態で、アドレス信号A0〜A15を順次にインクリメントしながら、データ信号D0〜D7を加えると、ROM202への書き込みモードとなって遊技機の製造メーカあるいは第3者機関による遊技プログラムの書き込みが可能になる。なお、書き込みモードは遊技プログラムの書き込みを可能にするものであり、後述のブートプログラムを書き込みできるようにするものではない。また、ROM202への遊技プログラムの書き込みが終了すると、後述のパラメータメモリ213の所定領域に書込終了コードが記録(例えば、所定のコード若しくは所定ビットを物理的に切断することで記録)されるようになっており、パラメータメモリ213に書込終了コードが記録されている場合には、ROM202への遊技プログラムの書き込みができないようになっている。
【0047】
乱数生成回路205は遊技の実行過程において遊技価値(例えば、大当り)を付加するか否か等に係わる乱数(乱数は、大当たりの決定や停止時の図柄の決定等に使用)を生成するもので、一様性乱数を生成する数学的手法(例えば、合同法あるいはM系列法等)を利用している。本実施の形態では、機種に関連した情報を乱数生成の際における種値として利用する。
【0048】
クロックジェネレータ206は、発振器111からのクロック信号CLKを基に、CPUコア201を含む遊技用演算処理装置200の各ブロックに動作クロック信号を供給する。リセット/割込制御回路207は割り込み信号発生回路112からのリセット割り込み信号RST又は後述の監視回路211からの警報信号ALMなどの割り込み要求や、遊技制御装置41への電源投入を検出する回路(図示略)からの信号を検出してCPUコア201に知らせる。アドレスデコーダ208は内蔵デバイス及び内蔵コントロール/ステータスレジスタ群のロケーションをメモリマップドI/O方式及びI/OマップドI/O方式によりデコードする。出力制御回路209はアドレスデコーダ208からの信号制御を行って外部端子より8ビットのチップセレクト信号(CS0〜CS7)を外部に出力する。バス210はデータバス、アドレスバス及び制御バスを含むものであり、情報領域部200Bまで延びている。
【0049】
監視回路211はCPUコア201とRAM203の間でやり取りされるアドレス情報を監視し、そのアドレスの値がRAM203の使用禁止領域の範囲(本実施例では、0093h〜00BDh)に入っている場合に警報信号ALMをアクティブにするものであり、その構成は、図6に示すように、使用禁止領域の最大アドレス(00BDh)を保持する最大値レジスタ211aと、同領域の最小アドレス(0093h)を保持する最小値レジスタ211bと、これら二つの保持値を上下限基準値としてその範囲に含まれるアドレスデータがバス210の上で検出された場合に警報信号ALMをアクティブにするコンパレータ回路211cとを備えるというものである。なお、コンパレータ回路211cは、RAM203の書込み信号やメモリアクセス信号がアクティブのときに上記検出動作を行うようにしてもよい。
【0050】
次に、遊技用演算処理装置200における情報管理を行う情報領域部200Bは、ROM212、パラメータメモリ213、バスモニタ回路214、DPRAM215、セキュリティメモリ216、ステータスメモリ217、制御回路218、外部通信制御回路219、バス220、バッファ回路221及び遊技領域部200A側のバス210の一部を含んで構成される。
【0051】
ROM212はブートプログラムを格納しており、遊技用演算処理装置200の電源オン時には、まず、ブートプログラムが立ち上がって、所定の簡易チェックを行い、正常であれば遊技プログラムの所定のアドレス(便宜的に「スタートアドレス」という)に処理を渡すようになっている。パラメータメモリ213は書込終了コード及び初期設定情報を格納している。書込終了コードとは、先にも述べたとおり、ROM202に遊技プログラムを書き込んだことを示す情報である。また、初期設定情報とは、遊技機の製造メーカが遊技プログラムを書き込む際に、チップセレクト信号CS0〜CS7の用途(入力用/出力用)を設定するための情報であり、例えばCS0、CS1及びCS2を入力用にし、CS3、CS4、CS5、CS6及びCS7を出力用にするという情報である。
【0052】
DPRAM215は、バス210を介して遊技領域部200A側のRAM203の内容を複写(コピー)して記憶するもので、遊技領域部200A側及び情報領域部200B側の双方よりアクセスが可能な構成になっている。
バスモニタ回路214は、情報領域部200B側より遊技領域部200A側のバス210の状態監視及び制御を行う。ここでの制御とは、RAM203の内容をDPRAM215に複写する際のタイミング制御や、遊技プログラムを外部に出力する際(遊技領域部200A側のバス210を開放してROM202から遊技プログラムを読み込んで情報領域部200B側より外部に出力する際)のタイミング制御である。
【0053】
ここで、DPRAM215へのデータアクセスについて説明する。DPRAM215には遊技領域部200Aのバス210(アドレスバス、データバス及び制御バスを含む)がバッファ回路221を介して接続されており、RAM203の所定アドレスに情報を書き込む際に、DPRAM215の同一アドレスにも同一情報が書き込まれるように複写処理が行われる。但し、制御バスのうちRD信号(読み出し制御信号)はDPRAM215に接続されない。
【0054】
なお、情報の複写という点で、RAM203とDPRAM215については情報の書き込み速度や好ましい書き込みタイミングが異なることもあるので、DPRAM215側に接続されるアドレスバス、データバス及び制御バスにバッファ回路221を設け、そのバッファ回路221をバスモニタ回路214でコントロール(例えば、RAM203のデータをプールして書き込むタイミングを遅らせるような制御)するようにし、高速動作のRAM203の内容を確実にDPRAM215に複写する(高速動作のRAM203の内容を複写すればよいので、DPRAM215への複写タイミングは遅れてもバッファに複写内容を逐次入れておくことで確実な複写が可能である)。これにより、データのビット落ち等を防いで確実にデータの複写を行う。
【0055】
セキュリティメモリ216(例えば、EEPROMで構成)には遊技用演算処理装置200の識別や正当性の判定のために使用する固有ID、メーカコード(遊技機の製造メーカコード)及び認定コード(第3者機関により検査が合格した遊技機に付与される番号で認可された遊技機の認可コードである)が書き込まれている。セキュリティメモリ216は、遊技用演算処理装置200の固有情報(ここでは固有ID)を記憶する固有情報記憶手段を構成する。
【0056】
ステータスメモリ217は、制御回路218がDPRAM215の内容を参照して遊技情報の状態変化情報を検出して書き込むための記憶領域である。DPRAM215には遊技領域部200A側のRAM203に格納されている情報と同一の情報が同一のアドレスに書き込まれるようになっており、予め遊技領域部200A側のRAM203の特定アドレスに遊技情報を書き込むようにしておけば、情報領域部200B側ではDPRAM215よりその特定アドレスから情報を取得することで状態変化情報を得ることができる。このように取り決めをしておかないと、情報領域部200B側でRAM203の情報の内容がわからないからである。
【0057】
制御回路218は情報領域部200B側を制御するもので、バッファメモリ(図では単に「メモリ」と表記してある)を有している。制御回路218は、例えば、バスモニタ回路214を介してCPUコア201の動作を監視し、非動作中に遊技領域部200AのRAM203の内容を情報領域部200BのDPRAM215へコピーする。また、外部装置であるPJ1からのメモリ内容要求指令に応答して情報領域部200BのDPRAM215の内容を外部へ転送したり、遊技プログラム要求指令に応答してバスモニタ回路214を介してROM202内の遊技プログラムを外部へ転送したりする。制御回路218のメモリは、転送時のタイミング調節のために用いられる。
【0058】
外部通信制御回路219は前述のPJ1(図2参照)との通信を行うもので、例えば、外部からの指令に基づいて演算処理装置200内に格納されている情報(例えば、状態変化情報、遊技プログラム、書込終了コード及び固有ID等)を外部へ転送する等の処理を行う。なお、外部通信制御回路219から外部に転送される情報に対して暗号化処理を施してもよい。
遊技用演算処理装置200では、遊技領域部200Aと情報領域部200Bがバスモニタ回路214を介して独立して動作する。すなわち、情報領域部200B側は遊技領域部200AにおけるCPUコア201の作動に関係なく(プログラム実行に関係なく)動作可能である。
【0059】
6.遊技領域部200AのRAM203の構造
図7は、遊技領域部200AのRAM203の概念的な構造図である。RAM203の容量は、少なくとも、パチンコ遊技機の基準に合致した256バイトであり、この例では、0000hから0092hまでをデータ領域203aに割り当て、00BEhから00FFhまでをスタック領域203bに割り当て、且つ、その間の残りの部分(0093hから00BDh)を使用禁止領域203cに割り当てているが、これに限定されない。要は、データ領域203aとスタック領域20bの間に間隔を空けずに使用禁止領域203cを設定すればよい。また、使用禁止領域203cの大きさも図示の例に限らない。少なくとも1バイト以上あればよい。
【0060】
7.使用禁止領域203cの設定
図8は、遊技領域部200AのRAM203に使用禁止領域203cを設定するためのフローチャートである。このフローチャートは、電源投入時のブートプログラム実行後(但し、正当性の確認後)又はCPUコア201に対する割込み要求発生時(システムリセットやユーザリセットの発生時若しくは監視回路211からの警報信号ALMがアクティブになった時)に実行される。
【0061】
フローチャートを実行すると、まず、RAM203に設定する使用禁止領域203cの範囲を指定するとともに、その上下限値(ここでは、0093hと00BDh)を監視回路211の最大値レジスタ211aと最小値レジスタ211bにセット(S1)した後、現在のスタック領域203bの先頭アドレス(スタックポインタ)をCPUコア201の所定のレジスタにセットする(S2)。次に、RAM203のデータ領域203aの値(データ領域203aに設定された所定の検査領域の値でもよい)を読み込み、その値が電源投入直後の不定値であるか否かを判定する(S3)。そして、不定値であればデータ領域203aに初期値をセット(S4)した後、リセット待機状態に移行し(S6)、不定値でなければ遊技プログラムを実行する(S5)。なお、回胴式遊技機(スロットマシン)の場合は、遊技制御装置41の内部に割込み信号発生回路112が存在せず(すなわち、リセット割込み信号RSTが存在せず)、リセット/割り込み制御回路207が監視回路211からの警報信号ALMなどの割込み要求や、遊技制御装置41への電源投入によってCPUコア201をリセットする構成となっているため、回胴式遊技機の遊技制御のフローチャートは、図9に示すように、データ領域の不定値判定及び初期値設定並びにリセット待機処理がない点を除きパチンコ遊技機と実質同一である。
【0062】
8.使用禁止領域203cの利用法
上記のとおり、本実施の形態では、電源投入時のブートプログラム実行後(但し、正当性の確認後)又はCPUコア201に対する割込み要求発生時(割込み信号発生回路112からのリセット割込み信号RSTの発生時若しくは監視回路211からの警報信号ALMがアクティブになった時)に実行される図8のプログラムによって、RAM203のデータ領域203aとスタック領域203bの間に使用禁止領域203cが設定され、且つ、その使用禁止領域203cの上下限アドレス(0093hと00BDh)が監視回路211の最大値レジスタ211aと最小値レジスタ211bにセットされる。そして、監視回路211のコンパレータ回路211cで、バス210上のアドレスと上記上下限アドレスとが比較され、上下限アドレスの間に入るアドレスが検出された場合に、使用禁止領域203へのアクセスが発生したとして、警報信号ALMがアクティブになってCPUコア201にリセット割り込みがかけられる。
【0063】
したがって、あるハード的な仕掛け(後述の注記を参照)によって意図的オーバーフローが発生した場合には、バス210上のアドレスが使用禁止領域203cの中に入り、最大値レジスタ211aよりも小さいアドレスが検出されるから、直ちにCPUコア201にリセット割り込みをかけて遊技プログラムを初期状態に戻すことができ、その結果、ゲームの継続をストップして不正行為を排除できるという効果が得られる。また、意図的ではなくてもバグ等の要因によってスタック領域203cがオーバフローした場合でも、同様に、バス210上のアドレスが使用禁止領域203cの中に入り、最大値レジスタ211aよりも小さいアドレスが検出されるから、CPUコア201にリセット割り込みをかけることができる。
【0064】
なお、以上の例では、バス210上のアドレスが使用禁止領域203cの中に入ったことを検出してCPUコア201にリセット割り込みをかけている(リセット状態にする)が、これに限らない。プログラムカウンタの値が使用禁止領域203cの中に入ったことを検出してCPUコア201にリセット割り込みをかけてもよい。
【0065】
また、使用禁止領域203cの中に入った場合の対策もリセット状態にすることだけに限らない。積極的には、不正な行為若しくはバグによる異常な制御を続けられなくすればよく、例えば、監視回路211からの警報信号ALMを発振器111に引き込み(図4参照)、警報信号ALMのアクティブに応答して発振器111の動作を停止(又はクロックジェネレータ206の動作を停止)させるようにしたり、あるいは、警報信号ALMのアクティブに応答してCPUコア201をHALT状態にし、その動作を停止させるようにしてもよい。又は、消極的には、遊技制御をそのまま継続しつつ、さりげなく店内に警報を発し、不正行為の充分な証拠を固めた後で、店員等によって人為的に対処してもよい。
【0066】
注記:
遊技プログラムのコードをまったく変えずに意図的オーバーフローを発生させるためのハード的な仕掛けとは、特に限定しないが、例えば、次のようなものである。
まず、前提条件として、対象となる遊技プログラムが以下の処理を行っているものとする。すなわち、遊技制御装置の特定の入力信号(例えば、特図始動スイッチ100の信号)がアクティブになっている間、割込み信号発生回路112でリセット割り込み信号が発生する度に、その割り込み信号の回数だけスタック領域を確保する処理を行っているものとする。
【0067】
いま、特定の入力信号のアクティブ期間を10msとし、リセット割り込み信号の発生周期を2msとすると、特定の入力信号の1アクティブ期間では5回のリセット割り込みしかかからないから、その分のスタック領域を確保しておけば充分であり、遊技機を使用する上で何ら問題がない。しかし、何らかの不正行為によって上記特定の入力信号のアクティブ期間が広げられた場合、例えば、不正に利益を得ようとする遊技者が、この入力信号を発するスイッチを正規なものから不正なものに付け替えて、アクティブ期間が10倍となる100msに広げるような改造を行った場合には、スタック領域も10倍必要になるが、スタック領域にも自ずと限界があるから、充分なスタック領域を確保できない以上、意図的オーバーフローが発生する可能性がある。
【0068】
【発明の効果】
本発明によれば、データ領域とスタック領域の間に使用禁止領域を確保し、この使用禁止領域のアドレス範囲がアクセスされた場合に、演算処理手段を所定の状態(リセット状態、動作用クロックの停止状態又はHALT状態)にするようにしたから、使用禁止領域よりも上位側のアドレスに位置するスタック領域のオーバーフロー発生時に演算処理手段を所定の状態にすることができる。
したがって、意図的オーバフローを検出して、プログラムの停止等、所要の処置を講じることができ、以って遊技業界全般の健全な発展に寄与する遊技用演算処理装置を提供できるとともに、バグに起因するオーバーフローも検出して、プログラムの停止等、所要の処置を講じることができる。
【図面の簡単な説明】
【図1】ホールの全体構成を示すブロック図である。
【図2】PJ1のブロック図である。
【図3】遊技機の正面図である。
【図4】遊技制御装置のブロック図である。
【図5】遊技用演算処理装置のブロック図である。
【図6】監視回路のブロック図である。
【図7】使用禁止領域を含む作業領域の構造図である。
【図8】使用禁止領域の設定処理プログラムのフローチャート(弾球式遊技機用)である。
【図9】使用禁止領域の設定処理プログラムのフローチャート(回胴式遊技機用)である。
【図10】マイクロコンピュータ一般のプログラム開発段階を示す図である。
【図11】従来の作業領域の構造図である。
【符号の説明】
ALM 警報信号
201 CPUコア(演算処理手段)
202 ROM(不揮発性記憶手段)
203 RAM(揮発性記憶手段)
203a データ領域
203b スタック領域
203c 使用禁止領域
211 監視回路(監視手段)
[Title of the Invention]Arithmetic processor
[Claim of claim]
1. A non-volatile storage means containing a game program,
Arithmetic processing means for executing the gaming program and performing gaming control of a gaming machine;
A game processing apparatus comprising: a data area required to execute the game program; and volatile storage means for providing a work area including a stack area,
At least one byte of non-use area not belonging to the two areas and in contact with the two areas is secured between the data area and the stack area.
Monitoring means for activating a predetermined alarm signal when the address range of the prohibited area is accessed;
A game processing unit characterized in that the state of the processing means is brought into a predetermined state in response to the activation of the alarm signal.
2. The game processing apparatus according to claim 1, wherein the predetermined state is a reset state.
3. The game processing apparatus according to claim 1, wherein the predetermined state is a stop state of an operation clock.
4. A game processing apparatus according to claim 1, wherein said predetermined state is a HALT state.
Detailed Description of the Invention
[0001]
Field of the Invention
The present invention is a game operation for controlling a game such as a ball and ball game machine (generally called pachinko machine) and a drum-type game machine (generally called throttle game machine).Processing unitGame operations that contribute to the sound development of the gaming industry as a whole, excluding illegal control that violates the provisions of laws and regulations (Article 20 of the Enforcement Law: Regulations and Qualifications of Gaming Machines, etc.)Processing unitAbout.
[0002]
[Prior Art]
Game control of ball and ball game machines and drum-type game machines (hereinafter referred to as game machines) is quite complicated, and a microcomputer is indispensable as its control means, but in recent years, it has become a unique feature of microcomputers. The misbehavior used (for example, the incorporation of the back rom) has not stopped and has become a worrying social issue.
The back ROM is, for example, a ROM that contains a gaming program that has been tampered with to generate a jackpot when a certain procedure is performed. At first glance, the gaming machine incorporating the back rom is not different from a normal stand, and it is difficult to detect fraud unless the number of jackpots and the number of balls are extraordinarily large.
[0003]
Therefore, according to Japanese Patent Application Laid-Open No. 6-327831, the execution address of the game program is monitored, and when the upper and lower limit values of the address set in advance are exceeded, an illegal program (a tampered program or an illegal address It is described that the program includes the bug to be called, the fraud elimination technology for taking the required action such as stopping the program.
[0004]
By the way, "upper and lower limit value of address" described in the above-mentioned gazette is "when the application program executes the program beyond the work area in the column" 0023 "of the same gazette ... ... stop command of the device to CPU 1 As is apparent from “Issued”, it refers to upper and lower limit addresses of a work area (also referred to as a working area) secured in the RAM. For example, according to the technical standards of gaming machines, the working area for pachinko is defined as 256 bytes, so the lower limit address is "0000h" and the upper limit address is "00FFh" (255 in decimal notation). Since the working area for the throttle is defined as 512 bytes, the lower limit address is "0000h" and the upper limit address is "01FFh" (511 in decimal notation).
[0005]
Therefore, the technology described in the above-mentioned publication, when a gaming program (a tampered program or a program containing a bug) including an illegal instruction that merely calls an address beyond the work area is executed, Since the required action such as stopping is taken, the effect of eliminating the back ROM containing such a tampering program is recognized, but the stack area is intentionally overflowed to rewrite a part of the adjacent data area. There is a disadvantage that it is impossible to cope with the fraudulent activity of the newcomer (hereinafter referred to as "intentional overflow" for convenience).
[0006]
Here, the background art necessary to understand the above disadvantages is outlined.
FIG. 10 is a diagram showing a program development stage of a microcomputer in general. This figure is somewhat different from the development style of the gaming machine in that it does not include the writing procedure of the authentication information, but it is completely the same if only pure program development is focused.
The source program is a source program written in an assembly language corresponding to a microcomputer. The program at this stage is a readable symbolic expression in consideration of debugging and the like. For example, the address is represented by a character string called a label. An assembler is a tool for translating a source program into machine language. The program translated into the machine language is also called a target program, and the instruction is replaced by a code, and the address (label) is replaced by the real address of the corresponding storage device, so that it can be executed by the microcomputer as it is.
[0007]
For example, the target program is often distributed by being stored in a portable storage medium such as a floppy disk or a CD-ROM like a general purpose application program, but in the gaming machine, it is written in the ROM to prevent tampering during distribution. The ROM is attached to the control base inside the gaming machine and then shipped. In addition, as a countermeasure against the above-mentioned back ROM, integrating a CPU and peripheral circuits together with the ROM (in one chip) is also performed.
[0008]
FIG. 11 is a structural diagram of a work area secured in the RAM. The program used in the gaming machine is described in assembly language as described above. Among the instructions, a PUSH instruction to save register data to the stack, a CALL instruction to save the address data of the return address to the stack area, and a call destination module are prepared. Each time these instructions are executed, data is saved to the stack area, and as a result, data is stacked in the A direction in the same area. That is, a register (stack pointer) indicating to which area the data secured in the current stack area is secured gradually changes the value in the direction of A, and the area indicated by this register Processing is performed to store new data.
[0009]
After these instructions are executed, the POP instruction (instruction to restore data in the stack area to the register) or RET instruction (instruction to return the process to the return address indicated by the address data saved in the stack area) The program is written such that is executed, and the value of the stack pointer changes in the opposite direction to A each time these instructions are executed.
[0010]
By the way, when the above PUSH and CALL instructions are executed more than the POP and RET instructions, the stack pointer intrudes into the data area and destroys the value of the data area when the PUSH or CALL instruction is executed ( So-called overflow). Therefore, it is usual to secure a sufficient stack area.
[0011]
Now that the background of the above is understood, returning to the explanation of "intentional overflow" of the main subject, various variables necessary for game control are allocated to the data area in the gaming machine, and the stack area is temporarily allocated The data to be saved and the address data of the return address of the subroutine are allocated.
[0012]
The variables allocated to the data area include, for example, random number data for jackpot occurrence, and when this data is rewritten, jackpot occurs with a probability different from the setting. If the jackpot probability is high, it will be advantageous to the player side, and if it is low, it will be advantageous to the hall side, but in any case it will be unfair act contrary to the purpose of the applicable law.
[0013]
Such cheating is also possible with the above-mentioned back ROM. After the regular game program is disassembled (reverse translation from the target program to the source program) and the appropriate part of the source program rewrites the random number data routine, the target program may be translated and written to the target program again. . However, with this method, the number of program lines increases, and the maximum address of the work area increases, so it can be overlooked by the technique described in the above-mentioned publication.
[0014]
[Problems to be solved by the invention]
However, by applying a certain hardware mechanism (details will be described later), it is possible to cause "intentional overflow" without changing the code of the program at all, and therefore without being able to detect even the technique described in the above-mentioned publication. Due to this intentional overflow, for example, when data for random numbers is changed, there is a problem that the same situation (change in jackpot probability) as the above-mentioned fraud occurs. Also, there is a problem that the same situation occurs even when a stack area overflow occurs due to a program bug.
[0015]
Therefore, the present invention can detect overflow of the stack area and take necessary measures such as stopping the program, thereby providing a game processing device which contributes to the sound development of the gaming industry as a whole. To aim.
[0016]
[Means for Solving the Problems]
The present invention is a work including nonvolatile storage means containing a game program, operation processing means for executing the game program and performing game control of a gaming machine, and a data area and a stack area necessary for the execution of the game program. In a game processing apparatus provided with volatile storage means for providing an area, at least one byte or more prohibited area not belonging to the two areas between the data area and the stack area and in contact with the two areas. Monitoring means for activating a predetermined alarm signal when the address range of the use prohibition area is accessed, and responding to the activation of the alarm signal, the state of the arithmetic processing means is in a predetermined state. It is characterized by
Also,The predetermined state may be a reset state, a stop state of the operation clock, or a HALT state.
[0017]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, an embodiment of the present invention will be described with reference to the drawings, taking a game arcade (hereinafter referred to as a "hole") in which a large number of pachinko machines are installed.
1. Overall configuration of the hall
FIG. 1 is a block diagram showing the overall configuration of the hole. In FIG. 1, reference numeral 1 denotes a hole, and a pachinko island 11 in which a large number of CR (card reader) type game machines 10j (j is a, b, etc .; the same applies hereinafter) are installed in the hole 1; , Auxiliary state change information recording apparatus JRs, history processing apparatus 12, computer for counter CC, FAX apparatus 13, computer HC for office, printer 14, communication control apparatus 15 to 18, ball counter 19, island safe 20, monitoring camera A system 21, an announcement system 22, and a setting / inspection apparatus 23 are disposed. The setting / inspection apparatus 23 is connected to the in-store network 37 whenever necessary.
[0018]
The pachinko island 11 includes information collecting terminal devices 31a and 31b (also referred to as “information collecting terminal device 31” hereinafter as appropriate), game machines 10a and 10b (the same “game machine 10”), and card-type balls. Lending devices 32a and 32b (the "card type ball lending device 32"), ball cutting devices 33a and 33b (the "ball cutting devices 33"), pulse tanks 34a and 34b (the "pulse tanks 34") and network relay devices 35 (for example, a router). In addition, although a plurality of pachinko islands 11 are arranged in the hall 1, each “island” is similar (although the type of gaming machine is often different for each island), one pachinko island 11 is used here. Will be explained.
[0019]
Although one network relay device 35 is disposed for each pachinko island 11, each of the other devices (for example, the information collecting terminal device 31, the ball cutting device 33, and the pulse tank 34) is provided with the game machines 10a and 10b. The same number (that is, paired with the gaming machine 10) is arranged.
[0020]
The gaming machines 10a and 10b each have gaming control devices 41a and 41b (hereinafter represented as appropriate by the "playing control device 41") for controlling the gaming state, and the gaming control device 41 controls the characters. A game processing unit (referred to simply as a "processing unit" in the drawings) 200 (this is an IC for so-called amuse chips, the detailed configuration of which will be described later) is incorporated. The game control device 41 includes a game control board, a case for storing the board, and the like.
[0021]
A card-type ball lending device 32 is disposed on the side of the gaming machine 10, and it is possible for the gaming machine 10 to perform a lending operation and the like of a ball using a prepaid card (PC).
The ball-cutting device 33 supplies balls from the pachinko island 11 to the supply tank of the gaming machine 10. For example, a signal which becomes one pulse every 10 balls are supplied (supplement ball number signal shown in FIG. Is output from the ball cutting device 33. The pulse tank 34 counts balls after the end of the game collected from the gaming machine 10 to the outside, and for example, a signal that becomes one pulse every 10 balls (collected) from the pulse tank 34 (described later The collected ball number signal shown in FIG. 2 is output.
[0022]
The information collection terminal devices 31a and 31b respectively include PJ1 and PJ2 and distribution circuits 42a and 42b (hereinafter represented by the “distribution circuit 42” as appropriate). The distribution circuit 42 is connected to the game machine 10, the card-type ball lending device 32, the ball cutting device 33 and the pulse tank 34, and distributes and transfers signals input and output from these devices to PJ1 and PJ2. For example, the distribution circuit 42 distributes and transfers the sales signal, the supplied ball number signal, the collected ball number signal, the big hit signal, the special figure rotation signal, the probability change signal, and the amuse communication signal to PJ1, and transmits to PJ2. Stop signal, metal frame open / close signal, wooden frame open / close signal, empty plate signal (signal that detects that the amount of balls supplied from the pachinko island 11 to the storage tank of the game machine 10 is reduced), abnormal signal (illegal electromagnetic wave Distribute and transmit illegal magnetic force and electromagnetic wave detection signals) and power-off signals.
[0023]
PJ 1 is based on the sales signal, the number of balls supplied, the number of collected balls, the big hit signal, the special view rotation signal and the probability change signal, and the amusement communication signal received from the game control device 41. The game information output from the facility device and the game information (state change information) transferred from PJ 2 are arithmetically processed together, and processing of detecting a change in the game information from the collected game information is performed, and so on The validity determination (true / false determination) of the arithmetic processing unit 200 is also performed, and the detailed block configuration will be described later.
[0024]
The PJ 2 transfers to the PJ 1 the status change information (for example, a gold frame open signal, an empty tray signal, etc.) collected mainly from the gaming machine 10 and the gaming facility device for monitoring the gaming machine 10 If there is a problem, the game machine 10 is inactivated.
The network relay device 35 has, for example, the function of a router (Router), and is a device that relays and connects between the LON of the in-island network 36 and the in-store network 37. For the intra-island network 36, LON (Local Operating Network: registered trademark of Eshalon, developed by Echelon, USA) is employed.
[0025]
The pachinko island 11 is connected to the JR, JRs, history processing device 12, CC, HC, communication control devices 15 to 18 and the setting / inspection device 23 via the in-store network 37. The in-store network 37 similarly employs LON.
The in-island network 36, the network relay device 35, and the in-store network 37 collectively constitute a communication network 61 (sometimes referred to as "LON communication network") connecting PJ1, PJ2, JR, CC and HC.
One JR is provided in Hall 1 each. For example, one for every 500 gaming machines is installed. Alternatively, if there are multiple floors, one may be installed for each floor. The JR organizes and records gaming information (state change information) notified from the PJ 1 of each pachinko island 11 for each gaming machine, and the JRs back up the JR.
[0026]
The history processing device 12 is a device that records error information from PJ1, PJ2, JR, JRs, etc. connected to the communication network 37, analyzes the error history afterward, and generates failure nodes (PJ1, PJ2, JR, JRs, etc. are connected to identify nodes).
A general-purpose personal computer can be used as the CC. The CC polls JR or JRs to collect status change information of the gaming machine 10 on the day, and performs processing for detecting and displaying the status change. In general, in the case of a big hit or probability change in the state change information, it is normal to check the detailed game information of the gaming machine 10 in which the event has occurred in the CC, so in the case of this specific state change Game information is collected from 10 PJ 1 and detailed game information is displayed together with the previous state change information. Also, if JR causes trouble and can not collect information, it immediately switches to backup JRs and performs similar information collection and display.
Furthermore, there is also a function of collecting and displaying game information from the corresponding PJ 1 directly when it is desired to confirm the game information of the desired game machine 10 by CC. If CC and HC are connected by a dedicated network cable 62 (for example, Ethernet) and you want to check management information such as sales, model information and time series information by CC, obtain the information from HC. Can be displayed.
The fax machine 13 is connected to the CC, and the information collected and analyzed by the CC can be processed into a predetermined print format and transmitted to the outside.
[0027]
General-purpose personal computers can also be used for HC. The HC generates various information that contributes to management judgment based on game information of the day and the past, polls PJ1 or PJ2 at predetermined intervals to collect game information, and records it on a hard disk etc. It can be displayed or printed in a predetermined format. In addition, there is also a function of collecting and displaying game information from the corresponding PJ 1 directly when it is desired to check the game information of a specific game machine 10 by HC. Furthermore, when it is desired to confirm state change information (real system information) of the gaming machine 10 by HC, the information can be obtained from CC and displayed via the network cable 62. A printer 14 is connected to the HC, and the collected information can be printed in a predetermined format. The CC and the HC constitute a management device that manages the overall game information of the game arcade 1.
[0028]
The communication control devices 15 to 18 are devices that perform communication interfaces between the ball counter 19, the island safe 20, the monitoring camera system 21 and the announcement system 22 and the in-store network 37.
The ball counter 19 counts balls acquired by the player (for example, for prize exchange), transfers the counted values to CC and HC, and prints a piece of counting result for prize exchange to the player. Out and output. The island safe 20 is a device for storing coins and bills collected from a money changer, a cash-type ball lending device, etc. provided in the hall 1, and transfers the current storage amount to HC and CC one by one.
The surveillance camera system 21 is a system that manages surveillance cameras disposed in the hall 1 and records captured images, and the announcement system 22 is a system that manually and automatically announces in the hall 1.
[0029]
For example, a laptop personal computer can be used as the setting / inspection apparatus 23. The setting / testing device 23 can be connected to the in-store network 37 as needed, automatically acquires an account of the LON communication network at the time of connection, and is incorporated in the game control device 41 of the gaming machine 10 connected to any PJ 1 It is possible to access the game processor 200) and set a unique ID for legitimacy determination.
As described above, the setting / inspection apparatus 23 is connected to the in-store network 37 "as needed." Every time it is necessary is, for example, when replacing with a new base, and after replacement, the setting / inspection device 23 is connected to the in-store network 37 and the gaming control device of that base (replaced gaming machine 10) via PJ1 of the new base. 41 is accessed to set the unique ID for determining the legitimacy.
[0030]
In addition to the determination of the unique ID as described above, the game program may be used as determination information when determining the legitimacy of the game processing device 200 by PJ 1, in which case the game calculation The same reference game program as the game program built in the processing device 200 is set from the setting / inspection device 23 to PJ 1. The PJ 1 reads the game program from the game processing unit 200, and determines the legitimacy by comparing it with the set reference game program.
[0031]
2. Configuration of PJ1
Next, the block configuration of PJ 1 will be described. FIG. 2 is a block diagram of PJ1. In FIG. 2, PJ1 includes a CPU 51, a ROM 52, a RAM 53, an EEPROM 54, a backup power supply 55, an oscillation circuit 56, a communication control device 57, an output interface (I / F) 58, an input interface (I / F) 59 and a bus 60. There is.
[0032]
Based on the processing program stored in the ROM 52, the CPU 51 performs arithmetic processing on the game information (state change information) transferred from the game machine 10 and the game facility apparatus that the game machine itself and the game equipment device are responsible for. While performing the process etc. which detect the change of game information from the collected game information, the legitimacy determination of the game arithmetic processing apparatus 200 is also performed. The ROM 52 stores a processing program for determining the legitimacy of the game processing processor 200 and a processing program for collecting / processing game information, etc. The RAM 53 is used as a work area.
[0033]
The EEPROM 54 stores the unique ID of the game processor 200 connected to the PJ 1. The procedure for storing the unique ID in the EEPROM 54 is performed by the setting / inspection apparatus 23. The EEPROM 54 also stores setting values for monitoring state change information. This setting value is set by CC or HC.
The backup power supply 55 is a power supply for holding the storage information of the RAM 53 even during a power failure. The oscillation circuit 56 supplies a control clock signal to the CPU 51, and the communication control device 57 controls communication between the PJ 1 and other network terminals via the intra-island network 36. Further, in the communication control device 57, different monitoring device IDs are stored for each device, and the monitoring device ID is used to identify the PJ1 when transmitting and receiving information.
[0034]
The output interface 58 performs an output interface process between the gaming machine 10 and the CPU 51, and an output communication signal (for example, a program request command) is output from the output interface 58 to the game control device 41 of the gaming machine 10. .
The input interface 59 performs an input interface process between the gaming machine 10 and the gaming facility device (the ball lending device 32 or the like) and the CPU 51, and includes an amuse communication signal and a sales signal by a card from the card type ball lending device 32C. A cash sales signal from a cash-type ball lending device 32G, a replenishment ball number signal from a ball cutting device 33, a recovered ball number signal from a pulse tank 34, a special figure rotation signal from a game control device 41 ), A jackpot signal, and a probability variation signal (signal for notifying the probability fluctuation and the jackpot game) are respectively input.
Here, PJ1 and PJ2 monitor the unique ID of the game processing unit 200 included in the game control device 41 of the game machine 10 as a whole, and evaluate the legitimacy of the game processing unit 200. Configure
[0035]
3. Configuration of gaming machine
FIG. 3 is a view showing the gaming machine 10. The gaming machine 10 has a frame-shaped front frame 71, a metal frame (glass frame) 72 for supporting glass, a game board 73 in which a game area is formed, and a front display A panel 74 and an operation panel 75 provided below the front display panel 74 are provided. The front frame 71 is supported openably and closably by upper hinges 77 and lower hinges 78 with respect to a wooden machine frame (not shown) in which the game machine 10 is installed, and the metal frame 72 is supported openably and closably by the front frame 71 ing.
[0036]
The display panel 74 is supported at one end side so as to be openable and closable by the front frame 71, and an upper plate 81 for receiving the award balls is formed, and both are transferred to the ball storage plate (also referred to as a saucer) 82. An opening and closing lever 83 is provided for opening and closing the passage to be connected. The operation panel 75 is provided with an ashtray 84 and the above-mentioned ball storage tray 82, and is provided with a ball release lever 85 for extracting the balls stored in the ball storage tray 82 downward. A control knob 86 for ball release is provided on the right end side of the control panel 75, and a big hit indicator 87 which lights or blinks at the time of a big hit is provided on the top of the front frame 71 of the gaming machine 10 .
[0037]
In the game board 73, a game area is formed in which a guide rail 88 surrounds a substantially circular area on the front, and a plurality of identification information (so-called special symbol; hereinafter referred to as "special image") is formed in this game area. The special pattern display device 89 for displaying the fluctuation, the special fluctuation winning device 90 having a big winning opening, the ordinary fluctuation winning device 91 (so-called universal power) functioning as a special drawing starting opening, and the ordinary symbol provided for the ordinary fluctuation winning device 91 A common drawing display 92 for displaying a so-called common drawing; hereinafter referred to as a common drawing; a plurality of common drawing start gates 93 in a through chucker type; a plurality of general winning openings 94; a plurality of hitting direction conversion members 96 called a windmill. , Right and left side lamps 97, 98, an out hole 99, and the like.
[0038]
A special drawing start switch 100 is provided in the winning flow path in the normal fluctuation winning device 91, and a common drawing start gate switch 101 is provided in the passage in the common drawing start gate 93, respectively. Further, a continuation switch 102 is provided in the continuous winning flow path in the special winning opening of the special variation winning device 90, and a count switch 103 is provided in the general winning flow path (for each switch, see FIG. 4).
[0039]
The above-mentioned general winning opening 94 is arranged at the upper part of the special view display device 89, and the four special view start memory indicators 105 are provided. A starting memory indicator 106 is provided. The common drawing display device 92 is, for example, a display consisting of a liquid crystal or an LED or the like having a 7-segment display part for displaying a single digit number, and in this case, the ordinary symbol (common drawing) is a single digit number. . The start storage indicators 105 and 106 each indicate the number of start storages of the special figure or the common figure.
[0040]
The special view start switch 100 detects that the ball has won the normal change winning device 91, the common view start gate switch 101 detects that the ball has passed the common view start gate 93, and the count switch 103 has the special change winning All the balls that have entered the big winning opening of the device 90 are detected, and the continuation switch 102 detects the balls that have been continuously winning (so-called V winning) among the balls that have entered the big winning opening.
In the game area of the game board 73, there are provided a large number of obstacle nails, such as sky nails and hollow nails, which are omitted here to avoid congestion in the drawing. In addition, the game board 73 may be provided with various other decorative lamps and LEDs.
Further, there are various types of game areas in the game board, including those belonging to the so-called "first type" and those belonging to the "third type" provided with a symbol display device, but the present invention is not limited to any type It can be applied to The point is that the game processing processing apparatus 200 may be provided as long as it has the game processing processing device 200. Incidentally, the one in the present embodiment is a type belonging to the “first type”.
[0041]
4. Configuration of game control device
FIG. 4 is a block diagram of the game control apparatus 41. The game control apparatus 41 divides the natural frequency of crystal by dividing the natural frequency of crystal by a game operation processing apparatus 200 comprising a microcomputer for performing property control necessary for pachinko gaming etc. And an interrupt signal generation circuit 112 which further divides the clock signal to generate, for example, a pulse signal (reset interrupt signal RST) of a 2 ms period, and various sensor signals. An input interface 113 for inputting, an output interface 114 for outputting various drive signals, a sound generator 115 for generating sound effects (mechanical sounds and / or sounds) necessary for the game, and sound effect signals from the sound generator 115 An amplifier that amplifies and outputs to a speaker 116 installed at a predetermined location of the gaming machine 10 17, configured to include a game controller 41 and the information collecting terminals 31j (information gathering FIG terminal device 31a, 31b refer) and the external communication terminal 118 for transferring the signals between the, the.
[0042]
To the input interface 113, signals from the special view start switch 100, the common view start gate switch 101, the continuation switch 102, the count switch 103, and the safe sensor 104 are input. The safe sensor 104 detects a winning game ball. From the output interface 114, the external information terminal 119 for outputting game information to the information collecting terminal 31, the display control device 120 for controlling the display of the special view display device 89, and the special winning opening which is the special variation winning device 90. It corresponds to the special winning opening solenoid 121 which is opened and closed, the special view start memory indicator 105, the common drawing display device 92, the normal electric combination solenoid 122 which drives the normal fluctuation winning device 91, the common drawing start memory indicator 106, the winning ball Then, a control signal is output to the prize ball discharge circuit 123 for controlling the discharge of the prize balls, various decoration lamps, and an LED (for example, an accessory including side lamps 97 and 98) 124.
[0043]
5. Configuration of the game processing unit 200
FIG. 5 is a block diagram of the game processor 200. As shown in FIG. In FIG. 5, the game processing unit 200 is manufactured as an IC for a so-called amuse chip, and is divided into a game area section 200A which performs game control and an information area section 200B which performs information management.
[0044]
First, the game area unit 200A includes a CPU core 201 (arithmetic processing means), a ROM 202 (nonvolatile storage means), a RAM 203 (volatile storage means), an external bus interface 204, a random number generation circuit 205, a clock generator 206, a reset / interruption. It comprises a control circuit 207, an address decoder 208, an output control circuit 209, a bus 210, and a monitoring circuit 211 (monitoring means).
The CPU core 201 performs arithmetic processing for game control, and the ROM 202 stores its control program (game program) and stores legitimacy confirmation information in a predetermined area. The legitimacy confirmation information is information in the case of performing a simple check of the legitimacy of the game processing device 200, and, for example, a write end code, an initial setting information, a maker code (for each manufacturer of game machines). It is a result value obtained by performing a predetermined operation (for example, an operation such as a check sum obtained by adding each information, an operation such as CRC) using the assigned unique code), the authorization code and the unique ID. The legitimacy confirmation information is written in a predetermined area when a third party organization or a game machine manufacturer writes the game program in the ROM 202. In addition, manufacturers of gaming machinesWhen writing, The result value is notified from the third party organization.
[0045]
When performing a simple check of the game processing unit 200, when the power of the game processing unit 200 is turned on, the operation value calculated by the game processing unit 200 itself and a predetermined area of the ROM 202 in which the game program is stored. A configuration that enables a simple check of the game processing device 200 for gaming by comparing and determining the validity verification information (that is, the result value preset by a third party organization or the like) written in advance. It has become.
The RAM 203 is used as a work area (work area) when executing processing based on a game program in the game area section 200A, and is identical to the prior art example in that it has a data area and a stack area. It differs in that it has a special area called "use prohibited area" (see FIG. 7) between the areas. The role of the prohibited area and the method of setting will be described later.
[0046]
The external bus interface 204 includes 16-bit address signals A0 to A15, 8-bit data signals D0 to D7, memory request signal MREQ, input / output request signal IORQ, memory write signal WR, memory read signal RD, mode signal MODE, etc. It performs interface processing with external signals. For example, when the data signals D0 to D7 are added while sequentially incrementing the address signals A0 to A15 while the MODE signal is at the [H] level, the write mode to the ROM 202 is set and the manufacturer of the gaming machine or It is possible to write a game program by a three party organization. The write mode enables writing of a game program, and does not enable writing of a boot program described later. In addition, when writing of the game program to the ROM 202 is completed, a write end code is recorded in a predetermined area of the parameter memory 213 described later (for example, recorded by physically cutting a predetermined code or a predetermined bit) When the write end code is recorded in the parameter memory 213, the game program can not be written in the ROM 202.
[0047]
The random number generation circuit 205 generates a random number (a random number is used for determination of a big hit, determination of a symbol at the time of stop, etc.) related to whether or not to add a game value (for example, big hit) in the game execution process. , Mathematical methods for generating uniform random numbers (eg, joint method or M-sequence method) are used. In the present embodiment, information related to the model is used as a seed value in random number generation.
[0048]
The clock generator 206 supplies an operation clock signal to each block of the game processing apparatus 200 including the CPU core 201 based on the clock signal CLK from the oscillator 111. The reset / interrupt control circuit 207 detects an interrupt request such as a reset interrupt signal RST from the interrupt signal generation circuit 112 or an alarm signal ALM from the monitoring circuit 211 described later, or a circuit (shown in FIG. The signal from (abbreviated) is detected and notified to the CPU core 201. The address decoder 208 decodes the locations of the built-in device and the built-in control / status register group by the memory mapped I / O method and the I / O mapped I / O method. The output control circuit 209 performs signal control from the address decoder 208 and externally outputs an 8-bit chip select signal (CS0 to CS7) from the external terminal. The bus 210 includes a data bus, an address bus and a control bus, and extends to the information area portion 200B.
[0049]
The monitoring circuit 211 monitors the address information exchanged between the CPU core 201 and the RAM 203, and an alarm is issued when the value of the address falls within the range of the use prohibition area of the RAM 203 (in this embodiment, 0093h to 00BDh). Signal ALM is made active, and its configuration is, as shown in FIG. 6, the maximum value register 211a holding the maximum address (00BDh) of the prohibited area and the minimum address (0093h) of the same area. A minimum value register 211b, and a comparator circuit 211c that activates an alarm signal ALM when the address data included in the range with the two held values as upper and lower limit reference values is detected on the bus 210. It is. The comparator circuit 211 c may perform the above detection operation when the write signal or the memory access signal of the RAM 203 is active.
[0050]
Next, the information area section 200B for performing information management in the game processing processor 200 includes the ROM 212, the parameter memory 213, the bus monitor circuit 214, the DPRAM 215, the security memory 216, the status memory 217, the control circuit 218 and the external communication control circuit 219. , The bus 220, the buffer circuit 221, and a part of the bus 210 on the side of the gaming area 200A.
[0051]
The ROM 212 stores a boot program, and when the game processor 200 is powered on, the boot program first starts up and performs a predetermined simple check, and if normal, the predetermined address of the game program (for convenience) The process is passed to "start address". The parameter memory 213 stores a write end code and initial setting information. The write end code is information indicating that the game program has been written to the ROM 202, as described above. The initial setting information is information for setting the use (for input / output) of the chip select signals CS0 to CS7 when the manufacturer of the game machine writes the game program, for example, CS0, CS1 and It is information that CS2 is for input and CS3, CS4, CS5, CS6 and CS7 are for output.
[0052]
The DPRAM 215 copies and copies the contents of the RAM 203 on the gaming area 200A side via the bus 210, and can be accessed from both the gaming area 200A and the information area 200B. ing.
The bus monitoring circuit 214 monitors and controls the state of the bus 210 on the side of the gaming area 200A from the side of the information area 200B. The control here is timing control when copying the contents of the RAM 203 to the DPRAM 215, and when outputting the game program to the outside (open the bus 210 on the side of the game area 200A and read the game program from the ROM 202 Timing control at the time of outputting to the outside from the area section 200B side).
[0053]
Here, data access to the DPRAM 215 will be described. The bus 210 (including the address bus, data bus and control bus) of the gaming area 200A is connected to the DPRAM 215 via the buffer circuit 221, and when writing information to a predetermined address of the RAM 203, the same address of the DPRAM 215 is used. Copy processing is performed so that the same information is also written. However, the RD signal (read control signal) of the control bus is not connected to the DPRAM 215.
[0054]
Note that the RAM 203 and the DPRAM 215 may have different write speeds and preferable write timings for copying information, so a buffer circuit 221 is provided on the address bus, data bus and control bus connected to the DPRAM 215 side. The buffer circuit 221 is controlled by the bus monitor circuit 214 (for example, control is performed so as to pool data in the RAM 203 and delay the write timing), and the contents of the high speed RAM 203 are reliably copied to the DPRAM 215 (high speed operation). Since it suffices to copy the contents of the RAM 203, even if the copy timing to the DPRAM 215 is delayed, reliable copying is possible by sequentially putting the copy contents in the buffer). As a result, data copying is reliably performed by preventing bit omission of the data.
[0055]
A security memory 216 (for example, an EEPROM) has a unique ID, a maker code (manufacturer code of a gaming machine), and a certification code (third party) used for identification of the arithmetic processing unit 200 for gaming and determination of validity. The authorization code of the gaming machine approved by the number given to the gaming machine which has passed the inspection by the organization is written. The security memory 216 constitutes unique information storage means for storing unique information (here unique ID) of the game processing device 200.
[0056]
The status memory 217 is a storage area for the control circuit 218 to detect the state change information of the game information with reference to the contents of the DPRAM 215 and write the state change information. The same information as the information stored in the RAM 203 on the gaming area 200A side is written to the same address in the DPRAM 215, and the gaming information is written to the specific address of the RAM 203 on the gaming area 200A in advance. If it is set, the information area unit 200B can obtain state change information by acquiring information from the specific address from the DPRAM 215. This is because the information content of the RAM 203 can not be known on the side of the information area unit 200B unless such an arrangement is made.
[0057]
The control circuit 218 controls the side of the information area section 200B, and has a buffer memory (in the figure, simply referred to as "memory"). The control circuit 218 monitors, for example, the operation of the CPU core 201 via the bus monitor circuit 214, and copies the contents of the RAM 203 of the gaming area 200A to the DPRAM 215 of the information area 200B while not operating. Further, in response to a memory content request command from the external device PJ1, the contents of the DPRAM 215 of the information area 200B are transferred to the outside, or in response to a game program request command, the contents in the ROM 202 via the bus monitor circuit 214. Transfer the game program to the outside. The memory of the control circuit 218 is used for timing adjustment during transfer.
[0058]
The external communication control circuit 219 communicates with the above-described PJ 1 (see FIG. 2). For example, information stored in the processing unit 200 based on an external command (for example, state change information, game, etc.) Processing such as transferring the program, the write end code, the unique ID, etc. to the outside is performed. The information transferred from the external communication control circuit 219 to the outside may be encrypted.
In the game processing unit 200, the game area unit 200A and the information area unit 200B operate independently via the bus monitor circuit 214. That is, the information area section 200B side can operate regardless of the operation of the CPU core 201 in the game area section 200A (regardless of program execution).
[0059]
6. Structure of the RAM 203 of the game area unit 200A
FIG. 7 is a conceptual structural view of the RAM 203 of the game area unit 200A. The capacity of the RAM 203 is at least 256 bytes matching the pachinko gaming machine standard. In this example, 0000h to 0092h are allocated to the data area 203a, 00BEh to 00FFh are allocated to the stack area 203b, and in between The remaining part (0093h to 00BDh) is allocated to the non-usable area 203c, but is not limited thereto. The point is that the use prohibition area 203c may be set without an interval between the data area 203a and the stack area 20b. In addition, the size of the prohibited area 203c is not limited to the illustrated example. At least one byte is sufficient.
[0060]
7. Setting of prohibited area 203c
FIG. 8 is a flowchart for setting the use prohibition area 203c in the RAM 203 of the gaming area unit 200A. This flowchart is executed after execution of the boot program at power on (but after confirmation of correctness) or when an interrupt request to the CPU core 201 occurs (when a system reset or user reset occurs or the alarm signal ALM from the monitoring circuit 211 is active). When it comes to
[0061]
When the flowchart is executed, first, the range of the use prohibition area 203c to be set in the RAM 203 is designated, and the upper and lower limit values (here, 0093h and 00BDh) are set in the maximum value register 211a and the minimum value register 211b of the monitoring circuit 211. After (S1), the start address (stack pointer) of the current stack area 203b is set in a predetermined register of the CPU core 201 (S2). Next, the value of the data area 203a of the RAM 203 (which may be the value of the predetermined inspection area set in the data area 203a) is read, and it is determined whether the value is an undefined value immediately after the power is turned on (S3) . Then, if the initial value is set to the data area 203a (S4) if it is an indeterminate value, it shifts to a reset standby state (S6), and if it is not an indeterminate value, the game program is executed (S5). Note that in the case of a roll-to-roll type gaming machine (slot machine), there is no interrupt signal generation circuit 112 inside the game control device 41 (that is, there is no reset interrupt signal RST). Since the CPU core 201 is reset by an interrupt request such as an alarm signal ALM from the monitoring circuit 211 or power supply to the game control device 41, the flowchart of the game control of the revolving game machine is shown in FIG. As shown in 9, it is substantially the same as the pachinko gaming machine except that there is no determination of an undefined value in the data area, setting of an initial value, and reset waiting processing.
[0062]
8. How to use prohibited area 203c
As described above, in the present embodiment, after execution of the boot program at power on (but after confirmation of correctness) or when an interrupt request to the CPU core 201 occurs (generation of the reset interrupt signal RST from the interrupt signal generation circuit 112) The program of FIG. 8 executed at the time or when the alarm signal ALM from the monitoring circuit 211 becomes active) sets the use prohibition area 203c between the data area 203a and the stack area 203b of the RAM 203, and The upper and lower limit addresses (0093h and 00BDh) of the use prohibition area 203c are set in the maximum value register 211a and the minimum value register 211b of the monitoring circuit 211. Then, the comparator circuit 211 c of the monitoring circuit 211 compares the address on the bus 210 with the upper and lower limit addresses, and when an address falling between the upper and lower limit addresses is detected, access to the use prohibition area 203 occurs. As a result, the alarm signal ALM is activated and a reset interrupt is issued to the CPU core 201.
[0063]
Therefore, if an intentional overflow occurs due to a certain hardware mechanism (see the below-mentioned note), the address on the bus 210 enters the disable area 203c and an address smaller than the maximum value register 211a is detected. As a result, the CPU core 201 can be immediately interrupted by a reset to return the game program to the initial state, and as a result, the continuation of the game can be stopped to prevent the fraud. Also, even if the stack area 203c overflows due to a cause such as a bug even though it is not intentional, the address on the bus 210 enters the use prohibition area 203c and an address smaller than the maximum value register 211a is detected similarly. Thus, the CPU core 201 can be issued a reset interrupt.
[0064]
In the above example, it is detected that the address on the bus 210 has entered the use prohibition area 203c and the CPU core 201 is subjected to a reset interrupt (reset state), but the present invention is not limited to this. The CPU core 201 may be subjected to a reset interrupt by detecting that the value of the program counter has entered the use prohibition area 203c.
[0065]
In addition, the measures taken in the case of entering the prohibited area 203c are not limited to the reset state. It is only necessary to actively stop abnormal control due to an unauthorized action or bug, for example, pull in the alarm signal ALM from the monitoring circuit 211 to the oscillator 111 (see FIG. 4) and respond to the activation of the alarm signal ALM. Then, the operation of the oscillator 111 is stopped (or the operation of the clock generator 206 is stopped), or the CPU core 201 is put into the HALT state in response to the activation of the alarm signal ALM to stop its operation. It is also good. Alternatively, while the game control is continued as it is, an alert may be issued casually in the store, and after sufficient evidence of a fraud has been established, it may be dealt with artificially by a store clerk or the like.
[0066]
Note:
The hardware mechanism for generating an intentional overflow without changing the game program code is not particularly limited, but is, for example, as follows.
First, as a precondition, it is assumed that the target game program is performing the following processing. That is, while a specific input signal of the game control apparatus (for example, the signal of the special view start switch 100) is active, each time a reset interrupt signal is generated in the interrupt signal generation circuit 112, the number of times of the interrupt signal It is assumed that processing for securing a stack area is being performed.
[0067]
Now, assuming that the active period of a specific input signal is 10 ms and the generation period of the reset interrupt signal is 2 ms, only one reset period of a specific input signal causes 5 reset interrupts, so the stack area for that is secured. It is sufficient if it is stored, and there is no problem in using the gaming machine. However, if the active period of the specific input signal is extended due to some fraudulent activity, for example, a player who attempts to gain profits illegally switches the switch that emits the input signal from a legitimate one to a fraudulent one. If you make a modification that extends the active period to 10 times by 100 ms, the stack area also needs to be 10 times, but the stack area naturally has a limit, so it is necessary to secure sufficient stack area , Intentional overflow may occur.
[0068]
【Effect of the invention】
According to the present invention, the use prohibition area is secured between the data area and the stack area, and when the address range of the use prohibition area is accessed, the arithmetic processing means is in a predetermined state (reset state, operation clock Since the stop state or the HALT state is adopted, the arithmetic processing means can be put into a predetermined state when an overflow of the stack area located at an address higher than the use prohibited area occurs.
Therefore, it is possible to detect an intentional overflow and take necessary measures such as stopping the program, thereby providing a game processing device which contributes to the sound development of the gaming industry as a whole, and at the same time a bug is caused. Overflow can also be detected and the required action can be taken, such as stopping the program.
Brief Description of the Drawings
FIG. 1 is a block diagram showing an overall configuration of a hole.
FIG. 2 is a block diagram of PJ1.
FIG. 3 is a front view of the gaming machine.
FIG. 4 is a block diagram of a game control device.
FIG. 5 is a block diagram of a game processing unit.
FIG. 6 is a block diagram of a monitoring circuit.
FIG. 7 is a structural diagram of a work area including a prohibited area.
FIG. 8 is a flowchart (for a ball-and-ball type gaming machine) of a setting processing program of a use prohibition area.
FIG. 9 is a flowchart of a use prohibition area setting processing program (for a reel type gaming machine).
FIG. 10 is a diagram showing a program development stage of a microcomputer in general.
FIG. 11 is a structural view of a conventional work area.
[Description of the code]
ALM alarm signal
201 CPU core (operation processing means)
202 ROM (nonvolatile storage means)
203 RAM (volatile storage means)
203a data area
203b Stack area
203c Prohibited area
211 Monitoring circuit (monitoring means)

JP30388598A 1998-10-26 1998-10-26 Game processing unit Expired - Fee Related JP4056150B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30388598A JP4056150B2 (en) 1998-10-26 1998-10-26 Game processing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30388598A JP4056150B2 (en) 1998-10-26 1998-10-26 Game processing unit

Related Child Applications (3)

Application Number Title Priority Date Filing Date
JP2007265758A Division JP4518338B2 (en) 2007-10-11 2007-10-11 Game machine
JP2007265742A Division JP2008023375A (en) 2007-10-11 2007-10-11 Arithmetic processing unit for games
JP2007265754A Division JP4548856B2 (en) 2007-10-11 2007-10-11 Game machine

Publications (3)

Publication Number Publication Date
JP2000126425A JP2000126425A (en) 2000-05-09
JP2000126425A5 true JP2000126425A5 (en) 2005-03-17
JP4056150B2 JP4056150B2 (en) 2008-03-05

Family

ID=17926450

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30388598A Expired - Fee Related JP4056150B2 (en) 1998-10-26 1998-10-26 Game processing unit

Country Status (1)

Country Link
JP (1) JP4056150B2 (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3746701B2 (en) * 2001-10-31 2006-02-15 株式会社三共 Game machine
JP5851125B2 (en) * 2011-06-14 2016-02-03 株式会社藤商事 Game machine
JP5664530B2 (en) * 2011-11-17 2015-02-04 トヨタ自動車株式会社 Operation check method of control device and memory protection device
JP5906130B2 (en) * 2012-05-09 2016-04-20 株式会社ソフイア Game machine
JP5906129B2 (en) * 2012-05-09 2016-04-20 株式会社ソフイア Game machine
JP5906131B2 (en) * 2012-05-09 2016-04-20 株式会社ソフイア Game machine
JP5875998B2 (en) * 2013-03-14 2016-03-02 株式会社藤商事 Game machine
JP6372153B2 (en) * 2014-04-30 2018-08-15 株式会社三洋物産 Game machine
JP6372152B2 (en) * 2014-04-30 2018-08-15 株式会社三洋物産 Game machine
JP6372151B2 (en) * 2014-04-30 2018-08-15 株式会社三洋物産 Game machine
JP6058776B2 (en) * 2015-12-02 2017-01-11 株式会社藤商事 Game machine
JP2017060855A (en) * 2016-12-07 2017-03-30 株式会社藤商事 Game machine
JP2019136612A (en) * 2019-06-04 2019-08-22 株式会社三洋物産 Game machine
JP2019147016A (en) * 2019-06-10 2019-09-05 株式会社三洋物産 Game machine
JP7099431B2 (en) * 2019-10-28 2022-07-12 株式会社三洋物産 Pachinko machine

Similar Documents

Publication Publication Date Title
JP2000126425A5 (en)
JP4056150B2 (en) Game processing unit
JP4236069B2 (en) Game machine
JP4112129B2 (en) Game processing unit
JP2001137504A5 (en)
JPH11267338A (en) Arithmetic processing device for game and method for generating information
JP4518338B2 (en) Game machine
JP4297553B2 (en) Game machine
JP2001145772A (en) Game system
JP2001137516A (en) Game monitoring device
JP2001087529A5 (en)
JP4518335B2 (en) Game machine
JP2000300811A5 (en)
JP4518334B2 (en) Game machine
JP4518336B2 (en) Game machine
JP4518333B2 (en) Game machine
JP4117716B2 (en) Game processing unit
JP4548856B2 (en) Game machine
JP2000126427A (en) Device and method of calculation for game
JP4112130B2 (en) Game processing unit
JP3791654B2 (en) Game processing unit
JP4518332B2 (en) Game machine
JP4592107B2 (en) Game processing unit
JP4117715B2 (en) Game processing unit
JP2008055188A (en) Arithmetic processing unit for game