読者です 読者をやめる 読者になる 読者になる

気まま研究所ブログ

思ったことをてきとーに書きます。

マビノギを手動でバックアップとリストアする

f:id:AonaSuzutsuki:20161002124756p:plain

こんにちは。
だいぶ前にマビノギのバックアップとリストアをするアプリケーションを作って、その際に適当にまとめた記事を作ったんですが、我ながら意味不明だったんでここで再度まとめます。
需要があるかどうかは知らないけど誰かがいい感じに使ってくれると信じてる。



前提知識

  1. レジストリの知識
  2. Windowsの知識(基礎知識+技術的な部分)

これらの知識はある前提で話進めます。
なくてもできないことはないけどどうなっても知らないよ!


起動の仕組みとバックアップ・リストア

まず、どうやってブラウザから起動しているのかを見てみましょう。
以前はランチャーを立ち上げて、そこから起動させてたんで比較的予想は容易だったんですが、起動方式が変わってからはどうやってランチャーを見つけてるのか疑問で仕方がなかったです。 そこで、よく見てみるとインストール後に初めて起動するようになってますね。
ここでピンと来た人は鋭いです。
レジストリですね。 実は、マビノギはブラウザからスタートする時、レジストリを参照してランチャーの場所を把握しています。

64bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Nexon\Mabinogi
32bit: HKEY_LOCAL_MACHINE\SOFTWARE\Nexon\Mabinogi

上がそのレジストリの場所なんですが、ここをよーく見てみるとExecutableの値が何やらファイルパスになってますよね。
これがランチャーの場所です。
マビノギはここにあるExecutableのデータを読み込んでクライアントの位置を把握しているんですね。

さあそれがわかればあとは簡単、この値を書き換えるかもしくは追加してしまえば移動ができちゃいます。
簡単ですね。

ちなみに最近リリースされたToSも同じ仕様でした。
英雄伝はインストールされてる時に確認してないので未確認です。(多分一緒)


キーボード設定ファイルの仕組み

さて、起動の仕組みが解明しましたね。
次に、設定ファイルを解読してみましょう。 通常設定はアプリケーション内部で行うことができ、外ではできません。
しかし、必ず設定を保存しておかなくては毎回リセットされてしまうことになります。
じゃあそれはどこにあるんだ、ってことですね。

答えを言うと、「C:\Users{UserName}\Documents\マビノギ\設定」にあります。
そこを眺めると、custom.keyboardcustom.alarmというファイルがあると思います。
これらが名前の通り、キーボードの設定とアラームの設定が格納されています。
※ごめんなさい、アラームは解析してないので省きます(デコード・エンコード方法は一緒) では、custom.keyboardを開けてみましょう。
f:id:AonaSuzutsuki:20161002010335p:plain なんだこの文字列・・・、意味不明だ・・・。
というように、見てくれはかなり尖っていますが、よーく見ると見覚えのある文字列だと思った人が多いと思います。
それもそのはずで、これはBase-64でエンコードされているんです。
試しにBase-64でデコードしてみてください。
するとなにやら読めそうな文字列が出てきましたね。
そうです、実はXML形式で記述されていたんです。

XMLで記述されていることがわかればあとは書き換えるだけ!
ですが、中身はマビノギ独自仕様のなかなかめんどくさい仕様です。
そこで、少し解析してみたのでその結果を以下に示します。

まずhotkeyタグのnameプロパティ、これは各動作のIDを表します。
例えば、KeyMoveForwardだと前に進む時のキーがここにあることがわかります。 そしてaddonプロパティ、これはShiftなどの特殊キーを表します。
Shiftがあれば1が入っており、Ctrlキーがあれば2Altキーがあれば4が入力されています。
次にkeyプロパティ、これはキーのIDを表します。
これがなかなか厄介で、マビノギ独自仕様のキーコードを用いているのでそれに沿って書き換えなくてはいけません。
以下にキーコード表を置いておきます。
元の記事はめんどくさかったので載せてませんでした・・・。

