Windows8 64bitで魔法使いの夜をプレイ

魔法使いの夜というノベルゲーム(詳細はググって)がありますが
Windows8 64bit(のConsumer Preview)では動作しません。
2013/01/14追記:すでに公式で修正パッチが出ています、単純に魔法使いの夜をプレイしたいだけの人は公式のサポートページへGO。

動作しない理由は簡単、不正行為防止用のプロテクトが不正環境だと誤認しているからです。
このページではWindows8 64bitで魔法使いの夜をプレイする方法と、その原理を説明します。

説明とかいいからうごかし方だけ教えろという方向けの完成品。
Win8WOH.zip
使い方はzipの中のversion.dllを魔法使いの夜.exeと同じディレクトリに置く、それだけ。

この記事の目次

なぜWindows8では動かないのか

plugin/魔法使いの夜.tpmがプロテクトなどなどを行っているDLLで
(拡張子がdllじゃないですが、中身は普通のdllです。 KIRIKIRIプラグインなので拡張子がtpmなだけ)
起動時に読み込まれているKernel32.dllが正規のシステムディレクトリ以下に配置されているものかどうかのチェックをしています。

ですが、この確認方法に問題があって
確認用パス取得に使用しているGetModuleFileNameAは
Windows7 64bitであれば%windir%SysWOW64以下と返しますが、Windows8 64bitであれば%windir%System32以下と返します。

魔法使いの夜.tpmは必ずSysWOW64の法のパスを返す前提で動作しているため、Windows8では不正な環境であるとみなされ起動しなくなるのです。

ちなみに、MSDN上ではどちらの挙動になるとも言及されていません。
つまり未規定の動作に頼っていることになるので、あまり行儀のいいこととは言えません。

どうやって動くようにしたのか

動くようにするのは簡単で、GetModuleFileNameAが%windir%SysWOW64以下のパスを返すようになればいいわけです。

起動時に読み込むDLLのダミーをアプリケーションと同じディレクトリに配置して読み込ませ
IATテーブルという外部DLL呼び出しに使う部分のGetModuleFileNameA部分を自作関数へ向くように書き換え
そこでKernel32.dllを対象としているときのみ、SysWOW64以下のパスを返すようにしました。

終わりに

実は魔法使いの夜はexe本体やtpmなどにパッチをあてるとプロテクトに引っかかって起動できなくなります。
今回の目的はプロテクトを解除することではないので、プロテクト対象外のdllのダミーを使うことで実現しています。

dllを署名するなど仕組みが分かっていても破るのが難しいプロテクトを入れるのは素晴らしいのですが
今回のような、MSDNに記述されていない細部の挙動に頼った幼稚なプロテクトはやめていただきたいところ。

ほんと、署名部分は素晴らしいのになぁ。

2013/01/14追記:
いろいろなところからリンクされててびっくりしました。
どうやら魔法使いの夜に限らず、ワムソフト版と呼ばれる吉里吉里エンジンを使用したゲーム全般で発生する問題だったようで、
なまじ汎用的に作っちゃったのでどのゲームもこれで動くようになった、ということらしいです。

ワムソフトさんではすでに対応版を出しているらしく、動きの速いところでは公式で修正パッチが出ているそうなので、出ているものはそちらを使いましょう。
それでもだめなら、だめもとで使ってみるといいかも?
動作確認していないのでちゃんと動くかは保証しかねますが。

Windows8 64bitで魔法使いの夜をプレイ” への129件のフィードバック

  1. 主様ありがとうございます、失われた未来を求めて
    ようやくプレイできます!ありがとうございます!

  2. こちらのサイトのおかげで起動できました!
    というか2012年に作られてたんですね!
    それが未だに通用するとは、凄いですね…。
    起動できなかったのはWindows10ですが、Windows8の時と全く同じ方法で起動できました。
    ありがとうございます!

  3. われめて起動できました
    5000円どぶに捨てることなく済みました
    本当にありがとうございました。

  4. windows10で吉里吉里のエラーが出てしまって困ってたのですがおかげさまで起動出来ました。ありがとうございました。

  5. windows10でやってみましたが、起動しました。
    ありがとございます(*- -)(*_ _)ペコリ

  6. windows10で、動きました!めちゃくちゃ有難いです。
    自分で原因分からず、レジストリ調べてみたの出すが、ここに答えがあった

  7. 32bitのゲームを起動したくてネットを彷徨っていたら辿り着きました。圧倒的感謝です!!

  8. なんとかWindows10で起動出来ました、ありがとうございました!!!
    xp互換モード(プロパティ→互換→xp)を忘れずに。

  9. 細かい環境に依存する部分があるのかもしれません?
    自分はversion.dllをコピーしてヴァルプリギス起動しました。

    ありがとうございました!

  10. Windows10吉里吉里エラーで起動できなかったのが起動できるようになりました
    感謝です!

  11. Authentication failed : unrecognized kernel32 module. / NM
    このメッセージに悩み続けて困ってました。
    本当にありがとうございました。

  12. 赤ずきんと迷いの森という作品を同じ方法でwindows10で使用することができました。
    ありがとうございました。

  13. 配布されてるファイルのおかげで、ALcotのゲームがwindows11で動作いたしました。本当に感謝です。

  14. 過去のゲームをプレイしてみようと思いましたが、もう出来ないのかな?と諦めムードでした所、こちらのファイルのお陰で可能に成りました。
    この度は、どうも有難う御座います。

  15. すみっこ 絶対可憐!お嬢様っ にて起動確認。
    ネタ出しのために起動したら・・・。慌てて調べて、助かりました。

  16. Lassの「11eyes-ResonaForma」というゲームが、
    Windows10 64bit で動くようになりました。
    公式サイトも閉鎖して絶望していたところ、こちらのおかげで救われました。
    本当にありがとうございます。

  17. 2023年現在、修正パッチが公開されていたメーカーでも現在は公式サイトが閉鎖しているケースが増えているため、解決方法を検討しているところでした。
    ありがとうございました!

  18. 昔買って放置していたゲームを13年ぶりにやろうとインストールしたが起動しない!
    調べた結果ここにたどり着いて無事にプレイできました!!
    恐らくもうこのコメントを見ることはないと思いますが、それでも最大限の感謝を。

コメントを残す

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