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. ダメです。
    本パッチは吉里吉里のワムソフト版の特定バージョンにだけ存在するバグを直すだけであり、いかなるゲームもWindows8で動かせるようにするものではありません。
    なので、別の方法をお探しください。

  2. Windows7 – Windows10移行で発生した問題に適用できました。
    ありがとうございます。

  3. 諦めかけていたAQUAが起動いたしました。
    本当にありがとうございます。

  4. Windows10で起動させることができました!本当にありがとうございました!

  5. WIN10で失われた未来を求めてを動かすことができました!

    本当にありがとうございます!

  6. STEINS;GATE 変移空間のオクテットがWindows10で一度だけ起動できました。
    終了の際にエラーが発生し、次からはまた以前と同じエラーが発生して起動できなくなりました。
    再度インストールし直すとまた一度だけ起動できます。
    残念です。

  7. 自分も「失われた未来を求めて」win10で動かすこと出来ました。
    ありがとうございましたm(_ _)m

  8. 失われた未来を求めて、起動できました!ありがとうございました!

  9. 部室のPCにあった天神乱漫のデータ、これで起動することができました

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

  10. Win10で無事「失われた未来を求めて」起動できました!!ありがとうございました!!

  11. ありがとうございました!説明も非常に参考になりました。自分では出来そうにありませんが^^

  12. 久々に11eyes -Resona Forma-を遊ぼうと思って起動したらエラーが・・・
    検索してこちらに辿り着き、Win10ですが無事に解決しました!

    ありがとうございました

  13. Windows10なんですが、元々SysWOWになっていて変えようにも変えれません
    その場合どうすればよろしいでしょうか?
    パソコン自体触ったのが少ない時間なのであまりわからないです

  14. >使い方はzipの中のversion.dllを魔法使いの夜.exeと同じディレクトリに置く、それだけ。
    これが使い方です。
    SysWOW64ディレクトリなどを触る必要はありません、それらはあくまで仕組みの説明となります。

  15. 同じファイルに置いたんですが、開けずにファイル破損チェックで魔法使いの夜が破損になってます
    exeがないんで、tpmでしています
    どうしたら開けれるんですが?

  16. メルクリアがwindows8.1で起動できるようになりました
    PC購入時は8→強制アプデ8.1に。公式パッチだと8.1では起動できない。
    ずっと諦めてたのですがversion.dllを置くだけで8.1でも起動できました
    ありがとうございます

  17. Win10で斬死刃留の起動できてたのですが最近のアプデでまたこれが出るようになってしまいました。

  18. win10で起動しても画面は暗いままですぐ落ちてしまいます
    何か対処法はないでしょうか?

  19. 本当にファイルを置くだけで出来ました。本当にありがとうございます!!

  20. 魔法使いの夜、こちらのファイルを利用して無事Win8、64bitで起動できました。
    Type-moonのサイトを覗いても中々解決せず四苦八苦していたので非常に助かりました。ありがとうございます。

  21. インストールフォルダに入れただけで起動できました。ありがとうございます m(_ _)m

  22. STEINS;GATE 変移空間のオクテット、xp互換モードとこちらのパッチで
    無事win10で起動できました。ありがとうございます。

  23. >36
    STEINS;GATE 変位空間のオクテットをプレイしようとして四苦八苦していたところでちょうどみつけて,無事自分も起動できました!ありがとうございます

  24. こちらのパッチを入れてもエラーが出るようになった場合、レジストリエントリが起動を妨害しているので
    プログラムとファイルの検索にregeditと入力してレジストリエディターを起動、左側のHKEY~と出ている部分から
    HKEY_CURRENT_USER→Software→Microsoft→Windows NT→CurrentVersion→AppCompatFlags→Layers
    と順に開いて行きます。最後の>マークのついてないLayersフォルダをクリックします。そうすると、
    右側の部分にエントリが出てくると思うので
    変移空間のオクテットの場合、ドライブ名:\STEINS;GATE・・・と出ている部分を右クリックします。そのあと、削除をクリックします。
    警告が出てきますが無視してください。削除したら、互換設定が解除されているので再度xpモードに設定します。
    こちらのパッチが入っていて、エントリが削除されていれば正常起動します。また「Authentication failed : unrecognized kernel32 module. / NM.」が
    発生した場合は、同じ手順を繰り返してください。長文失礼しました。

  25. 一度エントリを削除しても、一度起動するとまたエントリができてしまうようなので
    ゲーム終了後は必ずレジストリエディターを開いてLayersフォルダをチェック、
    エントリを削除しておいた方がいいかもしれません。

  26. 変位空間のオクテットをプレイしたくてこちらのサイトを拝見したのですが解凍した物をどこに入れれば良いか分かりません…
    宜しければ教えて下さい。

  27. 変位空間のオクテットを始めたくてこのサイトを訪れたのですが、
    解凍した物をオクテットのファイルにそのままぶち込んで
    何故かごみ箱送りになってたsg8bit.exeかなんかを
    元のファイルに戻し、xp互換モードで無事開けましたー。
    中の人さんありがとうございます。

  28. xp互換性モードオクテットのサポートツールで変更するのですかね?
    宜しければ教えて下さい。

  29. 互換性モードについて調べてみたところ解決しました!
    ありがとうございました。

  30. WIN10で変位空間のオクテットが起動できず困ってましたが無事起動できました!有難う!

  31. >28
    斬死刃留たしかにプレイできなくなってますね…
    と思いきや、試しにdllを削除したら起動しました。なんででしょう?

  32. win10環境で、変移空間のオクテットが起動出来なくてここにたどり着きました。
    パッチありがとうございました。

    xp互換モードにして1度起動出来ても、次から起動出来なくなりました。
    >38コメさんを参考に確認したところ、ゲーム終了時にレジストリの値が、
    「~ WINXPSP3」から「$~ IgnoreFreeLibrary WINXPSP3」に上書きされているようでした。

    削除すると互換モード設定も消えてしまい、毎回起動ごとの再設定が面倒だったので
    レジストリの値を戻す(上書きする).regファイルを用意したところ、手間なく起動できるようになりました。
    どなたかの参考になれば。

  33. 起動せず泣きそうになってたけど、ここのversion.dllを置いたらあっさり起動した。
    サイト主様ありがとう。あなたは素晴らしい名医だ。

コメントを残す

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