説明

情報処理装置およびファイルシステム

【課題】ファイルアクセスを効率的に実行できる技術を提供する。
【解決手段】情報処理装置10において、ファイルシステム100は、記憶部130のファイルを管理する。プロセス起動部94は、起動指示を受け付けて、アプリケーションを起動する。パス取得部102は、アプリケーションが起動されると、記憶部130におけるアプリケーションファイルとパッチファイルのパスを取得する。パス切替部106は、アプリケーションファイルとパッチファイルの両方に同名のコンテンツが含まれている場合に、アプリケーションファイルに含まれるコンテンツのパスを、パッチファイルに含まれるコンテンツのパスに設定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲーム装置などの情報処理装置で実行される情報処理技術に関する。
【背景技術】
【0002】
一般にゲームソフトウェアは、光ディスクや光磁気ディスク、ブルーレイディスクなどのROM媒体の形態で流通、販売される。ROM媒体に記録されたゲームソフトウェアは書き換えることができないため、ゲームソフトウェアの一部のバグを修正したり、機能を変更するためには、パッチを当てることで対応する。特許文献1は、記録媒体に記録されたバージョン情報と、パッチファイルに含まれるバージョン情報を比較して、より新しいバージョン情報が付与されている起動ファイルをメモリにロードして、ゲーム起動処理を実行するゲーム装置を開示している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】US2008/0141018号公開公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
インターネットの発達により、ゲームプログラムを含むゲームファイルやパッチファイルを、サーバからインターネット経由でユーザ端末に配信する環境が実現されている。ダウンロードしたゲームファイルやパッチファイルはユーザ端末のストレージにインストールされ、ファイルシステムにより管理される。ゲームプログラムは、起動されると、ゲームファイルやパッチファイルに含まれるコンテンツにアクセスする必要があるが、ゲームプログラムは、通常、コンテンツがストレージのどこに格納されているか把握していない。そのためゲームプログラムは、たとえばシステムのユーティリティを呼び出して、必要なコンテンツのパスを問い合わせ、その結果を受けてファイルにアクセスする。
【0005】
パスを調査して、ゲームプログラムに通知するユーティリティを用意している場合であっても、ゲームプログラムによっては、たとえばゲームプログラム中に、アクセス先となるパスを埋め込んでおくことも可能である。しかしながら、ファイル管理は、あくまでもユーザ端末のファイルシステムにより行われるため、ファイルシステムにおける実際のパスとは異なるパスが埋め込まれている場合には、ゲームプログラムが、適切でないファイルにアクセスする状況も発生しうる。そこで、効率的に、且つセキュアなファイル管理を可能とするシステムの開発が望まれている。
【0006】
また、パッチファイルが存在する場合、システムは、パッチファイルの起動ファイルをメモリにロードして、ゲーム起動処理を実行する。このとき、ゲームファイルとパッチファイルとは、ストレージの別の領域に格納されているため、実行されるパッチファイルは、自身がパッチファイルであることを認識して、オリジナルのゲームファイルにアクセスする必要がある。そのため、ゲームプログラムは、あるデータファイルにアクセスする場合に、ゲームファイルにアクセスするのか、またはパッチファイルにアクセスするのかを逐一判断して、アクセス先を決定する必要がある。そのため、パッチファイルが存在する場合は、パス確認作業のために、ファイルアクセス処理が複雑になっている。
【0007】
そこで本発明は、ファイルアクセスを効率的に実行できる技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明のある態様の情報処理装置は、アプリケーションの実行に用いられるアプリケーションファイルと、パッチファイルとを格納する記憶部と、記憶部のファイルを管理するファイルシステムと、起動指示を受け付けて、アプリケーションを起動する起動部と、アプリケーションを実行する処理部と、を備えた情報処理装置であって、ファイルシステムは、起動部がアプリケーションを起動すると、記憶部におけるアプリケーションファイルとパッチファイルのパスを取得するパス取得部と、アプリケーションファイルとパッチファイルの両方に同名のコンテンツが含まれている場合に、アプリケーションファイルに含まれるコンテンツのパスを、パッチファイルに含まれるコンテンツのパスに設定するパス切替部とを備える。
【0009】
本発明の別の態様は、ファイルシステムである。このファイルシステムは、アプリケーションファイルとパッチファイルを格納する記憶部のファイルを管理するファイルシステムであって、アプリケーションが起動されると、記憶部におけるアプリケーションファイルとパッチファイルのパスを取得するパス取得部と、アプリケーションファイルとパッチファイルの両方に同名のコンテンツが含まれている場合に、アプリケーションファイルに含まれるコンテンツのパスを、パッチファイルに含まれるコンテンツのパスに設定するパス切替部とを備える。
【0010】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0011】
本発明の情報処理技術によると、ファイルアクセスを効率的に実行できる技術を提供することが可能となる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施例にかかる情報処理システムを示す図である。
【図2】実施例にかかる情報処理装置の外観の一例を示す図である。
【図3】情報処理装置の回路構成を示す図である。
【図4】ゲームファイルのディレクトリ構成を示す図である。
【図5】ファイルシステムにより所定のマウントポイント“GAME0”にマウントされたゲームファイルの仮想的なディレクトリ構成を示す図である。
【図6】パッチファイルのディレクトリ構成を示す図である。
【図7】オーバーレイ処理を説明するための図である。
【図8】情報処理装置におけるファイル管理を実行するための機能ブロックを示す図である。
【図9】マウント部により生成される対応表を示す図である。
【図10】マウント部により生成される対応表を示す図である。
【発明を実施するための形態】
【0013】
図1は、本発明の実施例にかかる情報処理システム1を示す。情報処理システム1は、ユーザ端末である情報処理装置10と、ファイル提供サーバ12とを備える。ファイル提供サーバ12は、ゲームプログラムを含むゲームファイルを提供するゲームファイル提供サーバ12aと、ゲームに適用するパッチファイルを提供するパッチファイル提供サーバ12bと、ゲームで使用するデータファイルを提供するデータファイル提供サーバ12cとを含む。
【0014】
情報処理装置10、ゲームファイル提供サーバ12a、パッチファイル提供サーバ12b、データファイル提供サーバ12cは、インターネットや有線LANなどのネットワーク4を介して通信可能に接続される。情報処理装置10は無線通信機能を有し、アクセスポイント(以下、「AP」と呼ぶ)2を介してネットワーク4に接続して、ファイル提供サーバ12から所望のファイルをダウンロードする。AP2は、無線LAN(Local Area Network)で情報処理装置10を他のアクセスポイントに接続したり、情報処理装置10をネットワーク4に接続する中継装置として機能する。このように情報処理装置10は、無線LAN方式による通信機能を有してもよいが、第3世代移動通信システムなどの携帯電話通信方式により携帯電話網に接続して、ファイル提供サーバ12からファイルをダウンロードしてもよい。
【0015】
ゲームファイル提供サーバ12a、パッチファイル提供サーバ12b、データファイル提供サーバ12cは、単一のサーバから構成されてもよいが、複数のサーバから構成されてもよい。また、ゲームファイル提供サーバ12a、パッチファイル提供サーバ12b、データファイル提供サーバ12cの2以上の組み合わせが、1つのサーバから構成されてもよい。
【0016】
ゲームファイル提供サーバ12aは、ゲームファイルを提供する。ゲームファイルは、起動ファイル、ゲームプログラムなどのゲームを実行するためのファイル群、および情報処理装置10のシステムソフトウェアが使用するファイル群を含んでいる。ゲームプログラムは、ゲームの実行に必要なプログラムであり、ゲームプログラムを走らせることで、ゲームが進行する。起動ファイルは、ゲームプログラムを起動するためのプログラムであり、起動ファイルを実行すると、ゲームプログラムが呼び出されて実行される。システムソフトウェアが使用するファイル群は、たとえば、情報処理装置10におけるメニュー画面に表示されるゲームアイコン画像などを含む。
【0017】
パッチファイル提供サーバ12bは、ゲームに適用するパッチファイルを提供する。パッチファイルは、バグを修正したゲームプログラムや、ゲーム機能を変更するためのデータファイルなどを含む。パッチファイルはゲームファイルと同じファイル構成を有し、ゲームファイルに含まれるコンテンツと置き換えられるべきコンテンツを含んでいる。なお、ここで「コンテンツ」とは、ゲームファイルやパッチファイルに含まれるプログラムやデータファイルなどを統一的に表現する用語として用いている。
【0018】
したがって、情報処理装置10は、ゲームファイルおよびパッチファイルの両方をインストールすると、両方に同名のコンテンツが含まれている場合には、パッチファイルに含まれるコンテンツを利用してゲームを実行する。なお、後述するが、ゲームファイルとパッチファイルは、情報処理装置10において別個のディレクトリに格納され、ゲームファイルのコンテンツがパッチファイルのコンテンツにより上書きされるわけではない。なお、情報処理装置10が、複数のバージョンのパッチファイルをダウンロードしている場合には、より新しいバージョンのパッチファイルのコンテンツが使用されることで、ゲームが最新の状態で実行されることになる。
【0019】
データファイル提供サーバ12cは、オリジナルのゲーム進行に追加される新たなキャラクタやゲームシーンなどのデータファイルを提供する。データファイル提供サーバ12cにより保持されるデータファイルは、オリジナルのゲーム進行に対して追加的に使用されることから、以下においては「追加データファイル」と呼ぶ。
【0020】
図2は、実施例にかかる情報処理装置10の外観の一例を示す。図2に示す情報処理装置10は携帯型端末であり、無線通信機能を搭載する。なお情報処理装置10は、ケーブルを介してネットワーク4に接続してもよく、また携帯型端末に限らず、据置型端末であってもよい。
【0021】
図2に示すように、情報処理装置10の表側、すなわち、ユーザが情報処理装置10を把持して操作するときにユーザに面する側には、指示入力ボタン21、方向キー22、Rボタン23、Lボタン24などの入力装置20と、表示装置68が備えられている。表示装置68には、ユーザの指やスタイラスペンなどによる接触を検知するためのタッチパネル69が併設されている。情報処理装置10の内部には、情報処理装置10の傾きを検知するモーションセンサ25が備えられている。なお情報処理装置10の裏側に、背面タッチパネルが備えられてもよい。
【0022】
ユーザは、情報処理装置10を両手で把持した状態で、例えば、右手親指で指示入力ボタン21を操作し、左手親指で方向キー22を操作し、右手人差し指又は中指でRボタン23を操作し、左手人差し指又は中指でLボタン24を操作することができる。またタッチパネル69を操作する場合には、情報処理装置10を両手で把持した状態で、それぞれの親指でタッチパネル69を操作してもよく、また情報処理装置10を左手で把持した状態で、右手でタッチパネル69を操作し、左手親指で方向キー22を操作し、左手人差し指又は中指でLボタン24を操作してもよい。
【0023】
図3は、情報処理装置10の回路構成を示す図である。表示装置68は、情報処理装置10の各機能により生成される画像を表示する。表示装置68は、液晶表示装置であってもよいし、有機EL表示装置であってもよい。タッチパネル69は、表示装置68の上に重ね合わせて設けられ、ユーザの指やペンなどによる接触を検知する。タッチパネル69は、抵抗膜方式、表面型静電容量方式、投影型静電容量方式など、いずれの方式のものであってもよい。情報処理装置10では、表示装置68およびタッチパネル69によりディスプレイが構成される。
【0024】
無線通信モジュール30はIEEE802.11b/g等の通信規格に準拠した無線LANモジュールによって構成され、AP2を介して、ネットワーク4に接続する。なお無線通信モジュール30は、他の情報処理装置10とアドホックモードで直接通信してもよい。携帯電話モジュール32は、ITU(International Telecommunication Union;国際電気通信連合)によって定められたIMT−2000(International Mobile Telecommunication 2000)規格に準拠した第3世代(3rd Generation)デジタル携帯電話方式に対応し、携帯電話網6に接続する。携帯電話モジュール32には、携帯電話の電話番号を特定するための固有のID番号が記録されたSIMカードが挿入される。
【0025】
インタフェース50において、LED(Light Emitting Diode)51は、無線通信モジュール30や携帯電話モジュール32などがデータの送受信をしている際に点滅する。モーションセンサ25は、情報処理装置10の動きを検知する。マイク52は、情報処理装置10の周辺の音声を入力する。スピーカ53は、情報処理装置10の各機能により生成される音声を出力する。ステレオ入出力端子54は、外部のマイクからステレオ音声を入力し、外部のヘッドフォンなどへステレオ音声を出力する。入力装置20は、前述した操作キーなどを含み、ユーザの操作入力を受け付ける。
【0026】
CPU(Central Processing Unit)40は、メインメモリ44にロードされたプログラムなどを実行する。GPU(Graphics Processing Unit)42は、画像処理に必要な計算を実行する。メインメモリ44は、RAM(Random Access Memory)などにより構成され、情報処理装置10で動作するプログラムやデータなどを記憶する。ストレージ46は、NAND型フラッシュメモリ(NAND-type flash memory)などにより構成され、プログラムやデータなどを記録する。ストレージ46は、後述するメモリカード制御部62に挿入される記憶メディア80に対して、内蔵型の記憶装置として利用される。
【0027】
GPS(Global Positioning System)制御部60は、GPS衛星からの信号を受信し、現在位置を算出する。USB制御部61は、USB(Universal Serial Bus)で接続された周辺装置との間の通信を制御する。メモリカード制御部62は、フラッシュメモリなどの記憶メディア80が挿入されて、記憶メディア80との間のデータの読み書きを制御する。記憶メディア80が挿入されると、記憶メディア80は、補助記憶装置として利用される。メディアドライブ63は、ゲームファイルを記録したゲーム記録メディア70が挿入されて、ゲーム記録メディア70との間のデータの読み書きを制御する。
【0028】
ゲーム記録メディア70には、ゲームファイルが記録されており、ユーザは、ゲーム記録メディア70をメディアドライブ63に差し込むことで、ゲームをプレイできる。ゲーム記録メディア70には、書込可能な記憶領域が設けられており、たとえば、パッチファイルや追加データファイルなどが書き込まれてもよい。なお既述したように、情報処理装置10において、ゲームファイルは、ゲームファイル提供サーバ12aよりダウンロードされて、ストレージ46または記憶メディア80にインストールすることもできる。このように、情報処理装置10は、ゲーム記録メディア70に記録されたゲームファイル、またはインストールされたゲームファイルを実行する機能を有している。ビデオ出力制御部64は、HDMIなどの規格に基づいて、外部表示装置へビデオ信号を出力する。以上の各機能ブロックはバス90によって互いに接続されている。
【0029】
以下、実施例の概要を述べる。まず背景として、アプリケーションが、自身のファイルにアクセスする場合、アプリケーションは、自身(すなわちアプリケーションファイル)がどこに格納されているかを把握していない。そのため、ファイルアクセスの一つの手法として、アプリケーションが、アプリケーションIDをもとに、システムのユーティリティにファイルの格納位置を調べてもらい、格納位置を示すパス情報を受け取ることで、所望のファイルにアクセスする手法がある。しかしながら、このような手法をとる場合、アプリケーションは比較的自由にストレージにアクセスでき、たとえばアプリケーションがユーティリティを介さずに、自身以外のアプリケーションファイルにアクセスすることも理論上は可能であり、セキュリティ上、好ましくないことも生じうる。
【0030】
そこで実施例の情報処理装置10では、ファイルシステムが、アプリケーションファイルのパスを、仮想的な所定のマウントポイント(たとえば、“GAME0”)に対応付ける。アプリケーションファイルには、この所定のマウントポイント“GAME0”を特定する情報が予め含まれており、アプリケーションは、このマウントポイントを指定して、ファイルにアクセスする。マウントポイントとアプリケーションファイルのパスの対応付けは、ファイルシステムにより管理されるため、アプリケーションは、ファイルの実際のパスを指定する必要はなく、単に、“GAME0”を指定するだけで、所望のファイルにアクセスできるようになる。またセキュリティの観点からみると、アプリケーションがファイルのパスを指定しても、ファイルシステムは、設定したマウントポイント以外のパス指定を受け付けないために、アプリケーションに対して実質的なアクセス制限をかけることができ、セキュリティを向上できる。
【0031】
なお、複数のアプリケーションが起動される場合であっても、各アプリケーションは、同じマウントポイント“GAME0”を指定して、ファイルにアクセスできる。これは、ファイルシステムが、各アプリケーションプロセスをプロセスIDによって区別することにより実現される。このように、本実施例の情報処理装置10によると、アプリケーションは、アプリケーションファイルの格納位置を全く意識する必要がなく、単にマウントポイント“GAME0”を指定するだけで、ファイルにアクセスできるため、ファイルアクセスに関するゲームメーカの開発負荷を大幅に低減できるメリットがある。
【0032】
図4は、ゲームファイルのディレクトリ構成を示す。ここで“device:”は、ストレージ46を指定し、図4に示すディレクトリ構成は、ストレージ46内の格納位置を示しているが、ゲームファイルは、記憶メディア80またはゲーム記録メディア70に記録されていてもよい。ゲームファイルは、“game”ディレクトリに格納される。全てのゲームファイルには、それぞれを一意に識別するためのタイトルIDが設定されており、“game”ディレクトリにおいて、各ゲームファイルは、タイトルID(title_id)で特定されるサブディレクトリに格納される。なお、サブディレクトリを構成する“title_id”は、タイトルIDそのものであってもよく、またタイトルIDから生成されるコードであってもよい。
【0033】
“boot_game.b”は、ユーザからの起動指示を受けて、システムソフトウェアが最初に起動する起動ファイルである。“files or dirs”は、ファイルまたはディレクトリを統一的に表現しており、ゲームを構成するファイル群が格納されている状態を示している。“sys”には、システムソフトウェアが使用するファイル群が格納される。このファイル群は、タイトルIDが記述されたパラメータファイルや、システムソフトウェアがメニュー画面に表示するアイコン画像ファイルなどを含んでいる。
【0034】
図5は、ファイルシステムにより所定のマウントポイント“GAME0”にマウントされたゲームファイルの仮想的なディレクトリ構成を示す。ファイルシステムは、図5に示すディレクトリ構成をゲームに対して提供する。したがって、ゲームは、マウントポイント“GAME0”を指定することで、ゲームファイルに含まれるファイルにアクセスすることができる。たとえば、ファイルのアクセスコマンドが“open()”で表現される場合、ゲームが、open(“GAME0:data1.dat”)のコマンドをファイルシステムに送ると、ファイルシステムが、このコマンドを、図4に示す“device:/game/(title_id)/data1.dat”のアクセスコマンドであることを認識して、ゲームが“data1.dat”をストレージ46から読み出すことができる。これにより、ゲームは、“data1.dat”の実際の格納位置を知る必要がなく、単純に、マウントポイント“GAME0”を指定することで、ファイルにアクセスできるようになる。
【0035】
本実施例において、パッチファイルが存在する場合、情報処理装置10のファイルシステムは、ゲームファイルとパッチファイルとのオーバーレイ処理を行う。本実施例においてパッチファイルは、ゲームファイルと同じファイル構成を有し、ゲームファイルに含まれるコンテンツと置き換えられるべきコンテンツを含んでいる。本実施例においてオーバーレイ処理とは、ゲームファイルが格納されたディレクトリに、パッチファイルが上書きされた状態を仮想的に生成する処理をいう。なお、ゲームファイルとパッチファイルとは、別個の位置に格納されており、ゲームファイルがパッチファイルにより実際に上書きされるわけではない。これにより、ゲームは、パッチファイルを意識することなく、ゲームファイルが格納されたディレクトリにアクセスすると、ファイルシステムが、必要に応じてパッチファイルのパスに切り替えて、ゲームがパッチファイルにアクセスできるようになる。以下では、ゲームファイルが格納されたディレクトリが、図5に示す仮想的なディレクトリである例を示すが、図4に示す実際のディレクトリであってもよい。
【0036】
図6は、パッチファイルのディレクトリ構成を示す。パッチファイルは、“patch”ディレクトリに格納される。“patch”ディレクトリにおいて、各パッチファイルは、タイトルID(title_id)で特定されるサブディレクトリに格納される。パッチファイルは、図4に示すゲームファイルと同じディレクトリ構成をとるが、ゲームファイルに含まれるコンテンツのうち、更新または追加が必要なコンテンツのみが含まれる。なお、図6に示す例では、“boot_game.b”が含まれているが、オリジナルのゲームファイルに含まれる“boot_game.b”に更新の必要がなければ、パッチファイルにおいて“boot_game.b”は含まれない。
【0037】
図7は、オーバーレイ処理を説明するための図である。ゲームディレクトリ72は、マウントポイント“GAME0”にマウントされたゲームファイルの仮想的なディレクトリ構成を示す。ゲームディレクトリ72において、“boot_game.b”は、ゲームの起動ファイルであり、“data1.dat”、“data2.dat”は、それぞれゲームのデータファイルである。“parameter.a”は、システムソフトウェアで使用されるゲームのパラメータファイルであり、“icon0.p”、“icon1.p”は、メニュー画面に表示されるアイコン画像データであり、“game_info.c”は、メニュー画面に表示されるゲームの情報データである。
【0038】
パッチディレクトリ74は、パッチファイルのディレクトリ構成を示す。ゲームの実行時、ゲームディレクトリ72に含まれるコンテンツは、パッチファイルに含まれるコンテンツにより置き換えられる。ここでは、パッチファイルに含まれる“boot_game.b”、“data1.dat”、“parameter.a”、“icon0.p”、“game_info.c”が、ゲームファイルに含まれる同一名のファイルの代わりに使用される。なお、パッチファイルにおける“pr.b”は、ゲームの追加データに相当する。
【0039】
ファイルシステムは、ゲームファイルを所定のマウントポイントにマウントして、仮想的なゲームディレクトリ72を生成した後、同一のタイトルIDをもつパッチファイルを探索する。ファイルシステムは、パッチファイルを見つけると、ゲームファイルに仮想的に上書きするコンテンツをゲームディレクトリ72から探し出す。ここでは、“boot_game.b”、“data1.dat”、“parameter.a”、“icon0.p”、“game_info.c”が抽出される。また、“pr.b”も、ゲームファイルに追加されるファイルとして抽出される。
【0040】
ファイルシステムは、上書きするべきファイルを抽出すると、ゲームディレクトリ76として示すゲームファイルを仮想的に生成する。なおファイルシステムは、実際にゲームファイルのディレクトリにパッチファイルを上書きするのではなく、あくまでもゲームファイルにパッチファイルが上書きされているような仮想的なゲームディレクトリ76を生成する。ゲームディレクトリ76において、“*”をつけたコンテンツは、パッチファイルに含まれているものであり、実際にはパッチディレクトリ74に格納されている。このようにファイルシステムが、オーバーレイ処理を行うことで、ゲームは、アクセスするコンテンツがゲームファイルに含まれるものなのか、またはパッチファイルに含まれるものなのかを意識することなく、所望のコンテンツにアクセスすることができる。
【0041】
図8は、情報処理装置10におけるファイル管理を実行するための機能ブロックを示す。図8では、メインメモリ44やGPU42などの図示は省略している。情報処理装置10は、入力装置20、タッチパネル69、入力部92、CPU40および記憶部130を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0042】
入力部92は、入力装置20およびタッチパネル69から入力されるユーザによる操作指示を受け付ける。記憶部130は、ゲームの実行に用いられるゲームファイルを格納し、ストレージ46、記憶メディア80、および/またはゲーム記録メディア70を含む。なお、パッチファイルが存在する場合、記憶部130は、ゲームファイルとは別のディレクトリに、パッチファイルを記録する。なお、ゲームファイルおよびパッチファイルは、ストレージ46、記憶メディア80またはゲーム記録メディア70のいずれに格納されていてもよい。以下では、説明の便宜上、ゲームファイルおよびパッチファイルが、記憶部130に格納されているものとして説明する。
【0043】
CPU40は、プロセス起動部94、ファイルシステム100および処理部120の機能を構成する。ファイルシステム100は、記憶部130のファイルを管理し、パス取得部102、マウント部104、パス切替部106、属性設定部108およびパス変換部110を有する。ファイルシステム100の各機能は、システムソフトウェアのカーネルレイヤや、ユーティリティソフトウェアなどにより実現される。処理部120は、ゲームを実行し、アプリケーション実行部122およびファイルアクセス部124を有する。処理部120は、ゲームソフトウェアおよびユーティリティソフトウェアにより実現される。
【0044】
まずファイルシステム100による仮想マウント処理について説明する。ゲームの実行前、システムソフトウェアは、表示装置68に、ゲームアイコンを含むメニュー画面を生成する。ゲームアイコンは、たとえば図7のゲームディレクトリ72に示す“icon0.p”から生成される。ユーザが、入力装置20またはタッチパネル69よりゲームアイコンを選択すると、入力部92がユーザの選択操作を受け付け、プロセス起動部94に通知する。プロセス起動部94は、その通知を、ゲームの起動指示として受け付ける。プロセス起動部94は、選択操作により指定されたゲームのタイトルIDを特定し、記憶部130から、そのゲームタイトルIDの起動ファイル(boot_game.b)を探索して、起動する。
【0045】
このときプロセス起動部94は、起動したアプリケーションに対して、プロセスIDを付与する。プロセス起動部94は、プロセスIDを、アプリケーションを起動した順に付与し、したがって、実行中のアプリケーションは、プロセスIDにより区別される。そのため複数のゲームが同時に実行されている場合、各ゲームからのコマンドは、プロセスIDにより区別されることになる。以下、ゲームのタイトルIDが、“ABCTENNIS2”であり、プロセスIDが“1”に設定されたものとする。プロセス起動部94は、ゲーム“ABCTENNIS2”の起動ファイルを起動すると、プロセスIDおよびゲームタイトルIDとともに、起動した旨をファイルシステム100に通知する。
【0046】
ファイルシステム100において、パス取得部102は、ゲームタイトルIDを用いて、記憶部130を探索し、実行するゲームファイルのパスを取得する。図4に示したように、本実施例においてゲームファイルは、タイトルIDで特定されるディレクトリに格納されている。そこでパス取得部102は、“/game/ABCTENNIS2”を含むディレクトリを探索し、ゲームファイルのパスを取得する。パス取得部102が、ゲームファイルのパスを取得すると、マウント部104が、そのパスを、仮想的な所定のマウントポイント“GAME0”に対応付け、対応表を生成する。パス取得部102およびマウント部104は、起動ファイルが起動されると、処理部120からの指示なしに自動的にマウント処理を行う。
【0047】
図9は、マウント部104により生成される対応表を示す。対応表には、プロセスID、タイトルID、ゲームファイルのパス情報、およびマウントポイントが対応付けられて記録される。なお、図9に示す対応表は、プロセスIDとゲームファイルのパス情報とを一対一に対応付けているが、プロセスIDと、ゲームファイルに含まれる各ファイル(コンテンツ)のパス情報とが一対一に対応付けられてもよい。処理部120がファイルシステム100にファイルアクセスのコマンドを送る際、コマンドには、プロセスIDが付加される。ファイルシステム100は、プロセスIDを参照して、対応表において対応付けられているパス情報を特定することで、ファイルのアクセス先を特定することができる。
【0048】
なお、図9においては、説明のために、ABCTENNIS2が起動された後、さらに別のゲームタイトルID“DEFSOCCER”をもつゲームが起動されたときに生成される対応表を示している。図示されるように、マウント部104は、DEFSOCCERのゲームプロセスに対しても、ABCTENNIS2と同じマウントポイントを設定する。このように、ファイルシステム100は、全てのゲームファイルに対して、同じマウントポイント“GAME0”を設定し、プロセスIDによって、ファイルパスを管理する。
【0049】
このファイルシステム100によるマウント処理により、ゲームは、図5に示す仮想的なディレクトリ構成でゲームファイルにアクセスできるようになる。なお、ゲームファイルには、マウントポイント“GAME0”を特定する情報が予め含まれており、起動ファイルが起動されると、起動ファイルはマウントポイント“GAME0”を用いて必要なコンテンツにアクセスし、またゲームプログラムが起動されると、ゲームプログラムが、同じくマウントポイント“GAME0”を用いて、所望のコンテンツにアクセスする。
【0050】
処理部120の機能は、プロセス起動部94により起動ファイルが実行されて、起動ファイルによりゲームプログラムが実行されることで実現される。アプリケーション実行部122は、ゲーム進行を制御し、ファイルアクセス部124は、ゲーム進行に必要なファイルを記憶部130から読み出す。たとえば、データファイル“data1.dat”を記憶部130から読み出す場合、ファイルアクセス部124は、open(“GAME0:data1.dat”)のコマンドを、プロセスIDとともに、ファイルシステム100に送る。ファイルシステム100において、パス変換部110は、プロセスIDから、マウントポイント“GAME0”に対応付けられているパス情報を特定し、仮想マウントポイントを、記憶部130におけるパス(device:/game/ABCTENNIS2/data1.dat)に変換することで、ファイルアクセス部124は、記憶部130における“data1.dat”にアクセスすることができる。
【0051】
次にファイルシステム100によるオーバーレイ処理について説明する。本実施例でオーバーレイ処理は、ゲームファイルのパスを仮想的なマウントポイントにマウントした後に実行される。マウント部104が、図9に示す対応表を生成した後、パス取得部102は、同じゲームタイトルIDのパッチファイルが存在するか記憶部130を探索して調査する。パッチファイルが存在しなければ、オーバーレイ処理は実行されない。図6に示したように、本実施例においてパッチファイルは、タイトルIDで特定されるパッチディレクトリに格納されている。そこでパス取得部102は、“/patch/ABCTENNIS2”を含むディレクトリを探索し、存在すれば、パッチファイルのパスを取得する。パス取得部102が、パッチファイルのパスを取得すると、パス切替部106が、パッチファイルのディレクトリを参照して、ゲームファイルと比較する。具体的にパス切替部106は、ゲームファイルとパッチファイルの両方に同名のコンテンツが含まれている場合に、ゲームファイルに含まれるコンテンツのパスを、パッチファイルに含まれるコンテンツのパスに設定する。
【0052】
図7を参照して、パス切替部106は、ゲームディレクトリ72に含まれるコンテンツと、パッチディレクトリ74に含まれるコンテンツとを比較して、“boot_game.b”、“data1.dat”、“parameter.a”、“icon0.p”、“game_info.c”が重複していることを判定し、また“pr.b”がパッチディレクトリ74にのみ含まれていることを判定する。パス切替部106は、この判定結果を受けて、仮想的なゲームディレクトリ76を生成する。ゲームディレクトリ76において、“*”をつけたコンテンツは、パッチファイルに含まれているコンテンツを示している。オーバーレイ処理を行う場合、マウント部104は、コンテンツごとにパス情報を設定した対応表を生成する。
【0053】
図10は、マウント部104により生成される対応表を示す。対応表には、プロセスID、タイトルID、コンテンツ、コンテンツのパス情報、およびマウントポイントが対応付けられて記録される。図示されるように、ゲームファイルとパッチファイルとで重複するコンテンツのパス情報には、パッチディレクトリのパス情報が記述されている。なお、マウントポイントは、“GAME0”のままである。このように、マウント部104は、マウントポイントを変えずに対応表を生成することで、あたかもパッチファイルがゲームファイルに上書きされたような仮想ゲームディレクトリ76を、処理部120に提供することができる。これにより処理部120において、ファイルアクセス部124は、アクセスするファイルがゲームファイルに含まれているのか、またはパッチファイルに含まれているのかを意識しないでよく、ファイルアクセス処理を簡易に実行できる。
【0054】
パス取得部102が記憶部130を探索した結果、複数のパッチファイルを見つけた場合、パス取得部102は、パッチファイルのバージョン情報を取得して、最新のバージョンのパッチファイルのパスを取得し、パス切替部106に渡す。なお、複数のパッチファイルのバージョン情報が同じである場合には、パス取得部102は、更新日(インストール日)が新しいパッチファイルのパスを取得する。ゲーム記録メディア70のゲームファイルを実行する場合であって、記憶メディア80およびゲーム記録メディア70のそれぞれに記録されているパッチファイルのバージョン情報が同じである場合には、パス取得部102は、更新日にかかわらず、ゲーム記録メディア70に記録されているパッチファイルのパスを取得することが好ましい。これにより、ファイルアクセス部124が、ゲーム記録メディア70にアクセスすることで、ゲームが実行されるようになる。
【0055】
なお、本実施例の情報処理装置10は、以上のマウント処理の仕組みを利用して、ゲームファイル以外のファイルのパスを仮想的なマウントポイントにマウントすることもできる。
【0056】
情報処理装置10は、データファイル提供サーバ12cからダウンロードした追加データファイルを、記憶部130に格納している。追加データファイルは、“adddata”ディレクトリに格納される。追加データファイルも、ゲームファイルやパッチファイルと同じく、タイトルID(title_id)で特定されるサブディレクトリに格納される。したがって、追加データファイルのディレクトリは、“device:/adddata/(title_id)/”で構成される。
【0057】
処理部120において、ファイルアクセス部124が追加データファイルにアクセスするときには、まずゲームが、追加データマウントAPI処理モジュールを呼び出して、追加データファイルのマウント処理を行わせる。具体的には、追加データマウントAPI処理モジュールが、マウント部104に対して、所望の追加データファイルのマウント処理を指示する。この指示には、プロセスID、ゲームタイトルID、マウントポイントを特定する情報(たとえば“adddata0”)、追加データファイルを特定する情報が含まれる。
【0058】
マウント部104は、追加データマウントAPI処理モジュールからの指示を受けて、指定された追加データファイルのパスを、指示されたマウントポイント“adddata0”にマウントする。これにより、ファイルアクセス部124は、マウントポイント“adddata0”を指定して、所望の追加データファイルにアクセスできる。なお、複数の追加データファイルのパスをマウントするときには、追加データマウントAPI処理モジュールが、マウントポイントを指定する情報を、“adddata1”、“adddata2”などとして、マウントポイントを異ならせることで、ファイルアクセス部124が、所望の追加データファイルにアクセスできる。
【0059】
また、処理部120は、記憶部130の“savedata”ディレクトリに格納されているセーブデータファイルにアクセスできる。セーブデータファイルも、ゲームファイルやパッチファイルと同じく、タイトルID(title_id)で特定されるディレクトリに格納される。したがって、セーブデータファイルのディレクトリは、“device:/savedata/(title_id)/”で構成される。
【0060】
処理部120において、ファイルアクセス部124がセーブデータファイルにアクセスするときには、まずゲームが、セーブデータマウントAPI処理モジュールを呼び出して、セーブデータファイルのマウント処理を行わせる。具体的には、セーブデータマウントAPI処理モジュールが、マウント部104に対して、所望のセーブデータファイルのマウント処理を指示する。この指示には、プロセスID、ゲームタイトルID、マウントポイントを特定する情報(たとえば“savedata0”)、セーブデータファイルを特定する情報が含まれる。
【0061】
マウント部104は、セーブデータマウントAPI処理モジュールからの指示を受けて、指定されたセーブデータファイルのパスを、指示されたマウントポイント“savedata0”にマウントする。これにより、ファイルアクセス部124は、マウントポイント“savedata0”を指定して、所望のセーブデータファイルにアクセスできる。なお、複数のセーブデータファイルのパスをマウントするときには、セーブデータマウントAPI処理モジュールが、マウントポイントを指定する情報を、“savedata1”、“savedata2”などとして、マウントポイントを異ならせることで、ファイルアクセス部124が、所望のセーブデータファイルにアクセスできる。
【0062】
また、処理部120は、他のゲームファイルにもアクセスできる。たとえばABCTENNIS2が、ABCTENNIS2より古いバージョンをもつABCTENNIS1のキャラクタなどを使用できる場合、ABCTENNIS2のsysディレクトリに、ABCTENNIS1を実行するためのパスワードが予め記録されている。このパスワードは、ABCTENNIS1固有のものであり、ABCTENNIS1のsysディレクトリにも記録されている。
【0063】
ABCTENNIS2は、ゲームマウントAPI処理モジュールを呼び出して、他のゲームのマウント処理を行わせる。具体的には、ゲームマウントAPI処理モジュールが、マウント部104に対して、アクセスを希望するゲームファイルのマウント処理を指示する。この指示には、プロセスID、ゲームタイトルID、マウントポイントを特定する情報(たとえば“GAME1”)、他のゲームファイルを特定する情報、および他のゲームファイルのパスワードが含まれる。
【0064】
マウント部104は、ゲームマウントAPI処理モジュールからの指示を受けて、指定されたゲームファイルのパスワードが、指定されたゲームファイルのsysディレクトリに含まれるパスワードと一致しているか判定する。一致していなければ、マウント処理は実行されない。一方、一致していれば、マウント部104は、他のゲームファイルのパスを、指示されたマウントポイント“GAME1”にマウントする。これにより、ファイルアクセス部124は、マウントポイント“GAME1”を指定して、ABCTENNIS1にアクセスできる。このとき、他のゲームファイルのパッチファイルが存在すれば、パス切替部106が、オーバーレイ処理を実行する。これにより、ファイルアクセス部124は、他のゲームファイルにアクセスできるようになる。
【0065】
なお、属性設定部108は、各マウントポイントに対して、属性を設定できる。ここで属性は、アクセス制限に関し、読出専用であるか、または読出/書込可能であるかを特定する。属性設定部108は、“GAME”を含むアクセスポイント、すなわちゲームファイルおよびオーバーレイ処理されたゲームファイルに対して、読出専用の属性を設定する。同様に、属性設定部108は、“adddata”を含むアクセスポイント、すなわち追加データファイルに対して、読出専用の属性を設定する。一方、属性設定部108は、“savedata”を含むアクセスポイント、すなわちセーブデータファイルに対して、読出/書込可能の属性を設定する。ファイルシステム100は、属性設定部108により設定された属性にしたがって、ファイルアクセス部124からのコマンドを処理する。たとえば、“GAME0”のファイルに対して書込要求が送られてきた場合であっても、“GAME0”のファイルには、読出専用の属性が設定されているため、ファイルシステム100は、その要求を拒否する。これにより、ファイルが不正に操作される事態を回避できる。
【0066】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。実施例では、アプリケーションの例としてゲームを示したが、それ以外のアプリケーションであってもよい。
【符号の説明】
【0067】
1・・・情報処理システム、10・・・情報処理装置、12・・・ファイル提供サーバ、20・・・入力装置、40・・・CPU、46・・・ストレージ、62・・・メモリカード制御部、63・・・メディアドライブ、68・・・表示装置、69・・・タッチパネル、70・・・ゲーム記録メディア、72・・・ゲームディレクトリ、74・・・パッチディレクトリ、76・・・ゲームディレクトリ、80・・・記憶メディア、92・・・入力部、94・・・プロセス起動部、100・・・ファイルシステム、102・・・パス取得部、104・・・マウント部、106・・・パス切替部、108・・・属性設定部、110・・・パス変換部、120・・・処理部、122・・・アプリケーション実行部、124・・・ファイルアクセス部、130・・・記憶部。

