カテゴリー別アーカイブ: WindowModePatch

WindowModePatch 0.70 Alphaを公開

WindowModePatchの更新情報です。0.69Alphaは欠番ではなく更新してもしそのまま何も書かないとどうなるのか?を実験してみたのですが対して変わらなかったので0.70Alphaでは更新情報を記事にします。

 

0.69Alphaは入力系の更新

念のためにスタブとしてDirectInputに関する入力変換は実装していたのですがいろいろと調べてみるとなんとなくこれが理由のような事象があったのでDirectInputも対象にして処理するようになっています。おそらくそれほど問題にはならない更新だと思います。バリバリにDirectXを使うようなゲームなら影響がある可能性はあるかもしれませんがこちらはADVゲームがメインですのでDirectInputをまともに使っている物は余り見ませんので。

 

0.70Alphaは初期ウィンドウサイズに関する更新

通常は自動的に内部からウィンドウサイズ変更命令を行ってサイズ調整をするのですがなぜかサイズ調整の部分だけ無視するプログラムもあるようで。いろいろと調べたのですがなぜサイズ調整のルーチンが無視されているのかがさっぱりわからず、仕方がないので初期ウィンドウのサイズを直接設定できるように変更してみました。こちらは通常この機能を使う必要は全くありません。さらにいうなら自動認識でうまくいっている状態ならなおさら使う必要はないと思います。あるとするならウィンドウ検知に失敗するために描画サイズの固定を行っていてかつ外側のウィンドウサイズだけなぜか変更されない、こういう状態だけで有効です。また、設定は設定ファイルからのみ変更可能ですのでもしそんなゲームを対象にしたいのであればこの機能を使うとうまくいく「かもしれない」というものです。どうしてもこの手の記述って多くなってしまいますよね・・・

 

やっぱりまともに更新する暇がない

というのが現状ですか。0.70Alphaにかんしても調べて実装するまでは実効一日で終わってしまいましたし。単に思いついた後準備に手間取ったり都合がつかなくなってほったらかしになってしまったが故にTwitterに更新開始を書いてから今までかかってしまったわけですし。そうなると本当にコード公開やら何かを考えないと(これが宝かどうかは別として)宝の持ち腐れのようになるのかもしれませんね。

 

WindowModePatchのページに英語版を追加してみた

でも書いている記事は日本語な訳ですが…。

 

日本語ができない人の訪問が増えたようなので英訳してみた

頑張ってみました…といいたいところですがこちらも簡易です。やり方は簡単で適当な長さで区切った日本語の文を翻訳サイトで一度英語に訳した後再度自分が日本語に翻訳したときにある程度正しいか?をチェックして正しいならばそのまま、間違っているならば自分の知識内で修正を行って翻訳サイトにて再度日本語に翻訳して文法的な誤りがないかをチェックする、という手順で行っています。この頃のGoogle翻訳などの翻訳サイトは本当に質が向上しているので致命的な誤りが出ることがほとんどない状態となってきました。逆に言うなら翻訳結果が微妙となった場合であれば自分の日本語表現を多少変えてやることでそれなりの英文が出てくる、ということでもあります。

もちろん、この方法を使うためにはある程度自分に英語から日本語への翻訳ができる、という条件が必要です。一応英語の技術文書であればMSDNなどのプログラムのヘルプで読み込んでいるので単語の意味が調べられるのであれば問題ないレベルにはなっています。もちろんこの力がないと翻訳サイトを二回使う、という状態となりチェックが微妙になるのでは?と思います。さすがに二回の翻訳を行うと原文と離れた文となることも多くなるのでその辺はうまくやりましょう。

 

WindowModePatchで別方向の進展がありそうな感じ

忙しい合間を縫って動いています。まあ、これのために英語版のサイトを作ってみたというのが実情だったりします。一応ゲームの対象は日本語だけではないですし、WindowModePatchのフロントエンド側には日本語版のWindows以外で起動した場合には英語でメニューなどを表示するように仕掛けがしてあるのでいろいろな人と協力してやっていくのにはこういうことが必要になるのでしょうね。あとはトップページとか更新履歴なんかも英語になればもっといろいろな人に広がるなど情報が得られるのではないか?とも考えています。

また、Twitterやニコニコ動画などからのリンクがあったりといくつか確認している限りではWindowModePatchはある程度役には立っているようですのでうれしいです。こちらの方向も進展していくと面白いと考えています。忙しいので更新は難しいかもしれませんが動作情報などは受け付けていますので。

 

WindowModePatch 0.68 Alphaを公開

