電子装置
【構成】ゲームをポーズ状態に移行させるべく、オペレータが*キー24dを操作すると、電話CPUコア28aは、このキー操作に応答してゲームキーレジスタ1のK6ビットに“1”を設定する。電話CPUコア28aは、ゲームの実行中に電話の着信があったときも、上述のK6ビットに“1”を設定する。ゲームCPUコア50は、K6ビットが“1”に更新されたとき、実行中のゲームにポーズをかける。ゲームが中断している状態で*キー24dが操作されると、K6ビットの設定値が“1”から“0”に更新される。すると、ゲームCPUコア50は、ゲームを再開する。
【効果】 電話の着信があったときは、ゲームは終了ではなく中断されるため、通話が終了した後にゲームを途中から再開することができる。
【効果】 電話の着信があったときは、ゲームは終了ではなく中断されるため、通話が終了した後にゲームを途中から再開することができる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ゲーム機能および電話機能を有し、電話の着信があったときにゲームを中断する、電子装置に関する。
【背景技術】
【0002】
従来のこの種の電子装置の一例が、平成8年3月26日に出願公開された特開平8−84172号[H04M1/00]に開示されている。この従来技術は、電話機能とラジオ放送の受信機能とを備え、ラジオ放送の受信中に着信があると、通話・フックスイッチの操作に応答して、ラジオ放送の受信を終了するとともに、発呼元との接続処理を行なおうとするものである。
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、従来技術は、ラジオ放送の受信を終了しようとするものであるため、電話機能とゲーム機能とを備える電子装置にこの従来技術を適用すると、着信操作に応答してゲームが終了してしまう。そうすると、ゲームは、通話終了後、最初からやり直さなければならなくなる。
【0004】
それゆえに、この発明の主たる目的は、通話終了後にゲームを途中から再開できる、電子装置を提供することである。
【課題を解決するための手段】
【0005】
この発明は、ゲーム機能および電話機能を有する電子装置において、実行中のゲームの中断を指示する中断キー、中断キーの操作に応答して第1所定値が設定される第1レジスタ、第1レジスタの設定値が第1所定値を示すときゲームを中断する中断手段、電話の着信を検出する検出手段、および着信の検出に応答して第1所定値を第1レジスタに設定する設定手段を備えることを特徴とする、電子装置である。
【0006】
実行中のゲームの中断を指示する中断キーが操作されると、第1所定値が第1レジスタに設定される。すると、中断手段によってゲームが中断される。一方、電話の着信は検出手段によって検出され、着信があると第1所定値が設定手段によって第1レジスタに設定される。このため、着信があったときは、中断キーを操作することなくゲームが中断される。
【0007】
この発明のある局面では、第1レジスタが第1所定値を示すと、現時点のゲームデータが保存手段によってメモリに保存される。
【0008】
この発明の他の局面では、ゲームが実行中であるかどうかが判別手段によって判別される。設定手段は、ゲームが実行中のときに、第1所定値を第1レジスタに設定する。つまり、ゲーム実行中に着信があったときに第1所定値が第1レジスタに設定され、これによってゲームが中断される。
【0009】
この発明のその他の局面では、ゲームの再開を指示する再開キーが操作されると、第2所定値が第2レジスタに設定される。すると、再開手段によってゲームが再開される。
【0010】
この発明のさらにその他の局面では、着信があると、表示手段に表示されているゲーム画面の階調が、変更手段によって変更される。
【0011】
この発明の他の局面では、ゲームは、電話機能によって外部からダウンロードされたゲームプログラムに従って実行される。
【発明の効果】
【0012】
この発明によれば、着信があると、中断キーを操作することなくゲームが中断される。つまり、ゲームは、終了ではなく中断される。このため、通話が終了した後にゲームを途中から再開することができる。
【0013】
また、レジスタには、中断キーが操作されたときだけでなく、電話の着信があったときも、第1所定値が設定される。このため、従来からあるゲームプログラム(レジスタに第1所定値が設定されたときにゲームを中断するプログラム)をそのままこの実施例の電子装置に用いたとしても、着信時にゲームを中断させることができる。つまり、従来のゲームプログラムが元々備えているゲームポーズ機能を変更することなく、電話着信時にゲームにポーズをかけることができる。
【0014】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【実施例】
【0015】
図1を参照して、この実施例のゲーム機能付携帯通信端末10は、細長の直方体状に形成された本体12を含む。本体12の上面にはアンテナ14が突出し、本体12の前面には、スピーカ16,カラーLCD18,ゲーム起動キー20,ゲームキー22,電話キー24およびマイク26が配置される。
【0016】
ゲームキー22としては、ゲームを展開する主人公に所定方向への移動(たとえば前進,後退,方向転換,ジャンプなど)を指示する十字キー22aと、主人公に所定の振る舞い(たとえばアイテムの獲得や標的への攻撃)を指示するAボタン22bおよびBボタン22cとが存在する。また、電話キー24としては、フックキー24a,ホールドキー24b,“0”〜“9”を示す数字キー24c,*キー24dおよび#キー24eが存在する。
【0017】
着信待ち状態では、LCD18に図2に示すような着信待ち画面が表示される。図2によれば、今日の日付および現在時刻と本件出願人の制作に係るゲームキャラクタとが画面中央に表示され、受信状態およびバッテリ残量を示すキャラクタが画面上方に表示される。着信待ち状態でオペレータがフックキー24aおよび数字キー24cを用いてダイヤル操作をすると、ダイヤルされた電話番号がLCD18に表示されるとともに、相手方に対する発呼処理が行われる。この発呼に対して相手方が着信操作をすると、プロトコルが確立され、通話が可能となる。一方、相手方から着信があると、着信メッセージおよび発信元の電話番号がLCD18に表示されるとともに、着信音が本体12の背面に設けられたスピーカ48(図7参照)から出力される。ここでオペレータがフックキー24aを操作すると、着信音の出力が中止されるとともに発信元との間でプロトコルが確立され、通話可能状態となる。
【0018】
着信待ち状態のときにオペレータがゲーム起動キー20を操作すると、電話モードからゲームモードに移行する。まず図3に示すようなメニュー画面が表示され、オペレータがこのメニュー画面から所望のゲーム(たとえばスーパーマリオDX)を選択すると、選択されたゲームが開始される。LCD18の表示は図4に示すようなゲーム画面に更新され、背面のスピーカ48からはBGMが出力される。ゲームは上述のゲームキー22の操作に応答して進行し、必要に応じて効果音がスピーカ48から出力される。
【0019】
この実施例では、ゲームモードにおいて、*キー24dがスタートキーとして機能し、#キー24eがセレクトキーとして機能する(他の電話キーをスタートキーやセレクトキーとして機能させるようにしてもよい)。このため、進行中のゲームは、*キー24dの操作に応じて中断/再開される。つまり、ゲームの進行中に*キー24dが押されると、ポーズ状態に移行し、ゲーム画面の動きが止まるとともにBGMの出力が中断される。*キー24dが再度押されると、ポーズ状態が解除され、ゲーム画面が動き出すとともにBGMの出力が再開される。また、上述のメニュー画面やプレイヤの選択を促す画面などでは、#キー24eを操作することで画面上のカーソルが移動する。
【0020】
ゲームの進行中でも着信検出は常時行われており、着信があると、ゲーム画面の動きが停止するとともに、BGMの出力が中止される。つまり、着信に応答してゲームにポーズがかけられる。さらに、スピーカ48からはBGMに代えて着信音が出力され、LCD18の表示は図5に示すような着信画面に更新される。図5によれば、ゲーム画面の階調(トーン)が変更され、“着信中”との着信メッセージと発信元の電話番号とがゲーム画面上に表示される。このときも、フックキー24aの操作によって着信音の出力が中止されるとともにプロトコルが確立され、通話可能状態となる。通話が終了すると、トーンが元に戻され、図4に示すゲーム画面が再度表示される。
【0021】
ただし、通話終了後もポーズ状態は継続し、このポーズ状態は*キー24dの操作に応じて解除される。つまり、着信時は*キー24dを操作することなくゲームにポーズがかけられるが、ポーズ状態は*キー24dの操作によって解除される。*キー24dの操作によるポーズ状態の解除によって、上述のように、ゲーム画面が動き出し、BGMの出力が再開される。
【0022】
ゲームの途中または開始時点でプレイヤの名前を登録する必要が生じると、図6(A)および図6(B)に示すようなプレイヤ名入力画面がLCD18に表示される。このとき、プレイヤ名は、数字キー24cの操作によって画面上の名前入力枠内に表示される。つまり、数字キー24cの各々には50音のひらがな,まる「゜」,てん「゛」などが割り当てられており、この数字キー24cの操作によって所望の名前の入力処理が行われる。
【0023】
本体12の内部は、具体的には図7に示すように構成される。ゲーム起動キー20および電話キー24は、電話処理用のCPU(電話CPU)28と直接接続される。また、アンテナ14は、送受信回路32を介して電話CPU28と接続され、スピーカ16およびマイク26は、音声コーデック30を介して電話CPU28と接続される。スピーカ48は、加算器46を介して電話CPU28と接続される。SRAM34およびフラッシュメモリ36は、8ビットバス38を介して電話CPU28に接続される。フラッシュメモリ36には電話処理のためのプログラム(電話プログラム)や電話帳データが格納され、SRAM34は電話プログラムの処理時にワークRAMとして用いられる。
【0024】
一方、ゲーム処理用のCPU(ゲームCPU)40には、ゲームキー22,LCD18,SRAM42および外部端子Sが直接接続され、スピーカ48が加算器46およびアンプ44を介して接続される。SRAM42は、ゲーム処理のためのプログラム(ゲームプログラム)を処理するときに外部ワークRAMとして用いられる。
【0025】
なお、電話CPU28とゲームCPU40との間では、8ビットバス38を介したデータのやり取りに加えて、割り込み要求および通信データの直接のやり取りが行なわれる。通信データは、外部接続用端子Sを通して接続される外部機器(図示せず)との間でもやり取りされる。
【0026】
ゲームCPU40は、図8に示すように構成される。プロセサとしては、ゲームCPUコア50,音声処理ユニット(SPU)64,画像処理ユニット(PPU)78およびLCDコントローラ84が存在する。また、内部メモリとしては、システムROM52,フラッシュメモリ54,ワークRAM56,カラーパレットRAM68,レジスタ70および80,VRAM72および74,OAM(Object Attribute Memory)76,フレームメモリ86および88ならびにキーコントローラ82に設けられたゲームキーレジスタ1(図9参照)が存在する。かかるプロセサおよび内部メモリのほか、上述の通信データを電話CPU28または外部機器とやり取りするためにUART58およびUARTセレクタ60が設けられ、図7に示すSRAM42にアクセスするために外部SRAMI/F62が設けられる。
【0027】
ゲームCPUコア50がアクセスできるメモリは、システムROM52,フラッシュメモリ54,ワークRAM56,SRAM42,カラーパレットRAM68,レジスタ70,VRAM72および74,OAM76,レジスタ80に設けられたゲームCPU制御レジスタ80d,FIFOレジスタ80eおよび割り込みレジスタ80g(図13参照),ならびにキーコントローラ82に設けられたゲームキーレジスタ1(図9参照)である。
【0028】
PPU78がアクセスできるメモリは、カラーパレットRAM68,レジスタ70,VRAM72および74,ならびにOAM76である。
【0029】
LCDコントローラ84がアクセスできるメモリは、フレームメモリ86および88,ならびにレジスタ80に設けられたフレームメモリレジスタ80a,出力制御レジスタ80bおよびパレット制御レジスタ80c(図13参照)である。
【0030】
なお、SPU64は図示しないサウンドROMにアクセスできるが、音声処理に関する詳しい説明は省略する。
【0031】
ゲームCPUコア50から見たメモリマッピングを図12に示す。図12によれば、“00000000h”〜“01999999h”にシステムROM52が割り当てられ、“02000000h”〜“02999999h”にSRAM42が割り当てられ、“03000000h”〜“03999999h”にワークRAM56が割り当てられる。また、 “04000000h”〜“04999999h”に各種レジスタ(70,80d,80e,80g,ゲームキーレジスタ1)が割り当てられ、 “05000000h”〜“05999999h”にカラーパレットRAM68が割り当てられる。さらに、“06000000h”〜“06999999h” にVRAM72および74が割り当てられ、“07000000h”〜“07999999h”にOAM76が割り当てられ、 “08000000h”〜“08199999h”にゲームプログラム(イメージ)が割り当てられる。
【0032】
また、“10000000h”〜“Xh−1”にフラッシュメモリ54に格納されたブラウザプログラムおよびモニタプログラムが割り当てられ、“Xh”〜“Xh+00199999h”にフラッシュメモリ54に格納されたゲームプログラムが割り当てられ、 “Xh+00200000h”〜“10400000h”にフラッシュメモリ54に格納されたバックアップが割り当てられる。ゲームCPUコア50は、このようなアドレスを利用して各々のメモリにアクセスする。
【0033】
各々のメモリについて具体的に説明すると、システムROM52は、ゲームCPUコア50のブートプログラムや、フラッシュメモリ54が破壊された場合の復旧プログラムなどを格納する。また、フラッシュメモリ54は、上述のようにバックアップ,ゲームプログラム,ブラウザプログラムおよびモニタプログラムを格納する。ゲームプログラムは、インターネット上に設けられたかつ多数のゲームプログラムを記憶したサーバからダウンロードされる。つまり、電話機能を用いてサーバに接続し、希望のゲームプログラムを選択すれば、選択されたゲームプログラムが電話CPU28を介してフラッシュメモリ54にダウンロードされる。ワークRAM56およびSRAM42には、上述のプログラムの処理時に得られたデータが一時的に格納される。
【0034】
VRAM72は、静止したキャラクタ(静止キャラクタ)を示す背景画像データを格納し、VRAM74は、動きを伴うキャラクタ(動きキャラクタ)を示すオブジェクト画像データを格納し、そしてOAM(Object Attribute Memory)76は、各々の動きキャラクタのアトリビュートを格納する。たとえば、図4に示すゲーム画面が表示されるとき、VRAM72に格納される背景画像データは、木,山および地面のような静止キャラクタデータを含む。また、VRAM74に格納されるオブジェクト画像データは、空中をジャンプする主人公,地面を動くキノコ,空中に浮かび下から突くと微動するブロックのような動きキャラクタデータを含む。
【0035】
カラーパレットRAM68は、静止キャラクタおよび動きキャラクタを色付けするためのパレットデータを格納し、レジスタ70は、画像モードを指定したり、画面に特殊効果を施すための設定値を保持する。
【0036】
図13を参照して、フレームメモリレジスタ80aは、フレームメモリ86および88のアドレスデータおよび画像データを保持する。具体的には、フレームメモリ86のXアドレス,Yアドレスおよびこのアドレス(X,Y)に書き込む1ドット(=1ビット)分の2値画像データ、ならびにフレームメモリ88のXアドレス,Yアドレスおよびこのアドレス(X,Y)に書き込む1ドット(=8ビット)分のカラー画像データが設定される。フレームメモリレジスタ80aに対する設定は、電話CPU28によって行われる。電話モードではフレームメモリ86および88の両方のアドレスデータおよび画像データが電話CPU28によって設定され、ゲームモードではフレームメモリ86のアドレスデータおよび画像データのみが電話CPU28によって設定される。
【0037】
出力制御レジスタ80bは、LCDコントローラ84からLCD18への画像データの出力を制御するためのレジスタであり、これには合成開始ラインデータ,合成終了ラインデータ,画像開始ラインデータおよびLCD制御データが設定される。図16および図17に示すように、表示画面にはエリア1および2が形成され、エリア1にはフレームメモリ86に描画された画像データに基づく画像が表示され、エリア2にはフレームメモリ86および88に描画された各々の画像データに基づく合成画像が表示される。合成開始ライン指定データおよび合成終了ライン指定データはそれぞれ、エリア2の開始位置および終了位置を示す。また、画像開始ラインデータは、フレームメモリ88のどのラインからカラー画像データの読み出しを開始するかを指定するデータである。この画像開始ラインデータを所定ライン数毎に更新することで、カラー画像のスクロール表示が可能となる。
【0038】
LCD制御データは、具体的には図14に示すように8ビットで表される。0ビット目(=LCNT0)はモード選択フラグであり、“0”は電話モードを、“1”はゲームモードを示す。1ビット目(=LCNT1)はフレームメモリ86に描画された2値画像データに基づく画像の出力/中止を制御するフラグであり、“0”は中止を、“1”は出力を示す。2ビット目(=LCNT2)は、フレームメモリ88に描画されたカラー画像データに基づく画像を表示するときに、このカラー画像にブレンディングを施すかどうかを制御するフラグであり、“0”はノーマルを、“1”はブレンディングを示す。4ビット目および3ビット目(=LCNT4,3)はフレームメモリ88に描画されたカラー画像データに基づく画像の出力およびトーン(階調)を制御するフラグであり、“00”は出力中止を、“01”はトーンダウンを、 “10”は等倍トーンを、“11”はトーンアップを示す。5ビット目(=LCNT5)はLCD18の表示オン/表示オフを制御するフラグであり、“0”は表示オフを、“1”は表示オンを示す。6ビット目および7ビット目は、この実施例では使用されない。
【0039】
パレット制御レジスタ80cは、フレームメモリ86に書き込まれた2値画像データに基づく画像の色を指定するためのレジスタである。合成エリアではないエリア1については、背景色を決定するパレットデータ0とキャラクタ色を決定するパレットデータ1が設定される。これに対して、合成エリアである第2エリアについては、キャラクタ色を決定するパレットデータ1のみが設定され、背景は常に透明色とされる。
【0040】
ゲームCPU制御レジスタ80dは、ゲームCPU起動フラグのみを有する。このゲームCPU起動フラグは、ゲーム起動キー20の操作に応答して“1”に設定され、ホールドキー24bの操作に応答して“0”に設定される。“1”はゲームモードを示し、“0”は電話モードを示す。
【0041】
FIFOレジスタ80eは、ゲームモードにおいてゲームCPU40と電話CPU28との間でやり取りされるデータを一時的に保持するためのレジスタである。具体的にはFIFOレジスタ1および2の2つからなり、いずれも64×16ビットの容量を持つ。この実施例の電話CPU28は8ビットCPUであるので16ビットの設定データのうち8ビットしか使用されないが、FIFOレジスタ1および2を16ビットとしておくことで、16ビットの電話CPUにも対応できる。
【0042】
ゲームCPU40から電話CPU28へのデータ転送にはFIFOレジスタ1が用いられ、電話CPU28からゲームCPU40へのデータ転送にはFIFOレジスタ2が用いられる。このため、FIFOレジスタ1への書き込みはゲームCPU40によってのみ行われ、FIFOレジスタ1からの読み出しは電話CPU28によってのみ行われる。また、FIFOレジスタ2への書き込みは電話CPU28によってのみ行われ、FIFOレジスタ2からの読み出しはゲームCPU40によってのみ行われる。このFIFOレジスタ1および2は、*キー24dおよび#キー24eへのスタート機能およびセレクト機能の割り当て処理、ならびにプレイヤ名入力処理において利用される。
【0043】
ゲームキーレジスタ80fは、ゲーム操作に関連するデータを保持するレジスタであり、ゲームキーレジスタ2および3からなる。ゲームキーレジスタ1は上述のようにキーコントローラ80に設けられ、ゲームキーレジスタ1〜3のいずれも、図15に示すように8ビットで形成される。0ビット目(=K0,KI0,KO0)にはAボタン22bが割り当てられ、1ビット目(=K1,KI1,KO1)にはBボタン22cが割り当てられ、2ビット目〜5ビット目(=K2〜K5,KI2〜KI5,KO2〜KO5)には十字キー22aの上方向,下方向,左方向,右方向が割り当てられる。また、6ビット目(=K6,KI6,KO6)にはスタートキー(*キー24d)が割り当てられ、7ビット目にはセレクトキー(#キー24e)が割り当てられる。
【0044】
Aボタン22bが操作されると0ビット目が“0”から“1”に更新され、Bボタン22cが操作されると1ビット目が“0”から “1”に更新される。2ビット目は十字キー22aが上向きに操作されたとき“0”から“1”に更新され、3ビット目は十字キー22aが下向きに操作されたとき“0”から“1”に更新される。また、4ビット目は十字キー22aが左向きに操作されたとき“0”から“1”に更新され、5ビット目は十字キー22aが右向きに操作されたとき“0”から“1”に更新される。さらに、*キー24dが操作されると6ビット目が“0”から“1”に更新され、#キー24eが押されると7ビット目が“0”から“1”に更新される。
【0045】
割り込みレジスタ80gは、ゲームCPU40と電話CPU28との間でやり取りされる割り込み要求を一時的に保持するレジスタである。割り込みレジスタ1にはゲームCPU40から電話CPU28に発された割り込み要求が設定され、割り込みレジスタ2には電話CPU28からゲームCPU40に発された割り込み要求が設定される。なお、電話CPU28からゲームCPU40への割り込み、およびゲームCPU40から電話CPU28への割り込みのいずれも、*キー24dおよび#キー24eへのスタート機能およびセレクト機能の割り当て処理、ならびにプレイヤ名入力処理において利用される。
【0046】
キーコントローラ82およびその周辺は図9に示すように構成される。ゲームモードでは、上述のように、*キー24dがスタートキーとして機能し、#キー24eがセレクトキーとして機能する。オペレータが、*キー24dまたは#キー24eを操作すると、電話キーレジスタ28bの所定ビットが“1”に更新される。電話CPUコア28aは、電話キーレジスタ28bの設定値からいずれのキーが操作されたかを判別し、*キー24dが操作されたときはゲームキーレジスタ3の6ビット目を、#キー24eが操作されたときはゲームキーレジスタ3の7ビット目を“1”に更新する。
【0047】
ゲームキーレジスタ1には、ゲームキー22の操作に応じた数値とゲームキーレジスタ3から出力された数値の論理和が設定される。ゲームCPUコア50は、ゲームキーレジスタ1の設定値を入力し、入力した設定値に応じたゲーム処理を行なう。このため、ゲーム処理には、ゲームキー22の操作だけでなく、*キー24dおよび#キー24eの操作も反映される。
【0048】
ゲームキーレジスタ1の設定値はゲームキーレジスタ2にも与えられ、ゲームキーレジスタ1および2の設定値は常に一致することとなる。したがって、ゲームキーレジスタ2の設定値は、ゲームキー22の操作に応じて変化する。電話CPUコア28aは、プレイヤ名入力時にゲームキーレジスタ2の設定値からAボタン22bの操作の有無を判別し、判別結果に応じた処理を行なう。
【0049】
図8に戻って、PPU78は、VRAM72および74に格納された画像データに対して、パレットRAM68のパレットデータならびにレジスタ70の設定値に従う処理を施し、かかる処理が施された8ビットのカラー画像データをアドレスデータとともにLCDコントローラ84に出力する。ただし、VRAM72および74に背景画像データおよびオブジェクト画像データが描画されるのはゲームモードのみであり、PPU78は、ゲームモードにおいてのみカラー画像データおよびアドレスデータをLCDコントローラ84に転送する。
【0050】
LCDコントローラ84は、具体的には図10に示すように構成される。出力制御レジスタ80bに設定されたLCD制御データのLCNT0はセレクタ84bに与えられ、LCNT1は読み出しコントローラ84fに与えられ、LCNT4および3はトーン制御回路84gに与えられ、そしてLCNT2および5は画像合成回路84hに与えられる。また、出力制御レジスタ80bに設定された合成開始ラインデータおよび合成終了ラインデータは画像合成回路84hに与えられ、画像開始ラインデータは読み出しコントローラ84cに与えられる。
【0051】
さらに、パレット制御レジスタ80cに設定されたエリア1用パレットデータ0,エリア1用パレットデータ1およびエリア2用パレットデータ1は画像合成回路84hに与えられ、フレームメモリレジスタ80aに設定されたフレームメモリ86用Xアドレス,フレームメモリ86用Yアドレス,1ドット分2値画像データ,フレームメモリ88用Xアドレス,フレームメモリ88用Yアドレスおよび1ドット分カラー画像データは、フレームメモリ転送コントローラ84aに与えられる。
【0052】
上述のように、電話モードでは、2値画像データおよびそのアドレスデータとカラー画像データおよびそのアドレスデータとがフレームメモリレジスタ80aに設定される。このとき、フレームメモリ転送コントローラ84aは、2値画像データおよびそのアドレスデータを書き込みコントローラ84eに与え、カラー画像データおよびそのアドレスデータをセレクタ84bに与える。セレクタ84bは、LCNT0が“0”つまり電話モードを示すときフレームメモリ転送コントローラ84aの出力を選択する。フレームメモリ転送コントローラ84aから出力されたカラー画像データおよびアドレスデータは、セレクタ84bを介して書き込みコントローラ84dに与えられる。
【0053】
一方、ゲームモードでは、2値画像データおよびそのアドレスデータのみがフレームメモリレジスタ80aに設定され、フレームメモリ転送コントローラ84aは、この2値画像データおよびアドレスデータを書き込みコントローラ84eに与える。カラー画像データおよびアドレスデータは、PPU78からセレクタ84dに与えられる。LCD制御データのLCNT0はゲームモードにおいて“1”を示し、このときセレクタ84dはPPU78からの出力を選択する。このため、ゲームモードでは、PPU78からの出力がセレクタ84bを介して書き込みコントローラ84dに与えられる。
【0054】
後段で詳述するが、2値画像データおよびカラー画像データのいずれについても、アドレスデータは書き込み開始アドレスのみを示す。このため、書き込みコントローラ84eおよび84dはいずれも、与えられたアドレスデータを基準として書き込みアドレスを1ドットずつ更新し、順次与えられる1ドット分の2値画像データおよびカラー画像データを更新されたアドレスに書き込む。これによって、所定ドット数分の2値画像データおよびカラー画像データが、フレームメモリ86および88の各々に格納される。
【0055】
なお、フレームメモリ86および88はいずれも160×160ドットの画像データを格納できる容量を持つが、フレームメモリ86の各ドットには1ビットが割り当てられ、フレームメモリ88の各ドットには8ビットが割り当てられる。このため、フレームメモリ86の各アドレスには1ドット分の2値画像データが書き込まれ、フレームメモリ88の各アドレスには1ドット分のカラー画像データが書き込まれる。
【0056】
読み出しコントローラ84fは、LCD制御データのLCNT1が“1”を示すとき、フレームメモリ86から2値画像データを読み出し、読み出した2値画像データを画像合成回路84hに与える。一方、LCNT1が“0”を示すときは、フレームメモリ86からの2値画像データの読み出しを中止する。読み出しコントローラ84cは、画像開始ラインデータによってフレームメモリ88の読み出し開始ラインを特定し、特定した読み出し開始ラインからカラー画像データの読み出しを開始する。読み出されたカラー画像データは、トーン制御回路84gを経て画像合成回路84hに与えられる。
【0057】
トーン制御回路84gは、LCNT4および3が示す数値に応答して、次のようなトーン制御または出力制御を行なう。つまり、LCNT4,3が“01”を示せば、カラー画像データのRGBレベルが低下され(トーンダウン)、トーンがダウンされたカラー画像データが画像合成回路84hに与えられる。また、LCNT4および3が“11”を示せばカラー画像データのRGBレベルが上昇され(トーンアップ)、トーンがアップされたカラー画像データが画像合成回路84hに与えられる。さらに、LCNT4および3が“10”を示せばカラー画像データはそのまま画像合成回路84hに与えられ、LCNT4および3が“00”を示せばカラー画像データの画像合成回路84hへの出力が中止される。
【0058】
画像合成回路84hは、図11に示すように構成される。ラインカウンタ8402hは、1フレームを形成するライン数をカウントし、カウント値を比較器8403hに与える。比較器8403hにはまた、出力制御レジスタ80bに設定された合成開始ラインデータおよび合成終了ラインデータが与えられる。比較器8403hは、ラインカウンタ8402hのカウント値が合成開始ラインデータのデータ値と一致したとき出力をハイレベルに変更し、ラインカウンタ8402hのカウント値が合成終了ラインデータのデータ値+1と一致したとき出力をハイレベルからローレベルに戻す。このため、比較器8403hの出力は、図16に示すエリア1の開始位置から終了位置にわたってローレベルとなり、図16に示すエリア2の開始位置から終了位置にわたってハイレベルとなる。
【0059】
セレクタ8401hは、比較器8403hの出力がローレベルのときパレット制御レジスタ80cに設定されたエリア1用パレットデータ0を選択し、比較器8403hの出力がハイレベルのときトーン制御回路84gから出力されたカラー画像データを選択する。セレクタ8401hの出力は、セレクタ8407hに与えられる。
【0060】
ブレンディング回路8404hは、パレット制御レジスタ80cに設定されたエリア2用パレットデータ1とトーン制御回路84gから出力されたカラー画像データとにブレンディング処理を施す。セレクタ8405hは、LCD制御データのLCNT2が“0”を示すときエリア2用パレットデータ1を選択し、LCNT2は“1”を示すときブレンディング回路8404hの出力を選択する。セレクタ8405hの出力は、セレクタ8406hに与えられる。比較器8403hの出力は、セレクタ8406hにも与えられる。セレクタ8406hは、比較器8403hの出力がローレベルのときパレット制御レジスタ80cに設定されたエリア1用パレットデータ1を選択し、比較器8403hの出力がハイレベルのときセレクタ8405hの出力を選択する。
【0061】
セレクタ8407hは、読み出しコントローラ84hによって読み出された2値画像データを受け、この2値画像データを形成する各ドットのデータ値(ビット値)に応じて、セレクタ8401hおよび8406hのいずれか一方を選択する。具体的には、ビット値が“0”を示すときはセレクタ8401hの出力を選択し、ビット値が“1”を示すときはセレクタ8406hの出力を選択する。
【0062】
スイッチ8408hは、LCD制御データのLCNT5が“0”を示すときオフ状態となり、LCNT5が“1”を示すときオン状態となる。このため、セレクタ8407hの出力は、LCNT5が“1”を示すときだけ、スイッチ8408hを介してLCD18に出力される。
【0063】
エリア1では、セレクタ8401hはエリア1用パレットデータ0を選択し、セレクタ8406hはエリア1用パレットデータ1を選択する。セレクタ8407hは、2値画像データの各ビット値が“0”のときエリア1用パレットデータ0を選択し、各ビット値が“1”を示すときエリア1用パレットデータ1を選択する。この結果、受信状態およびバッテリ残量を示すキャラクタが、図17に示す要領でエリア1に表示される。
【0064】
エリア2では、セレクタ8401hはカラー画像データを選択し、セレクタ8406hはセレクタ8405hの出力を選択する。ブレンディング処理を行なわないとき、セレクタ8405hからセレクタ8406hへはエリア2用パレットデータ1が与えられる。セレクタ8407hは、2値画像データの各ビット値が“0”のときカラー画像データを選択し、各ビット値が“1”を示すときエリア2用パレットデータ1を選択する。この結果、たとえば日付および現在時刻を示すキャラクタとカラー画像とが、図17に示す要領でエリア2に表示される。
【0065】
図2に示す着信待ち画面は、図18に示すような受信状態,バッテリ残量,日付および現在時刻を示す2値画像データと、図19に示すようなゲームキャラクタを示すカラー画像データとからなる。図7に示す電話CPU28は、まずエリア1の先頭に対応するアドレスデータをフレームメモリレジスタ80aに設定し、受信状態およびバッテリ残量を示す2値画像データ(エリア1に表示)を1ドットずつフレームメモリレジスタ80aに設定する。電話CPU28は続いて、エリア2の先頭に対応するアドレスデータをフレームメモリレジスタ80aに設定し、日付および現在時刻を示す2値画像データ(エリア2に表示)を1ドットずつフレームメモリレジスタ80aに設定する。LCDコントローラ84は、1ドット毎に更新される2値画像データをフレームメモリレジスタ80aから繰り返し読み出し、読み出された各ドットの2値画像データをアドレスデータに基づいてフレームメモリ86に書き込む。これによって、図18に示す2値画像データがフレームメモリ86内に得られる。
【0066】
電話CPU28は、2値画像データの設定に続いて、エリア2の先頭に対応するアドレスデータおよびゲームキャラクタを示す各ドットのカラー画像データをフレームメモリレジスタ80aに設定する。LCDコントローラ84は、1ドット毎に更新されるカラー画像データをフレームメモリレジスタ80aから繰り返し読み出し、読み出したカラー画像データをアドレスデータに基づいてフレームメモリ88に書き込む。これによって、図19に示すカラー画像データがフレームメモリ88内に得られる。
【0067】
LCDコントローラ84は、フレームメモリ86および88からの2値画像データおよびカラー画像データの読み出し,カラー画像データのトーン制御,2値画像データに基づく色付け,2値画像データおよびカラー画像データの合成,ならびに合成画像データの出力を、出力制御レジスタ80bおよびパレット制御レジスタ80cの設定値に従って行なう。この結果、図2に示す待ち受け画面がLCD18に表示される。
【0068】
オペレータがダイヤル操作をすると、電話CPU28は、エリア2の先頭に対応するアドレスデータと相手方の電話番号を示す2値画像データとをフレームメモリレジスタ80aに設定する。LCDコントローラ84は、上述と同じ要領でこの2値画像データをフレームメモリ86に書き込む。このため、日付および現在時刻を示す2値画像データは、相手方の電話番号を示す2値画像データによって更新される。この結果、LCD18に表示された日付および現在時刻も、相手方の電話番号に切り換わる。
【0069】
電話CPU28はまた、送受信回路32およびアンテナ14を通して相手方との接続を確立する。接続が確立されると、相手方の音声データが受信され、受信された音声データは音声コーデック30を介してスピーカ16から出力される。また、マイク26によって取り込まれたオペレータの音声データは、音声コーデック30および送受信回路32を介してアンテナ12から出力される。
【0070】
一方、アンテナ14および送受信回路32を通して着信があると、電話CPU28は、エリア2の先頭に対応するアドレスデータと着信メッセージおよび発信元の電話番号を示す2値画像データとをフレームメモリレジスタ80aに設定する。LCDコントローラ84はこの2値画像データをフレームメモリ86に書き込み、日付および現在時刻を示す2値画像データは着信メッセージおよび発信元の電話番号を示す2値画像データによって更新される。これによって、LCD18に表示された日付および現在時刻も、着信メッセージおよび発信元の電話番号に更新される。電話CPU28はまた、着信音データを加算器46を介してスピーカ48に与える。スピーカ48からは、着信音が出力される。
【0071】
ここでオペレータが着信操作をすると、電話CPU28は着信音データの出力を中止し、発信元との接続を確立する。接続の確立後は、上述と同様に、相手方の音声データが音声コーデック30を介してスピーカ16から出力され、マイク26によって取り込まれたオペレータの音声データが音声コーデック30および送受信回路32を介してアンテナ12から出力される。
【0072】
着信待ち状態のときにオペレータがゲーム起動キー20を操作すると、電話CPU28はゲーム起動フラグをセットする。電話CPU28はまた、エリア2の先頭に対応するアドレスデータと全ドットが“0”を示す2値画像データとをフレームメモリレジスタ80aに設定し、LCD制御データのLCNT0に“1”を設定する。LCDコントローラ84は、全ドットが“0”を示す2値画像データをアドレスデータに基づいてフレームメモリ86に書き込み、かつカラー画像データの入力先としてPPU78を選択する。
【0073】
一方、ゲームCPUコア50は、ゲーム画面(カラー画像)を形成する背景画像データおよびオブジェクト画像データをVRAM72および74に描画し、静止キャラクタおよび動きキャラクタのパレットデータをカラーパレットRAM68にセットする。さらに、動きキャラクタのアトリビュートをOAM76にセットし、背景およびオブジェクトの出力に関する設定値をレジスタ70にセットする。この結果、たとえば図21に示すカラー画像データがPPU78によって作成され、LCDコントローラ84に出力される。LCDコントローラ84は、PPU78から出力されたカラー画像データをフレームメモリ88に書き込む。フレームメモリ86および88の各々には、図20に示す2値画像データおよび図21に示すカラー画像データが得られる。
【0074】
LCDコントローラ84は、上述と同じ要領で、フレームメモリ86および88から2値画像データおよびカラー画像データを読み出し、カラー画像データにLCD制御データのLCNT4,3の値に従うトーン制御を施し、2値画像データ,合成開始ラインデータおよび合成終了ラインデータに基づいてパレットデータおよびカラー画像データを合成する。この結果、図4に示すゲーム画面がLCD18に表示される。
【0075】
ゲームCPUコア50はまた、図9に示すFIFOレジスタ1を通して、*キー24dおよび#キー24eを示すキーコードと*キー24dおよび#キー24eに割り当てる機能情報とを電話CPU28に与える。ここで、*キー24dに割り当てられた機能情報は“スタート”を示し、#キー24eに割り当てられた機能情報は“セレクト”を示す。このため、電話CPU28は、*キー24dが操作されたときゲームキーレジスタ3のスタートキービットKO6に“1”をセットし、#キー24eが操作されたときゲームキーレジスタ3のセレクトキービットKO7に“1”をセットする。ゲームキーレジスタ1の各ビットにはゲームキー22の操作に応じた数値とゲームキーレジスタ3から出力された数値の論理和がセットされるため、ゲームCPUコア50は、ゲームキーレジスタ1の設定値に応じたゲーム処理を行なう。
【0076】
ゲームが開始された後は、ゲームキー22の操作に応答して、背景画像データ,オブジェクト画像データおよびオブジェクトのアトリビュートが更新され、さらにカラーパレットレジスタ68およびレジスタ70の設定値が更新される。この結果、画像処理ユニット78から出力されるカラー画像データも変化し、ゲーム画面に動きが生じる。一方、SPU64からは、必要に応じて効果音データが出力され、スピーカ48から効果音が生じる。
【0077】
ゲーム進行中に*キー24dが操作されると、ゲームCPU50は、ポーズ状態に移行すべく、SPU64およびPPU78に対してBGMデータおよびカラー画像データの出力を停止させる。これによって、BGMの出力およびゲーム画面の動きが停止する。*キー24dが再度操作されると、ゲームCPU50は、ポーズ状態を解除すべく、SPU64およびPPU78を起動し、BGMデータおよびカラー画像データの出力を再開させる。スピーカ48からは再びBGMが出力され、LCD18上のゲーム画面も再び動き出す。
【0078】
なお、ゲームの進行中にメニュー画面が表示された場合、ゲームCPUコア50は、#キー24eの操作に応答してレジスタ70の設定値を変更する。変更する設定値はメニュー画面上に表示されたカーソルに関連する設定値であり、この変更によってカーソルの表示位置が変更される。
【0079】
ゲーム進行中に着信があると、電話CPU28は、上述の処理に加えてゲームキーレジスタ3のスタートキービットKO6を“1”にセットし、LCD制御データのLCNT4,3に“11”をセットする。電話CPU28はまた、着信メッセージおよび発信元の電話番号を示す2値画像データとエリア2の先頭に対応するアドレスデータとをフレームメモリレジスタ80aに設定し、着信音データを加算器46を介してスピーカ48に与える。一方、ゲームCPUコア50は、ゲームにポーズをかけるべく、SPU64にBGMデータの出力を停止させるとともに、自らの処理を停止させる。
【0080】
LCDコントローラ84は、フレームメモリレジスタ80aに設定された2値画像データをフレームメモリ86に格納する。LCDコントローラ84はまた、フレームメモリ86および88から2値画像データおよびカラー画像データを読み出し、カラー画像データにトーンアップを施し、2値画像データ,合成開始ラインデータおよび合成終了ラインデータに基づいてパレットデータおよびカラー画像データを合成する。この結果、図5に示す着信案内画面がLCD18に表示され、スピーカ48の出力がBGMから着信音に切り換わる。
【0081】
オペレータが着信操作をすると、電話CPU28は、上述と同様に、着信音データの出力を中止し、発信元との接続を確立する。接続の確立後は、相手方の音声データが音声コーデック30を介してスピーカ16から出力され、マイク26によって取り込まれたオペレータの音声データが音声コーデック30および送受信回路32を介してアンテナ14から出力される。
【0082】
通話が終了すると、電話CPU28はLCD制御データのLCNT4,3を“10”に戻すとともに、エリア2の先頭に対応するアドレスデータと全ドットが“0”を示す2値画像データをフレームメモリレジスタ80aに設定する。この結果、LCD18の表示が図4に示すゲーム画面に戻る。ただし、ゲーム画面の動きは停止したままであり、かつBGMの出力も停止している。つまり、ゲームはポーズ状態を維持している。このポーズ状態は、オペレータによる*キー24dの操作に応答して解除される。
【0083】
電話CPUコア28aは、具体的には図22〜図31および図34に示すフロー図を処理する。まずステップS1でLCDコントローラ制御レジスタ80cに設定されるLCD制御データを初期値“110010”に設定する。つまり、図14に示すLCD表示オン/オフフラグを“1”にセットし、カラー画像トーン制御フラグを“10”にセットし、2値画像トーン制御フラグを“0”にセットし、2値画像出力制御フラグを“1”にセットし、そしてモード選択フラグを“0”にセットする。
【0084】
続くステップS3では、図2に示す着信待ち画面をLCD18に表示すべく、図25および図26に示すサブルーチンを処理する。まず、図25に示すステップS81でLCD制御データのLCNT5を“0”に更新する。これによって、LCD18の表示がオフ状態とされる。次に、ステップS83でカウント値Nを“1”に設定し、ステップS85,S87およびS89の各々で、フレームメモリレジスタ80aにフレームメモリ86用Xアドレス,フレームメモリ86用Yアドレスおよび1ドット分の2値画像データをセットする。具体的には、フレームメモリ86に形成されたエリアN(表示画面のエリアNに対応)の先頭アドレスおよびこの先頭アドレスに書き込む1ドット分の2値画像データをフレームメモリレジスタ80aにセットする。続くステップS91では、エリアNへの2値画像データの書き込みが完了したかどうか判断し、NOであればステップS89の処理を繰り返すが、YESであればステップS93に進む。
【0085】
LCDコントローラ84は、まずフレームメモリレジスタ80aにセットされた先頭アドレスデータおよび2値画像データを読み出し、先頭アドレスデータが示すフレームメモリ86上のアドレスに2値画像データを書き込む。1ドット分の2値画像データの書き込みが完了すると、LCDコントローラ84は自ら書き込み先のアドレスを更新する。このため、電話CPU28側で書き込みアドレスを更新する必要はなく、ステップS89における2値画像データのセット処理を繰り返すだけで、フレームメモリ86の所望のアドレスに2値画像データが書き込まれていく。
【0086】
ステップS93ではカウント値Nが“2”に達したかどうか判断し、NOであればステップS95でカウント値NをインクリメントしてからステップS85に戻るが、YESであればステップS97に進む。これによって、受信状態およびバッテリ残量のキャラクタを示す2値画像データがフレームメモリ86のエリア1に描画され、日時および現在時刻を示す2値画像データがフレームメモリ86のエリア2に描画される。なお、この実施例では、画面全体の画像データを書き換えるような処理としたが、変更が必要な領域のみ画像データを書き換えるようにしてもよい(後述のエリア2に関するステップS97〜S103についても同様)。
【0087】
続くステップS97〜S101では、フレームメモリ88用Xアドレス,フレームメモリ88用Yアドレスおよび1ドット分のカラー画像データをフレームメモリレジスタ80aにセットする。ステップS97およびS99でセットするXアドレスおよびYアドレスはフレームメモリ88における先頭アドレスを示し、ステップS101でセットされた1ドット分のカラー画像データはこの先頭アドレスに書き込むべき画像データである。ステップS103では、エリア2へのカラー画像データの書き込みが完了したかどうか判断し、書き込みが完了していなければステップS101に戻るが、書き込みが完了すればステップS105に進む。これによって、図2に示すゲームキャラクタのカラー画像データがフレームメモリ88に描画される。
【0088】
ステップS105〜S109の各々では、エリア1用パレットデータ0,エリア1用パレットデータ1およびエリア2用パレットデータ1をパレット制御レジスタ80cにセットする。これによって、LCD18のエリア1に表示される2値画像の背景色および文字色(キャラクタ色)と、エリア2に表示される2値画像の文字色が決定される。なお、エリア2の2値画像の背景色は、上述のように透明である。
【0089】
ステップS111〜S115の各々では、合成開始ラインデータ,合成終了ラインデータおよび画像開始ラインデータを出力制御レジスタ80cにセットする。合成開始ラインデータは2値画像のどのラインからカラー画像の合成を開始するかを示し、合成終了ラインデータは2値画像のどのラインでカラー画像の合成を終了するかを示し、画像開始ラインデータは、フレームメモリ88のどのラインから読み出しを開始するかを示す。
【0090】
ステップS115の処理が完了するとステップS117に進み、LCD18の表示をオン状態とすべく、LCD制御データのLCNT5を“1”にセットする。これによって、図2に示す着信待ち画面がLCD18に表示される。
【0091】
図22に戻って、ステップS5,S13,S21およびS35の各々では、ゲーム起動キー20の操作の有無,ホールドキー24bの操作の有無,ダイヤル操作の有無および電話着信の有無を判別する。ステップS5でゲーム起動キー20の操作ありと判別されると、ステップS7で図13に示すゲームCPU起動フラグをセットするとともに、ステップS9でLCD制御データのLCNT0に“1”をセットする。これによって、ゲームモードが開始される。ステップS9の処理が完了すると、ステップS11で図27に示すサブルーチンを処理する。
【0092】
まずステップS121でLCD制御データのLCNT5を“0”に更新して、LCD18の表示をオフ状態とする。次に、ステップS122およびS123の各々で、フレームメモリ86用Xアドレスおよびフレームメモリ86用Yアドレスをフレームメモリレジスタ80aに設定する。ここで設定されたアドレスは、形成されたエリア2の先頭アドレスを示す。ステップS124では1ドット分の2値画像データを同じフレームメモリレジスタ80aに設定し、続くステップS125ではエリア2に対する2値画像データの書き込みが完了したかどうか判断する。そして、NOであればステップS124の処理を繰り返し、YESであればステップS126でエリア2用パレットデータ1をパレット制御レジスタ80cに設定するとともに、ステップS127でLCD制御データのLCNT5を“1”に戻してLCD18の表示をオン状態とする。ステップS11におけるこのサブルーチンの処理によって、全てのドットが“0” を示す2値画像データがフレームメモリ86のエリア2に描画される。この結果、着信待ち画面で表示されていた日付および現在時刻が消去される。
【0093】
ステップS13でホールドキー24bの操作ありと判別されると、ステップS15でゲームCPU起動フラグをリセットするとともに、ステップS17でLCD制御データのLCNT0に“0”をセットする。これによって、電話モードが開始される。ステップS17の処理が完了すると、着信待ち画面をLCD18に表示すべく、ステップS19で図28および図29に示すサブルーチンを処理する。
【0094】
まず、図28に示すステップS131でLCD制御データのLCNT5を“0”に更新して、LCD18の表示をオフ状態とする。次に、ステップS133,S135およびS137の各々で、フレームメモリレジスタ80aにフレームメモリ86用Xアドレス,フレームメモリ86用Yアドレスおよび1ドット分の2値画像データをセットする。ステップS133およびS135で設定されるアドレスデータはフレームメモリ86に形成されたエリア2の先頭アドレスを示し、ステップS137で設定される2値画像データはこの先頭アドレスに書き込むデータである。ステップS139ではエリア2への2値画像データの書き込みが完了したかどうか判断し、YESとの判断結果が得られるまでステップS137の処理を繰り返す。これによって、着信待ち画面を形成する日付および現在時刻の2値画像データがフレームメモリ86のエリア2に書き込まれていく。
【0095】
続くステップS141〜S147の各々では、フレームメモリ88用Xアドレス,フレームメモリ88用Yアドレスおよび1ドット分のカラー画像データをフレームメモリレジスタ80aにセットする。ステップS141およびS143でセットするXアドレスおよびYアドレスはフレームメモリ88に形成されたエリア2の先頭アドレスを示し、ステップS145でセットされた1ドット分のカラー画像データはこの先頭アドレスに書き込むべき画像データである。ステップS147では、エリア2へのカラー画像データの書き込みが完了したかどうか判断し、書き込みが完了していなければステップS145に戻るが、書き込みが完了すればステップS149に進む。これによって、着信待ち画面を形成するゲームキャラクタのカラー画像データがフレームメモリ88に描画される。
【0096】
続いて、ステップS149でエリア2用パレットデータ1をパレット制御レジスタ80cにセットし、ステップS151〜S155の各々で合成開始ラインデータ,合成終了ラインデータおよび画像開始ラインデータを出力制御レジスタ80bにセットし、その後ステップS157でLCD制御データのLCNT5を“1”に戻す。これによって、図2に示す着信待ち画面がLCD18に表示される。
【0097】
ステップS21でダイヤル操作ありと判別されると、まずステップS23で図27に示すサブルーチンを処理する。ただし、このときフレームメモリ86に描画される2値画像データは、相手方の電話番号を示す画像データである。このため、LCD18には、日付および現在時刻に代えて相手方の電話番号が表示される。ステップS23の処理が完了すると、ステップS25で通話処理を行なうとともに、ステップS27でホールドキー24bの操作の有無を判別する。そして、ホールドキー24bが操作されない限りステップS25の処理を繰り返し、ホールドキー24bが操作されたときステップS29で図27に示すサブルーチンを再度処理する。このとき、フレームメモリ86には日付および現在時刻を示す2値画像データが描画され、この結果、LCD18の表示は、相手方の電話番号から日付および現在時刻に更新される。
【0098】
ステップS35で電話着信ありと判別されると、ステップS37でゲームCPU起動フラグの状態を判別する。ここでゲームCPU起動フラグがリセット状態であれば、そのままステップS43に進む。一方、ゲームCPU起動フラグがセット状態であれば、ステップS39で図15に示すゲームキーレジスタ3のスタートキービットKO6を“1”にセットするとともに、ステップS41で図14に示すLCD制御データのLCNT4および3を“11”にセットしてからステップS43に進む。ステップS39の処理によって、*キー24d(スタートキーとして機能)の操作に関係なくスタートキービットKO6がセットされ、ゲームはポーズ状態に移行する。また、ステップS41の処理によって、ゲーム画面のトーンがアップされる。
【0099】
ステップS43では、図27に示すサブルーチンを処理する。このとき、フレームメモリ86には“着信中”との着信メッセージおよび発信元の電話番号を示す2値画像データが描画される。続いて、ステップS45でスピーカ48から着信音を発生し、ステップS47でフックキー24aの操作の有無を判別する。そして、フックキー24aが操作されれば、ステップS49で着信音の出力を停止し、ステップS51で通話処理を行なう。ステップS53ではホールドキー24bの操作の有無を判別し、ホールドキー24bが操作されない限りステップS51の通話処理を繰り返す。
【0100】
ホールドキー24bが操作されると、ステップS53からステップS55に進み、ゲームCPU起動フラグの状態を判別する。ここでゲーム起動フラグがリセット状態であればそのままステップS59に進むが、ゲーム起動フラグがセット状態であれば、ステップS57でLCD制御データのLCNT4および3を“10”にセットしてから、つまりゲーム画面のトーンを元に戻してから、ステップS59に進む。ステップS59では図27に示すサブルーチンを処理し、これによって全ドットが“0”を示す2値画像データがフレームメモリ86に書き込まれる。LCD18に表示された着信メッセージおよび発信元の電話番号は、ステップS59の処理によって消去される。ステップS59の処理が完了すると、ステップS31に進む。
【0101】
ステップS5,S13,S21およびS35のいずれにおいてもNOと判断されたときは、まずステップS61およびS63でバッテリ残量および受信状態を検出し、ステップS65で今日の日付および現在時刻を検出する。続いてステップS67で図30に示すサブルーチンを処理し、ステップS67の処理が完了すると、ステップS31に進む。
【0102】
図30を参照して、まずステップS161でカウント値Nを“1”にセットし、次にステップS163およびS165の各々でフレームメモリ86用Xアドレスおよびフレームメモリ86用Yアドレスをフレームメモリレジスタ80aにセットする。さらに、ステップS167で1ドット分の2値画像データを同じフレームメモリレジスタ80aにセットする。ステップS163およびS165でセットされるアドレスデータはフレームメモリ86に形成されたエリアNの先頭アドレスであり、ステップS167でセットされる2値画像データはこの先頭アドレスに書き込むデータである。ステップS169ではエリアNへの2値画像データの書き込みが完了したかどうか判断し、NOであればステップS167の処理を繰り返す。ステップS169でYESと判断されるとステップS171でカウント値Nが “2”であるかどうか判断し、NOであればステップS173でカウント値NをインクリメントしてからステップS163に戻る。
【0103】
この結果、ステップS163〜S171の処理が2回繰り返され、フレームメモリ86に形成されたエリア1および2の各々に2値画像データが書き込まれる。エリア1には受信状態およびバッテリ残量のキャラクタを示す2値画像データが格納され、エリア2には今日の日付および現在時刻のキャラクタを示す2値画像データが格納される。各々のキャラクタには、ステップS61〜S67で検出された受信状態,バッテリ残量,日付およびバッテリ残量が反映される。
【0104】
ステップS171でYESと判断されると、ステップS175,S177およびS179でエリア1用パレットデータ0,エリア1用パレットデータ1およびエリア2用パレットデータをパレット制御レジスタ80cにセットする。フレームメモリ86に格納された2値画像データは、セットされたエリア1用パレットデータ0,エリア1用パレットデータおよびエリア2用パレットデータ1による色付け処理を経て、LCD18に出力される。LCD18のエリア1には、現時点の受信状態,現時点のバッテリ残量が表示され、エリア2には今日の日付および現在時刻を示すキャラクタが表示される。
【0105】
図22に戻って、ステップS31ではゲームCPU起動フラグの状態を判別し、リセット状態であればそのままステップS5に戻る。一方、ゲームCPU起動フラグがセット状態であれば、割り込み要求が割り込みレジスタ1にセットされているかどうかをステップS33で判別する。そして、割り込み要求がセットされていなければ、上述のリセット状態と同様、そのままステップS5に戻る。したがって、電話モードが設定されているとき、ならびにゲームモードが設定されているが割り込み要求が与えられないときは、図24に示すステップS69以降の処理を行なうことなく、ステップS5〜S67の処理を繰り返す。
【0106】
割り込みレジスタ1に割り込み要求がセットされていれば、ステップS69でFIFOレジスタ1の設定値を検出するとともに、検出された設定値の内容をステップS71およびS75の各々で判別する。検出された設定値の内容がキー転送依頼であるときはステップS73でキー転送処理を行ない、検出された設定値の内容がFEP(Front End Processing)転送依頼であればステップS77でFEP転送処理を行ない、そして検出された設定値の内容が他の依頼であればステップS79で対応する処理を行なう。ステップS73,S77またはS79の処理を終えると、ステップS3に戻る。なお、キー転送処理は、*キー24dおよび#キー24eへのスタート機能およびセレクト機能の割り当てのために電話CPUコア28a側で行なわれる処理であり、FEP転送処理は、プレイヤ名の入力のために電話CPUコア28a側で行なわれる処理である。
【0107】
ステップS73におけるキー転送処理は、図31に示すサブルーチンに従う。まずステップS181でFIFOレジスタ1から設定値を検出し、検出した設定値がエンドコードであるかどうかをステップS183で判別する。図32を参照して、FIFOレジスタ1にキー転送依頼が設定されている場合、このキー転送依頼の次には電話キー24のいずれかを示すキーコードが設定され、さらにこのキーコードに割り当てたい機能を示す機能情報が、キーコードの次に設定される。エンドコードは、このようなキーコードおよび機能情報の繰り返しの後に設定される。
【0108】
したがって、ステップS181ではキーコードが検出され、最初のステップS183ではNOと判断される。ステップS185では、検出された設定値つまりキーコードと一致するキー項目を図33に示す機能割り当てテーブル34a(SRAM34に形成)の中から特定する。たとえば、キーコードの下位4桁が“1010”であれば“#キー”が特定され、キーコードの下位4桁が“1011”であれば“*キー”が特定される。ステップS187ではFIFOレジスタ1の設定値を再度検出する。上述のように、キーコードに続く設定値は機能情報であり、ステップS187では機能情報が検出される。ステップS189では、検出された機能情報をステップS185で特定されたキー項目に割り当てる。ステップS189の処理が完了すると、ステップS191でゲームキーレジスタ3の対応するビットに“0”を設定してからステップS181に戻る。
【0109】
たとえば、“#キー”を示すキーコードに続いて“セレクト”を示す機能情報(下位8ビットが“10000000”)が検出されたときは、機能割り当てテーブル34aの“#キー”の項目にセレクト機能が割り当てられ、図15に示すゲームキーレジスタ3のKO7に“0”が設定される。また、“*キー”を示すキーコードに続いて“スタート”を示す機能情報(下位8ビットが “01000000”)が検出されたときは、機能割り当てテーブル34aの“*キー”の項目にスタート機能が割り当てられ、ゲームキーレジスタ3のKO6に“0”が設定される。
【0110】
ステップS181で検出された設定値がエンドコードを示すときは、ステップS183を経てステップS193に進み、図9に示す電話キーレジスタ28bを参照して電話キー24のいずれが操作されたかを判別する。ステップS195では、判別された操作キーに割り当てられた機能情報を機能割り当てテーブル34aから検索し、ステップS197では、機能情報が機能割り当てテーブル34aから発見されたかどうかを判別する。
【0111】
図33によれば、“#キー”および“*キー”以外に、数字キー24cを示すキー項目も機能割り当てテーブル34aに設けられており、キー項目の中には機能情報が割り当てられていない項目も存在しうる。このため、機能情報を発見できたかどうかをステップS197で判断するようにしている。そして、機能情報を発見できなければそのまま図24に示すルーチンに復帰するが、機能情報を発見できたときはステップS199でゲームキーレジスタ3の対応するビットを“1”にセットしてから図24に示すルーチンに復帰する。
【0112】
たとえば、オペレータによって“1”を示す数字キーが押されたときは、ゲームキーレジスタ3のいずれのビットも“1”にセットされないが、オペレータによって*キー24dが押されたときは、ゲームキーレジスタ3のKO6が“1”にセットされる。
【0113】
図24のステップS77におけるFEP転送処理は、図34に示すサブルーチンに従う。まずステップS201でFIFOレジスタ1からカーソル表示位置データを検出し、次にステップS203で図27に示すサブルーチンを処理する。このときフレームメモリ86にエリア2に描画される2値画像データはカーソルを示す画像データである。カーソルの描画位置はカーソル表示位置データに基づいて決定され、2値画像データは図35(A)に示す要領でフレームメモリ86に格納される。
【0114】
一方、図35(B)に示す“名前を入力してください”の案内メッセージおよび名前入力枠を示すカラー画像データは、ゲームCPU40によってフレームメモリ88に描画される。この結果、図35(C)に示すプレイヤ名入力画面がLCD18に表示される。
【0115】
ステップS203の処理を終えると、ステップS205で電話キーレジスタ28bおよびゲームキーレジスタ2の設定値を検出し、続くステップS207でAボタン22bの操作の有無を判別する。ここでNOであれば、電話キー24が操作されたとみなしてステップS209に進み、FEP処理を行なう。FEP処理を終えると、ステップS203に戻る。FEP処理によって電話キー24の操作に対応する文字列が生成され、生成された文字列は続くステップS203の処理によってLCD18に表示される。
【0116】
たとえば、電話キー24を操作して“やまだ”と入力してカナ漢字変換を行ない、さらに“たろう”と入力すると、フレームメモリ86には図36(A)に要領で2値画像データが描画され、LCD18上の名前入力枠には図36(C)に示すように“山田たろう”の文字が表示される。カーソルは、“たろう”を指向する。
【0117】
名前入力の完了後、オペレータによってAボタン22bが操作されると、ステップS207でYESと判断し、ステップS211およびS213の各々で“FEP結果送付”および作成された文字列に対応するJISコードをFIFOレジスタ2にセットする。ステップS215では割り込みレジスタ2に割り込み要求をセットし、ステップS217では図27に示すサブルーチンを処理する。ステップS217の処理を終えると、図24に示すルーチンに復帰する。
【0118】
ステップS217では全ビットが“0”を示す2値画像データがフレームメモリ86のエリア2に描画され、フレームメモリ86には受信状態およびバッテリ残量を示すキャラクタの2値画像データのみが残る。ただし、後述するゲームCPU40の処理によって、“山田太郎”を示すカラー画像データが図37(B)に示す要領でフレームメモリ88に描画され、LCD18には図37(C)に示すプレイヤ名入力画面が表示されることとなる。
【0119】
ゲームCPUコア50は、図38〜図41に示すフロー図を処理する。まずステップS221でゲームCPU起動フラグの状態を判別し、セット状態になったときにステップS223でゲームCPU表示処理を行なう。このゲームCPU表示処理は、図40に示すサブルーチンに従う。
【0120】
図40を参照して、まずステップS271で背景画像データを形成する静止キャラクタデータをVRAM72にセットし、ステップS273で静止キャラクタのパレットデータをカラーパレットRAM68にセットする。続いて、今回表示すべき画面がオブジェクト画像データを出力すべき画面であるかどうかをステップS275で判別し、NOであればそのままステップS283に進むが、YESであればステップS277〜S281の処理を経てステップS283に進む。たとえば図4に示すゲーム画面についてはオブジェクト画像(動きキャラクタ)を表示する必要があり、このときは、ステップS277に進む。一方、図3に示すメニュー画面や図6(A)および図6(B)に示すプレイヤ名入力画面では背景画像のみを表示すればよく、このときはステップS283に進む。
【0121】
オブジェクト画像を表示する場合は、まずステップS277で動きキャラクタデータをVRAM74にセットし、ステップS279で動きキャラクタのパレットデータをカラーパレットRAM68にセットする。さらにステップS281で動きキャラクタのアトリビュートをOAM76にセットし、ステップS281の処理が完了するとステップS283に進む。
【0122】
ステップS283では背景画像およびオブジェクト画像の出力に関する設定値をレジスタ70にセットし、続くステップS285では1フレーム分の処理が完了したかどうか判断する。ここでNOであればステップS271に戻り上述の処理を繰り返すが、YESであれば上階層のルーチンに復帰する。
【0123】
PPU78は、レジスタ70の設定値に応じて、静止キャラクタデータにカラーパレットRAM68のパレットデータに従う色付けを施し、さらに必要に応じて動きキャラクタデータにもカラーパレットRAM68のパレットデータに従う色付けを施す。色付けを施されたカラー画像データはLCDコントローラ84によってフレームメモリ88に書き込まれ、その後同じLCDコントローラ84によってLCD18に出力される。この結果、カラー画像がLCD18に表示される。
【0124】
図38に示すステップS223におけるゲームCPU表示処理では、図3に示すようなメニュー画面がLCD18に表示される。このメニュー画面は、静止キャラクタによって形成される。LCD18に表示されたメニュー画面の中から所望のゲームが選択されると、ステップS225からステップS227に進む。ステップS227〜S237の各々では、キー転送依頼,“#キー”を示すキーコード,“セレクト”を示す機能情報,“*キー”を示すキーコード,“スタート”を示す機能情報およびエンドコードをFIFOレジスタ1にセットする。エンドコードの設定が完了すると、ステップS239で割り込み要求を図13に示す割り込みレジスタ1に設定する。この結果、電話CPUコア28aによって上述のキー転送処理が実行され、#キー24eにセレクト機能が割り当てられるとともに、*キー24dにスタート機能が割り当てられる。
【0125】
ステップS241では、選択されたゲームに関連するBGMデータの出力をSPU64に命令する。スピーカ48からは、このBGMデータに基づくBGMが出力される。続くステップS243では、ゲームキーレジスタ1の設定値を検出する。そして、図15に示すK0〜K7のいずれのビットが“1”にセットされているかを、ステップS245,S251およびS261の各々で判別する。
【0126】
セレクトキーに対応するK7が“1”にセットされているときはステップS245でYESと判断し、ステップS247でLCD18の表示がメニュー画面であるかどうか判別する。LCD18の表示がメニュー画面でなければ、そのままステップS243に戻り、この結果、#キー24dの操作は無効とされる。一方、LCD18の表示がメニュー画面であれば、ステップS249におけるセレクト処理を経てステップS243に戻る。
【0127】
スタートキーに対応するK6が“1”にセットされているときはステップS251でYESと判断し、ステップS253でゲームにポーズをかける。具体的には、K6ビットを“0”に戻し、SPU64に対してサウンド出力を停止させ、そして現時点のゲームデータをフラッシュメモリ54に格納する。ステップS255ではゲームキーレジスタ1の設定値を検出し、ステップS257ではスタートキーに対応するK6が“1”を示すかどうか判別する。ここで、YESと判断されない限りステップS255およびS257の処理が繰り返され、この間ゲーム画面の停止状態が続く。ステップS257でYESと判断されると、ステップS259でポーズ状態を解除し、ステップS243に戻る。この結果、ゲーム画面の動きおよびBGMの出力が再開される。
【0128】
なお、ステップS253でゲームデータを格納することによって、電話終了後に何らかの原因(たとえば電池の消耗)でポーズ状態から復帰できないときでも、別の操作(たとえば再起動)によって中断時点からゲームを再開することができる。
【0129】
図15に示すK6およびK7以外のビットが“1”にセットされているときはステップS261でYESと判断し、ステップS263,S265およびS267の各々でゲーム処理,ゲームCPU表示処理および効果音出力処理を行なう。ステップS263におけるゲーム処理では、カラーパレットRAM68,レジスタ70,VRAM72および74ならびにOAM76の設定が、必要に応じて更新される。ステップS265におけるゲームCPU表示処理では、図4に示すようなスクリーン,静止オブジェクトおよび動きキャラクタからなるゲーム画面がLCD18に表示される。ステップS267の効果音出力処理では、効果音データがSPU64から出力される。
【0130】
なお、図15に示すK0〜K7のいずれも“0”であれば、ステップS261でNOと判断し、そのままステップS243に戻る。
【0131】
ステップS263におけるゲーム処理の途中でプレイヤの名前を入力する場面が生じると、ゲームCPUコア50は図41に示すサブルーチンを処理する。まず、ステップS291で図40に示すゲームCPU表示処理を行なう。これによって、図35(B)に示すような“名前を入力してください”のメッセージおよび名前入力枠のカラー画像データがフレームメモリ88に書き込まれ、LCD18には図35(C)に示す名前入力画面が表示される。ただし、ステップS291が完了した時点ではカーソルはまだ表示されない。
【0132】
ステップS293ではFEP転送依頼をFIFOレジスタ1にセットし、ステップS295ではカーソル表示位置データをFIFOレジスタ1にセットし、ステップS295の処理が完了すると、ステップS297で割り込み要求を割り込みレジスタ1にセットする。これによって、電話CPUコア28a側でFEP転送処理が行なわれ、カーソルが図35(C)に示す要領で名前入力枠内に表示される。
【0133】
ステップS299では、割り込み要求が割り込みレジスタ2にセットされているかどうか判別する。ここでYESと判断されると、FIFOレジスタ2の設定値(FEP結果送付)をステップS301で検出し、ステップS303でFIFOレジスタ2の設定値(JISコード)を検出する。さらに、検出されたJISコードに基づいて名前表示枠内に名前を表示すべく、ステップS305でゲームCPU表示処理を行なう。これによって、図37(B)に示すようなメッセージ,名前表示枠および名前のカラー画像データがフレームメモリ88に描画され、LCD18には図37(C)に示すような名前入力画面が表示される。名前を示すカラー画像データの描画位置は、上述のカーソル表示位置データに基づいて決定する。ステップS305の処理が完了すると、上階層のルーチンに復帰する。
【0134】
以上の説明から分かるように、実行中のゲームを中断させるべく(ポーズ状態に移行すべく)、オペレータが*キー24dを操作すると、電話CPUコア28aは、このキー操作に応答してゲームキーレジスタ3のKO6ビットに“1”を設定する(これに伴って、ゲームキーレジスタ1のK6ビットに “1”が設定される)。電話CPUコア28aは、ゲームの実行中に電話の着信があったときも、上述のKO6ビットに“1”を設定する。ゲームCPUコア50は、ゲームキーレジスタ1のK6ビットが“1”に更新されたとき、実行中のゲームにポーズをかけ、現時点のゲームデータをフラッシュメモリ54に保存し、そしてK6ビットを“0”に戻す。なお、ゲーム実行中に電話の着信があったときは、ポーズ状態の移行に加えて、ゲーム画面の階調が変更される。ゲームが中断している状態で*キー24dが操作されると、K6ビットの設定値が再度“1”に設定される。すると、ゲームCPUコア50は、ゲームを再開する。
【0135】
このように、電話の着信があったときは、ゲームは終了ではなく中断される。このため、通話が終了した後にゲームを途中から再開することができる。また、ゲームキーレジスタ1のK6ビットには、*キー24dが操作されたときだけでなく、電話の着信があったときも、“1”が設定される。このため、従来からあるゲームプログラムが元々備えているゲームポーズ機能を変更することなく、電話着信時にゲームにポーズをかけることができる。
【0136】
なお、この実施例では、図16に示すようにエリア1および2を形成し、図17に示す要領でエリア1に受信状態およびバッテリ残量を示すキャラクタを表示するようにした。しかし、エリア1および2を図42に示すように形成するようにしてもよい。
【0137】
また、この実施例では、ゲーム中に着信があったとき、ゲーム画面のトーンをアップさせるようにしているが、ゲーム画面のトーンはダウンさせるようにしてもよい。
【0138】
また、この実施例では、ゲームのスタートキー機能およびセレクトキー機能を電話キー(#および*)に割り当てるようにしたが、ゲームの他の機能を電話キーに割り当てるようにしてもよい。
【図面の簡単な説明】
【0139】
【図1】この発明の一実施例を示す外観図である。
【図2】着信待ち画面の一例を示す図解図である。
【図3】メニュー画面の一例を示す図解図である。
【図4】ゲーム画面の一例を示す図解図である。
【図5】着信案内画面の一例を示す図解図である。
【図6】(A)はプレイヤ名を入力している途中のプレイヤ名入力画面の一例を示す図解図であり、(B)はプレイヤ名の入力が完了した後のプレイヤ名入力画面の一例を示す図解図である。
【図7】図1実施例の構成を示すブロック図である。
【図8】ゲームCPUの構成を示すブロック図である。
【図9】キーコントローラおよびその周辺の構成を示すブロック図である。
【図10】LCDコントローラおよびその周辺の構成を示すブロック図である。
【図11】画像合成回路の構成を示すブロック図である。
【図12】ゲームCPUコアがアクセスできるメモリのマッピング状態を示す図解図である。
【図13】レジスタ80の構成を示す図解図である。
【図14】LCD制御データの構成を示す図解図である。
【図15】ゲームキーレジスタ1〜3の構成を示す図解図である。
【図16】LCD表示画面に形成されるエリアを説明した図解図である。
【図17】LCD表示画面に表示される色を説明した図解図である。
【図18】フレームメモリ86に描画される2値画像データの一例を示す図解図である。
【図19】フレームメモリ88に描画されるカラー画像データの一例を示す図解図である。
【図20】フレームメモリ86に描画される2値画像データの他の一例を示す図解図である。
【図21】フレームメモリ88に描画されるカラー画像データの他の一例を示す図解図である。
【図22】電話CPUコアの動作の一部を示すフロー図である。
【図23】電話CPUコアの動作の他の一部を示すフロー図である。
【図24】電話CPUコアの動作のその他の一部を示すフロー図である。
【図25】電話CPUコアの動作のさらにその他の一部を示すフロー図である。
【図26】電話CPUコアの動作の他の一部を示すフロー図である。
【図27】電話CPUコアの動作のその他の一部を示すフロー図である。
【図28】電話CPUコアの動作のさらにその他の一部を示すフロー図である。
【図29】電話CPUコアの動作の他の一部を示すフロー図である。
【図30】電話CPUコアの動作のその他の一部を示すフロー図である。
【図31】電話CPUコアの動作のさらにその他の一部を示すフロー図である。
【図32】キー転送処理時にFIFOレジスタ1に設定されるデータを示す図解図である。
【図33】機能割り当てテーブルを示す図解図である。
【図34】電話CPUコアの動作の他の一部を示すフロー図である。
【図35】(A)はプレイヤ名入力処理時にフレームメモリ86に描画される2値画像データを示す図解図であり、(B)はプレイヤ名入力処理時にフレームメ モリ88に描画されるカラー画像データを示す図解図であり、(C)はLCDに表示されるプレイヤ名入力画面を示す図解図である。
【図36】(A)はプレイヤ名入力処理時にフレームメモリ86に描画される2値画像データを示す図解図であり、(B)はプレイヤ名入力処理時に フレームメモリ88に描画されるカラー画像データを示す図解図であり、(C)はLCDに表示されるプレイヤ名入力画面を示す図解図である。
【図37】(A)はプレイヤ名入力処理時にフレームメモリ86に描画される2値画像データを示す図解図であり、(B)はプレイヤ名入力処理時に フレームメモリ88に描画されるカラー画像データを示す図解図であり、(C)はLCDに表示されるプレイヤ名入力画面を示す図解図である。
【図38】ゲームCPUコアの動作の一部を示すフロー図である。
【図39】ゲームCPUコアの動作の他の一部を示すフロー図である。
【図40】ゲームCPUコアの動作のその他の一部を示すフロー図である。
【図41】ゲームCPUコアの動作のさらにその他の一部を示すフロー図である。
【図42】この発明の他の実施例に関する動作の一部を示す図解図である。
【図43】この発明の他の実施例に関する動作の他の一部を示す図解図である。
【符号の説明】
【0140】
10…ゲーム機能付携帯通信端末
18…LCD
20…ゲーム起動キー
22…ゲームキー
24…電話キー
28…電話CPU
40…ゲームCPU
50…ゲームCPUコア
64…音声処理ユニット
68…カラーパレットRAM
70,80…レジスタ
72,74…VRAM
76…OAM
78…画像処理ユニット
82…キーコントローラ
84…LCDコントローラ
86,88…フレームメモリ
【技術分野】
【0001】
この発明は、ゲーム機能および電話機能を有し、電話の着信があったときにゲームを中断する、電子装置に関する。
【背景技術】
【0002】
従来のこの種の電子装置の一例が、平成8年3月26日に出願公開された特開平8−84172号[H04M1/00]に開示されている。この従来技術は、電話機能とラジオ放送の受信機能とを備え、ラジオ放送の受信中に着信があると、通話・フックスイッチの操作に応答して、ラジオ放送の受信を終了するとともに、発呼元との接続処理を行なおうとするものである。
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、従来技術は、ラジオ放送の受信を終了しようとするものであるため、電話機能とゲーム機能とを備える電子装置にこの従来技術を適用すると、着信操作に応答してゲームが終了してしまう。そうすると、ゲームは、通話終了後、最初からやり直さなければならなくなる。
【0004】
それゆえに、この発明の主たる目的は、通話終了後にゲームを途中から再開できる、電子装置を提供することである。
【課題を解決するための手段】
【0005】
この発明は、ゲーム機能および電話機能を有する電子装置において、実行中のゲームの中断を指示する中断キー、中断キーの操作に応答して第1所定値が設定される第1レジスタ、第1レジスタの設定値が第1所定値を示すときゲームを中断する中断手段、電話の着信を検出する検出手段、および着信の検出に応答して第1所定値を第1レジスタに設定する設定手段を備えることを特徴とする、電子装置である。
【0006】
実行中のゲームの中断を指示する中断キーが操作されると、第1所定値が第1レジスタに設定される。すると、中断手段によってゲームが中断される。一方、電話の着信は検出手段によって検出され、着信があると第1所定値が設定手段によって第1レジスタに設定される。このため、着信があったときは、中断キーを操作することなくゲームが中断される。
【0007】
この発明のある局面では、第1レジスタが第1所定値を示すと、現時点のゲームデータが保存手段によってメモリに保存される。
【0008】
この発明の他の局面では、ゲームが実行中であるかどうかが判別手段によって判別される。設定手段は、ゲームが実行中のときに、第1所定値を第1レジスタに設定する。つまり、ゲーム実行中に着信があったときに第1所定値が第1レジスタに設定され、これによってゲームが中断される。
【0009】
この発明のその他の局面では、ゲームの再開を指示する再開キーが操作されると、第2所定値が第2レジスタに設定される。すると、再開手段によってゲームが再開される。
【0010】
この発明のさらにその他の局面では、着信があると、表示手段に表示されているゲーム画面の階調が、変更手段によって変更される。
【0011】
この発明の他の局面では、ゲームは、電話機能によって外部からダウンロードされたゲームプログラムに従って実行される。
【発明の効果】
【0012】
この発明によれば、着信があると、中断キーを操作することなくゲームが中断される。つまり、ゲームは、終了ではなく中断される。このため、通話が終了した後にゲームを途中から再開することができる。
【0013】
また、レジスタには、中断キーが操作されたときだけでなく、電話の着信があったときも、第1所定値が設定される。このため、従来からあるゲームプログラム(レジスタに第1所定値が設定されたときにゲームを中断するプログラム)をそのままこの実施例の電子装置に用いたとしても、着信時にゲームを中断させることができる。つまり、従来のゲームプログラムが元々備えているゲームポーズ機能を変更することなく、電話着信時にゲームにポーズをかけることができる。
【0014】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【実施例】
【0015】
図1を参照して、この実施例のゲーム機能付携帯通信端末10は、細長の直方体状に形成された本体12を含む。本体12の上面にはアンテナ14が突出し、本体12の前面には、スピーカ16,カラーLCD18,ゲーム起動キー20,ゲームキー22,電話キー24およびマイク26が配置される。
【0016】
ゲームキー22としては、ゲームを展開する主人公に所定方向への移動(たとえば前進,後退,方向転換,ジャンプなど)を指示する十字キー22aと、主人公に所定の振る舞い(たとえばアイテムの獲得や標的への攻撃)を指示するAボタン22bおよびBボタン22cとが存在する。また、電話キー24としては、フックキー24a,ホールドキー24b,“0”〜“9”を示す数字キー24c,*キー24dおよび#キー24eが存在する。
【0017】
着信待ち状態では、LCD18に図2に示すような着信待ち画面が表示される。図2によれば、今日の日付および現在時刻と本件出願人の制作に係るゲームキャラクタとが画面中央に表示され、受信状態およびバッテリ残量を示すキャラクタが画面上方に表示される。着信待ち状態でオペレータがフックキー24aおよび数字キー24cを用いてダイヤル操作をすると、ダイヤルされた電話番号がLCD18に表示されるとともに、相手方に対する発呼処理が行われる。この発呼に対して相手方が着信操作をすると、プロトコルが確立され、通話が可能となる。一方、相手方から着信があると、着信メッセージおよび発信元の電話番号がLCD18に表示されるとともに、着信音が本体12の背面に設けられたスピーカ48(図7参照)から出力される。ここでオペレータがフックキー24aを操作すると、着信音の出力が中止されるとともに発信元との間でプロトコルが確立され、通話可能状態となる。
【0018】
着信待ち状態のときにオペレータがゲーム起動キー20を操作すると、電話モードからゲームモードに移行する。まず図3に示すようなメニュー画面が表示され、オペレータがこのメニュー画面から所望のゲーム(たとえばスーパーマリオDX)を選択すると、選択されたゲームが開始される。LCD18の表示は図4に示すようなゲーム画面に更新され、背面のスピーカ48からはBGMが出力される。ゲームは上述のゲームキー22の操作に応答して進行し、必要に応じて効果音がスピーカ48から出力される。
【0019】
この実施例では、ゲームモードにおいて、*キー24dがスタートキーとして機能し、#キー24eがセレクトキーとして機能する(他の電話キーをスタートキーやセレクトキーとして機能させるようにしてもよい)。このため、進行中のゲームは、*キー24dの操作に応じて中断/再開される。つまり、ゲームの進行中に*キー24dが押されると、ポーズ状態に移行し、ゲーム画面の動きが止まるとともにBGMの出力が中断される。*キー24dが再度押されると、ポーズ状態が解除され、ゲーム画面が動き出すとともにBGMの出力が再開される。また、上述のメニュー画面やプレイヤの選択を促す画面などでは、#キー24eを操作することで画面上のカーソルが移動する。
【0020】
ゲームの進行中でも着信検出は常時行われており、着信があると、ゲーム画面の動きが停止するとともに、BGMの出力が中止される。つまり、着信に応答してゲームにポーズがかけられる。さらに、スピーカ48からはBGMに代えて着信音が出力され、LCD18の表示は図5に示すような着信画面に更新される。図5によれば、ゲーム画面の階調(トーン)が変更され、“着信中”との着信メッセージと発信元の電話番号とがゲーム画面上に表示される。このときも、フックキー24aの操作によって着信音の出力が中止されるとともにプロトコルが確立され、通話可能状態となる。通話が終了すると、トーンが元に戻され、図4に示すゲーム画面が再度表示される。
【0021】
ただし、通話終了後もポーズ状態は継続し、このポーズ状態は*キー24dの操作に応じて解除される。つまり、着信時は*キー24dを操作することなくゲームにポーズがかけられるが、ポーズ状態は*キー24dの操作によって解除される。*キー24dの操作によるポーズ状態の解除によって、上述のように、ゲーム画面が動き出し、BGMの出力が再開される。
【0022】
ゲームの途中または開始時点でプレイヤの名前を登録する必要が生じると、図6(A)および図6(B)に示すようなプレイヤ名入力画面がLCD18に表示される。このとき、プレイヤ名は、数字キー24cの操作によって画面上の名前入力枠内に表示される。つまり、数字キー24cの各々には50音のひらがな,まる「゜」,てん「゛」などが割り当てられており、この数字キー24cの操作によって所望の名前の入力処理が行われる。
【0023】
本体12の内部は、具体的には図7に示すように構成される。ゲーム起動キー20および電話キー24は、電話処理用のCPU(電話CPU)28と直接接続される。また、アンテナ14は、送受信回路32を介して電話CPU28と接続され、スピーカ16およびマイク26は、音声コーデック30を介して電話CPU28と接続される。スピーカ48は、加算器46を介して電話CPU28と接続される。SRAM34およびフラッシュメモリ36は、8ビットバス38を介して電話CPU28に接続される。フラッシュメモリ36には電話処理のためのプログラム(電話プログラム)や電話帳データが格納され、SRAM34は電話プログラムの処理時にワークRAMとして用いられる。
【0024】
一方、ゲーム処理用のCPU(ゲームCPU)40には、ゲームキー22,LCD18,SRAM42および外部端子Sが直接接続され、スピーカ48が加算器46およびアンプ44を介して接続される。SRAM42は、ゲーム処理のためのプログラム(ゲームプログラム)を処理するときに外部ワークRAMとして用いられる。
【0025】
なお、電話CPU28とゲームCPU40との間では、8ビットバス38を介したデータのやり取りに加えて、割り込み要求および通信データの直接のやり取りが行なわれる。通信データは、外部接続用端子Sを通して接続される外部機器(図示せず)との間でもやり取りされる。
【0026】
ゲームCPU40は、図8に示すように構成される。プロセサとしては、ゲームCPUコア50,音声処理ユニット(SPU)64,画像処理ユニット(PPU)78およびLCDコントローラ84が存在する。また、内部メモリとしては、システムROM52,フラッシュメモリ54,ワークRAM56,カラーパレットRAM68,レジスタ70および80,VRAM72および74,OAM(Object Attribute Memory)76,フレームメモリ86および88ならびにキーコントローラ82に設けられたゲームキーレジスタ1(図9参照)が存在する。かかるプロセサおよび内部メモリのほか、上述の通信データを電話CPU28または外部機器とやり取りするためにUART58およびUARTセレクタ60が設けられ、図7に示すSRAM42にアクセスするために外部SRAMI/F62が設けられる。
【0027】
ゲームCPUコア50がアクセスできるメモリは、システムROM52,フラッシュメモリ54,ワークRAM56,SRAM42,カラーパレットRAM68,レジスタ70,VRAM72および74,OAM76,レジスタ80に設けられたゲームCPU制御レジスタ80d,FIFOレジスタ80eおよび割り込みレジスタ80g(図13参照),ならびにキーコントローラ82に設けられたゲームキーレジスタ1(図9参照)である。
【0028】
PPU78がアクセスできるメモリは、カラーパレットRAM68,レジスタ70,VRAM72および74,ならびにOAM76である。
【0029】
LCDコントローラ84がアクセスできるメモリは、フレームメモリ86および88,ならびにレジスタ80に設けられたフレームメモリレジスタ80a,出力制御レジスタ80bおよびパレット制御レジスタ80c(図13参照)である。
【0030】
なお、SPU64は図示しないサウンドROMにアクセスできるが、音声処理に関する詳しい説明は省略する。
【0031】
ゲームCPUコア50から見たメモリマッピングを図12に示す。図12によれば、“00000000h”〜“01999999h”にシステムROM52が割り当てられ、“02000000h”〜“02999999h”にSRAM42が割り当てられ、“03000000h”〜“03999999h”にワークRAM56が割り当てられる。また、 “04000000h”〜“04999999h”に各種レジスタ(70,80d,80e,80g,ゲームキーレジスタ1)が割り当てられ、 “05000000h”〜“05999999h”にカラーパレットRAM68が割り当てられる。さらに、“06000000h”〜“06999999h” にVRAM72および74が割り当てられ、“07000000h”〜“07999999h”にOAM76が割り当てられ、 “08000000h”〜“08199999h”にゲームプログラム(イメージ)が割り当てられる。
【0032】
また、“10000000h”〜“Xh−1”にフラッシュメモリ54に格納されたブラウザプログラムおよびモニタプログラムが割り当てられ、“Xh”〜“Xh+00199999h”にフラッシュメモリ54に格納されたゲームプログラムが割り当てられ、 “Xh+00200000h”〜“10400000h”にフラッシュメモリ54に格納されたバックアップが割り当てられる。ゲームCPUコア50は、このようなアドレスを利用して各々のメモリにアクセスする。
【0033】
各々のメモリについて具体的に説明すると、システムROM52は、ゲームCPUコア50のブートプログラムや、フラッシュメモリ54が破壊された場合の復旧プログラムなどを格納する。また、フラッシュメモリ54は、上述のようにバックアップ,ゲームプログラム,ブラウザプログラムおよびモニタプログラムを格納する。ゲームプログラムは、インターネット上に設けられたかつ多数のゲームプログラムを記憶したサーバからダウンロードされる。つまり、電話機能を用いてサーバに接続し、希望のゲームプログラムを選択すれば、選択されたゲームプログラムが電話CPU28を介してフラッシュメモリ54にダウンロードされる。ワークRAM56およびSRAM42には、上述のプログラムの処理時に得られたデータが一時的に格納される。
【0034】
VRAM72は、静止したキャラクタ(静止キャラクタ)を示す背景画像データを格納し、VRAM74は、動きを伴うキャラクタ(動きキャラクタ)を示すオブジェクト画像データを格納し、そしてOAM(Object Attribute Memory)76は、各々の動きキャラクタのアトリビュートを格納する。たとえば、図4に示すゲーム画面が表示されるとき、VRAM72に格納される背景画像データは、木,山および地面のような静止キャラクタデータを含む。また、VRAM74に格納されるオブジェクト画像データは、空中をジャンプする主人公,地面を動くキノコ,空中に浮かび下から突くと微動するブロックのような動きキャラクタデータを含む。
【0035】
カラーパレットRAM68は、静止キャラクタおよび動きキャラクタを色付けするためのパレットデータを格納し、レジスタ70は、画像モードを指定したり、画面に特殊効果を施すための設定値を保持する。
【0036】
図13を参照して、フレームメモリレジスタ80aは、フレームメモリ86および88のアドレスデータおよび画像データを保持する。具体的には、フレームメモリ86のXアドレス,Yアドレスおよびこのアドレス(X,Y)に書き込む1ドット(=1ビット)分の2値画像データ、ならびにフレームメモリ88のXアドレス,Yアドレスおよびこのアドレス(X,Y)に書き込む1ドット(=8ビット)分のカラー画像データが設定される。フレームメモリレジスタ80aに対する設定は、電話CPU28によって行われる。電話モードではフレームメモリ86および88の両方のアドレスデータおよび画像データが電話CPU28によって設定され、ゲームモードではフレームメモリ86のアドレスデータおよび画像データのみが電話CPU28によって設定される。
【0037】
出力制御レジスタ80bは、LCDコントローラ84からLCD18への画像データの出力を制御するためのレジスタであり、これには合成開始ラインデータ,合成終了ラインデータ,画像開始ラインデータおよびLCD制御データが設定される。図16および図17に示すように、表示画面にはエリア1および2が形成され、エリア1にはフレームメモリ86に描画された画像データに基づく画像が表示され、エリア2にはフレームメモリ86および88に描画された各々の画像データに基づく合成画像が表示される。合成開始ライン指定データおよび合成終了ライン指定データはそれぞれ、エリア2の開始位置および終了位置を示す。また、画像開始ラインデータは、フレームメモリ88のどのラインからカラー画像データの読み出しを開始するかを指定するデータである。この画像開始ラインデータを所定ライン数毎に更新することで、カラー画像のスクロール表示が可能となる。
【0038】
LCD制御データは、具体的には図14に示すように8ビットで表される。0ビット目(=LCNT0)はモード選択フラグであり、“0”は電話モードを、“1”はゲームモードを示す。1ビット目(=LCNT1)はフレームメモリ86に描画された2値画像データに基づく画像の出力/中止を制御するフラグであり、“0”は中止を、“1”は出力を示す。2ビット目(=LCNT2)は、フレームメモリ88に描画されたカラー画像データに基づく画像を表示するときに、このカラー画像にブレンディングを施すかどうかを制御するフラグであり、“0”はノーマルを、“1”はブレンディングを示す。4ビット目および3ビット目(=LCNT4,3)はフレームメモリ88に描画されたカラー画像データに基づく画像の出力およびトーン(階調)を制御するフラグであり、“00”は出力中止を、“01”はトーンダウンを、 “10”は等倍トーンを、“11”はトーンアップを示す。5ビット目(=LCNT5)はLCD18の表示オン/表示オフを制御するフラグであり、“0”は表示オフを、“1”は表示オンを示す。6ビット目および7ビット目は、この実施例では使用されない。
【0039】
パレット制御レジスタ80cは、フレームメモリ86に書き込まれた2値画像データに基づく画像の色を指定するためのレジスタである。合成エリアではないエリア1については、背景色を決定するパレットデータ0とキャラクタ色を決定するパレットデータ1が設定される。これに対して、合成エリアである第2エリアについては、キャラクタ色を決定するパレットデータ1のみが設定され、背景は常に透明色とされる。
【0040】
ゲームCPU制御レジスタ80dは、ゲームCPU起動フラグのみを有する。このゲームCPU起動フラグは、ゲーム起動キー20の操作に応答して“1”に設定され、ホールドキー24bの操作に応答して“0”に設定される。“1”はゲームモードを示し、“0”は電話モードを示す。
【0041】
FIFOレジスタ80eは、ゲームモードにおいてゲームCPU40と電話CPU28との間でやり取りされるデータを一時的に保持するためのレジスタである。具体的にはFIFOレジスタ1および2の2つからなり、いずれも64×16ビットの容量を持つ。この実施例の電話CPU28は8ビットCPUであるので16ビットの設定データのうち8ビットしか使用されないが、FIFOレジスタ1および2を16ビットとしておくことで、16ビットの電話CPUにも対応できる。
【0042】
ゲームCPU40から電話CPU28へのデータ転送にはFIFOレジスタ1が用いられ、電話CPU28からゲームCPU40へのデータ転送にはFIFOレジスタ2が用いられる。このため、FIFOレジスタ1への書き込みはゲームCPU40によってのみ行われ、FIFOレジスタ1からの読み出しは電話CPU28によってのみ行われる。また、FIFOレジスタ2への書き込みは電話CPU28によってのみ行われ、FIFOレジスタ2からの読み出しはゲームCPU40によってのみ行われる。このFIFOレジスタ1および2は、*キー24dおよび#キー24eへのスタート機能およびセレクト機能の割り当て処理、ならびにプレイヤ名入力処理において利用される。
【0043】
ゲームキーレジスタ80fは、ゲーム操作に関連するデータを保持するレジスタであり、ゲームキーレジスタ2および3からなる。ゲームキーレジスタ1は上述のようにキーコントローラ80に設けられ、ゲームキーレジスタ1〜3のいずれも、図15に示すように8ビットで形成される。0ビット目(=K0,KI0,KO0)にはAボタン22bが割り当てられ、1ビット目(=K1,KI1,KO1)にはBボタン22cが割り当てられ、2ビット目〜5ビット目(=K2〜K5,KI2〜KI5,KO2〜KO5)には十字キー22aの上方向,下方向,左方向,右方向が割り当てられる。また、6ビット目(=K6,KI6,KO6)にはスタートキー(*キー24d)が割り当てられ、7ビット目にはセレクトキー(#キー24e)が割り当てられる。
【0044】
Aボタン22bが操作されると0ビット目が“0”から“1”に更新され、Bボタン22cが操作されると1ビット目が“0”から “1”に更新される。2ビット目は十字キー22aが上向きに操作されたとき“0”から“1”に更新され、3ビット目は十字キー22aが下向きに操作されたとき“0”から“1”に更新される。また、4ビット目は十字キー22aが左向きに操作されたとき“0”から“1”に更新され、5ビット目は十字キー22aが右向きに操作されたとき“0”から“1”に更新される。さらに、*キー24dが操作されると6ビット目が“0”から“1”に更新され、#キー24eが押されると7ビット目が“0”から“1”に更新される。
【0045】
割り込みレジスタ80gは、ゲームCPU40と電話CPU28との間でやり取りされる割り込み要求を一時的に保持するレジスタである。割り込みレジスタ1にはゲームCPU40から電話CPU28に発された割り込み要求が設定され、割り込みレジスタ2には電話CPU28からゲームCPU40に発された割り込み要求が設定される。なお、電話CPU28からゲームCPU40への割り込み、およびゲームCPU40から電話CPU28への割り込みのいずれも、*キー24dおよび#キー24eへのスタート機能およびセレクト機能の割り当て処理、ならびにプレイヤ名入力処理において利用される。
【0046】
キーコントローラ82およびその周辺は図9に示すように構成される。ゲームモードでは、上述のように、*キー24dがスタートキーとして機能し、#キー24eがセレクトキーとして機能する。オペレータが、*キー24dまたは#キー24eを操作すると、電話キーレジスタ28bの所定ビットが“1”に更新される。電話CPUコア28aは、電話キーレジスタ28bの設定値からいずれのキーが操作されたかを判別し、*キー24dが操作されたときはゲームキーレジスタ3の6ビット目を、#キー24eが操作されたときはゲームキーレジスタ3の7ビット目を“1”に更新する。
【0047】
ゲームキーレジスタ1には、ゲームキー22の操作に応じた数値とゲームキーレジスタ3から出力された数値の論理和が設定される。ゲームCPUコア50は、ゲームキーレジスタ1の設定値を入力し、入力した設定値に応じたゲーム処理を行なう。このため、ゲーム処理には、ゲームキー22の操作だけでなく、*キー24dおよび#キー24eの操作も反映される。
【0048】
ゲームキーレジスタ1の設定値はゲームキーレジスタ2にも与えられ、ゲームキーレジスタ1および2の設定値は常に一致することとなる。したがって、ゲームキーレジスタ2の設定値は、ゲームキー22の操作に応じて変化する。電話CPUコア28aは、プレイヤ名入力時にゲームキーレジスタ2の設定値からAボタン22bの操作の有無を判別し、判別結果に応じた処理を行なう。
【0049】
図8に戻って、PPU78は、VRAM72および74に格納された画像データに対して、パレットRAM68のパレットデータならびにレジスタ70の設定値に従う処理を施し、かかる処理が施された8ビットのカラー画像データをアドレスデータとともにLCDコントローラ84に出力する。ただし、VRAM72および74に背景画像データおよびオブジェクト画像データが描画されるのはゲームモードのみであり、PPU78は、ゲームモードにおいてのみカラー画像データおよびアドレスデータをLCDコントローラ84に転送する。
【0050】
LCDコントローラ84は、具体的には図10に示すように構成される。出力制御レジスタ80bに設定されたLCD制御データのLCNT0はセレクタ84bに与えられ、LCNT1は読み出しコントローラ84fに与えられ、LCNT4および3はトーン制御回路84gに与えられ、そしてLCNT2および5は画像合成回路84hに与えられる。また、出力制御レジスタ80bに設定された合成開始ラインデータおよび合成終了ラインデータは画像合成回路84hに与えられ、画像開始ラインデータは読み出しコントローラ84cに与えられる。
【0051】
さらに、パレット制御レジスタ80cに設定されたエリア1用パレットデータ0,エリア1用パレットデータ1およびエリア2用パレットデータ1は画像合成回路84hに与えられ、フレームメモリレジスタ80aに設定されたフレームメモリ86用Xアドレス,フレームメモリ86用Yアドレス,1ドット分2値画像データ,フレームメモリ88用Xアドレス,フレームメモリ88用Yアドレスおよび1ドット分カラー画像データは、フレームメモリ転送コントローラ84aに与えられる。
【0052】
上述のように、電話モードでは、2値画像データおよびそのアドレスデータとカラー画像データおよびそのアドレスデータとがフレームメモリレジスタ80aに設定される。このとき、フレームメモリ転送コントローラ84aは、2値画像データおよびそのアドレスデータを書き込みコントローラ84eに与え、カラー画像データおよびそのアドレスデータをセレクタ84bに与える。セレクタ84bは、LCNT0が“0”つまり電話モードを示すときフレームメモリ転送コントローラ84aの出力を選択する。フレームメモリ転送コントローラ84aから出力されたカラー画像データおよびアドレスデータは、セレクタ84bを介して書き込みコントローラ84dに与えられる。
【0053】
一方、ゲームモードでは、2値画像データおよびそのアドレスデータのみがフレームメモリレジスタ80aに設定され、フレームメモリ転送コントローラ84aは、この2値画像データおよびアドレスデータを書き込みコントローラ84eに与える。カラー画像データおよびアドレスデータは、PPU78からセレクタ84dに与えられる。LCD制御データのLCNT0はゲームモードにおいて“1”を示し、このときセレクタ84dはPPU78からの出力を選択する。このため、ゲームモードでは、PPU78からの出力がセレクタ84bを介して書き込みコントローラ84dに与えられる。
【0054】
後段で詳述するが、2値画像データおよびカラー画像データのいずれについても、アドレスデータは書き込み開始アドレスのみを示す。このため、書き込みコントローラ84eおよび84dはいずれも、与えられたアドレスデータを基準として書き込みアドレスを1ドットずつ更新し、順次与えられる1ドット分の2値画像データおよびカラー画像データを更新されたアドレスに書き込む。これによって、所定ドット数分の2値画像データおよびカラー画像データが、フレームメモリ86および88の各々に格納される。
【0055】
なお、フレームメモリ86および88はいずれも160×160ドットの画像データを格納できる容量を持つが、フレームメモリ86の各ドットには1ビットが割り当てられ、フレームメモリ88の各ドットには8ビットが割り当てられる。このため、フレームメモリ86の各アドレスには1ドット分の2値画像データが書き込まれ、フレームメモリ88の各アドレスには1ドット分のカラー画像データが書き込まれる。
【0056】
読み出しコントローラ84fは、LCD制御データのLCNT1が“1”を示すとき、フレームメモリ86から2値画像データを読み出し、読み出した2値画像データを画像合成回路84hに与える。一方、LCNT1が“0”を示すときは、フレームメモリ86からの2値画像データの読み出しを中止する。読み出しコントローラ84cは、画像開始ラインデータによってフレームメモリ88の読み出し開始ラインを特定し、特定した読み出し開始ラインからカラー画像データの読み出しを開始する。読み出されたカラー画像データは、トーン制御回路84gを経て画像合成回路84hに与えられる。
【0057】
トーン制御回路84gは、LCNT4および3が示す数値に応答して、次のようなトーン制御または出力制御を行なう。つまり、LCNT4,3が“01”を示せば、カラー画像データのRGBレベルが低下され(トーンダウン)、トーンがダウンされたカラー画像データが画像合成回路84hに与えられる。また、LCNT4および3が“11”を示せばカラー画像データのRGBレベルが上昇され(トーンアップ)、トーンがアップされたカラー画像データが画像合成回路84hに与えられる。さらに、LCNT4および3が“10”を示せばカラー画像データはそのまま画像合成回路84hに与えられ、LCNT4および3が“00”を示せばカラー画像データの画像合成回路84hへの出力が中止される。
【0058】
画像合成回路84hは、図11に示すように構成される。ラインカウンタ8402hは、1フレームを形成するライン数をカウントし、カウント値を比較器8403hに与える。比較器8403hにはまた、出力制御レジスタ80bに設定された合成開始ラインデータおよび合成終了ラインデータが与えられる。比較器8403hは、ラインカウンタ8402hのカウント値が合成開始ラインデータのデータ値と一致したとき出力をハイレベルに変更し、ラインカウンタ8402hのカウント値が合成終了ラインデータのデータ値+1と一致したとき出力をハイレベルからローレベルに戻す。このため、比較器8403hの出力は、図16に示すエリア1の開始位置から終了位置にわたってローレベルとなり、図16に示すエリア2の開始位置から終了位置にわたってハイレベルとなる。
【0059】
セレクタ8401hは、比較器8403hの出力がローレベルのときパレット制御レジスタ80cに設定されたエリア1用パレットデータ0を選択し、比較器8403hの出力がハイレベルのときトーン制御回路84gから出力されたカラー画像データを選択する。セレクタ8401hの出力は、セレクタ8407hに与えられる。
【0060】
ブレンディング回路8404hは、パレット制御レジスタ80cに設定されたエリア2用パレットデータ1とトーン制御回路84gから出力されたカラー画像データとにブレンディング処理を施す。セレクタ8405hは、LCD制御データのLCNT2が“0”を示すときエリア2用パレットデータ1を選択し、LCNT2は“1”を示すときブレンディング回路8404hの出力を選択する。セレクタ8405hの出力は、セレクタ8406hに与えられる。比較器8403hの出力は、セレクタ8406hにも与えられる。セレクタ8406hは、比較器8403hの出力がローレベルのときパレット制御レジスタ80cに設定されたエリア1用パレットデータ1を選択し、比較器8403hの出力がハイレベルのときセレクタ8405hの出力を選択する。
【0061】
セレクタ8407hは、読み出しコントローラ84hによって読み出された2値画像データを受け、この2値画像データを形成する各ドットのデータ値(ビット値)に応じて、セレクタ8401hおよび8406hのいずれか一方を選択する。具体的には、ビット値が“0”を示すときはセレクタ8401hの出力を選択し、ビット値が“1”を示すときはセレクタ8406hの出力を選択する。
【0062】
スイッチ8408hは、LCD制御データのLCNT5が“0”を示すときオフ状態となり、LCNT5が“1”を示すときオン状態となる。このため、セレクタ8407hの出力は、LCNT5が“1”を示すときだけ、スイッチ8408hを介してLCD18に出力される。
【0063】
エリア1では、セレクタ8401hはエリア1用パレットデータ0を選択し、セレクタ8406hはエリア1用パレットデータ1を選択する。セレクタ8407hは、2値画像データの各ビット値が“0”のときエリア1用パレットデータ0を選択し、各ビット値が“1”を示すときエリア1用パレットデータ1を選択する。この結果、受信状態およびバッテリ残量を示すキャラクタが、図17に示す要領でエリア1に表示される。
【0064】
エリア2では、セレクタ8401hはカラー画像データを選択し、セレクタ8406hはセレクタ8405hの出力を選択する。ブレンディング処理を行なわないとき、セレクタ8405hからセレクタ8406hへはエリア2用パレットデータ1が与えられる。セレクタ8407hは、2値画像データの各ビット値が“0”のときカラー画像データを選択し、各ビット値が“1”を示すときエリア2用パレットデータ1を選択する。この結果、たとえば日付および現在時刻を示すキャラクタとカラー画像とが、図17に示す要領でエリア2に表示される。
【0065】
図2に示す着信待ち画面は、図18に示すような受信状態,バッテリ残量,日付および現在時刻を示す2値画像データと、図19に示すようなゲームキャラクタを示すカラー画像データとからなる。図7に示す電話CPU28は、まずエリア1の先頭に対応するアドレスデータをフレームメモリレジスタ80aに設定し、受信状態およびバッテリ残量を示す2値画像データ(エリア1に表示)を1ドットずつフレームメモリレジスタ80aに設定する。電話CPU28は続いて、エリア2の先頭に対応するアドレスデータをフレームメモリレジスタ80aに設定し、日付および現在時刻を示す2値画像データ(エリア2に表示)を1ドットずつフレームメモリレジスタ80aに設定する。LCDコントローラ84は、1ドット毎に更新される2値画像データをフレームメモリレジスタ80aから繰り返し読み出し、読み出された各ドットの2値画像データをアドレスデータに基づいてフレームメモリ86に書き込む。これによって、図18に示す2値画像データがフレームメモリ86内に得られる。
【0066】
電話CPU28は、2値画像データの設定に続いて、エリア2の先頭に対応するアドレスデータおよびゲームキャラクタを示す各ドットのカラー画像データをフレームメモリレジスタ80aに設定する。LCDコントローラ84は、1ドット毎に更新されるカラー画像データをフレームメモリレジスタ80aから繰り返し読み出し、読み出したカラー画像データをアドレスデータに基づいてフレームメモリ88に書き込む。これによって、図19に示すカラー画像データがフレームメモリ88内に得られる。
【0067】
LCDコントローラ84は、フレームメモリ86および88からの2値画像データおよびカラー画像データの読み出し,カラー画像データのトーン制御,2値画像データに基づく色付け,2値画像データおよびカラー画像データの合成,ならびに合成画像データの出力を、出力制御レジスタ80bおよびパレット制御レジスタ80cの設定値に従って行なう。この結果、図2に示す待ち受け画面がLCD18に表示される。
【0068】
オペレータがダイヤル操作をすると、電話CPU28は、エリア2の先頭に対応するアドレスデータと相手方の電話番号を示す2値画像データとをフレームメモリレジスタ80aに設定する。LCDコントローラ84は、上述と同じ要領でこの2値画像データをフレームメモリ86に書き込む。このため、日付および現在時刻を示す2値画像データは、相手方の電話番号を示す2値画像データによって更新される。この結果、LCD18に表示された日付および現在時刻も、相手方の電話番号に切り換わる。
【0069】
電話CPU28はまた、送受信回路32およびアンテナ14を通して相手方との接続を確立する。接続が確立されると、相手方の音声データが受信され、受信された音声データは音声コーデック30を介してスピーカ16から出力される。また、マイク26によって取り込まれたオペレータの音声データは、音声コーデック30および送受信回路32を介してアンテナ12から出力される。
【0070】
一方、アンテナ14および送受信回路32を通して着信があると、電話CPU28は、エリア2の先頭に対応するアドレスデータと着信メッセージおよび発信元の電話番号を示す2値画像データとをフレームメモリレジスタ80aに設定する。LCDコントローラ84はこの2値画像データをフレームメモリ86に書き込み、日付および現在時刻を示す2値画像データは着信メッセージおよび発信元の電話番号を示す2値画像データによって更新される。これによって、LCD18に表示された日付および現在時刻も、着信メッセージおよび発信元の電話番号に更新される。電話CPU28はまた、着信音データを加算器46を介してスピーカ48に与える。スピーカ48からは、着信音が出力される。
【0071】
ここでオペレータが着信操作をすると、電話CPU28は着信音データの出力を中止し、発信元との接続を確立する。接続の確立後は、上述と同様に、相手方の音声データが音声コーデック30を介してスピーカ16から出力され、マイク26によって取り込まれたオペレータの音声データが音声コーデック30および送受信回路32を介してアンテナ12から出力される。
【0072】
着信待ち状態のときにオペレータがゲーム起動キー20を操作すると、電話CPU28はゲーム起動フラグをセットする。電話CPU28はまた、エリア2の先頭に対応するアドレスデータと全ドットが“0”を示す2値画像データとをフレームメモリレジスタ80aに設定し、LCD制御データのLCNT0に“1”を設定する。LCDコントローラ84は、全ドットが“0”を示す2値画像データをアドレスデータに基づいてフレームメモリ86に書き込み、かつカラー画像データの入力先としてPPU78を選択する。
【0073】
一方、ゲームCPUコア50は、ゲーム画面(カラー画像)を形成する背景画像データおよびオブジェクト画像データをVRAM72および74に描画し、静止キャラクタおよび動きキャラクタのパレットデータをカラーパレットRAM68にセットする。さらに、動きキャラクタのアトリビュートをOAM76にセットし、背景およびオブジェクトの出力に関する設定値をレジスタ70にセットする。この結果、たとえば図21に示すカラー画像データがPPU78によって作成され、LCDコントローラ84に出力される。LCDコントローラ84は、PPU78から出力されたカラー画像データをフレームメモリ88に書き込む。フレームメモリ86および88の各々には、図20に示す2値画像データおよび図21に示すカラー画像データが得られる。
【0074】
LCDコントローラ84は、上述と同じ要領で、フレームメモリ86および88から2値画像データおよびカラー画像データを読み出し、カラー画像データにLCD制御データのLCNT4,3の値に従うトーン制御を施し、2値画像データ,合成開始ラインデータおよび合成終了ラインデータに基づいてパレットデータおよびカラー画像データを合成する。この結果、図4に示すゲーム画面がLCD18に表示される。
【0075】
ゲームCPUコア50はまた、図9に示すFIFOレジスタ1を通して、*キー24dおよび#キー24eを示すキーコードと*キー24dおよび#キー24eに割り当てる機能情報とを電話CPU28に与える。ここで、*キー24dに割り当てられた機能情報は“スタート”を示し、#キー24eに割り当てられた機能情報は“セレクト”を示す。このため、電話CPU28は、*キー24dが操作されたときゲームキーレジスタ3のスタートキービットKO6に“1”をセットし、#キー24eが操作されたときゲームキーレジスタ3のセレクトキービットKO7に“1”をセットする。ゲームキーレジスタ1の各ビットにはゲームキー22の操作に応じた数値とゲームキーレジスタ3から出力された数値の論理和がセットされるため、ゲームCPUコア50は、ゲームキーレジスタ1の設定値に応じたゲーム処理を行なう。
【0076】
ゲームが開始された後は、ゲームキー22の操作に応答して、背景画像データ,オブジェクト画像データおよびオブジェクトのアトリビュートが更新され、さらにカラーパレットレジスタ68およびレジスタ70の設定値が更新される。この結果、画像処理ユニット78から出力されるカラー画像データも変化し、ゲーム画面に動きが生じる。一方、SPU64からは、必要に応じて効果音データが出力され、スピーカ48から効果音が生じる。
【0077】
ゲーム進行中に*キー24dが操作されると、ゲームCPU50は、ポーズ状態に移行すべく、SPU64およびPPU78に対してBGMデータおよびカラー画像データの出力を停止させる。これによって、BGMの出力およびゲーム画面の動きが停止する。*キー24dが再度操作されると、ゲームCPU50は、ポーズ状態を解除すべく、SPU64およびPPU78を起動し、BGMデータおよびカラー画像データの出力を再開させる。スピーカ48からは再びBGMが出力され、LCD18上のゲーム画面も再び動き出す。
【0078】
なお、ゲームの進行中にメニュー画面が表示された場合、ゲームCPUコア50は、#キー24eの操作に応答してレジスタ70の設定値を変更する。変更する設定値はメニュー画面上に表示されたカーソルに関連する設定値であり、この変更によってカーソルの表示位置が変更される。
【0079】
ゲーム進行中に着信があると、電話CPU28は、上述の処理に加えてゲームキーレジスタ3のスタートキービットKO6を“1”にセットし、LCD制御データのLCNT4,3に“11”をセットする。電話CPU28はまた、着信メッセージおよび発信元の電話番号を示す2値画像データとエリア2の先頭に対応するアドレスデータとをフレームメモリレジスタ80aに設定し、着信音データを加算器46を介してスピーカ48に与える。一方、ゲームCPUコア50は、ゲームにポーズをかけるべく、SPU64にBGMデータの出力を停止させるとともに、自らの処理を停止させる。
【0080】
LCDコントローラ84は、フレームメモリレジスタ80aに設定された2値画像データをフレームメモリ86に格納する。LCDコントローラ84はまた、フレームメモリ86および88から2値画像データおよびカラー画像データを読み出し、カラー画像データにトーンアップを施し、2値画像データ,合成開始ラインデータおよび合成終了ラインデータに基づいてパレットデータおよびカラー画像データを合成する。この結果、図5に示す着信案内画面がLCD18に表示され、スピーカ48の出力がBGMから着信音に切り換わる。
【0081】
オペレータが着信操作をすると、電話CPU28は、上述と同様に、着信音データの出力を中止し、発信元との接続を確立する。接続の確立後は、相手方の音声データが音声コーデック30を介してスピーカ16から出力され、マイク26によって取り込まれたオペレータの音声データが音声コーデック30および送受信回路32を介してアンテナ14から出力される。
【0082】
通話が終了すると、電話CPU28はLCD制御データのLCNT4,3を“10”に戻すとともに、エリア2の先頭に対応するアドレスデータと全ドットが“0”を示す2値画像データをフレームメモリレジスタ80aに設定する。この結果、LCD18の表示が図4に示すゲーム画面に戻る。ただし、ゲーム画面の動きは停止したままであり、かつBGMの出力も停止している。つまり、ゲームはポーズ状態を維持している。このポーズ状態は、オペレータによる*キー24dの操作に応答して解除される。
【0083】
電話CPUコア28aは、具体的には図22〜図31および図34に示すフロー図を処理する。まずステップS1でLCDコントローラ制御レジスタ80cに設定されるLCD制御データを初期値“110010”に設定する。つまり、図14に示すLCD表示オン/オフフラグを“1”にセットし、カラー画像トーン制御フラグを“10”にセットし、2値画像トーン制御フラグを“0”にセットし、2値画像出力制御フラグを“1”にセットし、そしてモード選択フラグを“0”にセットする。
【0084】
続くステップS3では、図2に示す着信待ち画面をLCD18に表示すべく、図25および図26に示すサブルーチンを処理する。まず、図25に示すステップS81でLCD制御データのLCNT5を“0”に更新する。これによって、LCD18の表示がオフ状態とされる。次に、ステップS83でカウント値Nを“1”に設定し、ステップS85,S87およびS89の各々で、フレームメモリレジスタ80aにフレームメモリ86用Xアドレス,フレームメモリ86用Yアドレスおよび1ドット分の2値画像データをセットする。具体的には、フレームメモリ86に形成されたエリアN(表示画面のエリアNに対応)の先頭アドレスおよびこの先頭アドレスに書き込む1ドット分の2値画像データをフレームメモリレジスタ80aにセットする。続くステップS91では、エリアNへの2値画像データの書き込みが完了したかどうか判断し、NOであればステップS89の処理を繰り返すが、YESであればステップS93に進む。
【0085】
LCDコントローラ84は、まずフレームメモリレジスタ80aにセットされた先頭アドレスデータおよび2値画像データを読み出し、先頭アドレスデータが示すフレームメモリ86上のアドレスに2値画像データを書き込む。1ドット分の2値画像データの書き込みが完了すると、LCDコントローラ84は自ら書き込み先のアドレスを更新する。このため、電話CPU28側で書き込みアドレスを更新する必要はなく、ステップS89における2値画像データのセット処理を繰り返すだけで、フレームメモリ86の所望のアドレスに2値画像データが書き込まれていく。
【0086】
ステップS93ではカウント値Nが“2”に達したかどうか判断し、NOであればステップS95でカウント値NをインクリメントしてからステップS85に戻るが、YESであればステップS97に進む。これによって、受信状態およびバッテリ残量のキャラクタを示す2値画像データがフレームメモリ86のエリア1に描画され、日時および現在時刻を示す2値画像データがフレームメモリ86のエリア2に描画される。なお、この実施例では、画面全体の画像データを書き換えるような処理としたが、変更が必要な領域のみ画像データを書き換えるようにしてもよい(後述のエリア2に関するステップS97〜S103についても同様)。
【0087】
続くステップS97〜S101では、フレームメモリ88用Xアドレス,フレームメモリ88用Yアドレスおよび1ドット分のカラー画像データをフレームメモリレジスタ80aにセットする。ステップS97およびS99でセットするXアドレスおよびYアドレスはフレームメモリ88における先頭アドレスを示し、ステップS101でセットされた1ドット分のカラー画像データはこの先頭アドレスに書き込むべき画像データである。ステップS103では、エリア2へのカラー画像データの書き込みが完了したかどうか判断し、書き込みが完了していなければステップS101に戻るが、書き込みが完了すればステップS105に進む。これによって、図2に示すゲームキャラクタのカラー画像データがフレームメモリ88に描画される。
【0088】
ステップS105〜S109の各々では、エリア1用パレットデータ0,エリア1用パレットデータ1およびエリア2用パレットデータ1をパレット制御レジスタ80cにセットする。これによって、LCD18のエリア1に表示される2値画像の背景色および文字色(キャラクタ色)と、エリア2に表示される2値画像の文字色が決定される。なお、エリア2の2値画像の背景色は、上述のように透明である。
【0089】
ステップS111〜S115の各々では、合成開始ラインデータ,合成終了ラインデータおよび画像開始ラインデータを出力制御レジスタ80cにセットする。合成開始ラインデータは2値画像のどのラインからカラー画像の合成を開始するかを示し、合成終了ラインデータは2値画像のどのラインでカラー画像の合成を終了するかを示し、画像開始ラインデータは、フレームメモリ88のどのラインから読み出しを開始するかを示す。
【0090】
ステップS115の処理が完了するとステップS117に進み、LCD18の表示をオン状態とすべく、LCD制御データのLCNT5を“1”にセットする。これによって、図2に示す着信待ち画面がLCD18に表示される。
【0091】
図22に戻って、ステップS5,S13,S21およびS35の各々では、ゲーム起動キー20の操作の有無,ホールドキー24bの操作の有無,ダイヤル操作の有無および電話着信の有無を判別する。ステップS5でゲーム起動キー20の操作ありと判別されると、ステップS7で図13に示すゲームCPU起動フラグをセットするとともに、ステップS9でLCD制御データのLCNT0に“1”をセットする。これによって、ゲームモードが開始される。ステップS9の処理が完了すると、ステップS11で図27に示すサブルーチンを処理する。
【0092】
まずステップS121でLCD制御データのLCNT5を“0”に更新して、LCD18の表示をオフ状態とする。次に、ステップS122およびS123の各々で、フレームメモリ86用Xアドレスおよびフレームメモリ86用Yアドレスをフレームメモリレジスタ80aに設定する。ここで設定されたアドレスは、形成されたエリア2の先頭アドレスを示す。ステップS124では1ドット分の2値画像データを同じフレームメモリレジスタ80aに設定し、続くステップS125ではエリア2に対する2値画像データの書き込みが完了したかどうか判断する。そして、NOであればステップS124の処理を繰り返し、YESであればステップS126でエリア2用パレットデータ1をパレット制御レジスタ80cに設定するとともに、ステップS127でLCD制御データのLCNT5を“1”に戻してLCD18の表示をオン状態とする。ステップS11におけるこのサブルーチンの処理によって、全てのドットが“0” を示す2値画像データがフレームメモリ86のエリア2に描画される。この結果、着信待ち画面で表示されていた日付および現在時刻が消去される。
【0093】
ステップS13でホールドキー24bの操作ありと判別されると、ステップS15でゲームCPU起動フラグをリセットするとともに、ステップS17でLCD制御データのLCNT0に“0”をセットする。これによって、電話モードが開始される。ステップS17の処理が完了すると、着信待ち画面をLCD18に表示すべく、ステップS19で図28および図29に示すサブルーチンを処理する。
【0094】
まず、図28に示すステップS131でLCD制御データのLCNT5を“0”に更新して、LCD18の表示をオフ状態とする。次に、ステップS133,S135およびS137の各々で、フレームメモリレジスタ80aにフレームメモリ86用Xアドレス,フレームメモリ86用Yアドレスおよび1ドット分の2値画像データをセットする。ステップS133およびS135で設定されるアドレスデータはフレームメモリ86に形成されたエリア2の先頭アドレスを示し、ステップS137で設定される2値画像データはこの先頭アドレスに書き込むデータである。ステップS139ではエリア2への2値画像データの書き込みが完了したかどうか判断し、YESとの判断結果が得られるまでステップS137の処理を繰り返す。これによって、着信待ち画面を形成する日付および現在時刻の2値画像データがフレームメモリ86のエリア2に書き込まれていく。
【0095】
続くステップS141〜S147の各々では、フレームメモリ88用Xアドレス,フレームメモリ88用Yアドレスおよび1ドット分のカラー画像データをフレームメモリレジスタ80aにセットする。ステップS141およびS143でセットするXアドレスおよびYアドレスはフレームメモリ88に形成されたエリア2の先頭アドレスを示し、ステップS145でセットされた1ドット分のカラー画像データはこの先頭アドレスに書き込むべき画像データである。ステップS147では、エリア2へのカラー画像データの書き込みが完了したかどうか判断し、書き込みが完了していなければステップS145に戻るが、書き込みが完了すればステップS149に進む。これによって、着信待ち画面を形成するゲームキャラクタのカラー画像データがフレームメモリ88に描画される。
【0096】
続いて、ステップS149でエリア2用パレットデータ1をパレット制御レジスタ80cにセットし、ステップS151〜S155の各々で合成開始ラインデータ,合成終了ラインデータおよび画像開始ラインデータを出力制御レジスタ80bにセットし、その後ステップS157でLCD制御データのLCNT5を“1”に戻す。これによって、図2に示す着信待ち画面がLCD18に表示される。
【0097】
ステップS21でダイヤル操作ありと判別されると、まずステップS23で図27に示すサブルーチンを処理する。ただし、このときフレームメモリ86に描画される2値画像データは、相手方の電話番号を示す画像データである。このため、LCD18には、日付および現在時刻に代えて相手方の電話番号が表示される。ステップS23の処理が完了すると、ステップS25で通話処理を行なうとともに、ステップS27でホールドキー24bの操作の有無を判別する。そして、ホールドキー24bが操作されない限りステップS25の処理を繰り返し、ホールドキー24bが操作されたときステップS29で図27に示すサブルーチンを再度処理する。このとき、フレームメモリ86には日付および現在時刻を示す2値画像データが描画され、この結果、LCD18の表示は、相手方の電話番号から日付および現在時刻に更新される。
【0098】
ステップS35で電話着信ありと判別されると、ステップS37でゲームCPU起動フラグの状態を判別する。ここでゲームCPU起動フラグがリセット状態であれば、そのままステップS43に進む。一方、ゲームCPU起動フラグがセット状態であれば、ステップS39で図15に示すゲームキーレジスタ3のスタートキービットKO6を“1”にセットするとともに、ステップS41で図14に示すLCD制御データのLCNT4および3を“11”にセットしてからステップS43に進む。ステップS39の処理によって、*キー24d(スタートキーとして機能)の操作に関係なくスタートキービットKO6がセットされ、ゲームはポーズ状態に移行する。また、ステップS41の処理によって、ゲーム画面のトーンがアップされる。
【0099】
ステップS43では、図27に示すサブルーチンを処理する。このとき、フレームメモリ86には“着信中”との着信メッセージおよび発信元の電話番号を示す2値画像データが描画される。続いて、ステップS45でスピーカ48から着信音を発生し、ステップS47でフックキー24aの操作の有無を判別する。そして、フックキー24aが操作されれば、ステップS49で着信音の出力を停止し、ステップS51で通話処理を行なう。ステップS53ではホールドキー24bの操作の有無を判別し、ホールドキー24bが操作されない限りステップS51の通話処理を繰り返す。
【0100】
ホールドキー24bが操作されると、ステップS53からステップS55に進み、ゲームCPU起動フラグの状態を判別する。ここでゲーム起動フラグがリセット状態であればそのままステップS59に進むが、ゲーム起動フラグがセット状態であれば、ステップS57でLCD制御データのLCNT4および3を“10”にセットしてから、つまりゲーム画面のトーンを元に戻してから、ステップS59に進む。ステップS59では図27に示すサブルーチンを処理し、これによって全ドットが“0”を示す2値画像データがフレームメモリ86に書き込まれる。LCD18に表示された着信メッセージおよび発信元の電話番号は、ステップS59の処理によって消去される。ステップS59の処理が完了すると、ステップS31に進む。
【0101】
ステップS5,S13,S21およびS35のいずれにおいてもNOと判断されたときは、まずステップS61およびS63でバッテリ残量および受信状態を検出し、ステップS65で今日の日付および現在時刻を検出する。続いてステップS67で図30に示すサブルーチンを処理し、ステップS67の処理が完了すると、ステップS31に進む。
【0102】
図30を参照して、まずステップS161でカウント値Nを“1”にセットし、次にステップS163およびS165の各々でフレームメモリ86用Xアドレスおよびフレームメモリ86用Yアドレスをフレームメモリレジスタ80aにセットする。さらに、ステップS167で1ドット分の2値画像データを同じフレームメモリレジスタ80aにセットする。ステップS163およびS165でセットされるアドレスデータはフレームメモリ86に形成されたエリアNの先頭アドレスであり、ステップS167でセットされる2値画像データはこの先頭アドレスに書き込むデータである。ステップS169ではエリアNへの2値画像データの書き込みが完了したかどうか判断し、NOであればステップS167の処理を繰り返す。ステップS169でYESと判断されるとステップS171でカウント値Nが “2”であるかどうか判断し、NOであればステップS173でカウント値NをインクリメントしてからステップS163に戻る。
【0103】
この結果、ステップS163〜S171の処理が2回繰り返され、フレームメモリ86に形成されたエリア1および2の各々に2値画像データが書き込まれる。エリア1には受信状態およびバッテリ残量のキャラクタを示す2値画像データが格納され、エリア2には今日の日付および現在時刻のキャラクタを示す2値画像データが格納される。各々のキャラクタには、ステップS61〜S67で検出された受信状態,バッテリ残量,日付およびバッテリ残量が反映される。
【0104】
ステップS171でYESと判断されると、ステップS175,S177およびS179でエリア1用パレットデータ0,エリア1用パレットデータ1およびエリア2用パレットデータをパレット制御レジスタ80cにセットする。フレームメモリ86に格納された2値画像データは、セットされたエリア1用パレットデータ0,エリア1用パレットデータおよびエリア2用パレットデータ1による色付け処理を経て、LCD18に出力される。LCD18のエリア1には、現時点の受信状態,現時点のバッテリ残量が表示され、エリア2には今日の日付および現在時刻を示すキャラクタが表示される。
【0105】
図22に戻って、ステップS31ではゲームCPU起動フラグの状態を判別し、リセット状態であればそのままステップS5に戻る。一方、ゲームCPU起動フラグがセット状態であれば、割り込み要求が割り込みレジスタ1にセットされているかどうかをステップS33で判別する。そして、割り込み要求がセットされていなければ、上述のリセット状態と同様、そのままステップS5に戻る。したがって、電話モードが設定されているとき、ならびにゲームモードが設定されているが割り込み要求が与えられないときは、図24に示すステップS69以降の処理を行なうことなく、ステップS5〜S67の処理を繰り返す。
【0106】
割り込みレジスタ1に割り込み要求がセットされていれば、ステップS69でFIFOレジスタ1の設定値を検出するとともに、検出された設定値の内容をステップS71およびS75の各々で判別する。検出された設定値の内容がキー転送依頼であるときはステップS73でキー転送処理を行ない、検出された設定値の内容がFEP(Front End Processing)転送依頼であればステップS77でFEP転送処理を行ない、そして検出された設定値の内容が他の依頼であればステップS79で対応する処理を行なう。ステップS73,S77またはS79の処理を終えると、ステップS3に戻る。なお、キー転送処理は、*キー24dおよび#キー24eへのスタート機能およびセレクト機能の割り当てのために電話CPUコア28a側で行なわれる処理であり、FEP転送処理は、プレイヤ名の入力のために電話CPUコア28a側で行なわれる処理である。
【0107】
ステップS73におけるキー転送処理は、図31に示すサブルーチンに従う。まずステップS181でFIFOレジスタ1から設定値を検出し、検出した設定値がエンドコードであるかどうかをステップS183で判別する。図32を参照して、FIFOレジスタ1にキー転送依頼が設定されている場合、このキー転送依頼の次には電話キー24のいずれかを示すキーコードが設定され、さらにこのキーコードに割り当てたい機能を示す機能情報が、キーコードの次に設定される。エンドコードは、このようなキーコードおよび機能情報の繰り返しの後に設定される。
【0108】
したがって、ステップS181ではキーコードが検出され、最初のステップS183ではNOと判断される。ステップS185では、検出された設定値つまりキーコードと一致するキー項目を図33に示す機能割り当てテーブル34a(SRAM34に形成)の中から特定する。たとえば、キーコードの下位4桁が“1010”であれば“#キー”が特定され、キーコードの下位4桁が“1011”であれば“*キー”が特定される。ステップS187ではFIFOレジスタ1の設定値を再度検出する。上述のように、キーコードに続く設定値は機能情報であり、ステップS187では機能情報が検出される。ステップS189では、検出された機能情報をステップS185で特定されたキー項目に割り当てる。ステップS189の処理が完了すると、ステップS191でゲームキーレジスタ3の対応するビットに“0”を設定してからステップS181に戻る。
【0109】
たとえば、“#キー”を示すキーコードに続いて“セレクト”を示す機能情報(下位8ビットが“10000000”)が検出されたときは、機能割り当てテーブル34aの“#キー”の項目にセレクト機能が割り当てられ、図15に示すゲームキーレジスタ3のKO7に“0”が設定される。また、“*キー”を示すキーコードに続いて“スタート”を示す機能情報(下位8ビットが “01000000”)が検出されたときは、機能割り当てテーブル34aの“*キー”の項目にスタート機能が割り当てられ、ゲームキーレジスタ3のKO6に“0”が設定される。
【0110】
ステップS181で検出された設定値がエンドコードを示すときは、ステップS183を経てステップS193に進み、図9に示す電話キーレジスタ28bを参照して電話キー24のいずれが操作されたかを判別する。ステップS195では、判別された操作キーに割り当てられた機能情報を機能割り当てテーブル34aから検索し、ステップS197では、機能情報が機能割り当てテーブル34aから発見されたかどうかを判別する。
【0111】
図33によれば、“#キー”および“*キー”以外に、数字キー24cを示すキー項目も機能割り当てテーブル34aに設けられており、キー項目の中には機能情報が割り当てられていない項目も存在しうる。このため、機能情報を発見できたかどうかをステップS197で判断するようにしている。そして、機能情報を発見できなければそのまま図24に示すルーチンに復帰するが、機能情報を発見できたときはステップS199でゲームキーレジスタ3の対応するビットを“1”にセットしてから図24に示すルーチンに復帰する。
【0112】
たとえば、オペレータによって“1”を示す数字キーが押されたときは、ゲームキーレジスタ3のいずれのビットも“1”にセットされないが、オペレータによって*キー24dが押されたときは、ゲームキーレジスタ3のKO6が“1”にセットされる。
【0113】
図24のステップS77におけるFEP転送処理は、図34に示すサブルーチンに従う。まずステップS201でFIFOレジスタ1からカーソル表示位置データを検出し、次にステップS203で図27に示すサブルーチンを処理する。このときフレームメモリ86にエリア2に描画される2値画像データはカーソルを示す画像データである。カーソルの描画位置はカーソル表示位置データに基づいて決定され、2値画像データは図35(A)に示す要領でフレームメモリ86に格納される。
【0114】
一方、図35(B)に示す“名前を入力してください”の案内メッセージおよび名前入力枠を示すカラー画像データは、ゲームCPU40によってフレームメモリ88に描画される。この結果、図35(C)に示すプレイヤ名入力画面がLCD18に表示される。
【0115】
ステップS203の処理を終えると、ステップS205で電話キーレジスタ28bおよびゲームキーレジスタ2の設定値を検出し、続くステップS207でAボタン22bの操作の有無を判別する。ここでNOであれば、電話キー24が操作されたとみなしてステップS209に進み、FEP処理を行なう。FEP処理を終えると、ステップS203に戻る。FEP処理によって電話キー24の操作に対応する文字列が生成され、生成された文字列は続くステップS203の処理によってLCD18に表示される。
【0116】
たとえば、電話キー24を操作して“やまだ”と入力してカナ漢字変換を行ない、さらに“たろう”と入力すると、フレームメモリ86には図36(A)に要領で2値画像データが描画され、LCD18上の名前入力枠には図36(C)に示すように“山田たろう”の文字が表示される。カーソルは、“たろう”を指向する。
【0117】
名前入力の完了後、オペレータによってAボタン22bが操作されると、ステップS207でYESと判断し、ステップS211およびS213の各々で“FEP結果送付”および作成された文字列に対応するJISコードをFIFOレジスタ2にセットする。ステップS215では割り込みレジスタ2に割り込み要求をセットし、ステップS217では図27に示すサブルーチンを処理する。ステップS217の処理を終えると、図24に示すルーチンに復帰する。
【0118】
ステップS217では全ビットが“0”を示す2値画像データがフレームメモリ86のエリア2に描画され、フレームメモリ86には受信状態およびバッテリ残量を示すキャラクタの2値画像データのみが残る。ただし、後述するゲームCPU40の処理によって、“山田太郎”を示すカラー画像データが図37(B)に示す要領でフレームメモリ88に描画され、LCD18には図37(C)に示すプレイヤ名入力画面が表示されることとなる。
【0119】
ゲームCPUコア50は、図38〜図41に示すフロー図を処理する。まずステップS221でゲームCPU起動フラグの状態を判別し、セット状態になったときにステップS223でゲームCPU表示処理を行なう。このゲームCPU表示処理は、図40に示すサブルーチンに従う。
【0120】
図40を参照して、まずステップS271で背景画像データを形成する静止キャラクタデータをVRAM72にセットし、ステップS273で静止キャラクタのパレットデータをカラーパレットRAM68にセットする。続いて、今回表示すべき画面がオブジェクト画像データを出力すべき画面であるかどうかをステップS275で判別し、NOであればそのままステップS283に進むが、YESであればステップS277〜S281の処理を経てステップS283に進む。たとえば図4に示すゲーム画面についてはオブジェクト画像(動きキャラクタ)を表示する必要があり、このときは、ステップS277に進む。一方、図3に示すメニュー画面や図6(A)および図6(B)に示すプレイヤ名入力画面では背景画像のみを表示すればよく、このときはステップS283に進む。
【0121】
オブジェクト画像を表示する場合は、まずステップS277で動きキャラクタデータをVRAM74にセットし、ステップS279で動きキャラクタのパレットデータをカラーパレットRAM68にセットする。さらにステップS281で動きキャラクタのアトリビュートをOAM76にセットし、ステップS281の処理が完了するとステップS283に進む。
【0122】
ステップS283では背景画像およびオブジェクト画像の出力に関する設定値をレジスタ70にセットし、続くステップS285では1フレーム分の処理が完了したかどうか判断する。ここでNOであればステップS271に戻り上述の処理を繰り返すが、YESであれば上階層のルーチンに復帰する。
【0123】
PPU78は、レジスタ70の設定値に応じて、静止キャラクタデータにカラーパレットRAM68のパレットデータに従う色付けを施し、さらに必要に応じて動きキャラクタデータにもカラーパレットRAM68のパレットデータに従う色付けを施す。色付けを施されたカラー画像データはLCDコントローラ84によってフレームメモリ88に書き込まれ、その後同じLCDコントローラ84によってLCD18に出力される。この結果、カラー画像がLCD18に表示される。
【0124】
図38に示すステップS223におけるゲームCPU表示処理では、図3に示すようなメニュー画面がLCD18に表示される。このメニュー画面は、静止キャラクタによって形成される。LCD18に表示されたメニュー画面の中から所望のゲームが選択されると、ステップS225からステップS227に進む。ステップS227〜S237の各々では、キー転送依頼,“#キー”を示すキーコード,“セレクト”を示す機能情報,“*キー”を示すキーコード,“スタート”を示す機能情報およびエンドコードをFIFOレジスタ1にセットする。エンドコードの設定が完了すると、ステップS239で割り込み要求を図13に示す割り込みレジスタ1に設定する。この結果、電話CPUコア28aによって上述のキー転送処理が実行され、#キー24eにセレクト機能が割り当てられるとともに、*キー24dにスタート機能が割り当てられる。
【0125】
ステップS241では、選択されたゲームに関連するBGMデータの出力をSPU64に命令する。スピーカ48からは、このBGMデータに基づくBGMが出力される。続くステップS243では、ゲームキーレジスタ1の設定値を検出する。そして、図15に示すK0〜K7のいずれのビットが“1”にセットされているかを、ステップS245,S251およびS261の各々で判別する。
【0126】
セレクトキーに対応するK7が“1”にセットされているときはステップS245でYESと判断し、ステップS247でLCD18の表示がメニュー画面であるかどうか判別する。LCD18の表示がメニュー画面でなければ、そのままステップS243に戻り、この結果、#キー24dの操作は無効とされる。一方、LCD18の表示がメニュー画面であれば、ステップS249におけるセレクト処理を経てステップS243に戻る。
【0127】
スタートキーに対応するK6が“1”にセットされているときはステップS251でYESと判断し、ステップS253でゲームにポーズをかける。具体的には、K6ビットを“0”に戻し、SPU64に対してサウンド出力を停止させ、そして現時点のゲームデータをフラッシュメモリ54に格納する。ステップS255ではゲームキーレジスタ1の設定値を検出し、ステップS257ではスタートキーに対応するK6が“1”を示すかどうか判別する。ここで、YESと判断されない限りステップS255およびS257の処理が繰り返され、この間ゲーム画面の停止状態が続く。ステップS257でYESと判断されると、ステップS259でポーズ状態を解除し、ステップS243に戻る。この結果、ゲーム画面の動きおよびBGMの出力が再開される。
【0128】
なお、ステップS253でゲームデータを格納することによって、電話終了後に何らかの原因(たとえば電池の消耗)でポーズ状態から復帰できないときでも、別の操作(たとえば再起動)によって中断時点からゲームを再開することができる。
【0129】
図15に示すK6およびK7以外のビットが“1”にセットされているときはステップS261でYESと判断し、ステップS263,S265およびS267の各々でゲーム処理,ゲームCPU表示処理および効果音出力処理を行なう。ステップS263におけるゲーム処理では、カラーパレットRAM68,レジスタ70,VRAM72および74ならびにOAM76の設定が、必要に応じて更新される。ステップS265におけるゲームCPU表示処理では、図4に示すようなスクリーン,静止オブジェクトおよび動きキャラクタからなるゲーム画面がLCD18に表示される。ステップS267の効果音出力処理では、効果音データがSPU64から出力される。
【0130】
なお、図15に示すK0〜K7のいずれも“0”であれば、ステップS261でNOと判断し、そのままステップS243に戻る。
【0131】
ステップS263におけるゲーム処理の途中でプレイヤの名前を入力する場面が生じると、ゲームCPUコア50は図41に示すサブルーチンを処理する。まず、ステップS291で図40に示すゲームCPU表示処理を行なう。これによって、図35(B)に示すような“名前を入力してください”のメッセージおよび名前入力枠のカラー画像データがフレームメモリ88に書き込まれ、LCD18には図35(C)に示す名前入力画面が表示される。ただし、ステップS291が完了した時点ではカーソルはまだ表示されない。
【0132】
ステップS293ではFEP転送依頼をFIFOレジスタ1にセットし、ステップS295ではカーソル表示位置データをFIFOレジスタ1にセットし、ステップS295の処理が完了すると、ステップS297で割り込み要求を割り込みレジスタ1にセットする。これによって、電話CPUコア28a側でFEP転送処理が行なわれ、カーソルが図35(C)に示す要領で名前入力枠内に表示される。
【0133】
ステップS299では、割り込み要求が割り込みレジスタ2にセットされているかどうか判別する。ここでYESと判断されると、FIFOレジスタ2の設定値(FEP結果送付)をステップS301で検出し、ステップS303でFIFOレジスタ2の設定値(JISコード)を検出する。さらに、検出されたJISコードに基づいて名前表示枠内に名前を表示すべく、ステップS305でゲームCPU表示処理を行なう。これによって、図37(B)に示すようなメッセージ,名前表示枠および名前のカラー画像データがフレームメモリ88に描画され、LCD18には図37(C)に示すような名前入力画面が表示される。名前を示すカラー画像データの描画位置は、上述のカーソル表示位置データに基づいて決定する。ステップS305の処理が完了すると、上階層のルーチンに復帰する。
【0134】
以上の説明から分かるように、実行中のゲームを中断させるべく(ポーズ状態に移行すべく)、オペレータが*キー24dを操作すると、電話CPUコア28aは、このキー操作に応答してゲームキーレジスタ3のKO6ビットに“1”を設定する(これに伴って、ゲームキーレジスタ1のK6ビットに “1”が設定される)。電話CPUコア28aは、ゲームの実行中に電話の着信があったときも、上述のKO6ビットに“1”を設定する。ゲームCPUコア50は、ゲームキーレジスタ1のK6ビットが“1”に更新されたとき、実行中のゲームにポーズをかけ、現時点のゲームデータをフラッシュメモリ54に保存し、そしてK6ビットを“0”に戻す。なお、ゲーム実行中に電話の着信があったときは、ポーズ状態の移行に加えて、ゲーム画面の階調が変更される。ゲームが中断している状態で*キー24dが操作されると、K6ビットの設定値が再度“1”に設定される。すると、ゲームCPUコア50は、ゲームを再開する。
【0135】
このように、電話の着信があったときは、ゲームは終了ではなく中断される。このため、通話が終了した後にゲームを途中から再開することができる。また、ゲームキーレジスタ1のK6ビットには、*キー24dが操作されたときだけでなく、電話の着信があったときも、“1”が設定される。このため、従来からあるゲームプログラムが元々備えているゲームポーズ機能を変更することなく、電話着信時にゲームにポーズをかけることができる。
【0136】
なお、この実施例では、図16に示すようにエリア1および2を形成し、図17に示す要領でエリア1に受信状態およびバッテリ残量を示すキャラクタを表示するようにした。しかし、エリア1および2を図42に示すように形成するようにしてもよい。
【0137】
また、この実施例では、ゲーム中に着信があったとき、ゲーム画面のトーンをアップさせるようにしているが、ゲーム画面のトーンはダウンさせるようにしてもよい。
【0138】
また、この実施例では、ゲームのスタートキー機能およびセレクトキー機能を電話キー(#および*)に割り当てるようにしたが、ゲームの他の機能を電話キーに割り当てるようにしてもよい。
【図面の簡単な説明】
【0139】
【図1】この発明の一実施例を示す外観図である。
【図2】着信待ち画面の一例を示す図解図である。
【図3】メニュー画面の一例を示す図解図である。
【図4】ゲーム画面の一例を示す図解図である。
【図5】着信案内画面の一例を示す図解図である。
【図6】(A)はプレイヤ名を入力している途中のプレイヤ名入力画面の一例を示す図解図であり、(B)はプレイヤ名の入力が完了した後のプレイヤ名入力画面の一例を示す図解図である。
【図7】図1実施例の構成を示すブロック図である。
【図8】ゲームCPUの構成を示すブロック図である。
【図9】キーコントローラおよびその周辺の構成を示すブロック図である。
【図10】LCDコントローラおよびその周辺の構成を示すブロック図である。
【図11】画像合成回路の構成を示すブロック図である。
【図12】ゲームCPUコアがアクセスできるメモリのマッピング状態を示す図解図である。
【図13】レジスタ80の構成を示す図解図である。
【図14】LCD制御データの構成を示す図解図である。
【図15】ゲームキーレジスタ1〜3の構成を示す図解図である。
【図16】LCD表示画面に形成されるエリアを説明した図解図である。
【図17】LCD表示画面に表示される色を説明した図解図である。
【図18】フレームメモリ86に描画される2値画像データの一例を示す図解図である。
【図19】フレームメモリ88に描画されるカラー画像データの一例を示す図解図である。
【図20】フレームメモリ86に描画される2値画像データの他の一例を示す図解図である。
【図21】フレームメモリ88に描画されるカラー画像データの他の一例を示す図解図である。
【図22】電話CPUコアの動作の一部を示すフロー図である。
【図23】電話CPUコアの動作の他の一部を示すフロー図である。
【図24】電話CPUコアの動作のその他の一部を示すフロー図である。
【図25】電話CPUコアの動作のさらにその他の一部を示すフロー図である。
【図26】電話CPUコアの動作の他の一部を示すフロー図である。
【図27】電話CPUコアの動作のその他の一部を示すフロー図である。
【図28】電話CPUコアの動作のさらにその他の一部を示すフロー図である。
【図29】電話CPUコアの動作の他の一部を示すフロー図である。
【図30】電話CPUコアの動作のその他の一部を示すフロー図である。
【図31】電話CPUコアの動作のさらにその他の一部を示すフロー図である。
【図32】キー転送処理時にFIFOレジスタ1に設定されるデータを示す図解図である。
【図33】機能割り当てテーブルを示す図解図である。
【図34】電話CPUコアの動作の他の一部を示すフロー図である。
【図35】(A)はプレイヤ名入力処理時にフレームメモリ86に描画される2値画像データを示す図解図であり、(B)はプレイヤ名入力処理時にフレームメ モリ88に描画されるカラー画像データを示す図解図であり、(C)はLCDに表示されるプレイヤ名入力画面を示す図解図である。
【図36】(A)はプレイヤ名入力処理時にフレームメモリ86に描画される2値画像データを示す図解図であり、(B)はプレイヤ名入力処理時に フレームメモリ88に描画されるカラー画像データを示す図解図であり、(C)はLCDに表示されるプレイヤ名入力画面を示す図解図である。
【図37】(A)はプレイヤ名入力処理時にフレームメモリ86に描画される2値画像データを示す図解図であり、(B)はプレイヤ名入力処理時に フレームメモリ88に描画されるカラー画像データを示す図解図であり、(C)はLCDに表示されるプレイヤ名入力画面を示す図解図である。
【図38】ゲームCPUコアの動作の一部を示すフロー図である。
【図39】ゲームCPUコアの動作の他の一部を示すフロー図である。
【図40】ゲームCPUコアの動作のその他の一部を示すフロー図である。
【図41】ゲームCPUコアの動作のさらにその他の一部を示すフロー図である。
【図42】この発明の他の実施例に関する動作の一部を示す図解図である。
【図43】この発明の他の実施例に関する動作の他の一部を示す図解図である。
【符号の説明】
【0140】
10…ゲーム機能付携帯通信端末
18…LCD
20…ゲーム起動キー
22…ゲームキー
24…電話キー
28…電話CPU
40…ゲームCPU
50…ゲームCPUコア
64…音声処理ユニット
68…カラーパレットRAM
70,80…レジスタ
72,74…VRAM
76…OAM
78…画像処理ユニット
82…キーコントローラ
84…LCDコントローラ
86,88…フレームメモリ
【特許請求の範囲】
【請求項1】
ゲーム機能および電話機能を有する電子装置において、 実行中のゲームの中断を指示する中断キー、 前記中断キーの操作に応答して第1所定値が設定される第1レジスタ、 前記第1レジスタの設定値が前記第1所定値を示すとき前記ゲームを中断する中断手段、 電話の着信を検出する検出手段、および前記着信の検出に応答して前記第1所定値を前記第1レジスタに設定する設定手段を備えることを特徴とする、電子装置。
【請求項2】
前記第1レジスタが前記第1所定値を示すとき現時点のゲームデータをメモリに保存する保存手段をさらに備える、請求項1記載の電子装置。
【請求項3】
前記ゲームが実行中であるかどうか判別する判別手段をさらに備え、 前記設定手段は前記ゲームが実行中であるとき前記第1所定値を前記第1レジスタに設定する、請求項1または2記載の電子装置。
【請求項4】
前記ゲームの再開を指示する再開キー、 前記再開キーの操作に応答して第2所定値が設定される第2レジスタ、および前記第2レジスタの設定値が前記第2所定値を示すとき前記ゲームを再開する再開手段をさらに備える、請求項1ないし3のいずれかに記載の電子装置。
【請求項5】
ゲーム画面を表示する表示手段、および前記着信の検出に応答して前記ゲーム画面の階調を変更する変更手段をさらに備える、請求項1ないし4のいずれかに記載の電子装置。
【請求項6】
前記ゲームは前記電話機能によって外部からダウンロードされたゲームプログラムに従って実行される、請求項1ないし5のいずれかに記載の電子装置。
【請求項1】
ゲーム機能および電話機能を有する電子装置において、 実行中のゲームの中断を指示する中断キー、 前記中断キーの操作に応答して第1所定値が設定される第1レジスタ、 前記第1レジスタの設定値が前記第1所定値を示すとき前記ゲームを中断する中断手段、 電話の着信を検出する検出手段、および前記着信の検出に応答して前記第1所定値を前記第1レジスタに設定する設定手段を備えることを特徴とする、電子装置。
【請求項2】
前記第1レジスタが前記第1所定値を示すとき現時点のゲームデータをメモリに保存する保存手段をさらに備える、請求項1記載の電子装置。
【請求項3】
前記ゲームが実行中であるかどうか判別する判別手段をさらに備え、 前記設定手段は前記ゲームが実行中であるとき前記第1所定値を前記第1レジスタに設定する、請求項1または2記載の電子装置。
【請求項4】
前記ゲームの再開を指示する再開キー、 前記再開キーの操作に応答して第2所定値が設定される第2レジスタ、および前記第2レジスタの設定値が前記第2所定値を示すとき前記ゲームを再開する再開手段をさらに備える、請求項1ないし3のいずれかに記載の電子装置。
【請求項5】
ゲーム画面を表示する表示手段、および前記着信の検出に応答して前記ゲーム画面の階調を変更する変更手段をさらに備える、請求項1ないし4のいずれかに記載の電子装置。
【請求項6】
前記ゲームは前記電話機能によって外部からダウンロードされたゲームプログラムに従って実行される、請求項1ないし5のいずれかに記載の電子装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【図40】
【図41】
【図42】
【図43】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【図40】
【図41】
【図42】
【図43】
【公開番号】特開2008−271607(P2008−271607A)
【公開日】平成20年11月6日(2008.11.6)
【国際特許分類】
【出願番号】特願2008−194195(P2008−194195)
【出願日】平成20年7月28日(2008.7.28)
【分割の表示】特願2000−263555(P2000−263555)の分割
【原出願日】平成12年8月31日(2000.8.31)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成20年11月6日(2008.11.6)
【国際特許分類】
【出願日】平成20年7月28日(2008.7.28)
【分割の表示】特願2000−263555(P2000−263555)の分割
【原出願日】平成12年8月31日(2000.8.31)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]