以前、2021年頃に Delphi で MZ-80K のエミュを開発してみましたが、少し中途半端なところがあったので、数年ぶりにプロジェクトファイルを開いて、ソースを久しぶりに眺めてみました。
当時は、Delphi 10.4.1 で開発したのですが、今は Delphi 12.3 ( 2025/5/31現在 ) になっているので、少し手直し。
そういえば Delphi 12.3 は Skia4Delphi が標準で組み込まれたという話だったねということで、少し調べて画面描画部分を全体的に Skia に対応させて、描画速度の向上を図りました。
少し躓いたのは、少し前のバージョンでは Skia4Delphi のプラグインをインストールしたのですが、Delphi 12.3 では標準で組み込まれているというところ。uses に追加するライブラリ名が違うので、ややこしい。

上記が正しい宣言ですが、前のバージョンでは、 SKia.FMX だったりしますし、ライブラリの構成も結構違うということで、少し迷子になりつつ、なんとか Skia 対応しました。

画面右の レジスタ内容の LED表示も Skia で高速描画する方法にしました。以前は大量に TImage を配置して visible を true / false して切り替えていました。visible の切り替えで簡単だろうと安易に考えていたのですが、内部的には画面の重ね合わせ処理などの書き換えが大量に発生していたんですね。メモリの処理もお任せで大丈夫だろうと思っていたのですが、何時間も放っておくとメモリリークが大量に発生した結果エラーになるという感じでした。昔のマイコンが熱暴走しているみたいでリアルだねとか、呑気に考えていたのですが、それじゃダメだねと思い直して、Skia で直接描画に切り替えた次第です。
ついでに、VRAM のメモリに変化があった部分だけ描画を書き換えるというプログラムに書き直しまして、少し高速化を図りました。実際どのくらい高速化したかは不明ですが、性能が悪いPCでテストすればかなり違うでしょう。