日本国民の2人に1人は所有すると言われている、携帯電話。メーカー間の激しい競争も手伝って携帯電話は着々と性能を上げ、NTTドコモの“iモード”を筆頭に、携帯電話は新しい道具の一つとして世間に認知され始めました。そして、気が付けば今やMSXをはるかに凌ぐ高性能な携帯電話が続々と登場する世の中です。
携帯電話の流行りと言えば“着メロ”や“待ち受け画面”、そして“iモード”など、ネットを通じてコンテンツをダウンロードすることです。ですが、肝心なコンテンツ(主にゲーム)はロクなものがありません。Javaを搭載した機種が主流になれば少しは状況が変わるかもしれませんが、メーカー毎に規格や性能がばらばらで、どの規格やどの機種に合わせてコンテンツを作れば良いのか、コンテンツ制作側もよく分かっていない節があります。これは80年代初頭の(まさにMSXが登場するきっかけとなった)8bitコンピュータの乱立時代と状況が似ています。
そこで私達は、携帯電話を使った新しいコミュニティを提案します。それは、携帯電話に公式MSXエミュレータを搭載し、(ほぼ)自由に携帯電話を使い倒せるハードウェア環境を作り出すことです。
携帯電話に公式MSXエミュレータ(というよりMSXシステム)が載ることで、MSXの新たな可能性が見えてきます。例えば…
- MSX用のコンテンツを携帯電話の機能の一部として利用できるようにする
- 携帯電話自身が“ディスクドライブ”となり、MSX実機から携帯電話へファイルを転送したり、ネットで入手したコンテンツを保存できる
- 自分の作ったMSX用プログラム(=コンテンツ)をネットを通じて配信できる
- MSX用のプログラムやデータ(=コンテンツ)を集めたサーバを構築し、誰でも自由にアップロード・ダウンロードできるインフラを整える
“グラフサウルス”などで描いたCGを携帯電話の待ち受け画面に登録することも可能でしょうし、MSX-BASICのPLAY文で曲を作り、着信時の実行コンテンツとしてそのBASICプログラムを登録すれば「着メロ」になります。果ては暇なときにMSXのゲームを起動して遊ぶとか、着信時にメガデモを起動するとか、携帯電話の電話帳ファイルへアクセスし電話をかけてきた相手によって着信画面を変えるとか、面白そうなアイデアはいくらでもあふれて来ます。
携帯電話に公式MSXエミュレータが搭載するなんてできるのか?と疑問を持たれる方も多いかもしれません。結論から言いますと、技術的には問題ありません。公式MSXエミュレータの動作する“intent”というプラットフォームは、PCよりむしろ携帯電話やPDAのような組み込み型のOSとして開発されました。携帯電話のメーカーが携帯電話自体のOSにintentを採用すれば、携帯電話の「機能」として公式MSXエミュレータを搭載できる可能性が高くなります。事実、intentの採用を検討している携帯電話メーカーは現在でも数社が挙げられますので、MSXシステムを利用したビジネスモデルをMSXユーザー側が提唱できれば、アスキーを通して携帯電話メーカー各社へのプレゼンテーションが可能となります。
携帯電話用MSXエミュレータ基本仕様
※ 以下の仕様書はあくまで草案であり、後に変更される場合があります。また、MSXユーザーの皆さんからのご意見・ご要望・ツッコミは大歓迎ですので、ぜひ 会議室 までお寄せ下さい。
- MSX2相当の仕様に準拠
- RAM 256KB (海外のコンテンツを利用可能にするため)
- VRAM 128KB
- MSX-DOS2 (日本語処理をしやすくするため)
- 漢字ROM…携帯電話の内蔵漢字フォントを流用
- 12ドット漢字フォントを搭載する機種は、“松下仕様の12ドット漢字フォント”及び“MSX View互換の12ドット漢字”のエミュレーションを行う
- 韓国ではハングルフォントなど、各国の内蔵フォントを流用
- MSX-JE…携帯電話自体の日本語入力機能を流用
- CLOCK-IC…携帯電話自体の機能を用いる。パスワードをON設定にする場合、携帯電話自体のロック機能を流用?
- 携帯電話にメモリーカードスロットを搭載
- 2000年10月現在、“コンパクトフラッシュメモリー”の採用が有力
- Panasonicの提唱する“SDメモリーカード”も検討されている
操作系
少ない携帯電話のキー数でそのままMSXの操作を行うのは困難です。そこでキー入力方法を携帯電話用にカスタマイズする方法を提案します。
簡易
少ないキー入力でコンテンツの操作ができるモードです。一つのキーで複数のキーを同時押しするようエミュレートすることで、操作系の統一を図れます。
携帯電話での入力 | MSXに対応する入力 | 操作性の機能 |
十字キー | ジョイスティック1、カーソルキー | 移動 |
決定キー1 | トリガA、スペースキー、Returnキー | 決定 |
決定キー2 | トリガB、ESCキー (Mキーも!?) | キャンセル |
数字キー(0〜9) | テンキーとフルキー(数字部) | 数値の入力 |
# | 決定キー1と同等 (決定キーが無い場合) | 決定 |
* | 入力切替 | - |
通常
より複雑なキー入力を行うモードです。頑張れば携帯電話上でプログラムを作れる!?
携帯電話での入力 | MSXに対応する入力 | 操作性の機能 |
十字キー | ジョイスティック1、カーソルキー | 移動 |
決定キー1 | トリガA、スペースキー、Returnキー | 決定 |
決定キー2 | トリガB、ESCキー | キャンセル |
数字キー(0〜9) | 通常の文字入力と同等(1:あ行 2:か行 3:さ行…) | 文字の入力 |
# | なし | - |
* | 入力切替 | - |
言語系
- MSXシステムそのものが起動可能。→ ブートセクタから起動し、MSX-DOSが起動しない場合はMSX-BASICの“AUTOEXEC.BAS”が有効になる。
- RS-232C系の拡張BASIC(簡易版)を搭載し、携帯電話を生かした拡張命令を新規に用意したい。
- 着信番号をプロクラムから取得できるようにする → システムワークのどこに保存する?
- 電話をかけることができる? →ダイアログを表示し、ユーザーに注意を促す
「XXX-XXX-XXXXへ電話をかけます。よろしいですか?(Y/N)」など。
- 携帯電話自体の電話帳ファイルをアクセスすることができる? → 後術
- 他に欲しい命令はあるか?
画像系
携帯電話では過去のコンテンツがほとんど利用できないということは 解像度について にて説明した通りです。MSXの実画面を携帯電話用に“切り抜く”必要があります。
切り抜き表示する領域に関して、現在2つの案が出ています。
方法 |
長所 |
短所 |
左上から切り抜く |
コンテンツ制作時、携帯電話での表示領域を実機で把握しやすい |
液晶の解像度が上がると不可視領域が右下から見え始め、バランスが悪くなる |
中央から切り抜く |
液晶の解像度が上がる場合を想定してコンテンツを制作できる |
コンテンツ制作時、携帯電話での表示領域を実機で把握しにくい |
今後、画面の解像度を柔軟に変更できるようにするのであれば、一考の余地あるご意見
- 切り抜いた画像を、新MSX(実機)のほうに「切り抜いた領域を画面中央に(拡大?)表示」のようなレジスタを新設したらどうか?
(現状のMSXでは切り抜いた外側の領域を裏VRAMとして使った場合に丸見えになっちゃうのが欠点なので)
- 携帯電話(というより実働機種)の画面サイズを取得できるしくみが欲しい。→システムワーク?VDPのシステム関数?
「このコンテンツは○○以上の解像度で動かして欲しい」
「画面が○○以下の解像度の時は、エラーだして終了」
- 従来の命令に加えて、切り抜く位置を動的に変えられる命令が追加されるべきだ。
- iモード向けには、「MSXそのもの」ではなく、「MSXに機械語レベルでは上位互換した別のシステム」を載せる形の方がしっくり来るような気がします。だって、もし解像度があがっても、あんな小さい画面につめこんでしまったら、「虫眼鏡を利用してご覧ください」って書かないとだめだろうし、部分的に切りだしするんでも、従来のmsxソフトつかって、「キャラが消えてるうちにゲームオーバーした!」ってクレーム電話する人がいると思うよ。
携帯電話としての定義
携帯電話とMSXエミュレータとを関連付ける案に、現在2つの案が提案されています。
案1
携帯電話自体の機能を最大限に活用し、MSX側から携帯電話のメモリを見えるようにする方法。
ファイルシステム
Aドライブ(起動ドライブ) |
携帯電話の機能にてMSX用コンテンツのファイル(ディスクイメージファイル)を指定。
ディスクイメージファイルの場合、セクタアクセスが可能。
|
Bドライブ |
携帯電話の保存用メモリをMSX-DOSのファイルシステムとしてエミュレーションを行う。
セクタアクセス不可能。 |
Hドライブ |
RAMディスク?(携帯電話の駆動RAMが余っている場合) |
携帯電話とMSXの関連付け
この案では、MSXエミュレータを携帯電話の機能の一部として利用します。携帯電話自体のOSは別にあり、場合によってはMSXの機能を用いる、というものです。常に複数のMSXエミュレータが起動している状態で、条件によって特定のMSXエミュレータがアクティブになります。
MSX用コンテンツの起動は、携帯電話のOSで設定します。
- 待受時に起動する画像 または MSX用コンテンツ
- 着信時に起動する音声 または MSX用コンテンツ
- いつでも起動できる Java用コンテンツ または MSX用コンテンツ
など、MSXシステムを利用(代用)できる特定の範囲内でMSXが利用可能となります。→ あまりMSXっぽい使い込みはできない?
Aドライブ
携帯電話の機能で指定した“MSX用コンテンツ”をドライブAに割り当て、MSXエミュレータを起動します。コンテンツは「ディスクイメージファイル」
を起動対象にします。
Bドライブ
電話帳データやメールデータなど携帯電話自体の重要な情報は、MSX-DOSのファイルシステムとしてMSXからアクセスできるようにします。
(この場合、すべての情報をファイル化するのではなく、必要最低限の情報のみアクセス可能でも良い。CLOCK-ICのファイル化は必要ない等)
Bドライブは携帯電話自体のメモリのため、セキュリティを確保する必要があります。そこで、
- 常にライトプロテクト状態(読み込みのみ)にする
- システムファイル扱いにする
- セクタアクセスを禁止する
- MSXエミュレータ自体がBドライブへ書きこみ処理を行う直前でダイアログを表示してユーザーに注意を促す。
「携帯電話のメモリにデータを書きこみます。よろしいですか?(Y/N)」など。
などの方法でセキュリティを確保します。
案2
携帯電話自体にメモリーカードスロットを搭載し、MSXの機能をすべてメモリーカード内に収納する方法。
ファイルシステム
Aドライブ(起動ドライブ) |
メモリーカードのファイルシステムがそのまま見える。 |
Hドライブ |
RAMディスク?(携帯電話の駆動RAMが余っている場合) |
携帯電話とMSXの関連付け
この案では、MSXエミュレータを携帯電話そのものとして利用します。携帯電話自体のOSをMSXエミュレータが乗っ取り、各種コンテンツを実行します。
- メモリーカードを自体がMSX機能の利用鍵となり、これを装着すると携帯電話のOSの代わりにMSXシステムが起動する。
- MSXとして起動する手前、電話をかける、着信時の対応やメールの送受信、各種ファイルの管理など、携帯電話のとしてのOSもMSX上で制作・動作する必要がある。→ 例えばコンテンツ実行中に着信があった場合に着信用プログラムを容易に実行できるのか?
- 電話帳など携帯電話本体に保存されるメモリは一切アクセスできない。データの保存をメモリーカード内ですべてまかなうことで、携帯電話自体のセキュリティを確保する。
とは言え、電話帳ファイルなど本体のメモリからMSXのファイルシステムに書き出すツールは提供しても良いだろう。
など、携帯電話の機能をプログラムで随時追加して行ける楽しさがあります。→ 高度なプログラミングが必要で逆に敷居高すぎ?
Aドライブ
最大32MBアクセス可能の、一般的なメモリーカードのドライブです。ブートセクタからの起動も可能です。
コンテンツの配布と実行
BASICプログラム一つを携帯電話に登録させるのであれば話は簡単なのですが、画像データや音声データなど複数のファイルを併用するようなコンテンツの場合は、その配布手段が問題になります。バラで配布すればたくさんダウンロードしなければならない、ファイルが足りないとエラーで止まってしまう…ユーザーに負担をかけないようコンテンツを配布できる手段が必要になります。
これを回避するため、一つのコンテンツに対して1ファイルでダウンロードできるようにするシステムを考案しました。具体的には、複数のファイルをディスクイメージ化します。詳しくは コンテンツの配信と実行 をご覧ください。
コンテンツの起動
携帯電話のMSXエミュレータでは、コンテンツの実行開始からディスクのブートが始まるまでの時間をできるだけ短くしなければなりません。MSXが起動するまでにかかる処理を軽く紹介すると、以下のようになります。
- MSXロゴを表示 (MSX2では縦スクロール)
- 使用可能メモリを表示 (MSX2ではVRAM容量のみ)
- パスワードの設定があればそれを入力
- ビープ音を鳴らして初期化
- その後ディスクをブート
例えば、着信時にMSX用プログラムを起動したい場合、着信してからコンテンツの起動まで実機のように5秒くらいで処理するようでは遅くてダメだということです。
これを回避するために、以下のような案があります。
- 前述の案1の場合、コンテンツの実行命令が下るまで5.の実行寸前でアイドリングしておく
- 前述の案2の場合、タイマー割り込みなどプログラムで着信状態を常に監視しておく
CMOSに関する仕様
- 携帯電話自体の時計機能を用いてCLOCK-ICのエミュレーションを行う。
- パスワードの設定・変更(SET PASSWORD)はできない。設定しても現在実行中のエミュレータ内でのみ有効で、エミュレータ的には携帯電話自体のロック機能を常にロード(自己書き換え)して起動する。ロック機能自体を利用しない案もあり。
- 画面位置の補正(SET ADJUST)は行わないので、数値を設定してもエミュレータでは無視する。
- それ以外の設定は可能。携帯電話の内部ファイル(またはメモリ)に保存される