実はこの記事を書く時点で公開してからすでに一週間経過していたりするのですがそれはおいておきましょう。前回の更新から半年前後経過していて忘れ去られていたのかといえばさにあらず。いまだけ時間を作ることができる状態だったことと気になったプログラムが残ったままになっていたので自分でサンプルを作って仮想マシン上で動作をテストすることで修正点を見いだすというマッチポンプではないけれども似ているようなことを二週間前くらいから行って更新にこぎ着けました。

 

主な更新は二つ

基本的には以下になります。

  • DirectDrawをDirect3Dでエミュレーションを行う場合に8bitパレット処理における互換性の向上
  • パッチ対象の拡張子がexe,dll以外である場合に処理が行うことが非常に困難であったので修正

サンプルプログラムを作ってテストしていたのは前者で特に文字列描画で文字色が本来白色にならなければならない場合での互換性が向上しているはずです。検証プログラムを詳細に書いてみて初めてわかる仕様というのもあるのですね…。後者は特に外部モジュールを読み込んで動作するタイプの場合に本体に非推奨の完全パッチ処理を行いライブラリのロード時に強制的にWindowModePatchを読み込ませるか外部モジュールそのものにパッチ処理を行うか…という選択肢で外部モジュールの拡張子がdllではなかった場合にリネームしないとパッチ処理ができないのが面倒ということで処理を変えました。元々パッチ処理では対象が実行ファイル系かどうかの判別が入っているので問題はないのですが、実際にそういうことが必要になるゲームに出会うとさすがに変えたくなるということだったりします。

 

付け加えようとしていた機能はなんだろう?

機能の追加については数ヶ月前に思い立ったことなのでどうしようとしたか今の自分には理解できない…じゃなくて。おそらく途中で解像度を切り替える機能とかのはずなのですが機能が中途半端に実装されているので今回の更新では対象としていません。というか数ヶ月前の私は最終的にどの形にして実装をするつもりだったのか、について今の私にはわからない、という状態だったり。おそらくは対象のゲームと関係のないキーの組み合わせを入れると別のダイアログが表示されて画面の解像度をリストから選ぶか入力するか、という感じだと思うのですが…。まあ、余裕があれば適当に実装してみたいと考えてはいます。

 

自分一人での更新も難しくなってくるのかな

フリープログラマというのも自分で宣伝できなかったり仕事を受ける人脈がない場合はフリーターより悪い状況と見えるので真面目に職に就こうかと思い活動しています。そうするとこのWindowModePatchのメンテナンスも全くできなくなる、ということになる予感がしておりもったいないような気がしているのでいろいろと方策を考えています。信頼できるほかの人にソースコードを更新できる権限を持ってもらって対応できるゲームを増やしていったり情報を集めたり、などですね。

なお、WindowModePatchに関するWikiもこのサーバー内に設置してあり、容量制限もつけたのでデザインが整ったら…と思っていたのですが使っているWiki(MediaWiki)が昔に記事を書いたときから見るとかなり更新されてしまったためにどうしても情報を書くときに使おうと思っているWikipediaのテンプレートであるInfoboxが正常に取り込めないという問題にはまっていて抜け出せないのですね。はてさてどうするのがよいのでしょうか…。

 

WindowModePatch 0.67 Alphaを公開

久しぶりの更新です。といっても新たにプログラムに対応した、というわけではありません。ちょっとした機能の更新が目的です。(It is update after a long absence. The games that supported did not increase. The purpose is update of the slight function.)

ちなみにほんの一部だけ英語のものも載せてありますがこれにもちょっとした意味があります。が、その理由については書きませんのであしからず。

 

ベースDLLの変更が主な目的

Twitterや一つ前の記事でも書きましたがベースとしていたDLLをWinXP準拠からWin7準拠に変更しました。これがやりたかったことだったのですが、変更している最中に「古いゲームをサポートするのであればベースDLLはWinXP準拠としている方が正しいのでは?」という疑問が浮かんだわけですが、とりあえずいつでも戻せるようにコードのバックアップだけは取った上で必要な部分を修正して対応を行いました。これを行うことで元々問題はなかったと思うのですがWin10でも問題なく動くことを確認できる状態となりました。その代わりにWinXPやWinVistaといったMicrosoftからのサポートが終了した、あるいは終了する直前のOSについてはこのバージョン以降は対象外とさせてください。一応過去バージョンとしてしばらくは公開対象としておきますので。

 

マウスカーソルのクリップオプションを追加

