(57)【要約】【課題】セーブデータの記録を管理する技術を提供する。【解決手段】仮想容量取得部１１２は、アプリケーションからセーブデータ領域の仮想容量を取得する。記録容量取得部１１４は、アプリケーションのセーブデータの容量を取得する。書込制御部１１８は、アプリケーションが、仮想容量を超えてセーブデータを記録装置１４０に書き込むことを禁止する。また空き容量取得部１１６は、記録装置１４０の空き容量を取得し、書込制御部１１８は、空き容量よりも大きいセーブデータの書き込みを禁止する。【選択図】図４
2013123537.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションを実行する実行部と、
アプリケーションからセーブデータ領域の仮想容量を取得する第１取得部と、
記録装置に記録されているアプリケーションのセーブデータの容量を取得する第２取得部と、
アプリケーションが、仮想容量を超えてセーブデータを記録装置に書き込むことを禁止する書込制御部と、
を備えることを特徴とする電子機器。
【請求項２】
記録装置の空き容量を取得する第３取得部を、さらに備え、
前記書込制御部は、空き容量よりも大きいセーブデータの書き込みを禁止することを特徴とする請求項１に記載の電子機器。
【請求項３】
記録装置の空き容量を取得する第３取得部を、さらに備え、
前記書込制御部は、空き容量よりも大きいセーブデータの書込要求を受け付けると、記録装置に記録されているデータが削除された後に、セーブデータを記録装置に書き込むことを特徴とする請求項１に記載の電子機器。
【請求項４】
記録装置の空き容量を取得する第３取得部を、さらに備え、
前記書込制御部は、空き容量よりも大きいセーブデータの書込要求を受け付けると、セーブデータを記録装置に上書き保存することを特徴とする請求項１に記載の電子機器。
【請求項５】
アプリケーションからセーブデータ領域の仮想容量を取得するステップと、
記録装置において記録されているアプリケーションのセーブデータの容量を取得するステップと、
アプリケーションが、仮想容量を超えてセーブデータを記録装置に書き込むことを禁止するステップと、
を備えることを特徴とするセーブデータ記録方法。
【請求項６】
コンピュータに、
アプリケーションからセーブデータ領域の仮想容量を取得する機能と、
記録装置において記録されているアプリケーションのセーブデータの容量を取得する機能と、
アプリケーションが、仮想容量を超えてセーブデータを記録装置に書き込むことを禁止する機能と、
を実現させるためのプログラム。
【請求項７】
コンピュータに、
設定ファイルに記録されている仮想容量を通知する機能と、
セーブデータの書込要求を通知する機能と、
アプリケーションが仮想容量を超えてセーブデータを記録装置に書き込もうとした場合に、所定のエラーコードを受け取る機能と、
を実現させるためのプログラム。
【請求項８】
請求項６または７に記載のプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションが使用する記録領域を管理する技術に関する。
【背景技術】
【０００２】
ユーザは、ゲームプレイの進行状況を記録装置に保存（セーブ）しておくことで、後に記録装置に格納したゲームデータを用いて、前回の続きからゲームをプレイすることができる。従来、セーブデータの安易な複製を防止することを目的として、ゲームデータのセーブ時に、ゲームプログラムの実行環境の状態を示す状態情報をゲームデータに付加し、セーブデータのロード時に、現在の状態情報と、セーブデータに付加された状態情報の一致性を判定するゲーム装置が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許公開２００９／０２５８７１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ゲームプログラムは、記録媒体の形態で流通、販売される。従来は、ＲＯＭ媒体にゲームプログラムが記録されていたため、記録媒体にセーブデータを書き込むことはできなかったが、ゲームプログラムが記録された記録媒体に、書込可能な記録領域をもたせると、セーブデータを書き込むことも可能となる。また近年のインターネットの発達により、ゲームプログラムを、ゲームサーバからインターネット経由でユーザ端末に配信する環境が整備されており、ゲームメーカは、最初は記録媒体の形態で販売していたゲームプログラムを、その後、ゲームサーバから配信して販売することも可能となっている。
【０００５】
ユーザ端末においてダウンロードされたゲームプログラムは、大容量の記録装置にインストールされるため、ゲームがセーブデータを記録できる容量も必然的に増える。しかしながら、もともと記録媒体にインストールされていたゲームが、大容量の記録装置において実質的に無制限にセーブデータを記録しようとすると、そのゲームは正常に動作するか分からない。そのため、この場合、ゲームメーカはダウンロードタイプのゲームプログラムをリマスタする必要が生じる。このリマスタリングはゲームメーカにとって負担であり、記録媒体のタイプであっても、またダウンロードタイプであっても、リマスタすることなく同じゲームプログラムを販売できることが望ましい。
【０００６】
そこで本発明は、アプリケーションが使用する記録領域を管理する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の電子機器は、アプリケーションを実行する実行部と、アプリケーションからセーブデータ領域の仮想容量を取得する第１取得部と、記録装置に記録されているアプリケーションのセーブデータの容量を取得する第２取得部と、アプリケーションが仮想容量を超えてセーブデータを記録装置に書き込むことを禁止する書込制御部とを備える。
【０００８】
本発明の別の態様は、セーブデータ記録方法である。この方法は、アプリケーションからセーブデータ領域の仮想容量を取得するステップと、記録装置において記録されているアプリケーションのセーブデータの容量を取得するステップと、アプリケーションが仮想容量を超えてセーブデータを記録装置に書き込むことを禁止するステップとを備える。
【０００９】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明によると、アプリケーションが使用する記録領域を管理する技術を提供できる。
【図面の簡単な説明】
【００１１】
【図１】（ａ）は電子機器の前面を示す図であり、（ｂ）は電子機器の背面を示す図である。
【図２】（ａ）は電子機器の上面を示す図であり、（ｂ）は電子機器の下面を示す図であり、（ｃ）は電子機器の左側面を示す図である。
【図３】電子機器の回路構成を示す図である。
【図４】セーブデータの書込処理を行う実行処理部の構成を示す図である。
【図５】セーブデータの記録管理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
本実施例の電子機器の外観構成および回路構成を説明する。以下に示す電子機器は、携帯型のゲーム機であるが、他の種類の携帯型端末装置であってもよい。なお電子機器１０は携帯型の端末装置だけでなく、据置型の端末装置であってもよい。
【００１３】
［前面部の構成］
図１（ａ）は、電子機器１０の前面を示す。電子機器１０は、横長の筐体により形成され、ユーザが把持する左右の領域は、円弧状の外郭を有している。電子機器１０の前面には、矩形のタッチパネル５０が設けられる。タッチパネル５０は、表示装置２０と、表示装置２０の表面を覆う透明な前面タッチパッド２１から構成される。表示装置２０は有機ＥＬ（Electro-Liminescence）パネルであり、画像を表示する。なお表示装置２０は液晶パネルなどの表示手段であってもよい。前面タッチパッド２１は、同時にタッチされた複数ポイントの検出機能をもつマルチタッチパッドであって、タッチパネル５０はマルチタッチスクリーンとして構成される。
【００１４】
タッチパネル５０の右側には、菱形の頂点にそれぞれ位置する△ボタン２２ａ、○ボタン２２ｂ、×ボタン２２ｃ、□ボタン２２ｄ（以下、総称する場合には「操作ボタン２２」とよぶ）が設けられ、タッチパネル５０の左側には、上キー２３ａ、左キー２３ｂ、下キー２３ｃ、右キー２３ｄ（以下、総称する場合には「方向キー２３」とよぶ）が設けられる。ユーザは方向キー２３を操作して、上下左右および斜方の８方向を入力できる。方向キー２３の下側には左スティック２４ａが設けられ、また操作ボタン２２の下側には右スティック２４ｂが設けられる。ユーザは左スティック２４ａまたは右スティック２４ｂ（以下、総称する場合には「アナログスティック２４」とよぶ）を傾動して、方向および傾動量を入力する。筐体の左右頂部には、Ｌボタン２６ａ、Ｒボタン２６ｂが設けられる。操作ボタン２２、方向キー２３、アナログスティック２４、Ｌボタン２６ａ、Ｒボタン２６ｂは、ユーザが操作する操作手段を構成する。
【００１５】
操作ボタン２２の近傍に、前面カメラ３０が設けられる。左スティック２４ａの左側および右スティック２４ｂの右側には、それぞれ音声を出力する左スピーカ２５ａおよび右スピーカ２５ｂ（以下、総称する場合には「スピーカ２５」とよぶ）が設けられる。また左スティック２４ａの下側にＨＯＭＥボタン２７が設けられ、右スティック２４ｂの下側にＳＴＡＲＴボタン２８およびＳＥＬＥＣＴボタン２９が設けられる。
【００１６】
［背面部の構成］
図１（ｂ）は、電子機器１０の背面を示す。電子機器１０の背面には、背面カメラ３１および背面タッチパッド３２が設けられる。背面タッチパッド３２は、前面タッチパッド２１と同様に、マルチタッチパッドとして構成される。電子機器１０は、前面および背面において、２つのカメラおよびタッチパッドを搭載している。
【００１７】
［上面部の構成］
図２（ａ）は、電子機器１０の上面を示す。既述したように、電子機器１０の上面の左右端側に、Ｌボタン２６ａ、Ｒボタン２６ｂがそれぞれ設けられる。Ｌボタン２６ａの右側には電源ボタン３３が設けられ、ユーザは、電源ボタン３３を所定時間（たとえば２秒）以上押下することで、電源をオンまたはオフする。なお電子機器１０は、操作手段が操作されない時間（無操作時間）が所定時間続くと、サスペンド状態に遷移する電力制御機能を有している。電子機器１０がサスペンド状態に入ると、ユーザは電源ボタン３３を短時間（たとえば２秒以内）押下することで、電子機器１０をサスペンド状態からアウェイク状態に復帰させることができる。
【００１８】
ゲームカードスロット３４は、ゲームカードを差し込むための差込口であり、この図では、ゲームカードスロット３４がスロットカバーにより覆われている状態が示される。なおゲームカードスロット３４の近傍に、ゲームカードがアクセスされているときに点滅するＬＥＤランプが設けられてもよい。アクセサリ端子３５は、周辺機器（アクセサリ）を接続するための端子であり、この図ではアクセサリ端子３５が端子カバーにより覆われている状態が示される。アクセサリ端子３５とＲボタン２６ｂの間には、ボリュームを調整するための−ボタン３６ａと＋ボタン３６ｂが設けられている。
【００１９】
［下面部の構成］
図２（ｂ）は、電子機器１０の下面を示す。メモリカードスロット３７は、メモリカードを差し込むための差込口であり、この図では、メモリカードスロット３７が、スロットカバーにより覆われている状態が示される。電子機器１０の下面において、音声入出力端子３８、マイク３９およびマルチユース端子４０が設けられる。マルチユース端子４０はＵＳＢ（Universal Serial Bus）に対応し、ＵＳＢケーブルを介して他の機器と接続できる。
【００２０】
［左側面部の構成］
図２（ｃ）は、電子機器１０の左側面を示す。電子機器１０の左側面には、ＳＩＭカードの差込口であるＳＩＭカードスロット４１が設けられる。
【００２１】
［電子機器の回路構成］
図３は、電子機器１０の回路構成を示す。各構成はバス９２によって互いに接続されている。無線通信モジュール７１はＩＥＥＥ８０２．１１ｂ／ｇ等の通信規格に準拠した無線ＬＡＮモジュールによって構成され、ＡＰ２を介して、外部ネットワークに接続する。なお無線通信モジュール７１は、ブルートゥース（登録商標）プロトコルの通信機能を有してもよい。携帯電話モジュール７２は、ＩＴＵ（International Telecommunication Union；国際電気通信連合）によって定められたＩＭＴ−２０００（International Mobile Telecommunication 2000）規格に準拠した第３世代（3rd Generation）デジタル携帯電話方式に対応し、携帯電話網４に接続する。ＳＩＭカードスロット４１には、携帯電話の電話番号を特定するための固有のＩＤ番号が記録されたＳＩＭカード７４が挿入される。ＳＩＭカード７４がＳＩＭカードスロット４１に挿入されることで、携帯電話モジュール７２は、携帯電話網４との間で通信可能となる。
【００２２】
ＣＰＵ（Central Processing Unit）６０は、メインメモリ６４にロードされたプログラムなどを実行する。ＧＰＵ（Graphics Processing Unit）６２は、画像処理に必要な計算を実行する。メインメモリ６４は、ＲＡＭ（Random Access Memory）などにより構成され、ＣＰＵ６０が使用するプログラムやデータなどを記憶する。ストレージ６６は、ＮＡＮＤ型フラッシュメモリ（NAND-type flash memory）などにより構成され、内蔵型の補助記憶装置として利用される。
【００２３】
モーションセンサ６７は、電子機器１０の動きを検出し、地磁気センサ６８は、３軸方向の地磁気を検出する。ＧＰＳ制御部６９は、ＧＰＳ衛星からの信号を受信し、現在位置を算出する。前面カメラ３０および背面カメラ３１は、画像を撮像し、画像データを入力する。前面カメラ３０および背面カメラ３１は、ＣＭＯＳイメージセンサ（Complementary Metal Oxide Semiconductor Image Sensor）によって構成される。
【００２４】
表示装置２０は、有機ＥＬ表示装置であり、陰極および陽極に電圧を印加することで発光する発光素子を有する。省電力モードでは、電極間に印加する電圧を通常よりも低くすることで、表示装置２０を減光状態とすることができ、電力消費を抑えられる。なお表示装置２０はバックライトを備えた液晶パネル表示装置であってもよい。省電力モードでは、バックライトの光量を下げることで、液晶パネル表示装置を減光状態として、電力消費を抑えることができる。
【００２５】
インタフェース９０において、操作部７０は、電子機器１０における各種操作手段を含み、具体的には、操作ボタン２２、方向キー２３、アナログスティック２４、Ｌボタン２６ａ、Ｒボタン２６ｂ、ＨＯＭＥボタン２７、ＳＴＡＲＴボタン２８、ＳＥＬＥＣＴボタン２９、電源ボタン３３、−ボタン３６ａ、＋ボタン３６ｂを含む。前面タッチパッド２１および背面タッチパッド３２は、マルチタッチパッドであり、前面タッチパッド２１は、表示装置２０の表面に重ね合わせて配置される。スピーカ２５は、電子機器１０の各機能により生成される音声を出力し、マイク３９は、電子機器１０の周辺の音声を入力する。音声入出力端子３８は、外部のマイクからステレオ音声を入力し、外部のヘッドホンなどへステレオ音声を出力する。
【００２６】
ゲームカードスロット３４には、ゲームファイルを記録したゲームカード７６が差し込まれる。ゲームカード７６は、データの書込可能な記録領域を有しており、ゲームカードスロット３４に装着されると、メディアドライブにより、データの書込／読出が行われる。メモリカードスロット３７には、メモリカード７８が差し込まれる。メモリカード７８は、メモリカードスロット３７に装着されると、外付け型の補助記憶装置として利用される。マルチユース端子４０は、ＵＳＢ端子として利用でき、ＵＳＢケーブル８０を接続されて、他のＵＳＢ機器とデータの送受信を行う。アクセサリ端子３５には、周辺機器が接続される。
【００２７】
本実施例の電子機器１０は、アプリケーションを実行し、アプリケーションが生成するセーブデータを記録装置に記録する。以下、電子機器１０が、ゲームを実行するゲーム機である場合について説明するが、電子機器１０はゲーム以外の他のアプリケーションを実行できてもよい。本実施例においてセーブデータは、アプリケーションが保存するデータであり、電子機器１０がゲーム機の場合、ゲームプレイの進行状況を表すデータ、ハイスコア情報、ユーザがエディットしたキャラクタデータなどを含む。
【００２８】
本実施例の電子機器１０は、２種類の記録装置に記録されたゲームプログラムを実行できる。第１のゲームプログラムは、ゲームカード７６に記録されており、ゲームカード７６がゲームカードスロット３４に装着されると、電子機器１０がゲームプログラムをメインメモリ６４に読み出して実行する。第２のゲームプログラムは、メモリカード７８に記録されており、このゲームプログラムは、無線通信モジュール７１ないしは携帯電話モジュール７２により、インターネット上に接続されるゲームサーバからメモリカード７８にダウンロードされ、インストールされる。電子機器１０は、メモリカード７８からゲームプログラムをメインメモリ６４に読み出して実行する。本実施例において、第１のゲームプログラムと第２のゲームプログラムは、共通のプログラムであってよく、インストールされる記録装置が異なっている。
【００２９】
第１のゲームプログラムは、ゲームカード７６の形態で流通、販売される。ゲームカード７６はカートリッジタイプのものであってよく、多くの場合、単一のゲームプログラムがインストールされる。第１のゲームプログラムは、その実行中にセーブデータを生成し、ゲームカード７６に設けられている書込可能な記録領域に格納する。ゲームカード７６には、記録領域の容量が１００ＭＢ（メガバイト）、２００ＭＢ、４００ＭＢのものなど、様々な種類が存在している。たとえば、ゲームがユーザによるセーブデータの作成をトータルで１５０ＭＢまで許容する場合には、２００ＭＢ以上のゲームカードが使用される。ゲームメーカは、ゲームカードと同じ仮想環境を生成して、ゲームプログラムが正常に動作するか確認試験を行い、正常動作を確認後、ゲームカードにゲームプログラムをインストールして販売する。
【００３０】
ここで、同じゲームタイトルが、ゲームカード７６の形態で販売された後、ゲームメーカまたはパブリッシャによりゲームサーバから第２のゲームプログラムとして販売されることがある。既述したように、第２のゲームプログラムは、ゲームサーバからメモリカード７８にダウンロードされる。メモリカード７８は、たとえば数十ＧＢ（ギガバイト）の記録容量を有しており、他のゲームプログラムや、またユーザが撮影した写真、動画などのファイルも記録されることがあるが、一般的には大きな空き容量を有していることが多い。そのためゲームプログラムから見ると、ゲームカード７６で用意されていた記録領域の空き容量よりも、メモリカード７８の空き容量の方が通常は大きくなる。
【００３１】
このとき第２のゲームプログラムが、メモリカード７８の空き容量に応じて、セーブデータを保存できるようにすると、その動作は、第１のゲームプログラムが動作確認された状態とは異なる状態での動作となる。たとえば第１のゲームプログラムは、ゲームカード７６に１００個までのセーブデータしか保存できなかったところ、第２のゲームプログラムが、メモリカード７８の空き容量が許す限り実質的に無制限にセーブデータを保存できるようにすると、第１のゲームプログラム販売時には、そのような動作確認を行っていないため、あらためて動作確認をする必要が生じる。
【００３２】
つまり、ゲームカード７６にインストールしていたゲームプログラムを、そのままゲームサーバからメモリカード７８にインストールしたとき、そのゲームプログラムが膨大な量のセーブデータをメモリカード７８に保存しようとすると、その動作を保証できない。そのためゲームメーカは、リマスタリングを行う必要が生じるが、この作業は負担となる。そこでゲームカード７６にインストールした形態であっても、メモリカード７８にインストールした形態であっても、セーブデータの保存先の空き容量に左右されることなく、同じゲームプログラムが適切に動作可能な仕組みが提供されることが好ましい。
【００３３】
一方で、メモリカード７８の記録領域は、様々なアプリケーションにより利用されるため、メモリカード７８の空き容量が非常に小さくなる状況も発生しうる。そこで、セーブデータの保存先の空き容量が不足する場合には、ゲームプログラムによるセーブデータの記録を禁止または調整する仕組みを提供する必要もある。以下、本実施例におけるセーブデータの管理技術について説明する。
【００３４】
図４は、セーブデータの書込処理を行う実行処理部１００の構成を示す。図４において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ（Central Processing Unit）、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００３５】
実行処理部１００は、ＯＳ実行部１１０およびアプリケーション実行部１３０を備える。ＯＳ実行部１１０は、電子機器１０を効率よく使用するための機能、環境を提供し、機器全体を統括的に制御するオペレーティングシステム（以下、単に「ＯＳ（Operating System）」と呼ぶ）を実行する。ＯＳは、ゲームプログラムに提供するＡＰＩ（アプリケーションプログラミングインタフェース）の機能を実現するＡＰＩ処理モジュールを提供する。
【００３６】
本実施例では、セーブデータを記録装置１４０に書き込むためのプログラムがライブラリ（以下、「セーブデータユーティリティ」とよぶ）として用意され、ゲームプログラムがセーブデータユーティリティ関数を呼び出すことで、ＡＰＩ処理モジュールが構成される。ゲームプログラムがセーブ用のＡＰＩ処理モジュールを呼び出すと、ＡＰＩ処理モジュールが、セーブデータを記録装置１４０に保存する。記録装置１４０は、ゲームカード７６またはメモリカード７８である。セーブデータをゲームカード７６またはメモリカード７８のいずれに保存するかを示す情報は、ゲームプログラムに付随する設定ファイルに書き込まれており、ＡＰＩ処理モジュールは、その情報を参照して、セーブデータの書込先を決定する。通常、ゲームカード７６にインストールされたゲームプログラムを実行する場合、セーブデータはゲームカード７６に書き込まれ、一方、メモリカード７８にインストールされたゲームプログラムを実行する場合、セーブデータはメモリカード７８に書き込まれる。
【００３７】
以下、電子機器１０における複数種類のセーブ処理、ロード処理の概略を説明する。なお、以下のセーブ処理、ロード処理のそれぞれに対してセーブデータユーティリティ関数が用意され、ゲームプログラムが要求するセーブデータユーティリティ関数が呼び出されることで、ＯＳにＡＰＩ処理モジュールが構成される。
【００３８】
（１）リスト選択型セーブ／ロード／削除
リスト選択型の処理では、アプリケーションが指定した複数のセーブデータのリストを表示して、ユーザが選択したセーブデータを、必要ならユーザに確認応答を求めたうえで、セーブ／ロード／削除する。
（２）固定型セーブ／ロード／削除
固定型の処理では、アプリケーションが指定したセーブデータを、必要ならユーザに確認応答を求めたうえで、セーブ／ロード／削除する。
（３）オートセーブ／ロード／削除
オートセーブの処理では、アプリケーションが指定したセーブデータを、ユーザへの通知／応答なしに、セーブ／ロード／削除する。
【００３９】
アプリケーション実行部１３０が、ゲームプログラムをゲームカード７６またはメモリカード７８からメインメモリ６４に読み出し、ゲームを起動する。以下、アプリケーション実行部１３０が、メモリカード７８にインストールされたゲームプログラムを実行する場合の処理を示すが、ゲームカード７６にインストールされたゲームプログラムを実行する場合についても、同様の処理が実行される。
【００４０】
ＯＳ実行部１１０は、仮想容量取得部１１２、記録容量取得部１１４、空き容量取得部１１６、書込制御部１１８および表示処理部１２０を有し、アプリケーションによるセーブデータの書込を管理する。これらの構成は、単独または協同して、アプリケーションに対して複数のＡＰＩ処理モジュールを提供する。アプリケーションが、ＯＳ実行部１１０にセーブデータユーティリティ関数の呼び出しを行うと、ＯＳ実行部１１０が、呼び出されたＡＰＩ処理モジュールを起動する。なおＡＰＩ処理モジュールが起動されるタイミングは、アプリケーションが起動されたときであってもよく、またアプリケーションがセーブデータの書込要求を行ったときであってよい。
【００４１】
本実施例のアプリケーションは、使用するセーブデータ領域の上限値（以下、「仮想容量」とも呼ぶ）をＡＰＩ処理モジュールに対して宣言する機能をもつ。セーブデータ領域の仮想容量は、アプリケーションが保存するセーブデータの最大データ量を指定するものであって、アプリケーションは、宣言した仮想容量を超えて、セーブデータを記録することはできない。ＡＰＩ処理モジュールは、アプリケーションが宣言した仮想容量を超えてセーブデータを記録しようとすると、その記録を禁止する機能をもつ。またＡＰＩ処理モジュールは、保存先となる記録装置１４０の記録容量が、記録するセーブデータのデータ量よりも小さければ、その記録を禁止または調整する機能ももつ。
【００４２】
ＯＳ実行部１１０において、仮想容量取得部１１２は、アプリケーションからセーブデータ領域の仮想容量を取得する。仮想容量は、アプリケーションの設定ファイルなどに書き込まれており、アプリケーション毎に設定されている。なおアプリケーションは、セーブデータ領域の仮想容量を宣言するが、記録装置１４０に対して物理的な記録領域を確保することはしない。したがって、たとえばアプリケーションが、仮想容量を２００ＭＢと宣言したとき、仮に記録装置１４０の空き容量が１００ＭＢであっても、２００ＭＢを確保するわけではないので、アプリケーションは問題なく実行される。
【００４３】
記録容量取得部１１４は、アプリケーションが過去にメモリカード７８に保存したセーブデータの容量を取得する。これにより書込制御部１１８は、アプリケーションが保存できるセーブデータのデータ量を演算により求めることができる。たとえば、宣言した仮想容量が２００ＭＢ、過去に記録しているセーブデータ量が１５０ＭＢのとき、書込制御部１１８は、アプリケーションがあと５０ＭＢのセーブデータをメモリカード７８に記録できることを認識する。この場合、書込制御部１１８が、アプリケーションからセーブデータの書込要求を受け付けたとき、保存しようとするデータ量が５０ＭＢ以下であれば、メモリカード７８の所定領域にセーブデータを書き込む。
【００４４】
一方で、書込制御部１１８がアプリケーションからセーブデータの書込要求を受けたとき、そのセーブデータを書き込むことで、セーブデータのトータルの記録容量（データサイズ）が仮想容量を超える場合には、セーブデータの書込を禁止する。たとえば、宣言した仮想容量が２００ＭＢであって、既にメモリカード７８において記録しているセーブデータ量が１９９ＭＢである場合に、１ＭＢを超えるセーブデータの書込要求を受け付けると、書込制御部１１８は、そのセーブデータのメモリカード７８への書込を禁止し、アプリケーションに対して、仮想容量不足によりセーブできないことを示すエラーコードを返す。これにより書込制御部１１８は、当該アプリケーションのセーブデータの記録容量を、仮想容量の範囲内に抑えることができる。
【００４５】
さらに本実施例のＯＳ実行部１１０において、空き容量取得部１１６が、メモリカード７８の空き容量を取得する。このとき書込制御部１１８は、メモリカード７８の空き容量よりもデータサイズの大きいセーブデータの書込を禁止する。たとえばメモリカード７８の空き容量が１ＭＢしかない場合に、１ＭＢを超えるセーブデータの書込要求を受け付けると、書込制御部１１８は、そのセーブデータのメモリカード７８への書込を禁止し、アプリケーションに対して、空き容量不足によりセーブできないことを示すエラーコードを返す。
【００４６】
なお書込制御部１１８が、メモリカード７８の空き容量よりもデータサイズの大きいセーブデータの書込要求を受け付けた場合、表示処理部１２０が、メモリカード７８の空き容量不足が発生した旨のメッセージを表示装置２０に表示してもよい。このときアプリケーション実行部１３０はゲームを一時中断し、ユーザは記録装置１４０において不要なデータを削除する。その後、アプリケーション実行部１３０がゲームを再開すると、メモリカード７８の空き容量不足は解消しているため、書込制御部１１８は、セーブデータをメモリカード７８に書き込むことができる。このように表示処理部１２０がエラーメッセージを表示し、またユーザによるデータ削除などをシステム側で対応することで、アプリケーションは、メモリカード７８の空き容量不足に関する機能を搭載する必要はない。
【００４７】
なおシステム側の表示処理部１２０がエラーメッセージを表示してもよいが、アプリケーションがエラーメッセージを表示してもよい。書込制御部１１８は、空き容量不足の場合、その旨を示すエラーコードとともに、不足しているメモリカード７８の容量も、アプリケーションに返す。アプリケーションは、空き容量不足をユーザに知らせる定型文を有しており、この定型文に、実際の不足容量を入れ込んで、エラーメッセージを表示する。この定型文には、ユーザがメモリカード７８のデータを削除するための手順を記した案内文が含まれており、ユーザは、案内文に従って、アプリケーションをサスペンドし、システムのホーム画面に戻って、他のコンテンツファイルや他のアプリケーションなどを削除して、メモリカード７８の空き容量を確保してもよい。
【００４８】
なお、空き容量不足が発生した場合、アプリケーションは、セーブデータの削除を案内してもよい。後述するように、セーブデータはスロットという単位で管理されており、ユーザは、スロットを削除することでセーブデータを消去し、メモリカード７８の空き容量を確保することができる。
【００４９】
ゲームを一時中断することが好ましくない場合には、書込制御部１１８は、セーブデータをメモリカード７８に上書き保存してもよい。このとき書込制御部１１８は、セーブデータの生成日時を参照し、最も古い生成日時のセーブデータを上書きする。特に、書込制御部１１８がセーブデータをユーザの指示なしにオートセーブする場合、ゲームを一時中断することは好ましくない。そのためメモリカード７８の空き容量不足が発生していれば、古いセーブデータを上書きすることで、新しいセーブデータをメモリカード７８に記録することができる。
【００５０】
以上は、アプリケーション実行部１３０が、メモリカード７８にインストールされたアプリケーションを実行し、そのセーブデータをメモリカード７８に記録する場合について説明した。アプリケーション実行部１３０が、ゲームカード７６にインストールされたアプリケーションを実行し、そのセーブデータをゲームカード７６に記録する場合においても、ＯＳ実行部１１０は、同じように動作する。
【００５１】
図５は、セーブデータの記録管理の手順を示すフローチャートである。アプリケーション実行部１３０が、アプリケーションを起動する（Ｓ１０）。このときアプリケーションは、ＡＰＩ処理モジュールを呼び出し、これにより仮想容量取得部１１２が、アプリケーションからセーブデータ領域の仮想容量を取得し（Ｓ１２）、また記録容量取得部１１４が、記録装置１４０に記録されたアプリケーションのセーブデータのトータル容量（データサイズ）を取得する（Ｓ１４）。
【００５２】
書込制御部１１８は、アプリケーションから、セーブデータの書込要求を監視し（Ｓ１６のＮ）、書込要求があると（Ｓ１６のＹ）、空き容量取得部１１６が、記録装置１４０の空き容量を取得する（Ｓ１８）。このとき書込制御部１１８は、セーブデータを記録することで、記録装置１４０におけるセーブデータのトータルのデータサイズが仮想容量を超えるか判定し（Ｓ２０）、超える場合には（Ｓ２０のＹ）、書き込みエラーであることを判定する（Ｓ２６）。書込制御部１１８は、アプリケーションに対して、仮想容量不足によりセーブできないことを示すエラーコードを返すが、システム側のエラーではないため、アプリケーションは、エラーメッセージを表示しない。なおアプリケーションは、エラーコードを受け取ると、そのアプリケーションのセーブデータを削除することで仮想容量不足が解消することを示すメッセージを表示するように構成されてもよく、セーブデータを削除するための案内文を表示してもよい。このとき、仮想容量不足を解消するために必要なデータ量やセーブデータ数を表示してもよく、これによりユーザは、セーブデータをいくつ消去すればよいか知ることができる。
【００５３】
一方で、セーブデータのトータルのデータサイズが仮想容量を超えない場合（Ｓ２０のＮ）、書込制御部１１８は、記録装置１４０の空き容量が十分であるか判定する（Ｓ２２）。空き容量が、書込要求されたセーブデータよりも小さい場合（Ｓ２２のＮ）、書込制御部１１８は、書き込みエラーであることを判定する（Ｓ２６）。書込制御部１１８は、アプリケーションに対して、メモリカード７８の空き容量不足によりセーブできないことを示すエラーコードを返し、アプリケーションは、エラーメッセージを表示する。なおエラーメッセージは、システム側の表示処理部１２０により表示されてもよい。
【００５４】
一方で、空き容量が書込要求されたセーブデータのサイズ以上である場合（Ｓ２２のＹ）、書込制御部１１８は、セーブデータを記録装置１４０に書き込む（Ｓ２４）。以上のように、セーブデータの記録管理処理が実行される。
【００５５】
本実施例の電子機器１０では、アプリケーションが仮想容量を宣言して、ＡＰＩ処理モジュールが仮想容量を上限としてセーブデータのサイズを管理することで、アプリケーションの挙動が記録装置１４０の空き容量に左右されない仕組みを提供できる。アプリケーションは仮想容量を宣言するのみで、実際に物理的な記録領域を確保するわけではないので、他のアプリケーションの記録装置１４０の利用に影響を与えることもない。
【００５６】
また上記した例では、ゲームカード７６にインストールしていたゲームプログラムを、後に、ゲームサーバから配信する場合を説明したが、ゲームサーバから配信していたゲームプログラムを、後にゲームカード７６にインストールして販売することも想定される。そのようなケースであっても、ゲームプログラムが利用できる記録領域の上限値（仮想容量）を設定しておくことで、ゲームカード７６上での動作が保証されるようになる。
【００５７】
本実施例において、セーブデータは、スロットという単位で扱われる。各スロットにはスロットＩＤが割り当てられ、表示処理部１２０により構成されるＡＰＩ処理モジュールは、スロット単位でセーブデータに関する情報を表示装置２０に表示する。なお、スロット作成のためのデータ量も、セーブデータのサイズに加算され、したがって、セーブデータの仮想容量は、実際には、宣言した仮想容量から、スロット作成のためのデータ量を減算した値となる。
【００５８】
アプリケーションは、表示処理部１２０を呼び出して、スロットの情報を閲覧できる。たとえばスロットの情報としては、タイトルやセーブデータの更新日時などが表示され、各スロットには、セーブデータが対応づけられている。ユーザがスロットを削除すると、対応するセーブデータも削除される。
【００５９】
本実施例において、アプリケーションプログラムは少なくとも以下の機能を有して構成される。
アプリケーションを進行させる機能。
ＡＰＩ処理モジュールを呼び出す機能。
ＡＰＩ処理モジュールに対して、設定ファイルに記録されている仮想容量を通知する機能。
セーブデータを生成する機能。
ＡＰＩ処理モジュールに対して、セーブデータの書込要求を通知する機能。
アプリケーションが仮想容量を超えてセーブデータを記録装置１４０に書き込もうとした場合に、第１のエラーコードを受け取る機能。
アプリケーションがセーブデータを空き容量が不足した記録装置１４０に書き込もうとした場合に、第２のエラーコードを受け取る機能。
第２のエラーコードを受け取ったときに、エラーメッセージを表示する機能。
第１のエラーコードを受け取ったときに、セーブデータの削除を案内する機能。
【００６０】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【００６１】
１０・・・電子機器、１００・・・実行処理部、１１０・・・ＯＳ実行部、１１２・・・仮想容量取得部、１１４・・・記録容量取得部、１１６・・・空き容量取得部、１１８・・・書込制御部、１２０・・・表示処理部、１３０・・・アプリケーション実行部、１４０・・・記録装置。
【図１】
2013123537.tif 000003
【図２】
2013123537.tif 000004
【図３】
2013123537.tif 000005
【図４】
2013123537.tif 000006
【図５】
2013123537.tif 000007