日本語のオリジナルSkinを作ってみました

先日もチラッと触れましたが、PHEMはSkinを使って見た目のデザインを変えることが出来ます。
これは元々PalmOS Emulator(POSE)が持っていた機能ですが、ありがたい事にPOSEの移植版であるPHEMはPOSEのSkinをそのまま使うことができるのです。

本来POSEのSkinは筐体全体のイメージを用意するのが基本なので、PHEMでPOSEのSkinデータをそのまま使うと、下の画像のようになってしまいます。

タブレットのような大きい画面のデバイスで使うならこれでも良いのですがスマホの小さい画面でこのようなSkinを使うと、画面が小さくなり実用的じゃありません。

そこでタッチスクリーン部分のみのSkinを用意してみました。
前回チラッと紹介した画像は、POSEのVisor用Skin(上の画像)のタッチスクリーン部分のみ画像を切り出して、Skinに仕立てたものです。
ただ、元が写真画像で影が入っていたりピントが甘かったりとあまり出来が良くなかったので、自分で作ってみました。


黒いGraffitiエリアがなかなかいい感じです。
とりあえず、自分のVisor用ROMで使うので日本語版です。
まぁ、画像を大小2枚用意して設定ファイルを書けば実は誰でも簡単にSkinを作れます。
改めて説明しますが、とりあえず今回作ったSkinをサンプルとして用意しましたので、よろしかったらダウンロードしてみてください。一応Visor用ですが、設定ファイルにROM名を追加すれば他のデバイスでも使えるようになります。
設定ファイルを見ると、結構簡単にSkinが作れる事が分かると思います。

Skinについてはもう少し詳しく話をしたいところですが、最近なかなか時間が取れないのでもう少しお待ちくださいませ。

PHEM用日本語Skin(Visor ROM用)ダウンロード

Visor Platinum/Prism/EdgeのROMを持っている人なら、上記ファイルを解凍して“PHEM_SKIN_J”フォルダの中にある画像2枚とPHEM_J.skinファイルを“/storage/emulated/0/phem/skins”フォルダにコピーすればSkinが使えるよ。
それ以外のROMでも、PHEM_J.skinファイルをチョコっといじればOKです。

とりあえず、今回もSkinのさわりだけお話させていただきました。

Skinで遊んでみました

や、不具合報告の続きでも書こうと思っていたのですが、ミニーさんの所で報告のあった通りPHEM Ver1.2がリリースされていました。
色々と、検証し直さないといけないので不具合系のお話は一旦お休み。
嬉しい事に、バージョンアップしてPHEMのメニューなどが日本語化されていました(なんとミニーさんのご尽力の賜物です)。

で、とりあえず日本語化を祝して僕のPHEMを日本語デバイスにしてみました。

見て見て!
日本語版Graffitiエリアです。

POSEで使っていたSkin画像(Visorのもの)を加工してPHEMにインストールしてみました。
まんま日本語デバイスです。(^^)v

Skinのお話についてはいずれ改めてさせていただきますが、こんなことも出来るんだよというご報告まで。

タイムウェイトがおかしい?

前回まではPHEMの使い方についてお話させていただきました。
PHEMは非常によく出来たPalmOSエミュレータですが、実機のPalmバイスと動作が微妙に異なる部分もあります。
今回から暫く、そんな不具合的なお話をさせていただこうと思います。




ゲームで多いのですが、タイムウェイト処理がうまく動作しないプログラムがあります。

分かりやすく説明すると、例えばプログラム中で「1秒待つ」という処理があった場合に1秒待たずにすぐ次の処理を始めるみたいな感じでしょうか。
下の動画を御覧ください。

懐かしいゲーム「オヤヂ de MAMBO!」を実機(Treo680)とPHEMで動作させ、比較したものです。
実機はアニメーションとBGMが同期してますが、PHEMではアニメーションが一瞬で終わってしまい、BGMだけが虚しく流れています。
同様の理由でうまく使えないゲームが結構あります。
ただ全部がこうなるわけではなくて、ちゃんとタイミングを取って動作しているものもあるので、実際に動かしてみないとわからないと言うのがもどかしい所です。
将来のバージョンで治ると良いですね。

