今日は、VC++2005のEE版を導入したので、ソースコードを公開していただいているソフトの最適化版をつくってみました。コンパイラの設定はWin32がコンパイルできるようにPlatformSDKとともに設定してあります。
まずは、最適化版が快適さを生み出すエミュレータのコンパイル。
おっとその前に、cvsntをインストールして、ソースが取り出せるようにしておいて損は無いですね。今回はcvsからソースをとってくるだけだし、これからもとってくるだけでしょうから、環境変数は無視してcvsntをインストールしたフォルダでプロンプトを立ち上げて取ってしまいます。(なんて横着な。。。)
準備ができたところで、ねこープロジェクトさんからNP2の0.82バージョンのソース(2007年3月最新)を、プロンプトから
>cvs -d :pserver:anonymous@retropc.net:/cvs get np2
で、
そのフォルダにNP2フォルダができてソースが手に入ります。
これをそのままVC2005で最適化オプション変えてコンパイル。
SSEを有効にしたり、SSE2を有効にしたり、リンク時のコード生成などを設定して作ってみようかな。
おもむろにビルド!
ワーニング3つとエラーが1つか。。。
年々このコンパイラは危険なソースが通らなくなっているから仕方が無いか。エラー内容とソースを見てみる。
ワーニングは、すぐに分かりました。古い関数は推奨しないから新しいセキュアな関数を使えと。今回はコンパイルできれば大丈夫だから、こっちはとりあえず無視。
エラーは、VC++6では何の問題も無かったキャストが、危険なキャストだから自動的にはやってくれないと。「明示してくれないとキャストしてやんないよ〜と。」まぁ、こっちもちゃんと明示してあげれば解決なのね。
win32sub.cppのWideCharToMultiByteの3つめのパラメータ部分にある計算時のキャストですね。明示的にキャストせよとソースを修正しました。
>>reinterpret_cast
(pRes) + dwPos
そしたら、コンパイルも通って、無事動きました。

VC++2005EEでの最適化、SSE拡張、浮動小数点FASTで作ってみました。エミュレータはタイマウェイトがきちんとかけられているので、挙動がおかしくなったりすること無く、既存の実行ファイルと比べてCPU負荷率が低くなり、FPSが上がっています。ちょっとうれしい。あとで、SSE2版も作って比べてみよう。
そうそう、CPUのクロック部分が32倍までしか設定できないのが、どこで制限しているかちょっとソース読んでみます。こっちが目的だったりする。。。次回だな。眠いし。

0