説明

情報処理装置

【課題】不正カートリッジによる正規ゲームプログラムの取得や、不正カートリッジによる不正ゲームプログラムの実行を防止する。
【解決手段】情報処理装置は、記憶装置の内部回路に電源電圧を供給する電源端子と、前記内部回路に接続されるグランド端子と、前記グランド端子に入力される前記内部回路の動作電流を測定する電流測定部と、前記動作電流が前記期待電流であるときに前記記憶装置へのデータの入出力を実行し、前記動作電流が前記期待電流でないときに前記記憶装置へのデータの入出力を実行しない記憶制御部とを有するので、不正カートリッジによる正規ゲームプログラムの取得や、不正カートリッジによる不正ゲームプログラムの実行を防止できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記憶装置へのデータの入出力を制御する記憶制御部を備えた情報処理装置に関する。
【背景技術】
【0002】
情報処理装置としてのゲーム機は、記憶装置としてのカートリッジが接続され、カートリッジからゲームプログラムを読み出して実行する。本来、ゲームプログラムを格納したカートリッジは、ゲームプログラムの著作権者や著作物の利用の許諾を受けた者により頒布される。ユーザは対価を支払ってカートリッジを入手し、ゲーム機によりカートリッジからゲームプログラムを読出して実行することで、ゲームを行う。
【0003】
近年、カートリッジからゲームプログラムを読み出して不正に複製し、複製されたゲームプログラムをインターネット上などで頒布する行為が増加している。かかる行為を実施する侵害者は、例えば、まず、正規に入手したカートリッジ(以下、正規カートリッジという)をゲーム機に接続し、ゲーム機にゲームプログラム(以下、正規カートリッジに格納されたゲームプログラムを正規ゲームプログラムという)を実行させる。このとき、ゲーム機内のRAM(Random Access Memory)に正規ゲームプログラムが一時的に保持される。その状態で、侵害者は、正規カートリッジを取り外し、ゲーム機をハッキングして制御するための回路構成が実装されたカートリッジ(以下、不正カートリッジという)を、ゲーム機に接続する。不正カートリッジは、ゲーム機のCPU(Central Processing Unit)に偽の制御信号を入力し、RAMに保持された正規ゲームプログラムを不正カートリッジに書き込むようにCPUを制御する。このようにして、侵害者は、正規ゲームプログラムを取得する。
【0004】
次に、侵害者は、取得したゲームプログラムを複製して不正ゲームプログラムを作製し、これをたとえばインターネットを介して頒布する。一方で、侵害者は、不正ゲームプログラムをゲーム機に読み取らせるための不正カートリッジを作製し、頒布する。不正ゲームプログラムと不正カートリッジとを入手したユーザは、不正ゲームプログラムを不正カートリッジに格納する。ユーザが不正カートリッジをゲーム機に接続すると、不正カートリッジは、ゲーム機のCPUに偽の制御信号を入力して、CPUに不正カートリッジから不正ゲームプログラムを読み出させる。こうして、ゲーム機は、正規カートリッジが接続されたときと同様にして、不正カートリッジから不正ゲームプログラムを読み出して実行する。
【0005】
このような不正ゲームプログラムの頒布や実行を防止するための方法が提案されている(たとえば、特許文献1〜3)。一つの例では、正規カートリッジとゲーム機とに予め認証情報を格納しておき、ゲーム機が、接続されるカートリッジから認証情報を読み出して認証を行う。ゲーム機は、正規カートリッジが接続され、認証が成功したときには正規ゲームプログラムを実行するが、不正カートリッジが接続され、認証が失敗したときには、種々のエラー処理を実行したり、不正ゲームプログラムの実行を中止したりする。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平8−286903号公報
【特許文献2】特開2000−76063号公報
【特許文献3】特開2002−73423号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、認証情報を用いて認証を行う方法では、認証情報を偽装されて実効性を欠くおそれがある。
【0008】
そこで、本発明の目的は、より確実に不正カートリッジを判別でき、不正カートリッジによる正規ゲームプログラムの取得や、不正カートリッジによる不正ゲームプログラムの実行を防止できる情報処理装置を提供することにある。
【課題を解決するための手段】
【0009】
上記の目的を達成するために、本発明の1つの側面における情報処理装置は、記憶装置の内部回路に電源電圧を供給する電源端子と、前記内部回路に接続されるグランド端子と、前記グランド端子に入力される前記内部回路の動作電流を測定する電流測定部と、前記動作電流が期待電流であるときに前記記憶装置へのデータの入出力を実行し、前記動作電流が前記期待電流でないときに前記記憶装置へのデータの入出力を実行しない記憶制御部とを有する。
【発明の効果】
【0010】
上記側面によれば、電流測定部が動作電流を測定することにより、不正カートリッジを判別できる。そして、記憶制御部は、前記動作電流が前記期待電流であるときに前記記憶装置へのデータの入出力を実行し、前記動作電流が前記期待電流でないときに前記記憶装置へのデータの入出力を実行しないので、不正カートリッジによる正規ゲームプログラムの取得や、不正カートリッジによる不正ゲームプログラムの実行を防止できる。
【図面の簡単な説明】
【0011】
【図1】本実施形態におけるゲーム機とカートリッジの構成を説明する図である。
【図2】第1実施例におけるゲーム機4と正規カートリッジ2の要部の構成を説明する図である。
【図3】第1実施例における電流測定部36の構成例を説明する図である。
【図4】第1実施例におけるゲーム機4の動作を説明する図である。
【図5】第1実施例において、アドレス・コマンド制御部34に入出力される各信号の例を示す図である。
【図6】第2実施例におけるゲーム機4と正規カートリッジ2の要部の構成を説明する図である。
【図7】第2実施例におけるゲーム機4の動作を説明する図である。
【図8】第2実施例において、アドレス・コマンド制御部34に入出力される各信号の例を示す図である。
【図9】第3実施例におけるゲーム機4と正規カートリッジ2の要部の構成を説明する図である。
【図10】電流生成回路38の構成例を説明する図である。
【図11】第3実施例における電流測定部36の構成例を示す。
【図12】第3実施例におけるゲーム機4の動作を説明する図である。
【図13】第3実施例において、アドレス・コマンド制御部34に入出力される各信号の例を示す図である。
【図14】第4実施例における電流測定部36の構成について説明する図である。
【図15】第4実施例におけるゲーム機4の動作を説明する図である。
【図16】第4実施例において、アドレス・コマンド制御部34に入出力される各信号の例を示す図である。
【図17】第5実施例におけるゲーム機4と正規カートリッジ2の要部の構成を説明する図である。
【図18】第5実施例におけるゲーム機4の動作を説明する図である。
【図19】第5実施例において、アドレス・コマンド制御部34に入出力される各信号の例を示す図である。
【発明を実施するための形態】
【0012】
以下、図面にしたがって本発明の実施の形態について説明する。但し、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【0013】
本実施形態では、情報処理装置は例えばゲーム機である。また、情報処理装置に接続される外部の記憶装置は、例えばゲームプログラムが格納されたカートリッジである。
【0014】
図1は、本実施形態におけるゲーム機とカートリッジの構成を説明する図である。図1(A)は、正規カートリッジが接続される場合の構成を示す。正規カートリッジ2は、接続部9によりゲーム機4と接続される。正規カートリッジ2は、ROM(Read Only Memory)6と、ROM6に接続されるROM制御部8とを有する。ROM6には、正規ゲームプログラムが格納される。ROM制御部8は、ROM6からのデータの読み出しを制御する。たとえば、ROM制御部8は、ROM6から正規ゲームプログラムを読み出す。また、ROM6が例えば書き換え可能なROMである場合には、ROM制御部8は、ROM6に対するデータの書き込みを制御する。この場合、たとえば、ゲームの実行に関してユーザが設定するパラメータ等がROM6に書き込まれる。
【0015】
ゲーム機4は、正規カートリッジ2が接続される接続部11と、接続部11を介し正規カートリッジ2のROM制御部8と接続される記憶制御部10と、記憶制御部10と接続されるメイン制御部12とを有する。また、ゲーム機4では、メイン制御部12は、ROM14と、RAM16と、表示部18と、音声出力部20と、操作入力部22と、ネットワーク接続部24と接続される。
【0016】
操作入力部22は、ユーザによる操作入力を受け付け、操作入力に応じた制御信号をメイン制御部12に入力する。操作入力部22は、操作ボタンや操作レバーを有する。また、操作入力部22には、電源スイッチが含まれる。電源スイッチは、押ボタンや、ゲーム機4の蓋の開閉と連動して電源が投入・遮断される形態のスイッチなどを有する。
【0017】
メイン制御部12は、電源が投入されると起動して、ROM14に格納される制御プログラムを読み出してこれを実行し、ゲーム機4の各部を制御する。このとき、メイン制御部12は、各種演算のためのデータをRAM16に一時的に保持させる。
【0018】
メイン制御部12は、正規カートリッジ2からの正規ゲームプログラムの読出しを指示する制御信号を記憶制御部10に出力する。記憶制御部10は、これに応答して、正規ゲームプログラムの読み出しを指示する制御信号をROM制御部8に出力する。すると、ROM制御部8は、これに応答して、ROM6から正規ゲームプログラムを読み出して記憶制御部10に転送する。記憶制御部10は、正規ゲームプログラムをメイン制御部12に転送する。そして、メイン制御部12は、正規ゲームプログラムをRAM16に格納して、これを実行する。また、メイン制御部12は、ユーザの操作入力に応じて各種パラメータを生成し、これにより正規ゲームプログラムを実行する。
【0019】
メイン制御部12は、正規ゲームプログラムを実行することで、ゲームの状況に応じた画像データや音声データを生成する。メイン制御部12は、画像データを表示部18に出力する。表示部18は、画像データに応じた画像をたとえばLCD(Liquid Crystal Display)などの表示画面に表示する。また、メイン制御部12は、音声データを音声出力部20に出力する。音声出力部20は、音声データに応じた音声をスピーカから出力する。さらに、メイン制御部12は、ネットワーク接続部24を介してインターネットなどの公衆通信回線網に接続し、他のゲーム機やサーバなどと通信しながら正規ゲームプログラムを実行する。
【0020】
図1(B)は、不正カートリッジが接続される場合の構成を示す。不正カートリッジ102は、正規カートリッジ9の接続部を偽装した接続部109を有し、接続部109によりゲーム機4と接続される。不正カートリッジ102は、SDカードやUSBメモリなどの記憶媒体108が接続される記憶媒体接続部104と、記憶媒体接続部104と接続される、たとえばFPGA(Field Programmable Gate Array)などのプログラマブル・ロジック・デバイス(PLD)106とを有する。
【0021】
記憶媒体接続部104は、記憶媒体108に対するデータの読み書きを行う。PLD106は、記憶媒体108に対するデータの読み書きを指示する制御信号を、記憶媒体接続部104に出力する。また、PLD106は、図示を省略するEEPROM(Electronically Erasable and Programmable ROM)などから予め格納された回路情報を読み出して、その回路構成を実装する。たとえば、PLD106は、ゲーム機4のメイン制御部12をハッキングして制御するための回路構成を実装する。
【0022】
このような不正カートリッジ102は、侵害者により、正規ゲームプログラムを取得するために、たとえば次のようにして用いられる。まず、ゲーム機4に正規カートリッジ2が接続され、メイン制御部12が正規ゲームプログラムをRAM16に保持させて実行する。その状態で正規カートリッジ2がゲーム機4から取り外され、不正カートリッジ102がゲーム機4に接続される。不正カートリッジ102が接続されると、PLD106は、メイン制御部12をハッキングするための各種制御信号を出力する。この各種制御信号は、記憶制御部10からメイン制御部12に転送される。メイン制御部12は、これに応答して、RAM16に格納された正規ゲームプログラムを読み出して記憶制御部10に転送する。そして、記憶制御部10は、転送された正規ゲームプログラムを、PLD106に転送する。そして、PLD106は、記憶媒体接続部104により、正規ゲームプログラムを記憶媒体108に書き込む。こうして、不正カートリッジ102により、正規ゲームプログラムが正規カートリッジ2から読み出されて取得される。
【0023】
侵害者は、上記のようにして入手した正規ゲームプログラムを不正に複製し、複製された不正ゲームプログラムをたとえばインターネットを介して頒布する。そして、不正カートリッジ102は、不正ゲームプログラムを入手したユーザにより、不正ゲームプログラムを実行するために、たとえば次のように用いられる。ユーザは、入手した不正ゲームプログラムを記憶媒体108に格納し、これを記憶媒体接続部104に接続する。そして、その状態で、ユーザは、不正カートリッジ102をゲーム機4に接続し、ゲーム機4を起動する。このとき、PLD106は、不正ゲームプログラムをメイン制御部12に実行させるための回路構成を実装している。PLD106は、記憶媒体接続部104により記憶媒体108から不正ゲームプログラムを読み出してゲーム機4に転送するとともに、正規カートリッジ2のROM制御部8による制御信号を偽装した制御信号を出力する。そうすることで、メイン制御部12は、正規カートリッジ2が接続されたときと同様にして、不正ゲームプログラムを実行する。
【0024】
ここで、正規カートリッジ2または不正カートリッジ102の内部回路は、詳しくは後述するように、ゲーム機4から電源供給を受けて動作する。そのとき、不正カートリッジ102の内部回路による動作電流は、正規カートリッジ2の内部回路による動作電流より一般に大きい。これは、不正カートリッジ102におけるPLD106の回路規模が、正規カートリッジ2におけるROM6のデータ読み出し(あるいは読み書き)専用に設計、製造されたROM制御部8と比べて大きく、所望の回路構成を実装したときであっても冗長なゲートを有するので、その分余計な動作電流を消費することによる。
【0025】
このことを利用し、本実施形態では、接続されるカートリッジの内部回路の動作電流が、正規カートリッジ2が接続されたときに期待される動作電流(期待電流)であるか否かを、ゲーム機4が判定する。ハードウェア構成に依存する動作電流を偽装することは、たとえば認証情報などを偽装することより困難であるので、動作電流が期待電流である場合には正規カートリッジ2が接続されたと判別でき、期待電流でない場合には不正カートリッジ102が接続されたと判別できる。そして、ゲーム機4は、不正カートリッジ102を判別したときには、正規ゲームプログラムの転送や、不正ゲームプログラムの実行を中止する。そうすることで、不正カートリッジによる正規ゲームプログラムの取得や、不正カートリッジによる不正ゲームプログラムの実行を確実に防止できる。
【0026】
以下、本実施形態における実施例について説明する。
【0027】
[第1実施例]
図2は、第1実施例におけるゲーム機4と正規カートリッジ2の要部の構成を説明する図である。ゲーム機4の記憶制御部10は、アドレス・コマンド制御部34とデータ制御部32とを有する。一方、正規カートリッジ2のROM制御部8は、アドレス・コマンド制御部42と、データ制御部44とを有する。ゲーム機4のアドレス・コマンド制御部34と正規カートリッジ2のアドレス・コマンド制御部42は、接続部9、11を介して接続される。また、ゲーム機4のデータ制御部32と正規カートリッジ2のデータ制御部44は、接続部9、11を介して接続される。
【0028】
ゲーム機4は、接続部11に、電源端子13とグランド端子15を有する。ゲーム機4では、電源端子13は電源電圧VDDに、グランド端子15はグランド電位VSSに接続される。また、正規カートリッジ2は、接続部9に、電源端子13とグランド端子15とに接続される接続端子を有する。正規カートリッジ2では、ROM6やROM制御部8といった内部回路が、電源端子13を介して電源電圧VDDの供給を受け、グランド端子15を介してグランド電位の供給を受けて動作する。よって、ROM6やROM制御部8による動作電流(以下、単に動作電流という)は、グランド端子15を介してゲーム機4に出力される。
【0029】
ゲーム機4は、グランド端子15に接続される電流測定部36を有する。電流測定部36には、グランド端子15を介して、正規カートリッジ2から動作電流が入力される。電流測定部36は、予め設定される基準電流に対し動作電流が大きいか小さいかを測定し、その結果に応じた判定信号Judgeを出力する。なお、ここでは、電流測定部36が記憶制御部10の内部に設けられる場合が示されるが、電流測定部36は記憶制御部10の外部に設けられてもよい。
【0030】
上記の構成において、ゲーム機4に電源が投入されてゲーム機4が起動するとき、アドレス・コマンド制御部34には、メイン制御部12からリセット信号RESETが入力される。そして、メイン制御部12によりリセット信号RESETが解除されると、メイン制御部12からデータのアドレスを指定するアドレス信号ADDと、データ読み出しを指示する制御信号ConSが入力される。アドレス・コマンド制御部34は、正規カートリッジ2のアドレス・コマンド制御部42に、クロック信号CLKと、チップセレクト信号CSと、データの読み出しアドレスを指定する制御信号Dinを出力し、ROM6からのデータの読み出しを指示する。正規カートリッジ2のアドレス・コマンド制御部42は、これに応答して、クロック信号CLKに同期してROM6からデータを読み出す。読み出されるデータは、たとえば、正規ゲームプログラムである。そして、データ制御部44は、読み出されたデータDoutをデータ制御部32に転送する。すると、データ制御部32は、転送されたデータDoutを読出しデータDrとしてメイン制御部12に転送する。
【0031】
あるいは、正規カートリッジ2のROM6が書き換え可能に構成される場合、アドレス・コマンド制御部34は、メイン制御部12から、データの書き込みアドレスを指定するアドレス信号ADDと、データ書き込みを指示する制御信号ConSが入力される。このとき、メイン制御部12からデータ制御部32に、書き込み用データDwが転送される。データ制御部32は、書き込み用データDwをアドレス・コマンド制御部34に転送する。アドレス・コマンド制御部34は、正規カートリッジ2のアドレス・コマンド制御部42に、クロック信号CLKと、チップセレクト信号CSと、書き込みアドレスをともなった書き込みデータDinとを出力する。すると、正規カートリッジ2のアドレス・コマンド制御部42は、書き込みデータDinをデータ制御部44に転送する。データ制御部44は、これに応答して、ROM6に対しデータDinを書き込む。
【0032】
以下では、アドレス・コマンド制御部34による、上記のようなクロック信号CLK、チップセレクト信号CS、書き込みデータDin等の出力、及びゲームプログラム等のデータDoutの読出しを含むデータの入出力を、通常動作という。
【0033】
第1実施例では、電流測定部36が、リセット信号RESET解除時の動作電流を測定する。そして、アドレス・コマンド制御部34が、動作電流が期待電流のときに通常動作を実行し、動作電流が期待電流でないときに通常動作の実行を中止する。
【0034】
電流測定部36は、ゲーム機4の起動時に、メイン制御部12からリセット信号RESETが入力される。電流測定部36は、リセット信号RESETが解除されると、これに応答して、正規カートリッジ2の動作電流が基準電流より大きいか小さいかを測定する。
【0035】
正規カートリッジ2は、リセット信号RESETが解除されたタイミングでは、アドレス・コマンド制御部34からの制御信号の入力待ち状態である。つまり、アドレス・コマンド制御部42はデータの読み書きなどの動作開始前である。このとき、アドレス・コマンド制御部42とデータ制御部44を含むROM制御部8や、ROM6といった内部回路は、たとえば数μA程度の微小な待機電流を消費する。よって、この待機電流が動作電流として、グランド端子15を介して電流測定部36に入力される。ここで、かかる待機電流が期待電流に対応する。
【0036】
一方、正規カートリッジ2の代わりに不正カートリッジ102が接続された場合には、PLD106の回路構成に起因して、正規カートリッジ2の待機電流より大きい、たとえば数mAの待機電流が消費される。よって、電流測定部36には、正規カートリッジ2の動作電流、つまり期待電流より大きい動作電流が入力される。
【0037】
電流測定部36には、期待電流より大きくかつ不正カートリッジ102の動作電流より小さい基準電流が予め設定される。そして、電流測定部36は、正規カートリッジ2が接続されることで基準電流より小さい動作電流が入力される場合、つまり入力される動作電流が期待電流の場合には、アドレス・コマンド制御部34に、通常動作の実行を許可するための判定信号Judgeを出力する。すると、アドレス・コマンド制御部34は、これに応答して通常動作を実行し、正規カートリッジ2から読み出された正規ゲームプログラムが実行される。
【0038】
一方、不正カートリッジ102が接続されることで基準電流より大きい動作電流が入力される場合、つまり入力される動作電流が期待電流でない場合には、電流測定部36は、アドレス・コマンド制御部34に、不正カートリッジ102に対する通常動作の実行を中止させるための判定信号Judgeを出力する。すると、アドレス・コマンド制御部34は、これに応答して通常動作の実行を中止する。すなわち、アドレス・コマンド制御部34は、不正カートリッジ102に対する正規ゲームプログラムの書き込みや、不正カートリッジ102から不正ゲームプログラムの読み出しを中止する。よって、不正カートリッジ102による正規ゲームプログラムの取得や、不正カートリッジによる102不正ゲームプログラムの実行を防止できる。
【0039】
ここにおいて、正規カートリッジ2または不正カートリッジ102は、それぞれが固有の電源を有さず、ゲーム機4から電源供給を受けて動作するので、それぞれの動作電流は、内部回路の規模や構成に依存する。よって、動作電流を用いることで、接続されたカートリッジのハードウェア構成を推測することができ、正規カートリッジ102または不正カートリッジ102を確度良く判別できる。また、リセット信号RESET解除時の待機電流は、その後、正規カートリッジ2や不正カートリッジ102が動作を開始したときの動作電流より安定しているので、かかる動作開始後の動作電流より的確な判定が可能であり、確度良く正規カートリッジ2または不正カートリッジ102の判別を行うことができる。
【0040】
また第1実施例の一態様では、アドレス・コマンド制御部34は、不正カートリッジ102と判別されたことを示す判定信号Judgeに応答して、不正カートリッジ102が接続されたことを示すエラー信号ERRをメイン制御部12に出力する。すると、メイン制御部12は、エラー信号ERRに応答して、不正行為に対する警告メッセージや空白画面を表示部18に表示させたり、音声出力部20に音声出力させたりする。あるいは、メイン制御部12は、デバッグモードに移行するなどして、動作を中止してもよい。そうすることで、不正カートリッジ102による正規ゲームプログラムの取得や、不正カートリッジ102による不正ゲームプログラムの実行を、より確実に防止できる。メイン制御部12によるかかる動作を、以下では、不正動作時の動作という。
【0041】
図3は、第1実施例における電流測定部36の構成例を説明する図である。電流測定部36は、予め設定される基準電流に対し入力される動作電流が大きいか小さいかを測定する。そのための構成として、たとえば、電流測定部36は、電圧比較器37を有する。電圧比較器37の非反転入力端子は、接続端子N1と接続される。接続端子N1は、グランド端子15に接続される。接続端子N1とゲーム機4のグランド電位VSSの間には、抵抗R1が設けられる。
【0042】
上記の構成において、正規カートリッジ2の動作電流Iが、グランド端子15を介して接続端子N1に入力される。よって、動作電流Iと抵抗R1の抵抗値とに応じた接続端子N1の電圧V(a)が、電圧比較器37の非反転入力端子に入力される。電圧比較器37の反転入力端子には、基準電圧Vrefが入力される。基準電圧Vrefより非反転入力端子に入力される電圧V(a)の方が大きければ、電圧比較器37はHレベルの判定信号Judgeを出力する。一方、基準電圧Vrefより非反転入力端子に入力される電圧V(a)の方が小さければ、電圧比較器37は、Lレベルの判定信号Judgeを出力する。
【0043】
ここでは、抵抗R1の抵抗値に対して生成される電圧V(a)が基準電圧Vrefと一致するような動作電流が、基準電流に対応する。このような構成によれば、接続端子N1に基準電流より小さい動作電流Iが入力されたときには、電圧比較器37の非反転入力端子には基準電圧Vrefより小さい電圧V(a)が入力されるので、Lレベルの判定信号Judgeが出力される。一方、基準電流より大きい動作電流Iが入力されたときには、電圧比較器37の非反転入力端子には基準電圧Vrefより大きい電圧V(a)が入力されるので、Hレベルの判定信号Judgeが出力される。
【0044】
すると、アドレス・コマンド制御部34は、Lレベルの判定信号Judgeに応答して、通常動作を実行する。一方、アドレス・コマンド制御部34は、Hレベルの判定信号Judgeに応答して、通常動作の実行を中止する。また、アドレス・コマンド制御部34は、Hレベルの判定信号Judgeに応答して、メイン制御部12に不正動作時の動作を実行させるためのエラー信号ERRを出力する。
【0045】
図4は、第1実施例におけるゲーム機4の動作を説明する図である。図5は、第1実施例において、アドレス・コマンド制御部34に入出力される各信号の例を示す図である。図5には、横軸を時間軸として、アドレス・コマンド制御部34から出力されるクロック信号CLK、メイン制御部12から電流測定部36及びアドレス・コマンド制御部34に入力されるリセット信号RESET、電流測定部36からアドレス・コマンド制御部34に入力される判定信号Judge、及びアドレス・コマンド制御部34からメイン制御部12に入力されるエラー信号ERRが示される。図5では、図4の手順に対応するタイミングには図4と同じ符号が付してある。
【0046】
図4に従い、図5を参照しつつゲーム機4の動作を説明する。ユーザが電源スイッチをオンしたり、ゲーム機4の蓋を開けたりすることで、ゲーム機4に電源が投入される(S2)。すると、メイン制御部12は、リセット信号RESETを出力し、これを解除する(S4)。すると、電流測定部36は、手順S6で、動作電流が基準電流より大きいか小さいかを測定する。具体的には、電流測定部36は、接続端子N1の電圧V(a)を基準電圧Vrefと比較し、Vrefより小さいとき(S6の「V(a)<Vref」)、つまり動作電流Iが基準電流より小さい期待電流であるときに、Lレベルの判定信号Judgeを出力する(S8)。アドレス・コマンド制御部34は、これに応答して、通常動作を実行する(S10)。一方、接続端子N1の電圧V(a)が基準電圧Vrefより大きいとき(S6の「V(a)>Vref」)、つまり動作電流Iが基準電流より大きく、期待電流でないときには、Hレベルの判定信号Judgeを出力する(S12)。アドレス・コマンド制御部34は、これに応答して、不正カートリッジ102に対する通常動作を中止し、エラー信号ERRをメイン制御部12に出力する(S14)。そして、メイン制御部12は、警告の表示や音声出力など不正動作時の動作を実行する(S16)。
【0047】
上記のような手順により、不正カートリッジ102による正規ゲームプログラムの取得や、不正カートリッジ102による不正ゲームプログラムの実行を防止できる。
【0048】
[第2実施例]
上述の第1実施例では、ゲーム機4起動直後の待機電流を動作電流として用い、動作電流が期待電流か否かの判定が行われた。次に説明する第2実施例では、待機電流より小さい省電力(パワーダウン)モード時の動作電流について、期待電流か否かの判定が行われる。
【0049】
図6は、第2実施例におけるゲーム機4と正規カートリッジ2の要部の構成を説明する図である。図6の構成のうち、第1実施例における図2の構成と同じ構成には、図2と同じ符号が付してある。ここでは、第1実施例と異なる点について説明する。第2実施例では、メイン制御部12が、アドレス・コマンド制御部34に、パワーダウン制御信号PDを入力する。メイン制御部12は、所定のイベントを検知したときに、パワーダウン制御信号PDを出力する。所定のイベントは、たとえば、ゲーム機4の蓋が閉じられたときや、一定時間以上操作入力がなされないとき、操作入力の有無に関わらず一定時間タイマで計時されたとき、もしくは、正規ゲームプログラムの実行中に、ゲームのステージをクリアしたりネットワークに接続されたりしたときが含まれる。あるいは、ゲーム機4の起動時において、リセット信号RESETが解除されたとき、一旦パワーダウン制御信号PDを出力するようにしてもよい。
【0050】
アドレス・コマンド制御部34は、メイン制御部12からパワーダウン制御信号PDが入力されると、電流測定部36と正規カートリッジ2のアドレス・コマンド制御部42に、パワーダウン制御信号PDを入力する。
【0051】
正規カートリッジ2では、アドレス・コマンド制御部42は、パワーダウン制御信号PDが入力されると、パワーダウンモードに移行するよう構成される。パワーダウンモードのとき、正規カートリッジ2では、待機電流より小さい動作電流が流れるか、ほとんど動作電流が流れない状態となる。よって、電流測定部36において、第1実施例のときの基準電流より小さい基準電流を設定しておく。電流測定部36は、パワーダウン制御信号PDが入力されると、これに応答して、正規カートリッジ2の動作電流と基準電流とを比較する。そして、電流測定部36に入力される動作電流が基準電流より小さく、つまり期待電流であれば、電流測定部36は、正規カートリッジ2が接続されたことを示すLレベルの判定信号Judgeを出力する。よって、このとき、アドレス・コマンド制御部34は、通常動作を実行する。
【0052】
一方、不正カートリッジ2が接続されたときには、パワーダウン制御信号PDが入力されたとしても、パワーダウンモードに移行するような動作が実行されない。その場合、電流測定部36には、基準電流より大きく、期待電流ではない動作電流が入力される。よって、電流測定部36は、不正カートリッジ102が接続されたことを示すHレベルの判定信号Judgeを出力する。よって、このとき、アドレス・コマンド制御部34は、不正カートリッジ102に対する通常動作を中止するとともに、エラー信号ERRを出力し、メイン制御部12に不正動作時の動作を実行させる。
【0053】
図7は、第2実施例におけるゲーム機4の動作を説明する図である。図8は、第2実施例において、アドレス・コマンド制御部34に入出力される各信号の例を示す図である。図8には、横軸を時間軸として、アドレス・コマンド制御部34から出力されるクロック信号CLK、イベントEVTとこれに応答してメイン制御部12から電流測定部36及びアドレス・コマンド制御部34に入力されるパワーダウン制御信号PD、電流測定部36からアドレス・コマンド制御部34に入力される判定信号Judge、及びアドレス・コマンド制御部34からメイン制御部12に入力されるエラー信号ERRが示される。また、図8では、図7の手順に対応するタイミングには図7と同じ符号が付してある。
【0054】
図7に従い、図8を参照しつつゲーム機4の動作を説明する。メイン制御部12は、通常動作行っているときに(S20)、イベントEVTが発生すると(S22)、パワーダウン制御信号PDを出力する(S24)。すると、電流測定部36は、手順S26で、動作電流が基準電流より大きいか小さいかを測定する。具体的には、電流測定部36は、接続端子N1の電圧V(a)を基準電圧Vrefと比較し、Vrefより小さいとき(S26の「V(a)<Vref」)、つまり動作電流Iが基準電流より小さい期待電流であるときに、Lレベルの判定信号Judgeを出力する(S28)。アドレス・コマンド制御部34は、これに応答して、通常動作を実行する(S30)。一方、接続端子N1の電圧V(a)が基準電圧Vrefより大きいとき(S26の「V(a)>Vref」)、つまり動作電流Iが基準電流より大きく、期待電流でないときには、Hレベルの判定信号Judgeを出力する(S32)。アドレス・コマンド制御部34は、これに応答して、不正カートリッジ102に対する通常動作を中止し、エラー信号ERRをメイン制御部12に出力する(S34)。そして、メイン制御部12は、不正動作時の動作を実行する(S36)。
【0055】
上記のような手順によれば、正規カートリッジ2または不正カートリッジ102を判別することができる。
【0056】
第2実施例は単独で実施することも可能であるが、第1実施例と同時に実施することが可能である。その場合、電流測定部36は、動作電流を複数の基準電流と比較可能な構成を有する。たとえば、図3で示したような構成を複数設け、それぞれで異なる基準電流を設定しておく。そして、電流測定部36は、リセット信号RESET解除時の動作電流が第1の基準電流より大きいか小さいかを測定する。さらに、電流測定部36は、パワーダウンモード時の動作電流が、第1の基準電流より小さい第2の基準電流に対して、大きいか小さいかを測定する。
【0057】
ここで、不正カートリッジ102はパワーダウンモードを実行しないので、パワーダウンモード時の動作電流を用いることで、確実に正規カートリッジ2または不正カートリッジ102を判別することができる。特に、不正カートリッジ102の待機電流が正規カートリッジ2の待機電流と近似しており、リセット信号RESET解除時の動作電流からは正規カートリッジ2または不正カートリッジ102を判別できない場合であっても、正規カートリッジ2または不正カートリッジ102を判別するさらなる機会を確保できる。また、ゲームの状況に応じたイベントごとにパワーダウンモード時の動作電流に基づく判別を行うようにすれば、仮に正規ゲームプログラムを複製した不正ゲームプログラムが実行されたときであっても、不正カートリッジ102を判別することができ、不正ゲームプログラムの実行を中止することができる。こうして、不正カートリッジ102による正規ゲームプログラムの取得や、不正カートリッジ102による不正ゲームプログラムの実行を防止できる。
【0058】
[第3実施例]
上述の第1、第2実施例では、いずれも基準電流より大きい動作電流のときに期待電流ではないと判定し、不正カートリッジ102が判別された。第3実施例は、正規カートリッジ2に、所定の動作電流、たとえば、正規カートリッジ2や不正カートリッジの待機電流より大きい電流を生成する電流生成回路を設けておきこれを動作させる。そして、かかる電流を判定するための基準電流を設定しておき、基準電流より大きい動作電流のときに期待電流であると判定して正規カートリッジ2と判別し、基準電流より小さい動作電流のときに期待電流でないと判定して不正カートリッジ102と判別する。
【0059】
図9は、第3実施例におけるゲーム機4と正規カートリッジ2の要部の構成を説明する図である。図9の構成のうち、第2実施例における図6の構成と同じ構成には同じ符号が付してある。ここでは、第2実施例と異なる点について説明する。
【0060】
第3実施例では、正規カートリッジ2が、所定の動作電流を生成する電流生成回路38を有する。電流生成回路38は、ゲーム機4から電源端子13を介して供給される電源電圧VDDと、グランド端子15を介して供給されるグランド電位VSSとの間に設けられ、電源電圧VDDとグランド電位VSSが供給されて動作する。
【0061】
一方、ゲーム機4では、メイン制御部12が、アドレス・コマンド制御部34に、所定のイベントが発生したときにテストエントリ制御信号TENを入力する。所定のイベントは、たとえば、正規カートリッジ2の動作電流が低下するようなイベントである。ゲーム機4の蓋が閉じられたときや、一定時間以上操作入力がなされないとき、あるいは、正規ゲームプログラムの実行中に、ゲームのステージをクリアしたりネットワークに接続されたりしたときが含まれる。あるいは、ゲーム機4の起動時において、リセット信号RESETが解除されたときであってもよい。すると、アドレス・コマンド制御部34は、電流測定部36とカートリッジ2のアドレス・コマンド制御部42に、テストエントリ制御信号TENを入力する。
【0062】
正規カートリッジ2では、アドレス・コマンド制御部42は、テストエントリ制御信号TENが入力されると、電流生成回路38にテストエントリ信号TENを出力する。電流生成回路38は、テストエントリ制御信号TENに応答して、所定の動作電流を生成してグランド端子15に出力する。ここで、正規カートリッジ2の動作電流が低下するようなイベントでテストエントリ信号TENが出力される。また、アドレス・コマンド制御部42は、テストエントリ信号TENに応答して、一時的に動作電流を低下させるようなモード(たとえばパワーダウンモード)に移行する。そうすることで、電流生成回路38により生成された動作電流にアドレス・コマンド制御部42等の動作電流が加算されることなく、ゲーム機4の電流測定部36に入力される。
【0063】
一方、電流測定部36では、電流生成回路38により生成される電流より小さく、かつ不正カートリッジ102の動作電流より大きい基準電流を設定しておく。そして、電流測定部36は、テストエントリ信号TENが入力されると、これに応答して、正規カートリッジ2から入力される電流が基準電流より大きいか、小さいかを測定する。そして、電流測定部36に入力される電流が基準電流より大きいとき、つまり入力される電流が期待電流であるときには、電流測定部36は正規カートリッジ2が接続されたことを示す判定信号Judgeを出力する。よって、このとき、アドレス・コマンド制御部34は、通常動作を実行する。
【0064】
ここで、不正カートリッジ102は、テストエントリ制御信号TENに応答して所定の動作電流を出力する構成を有さないので、不正カートリッジ102が接続されたときには、電流測定部36には、基準電流より小さい動作電流が入力される。よって、このとき、電流測定部36は、不正カートリッジ2が接続されたことを示す判定信号Judgeを出力する。すると、アドレス・コマンド制御部34は、不正カートリッジ102に対する通常動作を中止するとともに、エラー信号ERRを出力し、メイン制御部12に不正動作時の動作を実行させる。
【0065】
図10は、電流生成回路38の構成例を説明する図である。電流生成回路38は、テストエントリ制御信号TENがゲートに入力され、ドレイン側が電源電圧VDD、ソース側がグランド電位VSSに接続されるFET(電界効果型トランジスタ)39を有する。この電流生成回路38では、Hレベルのテストエントリ制御信号TENがFET39のゲートに入力されると、電源電圧VDDとFET39の抵抗値に応じた、たとえば数十〜数百mAのドレイン−ソース電流I2が流れる。よって、ゲーム機4のグランド端子15に、電流I2が入力される。
【0066】
図11は、第3実施例における電流測定部36の構成例を示す。電流測定部36は、電圧比較器37aを有する。電圧比較器37aの反転入力端子は接続端子N1と接続される。接続端子N1にはグランド端子15が接続され、電流生成回路38から出力された電流I2が入力される。接続端子N1とグランド電位VSSの間には、抵抗R2が設けられる。
【0067】
上記の構成において、電流I2と抵抗R2の抵抗値とに応じた接続端子N1の電圧V(a)が、電圧比較器37aの反転入力端子に入力される。電圧比較器37aの非反転入力端子には、基準電圧Vref2が入力される。電圧比較器37aは、反転入力端子に入力される電圧V(a)の方が基準電圧Vref2より小さければ、Hレベルの判定信号Judgeを出力する。一方、反転入力端子に入力される電圧の方が基準電圧Vref2より大きければ、Lレベルの判定信号Judgeを出力する。ここで、抵抗R2の抵抗値に対し、接続端子N1の電圧V(a)が基準電圧Vref2と一致するような電流が基準電流に対応する。
【0068】
上記の構成によれば、接続端子N1に基準電流より大きい動作電流I2が入力されたとき、つまり動作電流が期待電流のときには、正規カートリッジ2が接続されたことを示すLレベルの判定信号Judgeが出力される。すると、アドレス・コマンド制御部34は、Lレベルの判定信号Judgeに応答して、通常動作を実行する。一方、基準電流より小さい動作電流が入力されたとき、つまり動作電流が期待電流ではないときには、不正カートリッジ102が接続されたことを示すHレベルの判定信号Judgeが出力される。すると、アドレス・コマンド制御部34は、Hレベルの判定信号Judgeに応答して、通常動作の実行を中止し、エラー信号ERRを出力してメイン制御部12に不正動作時の動作を実行させる。
【0069】
図12は、第3実施例におけるゲーム機4の動作を説明する図である。図12は、第2実施例における図7と手順S24aとS26aが異なるが、他の手順は図7と同じである。図13は、第3実施例において、アドレス・コマンド制御部34に入出力される各信号の例を示す図である。図13には、横軸を時間軸として、アドレス・コマンド制御部34から出力されるクロック信号CLK、イベントEVTとこれに応答してメイン制御部12から電流測定部36及びアドレス・コマンド制御部34に入力されるテストエントリ信号TEN、電流測定部36からアドレス・コマンド制御部34に入力される判定信号Judge、及びアドレス・コマンド制御部34からメイン制御部12に入力されるエラー信号ERRが示される。また、図13では、図12の手順に対応するタイミングには図12と同じ符号が付してある。
【0070】
図12に従い、図13を参照しつつゲーム機4の動作を説明する。メイン制御部12は、通常動作行っているときに(S20)、イベントEVTが発生すると(S22)、テストエントリ信号TENを出力する(S24a)。すると、電流測定部36は、手順S26aで、動作電流が基準電流より大きいか小さいかを測定する。具体的には、電流測定部36は、接続端子N1の電圧V(a)を基準電圧Vref2と比較し、Vref2より大きいとき(S26aの「V(a)>Vref2」)、つまり電流I2が基準電流より大きい期待電流であるときに、Lレベルの判定信号Judgeを出力する(S28)。アドレス・コマンド制御部34は、これに応答して、継続して通常動作を実行する(S30)。一方、接続端子N1の電圧V(a)が基準電圧Vref2より小さいとき(S26aの「V(a)<Vref2」)、つまり電流I2が基準電流より小さく、期待電流でないときには、Hレベルの判定信号Judgeを出力する(S32)。アドレス・コマンド制御部34は、これに応答して、不正カートリッジ102に対するデータの読み書きを中止し、エラー信号ERRをメイン制御部12に出力する(S34)。そして、メイン制御部12は、警告の表示や音声出力など不正動作時の動作を実行する(S36)。
【0071】
上記のような手順により、電流生成回路を有さない不正カートリッジを確実に判別でき、不正カートリッジ102による正規ゲームプログラムの取得や、不正カートリッジ102による不正ゲームプログラムの実行を防止できる。
【0072】
[第4実施例]
第4実施例は、上述した第1実施例と第3実施例を組み合わせた実施例である。第4実施例では、複数のタイミングで正規カートリッジ2または不正カートリッジ102から入力される動作電流が、期待電流か否か判定される。そして、それぞれのタイミングで、期待電流が異なる。
【0073】
第4実施例は、図9で示したゲーム機4と正規カートリッジ2の要部の構成が適用される。また、第4実施例では、電流測定部36は、第1実施例での構成と第3実施例での構成との組合せにより構成される。たとえば、電流測定部36は、まず、ゲーム機4起動時のリセット信号RESET解除時の動作電流が基準電流より大きいか小さいかを測定し、次に、テストエントリ信号TEN出力時の動作電流が基準電流より大きいか小さいかを測定する。そして、それぞれの場合の測定結果に応じて、アドレス・コマンド制御部34は、通常動作の実行/中止を行う。
【0074】
図14は、第4実施例における電流測定部36の構成について説明する図である。電流測定部36は、グランド端子15に接続される接続端子N1と、接続端子N1と接続される第1の電流測定部36a、第2の電流測定部36bと、テストエントリ制御信号TENが入力されてその反転信号を出力するインバータ43と、電流測定部36aの出力信号Mout1とインバータ43の出力信号とが入力されるAND回路41と、電流測定部36bの出力信号Mout2とテストエントリ制御信号TENとが入力されるAND回路42と、AND回路41、42の出力信号Jin1、Jin2が入力されるOR回路44とを有する。
【0075】
電流測定部36aは、第1実施例における電流測定部36に対応し、待機電流を測定するための構成を有する。たとえば、電流測定部36aでは、非反転入力端子に接続端子N1の電圧V(a)が入力され、反転入力端子には基準電圧Vref1が入力される。一方、電流測定部36bは、第3実施例における電流測定部36に対応し、電流生成回路38による動作電流を測定するための構成を有する。よって、電流測定部36bには、電流測定部36aの基準電流より大きい基準電流が設定される。電流測定部36bでは、反転入力端子に接続端子N1の電圧V(a)が入力され、非反転入力端子には基準電圧Vref2(>Vref1)が入力される。
【0076】
上記のような構成において、まず、テストエントリ制御信号TENがLレベルのとき、つまり、正規カートリッジ2が接続された場合であってもその電流生成回路38が動作しないときには、電流測定部36は、リセット信号RESET解除時に測定を行う。すなわち、電流測定部36は、グランド端子15を介して接続端子N1に入力される待機電流が基準電流より大きいか小さいか測定する。
【0077】
テストエントリ制御信号TENがLレベルのとき、インバータ43が出力する反転信号はHレベルとなる。よって、AND回路41には、電流測定部36aの出力信号Mout1と、Hレベルの反転信号が入力される。よって、AND回路40からは、電流測定部36aの出力信号Mout1に対応するレベルの出力信号Jin1が出力される。一方、AND回路42には電流測定部36bの出力信号Mout2とLレベルのテストエントリ信号TENとが入力されるので、Lレベルの出力信号Jin2が出力される。よって、OR回路44は、AND回路41の出力信号Jin1とAND回路42のLレベルの出力信号Jin2が入力され、その論理和、つまりAND回路41の出力信号Jin1のレベルに対応したレベルの判定信号Judgeが出力される。つまり、このとき、電流測定部36aによる測定結果が用いられる。
【0078】
ここで、正規カートリッジ2が接続されたときには、基準電流より小さい待機電流が動作電流として入力されるので、接続端子N1の電圧V(a)が電流測定部36aの基準電圧Vref1より小さくなり、電流測定部36aからLレベルの出力信号Mout1が出力される。よって、このとき、正規カートリッジ2が接続されたことを示すLレベルの判定信号Judgeが電流測定部36から出力される。一方、不正カートリッジ102が接続されたときには、基準電流より大きい待機電流が動作電流として入力されるので、接続端子N1の電圧V(a)が電流測定部36aの基準電圧Vref1より大きくなり、電流測定部36aからHレベルの出力信号Mout1が出力される。よって、このとき、不正カートリッジ102が接続されたことを示すHレベルの判定信号Judgeが電流測定部36から出力される。
【0079】
次に、テストエントリ制御信号TENがHレベルのとき、つまり、正規カートリッジ2が接続されていればその電流生成回路38が動作するときには、電流測定部36は、正規カートリッジ2または不正カートリッジ102が出力する電流を用いて、正規カートリッジ2または不正カートリッジ102を判別する。テストエントリ制御信号TENがHレベルのとき、インバータ43の反転出力信号はLレベルとなる。よって、AND回路40には電流測定部36aの出力信号Mout1とLレベルの反転信号が入力され、Lレベルの出力信号Jin1が出力される。一方、AND回路42には、Hレベルのテストエントリ信号TENと電流測定部36bの出力信号Mout2が入力される。よって、AND回路42は、電流測定部36bの出力信号Mout2のレベルに対応するレベルの出力信号Jin2を出力する。よって、OR回路44は、AND回路41のLレベルの出力信号Jin1とAND回路42の出力信号Jin2が入力され、その論理和、つまりAND回42の出力信号Jin2のレベルに対応したレベルの判定信号Judgeが出力される。つまり、このとき、電流測定部36bによる測定結果が用いられる。
【0080】
ここで、正規カートリッジ2が接続されたときには、基準電流より大きい電流が入力されるので、接続端子N1の電圧V(a)が電流測定部36bの基準電圧Vref2より大きくなり、電流測定部36bからLレベルの出力信号Mout2が出力される。よって、このとき、正規カートリッジ2が接続されたことを示すLレベルの判定信号Judgeが電流測定部36から出力される。一方、不正カートリッジ102が接続されたときには、基準電流より小さい電流が入力されるので接続端子N1の電圧V(a)が電流測定部36bの基準電圧Vref2より小さくなり、電流測定部36bからHレベルの出力信号Mout2が出力される。よって、このとき、不正カートリッジ102が接続されたことを示すHレベルの判定信号Judgeが電流測定部36から出力される。
【0081】
図15は、第4実施例におけるゲーム機4の動作を説明する図である。図15では、手順S2〜S10及び手順S12〜S16が、図4で示した第1実施例における手順に対応し、手順S22以降が、図7で示した第3実施例における手順のうちの手順S22以降に対応する。図16は、第4実施例において、アドレス・コマンド制御部34に入出力される各信号の例を示す図である。図16には、横軸を時間軸として、アドレス・コマンド制御部34から出力されるクロック信号CLK、メイン制御部12から電流測定部36及びアドレス・コマンド制御部34に入力されるリセット信号RESET、イベントEVTが発生したときにメイン制御部12から電流測定部36及びアドレス・コマンド制御部34に入力されるテストエントリ信号TEN、電流測定部36からアドレス・コマンド制御部34に入力される判定信号Judge、及びアドレス・コマンド制御部34からメイン制御部12に入力されるエラー信号ERRが示される。また、図16では、図15の手順に対応するタイミングには図15と同じ符号が付してある。
【0082】
図15に従い、図16を参照しつつゲーム機4の動作を説明する。ユーザが電源スイッチをオンしたり、ゲーム機4の蓋を開けたりすることで、ゲーム機4に電源が投入される(S2)。すると、メイン制御部12は、リセット信号RESETを出力し、これを解除する(S4)。すると、電流測定部36は、手順S6で動作電流が基準電流より大きいか小さいかを測定する。具体的には、電流測定部36は、接続端子N1の電圧V(a)が電流測定部36aの基準電圧Vref1より小さいとき(S6の「V(a)<Vref1」)、つまりカートリッジから入力される電流が基準電流より小さい期待電流であるときに、Lレベルの判定信号Judgeを出力する(S8)。アドレス・コマンド制御部34は、これに応答して、通常動作を実行する(S10)。一方、接続端子N1の電圧V(a)が基準電圧Vref1より大きいとき(S6の「V(a)>Vref1」)、つまりカートリッジから入力される電流が基準電流より大きく、期待電流でないときには、Hレベルの判定信号Judgeを出力する(S12)。アドレス・コマンド制御部34は、これに応答して、不正カートリッジ102に対するデータの読み書きを中止し、エラー信号ERRをメイン制御部12に出力する(S14)。そして、メイン制御部12は、不正動作時の動作を実行する(S16)。
【0083】
そして、メイン制御部12は、通常動作を実行しているときにイベントEVTが発生すると(S22)、テストエントリ信号TENを出力する(S24a)。すると、電流測定部36は、手順S26aで動作電流が基準電流より大きいか小さいかを測定し、接続端子N1の電圧V(a)が電流測定部36bの基準電圧Vref2より大きいとき(S26aの「V(a)>Vref2」)、つまりカートリッジから入力される動作電流が基準電流より大きい期待電流であるときに、Lレベルの判定信号Judgeを出力する(S28)。アドレス・コマンド制御部34は、これに応答して、通常動作を継続して実行する(S30)。一方、接続端子N1の電圧V(a)が基準電圧Vref2より小さいとき(S26aの「V(a)<Vref2」)、つまりカートリッジから入力される電流が基準電流より小さく、期待電流でないときには、Hレベルの判定信号Judgeを出力する(S32)。アドレス・コマンド制御部34は、これに応答して、不正カートリッジ102に対する通常動作を中止し、エラー信号ERRをメイン制御部12に出力する(S34)。そして、メイン制御部12は、不正動作時の動作を実行する(S36)。
【0084】
このようにして、第4実施例では、複数のタイミングで正規カートリッジ2または不正カートリッジ102の電流が期待電流か否かを判定するので、正規カートリッジ2または不正カートリッジ102を判別するためのより多くの機会を確保できる。そして、それぞれのタイミングで異なる基準電流を用いることで、より確実に不正カートリッジ102を判別することができる。
【0085】
このように、第4実施例によれば、複数のタイミングにおいて動作電流を測定するので、正規カートリッジ2または不正カートリッジ102を判別するためのより多くの機会を確保できる。そして、それぞれのタイミングで異なる基準電流を用いることで、より確実に不正カートリッジ102を判別することができる。
【0086】
なお、上述の説明では第1、第3実施例の組合せによる第4実施例を示したが、第1〜第3実施例は、それぞれ単独で実施することもできるし、いずれか2つ以上の組合せにより実施することもできる。たとえば、第2、第3実施例の組合せにおいて、パワーダウンモード時の動作電流を電流測定部36aで判定し、テストエントリ制御信号TEN出力時の動作電流を電流測定部36bで判定してもよい。あるいは、第1〜第3実施例のすべての組合せにおいて、電流測定部36aを2つ設け、それぞれで異なる基準電流を設定してもよい。たとえば、リセット信号RESET解除時に待機電流が第1の基準電流より大きいか小さいかを測定し、その後、パワーダウン制御信号PD出力時に動作電流が第2の基準電流(第1の基準電流より小さい)より大きいか小さいかを測定し、さらに、別のタイミングでテストエントリ制御信号TENを出力して、そのときの動作電流を電流測定部36bで測定してもよい。このようにすることで、さらに多くのタイミングと基準電流の組合せにより、で不正カートリッジ102をより確実に判別できる。
【0087】
[第5実施例]
第5実施例は、電流測定部36の変形例に関する。第5実施例は、上述した第1〜第4実施例のいずれかとともに実施できる。ここでは、第1実施例とともに実施する場合について説明する。
【0088】
図17は、第5実施例におけるゲーム機4と正規カートリッジ2の要部の構成を説明する図である。図17の構成のうち、第1実施例における図2の構成と同じ構成には同じ符号が付してある。ここでは、第1実施例と異なる点について説明する。
【0089】
第5実施例では、電流測定部36は、ADコンバータを有する。メイン制御部12は、たとえば、所定のイベントが発生したときに、電流値を要求するための制御信号Ireqをアドレス・コマンド制御部34に入力する。すると、アドレス・コマンド制御部34は、制御信号Ireqを電流測定部36に入力する。
【0090】
電流測定部36は、制御信号Ireqに応答して、入力される動作電流に応じた電圧をデジタル値に変換し、動作電流の電流値を示す電流値信号IOUTとしてアドレス・コマンド制御部34に入力する。ここでは、電流測定部36は、その分解能に応じた精度で動作電流の電流値を測定し、電流値を示す電流値信号IOUTを出力する。
【0091】
アドレス・コマンド制御部34は、期待電流に対応する電流値信号IOUTが入力されたとき、つまり正規カートリッジ2が接続されたときには、通常動作を実行する。期待電流は、たとえばリセット信号RESET解除時であれば待機電流である。あるいは、第2、第3実施例との組合せの場合、パワーダウンモード時の動作電流や、電流生成回路38により生成される電流であってもよい。一方、アドレス・コマンド制御部34は、期待電流に対応する信号IOUTが入力されないとき、つまり不正カートリッジ102が接続されたときには、通常動作を中止し、不正時の動作をメイン制御部12に実行させるためのエラー信号ERRを出力する。
【0092】
このような第5実施例では、基準電流に対する動作電流の大小により動作電流が期待電流か否かを判定する場合より、精度よく動作電流が期待電流と一致するか否かを判定することができ、したがって正規カートリッジ2または不正カートリッジ102を判別することができる。また、複数のタイミングで異なる期待電流か否かを判定する場合、電流測定部36の分解能に応じ、電流値が期待電流と一致するか否かを判定することができる。よって、たとえば第4実施例で示した電流測定部36の場合より精度良く判定が行える。
【0093】
図18は、第5実施例におけるゲーム機4の動作を説明する図である。図19は、第5実施例において、アドレス・コマンド制御部34に入出力される各信号の例を示す図である。図19には、横軸を時間軸として、アドレス・コマンド制御部34から出力されるクロック信号CLK、メイン制御部12から電流測定部36及びアドレス・コマンド制御部34に入力される電流要求信号Ireq、電流測定部36からアドレス・コマンド制御部34に入力される信号IOUT、及びアドレス・コマンド制御部34からメイン制御部12に入力されるエラー信号ERRが示される。また、図19では、図18の手順に対応するタイミングには図18と同じ符号が付してある。
【0094】
図18に従い、図19を参照しつつゲーム機4の動作を説明する。アドレス・コマンド制御部34は、電源が投入されて(S40)通常動作行っているときに(S42)、メイン制御部12から制御信号Ireqが入力されて電流値が要求されると、これを電流測定部36に入力する(S44)。すると、電流測定部36はこれに応答して電流値を示す信号IOUTを出力するので、アドレス・コマンド制御部34は信号IOUTにより電流値を取得する(S46)。そして、アドレス・コマンド制御部34は、電流値が期待電流と一致するときには(S48の「一致」)、通常動作を実行する(S52)。一方、期待電流と不一致のときには(S48の「不一致」)、アドレス・コマンド制御部34は、不正カートリッジ102に対する通常動作を中止し、エラー信号ERRをメイン制御部12に出力する(S54)。そして、メイン制御部12は、不正動作時の動作を実行する(S56)。
【0095】
上記のような手順により、確実に正規カートリッジ2または不正カートリッジ102を判別することができる。よって、不正カートリッジ102による正規ゲームプログラムの取得や、不正カートリッジ102による不正ゲームプログラムの実行を防止できる。
【0096】
また、第5実施例の変形例では、第3実施例のような電流生成回路38を正規カートリッジ2に設けておき、テストエントリ信号TENにより所定の動作電流を出力させ、これが期待電流と一致するか否かにより正規カートリッジ2または不正カートリッジ102を判別してもよい。その場合において、判別のタイミングごとに異なる期待電流を用いても良い。たとえば、リセット信号RESET解除時と、所定のイベントが発生したときに電流値を取得するようにした場合、リセット信号RESET解除時に動作電流として取得する待機電流と、イベント発生時にテストエントリ信号TENを出力して取得する動作電流とで異なる期待電流を用いることができる。たとえば、アドレス・コマンド制御部34は、それぞれのタイミングで異なる期待電流を用いて、電流値がこれと一致するか否かの判断を行う。さらに、電流生成回路38を、テストエントリ信号TENのレベルやデジタル値に応じて異なる電流を生成するように構成しておき、テストエントリ信号TENごとに、取得する電流とこれに対する基準電流とを変更してもよい。そうすることで、期待電流と判別のタイミングの組合せ数を増加させることができる。よって、より高い確度で、正規カートリッジ2または不正カーとリッジ102を判別することができる。
【0097】
上述したとおり、本実施形態によれば、不正カートリッジによる正規ゲームプログラムの取得や、不正カートリッジによる不正ゲームプログラムの実行を防止できる。
【0098】
なお、上述において、ゲーム機とカートリッジを例として説明したが、本実施形態は、かかる例に限定されない。たとえば、認証情報を格納したSIMカード(記憶装置)と、認証成功時に所定の動作を行う携帯電話機(情報処理装置)にも、本実施形態は適用できる。
【0099】
以上の実施の形態をまとめると、次の付記のとおりである。
【0100】
(付記1)
記憶装置の内部回路に電源電圧を供給する電源端子と、
前記内部回路に接続されるグランド端子と、
前記グランド端子に入力される前記内部回路の動作電流を測定する電流測定部と、
前記動作電流が期待電流であるときに前記記憶装置へのデータの入出力を実行し、前記動作電流が前記期待電流でないときに前記記憶装置へのデータの入出力を実行しない記憶制御部とを有する情報処理装置。
【0101】
(付記2)
付記1において、
前記動作電流が前記期待電流でないときに、警告を示す情報を出力する情報処理装置。
【0102】
(付記3)
付記1または2において、
前記電流測定部は、前記内部回路が前記記憶装置内の記憶媒体にデータの読み出しまたは書き込みを開始する前に、前記動作電流を測定する情報処理装置。
【0103】
(付記4)
付記1または2において、
前記記憶制御部は前記記憶装置に前記期待電流に対応する前記動作電流を出力させるための制御信号を前記記憶装置に出力し、
前記電流測定部は、前記記憶制御部が前記制御信号を前記記憶装置に出力したときに前記動作電流を測定する情報処理装置。
【0104】
(付記5)
付記4において、
前記制御信号は、前記記憶装置に前記動作電流を低下させるためのパワーダウン制御信号であり、
前記電流測定部は、前記記憶装置が前記パワーダウン制御信号に応答して出力する前記動作電流を測定する情報処理装置。
【0105】
(付記6)
付記4において、
前記制御信号は、前記記憶装置に所定の動作電流を生成させるためのテストエントリ制御信号であり、
前記電流測定部は、前記記憶装置が前記テストエントリ制御信号に応答して出力する前記動作電流を測定する情報処理装置。
【0106】
(付記7)
付記1または2において、
前記期待電流は、前記動作電流が入力されるタイミングに応じて異なる情報処理装置。
【0107】
(付記8)
付記1乃至7のいずれかにおいて
前記電流測定部は、前記動作電流が前記期待電流の大きさを示す電流値信号を前記記憶制御部に出力し、
前記記憶制御部は、前記電流値信号が前記期待電流に対応するときに前記記憶装置へのデータの入出力を実行し、前記電流値信号が前記期待電流に対応しないときに前記記憶装置へのデータの入出力を実行しない情報処理装置。
【0108】
(付記9)
付記4において、
前記記憶装置にはゲームプログラムが格納され、
前記記憶制御部は、前記記憶装置から前記ゲームプログラムを読み出し、前記ゲームプログラムの実行中に所定のイベントが発生したときに、前記制御信号を前記記憶装置に出力する情報処理装置。
【符号の説明】
【0109】
2:正規カートリッジ、 4:ゲーム機、 10:記憶制御部、 11:接続部、
12:メイン制御部、 13:電源端子、15:グランド端子、36:電流測定部、
38:電流生成回路、102:不正カートリッジ

【特許請求の範囲】
【請求項1】
記憶装置の内部回路に電源電圧を供給する電源端子と、
前記内部回路に接続されるグランド端子と、
前記グランド端子に入力される前記内部回路の動作電流を測定する電流測定部と、
前記動作電流が前記期待電流であるときに前記記憶装置へのデータの入出力を実行し、前記動作電流が前記期待電流でないときに前記記憶装置へのデータの入出力を実行しない記憶制御部とを有する情報処理装置。
【請求項2】
請求項1において、
前記動作電流が前記期待電流でないときに、警告を示す情報を出力する情報処理装置。
【請求項3】
請求項1または2において、
前記電流測定部は、前記内部回路が前記記憶装置内の記憶媒体にデータの読み出しまたは書き込みを開始する前に、前記動作電流を測定する情報処理装置。
【請求項4】
請求項1または2において、
前記記憶制御部は前記記憶装置に前記期待電流に対応する前記動作電流を出力させるための制御信号を前記記憶装置に出力し、
前記電流測定部は、前記記憶制御部が前記制御信号を前記記憶装置に出力したときに前記動作電流を測定する情報処理装置。
【請求項5】
請求項1または2において、
前記期待電流は、前記動作電流が入力されるタイミングに応じて異なる情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2012−59104(P2012−59104A)
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願番号】特願2010−202850(P2010−202850)
【出願日】平成22年9月10日(2010.9.10)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】