システムメニュー探訪

さて、今までPHEMの機能をレポートしてまいりましたが、そろそろ大詰めです。
本日はいよいよシステムメニューについてです。
システムメニューは画面右上のメニューボタンをタップすることで開きます。



メニューは[Reset]、[Card Emulation]、[Advanced Setting]、[About PHEM]の4つの機能で構成されています。
以下にそれぞれの説明をします。


Reset

PalmOSのリセットを実施します。
タップすると以下の画面が表示されます。



Soft Reset
ソフトリセットです。
PalmOSの再起動を行います。インストールしたアプリ等がクリアされることはありません。
最も多く使うリセットです。

No-Extention Reset
ソフトリセットを行いますが、リセット時に拡張機能を有効にしません。
ちょっと分かりにくいですが、システム系ソフトをインストール時にOSがリセットループに陥るなどした場合にこのリセットで復旧することがあります。
具体的な例では、J-OSで日本語化しているような環境でこのリセットを行うと、ただのリセットと異なりJ-OSが停止した状態でOSが立ち上がると言えば、分かりやすいでしょうか?
深刻なシステムトラブルの際に有効なリセットです。

Hard Reset
No-Extention Resetでも復旧できない深刻なトラブルになった際に使うリセットです。
実行すると、インストール済みのアプリやデータも全て消去され、工場出荷状態に戻されます。
アプリ等は再び入れ直す必要がありますが、デバイスはほぼ確実に復旧するリセットです。


Card Emulation

先日外部メモリの回で説明しましたね。


詳しくはこちらをご覧ください。


Advanced Settings

PHEMの詳細設定を行います。


以下にそれぞれの機能の説明を記します。

HotSync Name
PHEMのHotSync名を指定します。
PHEMは母艦コンピュータとのHotSyncは出来ませんが、HotSync名でインストール制限をかけているアプリがある場合は、ここでHotSync名を変更することで使用できるようになります。
デフォルトのHotSync名は「PHEM」です。

High Resolution Skins
画面の解像度を上げます。
ここで言う解像度はPalmOSのスクリーン解像度ではなくPHEMの表示解像度です。
デフォルトではONですが、メモリが少ないローエンドAndroidではここをOFFにする事で使用リソースを節約できるようです。
ちなみにこのチェックをOFFにすると、PHEMの画面が少しぼやけた感じになります。

Enable Sound
デフォルトはONです。
ONの状態でPalmのブザー音が鳴るようになります。

Use Vol UP/Down to Scroll
デフォルトはOFFです。
スマホのボリュームボタンをPalmの上下ナビゲーションボタンの代わりに使用できるようになります。
Ver1.1ではこの設定をONにしても、PHEM終了時にOFFにされてしまうようです

Touch Smoothing
すみません、英語が苦手でここの説明はうまく出来ないのですが、AndroidPalmのタッチスクリーン操作感覚の違いを吸収するためのパラメータのようです。
デフォルトでは、第1スライダーが4(Pixcels)、第2スライダーが250(ミリ秒)です。
システムの根幹に関わるチューニングパラメータですので、(僕みたいに)英語が理解できない人は触れないほうがいいでしょう。(^^;)
触らぬ神に祟りなしです。

Refresh Rate
画面描画の更新回数です。
指定した回数だけ1秒間に画面の更新を行います。
ただ、値を小さくしても描画回数が間引きされるだけで描画がスローになる訳ではないようです。
デフォルトは10です。この値もむやみに変更しないほうが良いでしょう。


About PHEM

PHEMの説明画面です。


特に設定はありません

いかがでしたか?
これまで数回にわたってPHEMの使い方について解説してきました。
もう十分PHEMについて「知ってるつもり」になった事と思います。興味が湧いたなら、是非PHEMをいじり倒してみてください。
次回以降はちょっと視点を変えてPHEMについてお話をしていこうと思います。

AndroidのキーボードでPalmの文字入力

