JP6965034B2 - 情報処理装置、情報処理システム、情報処理方法、および、情報処理プログラム - Google Patents

情報処理装置、情報処理システム、情報処理方法、および、情報処理プログラム Download PDF

Info

Publication number
JP6965034B2
JP6965034B2 JP2017119790A JP2017119790A JP6965034B2 JP 6965034 B2 JP6965034 B2 JP 6965034B2 JP 2017119790 A JP2017119790 A JP 2017119790A JP 2017119790 A JP2017119790 A JP 2017119790A JP 6965034 B2 JP6965034 B2 JP 6965034B2
Authority
JP
Japan
Prior art keywords
input device
firmware
information processing
application program
update
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.)
Active
Application number
JP2017119790A
Other languages
English (en)
Other versions
JP2019003557A (ja
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 JP2017119790A priority Critical patent/JP6965034B2/ja
Priority to US16/003,439 priority patent/US10649760B2/en
Priority to EP18178388.7A priority patent/EP3418899A1/en
Publication of JP2019003557A publication Critical patent/JP2019003557A/ja
Application granted granted Critical
Publication of JP6965034B2 publication Critical patent/JP6965034B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]

Description

本技術は、情報処理装置、情報処理システム、情報処理方法、および、情報処理プログラムに関する。
一般的に、各種の情報処理装置で実行されるソフトウェアは、必要に応じて更新できるようになっている。例えば、特開2016−001391号公報(特許文献1)は、効率的にソフトウェアをアップデートできる環境を実現するための構成を開示する。より具体的には、端末装置がソフトウェアをアップデート可能な状態にあることがユーザに通信され、ユーザの確認を受けて、ソフトウェアアップデートの実行指示が送信される情報処理装置を開示する。
特開2016−001391号公報
1または複数の入力装置が有線または無線で接続される情報処理装置などを想定されると、ソフトウェアが更新可能な状態であったとしても、その更新は必ずしも実行されるとは限らない。例えば、更新可能な状態になったときに接続されていなかった入力装置、更新可能な状態になったときに十分なバッテリの残量を有していなかった入力装置、および、更新可能な状態になった後に新たに購入した入力装置などについては、更新対象とはならない。
このような場合において、ソフトウェアが更新されなかった入力装置に対しては、ユーザがメニューなどを操作して改めて更新を行なう必要があり、ユーザビリティを低下させる可能性があった。本技術は、上述したような課題を解決することを一つの目的とする。
ある実施の形態に従えば、入力装置が有線または無線で接続される情報処理装置が提供される。情報処理装置は、入力装置が受付けたユーザ操作に基づいてアプリケーションプログラムを実行する実行手段と、ネットワークを介してサーバから入力装置のファームウェアの更新データを取得する取得手段と、アプリケーションプログラムの実行中に、アプリケーションプログラムからの要求に応じて、入力装置のファームウェアを更新させる処理を実行する更新手段とを含む。実行手段は、更新手段によるファームウェアの更新前にアプリケーションプログラムの実行を中断するとともに、更新手段によるファームウェアの更新が完了したことに応じてアプリケーションプログラムの実行を再開する。
この実施の形態によれば、情報処理装置とともに入力装置が使用されている場合に、実行されるアプリケーションから必要に応じて、ファームウェアの更新が実行されるので、ユーザが手動でファームウェアを更新する必要がない。そのため、ユーザから見れば、情報処理装置以外の入力装置などの周辺装置に対するファームウェアのバージョン管理の手間を削減できる。
また、この実施の形態によれば、入力装置のファームウェアの更新前に実行中のアプリケーションプログラムが中断され、入力装置のファームウェアの更新後に中断されたアプリケーションプログラムが再開される。そのため、ユーザから見れば、入力装置のファームウェアを更新するために、実行中のアプリケーションプログラムを終了する必要がなく、ファームウェアの更新に係る不便性が生じない。
更新手段は、入力装置がアプリケーションプログラムの実行に必要な条件を満たしていない場合に、入力装置のファームウェアを更新させる処理を実行してもよい。このような構成を採用することで、アプリケーションプログラムの実行毎に、入力装置のファームウェアを更新するような処理が実行されることを回避でき、必要なときに限って、入力装置のファームウェアの更新処理を実行できる。
更新手段は、アプリケーションプログラムからの要求に応じて、入力装置のファームウェアのバージョン情報を取得してもよい。このような構成を採用することで、実行されるアプリケーションの内容などに応じて異なる、入力装置に要求される条件に応じて、入力装置のファームウェアの更新処理を合理的に実行できる。
更新手段は、入力装置のファームウェアのバージョン情報がアプリケーションプログラムから要求される条件を満たしているか否かを判定してもよい。このような構成を採用することで、バージョン情報という共通の指標で要求される条件が満たされているか否かを判定でき、更新要否の判定処理を簡素化できる。
情報処理装置は、入力装置のファームウェアのバージョン情報を応答するAPI(Application Programming Interface)をさらに含んでいてもよい。このような構成を採用することで、情報処理装置で実行されるアプリケーションの各々は、共通的にAPIを呼び出すことで、入力装置のファームウェアのバージョン情報を取得でき、この取得したバージョン情報に基づいて、適切な実行環境であるか否かを判定できる。
取得手段は、情報処理装置のシステムプログラムの更新データとともに、入力装置のファームウェアの更新データを取得してもよい。このような構成を採用することで、それぞれの更新データを別々に取得する場合に比較して、バージョン管理などをより容易に実現できる。
更新手段は、情報処理装置のシステムプログラムを更新させる処理を実行するときに、情報処理装置に接続されている入力装置のファームウェアを更新させる処理も実行してもよい。このような構成を採用することで、何らかの原因でファームウェアを更新できていない入力装置に対しても、ファームウェアを更新できる。
更新手段は、実行手段でのアプリケーションプログラムの実行に応じて、情報処理装置のシステムプログラムのバージョン情報を取得するとともに、情報処理装置のシステムプログラムのバージョン情報がアプリケーションプログラムの実行に必要な条件を満たしていない場合には、情報処理装置のシステムプログラムを更新させる処理を実行してもよい。このような構成を採用することで、実行されるアプリケーションの内容などに応じて異なる条件に応じて、情報処理装置のシステムプログラムの更新処理を合理的に実行できる。
情報処理装置は、他の情報処理装置と無線で通信するための無線通信手段をさらに有していてもよい。更新手段は、情報処理装置が他の情報処理装置と無線で通信していない場合に、ファームウェアの更新をさせる処理を実行するようにしてもよい。このような構成を採用することで、入力装置のファームウェアを更新するにあたって、当該更新が失敗する可能性を低減させることができ、これによって、入力装置のファームウェアをより確実に更新できる。
更新手段は、情報処理装置のバッテリの残量が予め定められた条件を満たしており、かつ、入力装置のバッテリの残量が予め定められた条件を満たしている場合に、入力装置のファームウェアを更新させる処理を実行してもよい。このような構成を採用することで、情報処理装置側および入力装置側のそれぞれについて、当該更新が失敗する可能性を低減させることができ、これによって、入力装置のファームウェアをより確実に更新できる。
情報処理装置には、複数の入力装置が有線または無線で接続可能になっていてもよい。更新手段は、アプリケーションプログラムで使用される入力装置のファームウェアを更新させる処理を実行するとともに、アプリケーションプログラムでの使用の有無とは独立して、情報処理装置に接続されている他の入力装置のファームウェアも更新させる処理を実行してもよい。このような構成を採用することで、情報処理装置に接続されているすべての入力装置のファームウェアを一括して更新できる。
実行手段は、アプリケーションプログラムとして、ゲームのアプリケーションプログラムを実行してもよい。ゲームのアプリケーションプログラムは、ゲーム内容に応じて、要求される条件が大きく異なることがあるが、このような構成を採用することで、このような要求にも応えることができる。
別の実施の形態に従う情報処理システムは、入力装置と、入力装置が有線または無線で接続される情報処理装置とを含む。情報処理装置は、入力装置が受付けたユーザ操作に基づいてアプリケーションプログラムを実行する実行手段と、ネットワークを介してサーバから入力装置のファームウェアの更新データを取得する取得手段と、アプリケーションプログラムの実行中に、アプリケーションプログラムからの要求に応じて、入力装置のファームウェアを更新させる処理を実行する更新手段とを含む。実行手段は、更新手段によるファームウェアの更新前にアプリケーションプログラムの実行を中断するとともに、更新手段によるファームウェアの更新が完了したことに応じてアプリケーションプログラムの実行を再開する。この構成によれば、上述の情報処理装置と同様の利点が得られる。
別の実施の形態に従えば、入力装置が有線または無線で接続される情報処理装置において実行される情報処理方法が提供される。情報処理方法は、入力装置が受付けたユーザ操作に基づいてアプリケーションプログラムを実行するステップと、ネットワークを介してサーバから入力装置のファームウェアの更新データを取得するステップと、アプリケーションプログラムの実行中に、アプリケーションプログラムからの要求に応じて、入力装置のファームウェアを更新させる処理を実行するステップと、入力装置のファームウェアの更新前にアプリケーションプログラムの実行を中断するステップと、入力装置のファームウェアの更新が完了したことに応じてアプリケーションプログラムの実行を再開するステップとを含む。この構成によれば、上述の情報処理装置と同様の利点が得られる。
別の実施の形態に従えば、入力装置が有線または無線で接続されるコンピュータで実行される情報処理プログラムが提供される。情報処理プログラムはコンピュータに、ネットワークを介してサーバから入力装置のファームウェアの更新データを取得するステップと、入力装置が受付けたユーザ操作に基づいてアプリケーションプログラムを実行している状態において、アプリケーションプログラムからの要求に応じて、入力装置のファームウェアを更新させる処理を実行するステップと、入力装置のファームウェアの更新前にアプリケーションプログラムの実行を中断するステップと、入力装置のファームウェアの更新が完了したことに応じてアプリケーションプログラムの実行を再開するステップとを実行させる。この構成によれば、上述の情報処理装置と同様の利点が得られる。
本技術によれば、有線または無線で接続される入力装置のファームウェアの更新についてのユーザビリティを向上させることができる。
本実施の形態に従うシステムの全体構成を示す模式図である。 本実施の形態に従う本体装置のハードウェア構成の一例を示すブロック図である。 本実施の形態に従う入力装置のハードウェア構成の一例を示すブロック図である。 本実施の形態に従うシステムにおいてサーバから提供される更新データセットの一例を示す模式図である。 図4に示す更新データセットを用いた更新状態の一例を説明するための図である。 本実施の形態に従うシステムにおける入力装置のファームウェアの更新処理に係る状態遷移の一例を示す模式図である。 本実施の形態に従う本体装置がアプリケーションプログラムの実行中に入力装置のファームウェアを更新する場合の処理手順を示すフローチャートである。 本実施の形態に従う本体装置がHOMEメニュー画面を表示している状態において入力装置のファームウェアの更新処理を実行する場合の処理手順を示すフローチャートである。 図7および図8に示す更新処理の詳細の処理手順を示すフローチャートである。 本実施の形態に従う本体装置において実現される機能的構成の一例を示す模式図である。 本実施の形態に従う本体装置におけるソフトウェア実装の一例を示す模式図である。 本実施の形態に従う本体装置がシステムプログラムを更新する場合の処理手順を示すフローチャートである。 本実施の形態に従うゲーム装置が提供するコントローラ使用の設定支援画面の一例を示す模式図である。
本実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
[A.システム構成]
まず、本実施の形態に従う情報処理装置を含むシステムの全体構成について説明する。図1は、本実施の形態に従うシステム1の全体構成を示す模式図である。図1を参照して、システム1は、1または複数のゲーム装置2と、サーバ200とを含む。
以下の説明においては、情報処理装置としてゲーム装置(ゲーム専用機)を例に説明するが、これに限らず、例えば、パーソナルコンピュータ、スマートフォン、タブレット、携帯電話、その他のスマートデバイスといった、ゲームを実行可能な任意の情報処理装置に適用可能である。
図1には、説明の便宜上、2つのゲーム装置2A,2Bを例示するが、システム1は、1つのゲーム装置2だけで構成されてもよいし、より多くのゲーム装置2を含んでいてもよい。
ゲーム装置2の各々には、1または複数の入力装置が有線または無線で接続される。図1に示す例においては、ゲーム装置2は、本体装置4と、左コントローラ6と、右コントローラ8とを含む。本体装置4は、コンピュータの一種であり、表示部の一例としてのディスプレイ12を有している。
本体装置4が情報処理装置の一例に相当し、左コントローラ6および右コントローラ8が入力装置の一例に相当する。本体装置4と左コントローラ6および/または右コントローラ8とを組み合わせたゲーム装置2は、情報処理システムとみなすこともできる。
左コントローラ6および右コントローラ8は、ユーザ操作を受付け、その受付けたユーザ操作を示す情報を本体装置4へ送信する。なお、本体装置4から左コントローラ6および右コントローラ8へデータが送信されることもある。
図1に示すゲーム装置2Aにおいては、左コントローラ6および右コントローラ8は、本体装置4に装着された状態(以下、「装着状態」とも称す。)にある。装着状態においては、基本的には、本体装置4と左コントローラ6との間、および、本体装置4と右コントローラ8との間は、有線で接続される。
一方、ゲーム装置2Bにおいては、左コントローラ6および右コントローラ8は、本体装置4から外された状態(以下、「離脱状態」とも称す。)にある。離脱状態においては、本体装置4と左コントローラ6との間、および、本体装置4と右コントローラ8との間は、無線で接続される。
さらに、本体装置4には、別の入力装置として補助コントローラ10が有線または無線で接続されてもよい。図1には、補助コントローラ10が無線で本体装置4に接続される例を示す。
本体装置4は、入力装置である、左コントローラ6、右コントローラ8、および補助コントローラ10のいずれかに対するユーザ操作に従って、システムプログラムおよび各種のアプリケーションプログラムを実行する。典型的には、本体装置4は、アプリケーションプログラムとして、ゲームのアプリケーションプログラムなどを実行する。
なお、ゲーム装置2の本体装置4と他のゲーム装置2の本体装置4との間で通信を可能にしてもよい。例えば、ゲーム装置2Aの本体装置4とゲーム装置2Bの本体装置4との間を無線で接続してもよい。このような本体装置4同士の接続を「ローカル通信」とも称す。このようなローカル通信は、対戦ゲームや複数人でプレイするゲームなどに有効である。
本体装置4の各々は、さらに、ネットワーク20を介してサーバ200へアクセスが可能になっている。図1に示す例では、ネットワーク20に接続されたアクセスポイント22を介して、サーバ200へアクセスする構成を示すが、これに限らず、任意の接続形態を採用できる。例えば、有線接続により、本体装置4とサーバ200とを接続してもよいし、LTE(Long Term Evolution)やWiMAXといったモバイル通信を用いて、本体装置4とサーバ200とを接続してもよい。
サーバ200は、1または複数のプログラムをダウンロード可能に保持しており、本体装置4からの要求に応じて、あるいは、予め定められた条件が成立することに応じて、対象となるプログラムを本体装置4へ提供する。すなわち、本体装置4の各々は、サーバ200から任意のプログラムをダウンロードすることができる。あるいは、サーバ200が任意のプログラムを任意の本体装置4へプッシュ送信できるようにしてもよい。
以下の説明においては、一例として、本体装置4で利用されるプログラムを更新するためのデータ(以下、「更新データ」とも称す。)をサーバ200が提供する構成について説明する。プログラムを更新する方法としては、現在のプログラムコードと更新後のプログラムコードとの差分のみを提供する形態、および、更新後のプログラムコード全体を提供する形態、などが存在する。本明細書において、「更新データ」との用語は、更新の形態によらず、プログラムの更新に必要な任意のデータを包含する。
以下の説明においては、更新対象となる本体装置4で利用されるプログラムの一例として、本体装置4の基本的な機能を提供するシステムプログラム(本体装置4で実行される)と、入力装置(左コントローラ6、右コントローラ8、補助コントローラ10など)のファームウェアを想定する。なお、システムプログラムおよび入力装置のファームウェアに限定されることなく、任意のプログラムを更新対象にできる。
本明細書において、「ファームウェア」との用語は、入力装置を構成するハードウェアコンポーネントなどを制御するためのプログラムを包含する概念であり、特定のコード形態に限定されるものではない。例えば、「ファームウェア」は、アセンブリ言語で記述されたコードであってもよいし、BIOS(Basic Input/Output System)のようなプログラムであってもよいし、さらに、より高級な言語で記述されたプログラムであってもよい。
本明細書において、「アプリケーションプログラム」との用語は、情報処理装置のプロセッサで実行されるプログラムコードを包含する概念であり、「ファームウェア」とは区別される。「アプリケーションプログラム」は、大別して、「ユーザアプリケーションプログラム」(以下、「ユーザアプリケーション」とも略称する。)および「システムアプリケーションプログラム」(以下、「システムプログラム」とも略称する。)を含み得る。
「ユーザアプリケーション」は、ゲームアプリケーションや設定アプリケーションなどの個別に実行されるプログラムを包含する概念である。一方、「システムプログラム」は、ユーザが情報処理装置を操作するための基本的な機能を提供するとともに、「ユーザアプリケーション」の実行環境を提供するプログラムを包含する概念である。以下では、主として、「アプリケーションプログラム」として、「ユーザアプリケーション」(特に、ゲームのアプリケーションプログラム)を一例に説明するが、「ユーザアプリケーション」に限定されることなく、「システムプログラム」の実行過程においても、本願発明の技術的範囲に含まれ得る。
以下では、本体装置と入力装置との構成に着目して説明するが、本発明の技術思想は、本体装置と分離して使用可能な周辺装置に適用可能である。このような周辺装置としては、上述したコントローラなどの入力装置に加えて、スピーカやディスプレイなどの出力装置に及び得る。
[B.システム1を構成する各装置のハードウェア構成]
次に、本実施の形態に従うシステム1を構成する各装置のハードウェア構成の一例について説明する。
(b1:本体装置4)
図2は、本実施の形態に従う本体装置4のハードウェア構成の一例を示すブロック図である。図2に示すコンポーネントは、例えば、電子部品として電子回路基板上に実装されてハウジング内に収納される。
本体装置4は、ゲーム処理を含めて各種処理を実行する実行モジュールに相当するCPU(Central Processing Unit)81を有している。CPU81は、プロセッサの一例であり、アクセス可能な記憶部(具体的には、フラッシュメモリ84などの内部記憶媒体、または、第1スロット23もしくは第2スロット24に装着される外部記憶媒体など)に格納されるプログラムを読み出して実行する。
本体装置4は、内蔵される記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を有している。フラッシュメモリ84は、主に、本体装置4で利用される各種のプログラムおよびデータを不揮発的に格納する。フラッシュメモリ84が格納するプログラムおよびデータの一例として、システムプログラム150、ユーザアプリケーション160、および更新データセット210が含まれる。DRAM85は、CPU81でのプログラム実行において用いられる各種のデータを一時的に格納する。
システムプログラム150は、一種のOS(Operating System)のような役割を果たし、本体装置4における基本的な機能を提供するとともに、ユーザアプリケーションなどの実行環境を提供する。すなわち、システムプログラム150は、本体装置4が情報処理方法を実行するための情報処理プログラムに相当する。
本体装置4は、第1スロットインターフェイス(I/F)91および第2スロットインターフェイス92を有している。第1スロットインターフェイスは、第1スロット23に接続され、CPU81の指示に応じて、第1スロット23に装着された第1の種類の記憶媒体(例えば、SDカード)に対するデータの読み出しおよび書込みを行なう。第2スロットインターフェイス92は、第2スロット24に接続され、CPU81の指示に応じて、第2スロット24に装着された第2の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書込みを行なう。
本体装置4は、ネットワーク20を介してサーバ200などの外部装置(いずれも図1参照)と通信(具体的には、無線通信)するためのネットワーク通信部82を有している。例えば、ネットワーク通信部82は、Wi−Fiの認証を受けた通信モジュールが用いられ、無線LANを介して外部装置と通信を行なう。また、ネットワーク通信部82は、他の本体装置4との通信(ローカル通信)を担当することもある。すなわち、ネットワーク通信部82は、他の本体装置4と無線で通信するための無線通信機能を提供する。
別の実施形態として、本体装置4は、無線LANに接続して通信を行なう機能に加えて(または、それに代えて)、モバイル通信網(すなわち、携帯電話通信網)に接続して通信を行なう機能を有していてもよい。
本体装置4は、左コントローラ6および/または右コントローラ8と無線通信を行なうためのコントローラ通信部83を有している。本体装置4と各コントローラとの通信方式は任意であるが、例えば、Bluetooth(登録商標)の規格に従った通信方式を採用できる。
CPU81は、左側端子17、右側端子21、および下側端子27に接続される。CPU81は、左コントローラ6と有線通信を行なう場合、左側端子17を介して左コントローラ6と間でデータを送受信する。また、CPU81は、右コントローラ8と有線通信を行なう場合、右側端子21を介して右コントローラ8と間でデータを送受信する。CPU81は、図示しないクレードルと通信を行なう場合、下側端子27を介してクレードルとの間でデータを送受信する。
本体装置4は、タッチパネル13の制御を行なうためのタッチパネルコントローラ86を有している。タッチパネルコントローラ86は、タッチパネル13からの信号に応じて、タッチ入力が行なわれた位置を示すデータを生成してCPU81へ出力する。
ディスプレイ12は、CPU81が各種処理の実行することで生成された画像、および/または、外部から取得した画像を表示する。
本体装置4は、コーデック回路87およびスピーカ88(具体的には、左スピーカおよび右スピーカ)を有している。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する。
本体装置4は、電力制御部97およびバッテリ98を有している。電力制御部97は、CPU81からの指令に基づいて、バッテリ98から各コンポーネントへの電力供給を制御する。電力制御部97は、電源ボタン28に対する入力に応じて電力供給を制御する。
外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置4に電力が供給される場合、バッテリ98はその供給される電力により充電される。なお、本体装置4のバッテリ98の充電容量は、左コントローラ6および右コントローラ8が有しているバッテリよりも充電容量が大きいことが好ましい。
(b2:左コントローラ6および右コントローラ8(入力装置))
図3は、本実施の形態に従う入力装置のハードウェア構成の一例を示すブロック図である。図3には、左コントローラ6および右コントローラ8に関連する本体装置4のコンポーネントについても描いている。図2に示すコンポーネントは、例えば、電子部品として電子回路基板上に実装されてハウジング内に収納される。
左コントローラ6は、左コントローラ6の全体を制御する通信制御部101を有している。通信制御部101は、典型的には、マイクロプロセッサおよび通信モジュールを含んで構成される。通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方をサポートする。
左コントローラ6は、フラッシュメモリ102を有している。フラッシュメモリ102にはファームウェア108が格納されており、通信制御部101のマイクロプロセッサがファームウェア108を実行することによって、左コントローラ6における各種処理を実行する。
左コントローラ6は、操作ボタン群103およびアナログスティック104を有している。操作ボタン群103およびアナログスティック104に対して行なわれたユーザ操作を示す情報は、所定周期で通信制御部101へ繰り返し送信される。
左コントローラ6には、さらに、各種のセンサ(例えば、加速度センサおよび角速度センサなど)が配置されていてもよい。この場合には、各センサにて検出された検出値を示す情報についても、所定周期で通信制御部101へ繰り返し送信される。
左コントローラ6には、さらに、付加機能部109を有している。付加機能部109は、左コントローラ6において、ユーザ操作の受付けに加えて、各種のセンシング機能、通信機能、およびその他の付加機能を提供するデバイスを含む。
付加機能部109は、例えば、静止画像または動画像を取得するためのカメラ、赤外線画像を取得するIR(infrared)カメラ、スピーカ、マイク、非接触通信を行なうNFC(Near field radio communication)モジュール、ユーザに振動を与える振動子、感熱デバイス、発熱デバイスなどが挙げられる。付加機能部109としては、これらのデバイスに限らず、任意のデバイスを採用することができる。さらに、付加機能部109を事後的に装着するような形態であってもよい。
付加機能部109が提供する機能を十分に利用したい場合には、ファームウェア108を適宜更新することが想定されている。
左コントローラ6は、バッテリ106を含む電力供給部105を有している。電力供給部105は、左コントローラ6の各コンポーネントへの電力供給を制御する。バッテリ106は、左コントローラ6が本体装置4に装着されている場合において、端子107を介して本体装置4からの電力によって充電される。
右コントローラ8は、基本的には、上述した左コントローラ6と同様の構成を有している。すなわち、右コントローラ8は、通信制御部111と、ファームウェア118などを格納するフラッシュメモリ112と、操作ボタン群113と、アナログスティック114と、付加機能部119と、バッテリ116を含む電力供給部115とを有している。右コントローラ8の各コンポーネントについては、左コントローラ6に関して説明した対応するコンポーネントと同様の構成および機能を有しているので、詳細な説明は繰り返さない。
但し、操作ボタン群113および/またはアナログスティック114に対するユーザ操作に応じて出力されるデータの内容は、左コントローラ6の操作ボタン群103および/またはアナログスティック104に対する同一のユーザ操作に応じて出力されるデータの内容とは異なっていることもある。また、左コントローラ6の付加機能部109および右コントローラ8の付加機能部119には、互いに異なる機能が割当てられる場合もある。そのため、基本的には、右コントローラ8の各コンポーネントを制御するためのファームウェア108、および、左コントローラ6の各コンポーネントを制御するためのファームウェア118は、それぞれのコントローラに固有なものとして提供される。それに伴って、ファームウェア用の更新データもコントローラ毎に提供されることになる。
(b3:補助コントローラ10(入力装置))
補助コントローラ10は、端子を介して本体装置4と通信する以外の機能は、左コントローラ6および右コントローラ8と同様の構成および機能を有しているので、詳細な説明は繰り返さない。
(b4:サーバ200)
サーバ200は、任意のコンピュータを用いて実現される。サーバ200は、例えば、本体装置4の種類やバージョンなどに応じた更新データを保持するとともに、必要に応じて、本体装置4へ提供するようなストレージを有している。
[C.更新データ]
次に、本実施の形態に従うシステム1において、サーバ200から提供される更新データについて説明する。
図4は、本実施の形態に従うシステム1においてサーバ200から提供される更新データセット210の一例を示す模式図である。図4を参照して、更新データセット210は、本体装置4で実行されるシステムプログラム150の更新データである、システムプログラム用更新データ211を含む。
更新データセット210は、入力装置のファームウェアの更新データをさらに含む。すなわち、更新データセット210は、左コントローラ6のファームウェア用更新データ212と、右コントローラ8のファームウェア用更新データ213と、補助コントローラ10のファームウェア用更新データ214とを含む。
さらに、更新データセット210は、他の入力装置のファームウェア用更新データ215を含んでいてもよい。
このように、本実施の形態に従うシステム1においては、本体装置4で実行されるシステムプログラム150の更新データとともに、本体装置4に接続される各入力装置で実行されるファームウェアの更新データが一括して提供される。
後述するように、本体装置4のシステムプログラム150の更新と、各入力装置のファームウェアの更新とは併せて実行されるとは限らず、同一の更新データセット210に含まれる一部の更新データのみが適用され、残りの更新データは適用されない場合もある。
図5は、図4に示す更新データセット210を用いた更新状態の一例を説明するための図である。図5(A)に示すように、例えば、いずれも「Ver.2.0」の更新データからなる更新データセット210が配信されたとする。
図5(B)に示すように、本体装置4ならびに左コントローラ6および右コントローラ8(入力装置)に対して、更新データセット210に含まれるそれぞれの更新データが反映されて、いずれも「Ver.2.0」まで更新されている場合もある。一方、図5(C)に示すように、本体装置4に対してのみ更新データが反映されたものの、左コントローラ6および右コントローラ8(入力装置)に対しては更新データが反映されない場合もある。このような場合には、本体装置4のみが「Ver.2.0」まで更新されているものの、左コントローラ6および右コントローラ8(入力装置)は従来のバージョンである「Ver.1.0」に留まっている場合もある。
図5(C)に示す場合には、本体装置4においては、最新のシステムプログラム150が実行される一方で、入力装置においては、古いバージョンのファームウェアが実行されることになる。このような更新状態のばらつきがあっても、基本的な処理が継続できるように、更新データセット210に含まれるそれぞれの更新データが用意される。
本実施の形態に従うシステム1においては、入力装置のファームウェアのみを更新することが可能である。入力装置のファームウェアの更新は、本体装置4でユーザアプリケーション160が実行される際に、必要に応じて実行することも可能である。
本実施の形態においては、主として、サーバ200から更新データセット210を取得する方法について例示するが、この方法に限られるものではない。例えば、第1スロット23もしくは第2スロット24(図2参照)に装着される外部記憶媒体などを介して、更新データセット210を取得するようにしてもよい。この場合、外部記憶媒体には、任意のユーザアプリケーション160と、当該ユーザアプリケーション160の実行に必要な更新データセット210とがセットで格納されていてもよい。
図4には、本体装置4のシステムプログラム用の更新データ、および、入力装置のファームウェアの更新データが一体化された更新データセット210を示すが、これに限らず、各更新データを都度ダウンロードするようにしてもよい。このような都度ダウンロードすることで、ダウンロードの負荷を低減できるとともに、本体装置4の記憶領域が過剰に大きくなることを防止できる。
[D.入力装置のファームウェア更新処理の概要]
次に、本実施の形態に従うシステム1における入力装置のファームウェア更新処理の概要について説明する。
本実施の形態に従うシステム1においては、入力装置のファームウェアの更新は、(1)本体装置4でのユーザアプリケーション160の実行中において、入力装置に必要な条件が満たされていないと判定された場合、(2)システムプログラム150が入力装置のファームウェアの更新が必要であると判定した場合、(3)ユーザが明示的に入力装置のファームウェアの更新を指示した場合、などに実行される。
本体装置4のシステムプログラム150の更新が実行された際に、入力装置のファームウェアの更新も併せて実行されてもよい。この場合の処理については、後述する。
図6は、本実施の形態に従うシステム1における入力装置のファームウェアの更新処理に係る状態遷移の一例を示す模式図である。図6を参照して、ユーザアプリケーション160の実行中(状態ST1)に、入力装置のファームウェアを更新する必要があると判定されると、実行中のユーザアプリケーション160の実行が中断されるとともに、入力装置のファームウェアの更新処理が開始される(状態ST4)。そして、入力装置のファームウェアの更新処理が完了すると、ユーザアプリケーション160の実行は再開される(状態ST1)。
ここで、本明細書において、「(アプリケーションプログラムの)実行の中断」は、アプリケーションプログラム自体の処理が止まる場合だけではなく、ユーザの視点から見て進行が一時的に停止する場合を含み得る。例えば、いずれかのアプリケーションプログラムを実行して、いずれかの処理を選択した場合、入力装置のファームウェアを更新しなければ、当該選択した処理がそれ以上進まないような状態を含み得る。
また、HOMEメニューなどが表示されている状態(状態ST2)において、システムプログラム150が接続されている入力装置のファームウェアの更新が必要であると判定すると、ユーザの承諾を受けて、入力装置のファームウェアの更新処理が開始される(状態ST4)。そして、入力装置のファームウェアの更新処理が完了すると、元の画面に戻る。
接続されている入力装置のファームウェアの更新が必要である場合としては、例えば、いずれかの入力装置のファームウェアの更新処理が失敗したとの履歴が残っている場合、および、システムプログラム150が必要とする条件を接続されている入力装置のファームウェアが満たしていない場合などが想定される。
また、HOMEメニューなどからユーザ操作によって手動更新画面へ遷移した後(状態ST3)、ユーザ操作を受けて、入力装置のファームウェアの更新処理が開始される(状態ST4)。そして、入力装置のファームウェアの更新処理が完了すると、HOMEメニューなどに戻る。
[E.入力装置のファームウェア更新の処理手順]
次に、本実施の形態に従うシステム1における入力装置のファームウェア更新の処理手順について説明する。
(e1:ユーザアプリケーション160の実行中)
まず、図6に示す状態ST1に対応する処理手順について説明する。
図7は、本実施の形態に従う本体装置4がユーザアプリケーション160の実行中に入力装置のファームウェアを更新する場合の処理手順を示すフローチャートである。図7に示す各ステップは、本体装置4のCPU81(図2参照)がシステムプログラム150およびユーザアプリケーション160を実行することで実現される。
図7を参照して、まず、本体装置4の電源が投入されると、本体装置4は、システムプログラム150を実行して、HOMEメニューを表示する(ステップS100)。HOMEメニューにおいて、いずれかのユーザアプリケーション160の実行が指示されると(ステップS102においてYESの場合)、本体装置4は、指示されたユーザアプリケーション160を起動し(ステップS104)、ユーザ操作に応じてユーザアプリケーション160を実行する(ステップS106)。いずれのユーザアプリケーション160の実行も指示されなければ(ステップS102においてNOの場合)、ステップS102の処理が繰り返される。
ユーザアプリケーション160の実行中において、入力装置のファームウェアが必要な条件を満たしているか否かの判定が必要でなければ(ステップS108においてNOの場合)、処理はステップS122へ進む。
これに対して、ユーザアプリケーション160の実行中において、入力装置のファームウェアが必要な条件を満たしているか否かの判定が必要になると(ステップS108においてYESの場合)、本体装置4は、接続されている入力装置のファームウェアの状態情報(典型的には、バージョン情報)を取得する(ステップS110)。すなわち、ユーザアプリケーション160からの要求に応じて、入力装置のファームウェアのバージョン情報が取得される。
接続されている入力装置のファームウェアの状態情報を取得する典型的な実装形態としては、本体装置4と各入力装置(左コントローラ6、右コントローラ8、補助コントローラ10など)とが接続を確立する際に、本体装置4がそれぞれのファームウェアの状態情報を予め取得しておく方法と、本体装置4から各入力装置に対してファームウェアの状態情報を都度問い合わせる方法とが想定される。本実施の形態においては、いずれの方法を採用してもよい。
続いて、本体装置4は、取得したファームウェアの状態情報が、実行中のユーザアプリケーション160の実行に必要な条件を満たしているか否かを判定する(ステップS112)。すなわち、入力装置のファームウェアのバージョン情報がユーザアプリケーション160から要求される条件を満たしているか否かが判定される。
取得したファームウェアの状態情報が、実行中のユーザアプリケーション160の実行に必要な条件を満たしていなければ(ステップS112においてNOの場合)、本体装置4は、実行中のユーザアプリケーション160の実行を中断し(ステップS114)、入力装置のファームウェアの更新処理を実行する(ステップS200)。すなわち、入力装置がユーザアプリケーション160の実行に必要な条件を満たしていない場合に、入力装置のファームウェアが更新される。入力装置のファームウェアの更新処理(ステップS200)に係る詳細については、後述する。
入力装置のファームウェアの更新処理が成功裏に終了すると(ステップS116においてYESの場合)、本体装置4は、中断したユーザアプリケーション160の実行を再開する(ステップS118)。そして、ステップS106以下の処理が繰り返される。
入力装置のファームウェアの更新処理が成功裏に終了しなければ(ステップS116においてNOの場合)、本体装置4は、ユーザから入力装置のファームウェア更新処理の再実行が指示されたか否かを判定する(ステップS120)。
ユーザから入力装置のファームウェア更新処理の再実行が指示されると(ステップS120においてYESの場合)、本体装置4は、ステップS200以下の処理を再実行する。
これに対して、ユーザから入力装置のファームウェア更新処理の再実行が指示されなければ(ステップS120においてNOの場合)、本体装置4は、ステップS122以下の処理を実行する。
ステップS122において、本体装置4は、ユーザアプリケーション160の終了が指示されたか否かを判定する(ステップS122)。ユーザアプリケーション160の終了が指示されると(ステップS122においてYESの場合)、ユーザアプリケーション160の実行を終了する(ステップS124)。
ユーザアプリケーション160の終了が指示されなければ(ステップS122においてNOの場合)、ステップS106以下の処理が繰り返される。
以上のような処理によって、ユーザアプリケーション160の実行中において、入力装置のファームウェアが必要に応じて更新される。
なお、上述の処理手順においては、取得したファームウェアの状態情報が、実行中のユーザアプリケーション160の実行に必要な条件を満たしていなければ、入力装置のファームウェアの更新処理が自動的に実行される例を示したが、入力装置のファームウェアの更新処理は、ユーザの承諾を受けなければ開始されないようにしてもよい。あるいは、入力装置のファームウェア更新処理の開始前に、更新処理が開始される旨をユーザに通知するようにしてもよい。
上述の処理手順においては、取得したファームウェアの状態情報が、実行中のユーザアプリケーション160の実行に必要な条件を満たしていない場合に、ユーザアプリケーション160の実行を中断する処理(ステップS112およびS114)を例示したが、これに限らず、先に実行中のユーザアプリケーション160の実行を中断した上で、入力装置のファームウェアの状態情報を取得するようにしてもよい。
(e2:HOMEメニューからの実行)
次に、図6に示す状態ST2および状態ST3に対応する処理手順について説明する。
図8は、本実施の形態に従う本体装置4がHOMEメニュー画面を表示している状態において入力装置のファームウェアの更新処理を実行する場合の処理手順を示すフローチャートである。図8に示す各ステップは、本体装置4のCPU81(図2参照)がシステムプログラム150およびユーザアプリケーション160を実行することで実現される。
図8を参照して、まず、本体装置4の電源が投入されると、本体装置4は、システムプログラム150を実行して、HOMEメニューを表示する(ステップS150)。
続いて、本体装置4は、いずれかの入力装置のファームウェアの更新処理が失敗したとの履歴が存在するか否かを判定する(ステップS152)。いずれかの入力装置のファームウェアの更新処理が失敗したとの履歴が存在していれば(ステップS152においてYESの場合)、本体装置4は、入力装置のファームウェアの更新処理を実行する(ステップS200)。入力装置のファームウェアの更新処理(ステップS200)に係る詳細については、後述する。
入力装置のファームウェアの更新処理が成功裏に終了すると(ステップS154においてYESの場合)、本体装置4は、HOMEメニューを再表示する(ステップS162)。これに対して、入力装置のファームウェアの更新処理が成功裏に終了しなければ(ステップS154においてNOの場合)、ステップS152以下の処理が実行される。
これに対して、いずれかの入力装置のファームウェアの更新処理が失敗したとの履歴が存在していなければ(ステップS152においてNOの場合)、ステップS156以下の処理が実行される。
具体的には、本体装置4は、接続されている入力装置のファームウェアの状態情報(典型的には、バージョン情報)を取得する(ステップS156)。そして、本体装置4は、取得したファームウェアの状態情報が、システムプログラム150が必要とする条件を満たしているか否かを判定する(ステップS158)。
取得したファームウェアの状態情報が、システムプログラム150が必要とする条件を満たしていなければ(ステップS158においてNOの場合)、本体装置4は、入力装置のファームウェアの更新処理を実行する(ステップS200)。入力装置のファームウェアの更新処理(ステップS200)に係る詳細については、後述する。
入力装置のファームウェアの更新処理が成功裏に終了すると(ステップS160においてYESの場合)、本体装置4は、HOMEメニューを再表示する(ステップS162)。これに対して、入力装置のファームウェアの更新処理が成功裏に終了しなければ(ステップS160においてNOの場合)、ステップS158以下の処理が実行される。
なお、ステップS156,S158,S200,S160の処理は、接続されている入力装置毎に実行されてもよい。
続いて、本体装置4は、ユーザが手動更新画面の表示を指示したか否かを判定する(ステップS164)。ユーザが手動更新画面の表示を指示していなければ(ステップS164においてNOの場合)、本体装置4は、ユーザが行なった操作に応じた処理を実行する(ステップS176)。
ユーザが手動更新画面の表示を指示していれば(ステップS164においてYESの場合)、本体装置4は、接続されているそれぞれの入力装置からファームウェアの状態情報(典型的には、バージョン情報)を取得する(ステップS166)。そして、本体装置4は、取得したファームウェアの状態情報と、予め取得されている更新データセット210に含まれる各ファームウェア用更新データの状態情報とを比較して、ファームウェアを更新可能な入力装置を一覧表示する(ステップS168)。なお、同一の入力装置に対して異なるバージョンの更新データが提供されている場合であっても、最新の更新データのみを使用することが好ましい。但し、状況に応じて、入力装置毎に利用可能な更新データのバージョンを一覧表示するようにしてもよい。
そして、本体装置4は、ファームウェアを更新可能ないずれかの入力装置が選択されると(ステップS170においてYESの場合)、本体装置4は、選択された入力装置のファームウェアの更新処理を実行する(ステップS200)。入力装置のファームウェアの更新処理(ステップS200)に係る詳細については、後述する。
選択された入力装置のファームウェアの更新処理が成功裏に終了すると(ステップS172においてYESの場合)、本体装置4は、HOMEメニューを再表示する(ステップS174)。これに対して、選択された入力装置のファームウェアの更新処理が成功裏に終了しなければ(ステップS172においてNOの場合)、ステップS166以下の処理が実行される。
ファームウェアを更新可能ないずれの入力装置も選択されなければ(ステップS170においてNOの場合)、処理はステップS174へ進む。ステップS168において、ファームウェアを更新可能な入力装置が存在しない場合にも、処理はステップS174へ進む。
以上のような処理によって、HOMEメニュー画面の起動時または表示中において、入力装置のファームウェアが必要に応じて更新される。
なお、上述の処理手順においては、入力装置のファームウェアの更新処理が必要であると判定されると、更新処理が自動的に開始される例を示したが、この更新処理は、ユーザの承諾を受けなければ開始されないようにしてもよい。あるいは、更新処理の開始前に、更新処理が開始される旨をユーザに通知するようにしてもよい。
(e3:更新処理の詳細)
図9は、図7および図8に示す更新処理の詳細の処理手順を示すフローチャートである。図9に示す各ステップは、本体装置4のCPU81(図2参照)がシステムプログラム150およびユーザアプリケーション160を実行することで実現される。
図9を参照して、まず、本体装置4は、本体装置4自体の電源状態の適否を判定する(ステップS202)。例えば、本体装置4のバッテリ98の残量が予め定められた下限値(例えば、15%)以上である場合、または、本体装置4のバッテリ98が充電中である場合に、電源状態が適切であると判定される。
本体装置4自体の電源状態が適切でなければ(ステップS202においてNOの場合)、本体装置4は、ユーザに対して、本体装置4を外部の充電装置に接続してバッテリを充電するように通知する(ステップS204)。そして、ステップS202以下の処理が繰り返される。なお、ステップS204において、ユーザから更新処理の中止の指示を受けた場合には、以後の処理を中止してもよい。
本体装置4自体の電源状態が適切であれば(ステップS202においてYESの場合)、本体装置4は、ローカル通信中であるか否かを判定する(ステップS206)。
ローカル通信中であれば(ステップS206においてYESの場合)、本体装置4は、ユーザに対して、ローカル通信を中止するように通知する(ステップS208)。そして、ステップS206以下の処理が繰り返される。なお、ステップS208において、ユーザから更新処理の中止の指示を受けた場合には、以後の処理を中止してもよい。
このように、本体装置4が他の本体装置4と無線で通信していない場合に、ファームウェアの更新処理が実行される。以上の処理によって、本体装置4における更新処理の実行条件の判定が終了する。
続いて、本体装置4は、本体装置4に接続されている入力装置のうち更新対象となる入力装置を選択する(ステップS210)。更新対象となる入力装置が複数存在する場合には、本体装置4に接続された順やバージョンが古い順などに従って、更新対象を順次選択するようにしてもよい。あるいは、更新対象となる入力装置をユーザが都度選択するようにしてもよい。
まず、本体装置4は、更新対象となる入力装置の電源状態の適否を判定する(ステップS212)。例えば、入力装置のバッテリ(図3に示すバッテリ106またはバッテリ116など)の残量が予め定められた下限値(例えば、15%)以上である場合、または、入力装置のバッテリが充電中である場合に、電源状態が適切であると判定される。
入力装置の電源状態が適切でなければ(ステップS212においてNOの場合)、本体装置4は、対象の入力装置のファームウェア更新処理を中止する(ステップS214)。そして、ステップS224の処理が実行される。
なお、対象の入力装置のファームウェア更新処理を中止するのではなく、ユーザに対して、対象の入力装置を外部の充電装置に接続してバッテリを充電するように通知するとともに、ファームウェアの更新処理を継続するようにしてもよい。
入力装置の電源状態が適切であれば(ステップS212においてYESの場合)、本体装置4は、対象の入力装置用の更新データとともに、当該更新データを用いたファームウェアの更新を行なう指令を、対象の入力装置へ送信する(ステップS216)。そして、本体装置4は、対象の入力装置との間の通信が継続しているか否かを判定する(ステップS218)。
本体装置4と対象の入力装置との間の通信が切断されると(ステップS218においてNOの場合)、本体装置4は、対象の入力装置のファームウェア更新処理を中止する(ステップS220)。そして、ステップS224の処理が実行される。
なお、いずれかの入力装置のファームウェア更新処理が失敗した場合(ステップS214に到達した場合、または、ステップS220に到達した場合)には、入力装置のファームウェアの更新処理自体をその時点で終了してもよい。このような実装を採用した場合には、ステップS214またはステップS220の後、ステップS232が実行される。
これに対して、本体装置4と対象の入力装置との間の通信が継続していれば(ステップS218においてYESの場合)、本体装置4は、対象の入力装置から更新処理の結果が成功裏に終了した旨の通知を受信したか否かを判定する(ステップS222)。
対象の入力装置から更新処理の結果が成功裏に終了した旨の通知を受信すれば(ステップS222においてYESの場合)、本体装置4は、ステップS224の処理を実行する。
なお、入力装置のファームウェアの更新処理が完了すると、当該入力装置は、再起動する場合もある。
これに対して、対象の入力装置から更新処理の結果が成功裏に終了した旨の通知を受信しなければ(ステップS222においてNOの場合)、本体装置4は、ファームウェアの更新が失敗したと判定して、ステップS212以下の処理を繰り返す。なお、ステップS222において、ユーザから更新処理の中止の指示を受けた場合には、対象の入力装置のファームウェア更新処理を中止してもよい。
ステップS224において、本体装置4は、本体装置4に接続されている入力装置のうち、更新対象として選択されていない入力装置が存在するか否かを判定する(ステップS224)。
更新対象として選択されていない入力装置が存在していれば(ステップS224においてYESの場合)、本体装置4は、本体装置4に接続されている入力装置のうち別の入力装置を新たな更新対象として選択する(ステップS226)。そして、ステップS212以下の処理が繰り返される。
これに対して、本体装置4に接続されている入力装置のすべてが更新対象として選択済であれば(ステップS224においてNOの場合)、本体装置4は、本体装置4に接続されているいずれかの入力装置のファームウェアを更新できたか否かを判定する(ステップS228)。
本体装置4に接続されているいずれかの入力装置のファームウェアを更新できれば(ステップS228においてYESの場合)、本体装置4は、ファームウェアを更新できた入力装置を特定するための情報とともに、更新処理が成功した旨を結果として応答し、処理を終了する(ステップS230)。なお、ファームウェアの更新に失敗した入力装置が存在する場合には、当該ファームウェアの更新に失敗した入力装置を特定するための情報を併せて通知してもよい。
これに対して、本体装置4に接続されているいずれの入力装置のファームウェアも更新できなければ(ステップS228においてNOの場合)、本体装置4は、入力装置の更新処理が失敗した旨を結果として応答し、処理を終了する(ステップS232)。
以上のような処理手順によって、入力装置のファームウェアの更新処理が実行される。
図9に示す更新処理の処理手順において、本体装置4のバッテリの残量が予め定められた条件を満たしており(ステップS202)、かつ、入力装置のバッテリの残量が予め定められた条件を満たしている(ステップS212)場合に、入力装置のファームウェアが更新される。
また、図9に示す更新処理の処理手順において、ステップS210〜S226の処理は、本体装置4に接続されているすべての入力装置を対象に実行される。そのため、実行中のユーザアプリケーション160において利用されない入力装置であっても、ファームウェアの更新対象となり得る。すなわち、図9に示す更新処理においては、ユーザアプリケーション160で利用される入力装置のファームウェアを更新させる処理を実行するとともに、アプリケーションプログラムでの使用の有無とは独立して、本体装置4に接続されている他の入力装置のファームウェアを更新させる処理も実行する。例えば、本体装置4に無線で接続されたコントローラと本体装置4に有線で接続されたコントローラとが存在する状況において、ユーザが、実行中のユーザアプリケーション160を無線接続のコントローラを利用してプレイし、有線接続のコントローラは利用されない場合がある。このような場合であっても、無線接続のコントローラだけではなく、有線接続のコントローラについても、ファームウェアが更新されてもよい。
このような更新処理を採用することで、実行中のユーザアプリケーション160で利用されるか否かにかかわらず、本体装置4に接続されているすべての入力装置がファームウェアの更新対象となるので、例えば、過去の更新処理において十分なバッテリの残量を有していなかった入力装置や、新規購入などによって新たに追加された入力装置などについても、ファームウェアを更新できる。
[F.本体装置の機能的構成]
次に、本実施の形態に従う本体装置4において実現される機能的構成の一例について説明する。図10は、本実施の形態に従う本体装置4において実現される機能的構成の一例を示す模式図である。図10を参照して、CPU81がシステムプログラム150を実行することで、プログラム実行モジュール170と、更新モジュール172と、更新データ取得モジュール174とが実現される。
プログラム実行モジュール170は、入力装置が受付けたユーザ操作に基づいてプログラムを実行する。より具体的には、プログラム実行モジュール170は、ユーザ操作に応じて、システムプログラム150により提供されるメニュー表示や各種設定などの処理を実行するとともに、ユーザアプリケーション160を実行する。
更新データ取得モジュール174は、ネットワーク通信部82(図2参照)に指示を与えるなどして、ネットワーク20を介してサーバ200から更新データセット210を取得する。なお、更新データ取得モジュール174は、記憶媒体を介して更新データセット210を取得してもよい。
更新データセット210は、入力装置のファームウェアの更新データ(図4に示す、左コントローラ6のファームウェア用更新データ212、右コントローラ8のファームウェア用更新データ213、補助コントローラ10のファームウェア用更新データ214など)を含む。
更新モジュール172は、プログラム実行モジュール170によるプログラムの実行中に、プログラムからの要求に応じて、入力装置のファームウェアを更新させる処理を実行する。プログラム実行モジュール170は、更新モジュール172による入力装置のファームウェアの更新前にプログラムの実行を中断するとともに、更新モジュール172による入力装置のファームウェアの更新が完了したことに応じて、中断していたプログラムの実行を再開する。
[G.本体装置のソフトウェア実装]
次に、本実施の形態に従う本体装置4におけるソフトウェア実装の一例について説明する。図11は、本実施の形態に従う本体装置4におけるソフトウェア実装の一例を示す模式図である。図11には、ユーザアプリケーション160からの要求に応じて、入力装置のファームウェアを更新させる処理を実行する場合のいくつかの実装例を示す。
図11(A)には、システムプログラム150が、入力装置ファームウェア状態情報取得モジュール151および入力装置ファームウェア更新モジュール152を含む実装例を示す。この実装例においては、ユーザアプリケーション160が入力装置のファームウェアを更新させる処理を直接要求する。より具体的には、ユーザアプリケーション160は、入力装置のファームウェアが必要な条件が満たしていることを前提とする処理の実行前に、入力装置ファームウェア状態情報取得モジュール151を呼び出して、更新対象となる入力装置のファームウェアの状態情報を取得する。そして、実行に必要な条件を満たしていなければ、ユーザアプリケーション160は、入力装置ファームウェア更新モジュール152を呼び出す。このとき、ユーザアプリケーション160は、入力装置ファームウェア更新モジュール152からの結果が応答されるまでは、処理の実行を中断する。入力装置ファームウェア更新モジュール152は、入力装置のファームウェアの更新処理を実行する。
この実装例においては、上述の図7に示すステップS110,S112などの処理は、入力装置ファームウェア状態情報取得モジュール151を呼び出すことによって実行される。また、上述の図7に示すステップS200などの処理は、入力装置ファームウェア更新モジュール152を呼び出すことによって実行される。
図11(B)に示す実装例においては、ユーザアプリケーション160が入力装置のファームウェアを更新させる処理を間接的に要求する。より具体的には、システムプログラム150が、左コントローラ6の付加機能部109、および/または、右コントローラ8の付加機能部119が提供する機能を利用するための、付加機能利用モジュール153を含む例を示す。この場合、ユーザアプリケーション160において、左コントローラ6の付加機能部109、および/または、右コントローラ8の付加機能部119を利用したい場合には、付加機能利用モジュール153が呼び出される。
付加機能利用モジュール153は、ユーザアプリケーション160に呼び出されると、入力装置ファームウェア状態情報取得モジュール151をさらに呼び出して、接続されている入力装置のファームウェアの状態情報を取得する。そして、付加機能利用モジュール153は、取得したファームウェアの状態情報が、実行に必要な条件を満たしていなければ、入力装置ファームウェア更新モジュール152を呼び出す。これによって、入力装置のファームウェアの更新処理が実行される。
図11(C)に示す実装例においては、ユーザアプリケーション160の内部で要求を発行することで、入力装置ファームウェア状態情報取得モジュール151を利用して、入力装置のファームウェアを更新させる処理を実行する。より具体的には、システムプログラム150が、ユーザアプリケーション160が入力装置ファームウェア更新コード162を有している例を示す。入力装置ファームウェア更新コード162は、図11(A)および図11(B)に示す入力装置ファームウェア更新モジュール152と同様の処理を実行するための命令を含む。
この実装例においては、上述の図7に示す各ステップの処理は、ユーザアプリケーション160によって実行される。但し、接続されている入力装置のファームウェアの状態情報を取得する処理(ステップS110)は、入力装置ファームウェア状態情報取得モジュール151がさらに呼び出されることによって実行される。
図11に示す、入力装置ファームウェア状態情報取得モジュール151、入力装置ファームウェア更新モジュール152、および、付加機能利用モジュール153を呼び出すために、API(Application Programming Interface)が用意されてもよい。この場合には、ユーザアプリケーション160および付加機能利用モジュール153は、APIを介して、任意のモジュールを呼び出すことができる。
このように、入力装置ファームウェア状態情報取得モジュール151を独立して実装することで、ユーザアプリケーション160および付加機能利用モジュール153のいずれからも呼び出して利用することができる。すなわち、本体装置4には、入力装置のファームウェアのバージョン情報を応答するAPIが用意される。これにより、本実施の形態に従う入力装置のファームウェアの更新処理を利用するユーザアプリケーション160の実装の自由度を高めることができる。
なお、図11(A)には、入力装置ファームウェア状態情報取得モジュール151と入力装置ファームウェア更新モジュール152とがそれぞれ独立して実装される例を示すが、これらのモジュールを一体化してもよい。
また、図11に示す入力装置ファームウェア状態情報取得モジュール151は、取得したファームウェアの状態情報が必要な条件を満たしていない場合には、入力装置ファームウェア更新モジュール152をさらに呼び出すようにしてもよい。
上述したように、ユーザアプリケーション160から、入力装置のファームウェアを更新させる処理を実行するための要求を行なう実装例としては、任意の構成を採用できる。
[H.本体装置4のシステムプログラム更新の処理手順]
次に、本体装置4におけるシステムプログラム更新の処理手順の一例について説明する。
図12は、本実施の形態に従う本体装置4がシステムプログラムを更新する場合の処理手順を示すフローチャートである。図12に示す各ステップは、本体装置4のCPU81(図2参照)がシステムプログラム150を実行することで実現される。
図12を参照して、例えば、HOMEメニューにおいて、いずれかのユーザアプリケーション160の実行が指示されると(ステップS300においてYESの場合)、本体装置4は、システムプログラム150の状態情報(典型的には、バージョン情報)を取得し(ステップS302)、取得したファームウェアの状態情報が、指示されたユーザアプリケーション160が必要とする条件を満たしているか否かを判定する(ステップS304)。
取得したファームウェアの状態情報が、指示されたユーザアプリケーション160が必要とする条件を満たしていれば(ステップS304においてYESの場合)、本体装置4は、指示されたユーザアプリケーション160を起動し(ステップS306)、ユーザ操作に応じてユーザアプリケーション160を実行する(ステップS308)。そして、処理は終了する。
これに対して、取得したファームウェアの状態情報が、指示されたユーザアプリケーション160が必要とする条件を満たしていなければ(ステップS304においてNOの場合)、本体装置4は、条件を満たす更新データセット210がフラッシュメモリ84に既に格納されているか否かを判定する(ステップS310)。
条件を満たす更新データセット210がフラッシュメモリ84に格納されていなければ(ステップS310においてNOの場合)、本体装置4は、サーバ200から最新の更新データセット210を取得してフラッシュメモリ84に格納する(ステップS312)。
続いて、本体装置4は、更新データセット210に含まれるシステムプログラム用更新データ211を用いて、システムプログラム150を更新する(ステップS314)。なお、本体装置4のシステムプログラム150の更新処理が完了すると、本体装置4は再起動する場合もある。
このように、本体装置4においては、ユーザアプリケーション160の実行に応じて、本体装置4のシステムプログラム150のバージョン情報を取得するとともに、本体装置4のシステムプログラム150のバージョン情報がユーザアプリケーション160の実行に必要な条件を満たしていない場合には、本体装置4のシステムプログラム150が更新される。なお、上述の説明においては、ユーザアプリケーション160の実行前にシステムプログラム150のバージョン情報を取得する処理例を示すが、これに限らず、ユーザアプリケーション160を実行し、例えば、ユーザアプリケーション160の初期化処理中などに、システムプログラム150のバージョン情報を確認するようにしてもよい。
さらに、本体装置4は、入力装置のファームウェアの更新処理を実行する(ステップS200)。これは、入力装置のファームウェアについても、更新が必要である場合が多いことを想定したものである。入力装置のファームウェアの更新処理が完了すると、ステップS306以下の処理が実行される。
このように、本体装置4においては、本体装置4のシステムプログラム150を更新するときに、本体装置4に接続されている入力装置のファームウェアも更新される。但し、本体装置4のシステムプログラム150の更新処理と、本体装置4に接続されている入力装置のファームウェアの更新処理とは、それぞれ独立に実行させてもよい。すなわち、本体装置4のシステムプログラム150を更新した場合であっても、入力装置のファームウェアの更新は行なわないようにしてもよい。
なお、図12に示す処理手順は一例であり、別の条件が満たされた場合にも、本体装置4におけるシステムプログラムの更新処理を実行するようにしてもよい。この場合においても、入力装置のファームウェアの更新処理を併せて実行するようにしてもよい。
[I.その他の実施の形態]
上述したような実施の形態に加えて、以下のような構成を採用してもよい。
(i1:更新時のメモリバンク)
上述したようなファームウェアの更新処理においては、万が一、更新が失敗したとしても、装置の機能を維持する必要がある。そこで、例えば、フラッシュメモリ内にファームウェア全体を格納可能な領域(バンク)を少なくとも2つ用意しておき、更新時には、一方のバンクに更新前のファームウェアを維持するとともに、他方のバンクに更新後のファームウェアを格納する。そして、他方のバンクへの更新後のファームウェアの格納が成功すると、再起動時にファームウェアを読出すバンクを切替えることで、更新後のファームウェアを実行させることができる。
なお、フラッシュメモリの容量が制限されており、2つのバンクを用意できない場合には、例えば、ファームウェアを基本的な機能の部分と拡張的な機能の部分とに分割し、前者についてのみ2つのバンクを用意するようにしてもよい。
上述のコントローラの場合においては、例えば、ユーザからの操作を受付ける機能、および、受付けたユーザ操作を本体装置4へ伝送する機能などは基本的な機能に相当する。一方、付加機能部109,119を利用するための機能などは拡張的な機能に相当する。
このようにしておけば、万が一、ファームウェアの更新が失敗したとしても、基本的な機能は維持されるため、ファームウェアの更新処理を再実行できる。
(i2:更新失敗防止)
上述したようなファームウェアの更新処理の失敗を防止するために、更新処理に影響を与える他の処理を制約してもよい。
例えば、本体装置4がスリープモードに移行することを禁止してもよいし、電源メニューまたは電源ボタン28を無効化してもよい。また、機内モードなどの無線通信を無効化する処理を禁止してもよい。
上述したような処理に限らず、ユーザの操作によって、入力装置のファームウェアおよび本体装置4のシステムプログラムの更新が失敗する可能性を低減することが好ましい。
(i3:コントローラ使用の設定支援機能)
本実施の形態に従うゲーム装置2においては、複数のコントローラを異なる態様で利用できる。そのため、任意のアプリケーションプログラムが実行される際には、ユーザに対して、利用可能なコントローラの種類や態様を通知するような設定支援機能が提供されることもある。このようなコントローラ使用の設定支援機能を実行する際に、上述したような、入力装置のファームウェア更新処理を実行するようにしてもよい。
図13は、本実施の形態に従うゲーム装置2が提供するコントローラ使用の設定支援画面の一例を示す模式図である。図13に示す設定支援画面は、実行中のアプリケーションプログラムから呼び出される。このような設定支援画面において、ユーザは、いずれかのコントローラをどのような態様で使用するのかを決定する。さらに、選択可能なコントローラの使用形態を視覚的に表示するようにしてもよい。
このような設定支援画面に対してユーザが使用するコントローラおよび使用態様などを決定すると、接続されている入力装置のファームウェアの状態情報が確認されて、必要に応じて、入力装置のファームウェアの更新処理(図9参照)が実行されてもよい。
上述の図9において説明したように、実行中のアプリケーションプログラムにおいて実際に使用される入力装置(コントローラ)だけではなく、本体装置4に接続されているすべての入力装置に対して、ファームウェアの更新処理が試みられる。これによって、利用可能な入力装置のファームウェアをより適切な状態に維持できる。
[J.利点]
本実施の形態に従う本体装置4および1または複数のコントローラを含むゲーム装置2によれば、ユーザがゲームのアプリケーションプログラムをプレイ中に、コントローラのファームウェアの更新が必要であるか否かがアプリケーションプログラム側の要求に応じて判定される。そのため、例えば、本体装置4のシステムプログラム150は更新されているものの、コントローラのファームウェアが更新されていないような状況であっても、ユーザは、個々のコントローラについてファームウェアの更新要否を判定する必要がない。すなわち、実際にプレイするゲームに応じて、適宜更新処理が実行されるので、ユーザは、自身が使用するコントローラのファームウェアが十分に新しいか否かを意識する必要がない。
また、本実施の形態に従う本体装置4および1または複数のコントローラを含むゲーム装置2によれば、ゲームのアプリケーションプログラムから要求された時点において、アプリケーションプログラムの実行を一旦中断した上で、コントローラのファームウェアを更新する。そして、コントローラのファームウェアの更新が完了すると、先に中断したところから、ゲームを再開できるので、煩わしさを感じることなく、ユーザビリティを高めることができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 システム、2,2A,2B ゲーム装置、4 本体装置、6 左コントローラ、8 右コントローラ、10 補助コントローラ、12 ディスプレイ、13 タッチパネル、17 左側端子、20 ネットワーク、21 右側端子、22 アクセスポイント、23 第1スロット、24 第2スロット、25 音声入出力端子、27 下側端子、28 電源ボタン、42,107 端子、81 CPU、82 ネットワーク通信部、83 コントローラ通信部、84,102,112 フラッシュメモリ、85 DRAM、86 タッチパネルコントローラ、87 コーデック回路、88 スピーカ、91 第1スロットインターフェイス(I/F)、92 第2スロットインターフェイス(I/F)、97 電力制御部、98,106,116 バッテリ、101,111 通信制御部、103,113 操作ボタン群、104,114 アナログスティック、105,115 電力供給部、108,118 ファームウェア、109,119 付加機能部、150 システムプログラム、151 入力装置ファームウェア状態情報取得モジュール、152 入力装置ファームウェア更新モジュール、153 付加機能利用モジュール、160 ユーザアプリケーション、162 入力装置ファームウェア更新コード、170 プログラム実行モジュール、172 更新モジュール、174 更新データ取得モジュール、200 サーバ、210 更新データセット、211 システムプログラム用更新データ、212,213,214,215 ファームウェア用更新データ。

