JP2005144055A - ゲームデータ制御プログラム、ゲームデータ書換プログラムおよびゲームデータ書換装置 - Google Patents

ゲームデータ制御プログラム、ゲームデータ書換プログラムおよびゲームデータ書換装置 Download PDF

Info

Publication number
JP2005144055A
JP2005144055A JP2003389769A JP2003389769A JP2005144055A JP 2005144055 A JP2005144055 A JP 2005144055A JP 2003389769 A JP2003389769 A JP 2003389769A JP 2003389769 A JP2003389769 A JP 2003389769A JP 2005144055 A JP2005144055 A JP 2005144055A
Authority
JP
Japan
Prior art keywords
game
game data
storage area
storage
address
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
JP2003389769A
Other languages
English (en)
Other versions
JP4159973B2 (ja
Inventor
Satoshi Mitsuhara
▲敏▼ 三津原
Hitoshi Yamagami
仁志 山上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Creatures Inc
Original Assignee
Nintendo Co Ltd
Creatures Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=34431584&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2005144055(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Nintendo Co Ltd, Creatures Inc filed Critical Nintendo Co Ltd
Priority to JP2003389769A priority Critical patent/JP4159973B2/ja
Priority to US10/974,756 priority patent/US7682252B2/en
Priority to EP04025769.3A priority patent/EP1533011B1/en
Publication of JP2005144055A publication Critical patent/JP2005144055A/ja
Application granted granted Critical
Publication of JP4159973B2 publication Critical patent/JP4159973B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/533Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game for prompting the player, e.g. by displaying a game menu
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/73Authorising game programs or game devices, e.g. checking authenticity
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/92Video game devices specially adapted to be hand-held while playing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/95Storage media specially adapted for storing game information, e.g. video game cartridges
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/201Playing authorisation given at platform level
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/204Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform the platform being a handheld device
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/206Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/30Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
    • A63F2300/308Details of the user interface
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5526Game data structure
    • A63F2300/554Game data structure by saving game or status data
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/63Methods for processing data by generating or executing the game program for controlling the execution of the game in time
    • A63F2300/636Methods for processing data by generating or executing the game program for controlling the execution of the game in time involving process of starting or resuming a game

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Optics & Photonics (AREA)
  • Storage Device Security (AREA)
  • Slot Machines And Peripheral Devices (AREA)

Abstract

【課題】 一般ユーザによる安易なゲームデータの改変を防止する。
【解決手段】 まず、ゲームデータの配置に先立って、各ゲームパラメータ値が配置の度に異なる格納領域に配置されるように、内部メモリにおけるゲームデータの格納領域を設定する。次に、各ゲームパラメータ値の格納領域を直接的にまたは間接的に示す配置情報を前記内部メモリの特定領域に格納する。そして、こうして設定された格納領域に外部記憶媒体からゲームデータをロードする。さらに、ゲーム処理において内部メモリ内のゲームパラメータ値を参照または書換える必要があったときに、配置情報を参照して当該ゲームパラメータ値の格納領域を判定する。
【選択図】 図5

Description

本発明は、ゲームデータ制御プログラム、ゲームデータ書換プログラムおよびゲームデータ書換装置に関し、より特定的には、外部記憶媒体に記憶されたゲーム進行状況を示す複数のゲームパラメータ値から成るゲームデータをゲーム処理において利用すべくゲーム装置の内部メモリに配置する技術に関する。
従来のゲーム機では、ゲームプログラムが実行されてゲームが進行すると、ゲームの進行状況に応じたゲームデータがゲーム機本体に内蔵された内部メモリ内に生成される。そして、プレイヤがゲームを中断する場合には、この内部メモリに格納されているゲームデータが、ゲーム装置に着脱自在に装着されているメモリカードに一時的に保存される。その後、プレイヤがゲームを再開するときに、メモリカードに一時的に保存されていたゲームデータが内部メモリにロードされる。こうして内部メモリにロードされたゲームデータを参照してゲーム処理を実行することにより、プレイヤは、中断直前の状態からゲームを再開することができる。
ところで、中断したゲームを再開するとき、メモリカードに保存されていたゲームデータは、常に内部メモリの特定の格納アドレスにロードされる。例えば、ゲームデータに含まれる特定のゲームパラメータの値(例えば、プレイヤキャラクタのライフポイントを示す値)は、常に内部メモリの特定の領域にロードされる。このため、ゲーム処理においては、参照しようとするゲームパラメータに対応する特定のアドレスを参照することによって、そのゲームパラメータの値を直ちに認識できる。具体的には、内部メモリの第1の格納アドレスにはプレイヤキャラクタのライフポイントの数値が記憶され、第2の格納アドレスにはゲーム空間におけるプレイヤキャラクタの位置座標の数値が記憶され、第3の格納アドレスにはゲーム空間における所持金額の数値が記憶され、第4〜10の格納アドレスにはプレイヤキャラクタが捕まえたモンスターの種類を示す数値などが記憶されるようになっている。
このように、ゲームデータによってゲームの途中の状態が再現できることが知られているので、このゲームデータを書き換えて、例えばゲーム世界におけるお金を増やしたり、ゲームキャラクタのパラメータを最大限にするなどの改変を行なうためのゲームデータ書換装置などが販売されている。
ここで、メモリカードなどのバックアップメモリに記憶されたゲームデータは、上記のような改変を防止するために、暗号化されている場合がある(例えば、特許文献1参照。)。この場合、バックアップメモリに記憶されたゲームデータを改変するためには暗号を解読する必要があるため、ゲームデータを書き換えることは実質困難であった。
そこで、バックアップメモリに記憶されたゲームデータを改変するのではなく、バックアップメモリから内部メモリにロードされたゲームデータをゲーム処理中に適宜に書き換えることのできるゲームデータ書換装置が登場している。
このようなゲームデータ書換装置を利用するユーザは、ゲーム画面に表示される数値などを手がかりに、内部メモリにおいて当該数値が記憶されている格納アドレスを発見する。具体的には、ゲーム画面に例えば所持金額が表示されている場合、内部メモリに記憶されているゲームデータの中から当該所持金額に一致する数値を探しだし、当該数値が記憶されている内部メモリの格納アドレスを見つけるという作業が行われる。その結果、プレイヤは、特定のゲームパラメータの値の格納アドレスを知ることができる。この格納アドレスに記憶されている値を任意に書換えることで、プレイヤは特定のゲームパラメータの値を任意に操作することができる。
なお、プログラムの改変を検知するための発明として、特許文献2に記載のプログラムの起動方法が存在するが、この発明は、プログラムの立ち上げ時にチェックサムを用いてプログラムの改変を検知するものであって、内部メモリに記憶されているデータの書き換えを防止するものではない。
特開2001−265658号公報 特開平7−44378号公報
上記のようにして、あるプレイヤによって、特定のゲームパラメータの格納アドレスが知られてしまうと、その情報がインターネットや雑誌などの媒体を通じて不特定多数のユーザに知られてしまう可能性がある。ところで、上記のような作業によってどのゲームパラメータがどのアドレスに格納されているかを特定することは、ある程度の技術知識が必要であるとともに大変な手間がかかるので、一般のユーザにとっては難しい。ところが、どのゲームパラメータがどのアドレスに格納されているかという情報が一旦公開されてしまうと、一般のユーザでも容易にゲームデータを改変することができるようになってしまう。
そうすると、ゲームデータ書換装置を購入することで、誰でも簡単にゲームデータを改変することができるようになるので、多数のプレイヤによってゲームデータの改変が行なわれ、ゲーム製作者が意図しないような状態でゲームが進行してしまう。その結果、ゲームの面白さが半減したり、ゲーム性が崩れてしまう可能性がある。また、特に、ネットワークゲームなどでは、ゲームデータの改変によって異常に強いプレイヤキャラクタが生成されてしまうと、普通に生成された他のプレイヤキャラクタとの能力の均衡がとれず、ゲームバランスが崩れてしまうという問題もあった。さらに、このようなゲームデータの改変は、著作権侵害(例えば、平成13年2月13日、最高裁判決、平成11年(受)第955号)を助長するという問題もある。
このような問題を回避するため、内部メモリに記憶されたゲームデータを暗号化することも考えられるが、複雑な暗号データの復元処理は処理負担が非常に高くなるので、ゲームプログラムの実行にも影響を及ぼしかねないという問題がある。また、ゲームの開発段階におけるデバックのために内部メモリのゲームデータを参照したり書換えたい場合に、作業が煩雑になるという問題もある。
つまり、ゲームデータの書換えを必要以上に困難にしすぎると、ゲームプログラムによって読み出すときの処理負荷が高くなり、またデバッグのための作業が煩雑になる可能性もあり、デバッグのための作業を容易にするために内部メモリに格納されるゲームデータを従来のままにしておくとデータ改変が容易に行なわれてしまうという問題がある。
上記課題を解決するために、本発明は下記の構成を採用した。なお、括弧内の参照符号等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
本発明の第1のゲームデータ制御プログラムは、ゲーム装置(13)に接続された外部記憶媒体(23)に記憶されているゲーム進行状況を示す複数のゲームパラメータ値から成るゲームデータを、ゲーム処理で利用するために当該ゲーム装置の内部メモリ(35)に配置するためのゲームデータ制御プログラムであって、コンピュータを、格納領域設定手段(31、S203)、ゲームデータロード手段(31、S107)、配置情報格納手段(31、S205)および格納領域判定手段(31、S503)として機能させるためのゲームデータ制御プログラムである。格納領域設定手段は、ゲームデータの配置に先立って、各ゲームパラメータ値が配置の度に異なる格納領域に配置されるように、前記内部メモリにおけるゲームデータの格納領域を設定する(図5、図14、図15)。ゲームデータロード手段は、前記外部記憶媒体から前記格納領域設定手段によって設定された格納領域にゲームデータをロードする。配置情報格納手段は、前記格納領域設定手段がゲームデータの格納領域を設定した時に、各ゲームパラメータ値の格納領域を直接的にまたは間接的に示す配置情報(図5、図14、図15)を前記内部メモリの特定領域に格納する。格納領域判定手段は、ゲーム処理において前記内部メモリ内のゲームパラメータ値を参照または書換える必要があったときに、前記配置情報を参照して当該ゲームパラメータ値の格納領域を判定する。
なお、前記格納領域設定手段は、前記内部メモリの少なくとも1つのアドレス(例えば格納先頭アドレス)を指定することによってゲームデータの格納領域を直接的にまたは間接的に設定するものであってもよい。
また、前記ゲームデータ制御プログラムは、前記コンピュータを、ゲーム処理において前記内部メモリ内のゲームデータを前記外部記憶媒体に保存する必要があったときに、前記配置情報を参照して、当該ゲームデータを本来の所定の形式で当該外部記憶媒体に保存するゲームデータセーブ手段(31、S603)としてさらに機能させるものであってもよい。
また、前記格納領域設定手段は、乱数に基づいて前記内部メモリにおけるゲームデータの格納領域を設定するものであってもよい(S201)。
また、前記格納領域設定手段は、ゲームデータの格納領域が配置の度に異なるように、前記内部メモリにおけるゲームデータの格納領域を全体的にシフトさせるためのオフセット値を指定するものであり、前記ロード手段は、前記内部メモリの特定アドレスに対して前記オフセット値を加えたアドレスを基準として、当該内部メモリにゲームデータを各ゲームパラメータの格納位置関係が維持されるように一体的にロードするものであってもよい(図5)。
また、前記格納領域設定手段は、ゲームデータを構成する複数のブロック間の格納位置関係が配置の度に異なるように、前記内部メモリにおけるゲームデータの格納領域をブロック毎に設定するものであってもよい(図14)。また、前記ブロックが、前記内部メモリの1アドレスに対応するデータであってもよい。
また、前記ゲームデータ制御プログラムは、前記コンピュータを、前記内部メモリにロードされた各ゲームパラメータ値の格納領域をゲーム処理中の所定のタイミングで変更する格納領域変更手段(31、S405)、および、前記格納領域変更手段による格納領域の変更結果に基づいて各ゲームパラメータ値を再配置する再配置手段(31、S409)としてさらに機能させるものであり、前記配置情報格納手段は、前記再配置手段が各ゲームパラメータ値を再配置した時に、前記配置情報を更新するものであってもよい(S407)。
本発明の第2のゲームデータ制御プログラムは、ゲーム装置(13)に接続された外部記憶媒体(23)に記憶されているゲーム進行状況を示す複数のゲームパラメータ値から成るゲームデータを、ゲーム処理で利用するために当該ゲーム装置の内部メモリ(35)に配置するためのゲームデータ制御プログラムであって、コンピュータを、ゲームデータロード手段(31、S107)、格納領域変更手段(31、S405)、再配置手段(31、S409)、配置情報格納手段(31、S407)、および格納領域判定手段(31、S503)として機能させるためのゲームデータ制御プログラムである。ゲームデータロード手段は、前記外部記憶媒体から前記内部メモリにゲームデータをロードする。格納領域変更手段は、前記内部メモリにロードされた各ゲームパラメータ値の格納領域をゲーム処理中の所定のタイミングで変更する(図7、図14、図15)。再配置手段は、前記格納領域変更手段による格納領域の変更結果に基づいて各ゲームパラメータ値を再配置する。配置情報格納手段は、前記再配置手段が各ゲームパラメータ値を再配置した時に、各ゲームパラメータ値の格納領域を直接的にまたは間接的に示す配置情報(図5、図14、図15)を前記内部メモリの特定領域に格納する。格納領域判定手段は、ゲーム処理において前記内部メモリ内のゲームパラメータ値を参照または書換える必要があったときに、前記配置情報を参照して当該ゲームパラメータ値の格納領域を判定する。
なお、前記格納領域変更手段は、前記内部メモリの少なくとも1つのアドレス(例えば格納先頭アドレス)を指定することによって、変更後のゲームデータの格納領域を直接的にまたは間接的に設定するものであってもよい。
また、前記ゲームデータ制御プログラムは、前記コンピュータを、ゲーム処理において前記内部メモリ内のゲームデータを前記外部記憶媒体に保存する必要があったときに、前記配置情報を参照して、当該ゲームデータを本来の所定の形式で当該外部記憶媒体に保存するゲームデータセーブ手段(31、S603)としてさらに機能させるものであってもよい。
また、前記格納領域変更手段は、乱数に基づいて前記内部メモリにおけるゲームデータの格納領域を変更するものであってもよい(S201)。
また、前記格納領域変更手段は、前記内部メモリにおけるゲームデータの格納領域を全体的にシフトさせるためのオフセット値を指定することによって前記内部メモリにおけるゲームデータの格納領域を変更するものであり、前記再配置手段は、前記内部メモリの特定アドレスに対して前記オフセット値を加えたアドレスを基準として、当該内部メモリにゲームデータを各ゲームパラメータの格納位置関係が維持されるように一体的に再配置するものであってもよい(図7)。
また、前記格納領域変更手段は、ゲームデータを構成する複数のブロック間の格納位置関係が再配置により変化するように、前記内部メモリにおけるゲームデータの格納領域をブロック毎に変更するものであってもよい(図14)。
また、前記ブロックが、前記内部メモリの1アドレスに対応するデータであってもよい。
本発明の第1のゲームデータ書換プログラムは、第1または第2のゲームデータ制御プログラムによって内部メモリ(35)に記憶されたゲームデータに含まれる所定のパラメータのデータを書換えるためのゲームデータ書換プログラムであって、コンピュータ(79)に、プレイヤに対して第1の検索対象の数値の入力を促すステップ(S703)、前記内部メモリに記憶されるゲームデータの中から前記第1の検索対象の数値に対応する数値を検索し(S707)、当該数値が格納された少なくとも一つの第1格納アドレスを検出するステップ(S709)、前記検出された第1格納アドレスに対して絶対的な関係(例えば、連続する、数アドレス分だけ離れている)にある複数の格納アドレスの数値と前記第1格納アドレスの数値とを指標として、動的に変化する前記格納アドレスの変化を追跡するステップ(S715)、プレイヤに対して第2の検索対象の数値の入力を促すステップ(S721)、前記第2の検索対象の数値に対応する数値を検索し(S725)、当該数値が格納された少なくとも一つの第2格納アドレスを検出するステップ(S727)、前記第2格納アドレスと前記第1格納アドレスとの間で一致する格納アドレスがあるとき、当該格納アドレスを書換対象格納アドレスとして決定するステップ(S731)、プレイヤに対して書換数値の入力を促すステップ(S733)、および、前記書換対象格納アドレスの数値を前記入力された書換数値に書き換えるステップ(S735)を実行させるためのゲームデータ書換プログラムである。
本発明の第2のゲームデータ書換プログラムは、第1または第2のゲームデータ制御プログラムに従って前記内部メモリ(35)に配置されたゲームデータを書換えるためのゲームデータ書換プログラムであって、コンピュータ(79)に、所定のゲームデータを所定の値に書換えるためのコードの入力を受け付けるステップ(S805)、入力されたコードと前記アドレス情報格納手段によって前記内部メモリに格納されたアドレス情報に基づいて、書換え対象となるゲームデータの格納アドレスを判定するステップ(S809)、および、判定の結果得られた格納アドレスに記憶されているゲームデータの値を前記コードが示す値に書換えるステップ(S811)を実行させるためのゲームデータ書換プログラムである。
本発明のゲームデータ書換装置は、第1または第2のゲームデータ書換プログラムを内蔵し、前記ゲーム装置のコンピュータを当該ゲームデータ書換プログラムに基づいて動作させる制御部(79)を備えたゲームデータ書換装置である。
本発明の第1のゲームデータ制御プログラムによれば、バックアップメモリからゲームデータを読み出すたびに、内部メモリの異なる格納アドレスに記憶するようにする。よって、特定のパラメータが記憶された内部メモリの格納アドレスが一度知られてしまっても、次にバックアップメモリからゲームデータが読み出されたときには異なる格納アドレスにそのデータが記憶されるので、雑誌やインターネット上に掲載された格納アドレスのデータを書き換えても、ゲームデータが壊れることになり、一般ユーザによる安易なゲームデータの改変を防ぐことができる。
特に、内部メモリにロードしたゲームデータを再び外部記憶媒体に保存するときに本来の所定の形式に戻して保存するようにすれば、外部記憶媒体に記憶されたゲームデータの形式が統一されるため好ましい。
また特に、内部メモリにおけるゲームデータの格納領域を乱数に基づいて設定するようにすれば、どのゲームパラメータ値が内部メモリのどの領域にロードされるのかを予測することができなくなるため、ゲームデータの改変をより困難にすることができる。
また特に、ゲームデータ全体をロードの度に異なる領域にシフトさせるようにすれば、配置情報として例えばゲームデータの格納領域の先頭アドレスだけを記憶しておくだけでよいため、内部メモリを節約することができる。
また特に、ゲームデータを複数のブロックに分割し、ブロック単位でロードの度に異なる領域にロードするようにすれば、ゲームデータ全体をシフトさせる場合に比べて、特定のゲームデータが内部メモリのどの領域にロードされたかを知ることがより困難となる。なお、ブロックのサイズが小さいほどその困難性は増す。
本発明の第2のゲームデータ制御プログラムによれば、ゲームデータを内部メモリにロードした後に、ゲームデータが記憶されている格納アドレスを動的に変化させる。よって、ゲームが実行されているときにおいても、動的にゲームデータの格納アドレスが変化するので、一般ユーザによる安易なゲームデータの改変をより効果的に防ぐことができる。
本発明の第1のゲームデータ書換プログラムによれば、書換えようとするゲームパラメータ値の格納アドレスをサーチするときに、候補として検出された格納アドレスだけでなく、その格納アドレスと絶対的な関係を有する他のアドレスに記憶されている数値をも考慮して格納アドレスを特定するため、仮に内部メモリにおいてゲームデータの格納アドレスが定期的にシフトする場合であっても書換えようとするゲームパラメータ値の格納アドレスを検出することができる。
本発明の第2のゲームデータ書換プログラムによれば、内部メモリの特定領域に記憶されている配置情報を参照してゲームデータを書換えるため、仮に内部メモリにおいてゲームデータの格納アドレスが定期的に変化する場合であっても、コードを入力するだけで簡単に内部メモリのゲームデータを書換えることができる。
(第1の実施形態)
以下、本発明の第1の実施形態に係るゲームシステムについて図面を参照して説明する。
図1に、ゲームシステムの外観を示す。ゲームシステムは、携帯ゲーム機13とカートリッジ11とで構成される。携帯ゲーム機13には、LCD17や、スピーカ19や、複数の操作キー(例えば、Aボタン15a、Bボタン15b、十字キー15cなど)が設けられている。
次に、図2を参照してゲームシステムの内部構成について説明する。カートリッジ11には、ゲームプログラムが記録されたプログラムROM21や、ゲーム処理の過程で生成されたゲームデータを必要に応じて記憶するためのバックアップRAM23が設けられている。バックアップRAM23に記憶されるゲームデータは、ゲーム進行状況を示す複数のゲームパラメータ値から成る。プログラムROM21やバックアップRAM23のメモリマップについては後述する。
一方、携帯ゲーム機13には、ゲーム画像を表示するためのLCD17や、カートリッジ11を接続するためのコネクタ27や、カートリッジ11から供給されたゲームプログラムに基づいてゲーム処理を実行するプロセッサ29や、スピーカ19や、サウンドアンプ41や、操作キー15が設けられている。プロセッサ29は、ゲームプログラムに基づいて各種処理を実行するCPUコア31や、LCD17を駆動するためのLCDコントローラ33や、CPUコア31のワークメモリとしてのワークRAM35や、画像処理に利用されるVRAM37や、サウンド回路やDMA回路等の周辺回路39から構成される。
なお、本実施形態では、カートリッジ11を通じて携帯ゲーム機13のプロセッサ29にゲームプログラムが供給されるが、本発明はこれに限らず、CD−ROMやDVDなど、コンピュータ読み取り可能な任意の記録媒体を通じてゲームプログラムが供給されても構わない。また、有線または無線の通信回線を通じてゲームプログラムが供給されても構わない。また、携帯ゲーム機13の内部に設けられた任意の記録装置にゲームプログラムが予め格納されていても構わない。また、本発明は携帯ゲーム機に限らず、据え置き型のゲーム機など、任意のゲーム機に適用することができる。この場合に、ゲームデータのバックアップ先として、メモリカード,HDDなどの外部記憶媒体が用いられる。
次に、図3を参照してプログラムROM21のメモリマップについて説明する。プログラムROM21には、図3に示すように、ゲーム処理を実行するためのゲームプログラム43の他に、ゲームデータをゲーム処理で利用するために携帯ゲーム機13のワークRAM35に配置するための各種プログラム、すなわちデータ読出プログラム45、格納アドレス決定プログラム47、ワークRAM格納プログラム49、データ再配置プログラム51、データ更新プログラム53およびデータ書込プログラム55が記憶されている。なお、本実施例では説明を容易にするため、コンピュータで実行される機能ごとにプログラムと記載して分けているが、実際には全てのプログラムの機能が単一のモジュールとして存在していたり、また、単一のプログラムの機能が複数のモジュールに分かれ存在している場合もある。
次に、図4を参照してバックアップRAM23のメモリマップについて説明する。バックアップRAM23には、図4に示すように、少なくとも1種類のゲームタイトル(プログラムROM21に記憶されているゲームプログラム)に対応するゲームデータが記憶されている。ここでは、第1〜第3のゲームデータの三種類のゲームデータが記憶されている例を示すが、これらのゲームデータは例えば種類の異なるゲームタイトルごとのゲームデータや、同じゲームタイトルであるが各々異なるゲームの進行状況の時に保存したゲームデータを示しているものである。ゲームタイトルごとに保存されるゲームパラメータの種類や値が異なるが、ゲームデータを構成の一例を図5に示す。図5に示すように、ゲームデータは、ゲーム進行状況を示す複数のゲームパラメータ値から成る。このゲームパラメータ値は、プレイヤ名、HP(ヒットポイント;キャラクタの体力、MP(マジックポイント;キャラクタの魔法力)、所持金額、所持する武器の種類、所持する防具の種類、ゲーム中断時のマップ上の位置や時間(図示せず)などを示す値である。ゲームプログラム43の実行時には、これらのゲームパラメータ値は携帯ゲーム機13のワークRAM35に一時的に記憶され、ゲーム進行状況に応じて適宜更新される。そして、プレイヤがゲームを中断するときなどに、その時点でワークRAM35に記憶されているゲームパラメータ値が、図4に示すようにカートリッジ11のバックアップRAM23にゲームデータとして保存される。プレイヤがゲームを再開するとき、このゲームデータは再び携帯ゲーム機13のワークRAM35にロードされる。これにより、プレイヤは中断直前の状態からゲームを再開することができる。
次に、図5を参照して、ワークRAM35におけるゲームデータの配置方法について説明する。
従来のゲームシステムでは、中断したゲームを再開するときに、メモリカードに保存されていたゲームデータが常に内部メモリの特定の格納アドレスにロードされることは前述した通りである。一方、本実施形態では、ゲームデータのロードに先立って、ワークRAM35におけるゲームデータの格納領域がロードの度に異なるように、その格納領域が設定される。より具体的には、図5に示すように、ワークRAM35におけるゲームデータの格納領域の先頭アドレス(以下、格納先頭アドレスと称す)がロードの度に変化するように、格納領域が設定される。その結果、各ゲームパラメータ値(例えば「所持金額」)の格納領域は、ロードの度に変化することになる。
なお、ゲームプログラム43の実行中においてワークRAM35内の特定のゲームパラメータ値を参照または書換える場合には、このゲームパラメータ値の格納アドレスを指定する必要がある。そこで本実施形態では、ゲームデータのロードの際に、図5に示すように、ワークRAM35の特定のアドレス(ここではAxxxh)に配置情報として格納先頭アドレスを格納するようにしている。この特定のアドレスは、ゲームデータの格納領域のように頻繁に変化するものではない。また、配置情報とは、各ゲームパラメータ値の格納領域を直接的にまたは間接的に示す情報である。ここで、ワークRAM35内の特定のゲームパラメータ値を参照または書換える場合には、特定のアドレスにアクセスされ、当該アドレスに保存されている配置情報(ここでは格納先頭アドレス)が参照され、そして、さらにその配置情報を基準として、ゲームパラメータ値の現在の格納アドレスが算出される。
図6は、ワークRAM35における各ゲームパラメータ値の格納領域がロードの度に変化する様子を示す具体例である。この例は、ロードの度にオフセットをランダムに決定し、ワークRAM35の特定のアドレス(ここではAAABh)に対してオフセットを加えたアドレスを格納先頭アドレスとして設定する例である。すなわち、1回目のロード時にはオフセットが0と決定され、このオフセットに基づいてゲームデータの格納先頭アドレスがAAABhと設定され、格納先頭アドレスを記憶しておくための特定の領域(アドレスAxxxh)に値AAABhが格納される。また、2回目のロード時にはオフセットが+1と決定され、このオフセットに基づいてゲームデータの格納先頭アドレスがAAAChと設定され、格納先頭アドレスを記憶しておくための特定の領域(アドレスAxxxh)に値AAAChが格納される。さらに、3回目のロード時にはオフセットが−2と決定され、このオフセットに基づいてゲームデータの格納先頭アドレスがAAA9hと設定され、格納先頭アドレスを記憶しておくための特定の領域(アドレスAxxxh)に値AAA9hが格納される。
このように各ゲームパラメータ値の格納領域をロードの度に変化させることによって、例えば、あるプレイヤが、ワークRAM35のデータをモニタすることによって特定のゲームパラメータ値の格納アドレスを突き止めたとしても、一旦ゲームデータをバックアップRAM23にセーブしてしまうと次回にそのゲームデータをロードしたときにはそのゲームパラメータ値の格納アドレスは変化しているため、そのゲームパラメータ値の格納アドレスを再度突き止めない限りゲームパラメータ値を改変することができなくなる。さらには、あるプレイヤが、ワークRAM35のデータをモニタすることによって特定のゲームパラメータ値の格納アドレスを突き止めて、その情報を公開したとしても、第三者にとってその情報は無意味となる。これにより、一般ユーザによるゲームデータの改変が抑制される。
なお、以上の説明では、ロードの度にゲームデータの格納領域を変化させる技術について説明したが、ゲームデータをワークRAM35にロードした後、所定のタイミングでゲームデータの格納領域を変更し、ゲームデータを再配置するようにすることもできる。とりわけ、以下に説明する技術のみを製品に採用しても充分に効果を挙げることができるが、上述した技術と組み合わせて使えばより効果を期待できるので、本実施例ではその組合せ場合について説明する。以下、図7を参照して、この再配置について説明する。
図7は、ワークRAM35における各ゲームパラメータ値の格納領域が、ゲームデータをロードした時点から時間T(例えば1秒)毎に変化する様子を示す具体例である。図7において、ロード時にはオフセットが−2と決定され、このオフセットに基づいてゲームデータの格納先頭アドレスがAAA9hと設定され、格納先頭アドレスを記憶しておくための特定の領域(アドレスAxxxh)に値AAA9hが格納される。その後、時間Tが経過した時点で、オフセットが再度ランダムに決定される。その結果、オフセットが+1と決定され、このオフセットに基づいてゲームデータの格納先頭アドレスがAAAChと設定され、格納先頭アドレスを記憶しておくための特定の領域(アドレスAxxxh)に値AAAChが格納される。そして、こうして設定された格納先頭アドレスに従ってゲームデータが再配置される。その後、さらに時間Tが経過した時点(つまりロード時から時間2Tが経過した時点)で、オフセットが再度ランダムに決定される。その結果、オフセットが0と決定され、このオフセットに基づいてゲームデータの格納先頭アドレスがAAABhと設定され、格納先頭アドレスを記憶しておくための特定の領域(アドレスAxxxh)に値AAABhが格納される。そして、こうして設定された格納先頭アドレスに従ってゲームデータが再配置される。
このように各ゲームパラメータ値の格納領域をゲーム処理中に所定のタイミングで変化させることによって、特定のゲームパラメータ値の格納アドレスを突き止めることがより困難となる。なぜなら、特定のゲームパラメータ値の格納アドレスを見つける一般的な方法では、ゲーム画面に表示されている特定のゲームパラメータ値(例えば「プレイヤキャラクタのレベル」)が例えば19h→1Ah→1Bhと変化したときに、ワークRAM35内で値が同様に変化した領域(すなわち値が19h→1Ah→1Bhと変化した領域)をそのゲームパラメータ値の格納領域の候補として抽出するが、ゲームパラメータ値の格納領域が途中で変化する場合にはこの方法は無効になるからである。特に、時間Tが短いほど、特定のゲームパラメータ値の格納アドレスを突き止めることがより困難となる。したがって、ゲームデータの再配置のための処理負荷が問題とならない範囲において、時間Tはできるだけ短い時間に設定するのが好ましい。
次に、図8に示すフローチャートを参照して、本実施形態に係るゲームシステムの動作を説明する。
まずCPUコア31は、バックアップRAM23に格納されているゲームデータの一覧をLCD17に表示する(S101)。そして、いずれかのゲームデータがユーザによって選択されたかどうかを判定し(S103)、いずれかのゲームデータが選択されるとステップ105の格納アドレス決定処理に進む。
図9を参照してステップ105の格納アドレス決定処理について説明する。ここでは、まずCPUコア31は、乱数を発生させる(S201)。本ステップでは不規則性を持った値を発生又は生成できればよく、乱数を発生させる方法は任意である。例えば、ソフトウェアまたはハードウェアによって乱数を算出してもよいし、所定の乱数表を用いてもよいし、リアルタイムクロックのカウント数の値を用いてもよいし、ステップ101でゲームデータの一覧が表示されてからユーザがステップ103でゲームデータを選択するまでの時間を用いてもよいし、また、操作スイッチを押したときのカウント数の値などでもよい。続いてCPUコア31は、ステップ201で発生させた乱数に基づいてオフセット値を決定する(S203)。具体的には、プログラムにはゲームデータを格納するための基準アドレスとなるワークRAM35のアドレスをもっており、この基準アドレスに加えるための値を算出する。次のステップでは、先に算出されたオフセット値を基準アドレスに加えることにより、ランダム性をもった格納先頭アドレスが算出され、当該格納先頭アドレスがワークRAM35の固定アドレスに格納される(S205)。ここで、基準アドレスは、ゲームデータをワークRAM35を保存する際の絶対的なアドレスである。つまり、オフセット値がランダム性を持つために格納先頭アドレスもランダム性をもち、その結果、図6や図7で示したように、ワークRAM35におけるゲームデータの格納領域がランダム性をもってシフトされる。なお、オフセット値の取り得る範囲が増えるほど、ゲームデータの格納場所が特定しにくくなり、ゲームデータの改変が難しくなる。しかしながら、ワークRAM35の容量は限られているため、オフセット値の取り得る範囲を妥当な範囲に制限しておくのが好ましい。オフセット値が決まると、CPUコア31は、ワークRAM35の固定アドレス(図5の例ではAxxxh)に、配置情報として格納先頭アドレスを格納する。ここでいう固定アドレスとは、プログラムから見た絶対アドレスであり、ゲームデータが格納される格納アドレスはランダム性を持った相対アドレスともいえる。なお、本格納アドレス決定処理によって、カートリッジからゲームデータが読み出されるたびに異なる先頭格納アドレスが決定されるので、ランダム性を持たせた格納領域に当該ゲームデータを格納させることができる。
格納アドレス決定処理が終了すると、図8のステップ107のゲームデータロード処理に進む。
図10を参照してステップ107のゲームデータロード処理について説明する。ここでは、まずCPUコア31は、ワークRAM35の固定アドレス(Axxxh)を参照する(S301)。ここには格納先頭アドレスが格納されている。そしてCPUコア31は、ユーザが一覧から選択したゲームデータをカートリッジ11のバックアップRAM23から読み出して、ワークRAM35に格納先頭アドレスから順次に格納する。
ゲームデータロード処理が終了すると、CPUコア31は、ワークRAM35にロードしたゲームデータに基づいてゲームの進行状況を設定する(S109)。
次にCPUコア31は、ゲーム処理を実行し(S111)、続いてゲームデータ再配置処理を実行する(S113)。
図11を参照してステップ113のゲームデータ再配置処理について説明する。このステップでは、上述したステップ105とほぼ同様の方法を用いて、ワークRAM35内において所定時間ごとにゲームデータの再配置を行なう。まず、CPUコア31は、計時処理を行う(S401)。具体的には、携帯ゲーム機13のクロック等に基づいて時間をカウントする。つづいて、時間のカウントを開始してから所定時間(時間T)が経過したかどうかを判定し(S403)、経過していなかった場合はゲームデータ再配置処理を行うことなく終了する。一方、時間のカウントを開始してから所定時間が経過していた場合には、ステップ201と同様に乱数を用いてオフセット値を新たに決定する(S405)。そして、ステップ203及び205と同様に新たなオフセット値に基づいて格納先頭アドレスを計算し、この計算結果に基づいて、固定アドレス(Axxxh)に格納されている格納先頭アドレスを更新する(S407)。次にCPUコア31は、更新された格納先頭アドレスを基準としてワークRAM35内のゲームデータを再配置する(S409)。ゲームデータを書換えようとする者が特定のパラメータの値が格納されたアドレスを見つけたとしても、この再配置処理によって次のタイミング(例えば1秒後)では当該パラメータの値は別の格納アドレスに移動しているので、容易に特定のパラメータの値を書き換えることができなくすることができる。
ゲームデータ再配置処理が終了すると、図8においてCPUコア31は、ワークRAM35内のゲームデータの更新が必要かどうかを判断する(S115)。そして、ゲームデータの更新が不要な場合はステップ111に戻る。ゲームデータの更新が必要であった場合は、CPUコア31はゲームデータ更新処理を実行する(S117)。
図12を参照してステップ117のゲームデータ更新処理について説明する。ここでは、まずCPUコア31は、ワークRAM35の固定アドレス(Axxxh)を参照する(S501)。ここには格納先頭アドレスが格納されているので、この格納先頭アドレスに基づいて、更新対象データの格納アドレスを算出する(S503)。例えば、図5において所持金額を更新する場合には、所持金額はゲームデータの先頭から数えて常に7つ目のアドレスに格納されることから所持金額の格納アドレスは格納先頭アドレスから容易に算出することができる。続いてCPUコア31は、ステップ503で算出された格納アドレスのデータを書換える(S505)。こうしてゲームデータが更新される。
ゲームデータ更新処理が終了すると、CPUコア31は、ゲームが終了したかどうか判定し(S119)、ゲームが続行している場合はステップ111に戻り、ゲームが終了した場合はゲームデータセーブ処理を実行する(S121)。
図13を参照してステップ121のゲームデータセーブ処理について説明する。ここでは、まずCPUコア31は、ワークRAM35の固定アドレス(Axxxh)を参照する(S601)。ここには格納先頭アドレスが格納されているので、ワークRAM35内のデータをこの格納先頭アドレスから順次読み出して、カートリッジ11のバックアップRAM23に格納する(S603)。その結果、バックアップRAM23にはゲームデータが図5に示すような本来の形式で格納される。
以上のように、本実施形態によれば、カートリッジ11のバックアップRAM23から携帯ゲーム機13のワークRAM35にゲームデータをロードするときに、ワークRAM35におけるゲームデータの格納領域をランダムに決定し、さらにゲーム処理中にもその格納領域を一定の周期でランダムに変更するため、ワークRAM35においてどのゲームパラメータ値がどの格納アドレスに記憶されているのかを突き止めることが困難となる。しかも、特定のゲームパラメータ値が特定の格納アドレスに格納されていることを突き止めたとしても、その情報はその瞬間でしか意味を持たないため、ゲームデータを安易に改変することは不可能となる。
なお、本実施形態では、カートリッジ11のバックアップRAM23から携帯ゲーム機13のワークRAM35にゲームデータをロードするときに、ワークRAM35におけるゲームデータの格納領域をランダムに決定し、さらにゲーム処理中にもその格納領域を一定の周期でランダムに変更する例について説明したが、本発明はこれに限らない。すなわち、ゲームデータをロードするときにワークRAM35におけるゲームデータの格納領域をランダムに決定し、ゲーム処理中にはその格納領域を変更しないようにしてもよい。また、ゲームデータをロードするときにはワークRAM35における一定の格納領域にゲームデータをロードし、ゲーム処理中にその格納領域を一定の周期でランダムに変更するようにしてもよい。
また、本実施形態では、配置情報として格納先頭アドレスを固定アドレスに格納しておく例について説明したが、本発明はこれに限らない。すなわち、各ゲームパラメータ値の格納領域を直接的にまたは間接的に示す任意の情報を配置情報として固定アドレスに格納することができる。例えば、格納先頭アドレスの替わりに、ワークRAM35におけるゲームデータの格納領域の最後尾のアドレスを配置情報として格納してもよい。また、例えば、格納先頭アドレスの替わりにオフセット値を格納してもよい。
また、本実施形態では、ゲーム処理中にゲームデータの格納領域を変更するときに、一定の周期でランダムに変更する例について説明したが、本発明はこれに限らない。すなわち、格納領域を一定の周期で変更するのではなく、例えばゲーム処理において特定のイベントが発生する度に格納領域を変更するようにしてもよい。また、格納領域をランダムに変更するのではなく、ゲームデータの格納領域が再配置の度に1アドレス分だけ順次シフトするようにしてもよい。
また、本実施形態では、配置情報を固定アドレスに格納するとしたが、配置情報を暗号化したものを固定アドレスに格納するようにしてもよい。この場合、固定アドレスに格納した配置情報を参照する際に解読処理が必要となることは言うまでもない。
ところで、本実施形態では、ゲームデータの格納領域をオフセット値に基づいて全体的にシフトさせることによって、各ゲームパラメータ値の格納領域が一定とならないようにしている。つまり、ゲームデータにおける各ゲームパラメータ値の位置関係は、常に固定である。例えば、図5の例では、「MP」が格納されているアドレスの次のアドレスには必ず「所持金額」が格納されており、さらに次のアドレスには必ず「武器」が格納されている。したがって、各ゲームパラメータ値の格納領域が変化したとしても、ゲームデータの格納領域がどのようにシフトしたかを容易に類推できてしまう。そこで、このような類推をより困難にするための変形例について図14〜図16を参照して以下で説明する。
本変形例では、図14に示すように、ゲームデータを複数のブロック(ここでは第1ブロック〜第3ブロック)に分割し、ブロック単位で格納領域をランダムに設定したり変更したりする。なお、ブロック単位で格納領域をランダムに設定したり変更したりする替わりに、ブロックの順番をランダムに設定したり変更したりしてもよい。なお、各ブロック内では各パラメータの位置関係は固定である。よって、配置情報として各ブロックの格納先頭アドレスだけを格納しておけば、この配置情報と各ブロックにおけるパラメータの位置関係とに基づいて任意のパラメータの格納アドレスを算出することができる。図14の例では、固定アドレス(AxxAh)には、第1ブロックの格納先頭アドレスであるAAB0hが格納され、固定アドレス(AxxBh)には、第2ブロックの格納先頭アドレスであるAABBhが格納され、固定アドレス(AxxAh)には、第3ブロックの格納先頭アドレスであるAAA9hが格納される。このように、ゲームデータを複数のブロックに分割することで、上記類推が困難となる。
なお、1ブロックを構成するデータサイズは任意である。したがって、例えば図15に示すように、各ゲームパラメータを1ブロックとみなして、ゲームパラメータ単位で格納領域をランダムに設定したり変更したりすることも考えられる。こうすることにより、各ゲームパラメータ値の位置関係に規則性が無くなるため、仮に特定のゲームパラメータ値の格納アドレスを突き止めることができたとしても、そこから他のゲームパラメータ値の格納アドレスを類推することは不可能となる。図15の例では、配置情報の一例としてアドレス対応テーブルを格納している。このアドレス対応テーブルは、図16に示すように、ゲームパラメータ毎に、バックアップRAM23におけるアドレスと、ワークRAM35におけるアドレスとの対応関係を記述したものである。バックアップRAM23においては各ゲームパラメータ値の格納アドレスは固定なので、特定のゲームパラメータ値を更新する場合には、バックアップRAM23におけるそのゲームパラメータ値の格納アドレスを指定すれば、アドレス対応テーブルに基づいてワークRAM35におけるそのゲームパラメータ値の格納アドレスを取得することができる。なお、このアドレス対応テーブルは、ゲームデータをワークRAM35にロードする際、またはワークRAM35内のゲームデータを再配置する際に動的に生成しても構わないし、あるいは、予め複数の異なるアドレス対応テーブルを用意しておき、ゲームデータをワークRAM35にロードする際、またはワークRAM35内のゲームデータを再配置する際に、これら複数のアドレス対応テーブルの中から1つのアドレス対応テーブルをランダムに選択し、選択したアドレス対応テーブルに従ってゲームデータをロードまたは再配置するようにしてもよい。
なお、1ブロックを構成するデータサイズをワークRAM35の1アドレス分にまで小さくすることも考えられる。すなわち、ゲームデータを1アドレス分のデータ単位で格納領域(格納アドレス)をランダムに設定したり変更したりすることも考えられる。こうすることにより、例えば図5に示す「プレイヤ名」のように、複数アドレスにまたがるようなゲームパラメータ値が分割されてばらばらに配置されるため、このゲームパラメータ値を書換えることが非常に困難となる。
(第2の実施形態)
以下、本発明の第2の実施形態に係るゲームシステムについて図面を参照して説明する。
図17に、ゲームシステムの外観を示す。携帯ゲーム機13およびカートリッジ11については図1に示したものと同一であるので同一の参照符号を付し、説明を省略する。第2の実施形態では、携帯ゲーム機13とカートリッジ11とがゲームデータ書換装置71を介して接続される。ゲームデータ書換装置71を操作するための入力手段としては、携帯ゲーム機13の操作キー15を利用することができるが、ゲームデータ書換装置71とパソコンを通信ケーブルで接続することにより、パソコンに接続されたキーボードやマウスをゲームデータ書換装置71を操作するための入力手段として利用し、後述する制御部79と同等の機能を有するプログラムをパソコンのコンピュータに実行させることにより、当該コンピュータを制御部79の代わりに利用することもできる。同様に、ゲームデータ書換装置71の表示手段としては、携帯ゲーム機13のLCD17を利用することができるが、ゲームデータ書換装置71とパソコンを通信ケーブルで接続することにより、パソコンに接続されたモニタをゲームデータ書換装置71を操作するための入力手段として利用することもできる。
次に、図18を参照して、ゲームデータ書換装置71の構成について説明する。
ゲームデータ書換装置71は、カートリッジ11と接続するためのコネクタ73と、パソコンと通信するための通信ポート75と、後述するデータ書換処理を実行するための制御部79と、携帯ゲーム機13と接続するためのコネクタ81と、コネクタ73、81、通信ポート75、制御部79間のデータのやりとりを制御するためのバスコントローラ77とを備えている。
以下、ゲームデータ書換装置71の制御部79に動作について図19に示すフローチャートを参照して説明する。制御部79にはゲームデータ書換プログラムが内蔵されており、制御部79は、このゲームデータ書換プログラムに従ってデータ書換処理を実行する。
まず制御部79は、携帯ゲーム機13において実行されているゲームプログラムの実行を一時的に停止させる(S701)。そして、携帯ゲーム機13のLCD17に、ユーザに第1の検出対象数値を入力させるための入力受付画面を表示し、その入力を促す(S703)。ユーザは、第1の検出対象数値として、書換えようとするゲームパラメータの現在の値(仮に、所持金額(9Ah)とする)を入力する。制御部79は、第1の検出対象数値が入力されたかどうか判断し(S705)、第1の検出対象数値が入力されたと判断すると、携帯ゲーム機13のワークRAM35に格納されているデータの中から、第1の検索対象数値と同じ値(9Ah)をサーチする(S707)。このサーチの結果、通常は、第1の検索対象数値と同じ値が複数検出されることになる。
次に、サーチ結果に基づいて、第1の検索対象数値と同じ値が記憶されている格納アドレスを検出する(S709)。そして、検出された格納アドレス(仮に、AAAFhとする)に記憶されている値を、その近辺(例えば検出された格納アドレスに隣接する2つのアドレス)に記憶されている値と共に、ウォッチ対象データとして記憶する(S711)。例えば、図7において、所持金額(9Ah)に隣接するMP(15h)と武器(35h)の値をウォッチ対象データとして記憶する。その後、ゲームプログラムの実行を再開する(S713)。
ゲームプログラムが実行されている間、制御部79は、ステップ711でウォッチ対象データの値や格納アドレスが変更されたかどうか監視し、格納アドレスが変更された場合には変更後の格納アドレスを検出し、さらに監視を続ける(S715)。なお、本実施形態では、ステップ709で検出された格納アドレスに記憶されている値だけでなく、その近辺に記憶されている値と共にウォッチ対象データとして記憶しているが、このように近辺の値も考慮することにより、格納アドレスが変化したことをより確実に検知することができる。例えば、所持金額(9Ah)とMP(15h)と武器(35h)の値が同時に変化した場合に、格納アドレスが変化したと判断することができる。続いて制御部79は、ユーザによるゲームプログラムの一時停止指示があったかどうか判断し(S717)、一時停止指示があるまで監視を続ける。ユーザは、例えば所持金額が9Ahから9Fhに変化した後に、ゲームプログラムの一時停止指示を行う。ユーザによる一時停止指示があった場合には、制御部79は、ゲームプログラムの実行を一時的に停止する(S719)。
次に、図20において、制御部79は、携帯ゲーム機13のLCD17に、ユーザに第2の検出対象数値を入力させるための入力受付画面を表示し、その入力を促す(S721)。ユーザは、第2の検出対象数値として、書換えようとするゲームパラメータ(所持金額)の現在の値(9Fh)を入力する。制御部79は、第2の検出対象数値が入力されたかどうか判断し(S723)、第2の検出対象数値が入力されたと判断すると、携帯ゲーム機13のワークRAM35に格納されているデータの中から、第2の検索対象数値と同じ値(9Fh)をサーチする(S725)。
次に、サーチ結果に基づいて、第2の検索対象数値と同じ値が記憶されている格納アドレスを検出する(S727)。その後、検出された格納アドレスが、ウォッチ対象データとして記憶していた値の格納アドレスと一致しているかどうかを判定し(S729)、一致していなかった場合は、携帯ゲーム機13のLCD17に、データの書換に失敗した旨のエラー表示を行い(S739)、ステップ741に進む。一方、ステップ727で検出された格納アドレスが、ウォッチ対象データとして記憶していた値の格納アドレスと一致していた場合には、この一致した格納アドレスと値(9Fh)をLCD17に表示する(S731)。
次に制御部79は、ユーザによる数値の入力を受け付け(S733)、ユーザが所望の数値(例えばEEh)を入力すると、上記格納アドレスに記憶されている値(9Fh)をユーザが入力した値(EEh)に書換える(S735)。続いて制御部79はゲームプログラムの実行を再開する(S737)。この後、ユーザが書換えたゲームパラメータ(所持金額)の値をステップ733でユーザが入力した値(EEh)に維持する必要がある場合には、そのゲームパラメータ値の格納アドレスを監視しつつ、その値を、ステップ733でユーザが入力した値(EEh)に定期的に書換える(S741)。
なお、本実施形態では、ゲームプログラムの実行を一時的に停止したり再開する例について説明したが、本発明はこれに限らず、ゲームプログラムの実行を停止することなく、メモリイメージをリアルタイムでキャプチャして数値のサーチ等を行うようにしてもよい。
以上のように、第2の実施形態によれば、ゲームパラメータ値の格納アドレスが定期的に変更される場合であっても、特定のゲームパラメータ値の格納アドレスを効率的に検知することができる。
(第3の実施形態)
次に、本発明の第3の実施形態に係るゲームシステムについて図面を参照して説明する。ただし、第3の実施形態が第2の実施形態と異なる点は、制御部79の動作のみであるので、ゲームシステムおよびゲームデータ書換装置の構成については説明を省略する。また、以下の説明では、図17および図18を援用する。
以下、第3の実施形態に係るゲームデータ書換装置71の制御部79に動作について図21に示すフローチャートを参照して説明する。制御部79にはゲームデータ書換プログラムが内蔵されており、制御部79は、このゲームデータ書換プログラムに従ってデータ書換処理を実行する。
まず制御部79は、携帯ゲーム機13において実行されているゲームプログラムの実行を一時的に停止させる(S801)。そして、携帯ゲーム機13のLCD17に、ユーザにデータ書換のためのコードを入力させるためのコード入力受付画面を表示し、その入力を促す(S803)。コードは、書換えようとするゲームパラメータ値の格納アドレスを特定するための値と、書換え後の値を指定するための値から成る。書換えようとするゲームパラメータ値の格納アドレスを特定するための値としては、例えば、書換えようとするゲームパラメータ値の格納アドレスがゲームデータの先頭アドレスから数えて何番目のアドレスかを示す値が挙げられる。この場合、例えば、図6において、所持金額をEEhに書換える場合のコードは、値(07h)と、値(EEh)とから成る。
制御部79は、コードが入力されたかどうかを判断し(S805)、コードが入力された場合は、携帯ゲーム機13のワークRAM35の固定アドレス(図6の例ではAAABh)を参照して格納先頭アドレスを取得する(S807)。そして、取得した格納先頭アドレスと、コードに含まれている、書換えようとするゲームパラメータ値の格納アドレスを特定するための値(07h)とに基づいて、書換対象となる格納アドレスを判定する(S809)。
その後、制御部79は、ステップ809で判定された格納アドレス(AAB1h)の値を、コードに含まれている、書換え後の値を指定するための値(EEh)に書換える(S811)。そして、ゲームプログラムの実行を再開する(S813)。
なお、配置情報として、ワークRAM35の固定アドレス(Axxxh)にオフセット値が格納される場合には、上記のコードに含まれる「書換えようとするゲームパラメータ値の格納アドレスを特定するための値」として、オフセット値が0のときの格納アドレスを用いることができる。この場合、図6の例では、所持金額の格納アドレスを特定するための値はAAB1hとなる。このとき、ステップ809では、AAB1hに現在のオフセット値を足すことで、所持金額の現在の格納アドレスを算出することができる。
以上のように、第3の実施形態によれば、ゲームパラメータ値の格納アドレスが定期的に変更される場合であっても、ワークRAM35の固定アドレスに記憶されている配置情報を利用することにより、特定のゲームパラメータ値を書換えることができる。
本発明の第1の実施形態に係るゲームシステムの外観図 第1の実施形態に係るゲームシステムの内部構成を示すブロック図 プログラムROM21のメモリマップ バックアップRAM23のメモリマップ ワークRAM35におけるゲームデータの配置方法の原理を示す図 ワークRAM35におけるゲームデータの配置の具体例を示す図 ワークRAM35におけるゲームデータの再配置の具体例を示す図 第1の実施形態に係るゲームシステムの動作を示すフローチャート 格納アドレス決定処理の流れを示すフローチャート ゲームデータロード処理の流れを示すフローチャート ゲームデータ再配置処理の流れを示すフローチャート ゲームデータ更新処理の流れを示すフローチャート ゲームデータセーブ処理の流れを示すフローチャート ワークRAM35におけるゲームデータの他の配置方法を示す図 ワークRAM35におけるゲームデータのさらに他の配置方法を示す図 アドレス対応テーブルの具体例を示す図 本発明の第2の実施形態に係るゲームシステムの外観図 ゲームデータ書換装置71の内部構成を示す図 第2の実施形態に係るゲームシステムの動作を示すフローチャートの一部 第2の実施形態に係るゲームシステムの動作を示すフローチャートの残りの一部 本発明の第3の実施形態に係るゲームシステムの動作を示すフローチャートの一部
符号の説明
11 カートリッジ
13 携帯ゲーム機
15 操作キー
15a Aボタン
15b Bボタン
15c 十字キー
17 LCD
19 スピーカ
21 プログラムROM
23 バックアップRAM
27 コネクタ
29 プロセッサ
31 CPUコア
33 LCDコントローラ
35 ワークRAM
37 VRAM
39 周辺回路
41 サウンドアンプ
43 ゲームプログラム
45 データ読出プログラム
47 格納アドレス決定プログラム
49 ワークRAM格納プログラム
51 データ再配置プログラム
53 データ更新プログラム
55 データ書込プログラム
57 第1ゲームデータ
59 第2ゲームデータ
61 第3ゲームデータ
71 ゲームデータ書換装置
73 コネクタ
75 通信ポート
77 バスコントローラ
79 制御部
81 コネクタ

Claims (18)

  1. ゲーム装置に接続された外部記憶媒体に記憶されているゲーム進行状況を示す複数のゲームパラメータ値から成るゲームデータを、ゲーム処理で利用するために当該ゲーム装置の内部メモリに配置するためのゲームデータ制御プログラムであって、コンピュータを、
    ゲームデータの配置に先立って、各ゲームパラメータ値が配置の度に異なる格納領域に配置されるように、前記内部メモリにおけるゲームデータの格納領域を設定する格納領域設定手段、
    前記外部記憶媒体から前記格納領域設定手段によって設定された格納領域にゲームデータをロードするゲームデータロード手段、
    前記格納領域設定手段がゲームデータの格納領域を設定した時に、各ゲームパラメータ値の格納領域を直接的にまたは間接的に示す配置情報を前記内部メモリの特定領域に格納する配置情報格納手段、および、
    ゲーム処理において前記内部メモリ内のゲームパラメータ値を参照または書換える必要があったときに、前記配置情報を参照して当該ゲームパラメータ値の格納領域を判定する格納領域判定手段として機能させるためのゲームデータ制御プログラム。
  2. 前記格納領域設定手段は、前記内部メモリの少なくとも1つのアドレスを指定することによってゲームデータの格納領域を直接的にまたは間接的に設定することを特徴とする、請求項1に記載のゲームデータ制御プログラム。
  3. 前記ゲームデータ制御プログラムは、前記コンピュータを、ゲーム処理において前記内部メモリ内のゲームデータを前記外部記憶媒体に保存する必要があったときに、前記配置情報を参照して、当該ゲームデータを本来の所定の形式で当該外部記憶媒体に保存するゲームデータセーブ手段としてさらに機能させるものであることを特徴とする、請求項1に記載のゲームデータ制御プログラム。
  4. 前記格納領域設定手段は、乱数に基づいて前記内部メモリにおけるゲームデータの格納領域を設定するものであることを特徴とする、請求項1に記載のゲームデータ制御プログラム。
  5. 前記格納領域設定手段は、ゲームデータの格納領域が配置の度に異なるように、前記内部メモリにおけるゲームデータの格納領域を全体的にシフトさせるためのオフセット値を指定するものであり、
    前記ロード手段は、前記内部メモリの特定アドレスに対して前記オフセット値を加えたアドレスを基準として、当該内部メモリにゲームデータを各ゲームパラメータの格納位置関係が維持されるように一体的にロードするものであることを特徴とする、請求項1に記載のゲームデータ制御プログラム。
  6. 前記格納領域設定手段は、ゲームデータを構成する複数のブロック間の格納位置関係が配置の度に異なるように、前記内部メモリにおけるゲームデータの格納領域をブロック毎に設定するものであることを特徴とする、請求項1に記載のゲームデータ制御プログラム。
  7. 前記ブロックが、前記内部メモリの1アドレスに対応するデータであることを特徴とする、請求項6に記載のゲームデータ制御プログラム。
  8. 前記ゲームデータ制御プログラムは、前記コンピュータを、
    前記内部メモリにロードされた各ゲームパラメータ値の格納領域をゲーム処理中の所定のタイミングで変更する格納領域変更手段、および、
    前記格納領域変更手段による格納領域の変更結果に基づいて各ゲームパラメータ値を再配置する再配置手段としてさらに機能させるものであり、
    前記配置情報格納手段は、前記再配置手段が各ゲームパラメータ値を再配置した時に、前記配置情報を更新するものであることを特徴とする、請求項1に記載のゲームデータ制御プログラム。
  9. ゲーム装置に接続された外部記憶媒体に記憶されているゲーム進行状況を示す複数のゲームパラメータ値から成るゲームデータを、ゲーム処理で利用するために当該ゲーム装置の内部メモリに配置するためのゲームデータ制御プログラムであって、コンピュータを、
    前記外部記憶媒体から前記内部メモリにゲームデータをロードするゲームデータロード手段、
    前記内部メモリにロードされた各ゲームパラメータ値の格納領域をゲーム処理中の所定のタイミングで変更する格納領域変更手段、
    前記格納領域変更手段による格納領域の変更結果に基づいて各ゲームパラメータ値を再配置する再配置手段、
    前記再配置手段が各ゲームパラメータ値を再配置した時に、各ゲームパラメータ値の格納領域を直接的にまたは間接的に示す配置情報を前記内部メモリの特定領域に格納する配置情報格納手段、および、
    ゲーム処理において前記内部メモリ内のゲームパラメータ値を参照または書換える必要があったときに、前記配置情報を参照して当該ゲームパラメータ値の格納領域を判定する格納領域判定手段として機能させるためのゲームデータ制御プログラム。
  10. 前記格納領域変更手段は、前記内部メモリの少なくとも1つのアドレスを指定することによって、変更後のゲームデータの格納領域を直接的にまたは間接的に設定することを特徴とする、請求項9に記載のゲームデータ制御プログラム。
  11. 前記ゲームデータ制御プログラムは、前記コンピュータを、ゲーム処理において前記内部メモリ内のゲームデータを前記外部記憶媒体に保存する必要があったときに、前記配置情報を参照して、当該ゲームデータを本来の所定の形式で当該外部記憶媒体に保存するゲームデータセーブ手段としてさらに機能させるものであることを特徴とする、請求項9に記載のゲームデータ制御プログラム。
  12. 前記格納領域変更手段は、乱数に基づいて前記内部メモリにおけるゲームデータの格納領域を変更するものであることを特徴とする、請求項9に記載のゲームデータ制御プログラム。
  13. 前記格納領域変更手段は、前記内部メモリにおけるゲームデータの格納領域を全体的にシフトさせるためのオフセット値を指定することによって前記内部メモリにおけるゲームデータの格納領域を変更するものであり、
    前記再配置手段は、前記内部メモリの特定アドレスに対して前記オフセット値を加えたアドレスを基準として、当該内部メモリにゲームデータを各ゲームパラメータの格納位置関係が維持されるように一体的に再配置するものであることを特徴とする、請求項9に記載のゲームデータ制御プログラム。
  14. 前記格納領域変更手段は、ゲームデータを構成する複数のブロック間の格納位置関係が再配置により変化するように、前記内部メモリにおけるゲームデータの格納領域をブロック毎に変更するものであることを特徴とする、請求項9に記載のゲームデータ制御プログラム。
  15. 前記ブロックが、前記内部メモリの1アドレスに対応するデータであることを特徴とする、請求項6に記載のゲームデータ制御プログラム。
  16. 請求項1または9に記載のゲームデータ制御プログラムによって内部メモリに記憶されたゲームデータに含まれる所定のパラメータのデータを書換えるためのゲームデータ書換プログラムであって、コンピュータに、
    プレイヤに対して第1の検索対象の数値の入力を促すステップ、
    前記内部メモリに記憶されるゲームデータの中から前記第1の検索対象の数値に対応する数値を検索し、当該数値が格納された少なくとも一つの第1格納アドレスを検出するステップ、
    前記検出された第1格納アドレスに対して絶対的な関係にある複数の格納アドレスの数値と前記第1格納アドレスの数値とを指標として、動的に変化する前記格納アドレスの変化を追跡するステップ、
    プレイヤに対して第2の検索対象の数値の入力を促すステップ、
    前記第2の検索対象の数値に対応する数値を検索し、当該数値が格納された少なくとも一つの第2格納アドレスを検出するステップ、
    前記第2格納アドレスと前記第1格納アドレスと一致する格納アドレスがあるとき、当該格納アドレスを書換対象格納アドレスとして決定するステップ、
    プレイヤに対して書換数値の入力を促すステップ、および、
    前記書換対象格納アドレスの数値を前記入力された書換数値に書き換えるステップを実行させるためのゲームデータ書換プログラム。
  17. 請求項1または9に記載のゲームデータ制御プログラムに従って前記内部メモリに配置されたゲームデータを書換えるためのゲームデータ書換プログラムであって、コンピュータに、
    所定のゲームデータを所定の値に書換えるためのコードの入力を受け付けるステップ、
    入力されたコードと前記アドレス情報格納手段によって前記内部メモリに格納されたアドレス情報に基づいて、書換え対象となるゲームデータの格納アドレスを判定するステップ、および、
    判定の結果得られた格納アドレスに記憶されているゲームデータの値を前記コードが示す値に書換えるステップを実行させるためのゲームデータ書換プログラム。
  18. 請求項16または17に記載のゲームデータ書換プログラムを内蔵し、当該ゲームデータ書換プログラムに従ってゲームデータを書換える制御部を備えたゲームデータ書換装置。

JP2003389769A 2003-11-19 2003-11-19 ゲームデータ制御プログラム、ゲームデータ書換プログラムおよびゲームデータ書換装置 Expired - Lifetime JP4159973B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003389769A JP4159973B2 (ja) 2003-11-19 2003-11-19 ゲームデータ制御プログラム、ゲームデータ書換プログラムおよびゲームデータ書換装置
US10/974,756 US7682252B2 (en) 2003-11-19 2004-10-28 Game data control program, game data overwriting program and game data overwriting device
EP04025769.3A EP1533011B1 (en) 2003-11-19 2004-10-29 Game data overwriting program and game data overwriting device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003389769A JP4159973B2 (ja) 2003-11-19 2003-11-19 ゲームデータ制御プログラム、ゲームデータ書換プログラムおよびゲームデータ書換装置

Publications (2)

Publication Number Publication Date
JP2005144055A true JP2005144055A (ja) 2005-06-09
JP4159973B2 JP4159973B2 (ja) 2008-10-01

Family

ID=34431584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003389769A Expired - Lifetime JP4159973B2 (ja) 2003-11-19 2003-11-19 ゲームデータ制御プログラム、ゲームデータ書換プログラムおよびゲームデータ書換装置

Country Status (3)

Country Link
US (1) US7682252B2 (ja)
EP (1) EP1533011B1 (ja)
JP (1) JP4159973B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009110476A (ja) * 2007-11-01 2009-05-21 Konami Digital Entertainment Co Ltd 記憶処理装置、情報提供サーバ、動作方法、ならびに、プログラム
JP2013025654A (ja) * 2011-07-25 2013-02-04 Mega Chips Corp メモリシステム、セキュリティメモリおよび情報保護方法
JP2019118768A (ja) * 2018-01-11 2019-07-22 株式会社バンダイナムコエンターテインメント プログラム及びゲーム装置
JP2021509216A (ja) * 2017-12-28 2021-03-18 マイクロン テクノロジー,インク. 不揮発性メモリ内のトリムパラメータをアップデートするための技術
WO2021095408A1 (ja) * 2019-11-14 2021-05-20 クラリオン株式会社 鍵管理装置および鍵管理方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100205448A1 (en) * 2009-02-11 2010-08-12 Tolga Tarhan Devices, systems and methods for secure verification of user identity
CN102479238A (zh) * 2010-11-24 2012-05-30 深圳市快播科技有限公司 单机存档游戏系统及其存档方法
TWI459236B (zh) * 2011-12-05 2014-11-01 Giga Byte Tech Co Ltd 無線輸入裝置
JP2013123537A (ja) * 2011-12-14 2013-06-24 Sony Computer Entertainment Inc 電子機器およびセーブデータ記録方法
JP6595758B2 (ja) * 2014-12-16 2019-10-23 任天堂株式会社 情報処理装置、情報処理システム、情報処理プログラム、および情報処理方法
CN109908588A (zh) * 2019-03-12 2019-06-21 深圳市腾讯信息技术有限公司 一种变速器检测方法、装置、终端及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0744378A (ja) 1993-07-29 1995-02-14 Casio Comput Co Ltd プログラムの起動方法
JPH08147220A (ja) 1994-11-18 1996-06-07 Hitachi Ltd 情報記録媒体利用システム
JPH1139448A (ja) * 1997-07-18 1999-02-12 Sony Computer Entertainment:Kk 補助記憶装置、電子機器の時刻設定方法及び情報処理装置
JP3566889B2 (ja) * 1998-10-08 2004-09-15 株式会社ソニー・コンピュータエンタテインメント 情報追加方法、ビデオゲーム機及び記録媒体
US6508711B1 (en) * 1999-01-29 2003-01-21 Namco Ltd. Game machine having a main unit exchanging data with a portable slave machine
JP3345384B2 (ja) * 2000-01-12 2002-11-18 コナミ株式会社 ゲームシステム及びその周辺装置、ゲームシステムの制御方法
JP2001251288A (ja) 2000-03-03 2001-09-14 Matsushita Electric Ind Co Ltd データ暗号化送信システム及び領域重複判定方法
JP2001265658A (ja) 2000-03-06 2001-09-28 Kenji Ko 非揮発性保存装置内容秘密保持方法と非揮発性保存装置内容秘密保持構造
JP2002268948A (ja) 2001-03-08 2002-09-20 Toshiba Corp ディジタル情報システム及びコンテンツ情報の検証方法
JP2003288129A (ja) 2002-03-28 2003-10-10 Sun Atmark:Kk メモリ管理方法、メモリ装置、コンピュータシステム、コンパイラ及びプログラム
JP3998565B2 (ja) * 2002-11-15 2007-10-31 任天堂株式会社 ゲーム機、ゲームデータのバックアップ制御プログラムおよびバックアップ制御方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009110476A (ja) * 2007-11-01 2009-05-21 Konami Digital Entertainment Co Ltd 記憶処理装置、情報提供サーバ、動作方法、ならびに、プログラム
JP4554660B2 (ja) * 2007-11-01 2010-09-29 株式会社コナミデジタルエンタテインメント 記憶処理装置、情報提供サーバ、動作方法、ならびに、プログラム
JP2013025654A (ja) * 2011-07-25 2013-02-04 Mega Chips Corp メモリシステム、セキュリティメモリおよび情報保護方法
JP2021509216A (ja) * 2017-12-28 2021-03-18 マイクロン テクノロジー,インク. 不揮発性メモリ内のトリムパラメータをアップデートするための技術
JP2019118768A (ja) * 2018-01-11 2019-07-22 株式会社バンダイナムコエンターテインメント プログラム及びゲーム装置
JP7014613B2 (ja) 2018-01-11 2022-02-01 株式会社バンダイナムコエンターテインメント プログラム及びゲーム装置
WO2021095408A1 (ja) * 2019-11-14 2021-05-20 クラリオン株式会社 鍵管理装置および鍵管理方法
JP2021082872A (ja) * 2019-11-14 2021-05-27 フォルシアクラリオン・エレクトロニクス株式会社 鍵管理装置および鍵管理方法
JP7328122B2 (ja) 2019-11-14 2023-08-16 フォルシアクラリオン・エレクトロニクス株式会社 鍵管理装置および鍵管理方法

Also Published As

Publication number Publication date
EP1533011A3 (en) 2010-08-11
EP1533011A2 (en) 2005-05-25
EP1533011B1 (en) 2014-03-05
JP4159973B2 (ja) 2008-10-01
US7682252B2 (en) 2010-03-23
US20050148394A1 (en) 2005-07-07

Similar Documents

Publication Publication Date Title
JP4159973B2 (ja) ゲームデータ制御プログラム、ゲームデータ書換プログラムおよびゲームデータ書換装置
EP2888651B1 (en) Method for creating a mini-game
EP2877255B1 (en) User-based mini-game generation and distribution
US20140004962A1 (en) Determining triggers for cloud-based emulated games
US8317582B2 (en) Game control program, game device and game control method
US9468856B2 (en) Computer implemented method for calculating a game score to create a ranking
JP2009247551A (ja) ゲームシステム、ゲームプログラムおよび情報記憶媒体
JP2019037582A (ja) ゲームシステム、及びそれに用いるコンピュータプログラム
JP2011024651A (ja) ゲーム装置、動作方法、ならびに、プログラム
JP3619220B2 (ja) ゲームプログラム、及び装置
JP2004136026A (ja) ゲーム装置、ゲームの進行方法、プログラム及び記録媒体
JP4033427B2 (ja) ゲーム装置及び情報記憶媒体
JP2008113858A (ja) ゲームシステム
JP6671418B2 (ja) プログラム、記録媒体及びゲーム演出提示方法
JP2005052312A (ja) 対局ゲーム装置、及び対局ゲームプログラム
JP2018027164A (ja) ゲームプログラム、コンピュータ装置、及び、ゲーム進行方法
JP2000308764A (ja) 処理制御装置及び方法
JP6874187B1 (ja) 敵次行動の予測性を高めるプログラム、サーバ、方法及びシステム
JP2019037739A (ja) ゲームシステム、及びそれに用いるコンピュータプログラム
JP6194221B2 (ja) 情報処理システム、情報処理装置、情報処理プログラム、およびセーブデータの記憶方法
JP7353832B2 (ja) ゲームプログラム、ゲーム処理方法及び情報処理装置
JP2004267632A (ja) ビデオゲーム装置、ビデオゲームの進行度チェック方法、並びにプログラム及び記録媒体
JP2019037583A (ja) ゲームシステム、及びそれに用いるコンピュータプログラム
JP2017202158A (ja) プログラム、情報処理装置、及び制御方法
JP2023166352A (ja) ゲームプログラム、ゲームシステム、ゲーム装置およびゲーム処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080610

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080630

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080716

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4159973

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130725

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130725

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130725

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130725

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term