JP3618204B2 - Software rewriting system - Google Patents

Software rewriting system Download PDF

Info

Publication number
JP3618204B2
JP3618204B2 JP26066597A JP26066597A JP3618204B2 JP 3618204 B2 JP3618204 B2 JP 3618204B2 JP 26066597 A JP26066597 A JP 26066597A JP 26066597 A JP26066597 A JP 26066597A JP 3618204 B2 JP3618204 B2 JP 3618204B2
Authority
JP
Japan
Prior art keywords
software
game
program
stored
inheritance
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.)
Expired - Fee Related
Application number
JP26066597A
Other languages
Japanese (ja)
Other versions
JPH11102388A (en
Inventor
豊 飯島
重伸 新井
照幸 吉岡
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
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP26066597A priority Critical patent/JP3618204B2/en
Publication of JPH11102388A publication Critical patent/JPH11102388A/en
Application granted granted Critical
Publication of JP3618204B2 publication Critical patent/JP3618204B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、ソフトウェア書換システムに関し、より特定的には、ユーザが持参した記憶媒体にプログラム(例えば、ゲーム用プログラム)を書き込むことにより、当該プログラムをユーザに販売するためのソフトウェア書換システムに関する。
【0002】
【従来の技術】
コンピュータ装置の急速な普及に伴い、ゲーム、教育、ビジネス等の広い分野において、頻繁にソフトウェアが取り引きされている。現在、取引の主流は、ソフトウェアのプログラムが格納された記録媒体(フロッピーディスク、ROMカートリッジ、CD−ROM等)を、パッケージソフトとしてユーザに提供する方法である。
【0003】
しかしながら、ユーザにとっては、プログラム自体が重要なのであって、プログラムを格納する記録媒体は重要ではない。もし、プログラムのみをユーザに提供できれば、記録媒体にかかるコストを削減でき、より安価にソフトウェアの提供が可能となる。一方、販売店側にしても、プログラムを格納した記録媒体をソフトウェアの種類毎に在庫しておく必要がないので、省スペース化が図れると共に、資金の滞留が防げるので、より健全な経営が可能となる。
【0004】
そこで、プログラムのみを販売できるような販売装置の実現が強く望まれている。本発明は、ユーザが持参した記録媒体にプログラムを書き込むことにより、プログラムのみをユーザに販売するシステムに向けられているが、そのためには記録媒体に格納されたプログラムを書き換える必要がある。
【0005】
【発明が解決しようとする課題】
しかしながら、シリーズ化されたソフトウェアを販売する場合、前作のソフトウェアを実行していないユーザに対して新作のソフトウェアを販売することが好ましくない場合がある。例えば、ソフトウェアがゲームプログラムの場合、前作のゲームをプレイしていないユーザが新作のゲームをプレイすると、シリーズ全体のストーリ展開が見えなくなり、ユーザにゲームの真の面白さを評価してもらえない事態が生じる。また、ソフトウェアが教育プログラムの場合、前作の教育プログラムを実行していないユーザが新作の教育プログラムを実行すると、学習の進行が新作の教育プログラムに追い付かず、結局、新作の教育プログラムを途中で投げ出してしまうおそれがある。
【0006】
また、前作のゲームをプレイしたユーザは、前作のゲームで苦労して育てたゲームキャラクタを、当然に新作のゲームでも使用したいという要求を持つことになる。しかしながら、現在のテレビゲームシステムでは、前作のゲームで育てたゲームキャラクタを新作のゲームで使用すると、前作のゲームで育てたゲームキャラクタをそのまま前作のゲームで使用することができなくなってしまう。同様の不都合は、形を変えて教育プログラムやビジネスプログラムにおいても起こり得る。例えば小学校低学年用の教育プログラムを終了後、小学校高学年用の教育プログラムに移る場合、低学年用の教育プログラムでの理解度を示すパラメータ(成績、点数、得意分野)を高学年用の教育プログラムに引き継げば、出題内容を理解度に応じて変えることができ、より学力に応じた指導ができる。しかしながら、このようなパラメータの引継を行うと、低学年用の教育プログラムを復習する場合に元のパラメータを使用できなくなってしまう。
【0007】
それゆえに、本発明の目的は、シリーズ化されたソフトウェアの販売順序を考慮しつつソフトウェアのみを効率的に販売できるソフトウェア書換システムを提供することである。
本発明の他の目的は、シリーズ化されたソフトウェアのプログラムを書き込む際に、プログラムの進行によって生じかつプログラムの進行に関連して利用されるバックアップデータを、不都合無く継承することができるソフトウェア書き換えシステムを提供することである。
【0008】
【課題を解決するための手段および発明の効果】
第1の発明は、顧客が持参した記憶媒体に格納されているソフトウェアのプログラムを書き換えることにより、顧客にソフトウェアを販売するためのソフトウェア書換システムであって、
顧客に販売する複数種類のソフトウェアのプログラムを記憶したソフトウェア記憶手段と、
ソフトウェア記憶手段に記憶されているソフトウェア毎に、当該ソフトウェアが継承判定を必要とするソフトウェアであるか否かを示すプログラム継承フラグを記憶したフラグ記憶手段と、
顧客またはソフトウェアを販売する店員による入力操作に基づいて、ソフトウェア記憶手段に記憶されている複数種類のソフトウェアの中から、顧客が購入しようとする1以上のソフトウェアを選択するソフトウェア選択手段と、
ソフトウェア選択手段によって選択されたソフトウェアが継承判定を必要とするソフトウェアであるか否かを、フラグ記憶手段に記憶されているプログラム継承フラグに基づいて判断する判断手段と、
ソフトウェア選択手段によって選択されたソフトウェアが継承判定を必要とするソフトウェアであることを判断手段が判断したとき、ソフトウェア記憶手段に記憶されているソフトウェア選択手段によって選択されたソフトウェアの関連情報と記憶媒体に記憶されている各ソフトウェアの関連情報を参照し、記憶媒体に記憶されているソフトウェアの関連情報の中に、ソフトウェア記憶手段に記憶されているソフトウェア選択手段によって選択されたソフトウェアの関連情報と所定の関係にある関連情報が存在するか否かを判断することによって、当該選択されたソフトウェアに対して所定の継承条件を満たすソフトウェアが記憶媒体内に記憶されているか否かを判定する継承判定手段と、
継承判定手段による判定の結果、ソフトウェア選択手段によって選択されたソフトウェアに対して所定の継承条件を満たすソフトウェアが記憶媒体に記憶されていると判断されたとき、当該選択されたソフトウェアのプログラムを記憶媒体に書き込む書込制御手段とを備える、ソフトウェア書換システム。
【0009】
上記のように、第1の発明によれば、顧客が持参した記憶媒体に格納されたソフトウェアのプログラムを書き換えることで、ソフトウェアのみを販売することができる。その際、購入のために選択されたソフトウェアが継承判定を必要とするソフトウェアである場合、当該選択されたソフトウェアに対して所定の継承条件を満たすソフトウェアが記憶媒体内に記憶されているときにのみ、当該選択されたソフトウェアのプログラムを記憶媒体に書き込むようにしているので、例えばシリーズ化されたソフトウェアであって、シリーズ番号順に実行して欲しいようなソフトウェアを、販売者が希望する順番で販売することができる。
【0010】
第2の発明は、第1の発明において、
記憶媒体は、ソフトウェアのプログラムを記憶するプログラム記憶領域と、プログラムの進行によって生じかつプログラムの進行に関連して利用されるバックアップデータを記憶するバックアップデータ記憶領域とを有し、
書込制御手段は、継承判定手段による判定の結果、ソフトウェア選択手段によって選択されたソフトウェアに対して所定の継承条件を満たすソフトウェアが記憶媒体内に記憶されていると判断されたとき、当該選択されたソフトウェアのプログラムをプログラム記憶領域に書き込むと共に、バックアップデータ記憶領域に記憶されている当該所定の継承条件を満たすソフトウェアのバックアップデータをプログラム記憶領域に書き込まれるソフトウェアのバックアップデータとしてバックアップデータ記憶領域に書き込むことによって、当該所定の継承条件を満たすソフトウェアのバックアップデータをプログラム記憶領域に書き込まれるソフトウェアのバックアップデータとして継承させることを特徴とする。
【0011】
上記のように、第2の発明によれば、ソフトウェア選択手段によって選択されたソフトウェアのプログラムを記憶媒体に書き込むとき、所定の継承条件を満たす記憶媒体内のソフトウェアのバックアップデータを当該選択されたソフトウェアのバックアップデータとして記憶媒体内で継承させるようにしているので、当該バックアップデータを、既に書き込まれているソフトウェアおよび新たに書き込まれるソフトウェアの両方で用いることが可能となる。
【0012】
第3の発明は、第1または第2の発明において、
継承判定手段は、ソフトウェア記憶手段に記憶されているソフトウェア選択手段によって選択されたソフトウェアのタイトルと記憶媒体に記憶されている各ソフトウェアのタイトルを参照し、ソフトウェア選択手段によって選択されたソフトウェアのタイトルに対してタイトルのうちのシリーズ番号を除く部分が同一でありかつタイトルのうちのシリーズ番号が当該ソフトウェアよりも古いタイトルを有するソフトウェアが記憶媒体に記憶されているときに、所定の継承条件が満たされていると判定することを特徴とする。
【0013】
第4の発明は、第3の発明において、
継承判定手段は、ソフトウェア選択手段によって選択されたソフトウェアのタイトルに対してタイトルのシリーズ番号を除く部分が同一でありかつシリーズ番号が当該ソフトウェアよりも1つだけ古いタイトルを有するソフトウェアが記憶媒体に記憶されているときに、所定の継承条件が満たされていると判定することを特徴とする。
第5の発明は、第1の発明において、
継承判定手段による判定の結果、ソフトウェア選択手段によって選択されたソフトウェアに対して所定の継承条件を満たすソフトウェアが記憶媒体に記憶されていないと判断されたときに、エラーメッセージを表示させる手段をさらに備えたことを特徴とする。
【0014】
【発明の実施の形態】
図1は、本発明の一実施形態に係るソフトウェア書換システムの第1の構成例を示すブロック図である。図1において、本実施形態のソフトウェア書換システムは、セットされたゲームカセット10にゲームプログラムを書き込むためのカセットライタ20と、このカセットライタ20を操作するための店内端末30とを備えている。
【0015】
カセットライタ20は、CPU21と、CD−ROMドライブ22と、RAM23と、フラッシュメモリ24と、ASIC25と、コネクタ26とを含む。CPU21には、CD−ROMドライブ22、RAM23、フラッシュメモリ24、ASIC25が接続されている。コネクタ26は、ASIC25と接続されている。このコネクタ26には、ゲームカセット10内のコネクタ11が着脱自在に装着される。これによって、ゲームカセット10とカセットライタ20とが電気的に接続される。店内端末30は、カセットライタ20の内部バス27に直結され、この内部バス27を介してCPU21と接続されている。
【0016】
CD−ROMドライブ22は、セットされたCD−ROM40からデータを読み出してCPU21に与える。後述するように、このデータには、書込制御プログラムと、ゲーム選択プログラムと、ゲームプログラムと、関連情報とが含まれている。CPU21は、上記の書込制御プログラムに従った動作を実行する。RAM23は、CD−ROM22から読み出されたゲームプログラムおよび関連情報と、CPU21の演算処理に必要なデータとを記憶する。フラッシュメモリ24は、CD−ROMドライブ22から読み出された書込制御プログラムを記憶する。ASIC25は、CPU21からの命令に従ってゲームカセット10に対するデータの書き込みおよび読み出しを制御する。つまり、ASIC25は、ゲームカセット10に対する入出力インタフェイスである。
【0017】
なお、店内端末30は、図2に示すように、LANケーブル29およびLANボード28を介して、CPU21と接続されても良い。また、CPU21は、LANケーブル29およびLANボード28を介して接続された電子式キャッシュレジスタ50と連動するような構成であっても良い。
図1のシステム構成は、カセットライタ20と店内端末30との間の物理的距離が近いが、図2のシステム構成では、店内端末30がカセットライタ20から離れた位置に設置される。図1のシステム構成は、客からの注文を聞いた店員が店内端末30を操作するような形態の店に適している。一方、図2のシステム構成は、顧客自身が店内端末30を操作して必要なゲームプログラムを注文するような形態の店に適している。
【0018】
図3は、図1に示すゲームカセット10と、当該ゲームカセット10が接続されるゲーム機60との詳細な構成を示すブロック図である。図3を参照して、ゲームカセット10は、コネクタ11と、フラッシュメモリ12と、SRAM13と、メモリコントローラ14と、バックアップIC15と、バックアップ用電池16と、チェック用IC17とを含む。フラッシュメモリ12およびSRAM13は、データバスDB1を介してコネクタ11に接続されると共に、アドレスバスAB1を介してメモリコントローラ14と接続される。メモリコントローラ14は、アドレスバスAB2を介してコネクタ11と接続される。チェック用IC17は、コネクタ11と接続される。
【0019】
周知のごとく、フラッシュメモリは、書き換え可能な不揮発性メモリであって、小型かつ大容量である。本実施形態において、フラッシュメモリ12は、一例として、32Mbitの容量を有しており、後述するように、ゲームプログラムを記憶するために用いられ、4Mbit単位で8つのブロックに分割されている。SRAM13は、電源が供給される限り記憶内容を保持する静的なRAMである。本実施形態において、SRAM13は、一例として、256kbitの容量を有しており、後述するように、ゲームのためのバックアップデータ(攻略したステージ、獲得したアイテム、成長させたキャラクタに関するデータ等)を記憶するために用いられ、16kbit単位で16個のブロックに分割されている。
【0020】
メモリコントローラ14は、アドレスバスAB2を介してカセットライタ20またはゲーム機60から与えられるアドレスを、フラッシュメモリ12およびSRAM13でのメモリ配置に適合するアドレスに変換する機能を有している。バックアップIC15は、電源をSRAM13に安定的に供給する機能と、SRAM13を不所望な誤書き込みから保護する機能とを有している。バックアップIC15は、ゲームカセット10に内蔵されたバックアップ用電池16から電源の供給を受ける。また、バックアップIC15は、図示されていないが、ゲームカセット10がカセットライタ20またはゲーム機60にセットされたとき、これらカセットライタ20またはゲーム機60から電源(商用電源を降圧して平滑化した直流電源)の供給を受ける。バックアップIC15は、ゲームカセット10がカセットライタ20またはゲーム機60から外されているとき、バックアップ用電池16からの電源をSRAM13に供給する。また、バックアップIC15は、ゲームカセット10がカセットライタ20またはゲーム機60にセットされているとき、カセットライタ20またはゲーム機60からの電源をSRAM13に供給する。
【0021】
フラッシュメモリ12およびSRAM13は、メモリコントローラ14から出力されるチップセレクト信号CE1と、バックアップIC15から出力されるチップセレクト信号CE2とによって、それらの選択状態が相補的に切り替えられる。すなわち、フラッシュメモリ12およびSRAM13は、いずれか一方が選択状態になっているとき、いずれか他方が非選択状態になっている。これは、フラッシュメモリ12およびSRAM13には、共通のデータバスおよびアドレスバスを介してデータおよびアドレスが供給されるが、供給されたアドレスに対応するメモリチップのアクセスのみを許可状態にするためである。チップセレクト信号CE2は、メモリコントローラ14から出力される1ビットのデコード信号DSおよびSRAM13に対する電源供給状態を基に、バックアップIC15が生成する。特に、ゲームカセット10がカセットライタ20またはゲーム機60にセットされた状態であって、これらカセットライタ20またはゲーム機60の電源がオンされたとき、アドレスバスAB1には、電源オン時の過渡特性によって、ノイズが混入するおそれがある。このノイズが偶然SRAM13のいずれかの番地と一致した場合、メモリコントローラ14が誤ってデコード信号DSを発生しSRAM13の該当する番地には不所望な書き込みが行われる。そこで、バックアップIC15は、カセットライタ20またはゲーム機60から供給される電源の電圧値を監視し、電源オン時においては、当該電圧値が予め定める値(約4.5V)に落ち着くまで、チップセレクト信号CE2をSRAM13に与えない。これによって、電源オン時の不所望な誤書き込みを防止することができる。
【0022】
また、メモリコントローラ14からフラッシュメモリ12に与えられるアドレスバスAB1の内、上位3ビットがフラッシュメモリ12の8つに分割されたブロックのいずれかを指定するために用いられる。同様に、メモリコントローラ14からSRAM13に与えられるアドレスバスAB1の内、上位4ビットがSRAM13の16個に分割されたブロックのいずれかを指定するために用いられる。
【0023】
ゲーム機60は、CPU61と、PPU(ピクチャ・プロセッシング・ユニット)62と、ワーキングRAM63と、ビデオRAM64と、I/Oインタフェイス65と、コネクタ66と、チェック用IC67とを含む。CPU61には、データバスDB3およびアドレスバスAB3を介してコネクタ66が接続され、データバスDB4およびアドレスバスAB4を介してPPU62が接続され、データバスDB5およびアドレスバスAB5を介してワーキングRAM63が接続される。さらに、CPU61には、I/Oインタフェイス65を介して、コントローラ70が接続される。ビデオRAM64は、データバスDB6およびアドレスバスAB6を介してPPU62と接続される。また、PPU62の出力は、テレビジョン受像機80に与えられる。チェック用IC67は、コネクタ66と接続される。
【0024】
ゲームを楽しむとき、ゲームカセット10のコネクタ11がゲーム機60のコネクタ66に差し込まれる。これによって、フラッシュメモリ12およびSRAM13がCPU61の管理下に入る。そして、CPU61は、フラッシュメモリ12からゲームプログラムを読み出し、ゲーム動作を開始する。また、必要に応じて、SRAM13からゲームに対応するバックアップデータを読み出し、ゲーム動作のためのパラメータを設定する。コントローラ70は、プレイヤーによって操作され、CPU61に種々の指示および命令を与える。ワーキングRAM63は、CPU61の演算処理に必要な種々のデータを記憶する。PPU62は、CPU61からの命令に基づき、ビデオRAM64に格納されたキャラクタデータから表示用データを生成する。この表示用データは、テレビジョン受像機80に与えられ、表示される。このように、PPU62を設けることで、CPU61は、表示用データの生成処理から解放され、本来のゲーム動作を高速で行うことが可能となる。
【0025】
コネクタ11がコネクタ66に差し込まれると、チェック用IC67は、チェック用IC17との間で所定の認証処理を行う。認証結果が適正な場合、チェック用IC17は、リセット解除信号/RSを出力する。このリセット解除信号/RSは、メモリコントローラ14に与えられる。応じて、メモリコントローラ14は、コネクタ11およびコネクタ66を介してCPU61に供給しているリセット信号RSを解除する。一方、認証結果が不適正な場合、メモリコントローラ14はCPU61のリセットを解除しない。このとき、CPU61は、ゲームプログラムを起動しない。これによって、違法に販売されたゲームカセットの使用を排除することができる。
【0026】
図4は、図3に示すフラッシュメモリ12およびSRAM13のメモリマップを示す図である。図4において、フラッシュメモリ12は、データ記憶領域として、ゲーム選択プログラムやゲームプログラムを記憶する主領域121と、ゲーム関連情報を記憶する関連情報記憶領域122とを含む。主領域121は、32Mbitの記憶容量を有し、4Mbit単位に8つのブロックに分割されている。主領域121は、ブロック単位でゲーム選択プログラムおよびゲームプログラムを記憶する。ブロックの1つが、ゲーム選択プログラムの記憶のために用いられるので、主領域121は、最大7種類のゲームプログラムを記憶可能である(ただし、各ゲームプログラムが4Mbit以下の場合である)。なお、4Mbit以上のゲームプログラムを記憶する場合は、複数のブロックを使用することになる。
【0027】
SRAM13は、256kbitの記憶容量を有し、16kbit単位で16個のブロックに分割されている。SRAM13は、上記主領域121に書き込まれたゲームプログラムのためのバックアップデータを記憶する。
【0028】
図5は、図4における関連情報記憶領域122のメモリマップを示す図である。図5において、関連情報記憶領域122は、主領域121のアドレス空間とは別のアドレス空間を有し、特別のコマンドが与えられたときのみアクセス可能なメモリ領域である。この関連情報記憶領域122は、フラッシュメモリ12の主領域121に記憶されたゲーム選択プログラムおよびゲームプログラムについて、それぞれに固有の関連情報を記憶する領域122a〜122iを含む。領域122aはゲームタイトルを、領域122bはマップ情報を、領域122cはフラッシュメモリの容量(プログラムを主記憶領域121に記憶させるのに必要な容量)を、領域122dはSRAMの容量(対応するバックアップデータをSRAM13に記憶させるのに必要な容量)を、領域122eはフラッシュメモリのブロック番号(プログラムを記憶している主記憶領域121のブロックの番号)を、領域122fはSRAMのブロック番号(対応するバックアップデータを記憶しているSRAM13のブロックの番号)を、領域122gはプログラム継承フラグ(プログラムの継承判定を行うべきか否かを示すフラグ)を、領域122hはバックアップデータ継承フラグ(バックアップデータの継承判定を行うべきか否かを示すフラグ)を、領域122iはゲームの販売価格の情報を、それぞれ記憶する。ところで、ゲーム機60内のCPU61は、独自の広いアドレス空間を有している。そして、ゲームプログラムは、このアドレス空間の所定の位置に配置されなければならない。上記マップ情報は、ゲームプログラムがCPU61のアドレス空間のいずれの位置に配置されるべきかを示している。
【0029】
図6は、この発明のゲームソフトを書き換えて販売する原理を説明するための図であり、例えばCD−ROM40に格納されたデータが、ゲームカセット10に書き込まれていく際のデータの流れを示した図である。図6において、CD−ROM40には、書込制御プログラムと、ゲーム選択プログラムと、複数種類のゲームプログラムと、各ゲームプログラムについての関連情報とが格納されている。CD−ROM40に格納される関連情報は、ゲームのタイトルと、マップ情報と、ゲームプログラム記憶のためにフラッシュメモリ12に確保すべき容量と、バックアップデータ記憶のためにSRAM13に確保すべき容量と、プログラム継承フラグと、バックアップデータ継承フラグと、ゲームの販売価格とを含む。なお、プログラム継承フラグは、ゲームプログラムの継承を必要とする場合はオンされ、プログラムの継承を必要としない場合はオフされている。また、バックアップデータ継承フラグは、バックアップデータの継承を必要とする場合はオンされ、バックアップデータの継承を必要としない場合はオフされている。CD−ROM40に格納された書込制御プログラムは、カセットライタ20のCPU21によって読み出され、カセットライタ20内のフラッシュメモリ24に書き込まれる。以後、CPU21は、この書込制御プログラムに従って、ゲームカセット10に対するゲームプログラムの書き込み制御動作を実行する。CD−ROM40に格納されたゲーム選択プログラム、ゲームプログラムおよび関連情報は、カセットライタ20のCPU21によって読み出され、カセットライタ20内のRAM23に書き込まれる。RAM23に書き込まれたゲーム選択プログラムおよびゲームプログラムは、ゲームカセット10に転送され、フラッシュメモリ12の主領域121に書き込まれる。RAM23に書き込まれた関連情報は、ゲームカセット10に転送され、フラッシュメモリ12の関連情報記憶域122に書き込まれる。なお、ゲーム選択プログラムは、ゲームカセット10をゲーム機60にセットしたとき、ゲーム機60のCPU61によって実行され、複数のゲームの中から1つのゲームを選択するために用いられる。
【0030】
ここで、1つのゲームプログラム、フラッシュメモリ12、マスターデータを記憶するCD−ROM40の、それぞれの容量の関係を説明する。フラッシュメモリ12は、例えば32Mbitの容量を有するものが用いられる。1つのゲームプログラムのデータ量は、4Mbitの整数倍、例えばフラッシュメモリ12の容量が32Mbitの場合であれば、4Mbit、8Mbit、12Mbit、16Mbit、20Mbit、24Mbit、28Mbit、32Mbitに選ばれる。1つのゲームプログラムは、フラッシュメモリ12の容量と同等かそれ以下に設定されている。したがって、フラッシュメモリ12には、4Mbitのゲームプログラムが最大で7種類と4Mbitのゲーム選択プログラムとを記憶できる。例えば、1本のゲームプログラムが8Mbitの場合であれば、3種類のゲームソフトと4Mbitのゲーム選択プログラムが記憶できる。また、32Mbitのゲームプログラムを記憶する場合は、ゲーム選択プログラムが不要である。
【0031】
一方、CD−ROM40は、数百Mbyteの容量を有する。従って、CD−ROM40の容量は、フラッシュメモリ12の容量や1つのゲームプログラムの容量に比べて非常に大きいため、数多くの種類のゲームプログラムを記憶できる。なお、CD−ROM40は、少なくとも4Mbitのゲームプログラム7種類と4Mbitのゲーム選択プログラムとを記憶できる容量であれば足りる。
【0032】
図7は、ゲームカセット10のフラッシュメモリ12に書き込まれたゲームプログラムを書き換える際のデータの流れを示した図である。なお、ここでは、一例として、ゲーム1〜4のプログラムが書き込まれているフラッシュメモリ12において、ゲーム1および3のプログラムを残し、かつゲーム2および4のプログラムを消去して、新たにゲーム5のプログラムを書き込む際のデータの流れを示している。図7において、カセットライタ20のCPU21は、フラッシュメモリ12に書き込まれている全てのデータを読み出し、RAM23上に展開する。その後、カセットライタ20において、消去のためにゲーム2および4が選択されると、CPU21は、RAM23からゲーム2および4のプログラムを消去する。また、CPU21は、カセットライタ20において、購入のためにゲーム5が選択されると、CD−ROM40からゲーム5のプログラムを読み出し、RAM23に格納する。その後、CPU21は、RAM23に残ったゲーム選択プログラムと、ゲーム1,3および5のプログラムとを読み出し、ゲームカセット10に転送する。これによって、ゲームカセット10のフラッシュメモリ12には、ゲーム選択プログラムと、ゲーム1,3および5のプログラムとが書き込まれる。
【0033】
なお、残されたゲーム1,3に対応する関連情報および新たに書き込まれるゲーム5の関連情報が、フラッシュメモリ12の関連情報記憶領域122に書き込まれるが、その詳細は、図6の説明を参照すれば、容易に理解できるので、ここではその説明を省略する。
【0034】
このように、本実施形態では、ゲームカセット10のフラッシュメモリ12に書き込まれたゲームプログラムを書き換える際に、フラッシュメモリ12に書き込まれている全てのデータを一度RAM23に読み出し、RAM23上でゲームプログラムの整理、再配置を行った後、フラッシュメモリ12に書き込むようにしているので、ゲームプログラムを効率良く書き込むことができる。なお、図7では、フラッシュメモリ12内の全てのプログラムを書き換えるようにしているが、フラッシュメモリ12内の記憶位置(ブロック番号)が変更されないプログラム、すなわちゲーム選択プログラムとゲーム1のプログラムは書き換えないようにしても良い。
【0035】
図8〜図13は、カセットライタ20に接続された店内端末30に表示される操作画面の一例を示す図である。より具体的には、図8および図9は、ゲーム選択画面を示している。なお、図8は、購入するゲームを選択する前の画面を、図9は、購入するゲームを選択した後の画面を示している。また、図10〜図12は、ゲーム削除画面を示している。なお、図10は、消去および/または取り消すべきゲームプログラムを指定する前であって、書込可能な状態の画面を示しており、図11は、消去および/または取り消すべきゲームプログラムを指定する前であって、書込不可能な状態の画面を示しており、図12は、消去および/または取り消すべきゲームプログラムの指定が終了した後の画面を示している。また、図13は、ゲーム機60に接続されたテレビジョン受像機80において、ゲーム開始前に表示されるメニュー画面を示す図である。
【0036】
図14〜図18は、書込制御プログラムに従うカセットライタ20の動作を示すフローチャートである。また、図19は、ゲーム機60の動作を示すフローチャートである。また、図20は、ゲームカセット10にシリーズ化されたゲームプログラムを書き込むとき、バックアップデータの移行のさせ方を示した図である。以下、これら図8〜図20を参照して、上記実施形態の動作を説明する。
【0037】
まず、図14〜図19に示されるカセットライタ20の動作について説明する。電源がオンされると、CPU21は、フラッシュメモリ24内の書込制御プログラムをバージョンアップすべきか否かを判断する(ステップS101)。フラッシュメモリ24に書込制御プログラムが記憶されていない場合、またはCD−ROM40に格納された書込制御プログラムのバージョンがフラッシュメモリ24に記憶された書込制御プログラムのバージョンよりも新しい場合は、書込制御プログラムをバージョンアップすべきと判断される。書込制御プログラムをバージョンアップすべき場合、CPU21は、CD−ROMドライブ22を用いてCD−ROM40から書込制御プログラムを読み出し、当該読み出した書込制御プログラムを、図6に示すように、フラッシュメモリ24にダウンロードする(ステップS102)。CD−ROM40は、常に新作ソフトが販売できるように、定期的(例えば、1ヶ月毎)に販売店に供給される。従って、このCD−ROM40に書込制御プログラムを格納し、格納された書込制御プログラムに基づいて自動的にカセットライタ20のソフト処理のバージョンアップ作業を行うようにすれば、販売店側は、面倒なバージョンアップ作業から解放され、本来の店内業務に専念できる。
【0038】
書込制御プログラムのダウンロードが終了すると、CPU21は、当該書込制御プログラムを起動する(ステップS103)。以後、CPU21は、書込制御プログラムに従って動作する。次に、CPU21は、CD−ROM40からゲーム選択画面の表示に必要なデータ(ゲームのタイトル、容量および販売価格)を読み込み、図6に示すように、RAM23のワーキング領域に書き込む(ステップS104)。次に、CPU21は、図8に示すようなゲーム選択画面を店内端末30に表示させる(ステップS105)。このゲーム選択画面は、販売ゲームリスト301と、ページ更新ボタン302および303と、購入ゲームリスト304と、合計容量表示部305および306とを含む。販売ゲームリスト301には、上記ステップS104においてRAM23に書き込まれたゲームのタイトル、容量および価格に従って、販売するゲームのタイトル、容量および価格が表示される。販売するゲームの種類が多い場合は、1画面中に販売ゲームリストの全体を表示することが困難であるが、画面中のページ更新ボタン302または303を選択することにより、販売ゲームリストの表示ページを前後方向に更新でき、これによって、販売ゲームリストに含まれるゲームの全種類を見ることができる。なお、ボタンを選択する方法としては、表示画面にタッチパネルを設け、該当するボタンを指で押圧する方法であっても良いし、マウス等のポインティングデバイスによって該当するボタンにカーソルを合わせ、クリックするような方法であっても良い。以下に述べる店内端末30での種々の選択操作も上記と同様の方法で行われる。このとき、購入するゲームの選択は行われていないので、購入ゲームリスト304、合計容量表示部305および306には、何らの情報も表示されていない。購入決定ボタン307は、購入するゲームの選択が終了したときに選択されるボタンである。
【0039】
次に、CPU21は、コネクタ26にゲームカセット10がセット(装着)されたか否かを判断する(ステップS106)。ゲームカセット10がセットされると、CPU21は、関連情報記憶領域122に記憶された関連情報に基づいてフラッシュメモリ12およびSRAM13の空き容量(以下、ゲームカセット空き容量と称す)を計算するとともに、関連情報記憶領域122に記憶されている関連情報を読み出す(ステップS107)。このとき計算されたゲームカセット空き容量および読み出されたデータは、RAM23に一時的に記憶される(図7参照)。
【0040】
次に、店員または顧客(図1のシステム構成の場合は店員、図2のシステム構成の場合は顧客)は、店内端末30を操作し、販売ゲームリストの中から購入するゲームを選択する(ステップS108)。応じて、CPU21は、購入のために選択されたゲームの関連情報を、RAM23に一時的に記憶させる(ステップS109)。このとき、図9に示すように、店内端末30には、購入ゲームリスト304中に、選択されたゲームのタイトル、容量および価格が表示される。次に、CPU21は、そのときまでに選択されたゲームの合計容量(以下、選択ゲーム合計容量と称す)を計算する(ステップS110)。計算された選択ゲーム合計容量は、図9の合計容量表示部305および306に表示される。なお、合計容量表示部305は、書き込みに必要なフラッシュメモリ12の容量をブロック単位で表示し、合計容量表示部306は、書き込みに必要なSRAM13の容量をブロック単位で表示する。次に、CPU21は、継承判定処理を実行する(ステップS300)。このサブルーチンステップ300の詳細は、図17に示されている。
【0041】
図17を参照して、CPU21は、前述のステップS108でCD−ROM40から選択されたゲームの関連情報を、RAM23から読み出す(ステップS301)。次に、CPU21は、RAM23から読み出した関連情報をサーチし、継承を必要とするゲームプログラムまたはバックアップデータが存在するか否かを判断する(ステップS302)。プログラム継承フラグまたはバックアップ継承フラグがオンされている場合、そのゲームプログラムまたはバックアップデータは、継承を必要とすると判断される。継承を必要とするゲームプログラムまたはバックアップデータが存在しない場合、CPU21は、図14のメインルーチンにリターンする。一方、継承を必要とするゲームプログラムまたはバックアップデータが存在する場合、CPU21は、ゲームカセット10内のフラッシュメモリ12の関連情報記憶領域122から関連情報を読み出す(ステップS303)。次に、CPU21は、関連情報記憶領域122から読み出した関連情報(以下、第1の関連情報と称す)の中に、上記ステップS302で継承が必要と判断されたゲームプログラムまたはバックアップデータの関連情報(以下、第2の関連情報と称す)と所定の関係にある関連情報が存在するか否かを判断する(ステップS304)。ここで、所定の関係とは、以下のことを意味する。
(1)第1の関連情報中に第2の関連情報のゲームタイトル(ただし、シリーズ番号を除く部分)と一致するゲームタイトルが存在すること
(2)一致したゲームタイトルのシリーズ番号部分は、第1の関連情報の方が第2の関連情報よりも1つだけ古いこと
例えば、第2の関連情報中にゲームタイトルとして「マリオ2」が存在する場合、第1の関連情報中にゲームタイトルとして「マリオ1」が存在すれば、第1の関連情報中に、第2の関連情報と所定の関係にある関連情報が存在すると判断される。
【0042】
第1の関連情報中に、第2の関連情報と所定の関係にある関連情報が存在しない場合、CPU21は、店内端末30にエラーメッセージを表示させる。このエラーメッセージは、購入のために選択されたゲームがシリーズ化されたゲームであって、ゲームカセット中に選択されたゲームの1つ前のゲームプログラムが格納されていないため、書き込みを禁止する旨の表示を含む。一方、第1の関連情報中に、第2の関連情報と所定の関係にある関連情報が存在する場合、CPU21は、継承フラグ(RAM23のワーキング領域内に設定されている)をオンした後(ステップS305)、図14のメインルーチンにリターンする。
【0043】
再び図14を参照して、CPU21は、購入するゲームの選択が終了したか否かを判断する(ステップS111)。店員または顧客によって、図9の購入決定ボタン307が選択されたとき、購入するゲームの選択が終了したと判断される。ゲームの選択が終了していない場合は、再びステップS108〜S110の動作が繰り返される。
【0044】
一方、ゲームの選択が終了した場合、CPU21は、前述のステップS110で計算された選択ゲーム合計容量が前述のステップS107で計算されたゲームカセット空き容量以下であるか否かを判断する(ステップS112)。選択ゲーム合計容量がゲームカセット空き容量以下である場合、CPU21は、店内端末30に、図10に示すようなゲーム削除画面を表示させる。一方、選択ゲーム合計容量がゲームカセット空き容量を越えている場合、CPU21は、店内端末30に、図11に示すようなゲーム削除画面を表示させる。
【0045】
図10および図11に示すように、ゲーム削除画面は、カセット内ゲームリスト308と、空き容量表示部309および310と、購入ゲームリスト304と、合計容量表示部305および306と、書込可能ボタン311と、カセット内全消去ボタン312と、画面リターンボタン313とを含む。カセット内ゲームリスト308には、ゲームカセット10に格納されているゲームのリストが表示される。また、空き容量表示部309には、フラッシュメモリ12の空き容量が表示される。空き容量表示部310には、SRAM13の空き容量が表示される。これらカセット内ゲームリスト308、空き容量表示部309および310の表示内容は、前述のステップS107でRAM23に格納されたデータに基づいて決定される。書込可能ボタン311は、購入ゲームリスト304に挙げられたゲームのプログラムをゲームカセット10に書き込む指示を与えるときに選択される。ここで、図10および図11を対比すると、図10のゲーム削除画面では、書込可能ボタン311が選択可能になっているのに対し、図11のゲーム削除画面では、書込可能ボタン311が選択不能になっている。これは、図11の状態では、選択ゲーム合計容量がゲームカセット空き容量を越えているため、ゲームプログラムの書込指示を禁止するためである。カセット内全削除ボタン312は、ゲームカセット10に格納されたゲームプログラムを一括的に全て消去するときに選択される。画面リターンボタン313は、ゲーム削除画面を図9に示すゲーム選択画面に戻すときに選択される。
【0046】
選択ゲーム合計容量がフラッシュメモリ12およびSRAM13の空き容量以下の場合、CPU21は、店員または顧客によって書込可能ボタン311が選択されたか、画面リターンボタン313が選択されたかを判断する(ステップS113)。画面リターンボタン313が選択された場合、再びステップS108〜S112の動作が繰り返される。すなわち、このステップS108〜S112の繰り返し動作において、購入すべきゲームの追加または変更が行われる。一方、書込可能ボタン311が選択された場合、CPU21は、図6および図7に示すように、購入のために選択されたゲームのプログラムと、ゲーム選択プログラムと、関連情報とをCD−ROM40から読み出し、および/またはゲームカセット10内のフラッシュメモリ12およびSRAM13に記憶されている全データ(ゲームプログラム、バックアップデータ)を読み出し、RAM23に格納する(ステップS114)。
【0047】
前述のステップS112において、選択ゲーム合計容量がゲームカセット空き容量を越えている場合、ゲームカセット10に格納されているゲームプログラムを消去するか、購入のために選択したゲームを取り消す必要がある。そこで、店員または顧客は、図11に示すゲーム削除画面において、カセット内ゲームリスト308から消去すべきゲームを選択し、および/または、購入ゲームリスト304から購入を取り消すべきゲームを選択する。この後の動作の詳細は、図16に示されている。
【0048】
図16において、CPU21は、購入するゲームの取消が選択されたのか、ゲームプログラムの消去が選択されたかを判断する(ステップS115およびS116)。ゲームの取消が選択された場合、CPU21は、選択されたゲームの取消処理を行う(ステップS117)。これによって、ゲーム削除画面の購入ゲームリスト304には、図12に示すように、取消が選択されたゲームに対し、取消表示がなされる。また、ゲームプログラムの消去が選択された場合、CPU21は、図示しない消去フラグをオンする(ステップS118)。このとき、ゲーム削除画面のカセット内ゲームリスト308には、図12に示すように、消去が選択されたゲームに対し、消去表示がなされる。
【0049】
上記ステップS117またはS118の後、CPU21は、選択ゲーム合計容量およびゲームカセット空き容量を再計算する(ステップS119)。このときの再計算結果は、図12に示すように、合計容量表示部305および306、空き容量表示部309および310に反映される。ここで、顧客は、ゲームカセット10内のゲームプログラムを消去しないように考え直す場合がある。このような場合、店員または顧客は、カセット内ゲームリスト308において消去が選択されているゲームを再選択することにより、ゲームプログラムの消去を解除する。CPU21は、このような消去の解除がなされたか否かを判断する(ステップS120)。もし、消去の解除がなされている場合、CPU21は、前述のステップS118でセットした消去フラグをオフした後(ステップS121)、ステップS122に進む。一方、消去の解除がなされていない場合、CPU21は、消去フラグをリセットすることなく、ステップS122に進む。
【0050】
ステップS122において、CPU21は、再計算された選択ゲーム合計容量が再計算されたフラッシュメモリ12またはSRAM13の空き容量以下であるか否かを判断する。選択ゲーム合計容量がこれらの空き容量を越えている場合、再びステップS115〜S121の動作が繰り返される。すなわち、選択ゲーム合計容量がフラッシュメモリ12またはSRAM13の空き容量以下になるまで、取消および/または消去すべきゲームの追加または変更が行われる。選択ゲーム合計容量が空き容量以下になると、CPU21は、店員または顧客によって書込可能ボタン311が選択されたか、画面リターンボタン313が選択されたかを判断する(ステップS123)。画面リターンボタン313が選択された場合、再びステップS108の動作に戻る。すなわち、購入すべきゲームの追加または変更処理が行われる。一方、書込可能ボタン311が選択された場合、CPU21は、購入のために選択されたゲームのプログラムと、ゲーム選択プログラムと、関連情報とをCD−ROM40から読み出すと共に、ゲームカセット10内のフラッシュメモリ12およびSRAM13に記憶されている全データ(ゲームプログラム、バックアップデータ)を読み出してRAM23に格納する(ステップS124)。次に、CPU21は、消去フラグがオンされているか否かを判断する(ステップS125)。消去フラグがオンされている場合、CPU21は、継承フラグがオンされているか否かを判断する(ステップS126)。継承フラグがオンされていない場合、CPU21は、消去処理を行う(ステップS127)。この消去処理では、前述のステップS107でRAM23に格納されたゲームカセット10のデータの内、消去のために選択されたゲームのプログラム、バックアップデータおよび関連情報が消去される(図7参照)。一方、継承フラグがオンされている場合、消去のために選択されたゲームのバックアップデータをバッファ(例えば、RAM23のワーキング領域に設定される)に退避させる(ステップS128)。
【0051】
前述のステップS114の処理が終了した後、またはステップS125で消去フラグがオフされていると判断された場合、またはステップS127の消去処理が終了した後、またはステップS128のバックアップデータ退避処理が終了した後、CPU21は、バックアップデータの移行処理を実行する(ステップS400)。このサブルーチンステップの詳細は、図18に示されている。
【0052】
図18を参照して、CPU21は、RAM23内のバッファ領域にバックアップデータが退避されているか否かを判断する(ステップS401)。バックアップデータが退避されていない場合、CPU21は、図14のメインルーチンにリターンする。一方、バックアップデータが退避されている場合、CPU21は、当該退避されたバックアップデータ中に、継承を必要とするバックアップデータが存在するか否かを判断する(ステップS402)。フラッシュメモリ12の関連情報記憶領域122から読み出された関連情報中の対応するバックアップデータ継承フラグがオンされている場合、当該バックアップデータは、継承を必要とするバックアップデータである。継承を必要とするバックアップデータが存在する場合、CPU21は、当該バックアップデータを書き込むためのSRAM13のブロックを指定し(ステップS403)、当該バックアップデータを指定したブロックに書き込む(ステップS404)。これによって、消去されたゲームのバックアップデータが新たに書き込まれるゲームのバックアップデータとして継承される(図20(a)および(c)参照)。
【0053】
次に、CPU21は、ゲームカセット10へのプログラムの書込を開始する(図6,図7および図15参照)。まず、CPU21は、フラッシュメモリ12の先頭ブロックを指定する(ステップS129)。次に、CPU21は、フラッシュメモリ12に書き込むべきゲームプログラム(購入のために選択されたゲームプログラムおよびゲームカセット10に元から格納されていたゲームプログラムであって消去されなかったゲームプログラム)がフラッシュメモリ12の8つのブロック(32Mbit分)を全て使用するゲームプログラム(以下、フルサイズゲームプログラムと称す)か否かを判断する(ステップS130)。書き込むべきゲームプログラムがフルサイズゲームプログラムでない場合、CPU21は、RAM23からゲーム選択プログラム(CD−ROM40から読み出したゲーム選択プログラム)を読み出し、フラッシュメモリ12の主領域121の先頭ブロックに書き込む(ステップS131)。一方、書き込むべきゲームプログラムがフルサイズゲームプログラムの場合は、後にゲーム機60においてゲーム選択を行う必要がないので、CPU21は、ゲーム選択プログラムをフラッシュメモリ12に書き込まない。これによって、ゲームプログラムの容量が大きい場合は、フラッシュメモリ12の容量を最大限に利用した書込が行える。
【0054】
上記ステップS131の後、または上記ステップS127で書き込むべきゲームプログラムがフルサイズゲームプログラムであると判断された後、CPU21は、ゲームプログラムをRAM23から読み出し、フラッシュメモリ12の主領域121に書き込む(ステップS132)。このとき、書き込むべきゲームプログラムがフルサイズゲームプログラムである場合は、フラッシュメモリ12の主領域121の先頭ブロックから書き込みが開始され、書き込むべきゲームプログラムがフルサイズゲームプログラムでない場合は、フラッシュメモリ12の主領域121の第2番目のブロックから書き込みが開始される。次に、CPU21は、RAM23内にフラッシュメモリ12に書き込むべきゲームプログラムが2個以上存在するか否かを判断する(ステップS133)。書き込むべきゲームプログラムが2個以上存在する場合、CPU21は、フラッシュメモリ12の主領域121の次のブロック(次のゲームプログラムの書き込みを開始するブロック)を指定する(ステップS134)。その後、CPU21は、ゲームプログラムの書き込みが全て終了したか否かを判断する(ステップS135)。一方、書き込むべきゲームプログラムが1個であり、しかもフルサイズゲームプログラムでない場合、CPU21は、次のブロックを指定することなく、ステップS135の判断を行う。ゲームプログラムの書き込みが終了していない場合、CPU21は、再びステップS132以下の動作を繰り返す。これによって、フラッシュメモリ12の主領域121には、RAM23に格納されたゲームプログラムが順番に書き込まれていく。一方、ゲームプログラムの書き込みが終了した場合、CPU21は、RAM23に格納されたバックアップデータをSRAM13に書き込むと共に、関連情報をフラッシュメモリ12の関連情報記憶領域122に書き込む(ステップS136)。このとき、CPU21は、図20(b)に示すように、継承を必要とするゲームのバックアップデータについては、既にゲームカセット10に書き込まれていたゲームのバックアップデータをコピーして、新たに書き込む新バージョンのゲームのバックアップデータとして書き込む。その後、CPU21は、図14のステップS106の動作に戻る。
【0055】
次に、図19を参照して、ゲームカセット10内に格納されたゲームプログラムをゲーム機60で実行させる際の動作を説明する。ゲームカセット10がゲーム機60のコネクタ66にセットされ、ゲーム機60の電源がオンされると、ゲームカセット10内のメモリコントローラ14は、リセット信号RSを生成し、当該リセット信号RSをコネクタ11および66を介して、ゲーム機60内のCPU61に供給する。これによって、CPU61は、動作停止状態に置かれる。
【0056】
その後、メモリコントローラ14は、フラッシュメモリ12の関連情報記憶領域122から関連情報を読み出して一時的に記憶すると共に、当該関連情報に含まれるマップ情報に基づいて、アドレス変換パラメータを設定する(ステップS201)。このとき、CPU61は、依然として動作停止状態にある。前述したように、ゲームプログラムは、CPU61が有するアドレス空間の所定の位置に配置されなければならない。そして、この所定の位置は、ゲームの種類によって異なっている。上記のアドレス変換パラメータは、CPU61のアドレス空間をフラッシュメモリ12のアドレス空間に一致させるためのアドレス変換処理に用いられる。
【0057】
その後、チェック用IC17および67が動作し、ゲームカセット10の認証処理を行う。認証処理の結果、ゲームカセット10が適法な真性品であることが確認された場合、チェック用IC17からリセット解除信号/RSが出力される。このリセット解除信号/RSは、メモリコントローラ14に与えられる。メモリコントローラ14は、リセット解除信号/RSが与えられると、コネクタ11および66を介してCPU61に供給しているリセット信号RSを解除する。これによって、CPU61は動作を開始し、まず、フラッシュメモリ12の主領域121の先頭ブロックからプログラム(ゲームプログラムまたはゲーム選択プログラム)を読み出す。
【0058】
フラッシュメモリ12に記憶されたゲームプログラムがフルサイズゲームプログラムの場合、上記先頭ブロックから読み出されるプログラムは、フルサイズゲームプログラムである。これに対し、フラッシュメモリ12に記憶されたゲームプログラムがフルサイズゲームプログラムでない場合、上記先頭ブロックから読み出されるプログラムは、ゲーム選択プログラムである。CPU61は、上記先頭ブロックからのプログラムの読み出しを終了すると、当該読み出したプログラムがフルサイズゲームプログラムかゲーム選択プログラムかを判断する(ステップS202)。
【0059】
まず、上記先頭ブロックからフルサイズゲームプログラムが読み出された場合の動作について説明する。この場合、CPU61は、フラッシュメモリ12の主領域121からブロック順次にフルサイズゲームプログラムを読み出し、読み出したフルサイズゲームプログラムに従って、ゲーム処理を実行する(ステップS203)。次に、CPU61は、ゲームが終了したか否かを判断する(ステップS204)。ゲームが終了するまで、ステップS203のゲーム処理は継続的に実行される。ゲームが終了すると、CPU61は、所定の終了処理を実行する(ステップS205)。この終了処理では、例えばバックアップデータがSRAM13に格納される。次に、CPU61は、プレイヤーからリセット要求があったか否か(すなわち、プレイヤーによってゲーム機60のリセットボタン(図示せず)が押されたか否か)を判断する(ステップS206)。リセット要求があった場合、CPU61は、再びステップS203以下の動作を繰り返す。一方、リセット要求がない場合、CPU61は、その動作を終了する。
【0060】
次に、上記先頭ブロックからゲーム選択プログラムが読み出される場合の動作を説明する。この場合、CPU61は、読み出したゲーム選択プログラムに従ってゲーム選択処理を実行する(ステップS207)。このゲーム選択処理では、テレビジョン受像機80に図13に示すようなゲーム選択メニューが表示される。プレイヤーは、コントローラ70を用いてゲーム選択メニューの中から遊びたいゲームを選択する。次に、CPU61は、プレイヤーによるゲームの選択が終了したか否かを判断する(ステップS208)。ゲームの選択が終了すると、メモリコントローラ14によって、アドレス変換処理が行われる(ステップS209)。このアドレス変換処理では、CPU61は、再びリセットされて動作停止状態に置かれる。また、メモリコントローラ14は、選択されたゲームが格納されているフラッシュメモリ12のブロックの先頭アドレスを指定し、CPU61のアドレス空間のプログラム配置位置をこの先頭アドレスに一致させるために、ステップS201で設定されたアドレス変換パラメータを変更する。上記ステップS209においてCPU61をリセット状態に置くのは、CPU61が不安定な状態で暴走するのを防止するためである。その後、メモリコントローラ14は、CPU61のリセットを解除する。これによって、CPU61は動作を開始し、ステップS210〜S213の動作を行う。このステップS210〜S213の動作は、それぞれ、前述のステップS203〜S206の動作と同様であるので、その説明を省略する。
【0061】
なお、上記実施形態では、ゲームプログラムが書き込まれる記憶媒体として、フラッシュメモリを内蔵したゲームカートリッジ1を用いたが、これに代えて、MOD(磁気光ディスク)、CDR(書き込み可能なコンパクトディスク)、DVDR(書き込み可能なデジタルビデオディスク)、フロッピーディスク等、その他の記憶媒体を用いるようにしても良い。
【0062】
また、上記実施形態では、CD−ROM40に元データを記録するようにしたが、このようなCD−ROM40に代えて、MOD、CD、DVD等、他の大容量記憶媒体を用いるようにしても良い。
【0063】
また、上記実施形態では、ソフトウェアとしてゲームプログラムを販売するシステムについて示したが、本発明は、教育用プログラム、ビジネス用プログラム等の他の種類のソフトウェアを販売するシステムにも適用が可能である。
【0064】
また、上記実施形態では、ゲームカセット10は、ゲームプログラムをフラッシュメモリ12に記憶し、バックアップデータをSRAM13に記憶するように構成されているが、それぞれのデータを他の種類のメモリ(ただし、書き換えが可能である性質を有していることが必要)に記憶させるようにしてもよいし、ゲームプログラムおよびバックアップデータを1つのメモリ内に記憶させるようにしても良い。
【0065】
また、上記実施形態では、ゲームプログラムとバックアップデータとを異なるメモリに記憶させるようにしたが、これらを同一のメモリに書き込むようにしても良い。この場合、バックアップデータの継承は、図21に示すように行われる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るソフトウェア販売システムの第1の構成例を示すブロック図である。
【図2】本発明の一実施形態に係るソフトウェア販売システムの第2の構成例を示すブロック図である。
【図3】図1に示すゲームカセット10と、当該ゲームカセット10が接続されるゲーム機60との詳細な構成を示すブロック図である。
【図4】図3に示すフラッシュメモリ12およびSRAM13のメモリマップを示す図である。
【図5】図4における関連情報記憶領域122のメモリマップを示す図である。
【図6】CD−ROM40に格納されたデータがゲームカセット10に書き込まれていく際のデータの流れを示した図である。
【図7】ゲームカセット10のフラッシュメモリ12に書き込まれたゲームプログラムを書き換える際のデータの流れを示した図である。
【図8】店内端末30に表示されるゲーム選択画面を示す図であり、特に、購入するゲームを選択する前の画面を示している。
【図9】店内端末30に表示されるゲーム選択画面を示す図であり、特に、購入するゲームを選択した後の画面を示している。
【図10】店内端末30に表示されるゲーム削除画面を示す図であり、特に、消去および/または取り消すべきゲームプログラムを指定する前であって、書込可能な状態の画面を示している。
【図11】店内端末30に表示されるゲーム削除画面を示す図であり、特に、消去および/または取り消すべきゲームプログラムを指定する前であって、書込不可能な状態の画面を示している。
【図12】店内端末30に表示されるゲーム削除画面を示す図であり、特に、消去および/または取り消すべきゲームプログラムを指定した後の画面を示している。
【図13】ゲーム機60に接続されたテレビジョン受像機80において、ゲーム開始前に表示されるメニュー画面を示す図である。
【図14】書込制御プログラムに従うカセットライタ20の第1の動作を示すフローチャートである。
【図15】書込制御プログラムに従うカセットライタ20の第2の動作を示すフローチャートである。
【図16】書込制御プログラムに従うカセットライタ20の第3の動作を示すフローチャートである。
【図17】図14に示すサブルーチンステップS300の詳細を示すフローチャートである。
【図18】図14に示すサブルーチンステップS400の詳細を示すフローチャートである。
【図19】ゲーム機60の動作を示すフローチャートである。
【図20】ゲームカセットにシリーズ化されたゲームプログラムを書き込むとき、バックアップデータの移行のさせ方を示した図である。
【図21】ゲームプログラムとバックアップデータとを1つのメモリに書き込むときのバックアップデータの移行のさせ方を示した図である。
【符号の説明】
10…ゲームカセット
11…コネクタ
12…フラッシュメモリ
121…主領域
122…関連情報記憶領域
13…SRAM
14…メモリコントローラ
15…バックアップIC
16…バックアップ用電池
17…チェック用IC
20…カセットライタ
21…CPU
22…CD−ROMドライブ
23…RAM
24…フラッシュメモリ
25…ASIC
26…コネクタ
30…店内端末
40…CD−ROM
50…電子式キャッシュレジスタ
60…ゲーム機
61…CPU
62…PPU
63…ワーキングRAM
64…ビデオRAM
65…I/0インタフェイス
66…コネクタ
67…チェック用IC
70…コントローラ
80…テレビジョン受像機
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a software rewriting system, and more particularly, to a software rewriting system for selling a program (for example, a game program) to a user by writing the program (for example, a game program) on a storage medium brought by the user.
[0002]
[Prior art]
With the rapid spread of computer devices, software is frequently traded in a wide field such as games, education, and business. Currently, the mainstream of transactions is a method of providing a user with a recording medium (floppy disk, ROM cartridge, CD-ROM, etc.) storing software programs as package software.
[0003]
However, for the user, the program itself is important, and the recording medium for storing the program is not important. If only the program can be provided to the user, the cost for the recording medium can be reduced, and the software can be provided at a lower cost. On the other hand, it is not necessary for the dealer to stock the recording media that stores the program for each type of software, so it is possible to save space and prevent stagnation of funds, enabling more sound management. It becomes.
[0004]
Therefore, realization of a sales apparatus that can sell only programs is strongly desired. The present invention is directed to a system in which only a program is sold to a user by writing the program on a recording medium brought by the user. For this purpose, the program stored in the recording medium needs to be rewritten.
[0005]
[Problems to be solved by the invention]
However, when selling serialized software, it may not be desirable to sell new software to users who are not running the previous software. For example, if the software is a game program and the user who has not played the previous game plays the new game, the story development of the entire series will not be visible and the user will not be able to evaluate the true fun of the game Occurs. Also, if the software is an educational program, if a user who has not executed the previous educational program executes the new educational program, the progress of learning will not catch up with the new educational program, and eventually the new educational program will be thrown out. There is a risk that.
[0006]
In addition, a user who has played the previous game has a request to use the game character that has been brought up with difficulty in the previous game in the new game. However, in the current video game system, if the game character raised in the previous game is used in the new game, the game character raised in the previous game cannot be used as it is in the previous game. Similar inconveniences can occur in educational and business programs in different forms. For example, after completing an education program for the lower grades of elementary school, when moving to an education program for the upper grades of elementary school, the parameters (grade, score, field of expertise) indicating the degree of understanding in the education program for lower grades are changed to the education program for upper grades. If you take over, you can change the content of the questions according to the degree of comprehension, and you can give guidance according to academic ability. However, if such parameters are inherited, the original parameters cannot be used when reviewing an education program for lower grades.
[0007]
Therefore, an object of the present invention is to provide a software rewriting system capable of selling only software efficiently in consideration of the sales order of the series of software.
Another object of the present invention is a software rewriting system capable of inheriting backup data generated by the progress of a program and used in connection with the progress of the program without any inconvenience when writing a series of software programs. Is to provide.
[0008]
[Means for Solving the Problems and Effects of the Invention]
A first invention is a software rewriting system for selling software to a customer by rewriting a software program stored in a storage medium brought by the customer,
Software storage means storing a plurality of types of software programs to be sold to customers;
For each software stored in the software storage means, a flag storage means for storing a program inheritance flag indicating whether the software is software that requires inheritance determination;
Based on input from a customer or store clerk selling software,Software selection means for selecting one or more pieces of software to be purchased by the customer from a plurality of types of software stored in the software storage means;
Whether the software selected by the software selection means is software requiring inheritance determination, Based on the program inheritance flag stored in the flag storage meansA judging means for judging;
When the determining means determines that the software selected by the software selecting means is software that requires inheritance determination,With reference to the related information of the software selected by the software selecting means stored in the software storage means and the related information of each software stored in the storage medium, the related information of the software stored in the storage medium By determining whether there is relevant information that has a predetermined relationship with the relevant information of the software selected by the software selection means stored in the software storage means,Inheritance determination means for determining whether software that satisfies a predetermined inheritance condition is stored in the storage medium for the selected software;
As a result of the determination by the inheritance determination means, when it is determined that software satisfying a predetermined inheritance condition for the software selected by the software selection means is stored in the storage medium, the program of the selected software is stored in the storage medium A software rewriting system comprising: writing control means for writing to
[0009]
As described above, according to the first invention, only the software can be sold by rewriting the software program stored in the storage medium brought by the customer. At that time, if the software selected for purchase is software that requires inheritance determination, only when the software that satisfies the predetermined inheritance condition is stored in the storage medium for the selected software Since the program of the selected software is written in the storage medium, for example, software that is serialized and that is desired to be executed in the order of the series number is sold in the order desired by the seller. be able to.
[0010]
According to a second invention, in the first invention,
The storage medium has a program storage area for storing a software program, and a backup data storage area for storing backup data generated by the progress of the program and used in connection with the progress of the program,
The write control means is selected when it is determined that software satisfying a predetermined inheritance condition is stored in the storage medium for the software selected by the software selecting means as a result of the determination by the inheritance determining means. Program softwareMemoryWrite to the area,Stored in the backup data storage areaSoftware backup data that satisfies the specified inheritance conditionsBy writing software backup data written in the program storage area into the backup data storage area, the software backup data satisfying the predetermined inheritance condition can be used as software backup data written in the program storage area.It is characterized by inheritance.
[0011]
As described above, according to the second invention, when the software program selected by the software selection means is written to the storage medium, the backup data of the software in the storage medium satisfying a predetermined inheritance condition is stored in the selected software. Therefore, the backup data can be used by both already written software and newly written software.
[0012]
According to a third invention, in the first or second invention,
Inheritance judgment meansThe title of the software selected by the software selection means stored in the software storage means and the title of each software stored in the storage medium are referred to, and the title of the software selected by the software selection means is out of the titles. The part except for the series number is the sameAndOf the titleSeries number isThan the softwareoldHave a titleWhen software is stored on a storage mediumIn addition,It is determined that a predetermined inheritance condition is satisfied.
[0013]
The fourth invention is:In the third invention,
The inheritance determining means stores in the storage medium software having the same title except for the series number of the title selected by the software selecting means and having a title whose series number is one older than the software. It is characterized in that it is determined that a predetermined inheritance condition is satisfied.
According to a fifth invention, in the first invention,
As a result of the determination by the inheritance determining means, it is further provided with means for displaying an error message when it is determined that software satisfying a predetermined inheritance condition is not stored in the storage medium for the software selected by the software selecting means. It is characterized by that.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 is a block diagram showing a first configuration example of a software rewriting system according to an embodiment of the present invention. In FIG. 1, the software rewriting system of this embodiment includes a cassette writer 20 for writing a game program to a set game cassette 10 and an in-store terminal 30 for operating the cassette writer 20.
[0015]
The cassette writer 20 includes a CPU 21, a CD-ROM drive 22, a RAM 23, a flash memory 24, an ASIC 25, and a connector 26. A CD-ROM drive 22, a RAM 23, a flash memory 24, and an ASIC 25 are connected to the CPU 21. The connector 26 is connected to the ASIC 25. The connector 11 in the game cassette 10 is detachably attached to the connector 26. Thereby, the game cassette 10 and the cassette writer 20 are electrically connected. The in-store terminal 30 is directly connected to the internal bus 27 of the cassette writer 20, and is connected to the CPU 21 via the internal bus 27.
[0016]
The CD-ROM drive 22 reads data from the set CD-ROM 40 and gives it to the CPU 21. As will be described later, this data includes a writing control program, a game selection program, a game program, and related information. The CPU 21 executes an operation according to the above write control program. The RAM 23 stores a game program and related information read from the CD-ROM 22 and data necessary for the arithmetic processing of the CPU 21. The flash memory 24 stores a write control program read from the CD-ROM drive 22. The ASIC 25 controls writing and reading of data with respect to the game cassette 10 in accordance with instructions from the CPU 21. That is, the ASIC 25 is an input / output interface for the game cassette 10.
[0017]
Note that the in-store terminal 30 may be connected to the CPU 21 via a LAN cable 29 and a LAN board 28 as shown in FIG. Further, the CPU 21 may be configured to work with an electronic cash register 50 connected via the LAN cable 29 and the LAN board 28.
The system configuration of FIG. 1 has a short physical distance between the cassette writer 20 and the in-store terminal 30, but the in-store terminal 30 is installed at a position away from the cassette writer 20 in the system configuration of FIG. 2. The system configuration of FIG. 1 is suitable for a store in which a store clerk who has heard an order from a customer operates the terminal 30 in the store. On the other hand, the system configuration of FIG. 2 is suitable for a store in which the customer himself operates the in-store terminal 30 and orders a necessary game program.
[0018]
FIG. 3 is a block diagram showing a detailed configuration of the game cassette 10 shown in FIG. 1 and the game machine 60 to which the game cassette 10 is connected. Referring to FIG. 3, game cassette 10 includes a connector 11, a flash memory 12, an SRAM 13, a memory controller 14, a backup IC 15, a backup battery 16, and a check IC 17. The flash memory 12 and the SRAM 13 are connected to the connector 11 via the data bus DB1 and to the memory controller 14 via the address bus AB1. The memory controller 14 is connected to the connector 11 via the address bus AB2. The check IC 17 is connected to the connector 11.
[0019]
As is well known, the flash memory is a rewritable nonvolatile memory and is small and has a large capacity. In the present embodiment, the flash memory 12 has a capacity of 32 Mbits as an example, and is used to store a game program as described later, and is divided into 8 blocks in units of 4 Mbits. The SRAM 13 is a static RAM that retains stored contents as long as power is supplied. In the present embodiment, the SRAM 13 has a capacity of 256 kbits as an example, and stores backup data (game stage, acquired items, grown character data, etc.) for the game as will be described later. Is divided into 16 blocks in units of 16 kbits.
[0020]
The memory controller 14 has a function of converting an address given from the cassette writer 20 or the game machine 60 via the address bus AB2 into an address suitable for the memory arrangement in the flash memory 12 and the SRAM 13. The backup IC 15 has a function of stably supplying power to the SRAM 13 and a function of protecting the SRAM 13 from undesired erroneous writing. The backup IC 15 is supplied with power from a backup battery 16 built in the game cassette 10. Although the backup IC 15 is not shown, when the game cassette 10 is set in the cassette writer 20 or the game machine 60, the cassette writer 20 or the game machine 60 is supplied with a power source (direct current obtained by stepping down the commercial power source and smoothing it. Power supply). The backup IC 15 supplies power from the backup battery 16 to the SRAM 13 when the game cassette 10 is removed from the cassette writer 20 or the game machine 60. Further, the backup IC 15 supplies power from the cassette writer 20 or the game machine 60 to the SRAM 13 when the game cassette 10 is set in the cassette writer 20 or the game machine 60.
[0021]
The flash memory 12 and the SRAM 13 are switched in a complementary manner by a chip select signal CE1 output from the memory controller 14 and a chip select signal CE2 output from the backup IC 15. That is, when one of the flash memory 12 and the SRAM 13 is selected, the other is not selected. This is because data and an address are supplied to the flash memory 12 and the SRAM 13 via a common data bus and address bus, but only access of the memory chip corresponding to the supplied address is permitted. . The chip select signal CE <b> 2 is generated by the backup IC 15 based on the 1-bit decode signal DS output from the memory controller 14 and the power supply state to the SRAM 13. In particular, when the game cassette 10 is set in the cassette writer 20 or the game machine 60 and the power of the cassette writer 20 or the game machine 60 is turned on, the address bus AB1 has a transient characteristic when the power is turned on. Depending on the noise, there is a risk of noise mixing. If this noise coincides with any address in the SRAM 13, the memory controller 14 erroneously generates the decode signal DS, and undesired writing is performed at the corresponding address in the SRAM 13. Therefore, the backup IC 15 monitors the voltage value of the power supplied from the cassette writer 20 or the game machine 60, and when the power is turned on, the chip select until the voltage value settles to a predetermined value (about 4.5V). The signal CE2 is not supplied to the SRAM 13. This can prevent undesired erroneous writing when the power is turned on.
[0022]
In addition, among the address bus AB <b> 1 given from the memory controller 14 to the flash memory 12, the upper 3 bits are used to designate one of the blocks divided into eight of the flash memory 12. Similarly, the upper 4 bits of the address bus AB1 provided from the memory controller 14 to the SRAM 13 are used to designate one of 16 blocks of the SRAM 13.
[0023]
The game machine 60 includes a CPU 61, a PPU (Picture Processing Unit) 62, a working RAM 63, a video RAM 64, an I / O interface 65, a connector 66, and a check IC 67. A connector 66 is connected to the CPU 61 via the data bus DB3 and the address bus AB3, a PPU 62 is connected via the data bus DB4 and the address bus AB4, and a working RAM 63 is connected via the data bus DB5 and the address bus AB5. The Furthermore, a controller 70 is connected to the CPU 61 via the I / O interface 65. The video RAM 64 is connected to the PPU 62 via the data bus DB6 and the address bus AB6. The output of the PPU 62 is given to the television receiver 80. The check IC 67 is connected to the connector 66.
[0024]
When enjoying the game, the connector 11 of the game cassette 10 is inserted into the connector 66 of the game machine 60. As a result, the flash memory 12 and the SRAM 13 are under the control of the CPU 61. Then, the CPU 61 reads a game program from the flash memory 12 and starts a game operation. If necessary, backup data corresponding to the game is read from the SRAM 13 and parameters for game operation are set. The controller 70 is operated by the player and gives various instructions and commands to the CPU 61. The working RAM 63 stores various data necessary for the arithmetic processing of the CPU 61. The PPU 62 generates display data from the character data stored in the video RAM 64 based on a command from the CPU 61. This display data is given to the television receiver 80 and displayed. Thus, by providing the PPU 62, the CPU 61 is released from the display data generation process and can perform the original game operation at high speed.
[0025]
When the connector 11 is inserted into the connector 66, the check IC 67 performs a predetermined authentication process with the check IC 17. When the authentication result is appropriate, the check IC 17 outputs a reset release signal / RS. This reset release signal / RS is given to the memory controller 14. In response, the memory controller 14 cancels the reset signal RS supplied to the CPU 61 via the connector 11 and the connector 66. On the other hand, if the authentication result is inappropriate, the memory controller 14 does not cancel the reset of the CPU 61. At this time, the CPU 61 does not start the game program. This can eliminate the use of illegally sold game cassettes.
[0026]
FIG. 4 is a diagram showing a memory map of the flash memory 12 and the SRAM 13 shown in FIG. In FIG. 4, the flash memory 12 includes, as data storage areas, a main area 121 for storing game selection programs and game programs, and a related information storage area 122 for storing game related information. The main area 121 has a storage capacity of 32 Mbits and is divided into 8 blocks in units of 4 Mbits. The main area 121 stores a game selection program and a game program in units of blocks. Since one of the blocks is used for storing a game selection program, the main area 121 can store a maximum of seven types of game programs (provided that each game program is 4 Mbit or less). When storing a game program of 4 Mbit or more, a plurality of blocks are used.
[0027]
The SRAM 13 has a storage capacity of 256 kbits and is divided into 16 blocks in units of 16 kbits. The SRAM 13 stores backup data for the game program written in the main area 121.
[0028]
FIG. 5 is a diagram showing a memory map of the related information storage area 122 in FIG. In FIG. 5, the related information storage area 122 has a different address space from the address space of the main area 121, and is a memory area that can be accessed only when a special command is given. The related information storage area 122 includes areas 122 a to 122 i for storing related information specific to the game selection program and the game program stored in the main area 121 of the flash memory 12. The area 122a is the game title, the area 122b is the map information, the area 122c is the flash memory capacity (the capacity required to store the program in the main storage area 121), and the area 122d is the SRAM capacity (corresponding backup data). Area 122e is the flash memory block number (the block number of the main storage area 121 storing the program), and the area 122f is the SRAM block number (the corresponding backup number). The number of the SRAM 13 block storing data), the area 122g is a program inheritance flag (a flag indicating whether or not the program inheritance determination should be performed), and the area 122h is a backup data inheritance flag (inheritance determination of backup data). Indicates whether or not to perform The grayed), area 122i is the information of the game selling price, and stores each. By the way, the CPU 61 in the game machine 60 has its own wide address space. The game program must be placed at a predetermined position in this address space. The map information indicates in which position in the address space of the CPU 61 the game program should be placed.
[0029]
FIG. 6 is a diagram for explaining the principle of rewriting and selling the game software of the present invention. For example, the flow of data when data stored in the CD-ROM 40 is written into the game cassette 10 is shown. It is a figure. In FIG. 6, the CD-ROM 40 stores a writing control program, a game selection program, a plurality of types of game programs, and related information about each game program. The related information stored in the CD-ROM 40 includes a game title, map information, a capacity to be secured in the flash memory 12 for storing the game program, a capacity to be secured in the SRAM 13 for storing the backup data, It includes a program inheritance flag, a backup data inheritance flag, and a game selling price. The program inheritance flag is turned on when inheritance of the game program is required, and is turned off when inheritance of the program is not required. Further, the backup data inheritance flag is turned on when the inheritance of the backup data is required, and is turned off when the inheritance of the backup data is not necessary. The write control program stored in the CD-ROM 40 is read by the CPU 21 of the cassette writer 20 and written to the flash memory 24 in the cassette writer 20. Thereafter, the CPU 21 executes a game program write control operation for the game cassette 10 in accordance with the write control program. The game selection program, game program, and related information stored in the CD-ROM 40 are read by the CPU 21 of the cassette writer 20 and written in the RAM 23 in the cassette writer 20. The game selection program and game program written in the RAM 23 are transferred to the game cassette 10 and written in the main area 121 of the flash memory 12. The related information written in the RAM 23 is transferred to the game cassette 10 and written in the related information storage area 122 of the flash memory 12. The game selection program is executed by the CPU 61 of the game machine 60 when the game cassette 10 is set in the game machine 60, and is used to select one game from a plurality of games.
[0030]
Here, the relationship between the capacities of one game program, the flash memory 12, and the CD-ROM 40 storing master data will be described. For example, the flash memory 12 having a capacity of 32 Mbit is used. The data amount of one game program is an integer multiple of 4 Mbit, for example, 4 Mbit, 8 Mbit, 12 Mbit, 16 Mbit, 20 Mbit, 24 Mbit, 28 Mbit, 32 Mbit if the capacity of the flash memory 12 is 32 Mbit. One game program is set to be equal to or less than the capacity of the flash memory 12. Therefore, the flash memory 12 can store a maximum of 7 types of 4 Mbit game programs and a 4 Mbit game selection program. For example, if one game program is 8 Mbit, three types of game software and a 4 Mbit game selection program can be stored. In addition, when a 32 Mbit game program is stored, a game selection program is not required.
[0031]
On the other hand, the CD-ROM 40 has a capacity of several hundred Mbytes. Accordingly, since the capacity of the CD-ROM 40 is very large compared to the capacity of the flash memory 12 and the capacity of one game program, many types of game programs can be stored. The CD-ROM 40 only needs to have a capacity capable of storing at least seven types of 4 Mbit game programs and a 4 Mbit game selection program.
[0032]
FIG. 7 is a diagram showing a data flow when the game program written in the flash memory 12 of the game cassette 10 is rewritten. Here, as an example, in the flash memory 12 in which the programs of the games 1 to 4 are written, the programs of the games 1 and 3 are left, the programs of the games 2 and 4 are deleted, and a new game 5 The flow of data when writing a program is shown. In FIG. 7, the CPU 21 of the cassette writer 20 reads all the data written in the flash memory 12 and develops it on the RAM 23. Thereafter, when the games 2 and 4 are selected for erasure in the cassette writer 20, the CPU 21 erases the programs of the games 2 and 4 from the RAM 23. When the cassette writer 20 selects the game 5 for purchase, the CPU 21 reads the game 5 program from the CD-ROM 40 and stores it in the RAM 23. Thereafter, the CPU 21 reads out the game selection program remaining in the RAM 23 and the games 1, 3 and 5 and transfers them to the game cassette 10. As a result, the game selection program and the games 1, 3 and 5 are written in the flash memory 12 of the game cassette 10.
[0033]
The related information corresponding to the remaining games 1 and 3 and the newly written related information of the game 5 are written in the related information storage area 122 of the flash memory 12. For details, see the description of FIG. Then, since it can be easily understood, the description is omitted here.
[0034]
Thus, in this embodiment, when rewriting the game program written in the flash memory 12 of the game cassette 10, all data written in the flash memory 12 is once read into the RAM 23, and the game program is read out on the RAM 23. Since the data is written into the flash memory 12 after the arrangement and rearrangement, the game program can be written efficiently. In FIG. 7, all the programs in the flash memory 12 are rewritten, but the programs whose storage positions (block numbers) in the flash memory 12 are not changed, that is, the game selection program and the game 1 program are not rewritten. You may do it.
[0035]
8 to 13 are diagrams showing examples of operation screens displayed on the in-store terminal 30 connected to the cassette writer 20. More specifically, FIGS. 8 and 9 show game selection screens. 8 shows a screen before selecting a game to be purchased, and FIG. 9 shows a screen after selecting a game to be purchased. 10 to 12 show game deletion screens. 10 shows the screen in a writable state before designating a game program to be erased and / or canceled, and FIG. 11 shows before designating a game program to be erased and / or canceled. FIG. 12 shows the screen after the designation of the game program to be erased and / or canceled is completed. FIG. 13 is a diagram showing a menu screen displayed before the game is started on the television receiver 80 connected to the game machine 60.
[0036]
14 to 18 are flowcharts showing the operation of the cassette writer 20 according to the write control program. FIG. 19 is a flowchart showing the operation of the game machine 60. FIG. 20 is a diagram showing how to transfer backup data when writing a series of game programs in the game cassette 10. Hereinafter, the operation of the above embodiment will be described with reference to FIGS.
[0037]
First, the operation of the cassette writer 20 shown in FIGS. 14 to 19 will be described. When the power is turned on, the CPU 21 determines whether or not to upgrade the write control program in the flash memory 24 (step S101). If the write control program is not stored in the flash memory 24 or if the version of the write control program stored in the CD-ROM 40 is newer than the version of the write control program stored in the flash memory 24 It is determined that the embedded control program should be upgraded. When the version of the write control program should be upgraded, the CPU 21 reads the write control program from the CD-ROM 40 using the CD-ROM drive 22, and the read write control program is flashed as shown in FIG. Download to the memory 24 (step S102). The CD-ROM 40 is supplied to a store on a regular basis (for example, every month) so that new software can always be sold. Therefore, if the writing control program is stored in the CD-ROM 40 and the software processing of the cassette writer 20 is automatically upgraded based on the stored writing control program, the dealer side You can free yourself from troublesome version upgrades and concentrate on your in-store work.
[0038]
When the download of the write control program is completed, the CPU 21 activates the write control program (step S103). Thereafter, the CPU 21 operates according to the write control program. Next, the CPU 21 reads data (game title, capacity and selling price) necessary for display of the game selection screen from the CD-ROM 40, and writes it in the working area of the RAM 23 as shown in FIG. 6 (step S104). Next, the CPU 21 displays a game selection screen as shown in FIG. 8 on the in-store terminal 30 (step S105). This game selection screen includes a sales game list 301, page update buttons 302 and 303, a purchased game list 304, and total capacity display portions 305 and 306. In the sales game list 301, the title, capacity and price of the game to be sold are displayed according to the title, capacity and price of the game written in the RAM 23 in step S104. When there are many types of games to be sold, it is difficult to display the entire sales game list on one screen, but by selecting the page update button 302 or 303 on the screen, the sales game list display page is displayed. Can be updated in the front-rear direction, so that all types of games included in the sales game list can be viewed. In addition, as a method of selecting a button, a method of providing a touch panel on the display screen and pressing the corresponding button with a finger may be used, or the cursor is moved to the corresponding button with a pointing device such as a mouse and clicked. It may be a simple method. Various selection operations at the in-store terminal 30 described below are also performed in the same manner as described above. At this time, since no game to be purchased is selected, no information is displayed in the purchased game list 304 and the total capacity display sections 305 and 306. The purchase decision button 307 is a button that is selected when selection of a game to be purchased is completed.
[0039]
Next, the CPU 21 determines whether or not the game cassette 10 is set (mounted) on the connector 26 (step S106). When the game cassette 10 is set, the CPU 21 calculates the free capacity of the flash memory 12 and the SRAM 13 (hereinafter referred to as “game cassette free capacity”) based on the related information stored in the related information storage area 122 and The related information stored in the information storage area 122 is read (step S107). The game cassette free space and the read data calculated at this time are temporarily stored in the RAM 23 (see FIG. 7).
[0040]
Next, the store clerk or customer (a store clerk in the case of the system configuration of FIG. 1 and a customer in the case of the system configuration of FIG. 2) operates the in-store terminal 30 and selects a game to be purchased from the sales game list (step). S108). In response, the CPU 21 temporarily stores the related information of the game selected for purchase in the RAM 23 (step S109). At this time, as shown in FIG. 9, the in-store terminal 30 displays the title, capacity, and price of the selected game in the purchased game list 304. Next, the CPU 21 calculates the total capacity of the games selected up to that point (hereinafter referred to as the selected game total capacity) (step S110). The calculated selected game total capacity is displayed on the total capacity display sections 305 and 306 in FIG. The total capacity display unit 305 displays the capacity of the flash memory 12 necessary for writing in units of blocks, and the total capacity display unit 306 displays the capacity of the SRAM 13 required for writing in units of blocks. Next, the CPU 21 executes inheritance determination processing (step S300). Details of this subroutine step 300 are shown in FIG.
[0041]
Referring to FIG. 17, CPU 21 reads from RAM 23 the related information of the game selected from CD-ROM 40 in step S108 described above (step S301). Next, the CPU 21 searches the related information read from the RAM 23, and determines whether there is a game program or backup data that needs to be inherited (step S302). If the program inheritance flag or the backup inheritance flag is turned on, it is determined that the game program or backup data requires inheritance. If there is no game program or backup data that requires inheritance, the CPU 21 returns to the main routine of FIG. On the other hand, when there is a game program or backup data that requires inheritance, the CPU 21 reads related information from the related information storage area 122 of the flash memory 12 in the game cassette 10 (step S303). Next, in the related information read from the related information storage area 122 (hereinafter, referred to as first related information), the CPU 21 relates to the game program or backup data that is determined to be inherited in step S302. It is determined whether or not there is related information having a predetermined relationship (hereinafter referred to as second related information) (step S304). Here, the predetermined relationship means the following.
(1) A game title that matches the game title (excluding the series number) of the second related information exists in the first related information.
(2) As for the series number portion of the matched game title, the first related information is only one older than the second related information.
For example, when “Mario 2” exists as the game title in the second related information, if “Mario 1” exists as the game title in the first related information, the second related information includes the second It is determined that there is related information having a predetermined relationship with the related information.
[0042]
When there is no related information having a predetermined relationship with the second related information in the first related information, the CPU 21 causes the in-store terminal 30 to display an error message. This error message indicates that writing is prohibited because the game selected for purchase is a series of games and the game program preceding the selected game is not stored in the game cassette. Including the display. On the other hand, if the first related information includes related information having a predetermined relationship with the second related information, the CPU 21 turns on the inheritance flag (set in the working area of the RAM 23) ( In step S305, the process returns to the main routine of FIG.
[0043]
Referring to FIG. 14 again, CPU 21 determines whether or not the selection of the game to be purchased has been completed (step S111). When the store clerk or the customer selects the purchase determination button 307 in FIG. 9, it is determined that the selection of the game to be purchased is completed. If the game selection has not ended, the operations of steps S108 to S110 are repeated again.
[0044]
On the other hand, when the selection of the game is completed, the CPU 21 determines whether or not the selected game total capacity calculated in step S110 is equal to or less than the game cassette free capacity calculated in step S107 (step S112). ). When the selected game total capacity is equal to or less than the game cassette free capacity, the CPU 21 causes the in-store terminal 30 to display a game deletion screen as shown in FIG. On the other hand, when the selected game total capacity exceeds the game cassette free capacity, the CPU 21 causes the in-store terminal 30 to display a game deletion screen as shown in FIG.
[0045]
As shown in FIGS. 10 and 11, the game deletion screen includes an in-cassette game list 308, free space display sections 309 and 310, a purchased game list 304, total capacity display sections 305 and 306, and a writable button. 311, an all in cassette erase button 312, and a screen return button 313. In the in-cassette game list 308, a list of games stored in the game cassette 10 is displayed. In addition, the free capacity display unit 309 displays the free capacity of the flash memory 12. The free capacity display unit 310 displays the free capacity of the SRAM 13. The display contents of the in-cassette game list 308 and the free space display sections 309 and 310 are determined based on the data stored in the RAM 23 in step S107 described above. The writable button 311 is selected when an instruction to write the game program listed in the purchase game list 304 to the game cassette 10 is given. Here, comparing FIG. 10 and FIG. 11, the writable button 311 is selectable in the game deletion screen of FIG. 10, whereas the writable button 311 is selected in the game deletion screen of FIG. Cannot be selected. This is because, in the state shown in FIG. 11, the selected game total capacity exceeds the free space of the game cassette, so that a game program write instruction is prohibited. The in-cassette all deletion button 312 is selected when erasing all the game programs stored in the game cassette 10 collectively. The screen return button 313 is selected when returning the game deletion screen to the game selection screen shown in FIG.
[0046]
When the selected game total capacity is equal to or less than the free capacity of the flash memory 12 and the SRAM 13, the CPU 21 determines whether the store clerk or the customer has selected the writable button 311 or the screen return button 313 (step S113). When the screen return button 313 is selected, the operations in steps S108 to S112 are repeated again. That is, in the repeated operation of steps S108 to S112, a game to be purchased is added or changed. On the other hand, when the writable button 311 is selected, as shown in FIGS. 6 and 7, the CPU 21 stores the program of the game selected for purchase, the game selection program, and related information in the CD-ROM 40. And / or all data (game program, backup data) stored in the flash memory 12 and the SRAM 13 in the game cassette 10 are read and stored in the RAM 23 (step S114).
[0047]
In the above-described step S112, when the selected game total capacity exceeds the free game cassette capacity, it is necessary to delete the game program stored in the game cassette 10 or cancel the game selected for purchase. Accordingly, the store clerk or customer selects a game to be deleted from the in-cassette game list 308 and / or selects a game to cancel the purchase from the purchase game list 304 on the game deletion screen shown in FIG. Details of the subsequent operation are shown in FIG.
[0048]
In FIG. 16, the CPU 21 determines whether cancellation of the game to be purchased is selected or deletion of the game program is selected (steps S115 and S116). When the cancellation of the game is selected, the CPU 21 performs a cancellation process for the selected game (step S117). As a result, in the purchased game list 304 on the game deletion screen, as shown in FIG. 12, a cancellation display is made for the game for which cancellation has been selected. If the deletion of the game program is selected, the CPU 21 turns on an unillustrated deletion flag (step S118). At this time, in the in-cassette game list 308 of the game deletion screen, as shown in FIG. 12, deletion display is performed for the game for which deletion has been selected.
[0049]
After step S117 or S118, the CPU 21 recalculates the selected game total capacity and the game cassette free capacity (step S119). The recalculation result at this time is reflected in the total capacity display sections 305 and 306 and the free capacity display sections 309 and 310 as shown in FIG. Here, the customer may reconsider not to delete the game program in the game cassette 10. In such a case, the store clerk or the customer cancels the deletion of the game program by reselecting the game whose deletion is selected in the in-cassette game list 308. The CPU 21 determines whether or not such deletion has been canceled (step S120). If the erasure is cancelled, the CPU 21 turns off the erasure flag set in step S118 described above (step S121), and then proceeds to step S122. On the other hand, if the erasure has not been canceled, the CPU 21 proceeds to step S122 without resetting the erasure flag.
[0050]
In step S122, the CPU 21 determines whether or not the recalculated selected game total capacity is equal to or less than the recalculated free capacity of the flash memory 12 or the SRAM 13. When the selected game total capacity exceeds these free capacities, the operations of steps S115 to S121 are repeated again. That is, a game to be canceled and / or deleted is added or changed until the selected game total capacity becomes equal to or less than the free capacity of the flash memory 12 or the SRAM 13. When the selected game total capacity becomes equal to or less than the free capacity, the CPU 21 determines whether the store clerk or the customer has selected the writable button 311 or the screen return button 313 (step S123). When the screen return button 313 is selected, the operation returns to the operation of step S108 again. That is, a process for adding or changing a game to be purchased is performed. On the other hand, when the writable button 311 is selected, the CPU 21 reads out the program of the game selected for purchase, the game selection program, and related information from the CD-ROM 40 and flashes in the game cassette 10. All data (game program and backup data) stored in the memory 12 and the SRAM 13 are read out and stored in the RAM 23 (step S124). Next, the CPU 21 determines whether or not the erase flag is turned on (step S125). When the erase flag is turned on, the CPU 21 determines whether or not the inheritance flag is turned on (step S126). When the inheritance flag is not turned on, the CPU 21 performs an erasing process (step S127). In this erasure process, the game program selected for erasure, backup data, and related information are erased from the data of the game cassette 10 stored in the RAM 23 in step S107 described above (see FIG. 7). On the other hand, if the inheritance flag is on, the backup data of the game selected for erasure is saved in a buffer (for example, set in the working area of the RAM 23) (step S128).
[0051]
After the process of step S114 is completed, or when it is determined in step S125 that the erase flag is turned off, or after the erase process of step S127 is completed, or the backup data saving process of step S128 is completed. Thereafter, the CPU 21 executes a backup data migration process (step S400). Details of this subroutine step are shown in FIG.
[0052]
Referring to FIG. 18, CPU 21 determines whether backup data is saved in the buffer area in RAM 23 (step S401). If the backup data has not been saved, the CPU 21 returns to the main routine of FIG. On the other hand, if the backup data has been saved, the CPU 21 determines whether there is backup data that needs to be inherited in the saved backup data (step S402). When the corresponding backup data inheritance flag in the related information read from the related information storage area 122 of the flash memory 12 is turned on, the backup data is backup data that requires inheritance. When there is backup data that requires inheritance, the CPU 21 designates a block of the SRAM 13 for writing the backup data (step S403), and writes the backup data in the designated block (step S404). As a result, the erased game backup data is inherited as newly written game backup data (see FIGS. 20A and 20C).
[0053]
Next, the CPU 21 starts writing the program to the game cassette 10 (see FIGS. 6, 7 and 15). First, the CPU 21 designates the first block of the flash memory 12 (step S129). Next, the CPU 21 stores a game program to be written in the flash memory 12 (a game program selected for purchase and a game program originally stored in the game cassette 10 and not erased) in the flash memory. It is determined whether or not the game program uses all the eight blocks (for 32 Mbits) (hereinafter referred to as a full size game program) (step S130). If the game program to be written is not a full-size game program, the CPU 21 reads the game selection program (game selection program read from the CD-ROM 40) from the RAM 23 and writes it in the first block of the main area 121 of the flash memory 12 (step S131). . On the other hand, when the game program to be written is a full-size game program, it is not necessary to select a game later in the game machine 60, and therefore the CPU 21 does not write the game selection program in the flash memory 12. As a result, when the capacity of the game program is large, writing can be performed using the capacity of the flash memory 12 to the maximum.
[0054]
After step S131 or after determining that the game program to be written in step S127 is a full-size game program, the CPU 21 reads the game program from the RAM 23 and writes it in the main area 121 of the flash memory 12 (step S132). ). At this time, if the game program to be written is a full-size game program, writing starts from the first block of the main area 121 of the flash memory 12, and if the game program to be written is not a full-size game program, Writing starts from the second block of the main area 121. Next, the CPU 21 determines whether or not there are two or more game programs to be written to the flash memory 12 in the RAM 23 (step S133). When there are two or more game programs to be written, the CPU 21 designates the next block of the main area 121 of the flash memory 12 (block to start writing the next game program) (step S134). Thereafter, the CPU 21 determines whether or not the writing of the game program has been completed (step S135). On the other hand, if there is one game program to be written and it is not a full-size game program, the CPU 21 determines in step S135 without designating the next block. If the game program has not been written, the CPU 21 repeats the operation from step S132 onward. As a result, the game programs stored in the RAM 23 are sequentially written in the main area 121 of the flash memory 12. On the other hand, when the writing of the game program is completed, the CPU 21 writes the backup data stored in the RAM 23 to the SRAM 13 and writes the related information to the related information storage area 122 of the flash memory 12 (step S136). At this time, as shown in FIG. 20B, the CPU 21 copies the game backup data already written in the game cassette 10 and newly writes the backup data of the game requiring inheritance. Write as backup data for the version game. Thereafter, the CPU 21 returns to the operation of step S106 in FIG.
[0055]
Next, with reference to FIG. 19, the operation when the game machine 60 executes the game program stored in the game cassette 10 will be described. When the game cassette 10 is set to the connector 66 of the game machine 60 and the power of the game machine 60 is turned on, the memory controller 14 in the game cassette 10 generates a reset signal RS, and the reset signal RS is sent to the connector 11 and It is supplied to the CPU 61 in the game machine 60 via 66. As a result, the CPU 61 is placed in an operation stop state.
[0056]
Thereafter, the memory controller 14 reads the related information from the related information storage area 122 of the flash memory 12 and temporarily stores it, and sets the address conversion parameter based on the map information included in the related information (step S201). ). At this time, the CPU 61 is still in an operation stop state. As described above, the game program must be arranged at a predetermined position in the address space of the CPU 61. And this predetermined position changes with kinds of game. The address conversion parameter is used for an address conversion process for matching the address space of the CPU 61 with the address space of the flash memory 12.
[0057]
Thereafter, the check ICs 17 and 67 operate to perform authentication processing of the game cassette 10. As a result of the authentication process, when it is confirmed that the game cassette 10 is a legitimate genuine product, a reset release signal / RS is output from the check IC 17. This reset release signal / RS is given to the memory controller 14. When the reset release signal / RS is given, the memory controller 14 releases the reset signal RS supplied to the CPU 61 via the connectors 11 and 66. As a result, the CPU 61 starts its operation, and first reads a program (game program or game selection program) from the top block of the main area 121 of the flash memory 12.
[0058]
When the game program stored in the flash memory 12 is a full size game program, the program read from the top block is a full size game program. On the other hand, when the game program stored in the flash memory 12 is not a full size game program, the program read from the top block is a game selection program. When the CPU 61 finishes reading the program from the top block, the CPU 61 determines whether the read program is a full-size game program or a game selection program (step S202).
[0059]
First, the operation when a full-size game program is read from the top block will be described. In this case, the CPU 61 reads out the full size game program from the main area 121 of the flash memory 12 in block order, and executes the game process according to the read full size game program (step S203). Next, the CPU 61 determines whether or not the game is over (step S204). Until the game is over, the game process in step S203 is continuously executed. When the game ends, the CPU 61 executes a predetermined end process (step S205). In this termination process, for example, backup data is stored in the SRAM 13. Next, the CPU 61 determines whether or not there is a reset request from the player (that is, whether or not the player has pressed a reset button (not shown) of the game machine 60) (step S206). If there is a reset request, the CPU 61 repeats the operations from step S203 onward. On the other hand, when there is no reset request, the CPU 61 ends the operation.
[0060]
Next, the operation when the game selection program is read from the top block will be described. In this case, the CPU 61 executes a game selection process according to the read game selection program (step S207). In this game selection process, a game selection menu as shown in FIG. 13 is displayed on the television receiver 80. The player uses the controller 70 to select a game to be played from the game selection menu. Next, the CPU 61 determines whether or not the player has finished selecting the game (step S208). When the game selection is completed, the memory controller 14 performs an address conversion process (step S209). In this address conversion process, the CPU 61 is reset again and placed in an operation stop state. Further, the memory controller 14 designates the head address of the block of the flash memory 12 in which the selected game is stored, and is set in step S201 in order to match the program arrangement position in the address space of the CPU 61 with this head address. Change the specified address translation parameter. The reason why the CPU 61 is placed in the reset state in step S209 is to prevent the CPU 61 from running away in an unstable state. Thereafter, the memory controller 14 releases the reset of the CPU 61. Thereby, the CPU 61 starts the operation and performs the operations of steps S210 to S213. Since the operations of Steps S210 to S213 are the same as the operations of Steps S203 to S206, respectively, description thereof will be omitted.
[0061]
In the above embodiment, the game cartridge 1 having a built-in flash memory is used as a storage medium on which a game program is written. Instead, the MOD (magnetic optical disk), CDR (writable compact disk), DVDR Other storage media such as a (writable digital video disk) and floppy disk may be used.
[0062]
In the above embodiment, the original data is recorded on the CD-ROM 40. However, other large-capacity storage media such as MOD, CD, DVD, etc. may be used instead of the CD-ROM 40. good.
[0063]
In the above-described embodiment, a system for selling a game program as software has been described. However, the present invention can also be applied to a system for selling other types of software such as an educational program and a business program.
[0064]
In the above embodiment, the game cassette 10 is configured to store the game program in the flash memory 12 and the backup data in the SRAM 13, but each data is stored in another type of memory (however, rewriting The game program and backup data may be stored in one memory.
[0065]
In the above embodiment, the game program and the backup data are stored in different memories, but they may be written in the same memory. In this case, the backup data is inherited as shown in FIG.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a first configuration example of a software sales system according to an embodiment of the present invention.
FIG. 2 is a block diagram showing a second configuration example of the software sales system according to the embodiment of the present invention.
FIG. 3 is a block diagram showing a detailed configuration of the game cassette 10 shown in FIG. 1 and a game machine 60 to which the game cassette 10 is connected.
4 is a diagram showing a memory map of flash memory 12 and SRAM 13 shown in FIG. 3; FIG.
5 is a diagram showing a memory map of a related information storage area 122 in FIG. 4; FIG.
6 is a diagram showing a data flow when data stored in the CD-ROM 40 is written into the game cassette 10. FIG.
7 is a diagram showing a data flow when rewriting a game program written in the flash memory 12 of the game cassette 10. FIG.
FIG. 8 is a diagram showing a game selection screen displayed on the in-store terminal 30, and particularly shows a screen before selecting a game to be purchased.
FIG. 9 is a diagram showing a game selection screen displayed on the in-store terminal 30, and particularly shows a screen after selecting a game to be purchased.
FIG. 10 is a diagram showing a game deletion screen displayed on the in-store terminal 30, and particularly shows a screen in a writable state before designating a game program to be deleted and / or canceled.
FIG. 11 is a diagram showing a game deletion screen displayed on the in-store terminal 30, and particularly shows a screen in a state where it cannot be written before designating a game program to be deleted and / or canceled. .
FIG. 12 is a diagram showing a game deletion screen displayed on the in-store terminal 30, and particularly shows a screen after designating a game program to be deleted and / or canceled.
FIG. 13 is a diagram showing a menu screen displayed before the game is started on the television receiver 80 connected to the game machine 60;
FIG. 14 is a flowchart showing a first operation of the cassette writer 20 according to a writing control program.
FIG. 15 is a flowchart showing a second operation of the cassette writer 20 according to the writing control program.
FIG. 16 is a flowchart showing a third operation of the cassette writer 20 according to the writing control program.
17 is a flowchart showing details of a subroutine step S300 shown in FIG.
FIG. 18 is a flowchart showing details of a subroutine step S400 shown in FIG.
FIG. 19 is a flowchart showing the operation of the game machine 60.
FIG. 20 is a diagram showing how to transfer backup data when writing a series of game programs in the game cassette.
FIG. 21 is a diagram showing how to transfer backup data when a game program and backup data are written to one memory.
[Explanation of symbols]
10 ... Game cassette
11 ... Connector
12 ... Flash memory
121 ... main area
122 ... Related information storage area
13 ... SRAM
14 ... Memory controller
15 ... Backup IC
16 ... Battery for backup
17 ... Check IC
20 ... Cassette writer
21 ... CPU
22 ... CD-ROM drive
23 ... RAM
24 ... Flash memory
25 ... ASIC
26 ... Connector
30 ... in-store terminal
40 ... CD-ROM
50 ... Electronic cash register
60 ... Game console
61 ... CPU
62 ... PPU
63 ... Working RAM
64 ... Video RAM
65 ... I / 0 interface
66 ... Connector
67 ... Check IC
70 ... Controller
80 ... Television receiver

Claims (5)

顧客が持参した記憶媒体に格納されているソフトウェアのプログラムを書き換えることにより、顧客にソフトウェアを販売するためのソフトウェア書換システムであって、
顧客に販売する複数種類のソフトウェアのプログラムを記憶したソフトウェア記憶手段と、
前記ソフトウェア記憶手段に記憶されているソフトウェア毎に、当該ソフトウェアが継承判定を必要とするソフトウェアであるか否かを示すプログラム継承フラグを記憶したフラグ記憶手段と、
顧客またはソフトウェアを販売する店員による入力操作に基づいて、前記ソフトウェア記憶手段に記憶されている複数種類のソフトウェアの中から、顧客が購入しようとする1以上のソフトウェアを選択するソフトウェア選択手段と、
前記ソフトウェア選択手段によって選択されたソフトウェアが継承判定を必要とするソフトウェアであるか否かを、前記フラグ記憶手段に記憶されている前記プログラム継承フラグに基づいて判断する判断手段と、
前記ソフトウェア選択手段によって選択されたソフトウェアが継承判定を必要とするソフトウェアであることを前記判断手段が判断したとき、前記ソフトウェア記憶手段に記憶されている前記ソフトウェア選択手段によって選択されたソフトウェアの関連情報と前記記憶媒体に記憶されている各ソフトウェアの関連情報を参照し、前記記憶媒体に記憶されているソフトウェアの関連情報の中に、前記ソフトウェア記憶手段に記憶されている前記ソフトウェア選択手段によって選択されたソフトウェアの関連情報と所定の関係にある関連情報が存在するか否かを判断することによって、当該選択されたソフトウェアに対して所定の継承条件を満たすソフトウェアが前記記憶媒体内に記憶されているか否かを判定する継承判定手段と、
前記継承判定手段による判定の結果、前記ソフトウェア選択手段によって選択されたソフトウェアに対して所定の継承条件を満たすソフトウェアが前記記憶媒体に記憶されていると判断されたとき、当該選択されたソフトウェアのプログラムを前記記憶媒体に書き込む書込制御手段とを備える、ソフトウェア書換システム。
A software rewriting system for selling software to a customer by rewriting the software program stored in a storage medium brought by the customer,
Software storage means storing a plurality of types of software programs to be sold to customers;
For each software stored in the software storage means, flag storage means for storing a program inheritance flag indicating whether or not the software is software requiring inheritance determination;
Software selection means for selecting one or more pieces of software to be purchased by the customer from among a plurality of types of software stored in the software storage means based on an input operation by a customer or a store clerk who sells the software;
Determining means for determining , based on the program inheritance flag stored in the flag storage means, whether the software selected by the software selecting means is software that requires inheritance determination;
When the determination means determines that the software selected by the software selection means is software that requires inheritance determination, the related information of the software selected by the software selection means stored in the software storage means And related information of each software stored in the storage medium, and selected by the software selection means stored in the software storage means among the software related information stored in the storage medium. Whether software that satisfies a predetermined inheritance condition for the selected software is stored in the storage medium by determining whether there is related information that has a predetermined relationship with the related information of the selected software Inheritance determination means for determining whether or not,
As a result of the determination by the inheritance determining means, when it is determined that software satisfying a predetermined inheritance condition is stored in the storage medium for the software selected by the software selecting means, the program of the selected software A software rewriting system comprising: a writing control means for writing the data into the storage medium.
前記記憶媒体は、ソフトウェアのプログラムを記憶するプログラム記憶領域と、プログラムの進行によって生じかつプログラムの進行に関連して利用されるバックアップデータを記憶するバックアップデータ記憶領域とを有し、
前記書込制御手段は、前記継承判定手段による判定の結果、前記ソフトウェア選択手段によって選択されたソフトウェアに対して所定の継承条件を満たすソフトウェアが前記記憶媒体内に記憶されていると判断されたとき、当該選択されたソフトウェアのプログラムを前記プログラム記憶領域に書き込むと共に、前記バックアップデータ記憶領域に記憶されている当該所定の継承条件を満たすソフトウェアのバックアップデータを前記プログラム記憶領域に書き込まれるソフトウェアのバックアップデータとして前記バックアップデータ記憶領域に書き込むことによって、当該所定の継承条件を満たすソフトウェアのバックアップデータを前記プログラム記憶領域に書き込まれるソフトウェアのバックアップデータとして継承させることを特徴とする、請求項1に記載のソフトウェア書換システム。
The storage medium has a program storage area for storing a software program, and a backup data storage area for storing backup data generated by the progress of the program and used in connection with the progress of the program,
When the determination by the inheritance determining means determines that the write control means determines that software satisfying a predetermined inheritance condition is stored in the storage medium for the software selected by the software selecting means , writes the selected software program in the program storage area, software backup data to be written back up data of the predetermined inheritance satisfies software stored in the backup data storage area in the program storage area JP said by writing in the backup data storage area, thereby inherit the backup data of the predetermined inheritance satisfies software as backup data for software to be written into the program memory area as To, software rewriting system of claim 1.
前記継承判定手段は、前記ソフトウェア記憶手段に記憶されている前記ソフトウェア選択手段によって選択されたソフトウェアのタイトルと前記記憶媒体に記憶されている各ソフトウェアのタイトルを参照し、前記ソフトウェア選択手段によって選択されたソフトウェアのタイトルに対してタイトルのうちのシリーズ番号を除く部分が同一でありかつタイトルのうちのシリーズ番号が当該ソフトウェアよりも古いタイトルを有するソフトウェアが前記記憶媒体に記憶されているときに、前記所定の継承条件が満たされていると判定する、請求項1または2に記載のソフトウェア書換システム。The inheritance determining means refers to the title of the software selected by the software selecting means stored in the software storage means and the title of each software stored in the storage medium, and is selected by the software selecting means. and when the portion except for the series number of the titles for the software titles are identical and series number of the title software with older titles than the software is stored in the storage medium, wherein The software rewriting system according to claim 1, wherein the software rewriting system determines that a predetermined inheritance condition is satisfied. 前記継承判定手段は、前記ソフトウェア選択手段によって選択されたソフトウェアのタイトルに対してタイトルのシリーズ番号を除く部分が同一でありかつシリーズ番号が当該ソフトウェアよりも1つだけ古いタイトルを有するソフトウェアが前記The inheritance determination unit is configured such that software having a title that is the same as the title of the software selected by the software selection unit except for the series number of the title and having a title whose series number is one older than that software. 記憶媒体に記憶されているときに、前記所定の継承条件が満たされていると判定する、請求項3に記載のソフトウェア書換システム。The software rewriting system according to claim 3, wherein, when stored in a storage medium, it is determined that the predetermined inheritance condition is satisfied. 前記継承判定手段による判定の結果、前記ソフトウェア選択手段によって選択されたソフトウェアに対して所定の継承条件を満たすソフトウェアが前記記憶媒体に記憶されていないと判断されたときに、エラーメッセージを表示させる手段をさらに備えた、請求項1に記載のソフトウェア書換システム。A means for displaying an error message when it is determined that software satisfying a predetermined inheritance condition is not stored in the storage medium for the software selected by the software selection means as a result of the determination by the inheritance determination means. The software rewriting system according to claim 1, further comprising:
JP26066597A 1997-09-25 1997-09-25 Software rewriting system Expired - Fee Related JP3618204B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26066597A JP3618204B2 (en) 1997-09-25 1997-09-25 Software rewriting system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26066597A JP3618204B2 (en) 1997-09-25 1997-09-25 Software rewriting system

Publications (2)

Publication Number Publication Date
JPH11102388A JPH11102388A (en) 1999-04-13
JP3618204B2 true JP3618204B2 (en) 2005-02-09

Family

ID=17351074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26066597A Expired - Fee Related JP3618204B2 (en) 1997-09-25 1997-09-25 Software rewriting system

Country Status (1)

Country Link
JP (1) JP3618204B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4857462B2 (en) * 2000-11-07 2012-01-18 パナソニック株式会社 Digital broadcast receiver
JP4696228B2 (en) * 2003-07-04 2011-06-08 新世代株式会社 Data distribution system, data acquisition device, writing device, data acquisition program, data acquisition method, recording medium, server, karaoke data distribution system, and content distribution system
JP4671198B2 (en) 2007-01-26 2011-04-13 株式会社ソニー・コンピュータエンタテインメント Information processing device
JP4709172B2 (en) * 2007-02-21 2011-06-22 キヤノン株式会社 Information processing apparatus, control method, and program

Also Published As

Publication number Publication date
JPH11102388A (en) 1999-04-13

Similar Documents

Publication Publication Date Title
KR101157433B1 (en) Delivery of a message to a user of a portable data storage device as a condition of its use
US5828862A (en) Game programming flash memory cartridge system including a programmer and a reprogrammable cartridge
US5715169A (en) Software rental method and apparatus, and circulating medium therefor
CN100543667C (en) Disk drive
US6601139B1 (en) Information processing method and apparatus using a storage medium storing all necessary software and content to configure and operate the apparatus
EP0681297B1 (en) Cartridge programming system for game programs
CN101069065B (en) Navigation device
JP5449350B2 (en) Online game providing system and method using storage medium
US5867457A (en) Music compact disk player
KR0160216B1 (en) Reprogrammable plug-in cartridge
JP4524523B2 (en) Storage medium, download method, and terminal device
JPH1021084A (en) Software distribution medium and its generating method
JP3618204B2 (en) Software rewriting system
RU2253154C2 (en) Disk data carrier and device and method for reproduction of data recorded on said disk
JP3827419B2 (en) Software rewriting system
KR20010106654A (en) Recordible optical disk and apparatus therefor including OS and user configuration
US20010014623A1 (en) Recording medium and information processing device for managing read-in information
JP2526155Y2 (en) Soft vending machine
US7685592B2 (en) Method and device for updating program functions corresponding to a version flag
JPH09297682A (en) Trial pp management system
JP2009521043A (en) Subtraction installation apparatus and method
JP2000285312A (en) Data distributing device
JP4186303B2 (en) Data distribution system
JPH0830451A (en) Software control system
US20200286336A1 (en) Game system and game apparatus

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041019

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: 20041109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041109

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20081119

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20081119

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091119

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091119

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091119

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101119

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101119

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111119

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111119

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121119

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121119

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121119

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131119

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees