(57)【特許請求の範囲】
【請求項１】
第１のデバイスを備える第１の情報処理装置と、
前記第１のデバイスと異なる第２のデバイスを備える第２の情報処理装置と、
前記第１のデバイスを制御するための第１デバイス用ドライバプログラムおよび前記第１デバイス用ドライバプログラムが受け取り可能なコマンドを発行して前記第１のデバイスを制御するように作成された第１デバイス利用型アプリケーションプログラムを含む第１デバイス利用型ソフトウェアと、
前記第２のデバイスを制御するための第２デバイス用ドライバプログラムおよび前記第２デバイス用ドライバプログラムが受け取り可能なコマンドを発行して前記第２のデバイスを制御するように作成された第２デバイス利用型アプリケーションプログラムを含む第２デバイス利用型ソフトウェアとを備える情報処理システムであって、
前記第１のデバイスは、前記第２のデバイスと基本的機能は共通しており、かつ、当該第２のデバイスが有していない別の機能も有しており、
前記第１の情報処理装置は、
前記第２デバイス利用型アプリケーションプログラムに基づいて発行される、前記第２のデバイスを制御するためのコマンドを受け取って前記第１のデバイスを制御するためのエミュレーションドライバプログラムを予め格納したエミュレーションドライバプログラム格納手段と、
前記第１デバイス利用型ソフトウェアに含まれている前記第１デバイス利用型アプリケーションプログラムを実行するときに、当該第１デバイス利用型アプリケーションプログラムに基づいて発行される前記第１のデバイスを制御するためのコマンドを当該第１デバイス利用型ソフトウェアに含まれている前記第１デバイス用ドライバプログラムで受け取って前記第１のデバイスを制御しながら当該第１デバイス利用型アプリケーションプログラムを実行し、
前記第２デバイス利用型ソフトウェアに含まれている前記第２デバイス利用型アプリケーションプログラムを実行するときに、前記エミュレーションドライバプログラム格納手段に格納されている前記エミュレーションドライバプログラムを用いて、当該第２デバイス利用型アプリケーションプログラムに基づいて発行される前記第２のデバイスを制御するためのコマンドを当該エミュレーションドライバプログラムで受け取り、前記基本的機能を利用するように当該エミュレーションドライバプログラムに当該第１のデバイスを制御させると共に前記別の機能を利用した制御も更に実行させながら当該第２デバイス利用型アプリケーションプログラムを実行する第１アプリケーション実行手段をさらに備え、
前記第２の情報処理装置は、
前記第２デバイス利用型ソフトウェアに含まれている前記第２デバイス利用型アプリケーションプログラムを実行するときに、当該第２デバイス利用型ソフトウェアに含まれている前記第２デバイス用ドライバプログラムを用いて、当該第２デバイス利用型アプリケーションプログラムに基づいて発行される前記第２のデバイスを制御するためのコマンドを当該第２デバイス用ドライバプログラムで受け取って前記第２のデバイスを制御しながら当該第２デバイス利用型アプリケーションプログラムを実行する、第２アプリケーション実行手段をさらに備える、情報処理システム。
【請求項２】
前記情報処理システムは、前記第１のデバイスを制御するための第１デバイス用ドライバプログラムが受け取り可能なコマンドを発行する第１処理と、前記第２のデバイスを制御するための第２デバイス用ドライバプログラムが受け取り可能なコマンドを発行する第２処理とを選択的に実行可能に作成された選択型アプリケーションプログラムと前記第１デバイス用ドライバプログラムと前記第２デバイス用ドライバプログラムとを含む選択型ソフトウェアをさらに備え、
前記第１アプリケーション実行手段は、前記選択型ソフトウェアに含まれている前記選択型アプリケーションプログラムを実行するときは、当該選択型ソフトウェアに含まれている前記第１デバイス用ドライバプログラムを用いて、前記第１処理と前記第２処理のうち前記第１処理が選択されるようにして、当該第１処理により発行される前記第１のデバイスを制御するためのコマンドを当該第１デバイス用ドライバプログラムで受け取って前記第１のデバイスを制御しながら当該選択型アプリケーションプログラムを実行し、
前記第２アプリケーション実行手段は、前記選択型ソフトウェアに含まれている選択型アプリケーションプログラムを実行するときは、当該選択型ソフトウェアに含まれている前記第２デバイス用ドライバプログラムを用いて、前記第１処理と前記第２処理のうち前記第２処理が選択されるようにして、当該第２処理により発行される前記第２のデバイスを制御するためのコマンドを当該第２デバイス用ドライバプログラムで受け取って前記第２のデバイスを制御しながら当該選択型アプリケーションプログラムを実行する、請求項１に記載の情報処理システム。
【請求項３】
第１のデバイスを備える第１の情報処理装置と、
前記第１のデバイスと異なる第２のデバイスを備える第２の情報処理装置と、
前記第２のデバイスを制御するための第２デバイス用ドライバプログラムおよび前記第２デバイス用ドライバプログラムが受け取り可能なコマンドを発行して前記第２のデバイスを制御するように作成された第２デバイス利用型アプリケーションプログラムを含む第２デバイス利用型ソフトウェアと、
前記第１のデバイスを制御するための第１デバイス用ドライバプログラムが受け取り可能なコマンドを発行する第１処理と、前記第２のデバイスを制御するための第２デバイス用ドライバプログラムが受け取り可能なコマンドを発行する第２処理とを選択的に実行可能に作成された選択型アプリケーションプログラムと前記第１デバイス用ドライバプログラムと前記第２デバイス用ドライバプログラムとを含む選択型ソフトウェアとを備える情報処理システムであって、
前記第１のデバイスは、前記第２のデバイスと基本的機能は共通しており、かつ、当該第２のデバイスが有していない別の機能も有しており、
前記第１の情報処理装置は、
前記第２デバイス利用型アプリケーションプログラムに基づいて発行される、前記第２のデバイスを利用するためのコマンドを受け取って前記第１のデバイスを制御するためのエミュレーションドライバプログラムを予め格納したエミュレーションドライバプログラム格納手段と、
前記第２デバイス利用型ソフトウェアに含まれている前記第２デバイス利用型アプリケーションプログラムを実行するときは、前記エミュレーションドライバプログラム格納手段に格納されている前記エミュレーションドライバプログラムに前記基本的機能を利用するように前記第１のデバイスを制御させると共に前記別の機能を利用した制御も更に実行させながら当該第２デバイス利用型アプリケーションプログラムを実行し、前記選択型ソフトウェアに含まれている前記選択型アプリケーションプログラムを実行するときは、当該選択型ソフトウェアに含まれている前記第１デバイス用ドライバプログラムを用いて、前記第１処理と前記第２処理のうち前記第１処理が選択されるようにして、当該第１処理により発行される前記第１のデバイスを制御するためのコマンドを当該第１デバイス用ドライバプログラムで受け取って前記第１のデバイスを制御しながら当該選択型アプリケーションプログラムを実行する第１アプリケーション実行手段を備え、
前記第２の情報処理装置は、
前記第２デバイス利用型ソフトウェアに含まれている前記第２デバイス利用型アプリケーションプログラムを実行するときは、当該第２デバイス利用型ソフトウェアに含まれている前記第２デバイス用ドライバプログラムを用いて前記第２のデバイスを制御しながら当該第２デバイス利用型アプリケーションプログラムを実行し、前記選択型ソフトウェアに含まれている選択型アプリケーションプログラムを実行するときは、当該選択型ソフトウェアに含まれている前記第２デバイス用ドライバプログラムを用いて、前記第１処理と前記第２処理のうち前記第２処理が選択されるようにして、当該第２処理により発行される前記第２のデバイスを制御するためのコマンドを当該第２デバイス用ドライバプログラムで受け取って前記第２のデバイスを制御しながら当該選択型アプリケーションプログラムを実行する第２アプリケーション実行手段とを備える、情報処理システム。
【請求項４】
前記第１の情報処理装置は、
前記第１のデバイスを介して所定のサーバからエミュレーションドライバ更新プログラムを取得するためのダウンロード手段と、
前記エミュレーションドライバプログラム格納手段のエミュレーションドライバプログラムを前記ダウンロード手段が取得したエミュレーションドライバ更新プログラムで更新するための更新手段とを更に備える、請求項１または３に記載の情報処理システム。
【請求項５】
前記エミュレーションドライバプログラムは、前記受け取った前記第２のデバイスを制御するためのコマンドを前記第１のデバイスを制御するための前記第１デバイス用ドライバプログラムが受け取り可能なコマンドに変換し、当該変換後のコマンドに基づいて前記第１のデバイスを制御する、請求項１または３に記載の情報処理システム。
【請求項６】
前記第１および第２の情報処理装置は、ゲーム装置であり、
前記第１のデバイスおよび第２のデバイスは、無線通信を行うための無線通信デバイスであり、
前記第２デバイス利用型アプリケーションプログラムは、前記第２のデバイスを用いる無線通信を利用したゲーム処理を行うゲームプログラムである、請求項１または３に記載の情報処理システム。
【請求項７】
前記第１のデバイスは、前記別の機能によって、前記第２のデバイスよりも無線通信にかかる消費電力が少ない、請求項６に記載の情報処理システム。
【請求項８】
前記第１のデバイスおよび前記第２のデバイスは、通信を行うための通信デバイスであり、
当該第２のデバイスの少なくとも１つの通信機能は、当該第１のデバイスの通信機能との間で通信不可能であり、
前記第１の情報処理装置は、前記第２のデバイスをさらに備え、
前記第１アプリケーション実行手段は、前記第２デバイス利用型ソフトウェアに含まれている前記第２デバイス利用型アプリケーションプログラムを実行するとき、当該第２デバイス利用型ソフトウェアに含まれている前記第２デバイス用ドライバプログラムを用いて前記第２のデバイスを制御しながら当該第２デバイス利用型アプリケーションプログラムを実行する、請求項１または３に記載の情報処理システム。
【請求項９】
前記第１のデバイスおよび第２のデバイスは、無線通信を行うための無線通信デバイスであり、
前記第２のデバイスは、前記第１あるいは第２の情報処理装置同士で直接通信を行う第１の通信モードおよび所定のサーバと通信を行う第２の通信モードを有し、
前記第１アプリケーション実行手段は、前記第１の通信モードを利用するときは前記第２のデバイスを用い、前記第２の通信モードを利用するときは前記第１のデバイスを用いる、請求項８に記載の情報処理システム。
【請求項１０】
第１のデバイスを備える第１の情報処理装置と、前記第１のデバイスと異なる第２のデバイスを備える第２の情報処理装置と、前記第２のデバイスを制御するためのドライバプログラムおよび当該ドライバプログラムが受け取り可能なコマンドを発行して前記第２のデバイスを制御するように作成されたアプリケーションプログラムを含む所定のソフトウェアとを備える情報処理システムにおける、前記第１の情報処理装置であって、
前記第１のデバイスは、前記第２のデバイスと基本的機能は共通しており、かつ、当該第２のデバイスが有していない別の機能も有しており、
前記アプリケーションプログラムに基づいて発行される、前記第２のデバイスを利用するためのデバイス利用命令を受け取って前記第１のデバイスを制御するためのエミュレーションドライバプログラムを予め格納したエミュレーションドライバプログラム格納手段をさらに備え、
前記所定のソフトウェアに含まれる前記アプリケーションプログラムを実行するときに、前記エミュレーションドライバプログラム格納手段に格納されている前記エミュレーションドライバプログラムを用いて、当該アプリケーションプログラムに基づいて発行される前記第２のデバイスを制御するためのコマンドを当該エミュレーションドライバプログラムで受け取り、前記基本的機能を利用するように当該エミュレーションドライバプログラムに当該第１のデバイスを制御させると共に前記別の機能を利用した制御も更に実行させながら当該アプリケーションプログラムを実行するアプリケーション実行手段を備える、情報処理装置。
【請求項１１】
第２のデバイスとは異なる第１のデバイスを有する情報処理装置のコンピュータに実行させるエミュレーションプログラムであって、
前記第２のデバイスを制御するためのドライバプログラムが受け取り可能なコマンドを発行して当該所定のデバイスを制御するように作成されたアプリケーションプログラムからコマンドを受け取って、当該コマンドを前記第１のデバイスを制御するためのドライバプログラムのコマンドに変換する変換手段として前記コンピュータを機能させ、
前記第１のデバイスは、前記第２のデバイスと共通する基本的機能と、当該第２のデバイスが有していない別の機能とを有しており、前記別の機能を利用した制御も更に実行させながら前記基本的機能を利用する制御が実行されるものであり、
前記変換手段は、前記基本的機能を利用するようなコマンドに前記ドライバプログラムのコマンドの変換を行う、エミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１の情報処理装置と当該第１の情報処理装置との互換性を有する第２の情報処理装置を備える情報処理システムに関し、より特定的には、第２の情報処理装置上で第１の情報処理装置向けに作成されたソフトウェアを実行するときの実行制御に関する。
【背景技術】
【０００２】
従来から、既存のエンタテインメント装置との互換性を有するエンタテインメント装置が知られている（例えば、特許文献１）。当該エンタテインメント装置（以下、上位機種）は、第１のモードと第２のモードの２つの動作モードを有する。第１のモードは、当該装置について通常の動作を行う通常モードであり、第２のモードは、他機種との互換性を想定して動作する互換モードである。そして、当該上位機種は、通常は、通常モードで起動され、通常モードで動作する。しかし、当該上位機種は、既存のエンタテインメント装置（以下、下位機種）用のタイトル（ソフトウェア）を実行するときは、互換モードに移行する。
【０００３】
当該上位機種では、ＭＰＵ（メインプロセシングユニット）及びＧＰ（グラフィックスプロセッサ）を有する第１のプロセッサ手段と、ＩＯＰ（入出力用サブプロセッサ）を有する第２のプロセッサ手段とが存在する。そして、通常モードでは、第１のプロセッサ手段がメインＣＰＵおよび描画プロセッサとして機能すると共に、第２のプロセッサ手段がＩ／Ｏプロセッサとして機能する。一方、互換モードでは、第２のプロセッサ手段がメインＣＰＵとして機能するとともに、第１のプロセッサ手段が描画プロセッサとして機能する。ここで、第２のプロセッサ手段は、下位機種のＣＰＵと同一なプロセッサ・コアである。そのため、第２のプロセッサ手段は、下位機種のＣＰＵ用に用意されたプログラム・コードをそのまま実行でき、同じ動作を行うことが可能である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−３１４６４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したような上記特許文献１に開示されたエンタテインメント装置においては、以下に示す問題点があった。上記のような上位機種において、互換モードで下位機種のタイトル（ソフトウェア）を実行するときは、下位機種と同じプロセッサコアをメインＣＰＵとして使うため、下位機種と同じ動作を行うことが可能であり、互換性は十分に確保されている。しかし、このような互換モードで下位機種のソフトを動かすとき、上位機種において新たに追加されている新機能を利用することはできなかった。
【０００６】
それ故に、本発明の目的は、下位機種と互換性のある上位機種において下位機種のソフトを動作させる際に、上位機種に搭載されているデバイスも利用可能とする情報処理システムを提供することである。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係の一例を示したものであって、本発明を何ら限定するものではない。
【０００８】
第１の発明は、第１のデバイス（３５）を備える第１の情報処理装置（１０）と、第１のデバイスと異なる第２のデバイス（３６）を備える第２の情報処理装置（５０）と、第１のデバイスを制御するための第１デバイス用ドライバプログラム（１７５）および第１
デバイス用ドライバプログラムが受け取り可能なコマンドを発行して第１のデバイスを制御するように作成された第１デバイス利用型アプリケーションプログラム（１７６）を含む第１デバイス利用型ソフトウェアと、第２のデバイスを制御するための第２デバイス用ドライバプログラム（１７３）および第２デバイス用ドライバプログラムが受け取り可能なコマンドを発行して第２のデバイスを制御するように作成された第２デバイス利用型アプリケーションプログラム（１７２）を含む第２デバイス利用型ソフトウェアとを備える情報処理システムであって、第１の情報処理装置は、エミュレーションドライバプログラム格納手段（３７）と、第１アプリケーション実行手段（２１）をさらに備える。エミュレーションドライバプログラム格納手段は、第２デバイス利用型アプリケーションプログラムに基づいて発行される、第２のデバイスを制御するためのコマンドを受け取って第１のデバイスを制御するためのエミュレーションドライバプログラム（３７２）を予め格納する。第１アプリケーション実行手段は、第１デバイス利用型ソフトウェアに含まれている第１デバイス利用型アプリケーションプログラムを実行するときに、当該第１デバイス利用型アプリケーションプログラムに基づいて発行される第１のデバイスを制御するためのコマンドを当該第１デバイス利用型ソフトウェアに含まれている第１デバイス用ドライバプログラムで受け取って第１のデバイスを制御しながら当該第１デバイス利用型アプリケーションプログラムを実行し、第２デバイス利用型ソフトウェアに含まれている第２デバイス利用型アプリケーションプログラムを実行するときに、エミュレーションプログラム格納手段に格納されているエミュレーションドライバプログラムを用いて、当該第２デバイス利用型アプリケーションプログラムに基づいて発行される第２のデバイスを制御するためのコマンドを当該エミュレーションドライバプログラムで受け取って第１のデバイスを制御しながら当該第２デバイス利用型アプリケーションプログラムを実行する。また、第２の情報処理装置は、第２デバイス利用型ソフトウェアに含まれている第２デバイス利用型アプリケーションプログラムを実行するときに、当該第２デバイス利用型ソフトウェアに含まれている第２デバイス用ドライバプログラムを用いて、当該第２デバイス利用型アプリケーションプログラムに基づいて発行される第２のデバイスを制御するためのコマンドを当該第２デバイス用ドライバプログラムで受け取って第２のデバイスを制御しながら当該第２デバイス利用型アプリケーションプログラムを実行する、第２アプリケーション実行手段をさらに備える。
【０００９】
ここで、第２デバイスは第１デバイスと異なるデバイスである。ここで、「異なる」とは、（ａ）機能自体が異なる場合と、（ｂ）機能は同一で性能が異なる場合のいずれでもよい。例えば、以下のような例が挙げられる。
（ａ）の例：
（１）一方のデバイスが有線通信デバイスで他方のデバイスが無線通信デバイス
（２）一方のデバイスが加速度センサで他方のデバイスがマイク（この場合、例えば、加速度センサに対する加速度の大きさ取得命令を、マイクデバイスに対する音量取得命令に対応させる）
（３）一方のデバイスがマウスで、他方のデバイスがタッチパネル
（４）一方のデバイスがカメラで他方のデバイスがスキャナー
（５）一方のデバイスがカメラで他方のデバイスがマイク（この場合、例えば、カメラデバイスに対する明るさ取得命令を、マイクデバイスに対する音量取得命令に対応させる）
など
（ｂ）の例：
（１）いずれも無線通信デバイスで、通信スピードや消費電力の点で性能が異なる
（２）いずれもタッチパネルで、分解能やノイズなどの点で性能が異なる
（３）いずれも表示デバイスで、色数などの点で性能が異なる
など
なお、これらの例は、本願発明が後述の実施例に限定されないことを具体的に示すためのものであって、本願発明はこれらの例に限定されるわけではない。
【００１０】
そして、上記第１の情報処理装置は、第１デバイス利用型アプリケーションプログラムおよび第２デバイス利用型アプリケーションプログラムを実行可能な処理手段を有している（第１アプリケーション実行手段）。第２の情報処理装置は、第２デバイス利用型アプリケーションプログラムを実行可能な処理手段を有している（第２アプリケーション実行手段）。すなわち、第１の情報処理装置の処理手段は、第２の情報処理装置の処理手段と同じ処理手段かまたは互換性のある処理手段である。第１の情報処理装置の処理手段と第２の情報処理装置の処理手段が同じ場合、第１デバイス利用型アプリケーションプログラムと第２デバイス利用型アプリケーションプログラムは当該処理手段で動作するように作成される。第１の情報処理装置の処理手段と第２の情報処理装置の処理手段が互換性を有する場合、第１デバイス利用型アプリケーションプログラムは第１の情報処理装置の処理手段で動作するように作成され、第２デバイス利用型アプリケーションプログラムは第２の情報処理装置の処理手段で動作するように作成される。
【００１１】
また、第１の情報処理装置は、第２の情報処理装置が発売された後に設計されて発売されるものであってもよい。なぜなら、第１の情報処理装置は、エミュレーションドライバプログラム格納手段を備えるため、第２の情報処理装置が備える第２のデバイスを前提として作成された第２デバイス利用型ソフトウェアであっても、エミュレーションドライバプログラムにより、第１のデバイスを用いて第１の情報処理装置で実行させることが可能だからである。特に、第２の情報処理装置の発売の後、当該第２の情報処理装置が備える第２のデバイスを高性能にした第１のデバイスを第１の情報処理装置を搭載して高性能機種として発売するときに、本願発明を用いることができ、第２のデバイスを前提として作成された第２の情報処理装置用のソフトウェアを、第１の情報処理装置で第１のデバイスを使って実行することが可能になる。ただし、第２の情報処理装置の発売の後、当該第２の情報処理装置が備える第２のデバイスをコストダウン等の目的で低性能にした第１のデバイスを第１の情報処理装置を搭載してコストダウン版機種として発売するときにも本願発明が適用できることは言うまでも無い。
【００１２】
第１の発明によれば、第２の情報処理装置と互換性を有する第１の情報処理装置で、第２のデバイスの利用を前提とした第２デバイス利用型アプリケーションプログラムを実行するときに、第１の情報処理装置が備える第１のデバイスを利用して第２デバイス利用型アプリケーションプログラムを実行することが可能となる。
【００１３】
第２の発明は、第１の発明において、情報処理システムは、第１のデバイスを制御するための第１デバイス用ドライバプログラムが受け取り可能なコマンドを発行する第１処理と、第２のデバイスを制御するための第２デバイス用ドライバプログラムが受け取り可能なコマンドを発行する第２処理とを選択的に実行可能に作成された選択型アプリケーションプログラムと第１デバイス用ドライバプログラムと第２デバイス用ドライバプログラムとを含む選択型ソフトウェアをさらに備える。また、第１アプリケーション実行手段は、選択型ソフトウェアに含まれている選択型アプリケーションプログラムを実行するときは、当該選択型ソフトウェアに含まれている第１デバイス用ドライバプログラムを用いて、第１処理と第２処理のうち第１処理が選択されるようにして、当該第１処理により発行される第１のデバイスを制御するためのコマンドを当該第１デバイス用ドライバプログラムで受け取って第１のデバイスを制御しながら当該選択型アプリケーションプログラムを実行する。また、第２アプリケーション実行手段は、選択型ソフトウェアに含まれている選択型アプリケーションプログラムを実行するときは、当該選択型ソフトウェアに含まれている第２デバイス用ドライバプログラムを用いて、第１処理と第２処理のうち第２処理が選択されるようにして、当該第２処理により発行される第２のデバイスを制御するためのコマンドを当該第２デバイス用ドライバプログラムで受け取って第２のデバイスを制御しながら当該選択型アプリケーションプログラムを実行する。
【００１４】
第２の発明によれば、選択型ソフトウェアに含まれるドライバプログラムを用いて第１のデバイス、あるいは第２のデバイスを制御するため、例えば、エミュレーションドライバプログラム格納手段に格納されているドライバよりも、バージョンが新しく、より最適化されたドライバプログラムを利用することが可能となる。
【００１５】
第３の発明は、第１のデバイス（３５）を備える第１の情報処理装置（１０）と、第１のデバイスと異なる第２のデバイス（３６）を備える第２の情報処理装置と、第２デバイス利用型ソフトウェアと、選択型ソフトウェアとを唱える情報処理システムであって、第２デバイス利用型ソフトウェアは、第２のデバイスを制御するための第２デバイス用ドライバプログラム（１７３）および第２デバイス用ドライバプログラムが受け取り可能なコマンドを発行して第２のデバイスを制御するように作成された第２デバイス利用型アプリケーションプログラム（１７２）を含み、選択型ソフトウェアは、第１のデバイスを制御するための第１デバイス用ドライバプログラムが受け取り可能なコマンドを発行する第１処理と、第２のデバイスを制御するための第２デバイス用ドライバプログラムが受け取り可能なコマンドを発行する第２処理とを選択的に実行可能に作成された選択型アプリケーションプログラム（１７４）と第１デバイス用ドライバプログラムと第２デバイス用ドライバプログラムとを含む。また、第１の情報処理装置は、エミュレーションドライバプログラム格納手段（３７）と、第１アプリケーション実行手段（２１）を備える。エミュレーションドライバプログラム格納手段は、第２デバイス利用型アプリケーションプログラムに基づいて発行される、第２のデバイスを利用するためのコマンドを受け取って第１のデバイスを制御するためのエミュレーションドライバプログラムを予め格納する。第１アプリケーション実行手段は、第２デバイス利用型ソフトウェアに含まれている第２デバイス利用型アプリケーションプログラムを実行するときは、エミュレーションプログラム格納手段に格納されているエミュレーションドライバプログラムを用いて第１のデバイスを制御しながら当該第２デバイス利用型アプリケーションプログラムを実行し、選択型ソフトウェアに含まれている選択型アプリケーションプログラムを実行するときは、当該選択型ソフトウェアに含まれている第１デバイス用ドライバプログラムを用いて、第１処理と第２処理のうち第１処理が選択されるようにして、当該第１処理により発行される第１のデバイスを制御するためのコマンドを当該第１デバイス用ドライバプログラムで受け取って第１のデバイスを制御しながら当該選択型アプリケーションプログラムを実行する。また、第２の情報処理装置は、第２デバイス利用型ソフトウェアに含まれている第２デバイス利用型アプリケーションプログラムを実行するときは、当該第２デバイス利用型ソフトウェアに含まれている第２デバイス用ドライバプログラムを用いて第２のデバイスを制御しながら当該第２デバイス利用型アプリケーションプログラムを実行し、選択型ソフトウェアに含まれている選択型アプリケーションプログラムを実行するときは、当該選択型ソフトウェアに含まれている第２デバイス用ドライバプログラムを用いて、第１処理と第２処理のうち第２処理が選択されるようにして、当該第２処理により発行される第２のデバイスを制御するためのコマンドを当該第２デバイス用ドライバプログラムで受け取って第２のデバイスを制御しながら当該選択型アプリケーションプログラムを実行する第２アプリケーション実行手段をさらに備える。
【００１６】
第３の発明によれば、第１の情報処理装置で、第２デバイス利用型アプリケーションプログラムを実行するときに、第１の情報処理装置が備える第１のデバイスを利用して第２デバイス利用型アプリケーションプログラムを実行することが可能となる。また、選択型アプリケーションプログラムを実行するときは、選択型ソフトウェアに含まれるドライバプログラムを用いて第１のデバイス、あるいは第２のデバイスを制御するため、より最適化されたドライバプログラムを利用することが可能となる。
【００１７】
第４の発明は、第１または第３の発明において、第２のデバイスは、第１のデバイスと共通の機能を有し、第１のデバイスの機能と第２のデバイスの機能とは性能が異なる。
【００１８】
第４の発明によれば、性能の異なる第１のデバイスを第２のアプリケーションにおいて利用することが可能となる。
【００１９】
第５の発明は、第１の発明において、第１の情報処理装置は、第１のデバイスを介して所定のサーバからエミュレーションドライバ更新プログラムを取得するためのダウンロード手段（３６）と、エミュレーションドライバプログラム格納手段のエミュレーションドライバプログラムをダウンロード手段が取得したエミュレーションドライバプログラムで更新するための更新手段（２１）とを更に備える。
【００２０】
第５の発明によれば、エミュレーションドライバプログラム格納手段に、常に最適化されたドライバを格納しておくことが可能となる。
【００２１】
第６の発明は、第１または第３の発明において、エミュレーションドライバプログラムは、受け取ったデバイスを制御するためのコマンドを第１のデバイス制御するための命令に変換し、当該変換後の命令に基づいて第２のデバイスを制御する。
【００２２】
第６の発明によれば、第２デバイス利用型アプリケーションプログラムでは本来利用できない第１のデバイスの機能を利用しながら第２デバイス利用型アプリケーションプログラムを実行することが可能となる。
【００２３】
第７の発明は、第１の発明において、第１および第２の情報処理装置は、ゲーム装置である。また、第１のデバイスおよび第２のデバイスは、無線通信を行うための無線通信デバイスである。更に、第１デバイス利用型アプリケーションプログラムは、第１のデバイスを用いる無線通信を利用したゲーム処理を行うゲームプログラムである。
【００２４】
第７の発明によれば、第１の情報処理装置向けに作成されたゲームを、第２の情報処理装置上で第２の無線通信デバイスを利用しながら実行することが可能となる。
【００２５】
第８の発明は、第５の発明において、第１のデバイスは、第２のデバイスよりも無線通信にかかる消費電力が少ない。
【００２６】
第８の発明によれば、第２の情報処理装置向けに作成されたゲームを第１の情報処理装置で実行するときに、より省電力で実行することが可能となる。
【００２７】
第９の発明は、第１または第３の発明において、第１のデバイスおよび第２のデバイスは、通信を行うための通信デバイスであり、当該第２のデバイスの少なくとも１つの通信機能は、当該第１のデバイスの通信機能との間で通信不可能である。また、第１の情報処理装置は、第２のデバイスをさらに備える。そして、第１アプリケーション実行手段は、第２デバイス利用型ソフトウェアに含まれている第２デバイス利用型アプリケーションプログラムを実行するとき、第２デバイス利用型ソフトウェアに含まれている第２デバイス用ドライバプログラムを用いて第２のデバイスを制御しながら当該第２デバイス利用型アプリケーションプログラムを実行する。
【００２８】
第１０の発明は、第７の発明において、第１のデバイスおよび第２のデバイスは、無線通信を行うための無線通信デバイスである。また、第２のデバイスは、第１あるいは第２の情報処理装置同士で直接通信を行う第１の通信モードおよび所定のサーバと通信を行う第２の通信モードを有する。そして、第１アプリケーション実行手段は、第１の通信モードを利用するときは第２のデバイスを用い、第２の通信モードを利用するときは第１のデバイスを用いる。
【００２９】
第９乃至第１０の発明によれば、第２の情報処理装置で第１の情報処理装置向けのアプリケーションプログラムを実行するときに、より互換性を高めることが可能となる。
【００３０】
第１１の発明は、第１のデバイスを備える第１の情報処理装置と、第１のデバイスと異なる第２のデバイスを備える第２の情報処理装置と、第２のデバイスを制御するためのドライバプログラムおよび当該ドライバプログラムが受け取り可能なコマンドを発行して第２のデバイスを制御するように作成されたアプリケーションプログラムを含む所定のソフトウェアとを備える情報処理システムにおける、第１の情報処理装置であって、エミュレーションドライバプログラム格納手段と、アプリケーション実行手段とを備える。エミュレーションドライバプログラム格納手段は、アプリケーションプログラムに基づいて発行される、第２のデバイスを利用するためのデバイス利用命令を受け取って第１のデバイスを制御するためのエミュレーションドライバプログラムを予め格納する。また、アプリケーション実行手段は、所定のソフトウェアに含まれるアプリケーションプログラムを実行するときに、エミュレーションプログラム格納手段に格納されているエミュレーションドライバプログラムを用いて、当該アプリケーションプログラムに基づいて発行される第２のデバイスを制御するためのコマンドを当該エミュレーションドライバプログラムで受け取って第１のデバイスを制御しながら当該アプリケーションプログラムを実行する。
【００３１】
第１１の発明によれば、第１の情報処理装置において第２の情報処理装置向けに作成されたアプリケーションを実行するときに、第１のデバイスを利用しながら当該アプリケーションを実行することが可能となる。
【００３２】
第１２の発明は、所定のデバイスを制御するためのドライバプログラムが受け取り可能なコマンドを発行して当該所定のデバイスを制御するように作成されたアプリケーションプログラムからコマンドを受け取って、当該コマンドを所定のデバイスと異なるデバイスを制御するためのドライバプログラムのコマンドに変換するエミュレーションプログラムである。
【００３３】
第１２の発明によれば、所定のデバイスを意識して作成されたアプリケーションプログラムを、当該所定のデバイスとは別のデバイスを用いて同様の動作を実行させることが可能となる。
【００３４】
第１３の発明は、少なくとも第１の機能を有する第１のデバイスおよび前記第１機能と当該第１機能と異なる第２機能とを有する第２のデバイスを備える情報処理装置において実行されるエミュレーションドライバプログラムである。第１のデバイスの第１機能は、第２のデバイスの第１機能よりも高性能である。また、エミュレーションドライバプログラムは、第１デバイス制御ステップと第２デバイス制御ステップとを情報処理装置の処理手段に実行させる。第１デバイス制御ステップは、第２のデバイスを制御するためのドライバプログラムが受け取り可能なコマンドを発行して当該第２のデバイスを制御するように作成されたアプリケーションプログラムからコマンドを受け取り、当該受け取ったコマンドが第２のデバイスの第１機能を制御するための第１機能制御命令であるときに、受け取った第１機能制御命令を第１のデバイスの第１機能を制御する命令に変換し、当該変換後の命令に基づいて第１のデバイスを制御する。第２デバイス制御ステップは、当該受け取ったコマンドが第２のデバイスの第２機能を利用するための第２機能制御命令であるときに、当該第２機能制御命令に基づいて第２のデバイスを制御する。
【００３５】
第１３の発明によれば、第２のデバイスを利用することを想定して作成されたアプリケーションプログラムを、より高性能な第１のデバイスを利用しながら実行することが可能となる。
【発明の効果】
【００３６】
本発明によれば、後発の上位機種において従来機種のソフトウェアを実行する際に、従来機種との互換性を保ちながら、上位機種で新たに搭載されたデバイスを利用することが可能となる。
【図面の簡単な説明】
【００３７】
【図１】本発明の実施形態に係る上位機種１０のブロック図
【図２】本発明の実施形態に係る下位機種５０ののブロック図
【図３】下位機種用カードとして用いられる場合のメモリカード１７のＲＯＭ１７ａのメモリ空間を図解的に示したメモリマップ
【図４】両対応カードとして用いられる場合のメモリカード１７のＲＯＭ１７ａのメモリ空間を図解的に示したメモリマップ
【図５】上位機種用カードとして用いられる場合のメモリカード１７のＲＯＭ１７ａのメモリ空間を図解的に示したメモリマップ
【図６】図１のフラッシュメモリ３７のメモリ空間を図解的に示したメモリマップ
【図７】本実施形態で想定する処理の概要を説明するための図
【図８】本実施形態で想定する処理の概要を説明するための図
【図９】本実施形態で想定する処理の概要を説明するための図
【図１０】本実施形態で想定する処理の概要を説明するための図
【図１１】本実施形態で想定する処理の概要を説明するための図
【図１２】本実施形態で想定する処理の概要を説明するための図
【図１３】本実施形態で想定する処理の概要を説明するための図
【図１４】上位機種１０のゲーム起動処理の流れを示すフローチャート
【図１５】「エミュレータモード」で動作しているときのゲーム処理の流れを示すフローチャート
【発明を実施するための形態】
【００３８】
次に、図１を参照して本実施形態にかかる第１の携帯型ゲーム装置１０（本願発明における「第１の情報処理装置」）の構成を説明する。なお、第１の携帯型ゲーム装置１０は、後述する第２の携帯型ゲーム装置５０（本願発明における「第２の情報処理装置」）との互換性を有し、かつ、性能を向上させたものである。そのため、以下の説明では、第１の携帯型ゲーム装置１０を上位機種１０と呼び、第２の携帯型ゲーム装置５０を下位機種５０と呼ぶ。
【００３９】
図１は、上位機種１０の構成を示すブロック図である。図１において、上位機種１０は、電子回路基板２０を備える。電子回路基板２０には、ＣＰＵコア２１が実装される。当該ＣＰＵコア２１は、後述する下位機種５０のＣＰＵコア５１と互換性を有しており、ＣＰＵコア５１よりも処理能力が高いものである。換言すれば、上位機種１０のＣＰＵコア２１は、下位機種５０のＣＰＵコア５１と互換性を有する上位のＣＰＵという位置づけにある。より具体的には、上位機種１０のＣＰＵコア２１は、下位機種５０のＣＰＵコア５１と同等の動作をする互換モードと、より高い処理能力（動作クロックや専用命令など）を有する専用モードのいずれかを選択的に実行可能である。
【００４０】
ＣＰＵコア２１には、バス２２を介して、コネクタ２３が接続されるとともに、入出力インターフェース回路（図面ではＩ／Ｆ回路と記す）２５、第１ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２６、第２ＧＰＵ２７、ＲＡＭ２４、およびＬＣＤコントローラ３１、第１のワイヤレス通信部３５、および第２のワイヤレス通信部３６が接続される。コネクタ２３には、後述するようなメモリカード１７が着脱自在に接続される。ＲＡＭ２４には、メモリカード１７から読み込まれるゲームプログラムや、ＣＰＵコア２１がゲームプログラムを実行して得られる一時的なデータや、ゲーム画像を生成するためのデータ等が記憶される。なお、ＲＡＭ２４に読み込まれるゲームプログラム等に関しては、本発明の特徴の一つでもあるため、別途後述する。
【００４１】
Ｉ／Ｆ回路２５には、タッチパネル１５、右スピーカ３０ａ、左スピーカ３０ｂ、図１の十字スイッチ１４ａやＡボタン１４ｄ等から成る操作スイッチ部１４、およびマイクロフォン３３が接続される。
【００４２】
第１ＧＰＵ２６には、第１ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）２８が接続され、第２ＧＰＵ２７には、第２ＶＲＡＭ２９が接続される。第１ＧＰＵ２６は、ＣＰＵコア２１からの指示に応じて、ＲＡＭ２４に記憶されているゲーム画像を生成するためのデータに基づいて第１のゲーム画像を生成し、第１ＶＲＡＭ２８に描画する。第２ＧＰＵ２７は、同様にＣＰＵコア２１からの指示に応じて第２のゲーム画像を生成し、第２ＶＲＡＭ２９に描画する。第１ＶＲＡＭ２８および第２ＶＲＡＭ２９はＬＣＤコントローラ３１に接続されている。
【００４３】
ＬＣＤコントローラ３１はレジスタ３２を含む。レジスタ３２はＣＰＵコア２１からの指示に応じて０または１の値を記憶する。ＬＣＤコントローラ３１は、レジスタ３２の値が０の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第１のＬＣＤ１１に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第２のＬＣＤ１２に出力する。また、レジスタ３２の値が１の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第２のＬＣＤ１２に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第１のＬＣＤ１１に出力する。
【００４４】
第１のワイヤレス通信部３５および第２のワイヤレス通信部３６は、他のゲーム装置や所定のアクセスポイントを経由したサーバ等との間で無線通信を行う機能を有しており、例えば、ゲーム処理に利用されるデータやその他のデータをやりとりする。具体的には、上位機種１０は、以下の通信が可能である。
（１）他の上位機種１０との間で直接通信（後述のローカル通信）
（２）下位機種５０との間で直接通信（後述のローカル通信）
（３）アクセスポイントを経由してサーバ等との間で通信
なお、上記（１）（２）の通信は、第２のワイヤレス通信部３６を用いて行なわれ、上記（３）の通信は、第１のワイヤレス通信部３５を用いて行なわれる。上記（１）の通信が第２のワイヤレス通信部３６を用いて行なわれる理由は、後述するように第１のワイヤレス通信部３５用が後述のローカル通信に対応していないためである。また、上記（２）の通信が第２のワイヤレス通信部３６を用いて行なわれる理由は、後述の通り、下位機種５０は第１のワイヤレス通信部３５を有しておらず、また、第１のワイヤレス通信部３５と第２のワイヤレス通信部３６は互いに直接的に通信することができないためである。なお、第１のワイヤレス通信部３５用がローカル通信に対応するように作成すれば、上記（１）の通信は第１のワイヤレス通信部３５を用いておこなうことが可能である。
【００４５】
また、第１のワイヤレス通信部３５と第２のワイヤレス通信部３６は、主に以下の点で、その機能が異なっている。
（１）通信速度；第１のワイヤレス通信部３５は、第２のワイヤレス通信部３６よりも高速な無線通信が可能である。
（２）実装されているセキュリティ技術；無線ＬＡＮの暗号化方式の技術について、第１のワイヤレス通信部３５は、第２のワイヤレス通信部３６よりも強固な技術が採用されている。より具体的には、第２のワイヤレス通信部３６がいわゆるＷＥＰ（Wired Equivalent Privacy）を採用しているのに対し、第１のワイヤレス通信部３５は、よりセキュリティ強度が向上しているＷＰＡ（Wi-Fi Protected Access）とＷＥＰの両方を採用しており、いずれかを選択可能にしている。
（３）省電力機能の有無；第２のワイヤレス通信部３６には、省電力機能は実装されていない。そのため、第２のワイヤレス通信部３６では、当該第２のワイヤレス通信部３６が活性化（無線ＬＡＮ等に接続されている状態）されていれば、ゲームデータの送受信が実際には発生していないとき（アイドル状態）であっても、ゲームデータの送受信が行われるときと同じ電力が消費される。つまり、活性化されていれば、常に一定量の電力が消費される。これに対して、第１のワイヤレス通信部３５では、省電力機能が実装されており、データの送受信が実際に行われていないアイドル状態のときは、実際にデータの送受信を行うときに比べて電力の消費を抑えることが可能となっている。
（４）ローカル通信機能の有無：第２のワイヤレス通信部３６はローカル通信に対応しているが、第１のワイヤレス通信部３５はローカル通信に対応していない。このため、第１のワイヤレス通信部３５と第２のワイヤレス通信部３６は互いに直接的に通信をおこなうことができない。
【００４６】
ここで、第２のワイヤレス通信部３６は、後述する下位機種５０に搭載されているワイヤレス通信部３６と同じものである。すなわち、第１ゲーム機に当該第２のワイヤレス通信部３６を搭載する主な理由は、下位機種５０との互換性を確保するためである。なお、ここで言う「互換性」とは、上位機種１０と下位機種５０の間で直接通信をおこなうことを可能にすることである。また、上記の通り、第１のワイヤレス通信部３５は、第２のワイヤレス通信部３６よりも、通信速度、セキュリティ、省電力の各観点において高性能である。
【００４７】
フラッシュメモリ３７は、ＮＡＮＤ型フラッシュメモリである。本実施例においては当該フラッシュメモリにエミュレーション用のドライバプログラムなどが記憶されるが、記憶手段としては不揮発性のメモリであればなんでもよく、書き換え可能なものでも、書き換え不可能なものでもよい。
【００４８】
サブプロセッサ３９は、後述するドライバプログラムを実行するためのプロセッサである。なお、当該サブプロセッサ３９は、後述する下位機種５０に搭載されているプロセッサと同一のプロセッサである。
【００４９】
次に、既存の携帯型ゲーム装置である下位機種５０の構成について説明する。当該下位機種５０は、上記のような上位機種１０が互換性を確保しようとする対象である。
【００５０】
図２は、下位機種５０の構成を示すブロック図である。同図において、下位機種５０の基本的な構成は、図１を用いて説明した上位機種１０の機能構成から、第１のワイヤレス通信部３５、フラッシュメモリ３７、および、マイクロフォン３３を除いたものに相当する。更に、下位機種５０では、上述した上位機種１０のＣＰＵコア２１と互換性を有するＣＰＵコア５１が搭載されている。但し、上述したように、当該ＣＰＵコア５１は、上位機種１０に搭載されているＣＰＵコア２１よりも処理能力が低い。なお、ＣＰＵコア２１は、ＣＰＵコア５１と同等の処理をする互換モードと、より高性能な専用モードとを有し、下位機種５０用のアプリケーションを実行する際には互換モードで動作し、上位機種１０用のアプリケーションを実行する際には専用モードで動作する。また、第２ゲーム機のＲＡＭ５４は、第１のゲーム機のＲＡＭ２４よりも容量が少ないＲＡＭであり、容量の点で両者は異なっている。そのため、ＣＰＵコアおよびＲＡＭについても異なる参照符号を付すことで、両者の区別を行う。下位機種５０における他の構成部は、上位機種１０と同様であるため、同一の参照符号を付して詳細な説明を省略する。なお、ＲＡＭ２４とＲＡＭ５４の容量は同じであってもかまわない。
なお、マイクロフォンは、下位機種では備えておらず、上位機種で新たに追加採用されるデバイスである。
また、下位機種５０は、以下の通信が可能である。
（１）他の下位機種５０との間で直接通信
（２）上位機種１０との間で直接通信
（３）アクセスポイントを経由してサーバ等との間で通信
上記（２）の通信は、前述の通り、第２のワイヤレス通信部３６を用いて通信をおこなう上位機種１０との間で行なわれる。
【００５１】
次に、上記２つの携帯型ゲーム装置において利用されるメモリカード１７について説明する。メモリカード１７は、上記上位機種１０、下位機種５０のいずれにも着脱可能である。そして、メモリカード１７は、アプリケーションプログラム（ゲームプログラム等）およびドライバプログラムを記憶するＲＯＭ１７ａと、バックアップデータを書き換え可能に記憶するＲＡＭ１７ｂを搭載する。
【００５２】
ここで、本実施形態においては、ドライバプログラムは以下の２種類がある。
（１）「ドライバプログラム１」：第１のワイヤレス通信部３５用のドライバプログラム（アプリケーションから第１のワイヤレス通信部３５を制御するためのコマンドを受けて、第２のワイヤレス通信部３６に対して制御命令を発行する）。なお、このドライバは、ローカル通信（後述）には対応しておらず、Ｗｉｆｉ通信（後述）に対応している。以下の説明において、このドライバを「第１デバイス用ドライバ」と呼ぶ。 
（２）「ドライバプログラム２」：第２のワイヤレス通信部３６用のドライバプログラム（アプリケーションから第２のワイヤレス通信部３６を制御するためのコマンドを受けて、第２のワイヤレス通信部３６に対して制御命令を発行する）。なお、このドライバは、ローカル通信（後述）およびＷｉｆｉ通信（後述）の両方に対応している。以下の説明において、このドライバを「第２デバイス用ドライバ」と呼ぶ。
【００５３】
また、本実施形態においては、アプリケーションプログラムは以下の３種類がある。
（１）「アプリケーションプログラム１」：下位機種５０用に作成されたアプリケーションプログラムであって、第２デバイス用ドライバが受け取り可能なコマンドを発行して、第２のワイヤレス通信部３６を利用するように作成されたプログラム。なお、当該アプリケーションプログラムは、上位機種１０のＣＰＵコア２１の互換モードで実行可能である。以下の説明において、このアプリケーションプログラムを「下位機種用アプリケーションプログラム」または「下位機種用ゲームプログラム」と呼ぶ。
（２）「アプリケーションプログラム２」：上位機種１０専用に作成されたアプリケーションプログラムであり、上位機種１０の専用機能（本実施例では、マイクロフォンや、ＣＰＵコア２１の専用モードでのみ実行可能なコマンドや、第１のワイヤレス通信部３５を利用する処理）を利用するプログラムである。また、このプログラムは、ローカル通信（後述）においては、第２デバイス用ドライバが受け取り可能なコマンドを発行して、第２のワイヤレス通信部３５を利用するように作成され、Ｗｉｆｉ通信（後述）においては、第１デバイス用ドライバが受け取り可能なコマンドを発行して、第１のワイヤレス通信部３５を利用するように作成される。なお、このアプリケーションプログラムは、上位機種１０のＣＰＵコア２１の専用モードで実行可能である。以下の説明において、このアプリケーションプログラムを「上位機種用アプリケーションプログラム」または「上位機種用ゲームプログラム」と呼ぶ。
（３）「アプリケーションプログラム３」：上位機種１０および下位機種５０のどちらでも動作するように作成されたアプリケーションプログラムであって、上位機種１０で実行されるか、下位機種５０で実行されるかに応じて条件分岐して処理内容を変更するプログラムである。前者の場合には、専用機能を利用する処理を実行し、後者の場合には、専用機能を利用する処理を実行しない。より具体的には、上位機種１０は、初期起動時に、ＲＡＭ２４のうち下位機種５０の未使用領域である所定領域に、自己が上位機種１０であることを示す識別データを書き込む。そして、アプリケーションプログラムは、当該所定領域のデータを参照して、自己が上位機種１０で実行されているのか、下位機種で実行されているのかを判別して、処理を分岐する。また、このアプリケーションプログラムは、上位機種１０で実行される場合には、ローカル通信においては、第２デバイス用ドライバが受け取り可能なコマンドを発行して、第２のワイヤレス通信部３５を利用するように作成され、Ｗｉｆｉ通信においては、第１デバイス用ドライバが受け取り可能なコマンドを発行して、第１のワイヤレス通信部３５を利用するように作成される。また、下位機種５０で実行される場合には、ローカル通信においては、第２デバイス用ドライバが受け取り可能なコマンドを発行して、第２のワイヤレス通信部３５を利用するように作成される。なお、上位機種１０で実行される場合にはＣＰＵコア２１は専用モードで動作する。以下の説明において、このアプリケーションプログラムを「両対応アプリケーションプログラム」または「両対応ゲームプログラム」と呼ぶ。
【００５４】
なお、アプリケーションプログラムはＣＰＵコア２１または５１によって実行される。一方、ドライバプログラムはサブプロセッサ３９によって実行される。より具体的には、アプリケーションプログラムを実行するＣＰＵコア２１または５１によって発行されるコマンドを、ドライバを実行するサブプロセッサが受けて、デバイスを制御する。
【００５５】
また、本実施形態においては、上記メモリカード１７は、以下の３種類に分類される。（１）下位機種用アプリケーションプログラム、および、第２デバイス用ドライバを記憶するタイプ（以下、下位機種用カードと呼ぶ）
（２）両対応アプリケーションプログラム、第１デバイス用ドライバ、および、第２デバイス用ドライバを記憶する（上位機種でも下位機種でも実行可能であるため、以下、両対応カードと呼ぶ）
（３）上位機種用アプリケーションプログラム、第１デバイス用ドライバ、および、第２デバイス用ドライバを記憶するタイプ（以下、上位機種用カードと呼ぶ）
なお、いずれのタイプであっても、メモリカード１７のハウジングの形状やコネクタの仕様は共通であって、いずれのタイプのメモリカード１７も、上位機種１０および下位機種５０に装着可能であり、かつ、コネクタ２３に装着可能で、ＣＰＵから読み出し可能である。
【００５６】
なお、本実施例では、上位機種用アプリケーションプログラムは、ローカル通信においては、第２のワイヤレス通信部３５を利用し、Ｗｉｆｉ通信においては、第１のワイヤレス通信部３５を利用するように作成されるものとしたが、変形例としては、第１のワイヤレス通信部３５にローカル通信の機能を持たせ、かつ、第１デバイス用ドライバをローカル通信に対応させるようにして、上位機種用アプリケーションプログラムで、ローカル通信およびＷｉｆｉ通信のいずれも第１のワイヤレス通信部３５を利用するように作成してもよい。この変形例の場合には、上位機種用カードには、この上位機種用アプリケーションプログラムと、第１デバイス用ドライバが記憶されるようにしてもよい。（すなわち、第２デバイス用ドライバは記憶する必要はない）
【００５７】
図３〜５は、上記メモリカード１７のＲＯＭ１７ａのメモリマップを示す図である。図３は、上記下位機種用カードのメモリマップを示し、図４は、両対応カードの場合のメモリマップを示し、図５は、上位機種用カードの場合のメモリマップを示す。
【００５８】
図３において、メモリカード１７を下位機種用カードとして用いる場合は、ＲＯＭ１７ａには、ゲームヘッダ１７１と、下位機種用ゲームプログラム１７２、および第２デバイス用ドライバ１７３が格納される。
【００５９】
ゲームヘッダ１７１は、メモリカード１７に格納されているゲームを識別するための４バイトのデータである。また、下位機種用ゲームプログラム１７２は、下位機種５０で実行されることを前提に作成されたゲーム処理のプログラムである。すなわち、このプログラムは、第２のワイヤレス通信部３６用のドライバプログラムを用いるために、第２デバイス用ドライバに対してコマンドを発行するように作成されている。また、このプログラムは、上位機種１０の専用機能を利用する処理を含まないプログラムである。
【００６０】
第２デバイス用ドライバ１７３は、上記第２のワイヤレス通信部３６を制御するためのデバイスドライバである。第２デバイス用ドライバ１７３は、下位機種用ゲームプログラム１７２から発行される第２のワイヤレス通信部用のコマンドを受信し、そのコマンドに基づいて第２のワイヤレス通信部３６の制御を行う機能を有している。なお、第１デバイス用ドライバが受付可能なコマンドと第２デバイス用ドライバが受付可能なコマンドは異なるため、第２デバイス用ドライバ１７３に対して、第１のワイヤレス通信部３５を利用するための第１のワイヤレス通信部用のコマンドを発行しても、当該コマンドの処理は行われない。本実施例においては、第１のワイヤレス通信部３５は、第２のワイヤレス通信部３６の後に開発された高性能デバイスであり、それゆえ、第２デバイス用ドライバ１７３は、第１のワイヤレス通信部３５の存在を前提として作られたものではないためである。
【００６１】
次に、図４において、メモリカード１７ａが両対応カードとして用いられる場合は、ＲＯＭ１７ａには、ゲームヘッダ１７１、両対応ゲームプログラム１７４、第１デバイス用ドライバ１７５、および第２デバイス用ドライバ１７３が格納される。ゲームヘッダ１７１は、上述のものと同様であるため、説明は省略する。
【００６２】
両対応ゲームプログラム１７４は、下位機種５０に装着しても実行可能であり、かつ、上位機種１０に装着しても実行可能なゲーム処理のプログラムである。当該ゲームプログラムは、上位機種１０で実行されるか、下位機種５０で実行されるかによって、処理内容が変化するプログラムである。上位機種１０で実行される場合には、上位機種１０の専用機能を利用したゲーム処理が実行可能なように作成されている。より具体的に説明すると、例えば、上位機種１０で実行されるときには、第１デバイス用ドライバに対して第１のワイヤレス通信部３５を制御するためのコマンドを発行し、一方、下位機種５０で実行されるときには、第２デバイス用ドライバに対して第２のワイヤレス通信部３６を制御するためのコマンドを発行する。また、下位機種５０において実行されるときには、ゲーム内で無線の設定メニューを開いた時に、ＷＥＰのみの設定メニューが開かれるが、上位機種１０において実行されるときにはＷＰＡの設定も可能であるメニューが開くようにプログラムされている。または、例えば、上位機種１０において当該ゲームプログラムを実行したときには、マイクロフォンを利用する処理を実行するように処理が進行するが、上位機種１０において当該ゲームプログラムを実行したときには、マイクロフォンを利用する処理が実行されないように処理が進行する。すなわち、上位機種１０で実行されるか下位機種５０で実行されるかに応じて、処理が分岐するようにプログラムが作成されている。つまり、当該両対応ゲームプログラム１７４は、上位機種１０で実行された場合と下位機種５０で実行された場合とで、実行されるゲーム処理の一部に、それぞれの機種が備えるデバイスの違いに基づいて異なる処理がされる部分を有する。
【００６３】
第１デバイス用ドライバ１７５は、上記第１のワイヤレス通信部３５を制御するためのデバイスドライバである。より具体的には、第１デバイス用ドライバ１７５は、両対応ゲームプログラムから後述するような第１のワイヤレス通信部用のコマンドを受け取れば、第１のワイヤレス通信部を制御する。
【００６４】
第２デバイス用ドライバ１７３は、下位機種用カードの場合と同じドライバであり、両対応ゲームプログラム１７４から発行される、第２のワイヤレス通信部用のコマンドを受け取れば、第２のワイヤレス通信部３６を制御する。
【００６５】
なお、詳細は後述するが、当該両対応カードが上位機種１０に装着されたときは、第１デバイス用ドライバ１７５および第２デバイス用ドライバ１７３の両方がＲＡＭ２４に読み込まれて使用される。また、下位機種５０に装着されたときは、第２デバイス用ドライバ１７３がＲＡＭ５４に読み込まれて使用される。
【００６６】
次に、図５において、メモリカード１７ａが上位機種用カードとして用いられる場合は、ＲＯＭ１７ａには、ゲームヘッダ１７１と、上位機種用ゲームプログラム１７６と第１デバイス用ドライバ１７５と第２デバイス用ドライバ１７３が格納される。ゲームヘッダ１７１および各ドライバは、上述したものと同じであるため、説明は省略する。
【００６７】
上位機種用ゲームプログラム１７６は、上位機種１０のＣＰＵコア２１によって実行されることを前提として作成されたゲーム処理のプログラムである。なお、このとき、ＣＰＵコア２１は専用モードで動作する。上位機種用ゲームプログラム１７６は、上位機種１０の機能（例えば、下位機種５０のＣＰＵコア５１には備わっていないＣＰＵコア２１に特有の命令等）を最大限に利用することが可能なプログラムである。そのため、上位機種用カードについては、下位機種５０への装着そのものは可能だが、下位機種においてはゲーム処理の実行はできないものとなっている。
【００６８】
次に、上位機種１０のフラッシュメモリ３７に記憶されるデータについて説明する。図６は、フラッシュメモリ３７のメモリマップを示す図である。フラッシュメモリ３７には、エミュレーション対応ゲームリスト３７１、エミュレーション用無線ドライバ３７２等が記憶される。
【００６９】
エミュレーション対応ゲームリスト３７１は、上記下位機種用カードとして発売等されている下位機種用ゲームプログラムのうち、上位機種１０上で後述するような「エミュレータモード」という動作モードで動作可能なゲームのリストである。既に市場に出回っている多数の従来型ゲームの中から、「エミュレータモード」で動作可能なゲームが予め選出され、当該ゲームのゲームヘッダ１７１の値が当該エミュレーション対応ゲームリスト３７１に記録されている。
【００７０】
エミュレーション用無線ドライバ３７２は、変換プログラム３７２１および第１デバイス用ドライバ１７５および第２デバイス用ドライバ１７３から構成されている。第１デバイス用ドライバ１７５および第２デバイス用ドライバ１７３は、上述したものと同様であるため、説明は省略する。変換プログラム３７２１は、ゲームプログラムが上記第２のワイヤレス通信部３６を制御するために第２デバイス用ドライバ１７３に対して発行したコマンドＡを、第１デバイス用ドライバ１７５が受け付け可能なコマンドであって、当該コマンドＡに対応する制御をするコマンドに変換する機能を実現するためのプログラムである。より具体的には、例えば、ゲームプログラムが第２のワイヤレス通信部３６に対して通信開始をさせるために第２デバイス用ドライバ１７３に発行した通信開始コマンドを、第１デバイス用ドライバ１７５が受付可能なコマンドでかつ第１のワイヤレス通信部３５に対して通信開始させるためのコマンドに変換する。そのため、変換プログラム３７２１には、上記のようなコマンドの変換のための変換テーブルが内部に定義されている。すなわち、変換プログラム３７２１では、ゲームプログラムから発行された第２のワイヤレス通信部３６用のコマンドを受け取り、当該変換テーブルに基づいて第１のワイヤレス通信部３５用のコマンドに変換する処理が実行される。そして、変換した第１のワイヤレス通信部３５用のコマンドを第１デバイス用ドライバ１７５へと出力する処理が実行される。なお、変換プログラム３７２１は、ゲームプログラムが上記第１のワイヤレス通信部３５を制御するために第１デバイス用ドライバ１７５に対して発行したコマンドは変換せずに第１デバイス用ドライバ１７５に出力する。
【００７１】
なお、本実施例では、エミュレーション用無線ドライバ３７２を、変換プログラム３７２１と第１デバイス用ドライバ１７５と第２デバイス用ドライバ１７３によって構成したが、第１デバイス用ドライバ１７５や第２デバイス用ドライバ１７３そのものを含めることは必須ではなく、ゲームプログラムが第１のワイヤレス通信部３５を制御するために第１デバイス用ドライバ１７５に対して発行したコマンドに基づいて、第１のワイヤレス通信部３５を制御し、ゲームプログラムが第２のワイヤレス通信部３６を制御するために第２デバイス用ドライバ１７３に対して発行したコマンドに基づいて第２のワイヤレス通信部３６を制御するように設計すればよい。しかしながら、第１デバイス用ドライバ１７５や第２デバイス用ドライバ１７３そのものを使えば、エミュレーション用無線ドライバの開発の負担を減らすことができる。なお、それらのうちの一方のみをそのまま使うようにしてもよい。
【００７２】
また、後述するが、上述の通り第１のワイヤレス通信部３５はローカル通信に対応しないため、変換プログラム３７２１は、ゲームプログラムが上記第２のワイヤレス通信部３６を制御するために第２デバイス用ドライバ１７３に対して発行したローカル通信用のコマンドは変換せずにそのまま第２デバイス用ドライバ１７３に対して出力する。
【００７３】
また、本実施例では、上位機種１０の発売前に発売された下位機種用ゲームプログラムのうち、エミュレーション用無線ドライバ３７２を用いて「エミュレータモード」で正しく動作することが実際に確認されたものを、両対応ゲームプログラム１７４の領域に記憶するようにした。しかしながら、下位機種用ゲームプログラムのすべてを「エミュレータモード」で動作するようにしてもよく、この場合には、両対応ゲームプログラム１７４のデータは不要である。また、両対応ゲームプログラム１７４の領域を、外部記憶媒体やネットワークを介してアップデート可能にしてもよく、その場合には、上位機種１０の発売後に「エミュレータモード」で正しく動作することが確認された下位機種用ゲームプログラムや、上位機種１０の発売後に発売された下位機種用ゲームプログラムを対応ゲームプログラムとして登録することも可能である。
【００７４】
次に、図７〜図１０を用いて、本実施形態で想定する処理の概要について説明する。本発明は、上記下位機種用カードを上位機種１０に装着した場合の処理に関するものである。つまり、下位機種５０用に作成されたゲームを、下位機種５０と互換性を有する上位機種１０で実行する際の処理に関するものである。
【００７５】
上位機種１０で下位機種用カードのゲーム（以下、「下位機種用ゲーム」と呼ぶ）を実行する場合を説明する前に、まず、下位機種５０での実行形態、つまり、下位機種５０で下位機種用ゲームを実行する場合について説明する。ここで、本実施形態で想定する下位機種用ゲームの中には、通信機能を利用したゲーム処理（以下、通信ゲームと呼ぶ）を行うものがある（より具体的には、第２のワイヤレス通信部３６を用いて通信をおこなう処理を含むゲームがある）。ここで利用される通信方式としては、次のような２つの通信方式がある。一つはローカル通信と呼ばれる方式で、複数のゲーム機同士をサーバなどを介さずに、微弱電波による近距離無線で直接接続して通信を行う方式である。例えば、同じ室内に複数のプレイヤが集まっているような、狭い範囲内で複数のプレイヤ（下位機種５０）が存在するような場合を想定した通信方式である。もう一つは、ＷｉＦｉ通信と呼ばれる方式である。主に、IEEE 802.11に準拠した無線通信を行うもので、例えばインター
ネット経由で所定のサーバや他のプレイヤの下位機種５０と接続し、通信を行う。主に、近くに下位機種５０を持ったプレイヤがいないような場合やインターネット接続を利用したゲームプレイなどを想定した通信方式である。なお、本実施例では、ローカル通信は、独自のプロトコルで行なわれるものであり、当該プロトコルを搭載したデバイス同士しか通信できない。
【００７６】
下位機種５０で実行されるゲームにおいて、上記のような通信機能が用いられる場合は、ゲーム処理において上記第２のワイヤレス通信部３６が用いられることになる。この場合のゲーム処理の流れとしては、以下のようになる。まず、本体のブート処理時（下位機種５０の電源を投入した時の処理）に、図７に示すように、下位機種用ゲームプログラム１７２と、第２デバイス用ドライバ１７３が、メモリカード１７から下位機種５０のＲＡＭ５４に読み込まれる。そして、ＣＰＵコア５１は、ＲＡＭ５４に読み込まれた下位機種用ゲームプログラム１７２に基づいてゲーム処理の実行を開始する。この下位機種用ゲームプログラム１７２に基づくゲーム処理の中において、第２のワイヤレス通信部を制御するコマンドが、ＲＡＭ５４に読み込まれている第２デバイス用ドライバ１７３に向けて発行される。ここで、このコマンドは、上記ローカル通信用とＷｉＦｉ通信用とでコマンド体系は分れているものとする。つまり、ローカル通信用のコマンドと、ＷｉＦｉ通信用のコマンドとは異なるコマンドであるものとする。
【００７７】
第２デバイス用ドライバ１７３は、上記コマンドを受けとって解釈し、その内容に応じて第２のワイヤレス通信部３６を制御する。そして、その処理結果を適宜従来型ゲームプログラムに返す処理を行う。下位機種５０では、このようにして、通信ゲームが実行される。
【００７８】
次に、上位機種１０で下位機種用ゲーム、特に、通信ゲームを実行する場合について説明する。上記のように、上位機種１０のＣＰＵコア２１は、下位機種５０のＣＰＵコア５１と互換性を有する実行モードを備えており（互換モード）、当該ＣＰＵコア２１においても下位機種用ゲームは実行可能である。また、上記のように、上位機種１０には、下位機種５０に搭載されているものと同じものである第２のワイヤレス通信部３６が搭載されている。そのため、上位機種１０で下位機種用ゲームを実行する場合は、以下のような処理の流れとなる。
【００７９】
まず、本体のブート処理時において、図８に示すように、下位機種用ゲームプログラム１７２および第２デバイス用ドライバ１７３が、メモリカード１７（下位機種用カード）からＲＡＭ２４にロードされる。次に、ＣＰＵコア２１によって、ＲＡＭ２４にロードされた下位機種用ゲームプログラム１７２に基づくゲーム処理が実行される。当該ゲームプログラム内で、第２のワイヤレス通信部を制御するコマンドがＲＡＭ２４にロードされた第２デバイス用ドライバ１７３に向けて発行される。その結果、第２デバイス用ドライバ１７３によって当該コマンドに基づいた第２のワイヤレス通信部３６の制御が実行される。なお、このコマンドは、第２のワイヤレス通信部３６を前提とする仕様やコマンド体系を有するため、第１のワイヤレス通信部３５の制御はできない。
【００８０】
上述のような処理が行われることで、上位機種１０上で、通信処理については第２のワイヤレス通信部３６を用いて処理するため、上述したような下位機種用ゲームの実行について、少なくとも通信処理に関しては、下位機種５０で実行した場合と全く同一の処理を行なわせることができる。
【００８１】
一方、上位機種１０で下位機種用カードのゲームを実行する場合に、本実施形態では、もうひとつ動作モードがある。本実施形態では、上述のような第２のワイヤレス通信部３６を用いて互換性を得る動作モードを「通常モード」と呼び、以下に説明するような処理が行われる動作モードを「エミュレータモード」と呼ぶ（図８に示すのが「通常モード」の場合であり、図９に示すのが「エミュレータモード」の場合である）。なお、本実施形態では、ブート処理時に上記エミュレーション対応ゲームリスト３７１と装着されたメモリカード１７に記憶されるゲームヘッダ１７１とを照らし合わせる処理を行い、エミュレーション対応ゲームリスト３７１に登録されているゲームであれば、自動的に「エミュレータモード」で動作するように構成されている。対応ゲームリスト３７１に登録されていない場合は「通常モード」で動作する。
【００８２】
「エミュレータモード」は、上述したような通信機能を用いるゲームを実行した場合であって、通信方式に上記ＷｉＦｉ方式を用いる通信が行われる場合には、上記第２のワイヤレス通信部３６ではなく、より高性能である第１のワイヤレス通信部３５を利用可能とする動作モードである。換言すれば、上位機種１０において通信処理を行う際に、第２のワイヤレス通信部３６をエミュレートしながら第１のワイヤレス通信部３５を使用する動作モードである。
【００８３】
「エミュレータモード」で下位機種用ゲームが実行される場合、上位機種１０のブート処理時にＲＡＭ２４に読み込まれる無線ドライバが上記「通常モード」のものとは異なる。具体的には、図９に示すように、下位機種用ゲームプログラム１７２については、メモリカード１７（下位機種用カード）からＲＡＭ２４に読み込まれるが、無線ドライバについては、メモリカード１７の第２デバイス用ドライバ１７３ではなく、フラッシュメモリ３７に格納されているエミュレーション用無線ドライバ３７２が、本体のブート処理時に、ＲＡＭ２４に読み込まれる。
【００８４】
当該エミュレーション用無線ドライバ３７２には、上記のように、変換プログラム３７２１が含まれている。そして、「エミュレーションモード」においては、下位機種用ゲームから発行されたコマンドのうち通信に関するコマンド（以下、「通信コマンド」と呼ぶ）は、当該変換プログラム３７２１が取得する。そのためエミュレータモードにおけるゲーム処理の流れは、以下のようになる。
【００８５】
まず、上記のようなブート処理が行われた後、ＣＰＵコア２１が、ＲＡＭ２４に展開された下位機種用ゲームプログラム１７２に基づくゲーム処理を開始する。当該ゲーム処理内で通信コマンド（当該コマンドは下位機種用ゲームプログラム１７２で発行されるものであるため、必然的に第２のワイヤレス通信部３６用のコマンドである）が発行されると、エミュレーション用無線ドライバ３７２で当該コマンドが受信されて変換プログラム３７２１が実行される。当該変換プログラム３７２１によって、上記コマンド、すなわち、第２のワイヤレス通信部３６用のコマンドが第１のワイヤレス通信部用のコマンドに変換される。そして、当該変換後のコマンドが、エミュレーション用無線ドライバ３７２に含まれている第１デバイス用ドライバ１７５に出力される。当該第１デバイス用ドライバ１７５は、当該変換後のコマンドに基づいて、第１のワイヤレス通信部３５の制御を実行する。これにより、第１のワイヤレス通信部３５の利用を想定せずに開発された下位機種用ゲームの実行に際して、第１のワイヤレス通信部３５を利用した処理を実行することが可能となる。
【００８６】
図１０に、上位機種１０において「通常モード」で下位機種用ゲームを実行する場合のデバイス制御の流れと「エミュレーションモード」で下位機種用ゲームを実行する場合のデバイス制御の流れを示す。図１０（ａ）に示すように、「通常モード」の場合は、アプリケーション層にあたるゲームプログラムから発行された所定の通信コマンド（例えばＡＰＩ呼び出し）は、ドライバ層にあたる第２デバイス用ドライバが受け取る。そして、当該第２デバイス用ドライバが当該コマンドに基づいてハードウェア層にあたる第２のワイヤレス通信部へのアクセスを行う。一方、「エミュレータモード」の場合は、図１０（ｂ）に示すように、ゲームプログラムから発行された所定の通信コマンドは、エミュレーション用無線ドライバに含まれている変換プログラムが受け取る。そして、当該変換プログラムで適宜コマンドの変換処理が行われ、変換後のコマンドがエミュレーション用無線ドライバに含まれている第１デバイス用ドライバへと出力される。そして、当該第１デバイス用ドライバが当該コマンドに基づいて第１のワイヤレス通信部へのアクセスを行うことになる。
【００８７】
このように、「エミュレータモード」で下位機種用ゲームを実行するときは、通信コマンド上記のような変換プログラムに通すことで、下位機種用ゲーム実行時における第１のワイヤレス通信部３５の利用を可能とする。その結果、例えば、下位機種用ゲームを実行する際であっても第１のワイヤレス通信部３５が備える省電力機能を利用することができ、上記「通常モード」で下位機種用ゲームを実行したときに比べて、消費電力を抑え、電池を長持ちさせることが可能となる。
【００８８】
なお、前述の通り、「エミュレータモード」であっても、ゲームプログラムから発行された通信コマンドがローカル通信のコマンドである場合には、コマンドの変換をせずに、そのままエミュレーション用無線ドライバ３７２に含まれている第２デバイス用ドライバ１７３に対して出力する。しかしながら、第１のワイヤレス通信部３５がローカル通信の機能を有する場合には、ゲームプログラムから発行された通信コマンドがローカル通信のコマンドである場合も、コマンドの変換を行って、エミュレーション用無線ドライバ３７２に含まれている第１デバイス用ドライバ１７５に出力するようにしてもよい。なお、この場合には、エミュレーション用無線ドライバ３７２に第２デバイス用ドライバ１７３を含める必要はない。
【００８９】
下位機種５０に上記両対応カードが装着された場合は、両対応ゲームプログラム１７４と第２デバイス用ドライバ１７３が、下位機種５０のＲＡＭ５４にロードされ、実行される（図１１参照）。一方、下位機種５０に、上記上位機種用カードが装着された場合は、ゲームは起動しない。つまり、上位機種用カードに記録されているゲームについては、下位機種５０ではプレイすることができない。
【００９０】
また、上位機種１０に上記両対応カードが装着された場合は、両対応ゲームプログラム１７４と第１デバイス用ドライバ１７５および第２デバイス用ドライバ１７３が上位機種１０のＲＡＭ２４にロードされ、実行される（図１２参照）。つまり、両対応カードのゲームが実行される場合は、当該対応カード内に格納されている無線ドライバが用いられて下位機種用ゲームが実行されることになる。また、上位機種１０に上位機種用カードが装着された場合は、上位機種用ゲームプログラム１７６と第１デバイス用ドライバ１７５および第２デバイス用ドライバがＲＡＭ２４にロードされ、実行される（図１３参照）。なお、前述の通り、第１のワイヤレス通信部３５がローカル通信の機能を有する場合には、上位機種用ゲームプログラム１７６には第２デバイス用ドライバ１７３は記憶しなくてよいが、この場合には、当然のことながら、第２デバイス用ドライバ１７３はロードされない。
【００９１】
以下、上位機種１０に下位機種用カードが装着されたときに実行される処理の詳細について、図１４〜図１５を用いて説明する。図１４は、上位機種１０において、下位機種用カードが装着され、電源が投入されたときに実行される起動プログラム（上位機種１０が備える図示しないブートＲＯＭに記憶されている）によるゲーム起動処理の流れを示すフローチャートである。
【００９２】
図１４において、まず、ステップＳ１において、下位機種用カードが装着されて電源が投入されると、ステップＳ２において装着されたメモリカード１７のＲＯＭ１７ａからゲームヘッダ１７１が取得される。
【００９３】
次に、ステップＳ３において、取得されたゲームヘッダ１７１に基づいて、装着されたカードのゲームがエミュレータモード対応のゲームであるか否かの判定が実行される。具体的には、フラッシュメモリ３７のエミュレーション対応ゲームリスト３７１が参照され、ステップＳ２で取得したゲームヘッダ１７１がエミュレーション対応ゲームリスト３７１に登録されているか否かの判定が実行される。
【００９４】
当該判定の結果、エミュレータモード対応のゲームであると判定されたときは（ステップＳ３でＹＥＳ）、ステップＳ４において、下位機種用ゲームプログラム１７２がＲＯＭ１７ａからＲＡＭ２４にロードされる。続くステップＳ５において、エミュレーション用無線ドライバ３７２がフラッシュメモリ３７からＲＡＭ２４にロードされる。
【００９５】
その後、ステップＳ７において、ＲＡＭ２４にロードされた下位機種用ゲームプログラム１７２の実行が開始される。
【００９６】
一方、上記ステップＳ３の判定の結果、装着されたカードのゲームがエミュレータモード対応のゲームではないと判定されたときは（ステップＳ３でＮＯ）、ステップＳ６において、下位機種用ゲームプログラム１７２がＲＯＭ１７ａからＲＡＭ２４にロードされる。更に、第２デバイス用ドライバ１７３がＲＯＭ１７ａからＲＡＭ２４にロードされる。その後、上記ステップＳ７に処理が進められ、下位機種用ゲームプログラム１７２の実行が開始される。
【００９７】
このように、ゲーム起動処理においては、エミュレータモードでの動作に対応するゲームか否かを判定し、その結果に応じて、ＲＡＭ２４に読み込む無線ドライバを変更する処理が行われる。
【００９８】
次に、「エミュレータモード」で動作している下位機種用ゲームのゲーム処理について、図１５を用いて説明する。ここでは、主に、下位機種用ゲームプログラムを実行するＣＰＵコア２１から通信コマンドが発行された場合の、サブプロセッサ３９におけるエミュレーション用無線ドライバでの処理について説明し、通信コマンドの発行以外の状況におけるゲーム処理は本発明と直接関連しないので説明を省略する。
【００９９】
図１５は、下位機種用ゲームプログラム１７２の実行中に通信コマンドが発行されたときに実行されるエミュレーション用無線ドライバ３７２の処理を示すフローチャートである。特に、ステップＳ１１、Ｓ１２、Ｓ１３、Ｓ１４およびＳ１６が変換プログラム３７２１の処理を示す。また、ステップＳ１５は第１デバイス用ドライバ１７５の処理であり、ステップＳ１７は第２デバイス用ドライバ１７３の処理である。図１５において、まず、ステップＳ１１において、下位機種用ゲームプログラム１７２の実行中に発行された通信コマンドが受信される。なお、下位機種用ゲームプログラム１７２の実行中に発行される通信コマンドは、第２のワイヤレス通信部を制御するためのコマンドである。
【０１００】
次に、ステップＳ１２において、当該受信したコマンドが、通信方式として上述したようなローカル方式を利用するコマンドであるかＷｉＦｉ方式を利用するコマンドであるかの判定が行われる。これは、本実施形態では、通信方式がＷｉＦｉ方式の場合にのみ第１のワイヤレス通信部３５を用い、通信方式がローカル通信の場合は、第２のワイヤレス通信部３６を用いるという使い分けをするためである。また、上述したように、本実施形態では、当該コマンドは、上記ローカル通信用とＷｉＦｉ通信用とでコマンド体系が分けられており、ローカル通信用のコマンドと、ＷｉＦｉ通信用のコマンドとは異なるコマンドである。そのため、当該コマンドの命令コードそのものを判別することで、ローカル通信用のコマンドであるかＷｉＦｉ通信用のコマンドであるかは判定できる。例えば、"Local_connect（引数）"のような命令コードであれば、ローカル通信用のコマンドと判定され、"WiFi_connect（引数）"のような命令コードであれば、ＷｉＦｉ通信用のコマンドと判定される。
【０１０１】
当該判定の結果、コマンドが、ＷｉＦｉ方式を利用するコマンドであるときは（ステップＳ１２でＹＥＳ）、ステップＳ１３において、上記ステップＳ１１で受信したコマンドが第１のワイヤレス通信部３５用のコマンドに変換される。続くステップＳ１４において、変換されたコマンドが第１デバイス用ドライバ１７５に出力される。その後、ステップＳ１５において、当該変換された第１のワイヤレス通信部３５用のコマンドに基づく第１のワイヤレス通信部３５の制御が実行される。
【０１０２】
一方、上記ステップＳ１２の判定の結果、コマンドが、ローカル方式を利用するコマンドであるときは（ステップＳ１２でＮＯ）、ステップＳ１６において、上記ステップＳ１１で受信したコマンドをそのまま第２デバイス用ドライバ１７５へ出力する。つまり、第２のワイヤレス通信部３６用のコマンドを上記のような変換を行わずにそのまま第２デバイス用ドライバ１７５へ出力する。
【０１０３】
そして、続くステップＳ１７において、当該第２のワイヤレス通信部３６用のコマンドに基づく第２のワイヤレス通信部３６の制御が実行される。
【０１０４】
このように、本実施形態では、上位機種１０で下位機種５０用のゲーム（従来型ゲーム）を実行するときに、下位機種５０が備える機能（本実施形態では、第２のワイヤレス通信部３６）の代わりに、上位機種１０が備える機能（本実施形態では、第１のワイヤレス通信部３５）を利用することが可能となる。その結果、下位機種との互換性を保ちながらも、後発である上位機種の機能を利用することで、より快適なゲームプレイを実現することが可能となる。
【０１０５】
なお、上述の実施形態では、エミュレーション対応ゲームであれば、自動的に「エミュレータモード」で動作する場合を例として説明したが、これに限らず、エミュレーション対応ゲームを「エミュレータモード」で実行するか否かについてはプレイヤが設定できるように構成してもよい。すなわち、下位機種用ゲームを上位機種１０において実行する際に、第１のワイヤレス通信部を利用するか第２のワイヤレス通信部を利用するかを、プレイヤが選択可能なように構成してもよい。この場合、ブート処理プログラムに、当該選択の設定をおこなう機能を含めておいて、当該機能において、プレイヤ入力に基づいて当該選択をおこない、選択結果をフラッシュメモリ３７の所定領域に記憶するようにすればよい。そして、前述の図１４におけるブート処理において、ステップＳ３の前に、当該所定領域のデータが「第１のワイヤレス通信部を利用する」ことを示しているときには、Ｓ３に進み、「第２のワイヤレス通信部を利用する」ことを示しているときには、Ｓ６に進むように処理すればよい。
【０１０６】
また、上述の実施形態では、ソフトウェア（アプリケーションプログラムとドライバプログラムとを一体に保存したもの）については、メモリカードに記録されているものとしたが、本発明はこの方法に限るものではなく、ソフトウェア（アプリケーションプログラムとドライバプログラムとを一体に保存したもの）を情報処理装置上で実行可能であればどんな方法でも良い。例えば、ソフトウェア（アプリケーションプログラムとドライバプログラムとを一体に保存したもの）を所定のサーバに保存しておき、情報処理装置にダウンロードすることによって各情報処理装置の記憶手段に保存するようにしてもよい。
【０１０７】
更に、上述の実施形態では、変換プログラム３７２１を用いて、第２のデバイス（第２のワイヤレス通信部）用に発行されたコマンドを第１のデバイス（第１のワイヤレス通信部）用のコマンドへと変換を行うことで第１のデバイスの制御を行っていたが、このような変換プログラム３７２１を用いることに限るものではない。例えば、第１のデバイスを制御するためのドライバを、第２のデバイスを制御することができるように互換性を持たせて構成してもよい。そして、第１の情報処理装置の記憶手段に当該第１のデバイスを制御するためのドライバそのものを格納しておけば、上記のような変換プログラムを用いなくても、本発明が実施可能である。
【０１０８】
更に、上述の実施形態では、エミュレーションドライバプログラムは、変換プログラムと第１デバイス用ドライバとを含むように構成したが、本発明はこの方法に限るものではなく、エミュレーションドライバプログラムを用いて第２のデバイスを制御するためのコマンドで第１のデバイスを制御可能になっていればどんな方法でも良い。例えば、ソフトウェア側に第１のデバイスを制御するための第１のドライバプログラムが含まれるように構成しておき、エミュレーションドライバプログラムとしては第２のデバイスを制御するためのコマンドを第１のドライバプログラムが受け取り可能なコマンドに変換する変換プログラムのみを情報処理装置上に保存しておいて、第２のデバイスを制御するためのコマンドが発行されたときに、ソフトウェア側に含まれる第１のドライバプログラムで受け取って第１のデバイスを制御するようにしてもよい。
【０１０９】
また、上述の実施形態では、上位機種１０で下位機種５０用のゲーム（従来型ゲーム）を実行するときに、下位機種５０が備える機能の代わりに利用する上位機種１０が備える機能として、無線機能（第１のワイヤレス通信部３５）を例として挙げた。しかしながら、機能についてはこれに限らず、上位機種の機能が下位機種の機能を代替するように構成されているものであれば、どのような機能でも良い。例えば、上位機種において搭載された液晶パネルが下位機種において搭載されていた液晶パネルよりも解像度や色数が大きいといった場合にも本発明は適用可能である。また、上位機種において、下位機種との互換性を確保するために当該下位機種に搭載されている部品（無線チップ等）と同等の部品を搭載し、更に、その基本的機能（本実施形態では無線通信機能）は同じであるが、より高性能である部品も別途搭載するような場合にも本発明は有用である。
【０１１０】
また、フラッシュメモリ３７に格納されているエミュレーション対応ゲームリスト３７１およびエミュレーション用無線ドライバ３７２については、所定のサーバから最新版をダウンロードすることでバージョンアップが可能なように構成してもよい。例えば、フラッシュメモリ３７に予めドライバ更新用のプログラムを格納しておく。そして、当該プログラムにおいて、第１のワイヤレス通信部３５を用いて所定のサーバと通信し、最新版のエミュレーション用無線ドライバをダウンロードしてフラッシュメモリ３７のエミュレーション用無線ドライバ３７２を更新する処理を実行させるようにすればよい。これにより、当初は「エミュレーションモード」で動作させることができなかった従来型ゲームをエミュレーション用無線ドライバ３７２等のバージョンアップにより動作させることが可能となる。つまり、エミュレーション対応ゲームの数を増やすことができる。
【０１１１】
また、両対応カード、または、上位機種用カードに格納される第１デバイス用ドライバ１７５については、これらのカードに記憶されるゲームの開発時において最新版となる第１デバイス用ドライバを記憶するようにしてもよい。つまり、メモリカード１７内に記憶されている無線ドライバについては、当該メモリカード（ゲーム）発売時点における最新版のドライバが記憶されているようにしてもよい。上記のように、上位機種１０において両対応ゲームや上位機種用ゲームを実行する際は、メモリカード１７に記憶されている第１デバイス用ドライバ１７５をＲＡＭ２４にロードして利用する。そのため、これらのゲーム実行時には、より新しいバージョンの第１のワイヤレス通信部用の無線ドライバを利用することが可能となる。
【産業上の利用可能性】
【０１１２】
本発明にかかる情報処理システムは、互換性のある上位機種において下位機種のアプリケーションを実行するときに、上位機種特有のデバイスを利用した下位機種のアプリケーションの実行ができ、ゲーム装置や携帯電話、ＰＤＡ等に有用である。
【符号の説明】
【０１１３】
１０  第１の携帯型ゲーム装置
１１  第１ＬＣＤ
１２  第２ＬＣＤ
１３  ハウジング
１４  操作スイッチ部
１５  タッチパネル
１６  スタイラスペン
１７  メモリカード
１８  音抜き孔
２０  電子回路基板
２１  ＣＰＵコア
２２  バス
２３  コネクタ
２４  ＲＡＭ
２５  インターフェース回路
２６  第１ＧＰＵ
２７  第２ＧＰＵ
２８  第１ＶＲＡＭ
２９  第２ＶＲＡＭ
３１  ＬＣＤコントローラ
３２  レジスタ
３３  マイクロフォン
３５  第１のワイヤレス通信部
３６  第２のワイヤレス通信部
３７  フラッシュメモリ
５０  第２の携帯型ゲーム装置
５１  ＣＰＵコア
５４  ＲＡＭ
【図１】
0005639695.tif 000002
【図２】
0005639695.tif 000003
【図３】
0005639695.tif 000004
【図４】
0005639695.tif 000005
【図５】
0005639695.tif 000006
【図６】
0005639695.tif 000007
【図７】
0005639695.tif 000008
【図８】
0005639695.tif 000009
【図９】
0005639695.tif 000010
【図１０】
0005639695.tif 000011
【図１１】
0005639695.tif 000012
【図１２】
0005639695.tif 000013
【図１３】
0005639695.tif 000014
【図１４】
0005639695.tif 000015
【図１５】
0005639695.tif 000016