Palmの文字入力といえばGraffitiです。
PHEMも当然Graffitiで快適に文字入力をすることが出来ますが、Android上で動作している訳ですから、Androidで使用している文字入力メソッドで文字入力を行うことも出来ます。
今日はそんな文字入力を可能にするPHEMのキーボードボタンの説明をしましょう。




Androidで文字入力を行うには、画面上のキーボードボタンをタップします。

すると、普段Androidで使用しているキーボードが表示されます。
普段通りに入力すると、PHEMを通じてPalmOS側に文字が入力されます。
下の画像を見ると、GraffitiエリアにかぶさるようにAndroidのキーボードが表示されているのが分かります。

ここで面白いのはPHEMは文字の入力だけを行うということです。
日本語変換はPalmOS側で行います。
なので、Androidの文字入力モードは英字モードが原則となります。
また予測変換等の候補が表示されている状態ではうまく動作しないようです。
上記の画像はATOKのものですが、未入力時の推測候補表示をOFFにすることで、PHEMで入力できるようになりました。

ちなみに変換はPalm側で行うと言うことは、Androidで文字入力をしてもPalm側の日本語入力システムを切り替えて使うことが可能と言うことです。
例えば下の画像のように入力はATOK(Android)、変換をPobox(Palm)とか。
今のAndroidiOSのように入力と変換がガッチリ手を結んでしまうと、こんな芸当はなかなか見られませんが、昔からPalmはこういう使い方が出来たので懐かしい気がしますね。

Android側は英字が打てればなんでもいいので、英語版キーボードでも十分です。
面白いところでは、Graffiti Pro for Androidでも入力出来ました。

本末転倒のような気もしますが、これはこれで使いやすいですよ(笑)。

PalmOS4.xなら外部メモリも使える

前回はセッション管理について説明しました。
セッションを使うことでひとつのAndroid端末で複数のPalm環境を使い分けたり、別のAndroid端末に環境を引っ越ししたり、活用の幅が大きく広がります。
今回も別の角度から活用の幅を広げる方法、外部メモリについて説明したいと思います。




PalmOSは、バージョン4で正式に外部メモリをサポートしました。
それ以前からソニーは独自でクリエにメモリースティックを搭載していましたが、PalmOS標準で外部メモリがサポートされた事で、バックアップやファイラー系アプリなど外部メモリを積極的に使うPalmwareが多数リリースされるようになりました。

PHEMにもPalmOS4.xのROMを用意する事で、擬似的に外部メモリを使える仕組みが用意されています。早速説明していきましょう。

下の画像は、標準ランチャーでカテゴリメニューを開いたところです。
外部メモリが挿さった状態では、このカテゴリリストの一番下に外部メモリが表示されるのですが、下の画像ではまだ新規にセッションを作成した直後なので外部メモリはありません。


そこで画面上部にあるPHEMのメニューをタップし、開いたメニューから「Card Emulation」を選択します。


下の画像のような画面が表示されるので、[Install HostFS]ボタンをタップして下さい。
タップするとOSが再起動し、外部メモリが使えるようになります。


再びランチャー画面でカテゴリメニューを開くと、先程まで無かった「EmulatedSlot1」という項目が見つかります。
これで外部メモリがサポートされました。


外部メモリが使えるようになったところで、PalmOS4標準の外部メモリ使用方法を試してみましょう。
ランチャーが表示されている状態で、シルクスクリーンの「MENU」をタップします。
ランチャーメニューが開くので「Copy...」を選択します。


コピー画面が表示されたら、外部メモリにコピーしたいアプリを選択して[Copy]ボタンをタップするだけでアプリをコピーします。


コピーは「Palm→外部メモリ」と「外部メモリ→Palm」の双方向可能です。
画面上の「Copy to:」や「From:」項目を使ってコピー方向を切り替えて下さい。
上の画像は「Moon Intruders」を外部メモリにコピーするところです。
コピーすると、以下のように「EmulatedSlot1」に「Moon Intruders」がコピーされているのが確認できます。

なおこの操作はあくまでもコピーですので、コピー直後は外部メモリとPalm内部の両方に同じアプリが存在します。
不要な方をOSの削除機能を使って削除して下さい。