【特許請求の範囲】
【請求項1】
アプリケーションの実行に用いられるアプリケーションファイルと、パッチファイルとを格納する記憶部と、
前記記憶部のファイルを管理するファイルシステムと、
起動指示を受け付けて、アプリケーションを起動する起動部と、
アプリケーションを実行する処理部と、を備えた情報処理装置であって、
前記ファイルシステムは、
前記起動部がアプリケーションを起動すると、前記記憶部におけるアプリケーションファイルとパッチファイルのパスを取得するパス取得部と、
アプリケーションファイルとパッチファイルの両方に同名のコンテンツが含まれている場合に、アプリケーションファイルに含まれるコンテンツのパスを、パッチファイルに含まれるコンテンツのパスに設定するパス切替部と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記パス取得部において取得したアプリケーションファイルのパスを、仮想的な所定のマウントポイントに対応付けるマウント部と、を有し、
前記パス切替部は、所定のマウントポイントにマウントされたアプリケーションファイルに含まれるコンテンツのパスを、パッチファイルに含まれるコンテンツのパスに設定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
アプリケーションファイルとパッチファイルを格納する記憶部のファイルを管理するファイルシステムであって、
アプリケーションが起動されると、記憶部におけるアプリケーションファイルとパッチファイルのパスを取得するパス取得部と、
アプリケーションファイルとパッチファイルの両方に同名のコンテンツが含まれている場合に、アプリケーションファイルに含まれるコンテンツのパスを、パッチファイルに含まれるコンテンツのパスに設定するパス切替部と、
を備えることを特徴とするファイルシステム。
【請求項4】
コンピュータに、
アプリケーションが起動されると、記憶部におけるアプリケーションファイルとパッチファイルのパスを取得する機能と、
アプリケーションファイルとパッチファイルの両方に同名のコンテンツが含まれている場合に、アプリケーションファイルに含まれるコンテンツのパスを、パッチファイルに含まれるコンテンツのパスに設定する機能と、
を実現させるためのプログラム。
【請求項5】
請求項4に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−155494(P2012−155494A)
【公開日】平成24年8月16日(2012.8.16)
【国際特許分類】
【出願番号】特願2011−13408(P2011−13408)
【出願日】平成23年1月25日(2011.1.25)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】