Cemuとは
Cemuは、WiiUのエミュレーターソフトである。
実機から吸い出したゲームファイルを用いて、PC上でWiiUソフトをプレイできる。
フレームレートを気にしないなら、スペックがそこそこのPCでも動作する。
入力デバイスはキーボードおよびゲームコントローラー。
検証で使用する場合の目的は
- Memory Searcher
- Modファイルの試作&実験
の2つが主。
執筆者の環境は
- i7-3610QM
- RAM 8GB
- Intel製内臓グラボ
で、スペック不足によるバグは
- 対戦中のフレームレートは10~40fps
- キャラモデルの大半が表示されない
- キャラ選択画面のアイコンが全て上下さかさま
といった具合である。検証に致命的なバグは無い。
準備
Cemu Webページ
ゲームファイル
DDDで吸い出したゲームファイル一式
Uwizardでダウンロードしたパッチファイル
セーブデータ(隠しキャラ開放)
WiiUでのセーブデータを引き継ぐことが可能。吸い出したフォルダの"save"以下にある
80000012,common
の2フォルダを、
\mlc01\usr\save\00050000\10110e00\user\
DLC開放
''WiiU USB Helper''というソフトで、開放用のファイルをダウンロードする。データ自体はパッチファイルに含まれているが、ロック解除のためのファイルをこうやって別に用意しなければならない。
このソフトは結構危なっかしいので、念のため導入の詳細は伏せておく。利用は自己責任とさせていただきたい。
その他
Shader Cache
起動・設定
起動
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のキャラなど)は、空中抵抗による速度変化などで上手くフィルターをかける。
上下移動速度は「通常落下速度で検索→急降下速度で絞り込み」とすると良い。
また
ゲームウォッチとドクターマリオ
は①~③の手法では全く絞り込めないので、キャラの座標から速度を割り出す。
座標も速度と同様の手法で検索が可能。
Smash Forgeで対戦開始時のキャラの初期位置(Spawn Position)を調べ、キャラを操作してフィルターをかければよい。
Modファイル読み込み
ビルドしたModファイルを
\mlc01\usr\title\00050000\10110E00\content\patch
に配置する。
メモリ検索と併用できるのと、クラッシュしうる設定を気軽に実験できるのが強み。
ただしpatchフォルダを直接書き換える手間と、
バックアップを取っておかないと通常の設定に戻せなくなる
のが難点。
コメント