外部メモリからアプリを起動するランチャーといえば、PowerRUNがありますね。
アプリの関連DBごと外部メモリに退避できますしアプリのカテゴリも自由に設定可能と使い勝手が良いので、こちらを愛用されている方も多いと思います。
当然PHEMでも動作しました。


有名なファイラーアプリ「Filez」も、動作しました。外部メモリにコピーされたファイルも以下のようにちゃんと見えます。


他にもバックアップ系アプリなど様々なアプリがありますが、これ以上説明してもアプリの説明なので省略します。
さてこの外部メモリですが、実際にはAndroid端末内部の特定のフォルダを使用しているため、Google Nexus7のなどmicroSDを持たない端末でもこの機能を使うことが出来ます。
PHEMでは実際に、以下のパスが外部メモリ空間として利用されています。

 /storage/emulated/0/phem/card

なお、PHEMはセッションを切り替えても同じパスを外部メモリに割り当てるため、セッション間で共有できるストレージとしても活用できます。
また、一旦インストールしたアプリアプリで使用しているデータベースファイルを外部に抽出するのも、この外部メモリを使うと簡単にできます。
どうぞ活用してみてください。

セッションでPalm環境を管理する

ゲーム専用と仕事用、普段使いに実験用など敢えて環境を分けたい場合というのは少なからず存在します。
PHEMには、そんな時に便利な機能が用意されています。

今日はそんな便利な機能「セッション」について説明したいと思います。




セッションの保存

さて、まずはPHEMで現在動作している環境をセッションとして保存します。
画面上部のセッションボタンをタップします。


すると下の画像のようなセッション管理画面が表示されます。
あれ?この画面は見覚えがありますね。
そう、この画面はPHEMの初回起動時に表示された画面と同じです。
初回起動の際には[New Session]ボタンをタップして新しいPalm環境を作りました。
今回は既に起動しているPalm環境を保存するので[Save Session]ボタンをタップしましょう。



[Save Session]ボタンをタップすると以下の様な画面が表示されます。
ここで「Session Name」に保存するセッションのファイル名を記入して[Save]ボタンをタップすると、セッションが保存されます。
ファイル名はデフォルトで「デバイス名」−「保存日付」という名前がセットされています。下の画像では「VisorPrism-2014-01.21.psf」と言う名前ですので、1/21に保存したVisorPrismのROMイメージのセッションだと分かります。






セッションの読み込み

次にPHEMで保存したセッションを読み込む方法を説明します。
保存の時と同様にセッション管理画面を呼び出し[Load Session]ボタンをタップします。


すると以下の様なファイルリストが表示されます。



先ほど保存した「VisorPrism-2014-01.21.psf」の他に「VisorPlatinum-2014-01.21.psf」というファイル名がありますね。
実は事前にVisorPlatinumで作成したセッションを保存してあったのです。
VisorPlatinumはモノクロデバイスなので、ここではカラー環境とモノクロ環境のセッションを持っている事になります。

それでは早速「VisorPlatinum-2014-01.21.psf」をタップします。
「ファイルリスト(タップ位置マーク)」

一瞬ファイル読み込み中のメッセージが表示されますが、すぐに読み込みは終わります。
読み込みが終わっても画面は変わりませんので、Android標準の「戻る」ボタンを2回タップしてセッション画面を抜けます。


2
モノクロ画面になりましたね。これでVisorPlatinum環境に切り替わりました。


他のデバイスへのセッションコピー

さて、これでセッションについては先日の「作成」と、本日の「保存」「読み込み」についてお話させてい頂きました。
セッションファイルは、環境のまるごとバックアップだとイメージしていただけると分かりやすいと思います。

では、セッションファイルを他のAndroidバイスにコピーするとどうなるのでしょうか?
もうお分かりですね?
コピー先のAndroid上でセッションファイルを開くことで、使い慣れたPalm環境の引っ越しが出来ます。
もちろん引越し先に予め、PHEMと引っ越し元で使っていたものと同じROMファイルを入れておくことが前提ですが…。

このようにセッションをうまく使うことで、PHEMの活用の幅がぐんと広がります。
是非活用してみてください。