Cemu




Cemuとは

Cemuは、WiiUのエミュレーターソフトである。
実機から吸い出したゲームファイルを用いて、PC上でWiiUソフトをプレイできる。
フレームレートを気にしないなら、スペックがそこそこのPCでも動作する。
入力デバイスはキーボードおよびゲームコントローラー。

検証で使用する場合の目的は
  • Memory Searcher
  • Modファイルの試作&実験
の2つが主。

執筆者の環境は
  • i7-3610QM
  • RAM 8GB
  • Intel製内臓グラボ
で、スペック不足によるバグは
  • 対戦中のフレームレートは10~40fps
  • キャラモデルの大半が表示されない
  • キャラ選択画面のアイコンが全て上下さかさま
といった具合である。検証に致命的なバグは無い。


準備

Cemu Webページ

http://cemu.info/
同ページからCemuをDL。執筆時の最新版は1.11.2だが、執筆者の環境では1.10.0が最も高いフレームレートで動作する。最新版が不安定な場合は↓のURLの「1.11.2」を以前のリリース番号に置き換え、古いバージョンをDLして試してみるとよい。
http://cemu.info/releases/cemu_1.11.2.zip

ゲームファイル

DDDで吸い出したゲームファイル一式
手順は真・解析の手引きを参照。

Uwizardでダウンロードしたパッチファイル
パッチを適用したい場合。やはり真・解析の手引きを参照。

セーブデータ(隠しキャラ開放)
WiiUでのセーブデータを引き継ぐことが可能。吸い出したフォルダの"save"以下にある 80000012,common の2フォルダを、
\mlc01\usr\save\00050000\10110e00\user\
内に配置する。上記のディレクトリはCemuを一度起動すると自動生成されるので、とりあえず一旦起動してからコピーするとよい。以降Cemuでゲームを遊ぶたび、同フォルダにデータがオートセーブされていく。
自分のデータに不満がある場合、海外配布のセーブデータを使うこともできる。フォルダ名が適切に設定されていれば、リージョンが異なるセーブデータでも問題なく読み込める。
URL:https://gbatemp.net/threads/wii-u-save-files-compilation.427761/

DLC開放
+導入したいがどうしても上手く行かない人へ
キーワードは「WiiU USB Helper」。結構危なっかしい内容のため、導入の詳細は伏せておく。利用は自己責任とさせていただきたい。*1


その他

Shader Cache
CemuはShader Cache機能に対応している。Shader Chache機能とは、ゲームプレイ中にグラフィックのキャッシュを保存しておき、描画を軽快にする機能である。ゲームを遊ぶほどにキャッシュが多く溜まって軽くなるという仕組みであり、既に十分な量を溜めた有志がキャッシュファイルを配布してくれている。
https://www.reddit.com/r/CEMUcaches/comments/7bv7el/complete_shader_cache_collection_1110c_v2/
Cemu>shaderCache フォルダ内のファイルを↑に置き換える。Cemu起動時にキャッシュを読み込むバーが表示されるが、その数字が大きくなっていれば導入成功。執筆者の環境では実感できるほどの効果は得られていないが…


起動・設定

起動

Cemu.exe起動 → loadで、 code>cross_f.rpx ファイルを選択。

アップデートファイルの適用

Cemuメニュー File > Install Updates or DLC
からインストールするバージョン/DLCの meta>meta.xml を指定すると、
ファイルが Cemu>mlc01 フォルダ内にコピーされてインストール完了となる。
環境とパッチ次第でそこそこの時間がかかる。

mlc01

セーブデータ アップデートパッチ はフォルダ"mlc01"内のものが読み込まれる。
  • セーブデータ:\mlc01\usr\save\00050000\10110e00\user\80000012,common
  • パッチ:\mlc01\usr\title\00050000\10110E00\code,content,meta
    • タイトルコード等の文字列はjp/us/er版で値が異なるので、必要に応じて読み替えること。
Sm4shExplorerでビルドしたModファイルを動かす場合、上記フォルダのcontent>patchを書き換える。


検証

Memory Searcher

Cemuの目玉とも言える機能。
ゲームのメモリ上の数値を検索し、リアルタイムで更新 するツール。
移動速度や座標、小数点以下のダメージを表示するのに重宝する。工夫次第で他にも色々な検証ができるはず。
といっても実用的な機能は
  • 数値を入力してメモリ上を検索
  • 一度検索された変数群から再検索して絞り込む(フィルター)
の2種類のみ。
したがって、 ある値を取ることが知られているパラメータの変化を追いかける という程度の利用方法しか無い。時間設定"L入力時1/4"の一時停止、および 2Fスキップ法 を駆使してメモリをチェックしていく。

先に書いておくが、
浮動小数点誤差やアニメーションの都合などにより、数値が少しずれることがある
ことに留意。

以下ではピットの横移動速度を検索&特定してMemory Searcher上に表示するまでの過程を例に説明する。


① ピットで前ジャンプを入力し、空中で一時停止。
ピットの空中横移動は0.89、かつ今は左に移動しているため、この瞬間のピットの速度は「-0.89」のはず。
「-0.89」をMemory Searcherで検索する。


② 検索結果。速度の候補が複数出てくる。
「-0.89」ですら12個も候補があることから分かるように、「0」や「1」などキリの良い数値で検索しても全く絞り込めない。


③ 着地して移動が止まってから、数値「0」で再検索しフィルターを掛ける。
この瞬間の速度は「0」なので、先ほどの候補から速度がほぼ確実に絞り込まれる。
ここでは2つ候補があるが、これ以外の挙動(④など)を見ると0x12fb43a0の方が移動速度と分かる。


④ 実際の様子。
走行中の速度が表示されている。ピットのデータ上の走行速度は1.66215だが、アニメーションの関係で少しだけ上下に振れた値が表示される。



④で示したように走行速度はデータと完全に同じ値を取るとは限らないので、検索・特定には空中横移動速度を使うと良い。それでも上手く行かない場合(空中横移動 = 1.0のキャラなど)は、空中抵抗による速度変化などで上手くフィルターをかける。

上下移動速度は「通常落下速度で検索*2→急降下速度で絞り込み」とすると良い。

また ゲームウォッチとドクターマリオ は①~③の手法では全く絞り込めないので、キャラの座標から速度を割り出す。
座標も速度と同様の手法で検索が可能。
Smash Forgeで対戦開始時のキャラの初期位置(Spawn Position)を調べ、キャラを操作してフィルターをかければよい。


Modファイル読み込み

ビルドしたModファイルを
\mlc01\usr\title\00050000\10110E00\content\patch
に配置する。

メモリ検索と併用できるのと、クラッシュしうる設定を気軽に実験できるのが強み。
ただしpatchフォルダを直接書き換える手間と、 バックアップを取っておかないと通常の設定に戻せなくなる のが難点。


Cemu wiki(英語)



コメント

名前:
コメント: