PalmOS SimulatorとEmulator
 通常、パソコンソフトを開発する場合、パソコン上で開発してパソコン上で実行できるため、あまり気にすることはありませんが、Palmのような、本体そのものに開発環境を持たないデバイスでは、開発と実行が別環境である事は珍しくありません。
 NS Basicに限らず、プログラミングを行う際は、何らかの「テスト」を行いますが、開発環境と実行環境が分かれていると、何かと不便な場合があります。
そんな訳で用意されているのが、開発環境を模した「エミュレータ」などと呼ばれる実行環境です。
NS Basic/Palmにも、PalmOS用の「模擬動作環境」が用意されています。
本稿では、それらの開発環境や現在入手できるツール類を紹介しようと思います。

※尚、本稿のバージョン情報や入手情報は、2007年4月22日現在のものとなります。
リンク切れやバージョン違いによる情報の不一致については、各自、補完してくださるようお願いします。

【NS Basicと2種類の模擬動作環境】
NS Basicには「エミュレータ(Emulator)」と「シミュレータ(Simulator)」という2種類の模擬動作環境が添付されています。
その言葉の違いはいろいろありますが、PalmOSの世界では、
  • EmulatorはVer.5.x未満の環境
  • SimulatorはVer.5.x以上の環境
とOSのバージョンの違いでツールが違う、と覚えておいても間違いではありません。
また基本的かつ重要な知識ですが、エミュレータもシミュレータもアプリケーションを動作をさせる「器」である事を覚えておいて下さい。
つまり、器には「OS」が入っていないので、そのままでは動きません。
ここで言う「OS」とは、当然「PalmOS」(今はGarnetOSと呼びますが、ひとまずPalmOSで統一します)の事を示しますが、ROMで提供されているPalmなどでは「ROMファイル」などと呼ばれる事もあります。
エミュレータやシミュレータが器である事、そして、実行にはOSである「ROMファイル」が必要である事を覚えておいて下さい。
通常、著作権の関係上、ROMファイルは「自分の持っているPalmから吸い出す」必要があるのですが、それらの入手方法については追々紹介する事とします。

では、まずは、NS Basic/Palm(6.0.x)に添付のエミュレータとシミュレータについて紹介しましょう。

【エミュレータ:NS Basic添付のもの】
これは、NS Basicをインストールすると「Toolsフォルダ」にコピーされる「Emulator.exe」の事を示します。
「platform41_3c_Dbg_enUS.rom」と呼ばれるROMファイルが同梱されているので、実機からROMファイルを取り出さなくても、そのまま使うことが出来ます。
    EMU NSB
画面を見ていただくとカラーである事に気付きますが、これは同梱されているROMファイルが「英語版PalmIIIc」の物だからです。
英語版PalmOS Ver.4.1でカラーもサポートされて「PalmIIIc」点が、平均的に使いやすいであろうと判断しての選択だと思われますが、日本人から見れば「英語版PalmIIIc」を手に入れた事と同じです。
つまり、何らかの方法で「日本語化」しなければ日本語は表示されません。


【シミュレータ:NS Basic添付のもの】
「NTFull_enUS.rom」というROMファイルが添付しているので、こちらも実機なしに動作環境を構築できます。
    SIM NSB
バージョンは「PalmOS 5.3」の英語版となります。
やはり英語版なので、何らかの形で日本語化しなければなりません。


【開発サイトから入手出来るもの】
PalmOS、現GarnetOSの引き取り先である「ACCESS社」の開発者サイト(英語)に、開発者登録をする事で、様々な開発ツールを入手する事が出来ます。
アプリケーションを世に送り出すために必要な「CreatorID」の取得にも開発者登録が必要になりますので、是非、登録しておいて下さい。

さて、こちらで入手できるエミュレータとシミュレータは、さすがに「本家」だけあって、面白い物が用意されています。
ちなみに「Garnet OS Developer Suite」にはこれらのツールは含まれているとの事なので、個別にダウンロードするのが面倒な方は、そちらをお試し下さい。

【エミュレータ:開発者サイトからダウンロード】
「emulator-win.zip」をダウンロード(エミュレータはMac版もありますが、お話はWindowsとして進める事にします)するだけでエミュレータと関連ツールが入手できます。
ただし、ROMファイルは含まれていませんので、同梱されている「ROM Transfer.prc」を使ってお手持ちのPalmからROMファイルを「吸い出す」か、別途「PalmOS412_RelROMs.zip」などをダウンロードして下さい。
「PalmOS412_RelROMs.zip」には2種類のROMファイルが含まれています。
「PalmOS412_FullRel_EZ_enUS.rom」と「PalmOS412_FullRel_EZ_EFIGS.rom」です。
まず、明らかに「英語版」である前者を使って起動してみましょう。
    EMU e DEV
知った人には懐かしい、知らない人には「ナンダコレ?」というモノクロ画面が現れます。
このROMファイルが、英語版PalmOS4.12、Palmで言えば「PalmVx」あたりに相当する機械の物だからです。
さて、もう一方の「EFIGS」版を見てみましょう。
    EMU DEV
こちらは幾つかの言語から選択できる「多言語版」ですね。
日本人的ならアメリカ人もドイツ人も一緒くたですから、いわゆる「外人版」といっても差し支えないでしょうか。
基本的にアルファベットかそれに順ずる記号だけで事が足りる言語圏のOSであって、日本語を表示させるには日本語化が必要となります。

なお「ROM Transfer.prc」を使ってROMファイルを吸い出す事に関しては、「ケーブルを使って行う事」と「USBだとちょっと厄介」という事だったように記憶しています。
これは「RS-232C接続のクレードル」という接続方法が一般的だったPalmVxの頃の名残ですが、もし、自分のPalmからROMを吸い出したい、という方がおられましても、あまりオススメはしません。
どうしても吸い出したい場合は、日本産Palm開発者支援サイト「Palm Hacker's Salon」の「各種情報・ドキュメント」にアーカイブされている「CodeWarrior講座で利用したROMをメモリーカードに書き込むアプリケーション」を使うことをオススメします。
これは、Palmの外部メモリカードにそのままROMファイルを吸い出す便利なツールです。ひとまず、自己責任でお使い下さい。


【シミュレータ:開発者サイトからダウンロード】
一方のシミュレータは「PalmOS_Garnet_54_simulator.zip」の中に、実行環境とROMファイルが同梱されている太っ腹なツールです。
そして・・・、
    SIM j DEV
PalmOS 5.4の日本語版のROMファイル「Simulator_Full_jpJP_Release.rom」も同梱されているので、そのままで日本語表示が可能です。やっと、そのままで日本語表示が出来るようになりましたね。
このセットには以下のROMファイルが含まれています。
  • Simulator_Full_EFIGS_Release.rom
  • Simulator_Full_enUS_Release.rom
  • Simulator_Full_jpJP_Release.rom
  • Simulator_Full_zhCN_Release.rom
英語版はもちろん、いわゆる外人版の「EFIGS」も同梱されていますが、もう1つ見慣れぬ「zhCN」版が入っています。
これは何かといえば、予想通りの中国語版です。
    SIM cn DEV
これさえあれば、多言語での開発が可能になりますが、 ここまでROMファイルがグローバルに用意されているのに、日本語版の実機が出てこないのは、どういうコッチャ!と思わなくもありません。いや、激しく思いますね。
是非に実機投入をお願いしたいところであります。


【エミュレータ:NS Basic幻のバージョン】
今まで紹介したエミュレータやシミュレータの話題で、あまり「日本語化」について触れていませんでした。
正直言えば「あまり詳しくない」からです。
では、どうやって確認しているのか?と問われれば、私の場合、実際の開発時、面倒だから実機に送って試している、という事もありますが、もう1つ、ある時期、NS Basic/Palmに添付されていたエミュレータを使っているからでもあります。
    EMU j NSB
「NSBEmulator」と名付けられたこのエミュレータは、画期的なことにROMファイルが組み込まれている「単体のエミュレータ」で、ROMファイルを用意する必要すらありませんでした。
そして、嬉しい事に「日本語版PalmOS4.1」が組み込まれているため、簡単に「日本語版Palm505/515」相当の環境が扱えるという優れものです。
残念ながら、本家Palm社から「怒られちゃった」とかで、すぐに添付されなくなりましたが、今となっては「幻のツール」と呼ぶに相応しいツール。NS Basic/Palmの正規ユーザーさんにならお分けしても問題ないんじゃないかと思ったりしています。