[$1F]
Android
(8)
動画を撮ってみました
2012.05.19
2012.05.27
PC-8001:j80 に戻る
←その30へ
その32へ→
■2012.05.19
2012.04上旬の状況 (Java版も同様)
「タッチパネル」のマップ定義方法を変えた
「タッチパネル」のマップ検索ロジックを変えた
より汎用的に使えるようにしました。
Android版の仮想キーボードを独自実装版に置き換え、Java版にも仮想キーボードを用意する時がきたら役立つ予定です。
「タッチパネル」のガイド画像を表示できるようにした
動作を止めないでオーバーレイ表示が可能な実装としましたが、現在は「pause」中のみ表示しています。
ガイド表示例
2012.05.15~19
Android版 GUI整備
動画準備中に必要と感じたコマンドを追加しました。
盛りだくさんになって見にくくなってきたので表現を調整しました。
Android版 GUIバグ FIX
GUI整備中に見つけたバグを修正しました。
Android版 実機動画 (
YouTube
)
■2012.05.27
今回はコードをざっと見直して気になった3点を調整してみました。
メインループ中の演算順等を、スタックを意識して調整した
CPUコアを調整した (テーブル参照の負荷低減, 関数呼び出しを減らすなど)
グラフィック画面のピクセル生成コードの演算回数を減らす工夫をしてみた
j80 の TF201上での実行速度は、「Win95@233MHz」時代のキャッシュの少ないノートパソコン相当かな?って感じです。
実行速度について (CPU, メインループ)
今回のチューニングでほんの少し軽くなりました。
新しく追加したコード(デバイス)にはまだ貯金がありそうです。
4MHz 動作:ほぼ問題なし
8MHz 動作:まだダメ (プロンプトで BEEP が途切れがち)
4MHz 動作+DiskSystem(4MHz):まだダメ (プロンプトで BEEP が途切れがち)
8MHz 動作+DiskSystem(4MHz):論外
j80のメインループは、CPU1命令毎に回しています。
設計の古さや Javaでの実装であることを考えると頑張っていると思います。
80mkII対応前はテキスト1行毎にBUSRQコストを計上していました。
BEEPの再現性に悪影響を与えないギリギリの精度です。
80mkII対応以降は、BUSRQ をマシンサイクル毎にチェックするようにしました。
負荷が心配でしたが、それなりに工夫したのと実行環境が良くなっていたので良しとしました。
その頃から「軽量版」や「遅いマシンのためのパッチ」は整理する方向で版を重ねています。
メンテナンスの負担や設計上の足かせ回避が理由です。
古い仕様に戻せば多少は軽くなる(1割ぐらい?)と思いますが、今のところ専用版を作る予定はありません。
実行速度について (描画)
j80側のピクセル生成処理:ざっくり見て気になった点を微調整しました → 劇的な改善なし
Android側:OpenGL化してみる? → j80側のコードチューニングを優先する予定
CPU, メインループ側のチューニングを優先したいと思います
Android版 実機動画 - Part 2 - (
YouTube
)
←その30へ
PC-8001:j80 に戻る
その32へ→