掲示板にあった「古いゲームでマウスカーソルのクリップをしているゲームでクリップ処理に対応する」ことを目的としたオプションを追加しました。はじめにこのバージョンを作ったときにはパッチ処理を行うプログラムに組み込んで設定できるようにしたのですが使う頻度が低いことなどからテキストを直接編集して設定する形のみにしました。項目名などについてはreadmeを読んでください。なお、「マウスカーソルのクリップ処理を強制する」オプションではないのでご注意を。ゲーム上で設定されていたのにWindowModePatchになり無効化していた機能に対して無効化を解除する、という効果になります。

 

対応するゲームを増やすのはこれからかな

そのあたりは今後のバージョンアップ次第ということでお願いします。Steamのゲームに関しては調べるだけ調べてはみる予定です。今現在は一つも確認していませんが・・・。ただ、ランタイムの共有といった問題がありそうでRPGツクール系統と同様におそらく無理っぽそう、という感じがしています。その他外国製のゲームについては情報が少ないうえにソフトが手に入りづらいので確認等に手間取っているのが現状ですね。(Furthermore, it takes me time to do with confirmation about the game made in a foreign country. It originates in that it is hard to obtain information to be necessary to improve it.)

 

というわけで

自作のプログラムでWin10への対応や修正などを行いつつ手を広げていければな~という所ですね。時間的余裕がどのくらいあるかよくわからない状態ではありますが頑張っていきますのでよろしくお願いします。

WindowModePatch 0.65 Alphaを公開

今見てみると前に更新したのが10ヶ月も前なんですね・・・。びっくりです。ま、それはそれとして掲示板にあった要望も少し踏まえて更新をしてみました。あと、先に書いておきますがWIn10は未だにインストールしていないため動作確認をしていません。こちら側で動作確認ができた段階でもう一度(機能更新がなくても)バージョンアップをする予定です。

 

MIDI系の扱いについてはちょっと考え物だな、と思う人

MIDIデバイス指定については0.62Alphaで更新したのですが今回は対応させる処理を追加したものとなっています。一応分かる人のためだけに書いておくと今回はMCIを使った処理に対象を拡張したものになっています。おかげで簡易的に文字列処理を組み込む羽目になったり今となっては検索しても資料がほとんど出ることがないものを対象に処理を組むことになり動作検証プログラムについてもそのような動作をしているプログラムが分からなかったので自前でテストプログラムを作成して動作をチェックしています。そのため、本当にこの修正でうまくいくのかどうか?といわれると自分が思っている動作であればうまくいくはず、としか回答ができない状態だったりします。

また、Win8以降MIDIデバイスの扱いが悪くなったことは書いたと思いますがどうやらWin10でも継続されているようですね・・・。MU2000のドライバはちゃんとWin10対応しているのである意味安心なのですが・・・。やっぱりMIDIは忘れられていくのでしょうかね。一応無料でMIDIをOS標準のものよりよい音を出せるようなソフトウェアドライバがあるようなのはましだとは思います。

 

コメント入力欄がずれるのが気になった

もう一つの修正ポイントがこれです。基本的にゲーム画面を想定しているので上からテキストの入力ボックスなどが作成される事を想定していなかったのがまずかったです。一応対応処理は組み込みましたので位置はましになったのですがさすがに入力される文字のフォントやサイズまでは監視していないので縮小方向で使うと文字がつぶれて読めなくなっていたり拡大方向でも妙な余白が空いてしまうので気になる人は気になるかも知れません。そのあたりはご容赦を。

 

直接起動処理については改良が難しい

一応表記が良くない点については微妙な直しを行いましたが動作そのものは変えていません。また、設定ファイルの分割についてはWindowModePatchを使う上ではファイル名はどうしても固定になってしまうので選択ができないんですよね・・・。というより設定ファイル名が何かを伝える手段がない、といった方が良いでしょうか。加えていくつかテクニックを使った処理のためパッチを当てて処理をさせるタイプに比べてうまく行かないパターンが多い、というものありますし・・・。説明がわかりにくいのはwikiでも作れば解決できるような気がしますがとある都合からwikiページを公開できる状態にない、というのも要因だったりします。・・・なんか言い訳っぽくなってしまいました。

 

次はMovieLayerPlayerが更新対象かな?

こちらについては改良点は明快に「フルスクリーン切り替えを実装すること」なんですが、まず切り替え処理のための実装が必要でその後に「切り替えた後の解像度(レターボックス処理)の設定やシークバーなどGUIの表示はどうするのか?」についてまだ検討段階のため実装できていなかったり。今は暇なのか忙しいのか自分でもよく分からない期間ですのでおもいついた段階でいろいろとやっていきます。