X1turbo Agency

X1turbo Agency ブログ

8bitコンピュータ X1turboの探求サイト

X1turbo Agency

X1 for ZAURUS

X1 for ZAURUS

2003年。スマートフォンが登場する以前にシャープから発売されたLinuxZaurusシリーズ。
その時に制作していたX1エミュレータ ''X1 for ZAURUS''。
ホームページ移動の問題から閉鎖する事になったけど、当時のページを少々掲載。

X1 for ZAURUS(SL-C700) -世界で一番小さいX1- (※ 2003年当時)

プログラミングの習作を兼ねて、X1エミュレータ for ZAURUS(SL-C700)を作ってみました。
解像度が VGAになったので、X1の画面が再現できるようになりました。
これで、ポケットの中にX1の世界が誕生する…!!

f:id:x1turbo_agency:20180624215922p:plain

更新履歴

日付 バージョン 内容
2003/6/29 Ver 1.5 漢字フォント関係を更新しました。
SJISやJIS並びではなくスピードを考えて、漢字ROM並びに変更しました。
またフォント作成関係がわかりにくかったのでWindows上から実行できる
フォント作成ツールを用意しました。
ファイル選択ダイアログをいじっている途中でハングしてしまうバグを修正しました。
2003/4/21 Ver 1.4 X1turboをサポート開始しました。Z80DMA,Z80CTCをサポートしました。
(turboのCTCのみです)
ポーズ機能をつけました。スクリーンショット取るときにやはりないと不便ですから。
ExKeyに CapsLockを付けました。
(イースIIでは、スピードアップに使われますからして…)
Optionに、X1turboかどうかのフラグを付けました。
デフォルトは、X1turboになっています。
キーボードのモードBもサポートしています。テンキーエミュレーションが
入っている時に反映されます。
以前入力できなかった、IPLのTOPのキー入力ができるようになりました。
2003/3/30 Ver 1.3 PSGサウンドの調整。音程がずれてました。
サンプリングレートを12500Hzにしたので少し軽くなったかも
フォント表示の横倍角を実装
ディスクのフォーマットに *.2Dを追加
特殊キーとしてファンクションキーカテゴリを追加
2003/3/16 Ver 1.2 PSGサウンドの再生を追加
d88ファイルのフォルダーを記憶するように修正
2003/3/11 Ver 1.1 ジョイスティックエミュレーションモードを追加
4MHzモードを追加
*.d88ファイルを開くときにファイルダイアログを追加
2003/03/xx Ver 1.0 とりあえず公開

スクリーンショット

スクリーンショットサンプルは、リバーヒルソフトの「マンハッタンレクイエム」と、
日本ファルコムの、「イース」です。どちらも私の大好きなゲームです。
X1turboエミュレーション用にスクリーンショットを追加しました。
X1turbo用に機能を追加してイース2が動作するようになりました。
しかし、画面描画時に音がブツ切れになる症状がひどくてブルーです。
また、オープニングになぜか青い画面が出ます。
(データ的には出るのであってるんですが)

動作機種

Linux ZAURUS (SL-C700)専用

インストール方法

パッケージをダウンロードして、ファイルメニューからクリックしてインストールしてください。
SDカードにもインストールできます。
X1用のBIOS ROMを、ipl_x1.bin (ファイル名が間違ってました)
X1用のフォントファイル(8x8)を、font8x8.binの名前で用意します。
X1turbo用のBIOS ROMを、ipl_x1t.binの名前で用意します。
ver1.4からはデフォルトがturbo起動なのでこちらが起動されます。
(x1起動にすると、ipl_x1.binが選択されます)
X1turbo用漢字フォントファイル(16x16)x1t_kanji.bin(x1kanji.binから変更しました)

漢字ROMは ver1.4では画面表示ができていませんが、フォントの読み出して文字の描画などに使用します。
並びはShift-JIS並びにしてください。将来的には高速化を考えて、漢字ROMアドレス並びが必要になります。
漢字ROMの吸出しは近いうちに手順やプログラムを紹介しようと思います。

Ver1.5でも漢字テキストはまだ実現していません。漢字ロム関係を先に入れてしまいます。
Windows上から実行できる漢字ロムデータ作成ツールをいっしょにアップします。
このツールで、フォント作成を行って、ファイルとして保存して利用できます。
高速化を考えて漢字ROMアドレス並びになっています。

起動方法

アプリケーションに追加されたアイコンをクリックして起動します。
その後、[OPTION]-[BIOS & FONT]を選んで、BIOSとFONTが入っているパスを指定します。
ここで指定されたROMは、コンフィグに保存され、次回起動時にも反映されます。
(コンフィグファイルは、/home/zaurus に zx1.cfgというファイルを作って保存されます)
(※ SDカードのLinuxからのパスは、/usr/mnt.rom/card/になります)
後は、.d88形式で用意したディスクイメージファイルを、[FDD]-[FDDSet]のファイルセレクタで選択します。

オプション

  • テンキージョイスティックエミュレーション ZAURUSはキーが少ないので、テンキー部分がありません。
    テンキーを使うゲームなどは困ってしまうので、オプションでテンキーエミュレーションを設定できます。
    矢印キーでテンキーの2,4,6,8の入力を置き換えます。
    Ver1.1以降からジョイスティックの入力エミュレーションを追加しました。(ジョイスティック1のみですが)
    割り当ては、以下のようになります。

    • 十字キー … カーソルキー
    • ボタンA … 'Z'
    • ボタンB … 'X'

また、そのままでは速すぎる場合があるので、4MHzモードを付けました。
(起動時は4MHzモードになっています)

  • サウンド PSG(AY-8910)の実装を行いました。
    色々と調整を行ってそれなりにスムースに音が出るようになりました。
    fMSXやM88のソースを参考にして、ZAURUS用にチューニングを行いました。

再生中にプチノイズが出ることが多かったですが、サウンドのPCMバッファを16分割にすることで回避できました。
波形合成自体はそれほど処理はかかっていませんが、PCM発声そのものに処理がかかっています。
PSG再生をONすると、4MHz制限を外してもあんまり速くならないですね…。

ダウンロード

現在はipkの配布は行っていません。

未サポート部分

まだ作りかけなので、あちこち実装していない機能があります。
PSG部分 (音が出ません) → やっと出るようになりました。
PCGの倍角表示や、点滅,反転。 → 横倍角は入るようになりました。
turbo部分 (X1のエミュレートなんで…) → ちょっとだけ入りました。
IPLのタイトル画面で、'F'のキーとかなぜか入らないです。 → 入るようになりました。
実行中に2Wayをビュースタイルにすると画面が崩れます。インプットスタイルで使ってください。
実行中にスクリーンセーバーが起動すると画面の表示がおかしくなります。