今回は公開してから時間はほとんどおかずに記事にしています。
Ver 0.30が飛んでいるが・・・
ちょっと作成ミスがありました。といっても、使えないとかそういうことではなく、表面上の名前のミスです。
Ver 0.31はVer 0.30の更新も含んでいますのでダウンロードした人はぜひ最新の物を使ってください。
更新の主題は「8bitパレットエミュレーション」
というのも、いつからかはよく分かりませんが、デバイスコンテキストが8bitパレットをサポートしなくなっていたわけですね。
おそらくWinVista以降からだと思いますが、これのせいで8bitパレットで動いていたゲーム群が色化けを起こしてしまうことになりました。
一応気がついてはいたのですが、直すきっかけが無かったのでしばらく放置しておきましたが、今回この部分を本格的に実装することに。
DirectDrawを使用し、かつ8bitのbmpなどのリソースを使用するプログラムでの対応状態を大幅に改善させました。
内部でパレットのエミュレーションを行っていますので、WinVistaやWin7でも色化けせずに描画できるはずです。
で、副題は「解像度を縮小させたときの動作」
WindowModePatchを作ってからあまり時間がたっていないときに思っていたことですが、(blogにも書いたと思いますが)
「うまく使ったら拡大方向だけではなく縮小方向にも使えるのでは?」
というやつですね。
掲示板でいただいた情報を元にいろいろと推察をたてながら修正を行っていきました。
ただ、どうしても縮小方向の場合は自動で、と言うわけにはいかず動かすには設定を直接書き込む必要があると思います。
特に設定項目で書くならDrawSize、FixedDraw、(新設した)FakeDisplaySizeになりますね。
GDIのリージョン処理とDirectXの描画処理の組み合わせ
どうもこの二つの組み合わせはあまり良くないようで・・・
画面更新時の方法によっては画面が正しく更新されない、と言う状態になるのがちょっと不満だったので直してみました。
似たような記事があると新しい記事にリンクが行くようにしたいが
古い記事でアクセス数がある物はキャッシュが取られている分だけ検索時に上に行きやすいと言う性質があるようでちょっと困っています。
私のような書き方をすると新しい方によりよい情報があるのですが、そちらが検索にかかりづらくなっているという状態が。
さすがにはてなダイアリーに特定の記事だけ検索避け、は無いでしょうしね・・・。