キー ID
なし 0
ESC 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
0 11
- 12
= 13
BackSpace 14
Tab 15
Q 16
W 17
E 18
R 19
T 20
Y 21
U 22
I 23
O 24
P 25
[ 26
] 27
Enter 28
左Ctrl 29
A 30
S 31
D 32
F 33
G 34
H 35
J 36
K 37
L 38
; 39
: 40
` 41
左Shift 42
Z 43
X 44
C 45
V 46
B 47
N 48
M 49
, 50
. 51
/ 52
右Shift 53
* 54
左Alt 55
Space 56
Caps Lock 57
F1 58
F2 59
F3 60
F4 61
F5 62
F6 63
F7 64
F8 65
F9 66
F10 67
Num Lock 68
Scroll Lock 69
Num 7 70
Num 8 71
Num - 72
Num 4 74
Num 5 75
Num 6 76
Num + 77
Num 1 78
Num 2 79
Num 3 80
Num 0 81
Num Del 82
F11 83
Num 12 87
右Ctrl 88
Prt Sc 157
右Alt 183
Pause Break 184
Home 197
199
200
203
End 205
207
Insert 208
Delete 210
Windows 211
右クリックメニュー 219


マビノギの設定の在り処

上の項にてマビノギのキーボードの設定を確認しましたが、本体の設定がドキュメントにはありませんでした。
じゃあどこにあるんだ、ってところですが、実はこれもレジストリにあります。

HKEY_CURRENT_USER\Software\Nexon\Mabinogi

これは32bitと64bit共に同じ場所にあります。
ここを眺めてみるといろいろと設定があるんですが、量が量だけに場所だけに詳細は抜きで置いておきます。
ちなみにですが、ここの値を変えるとゲーム内でも変更されます。


これらを踏まえたバックアップ

よし、全部解読できたっぽいのでここで本題のバックアップを行っていきます。

まず、マビノギのクライアントを外付けHDDなどの適当な場所にコピーまたは切り取りします。
念のため以下のレジストリも一緒に出力しておきましょう。

64bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Nexon\Mabinogi
32bit: HKEY_LOCAL_MACHINE\SOFTWARE\Nexon\Mabinogi

これでクライアントのバックアップは終了です。

次に、キーボードなどの設定を保存します。
これも「C:\Users{UserName}\Documents\マビノギ」をそのまま外付けHDDなどの適当な場所にコピーまたは切り取りします。
これで設定などのバックアップが完了です。

最後に、ゲーム設定を保存します。

HKEY_CURRENT_USER\Software\Nexon\Mabinogi

このレジストリを出力すればバックアップ完了です。

これでバックアップ終了ですね。 とっても簡単!


これらを踏まえたリストア

OSもリカバリーできたしマビノギ戻すか!でも、どうすればいいんだ・・・
というわけでリストアしていきましょう。

まず、クライアントを任意の場所に移動させます。
※前回と同じ場所のほうが手順が簡易です。
次に、レジストリを追加します。
前回と同じ場所でかつ事前に準備しておいたレジストリファイルがあればそれを追加するだけですが、無い場合や別の場所に移してしまった場合は以下のレジストリファイルを参考にしてください。

・64bit.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Nexon\Mabinogi]
"RootPath"="C:\\Nexon\\Mabinogi"
"Executable"="C:\\Nexon\\Mabinogi\\Mabinogi.exe"
"Icon"="C:\\Nexon\\Mabinogi\\Mabinogi.exe,0"

・32bit.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Nexon\Mabinogi]
"RootPath"="C:\\Nexon\\Mabinogi"
"Executable"="C:\\Nexon\\Mabinogi\\Mabinogi.exe"
"Icon"="C:\\Nexon\\Mabinogi\\Mabinogi.exe,0"

続いて、保存しておいたキーボードなどの設定を元に戻します。
これは戻すだけでOKです。

最後にゲームの設定を戻しましょう。
事前に保存しておいた設定のレジストリファイルからレジストリに追加してください。

以上でリストア完了です。


おわりに

初めに長々とややこしいこと書きましたが、細かく弄る場合以外これだけでできてしまうんですよね。
毎回ダウンロードからのインストールして設定またしてってめんどうだったので上の方法を考案しました。
今では配信してませんが、Mabinogi Backuperでもこの手法を採用していたので間違いないと思います。

グッドラック!

元の記事 : マビノギの仕組み(上級者向け)