8bitパレットのエミュレーションについて

しばらくこの課題に取り組んできたわけですが、どうやら今のところは白旗をあげざるを得ないといった感じです。

どういうことかと言いますと、

  • 画面解像度において色ビット数が16bit以上ある環境ではデバイスコンテキストによるパレットを扱うことができない
  • エミュレーション動作時には描画処理を基本的にデバイスコンテキスト経由で行うしかない
  • メモリデバイスコンテキストを作成できるのはCreateCompatibleDCだけなので、結果としてパレット処理をフルカラー環境でエミュレーションはできない

という感じでしょうか。完全に不可能ではないのですが、そのためには乗っ取りを必要とするルーチンがかなり多くなったりするなど問題が大きすぎると思いました。

後は、自前パレット処理実装(パレットをルックアップしながら色の描画を行う)ですが、今更これを調べるのもなんだかいやなのですが・・・。

ま、今回の処理のおかげでちょっと見えた問題点もあったので、その部分だけ修正を行ったものを公開しようかな~とは思います。

DirectDraw+強制窓処理の互換性をちょっと引き上げただけ、になってしまった感がありますが・・・。(パレット処理ができないという時点で)

だとすると、仮想マシン内で8bit処理をやっているようなVMwareとかってどうしているのかな~?とかなり疑問に思います。

この辺のエミュレーション技術とかも考えて実装してあるのであればそれはそれで見事としか言いようがないですね。

・・・どうでもよくないですが、どうしても今の日本の政治が信用できない状態となっているのが個人的な考えです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

この記事のトラックバック用URL