CPU Disasm Address Hex dump Command Comments 0085FE4E |. 50 PUSH EAX ; /<%s> => [Arg2] 0085FE4F |. 51 PUSH ECX ; |<%s> => [1B17FF4] = "へ" 0085FE50 |. 68 AC4C0801 PUSH OFFSET 01084CAC ; |Format = "%s %s" 0085FE55 |. 8D5424 18 LEA EDX,[ESP+18] ; | 0085FE59 |. 68 04010000 PUSH 104 ; |Arg2 = 104 0085FE5E |. 52 PUSH EDX ; |Arg1 => OFFSET LOCAL.64 0085FE5F |. E8 3C04BCFF CALL 004202A0 ; \TESV.004202A0PUSH EAXとPUSH ECXの順番を入れ替えるだけの簡単な作業です。
→ 作りました http://skup.dip.jp/up/up04444.7z
へ スカイリムの他に、日本語特有の問題ってあったかなぁ。
セーブファイル名の日本語が空白になるのしか思いつかない。
セーブデータの文字化け対策は、このあたりからコードを辿ればいけそうな気がする
CPU Disasm Address Hex dump Command Comments 00680E10 /$ 81EC 08020000 SUB ESP,208 ; TESV.00680E10(guessed Arg1,Arg2,Arg3) 00680E16 |. 53 PUSH EBX 00680E17 |. 56 PUSH ESI 00680E18 |. 8BF1 MOV ESI,ECX 00680E1A |. 8B0D E4E8B201 MOV ECX,DWORD PTR DS:[1B2E8E4] 00680E20 |. 57 PUSH EDI 00680E21 |. E8 DA3CE5FF CALL 004D4B00 00680E26 |. 8B0D E4E8B201 MOV ECX,DWORD PTR DS:[1B2E8E4] 00680E2C |. 8BF8 MOV EDI,EAX 00680E2E |. E8 3D97E5FF CALL 004DA570 ; [TESV.004DA570 00680E33 |. 8BC8 MOV ECX,EAX 00680E35 |. E8 364DDEFF CALL 00465B70 ; [TESV.00465B70 00680E3A |. 50 PUSH EAX ; /Arg3 00680E3B |. 8D8424 140100 LEA EAX,[ESP+114] ; | 00680E42 |. 68 04010000 PUSH 104 ; |Arg2 = 104 00680E47 |. 50 PUSH EAX ; |Arg1 => OFFSET LOCAL.64 00680E48 |. E8 47158D00 CALL 00F52394 ; \TESV.00F52394 00680E4D |. 8B9C24 280200 MOV EBX,DWORD PTR SS:[ESP+228] 00680E54 |. 83C4 0C ADD ESP,0C 00680E57 |. 53 PUSH EBX ; /Arg2 => [Arg2] 00680E58 |. 8D4C24 10 LEA ECX,[ESP+10] ; | 00680E5C |. 51 PUSH ECX ; |Arg1 => OFFSET LOCAL.129 00680E5D |. 8BCE MOV ECX,ESI ; | 00680E5F |. E8 CCF8FFFF CALL 00680730 ; \TESV.00680730 00680E64 |. 80BC24 200200 CMP BYTE PTR SS:[ESP+220],0 00680E6C |. A1 C896B101 MOV EAX,DWORD PTR DS:[1B196C8] ; UTF-8 "オートセーブ" 00680E71 |. 75 05 JNE SHORT 00680E78 00680E73 |. A1 8C96B101 MOV EAX,DWORD PTR DS:[1B1968C] ; UTF-8 "セーブ" 00680E78 |> 8D5424 0C LEA EDX,[ESP+0C] 00680E7C |. 52 PUSH EDX ; /<%s> => OFFSET LOCAL.129 00680E7D |. 8B56 08 MOV EDX,DWORD PTR DS:[ESI+8] ; | 00680E80 |. 8D8C24 140100 LEA ECX,[ESP+114] ; | 00680E87 |. 51 PUSH ECX ; |<%s> => OFFSET LOCAL.64 00680E88 |. 57 PUSH EDI ; |<%s> 00680E89 |. 8BBC24 240200 MOV EDI,DWORD PTR SS:[ESP+224] ; | 00680E90 |. 52 PUSH EDX ; |<%i> 00680E91 |. 50 PUSH EAX ; |<%s> 00680E92 |. 68 1CCA0C01 PUSH OFFSET 010CCA1C ; |Format = "%s %i - %s, %s, %s" 00680E97 |. 68 04010000 PUSH 104 ; |Arg2 = 104 00680E9C |. 57 PUSH EDI ; |Arg1 => [Arg1] 00680E9D |. E8 FEF3D9FF CALL 004202A0 ; \TESV.004202A0 00680EA2 |. 83C4 20 ADD ESP,20 00680EA5 |. 84DB TEST BL,BL 00680EA7 |. 75 25 JNZ SHORT 00680ECE 00680EA9 |. 8BC7 MOV EAX,EDI 00680EAB |. 8D50 01 LEA EDX,[EAX+1] 00680EAE |. 8BFF MOV EDI,EDI 00680EB0 |> 8A08 /MOV CL,BYTE PTR DS:[EAX] 00680EB2 |. 40 |INC EAX 00680EB3 |. 84C9 |TEST CL,CL 00680EB5 |.^ 75 F9 \JNZ SHORT 00680EB0 00680EB7 |. 2BC2 SUB EAX,EDX 00680EB9 |. 3D FF000000 CMP EAX,0FF 00680EBE |. 76 06 JBE SHORT 00680EC6 00680EC0 |. 888F FF000000 MOV BYTE PTR DS:[EDI+0FF],CL 00680EC6 |> 57 PUSH EDI ; /Arg1 00680EC7 |. 8BCE MOV ECX,ESI ; | 00680EC9 |. E8 A2EDFFFF CALL 0067FC70 ; \TESV.0067FC70 00680ECE |> 5F POP EDI 00680ECF |. 5E POP ESI 00680ED0 |. 5B POP EBX 00680ED1 |. 81C4 08020000 ADD ESP,208 00680ED7 \. C2 0C00 RETN 0C
ダイアログとかのNPC名が変な所で改行されてしまうのは無理ですか?(´・ω・`)
返信削除セーブデータの文字化け対策は期待したいところですが、Pythonの方を弄らなくても直りそうなものなのでしょうか?
返信削除私の所謂「ハイブリット版」は「へ スカイリム」にならず「スカイリム」と表示されています 「TO」を訳していないのでしょうか どっから拾ってきたのかな?
このような小品は大好きなので、期待しています
文字化けを修正するには、メモリ上のTESV.exeのコードを直接修正しないといけないので、Python?やPapyrusで実現するのはかなり困難だと思います。
返信削除「スカイリム」の件は
おそらく、ここの一番下の修正ファイルか、その類のファイルが入っているのだと思います。
http://wiki.skyrim.z49.org/?MOD%2FBugFix#zeb14079
この修正ファイルでは
> "スカイリム" → "スカイリム ヘ"
> "へ" → ""
という具合に、「To Skyrim」の「To」部分を空白にして、「スカイリム」側に「へ」をくっつけることで対応しています。
些細な問題ですが、この方法だと「ヘ」を削ってしまうので、「スカイリム へ」以外の「~~~ へ」は、すべて「へ」が無くなってしまいますね。
わかりました ありがとうございます
返信削除すみません「セーブデータの文字化け」は、Wrye Smash 等で見受けられるcell名のことだと思っていました
なるほど、Wrye Bashだったのですね。
返信削除もしPython版をお使いでしたら、skyrim/Mopy/bash/bosh.py の 2091行目
self.pcLocation = _unicode(cstrip(self.pcLocation),bolt.pluginEncoding,avoidEncodings=('utf8','utf-8'))
これを
self.pcLocation = _unicode(cstrip(self.pcLocation))
こんな感じに書き換えておけば、文字化け回避できると思います。
未明の時間でのご回答、恐縮です
削除見事に、嘘のように文字化けが直りました
(Standalone版でも直ってました)
とても助かりました ご教示ありがとうございます
up04444.7zを適用してもなぜか「Sounds of Skyrim - Civilization」の設定画面で「へ スカイリム」になってしまう。
返信削除ModOrganizerが原因なのか・・・
overwrightフォルダのプラグインに「jp_patch.dll」入ってるんですけどね><
自己解決です。
削除翻訳ファイルが原因・・・
汚してしまい申し訳ありませんでした><
解決して良かったです。
返信削除ついでなので、こちらのファイルは、「へ スカイリム」だけではなく、セーブファイル名の文字化けも修正するバージョンです。
http://skup.dip.jp/up/up08670.7z
ただ、バージョンアップ告知をTwitterでしか行わなかったので、テストしてくれた方が少ないです。
また、セーブファイル名を扱う関係上、バグがあった場合に最悪セーブファイルが消えてしまうかもしれません。
(今のところ問題報告は1つも受けていないので、たぶん大丈夫だとは思います)
もしそれでもよろしければ、こちらも試していただけると嬉しいです。
コメント見ていただきありがとうございます。
削除昨夜グーグルで検索してココを見つけたところ、2013年以降更新がされていない?ようなので既に放置されてるのかとも思いましたが、いろいろ過去の記事を拝見させてもらいましたのでコメントをつけさせていただきました。
セーブファイル名の文字化け修正版ファイルありがとうございます。
Skyrimを初めてまだひと月にもなりませんが、試行錯誤して楽しんでおります。
(とは言え、まだMODのインストールばかりでクエは全然進んでいませんが・・・)
ちなみに HotKeys++ も既に導入させていただいておりました。
ココを訪れて過去の記事を見て初めて作者様のHPだと気付いて驚きました^^;
このたびは有用なファイルまでいただき本当にありがとうございました。
セーブファイル名の文字化け対策でこちらにたどり着きました
返信削除http://wiki.skyrim.z49.org/?MOD%2FBugFix#zeb14079の「ヘ」を表示させないStringsファイルを使用している環境でup08670.7zのファイルを使用するのは問題ないでしょうか?