Claims (16)

  1. 入力装置が有線または無線で接続される情報処理装置であって、
    前記入力装置が受付けたユーザ操作に基づいてアプリケーションプログラム(但し、前記入力装置のファームウェアを更新させるためのアプリケーションプログラムを除く)を実行する実行手段と、
    ネットワークを介してサーバから前記入力装置のファームウェアの更新データを取得する取得手段と、
    前記入力装置が受付けたユーザ操作に基づいて前記アプリケーションプログラムを実行している状態において、前記アプリケーションプログラムからの要求に応じて、前記入力装置のファームウェアを更新させる処理を実行する更新手段とを備え、
    前記実行手段は、前記更新手段によるファームウェアの更新前に前記アプリケーションプログラムの実行を中断するとともに、前記更新手段によるファームウェアの更新が完了したことに応じて前記アプリケーションプログラムの実行を再開する、情報処理装置。
  2. 入力装置が有線または無線で接続される情報処理装置であって、
    前記入力装置が受付けたユーザ操作に基づいてゲームのアプリケーションプログラムを実行する実行手段と、
    ネットワークを介してサーバから前記入力装置のファームウェアの更新データを取得する取得手段と、
    前記入力装置が受付けたユーザ操作に基づいて前記ゲームのアプリケーションプログラムを実行している状態において、前記ゲームのアプリケーションプログラムからの要求に応じて、前記入力装置のファームウェアを更新させる処理を実行する更新手段とを備え、
    前記実行手段は、前記更新手段によるファームウェアの更新前に前記ゲームのアプリケーションプログラムの実行を中断するとともに、前記更新手段によるファームウェアの更新が完了したことに応じて前記ゲームのアプリケーションプログラムの実行を再開する、情報処理装置。
  3. 前記更新手段は、前記アプリケーションプログラムからの要求に応じて、前記入力装置のファームウェアのバージョン情報を取得する、請求項1または2に記載の情報処理装置。
  4. 前記更新手段は、前記入力装置のファームウェアのバージョン情報が前記アプリケーションプログラムから要求される条件を満たしているか否かを判定する、請求項に記載の情報処理装置。
  5. 前記入力装置のファームウェアのバージョン情報を応答するAPI(Application Programming Interface)をさらに備える、請求項またはに記載の情報処理装置。
  6. 前記取得手段は、前記情報処理装置のシステムプログラムの更新データとともに、前記入力装置のファームウェアの更新データを取得する、請求項1〜のいずれか1項に記載の情報処理装置。
  7. 前記更新手段は、前記情報処理装置のシステムプログラムを更新させる処理を実行するときに、前記情報処理装置に接続されている入力装置のファームウェアを更新させる処理も実行する、請求項に記載の情報処理装置。
  8. 前記更新手段は、前記実行手段での前記アプリケーションプログラムの実行に応じて、前記情報処理装置のシステムプログラムのバージョン情報を取得するとともに、前記情報処理装置のシステムプログラムのバージョン情報が前記アプリケーションプログラムの実行に必要な条件を満たしていない場合には、前記情報処理装置のシステムプログラムを更新させる処理を実行する、請求項に記載の情報処理装置。
  9. 前記情報処理装置は、他の情報処理装置と無線で通信するための無線通信手段をさらに備えており、
    前記更新手段は、前記情報処理装置が前記他の情報処理装置と無線で通信していない場合に、ファームウェアを更新させる処理を実行する、請求項1〜のいずれか1項に記載の情報処理装置。
  10. 前記更新手段は、前記情報処理装置のバッテリの残量が予め定められた条件を満たしており、かつ、前記入力装置のバッテリの残量が予め定められた条件を満たしている場合に、前記入力装置のファームウェアを更新させる処理を実行する、請求項1〜のいずれか1項に記載の情報処理装置。
  11. 前記情報処理装置には、複数の前記入力装置が有線または無線で接続可能になっており、
    前記更新手段は、前記アプリケーションプログラムで使用される入力装置のファームウェアを更新させる処理を実行するとともに、前記アプリケーションプログラムでの使用の有無とは独立して、前記情報処理装置に接続されている他の入力装置のファームウェアも更新させる処理を実行する、請求項1〜10のいずれか1項に記載の情報処理装置。
  12. 前記実行手段は、前記アプリケーションプログラムとして、ユーザアプリケーションプログラムを実行する、請求項1,3〜11のいずれか1項に記載の情報処理装置。
  13. 前記実行手段は、前記ユーザアプリケーションプログラムとして、ゲームのアプリケーションプログラムを実行する、請求項12に記載の情報処理装置。
  14. 入力装置と、
    前記入力装置が有線または無線で接続される情報処理装置とを備え、
    前記情報処理装置は、
    前記入力装置が受付けたユーザ操作に基づいてアプリケーションプログラム(但し、前記入力装置のファームウェアを更新させるためのアプリケーションプログラムを除く)を実行する実行手段と、
    ネットワークを介してサーバから前記入力装置のファームウェアの更新データを取得する取得手段と、
    前記入力装置が受付けたユーザ操作に基づいて前記アプリケーションプログラムを実行している状態において、前記アプリケーションプログラムからの要求に応じて、前記入力装置のファームウェアを更新させる処理を実行する更新手段とを備え、
    前記実行手段は、前記更新手段によるファームウェアの更新前に前記アプリケーションプログラムの実行を中断するとともに、前記更新手段によるファームウェアの更新が完了したことに応じて前記アプリケーションプログラムの実行を再開する、情報処理システム。
  15. 入力装置が有線または無線で接続される情報処理装置において実行される情報処理方法であって、
    前記入力装置が受付けたユーザ操作に基づいてアプリケーションプログラム(但し、前記入力装置のファームウェアを更新させるためのアプリケーションプログラムを除く)を実行するステップと、
    ネットワークを介してサーバから前記入力装置のファームウェアの更新データを取得するステップと、
    前記入力装置が受付けたユーザ操作に基づいて前記アプリケーションプログラムを実行している状態において、前記アプリケーションプログラムからの要求に応じて、前記入力装置のファームウェアを更新させる処理を実行するステップと、
    前記入力装置のファームウェアの更新前に前記アプリケーションプログラムの実行を中断するステップと、
    前記入力装置のファームウェアの更新が完了したことに応じて前記アプリケーションプログラムの実行を再開するステップとを備える、情報処理方法。
  16. 入力装置が有線または無線で接続されるコンピュータで実行される情報処理プログラムであって、前記情報処理プログラムは前記コンピュータに
    ネットワークを介してサーバから前記入力装置のファームウェアの更新データを取得するステップと、
    前記入力装置が受付けたユーザ操作に基づいてアプリケーションプログラム(但し、前記入力装置のファームウェアを更新させるためのアプリケーションプログラムを除く)を実行している状態において、前記アプリケーションプログラムからの要求に応じて、前記入力装置のファームウェアを更新させる処理を実行するステップと、
    前記入力装置のファームウェアの更新前に前記アプリケーションプログラムの実行を中断するステップと、
    前記入力装置のファームウェアの更新が完了したことに応じて前記アプリケーションプログラムの実行を再開するステップとを実行させる、情報処理プログラム。
JP2017119790A 2017-06-19 2017-06-19 情報処理装置、情報処理システム、情報処理方法、および、情報処理プログラム Active JP6965034B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017119790A JP6965034B2 (ja) 2017-06-19 2017-06-19 情報処理装置、情報処理システム、情報処理方法、および、情報処理プログラム
US16/003,439 US10649760B2 (en) 2017-06-19 2018-06-08 Updating a firmware from a server in response to a request from an executing applicant program
EP18178388.7A EP3418899A1 (en) 2017-06-19 2018-06-19 Updating peripheral firmware

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017119790A JP6965034B2 (ja) 2017-06-19 2017-06-19 情報処理装置、情報処理システム、情報処理方法、および、情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2019003557A JP2019003557A (ja) 2019-01-10
JP6965034B2 true JP6965034B2 (ja) 2021-11-10

Family

ID=62712805

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017119790A Active JP6965034B2 (ja) 2017-06-19 2017-06-19 情報処理装置、情報処理システム、情報処理方法、および、情報処理プログラム

Country Status (3)

Country Link
US (1) US10649760B2 (ja)
EP (1) EP3418899A1 (ja)
JP (1) JP6965034B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024014695A1 (ko) * 2022-07-15 2024-01-18 삼성전자주식회사 상호작용에 의해 획득된 순서에 기반하여 패키지들을 컴파일하는 전자 장치 및 방법
WO2024034803A1 (ko) * 2022-08-09 2024-02-15 삼성전자주식회사 펌웨어 프로그램의 업데이트 기능을 제공하는 전자 장치 및 충전 장치, 이의 제어 방법

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10915309B2 (en) * 2018-12-06 2021-02-09 Sap Se Technical configuration delta-driven update and decoupling
US11260288B2 (en) 2019-12-31 2022-03-01 Dell Products L.P. Disassemblable information handling system game controller
US11260291B2 (en) 2019-12-31 2022-03-01 Dell Products L.P. Information handling system and detachable game controller
US11331567B2 (en) 2019-12-31 2022-05-17 Dell Products L.P. Information handling system and game controller trigger
US11013991B1 (en) 2019-12-31 2021-05-25 Dell Products L.P. Information handling system controller adaptive haptic feedback
US11097184B2 (en) 2019-12-31 2021-08-24 Dell Products L.P. Information handling system controller illumination
US11338197B2 (en) * 2019-12-31 2022-05-24 Dell Products L.P. Information handling system controller distributable hardware and logic management
US11097185B2 (en) 2019-12-31 2021-08-24 Dell Products L.P. Detachable information handling system game controller management
US11013987B1 (en) 2019-12-31 2021-05-25 Dell Products L.P. Information handling system controller scalable interface
US11593282B2 (en) * 2020-05-12 2023-02-28 Francesco E. DeAngelis Dual memory secure digital (SD) card and system and method for wirelessly and automatically updating data in host computer using dual memory SD card
GB2605545B (en) * 2020-08-03 2023-04-12 Cirrus Logic Int Semiconductor Ltd Dynamic resource allocation
CN112162772B (zh) * 2020-09-29 2023-03-10 北京东土军悦科技有限公司 一种应用程序的运行控制方法、装置、单片机及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6360362B1 (en) 1998-02-20 2002-03-19 Intel Corporation Automatic update of camera firmware
JP2001067228A (ja) * 1999-08-26 2001-03-16 Nec Corp ファームウェアダウンロード方式
US7380113B2 (en) 2002-05-17 2008-05-27 Xiotech Corporation Method for updating memory resident firmware as a background operation
JP4838338B2 (ja) * 2009-08-31 2011-12-14 株式会社ソニー・コンピュータエンタテインメント 情報処理装置
JP2011209998A (ja) * 2010-03-30 2011-10-20 Japan Tobacco Inc 携帯電話端末
US20120096451A1 (en) 2010-10-15 2012-04-19 Roche Diagnostics Operations, Inc. Firmware update in a medical device with multiple processors
JP5688297B2 (ja) * 2011-01-06 2015-03-25 任天堂株式会社 通信システム、情報処理装置、通信プログラムおよび通信方法
CA2873271C (en) * 2012-05-08 2018-01-02 Schlage Lock Company Llc Remote management of electronic products
JP6316536B2 (ja) * 2012-11-15 2018-04-25 任天堂株式会社 情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法
US20170039372A1 (en) * 2013-03-15 2017-02-09 Electro Industries/Gauge Tech Devices, systems and methods for upgrading firmware in intelligent electronic devices
JP2016001391A (ja) 2014-06-11 2016-01-07 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理システム
JP6433844B2 (ja) 2015-04-09 2018-12-05 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、中継装置、情報処理システム、およびソフトウェアアップデート方法
US9778928B1 (en) * 2016-03-30 2017-10-03 Invensense, Inc. Compressed firmware update

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024014695A1 (ko) * 2022-07-15 2024-01-18 삼성전자주식회사 상호작용에 의해 획득된 순서에 기반하여 패키지들을 컴파일하는 전자 장치 및 방법
WO2024034803A1 (ko) * 2022-08-09 2024-02-15 삼성전자주식회사 펌웨어 프로그램의 업데이트 기능을 제공하는 전자 장치 및 충전 장치, 이의 제어 방법

Also Published As

Publication number Publication date
US20180365001A1 (en) 2018-12-20
EP3418899A1 (en) 2018-12-26
US10649760B2 (en) 2020-05-12
JP2019003557A (ja) 2019-01-10

Similar Documents

Publication Publication Date Title
JP6965034B2 (ja) 情報処理装置、情報処理システム、情報処理方法、および、情報処理プログラム
KR102408583B1 (ko) 근거리 통신 회로의 멀티 모달 운영방법 및 장치
US9887542B2 (en) Power broker module
EP2755136B1 (en) Remote backup system and remote backup method thereof
US10908568B2 (en) Electronic device for controlling IoT device to correspond to state of external electronic device and operation method thereof
US11381100B2 (en) Method for controlling multi-mode charging, mobile terminal, and storage medium
JP2016143318A (ja) プログラム更新装置、プログラム更新システム、家電機器、通信アダプタ、コントローラ、プログラム更新方法、および、プログラム
JP2014006619A (ja) 携帯端末装置の制御方法、制御プログラム及び携帯端末装置
WO2018119708A1 (zh) 控制终端温度的方法及终端
US11800421B2 (en) Electronic device for reducing power consumption and operating method thereof
KR20170089246A (ko) 복수의 운영 체제 환경에서의 하이버네이션 운용 방법 및 장치
KR20180114755A (ko) 디바이스의 통신 연결 방법 및 그 장치
CN114730267A (zh) 预加载应用的方法和支持该方法的电子装置
JP2013025426A (ja) 画像出力装置及びそのプログラム
CN108139899B (zh) 终端设备和控制充电的方法
KR102613405B1 (ko) 블루투스 통신 정보 공유 방법 및 전자 장치
CN111399874A (zh) 一种系统升级方法、装置、存储介质及智能穿戴设备
CN110908733B (zh) 工作模式确定方法及装置、控制方法及装置
JP2019052803A (ja) 機器制御システム
JP2017093722A (ja) ゲームプログラム
JP2007049713A (ja) 車載端末
CN108352581B (zh) 终端设备和控制充电的方法
US20230330524A1 (en) Storage medium, information processing apparatus, information processing system, and game processing method
JP7025107B2 (ja) 電子装置
JP4155565B2 (ja) 表示システムおよびその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200609

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20210208

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20210225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210915

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211020

R150 Certificate of patent or registration of utility model

Ref document number: 6965034

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150