Linuxのwineで「艦これ一覧めいかー改ニ」を動かす

そのままでも動画キャプチャー機能とtwitter連携以外は問題なく動作するはず。

ここでは動画キャプチャーとその音ずれ対策について行った事を書いていく。前者はdllを置換するだけだが、後者はソースに修正を加えてコンパイルするのでwindows環境が必ず必要になる。

個人の環境に大きく依存しそうなので参考程度に。


  • 艦これ一覧めいかー改ニ

    Ver0.12

  • 作業環境

    Arch Linux 64bit

    VMWare上の Windows 10 64bit


動画キャプチャーを使えるようにする

ffmpeg.exeがエラーを吐くのが問題なのでそれの対応をする。



  1. windows環境から下記のdllをコピーしてくる。

    C:\windows\System32\quartz.dll -> ~/.wine/drive_c/windows/system32/quartz.dll
    
    C:\windows\System32\qcap.dll -> ~/.wine/drive_c/windows/system32/qcap.dll
    C:\windows\System32\downlevel\api-ms-win-core-privateprofile-l1-1-0.dll -> ~/.wine/drive_c/windows/system32/api-ms-win-core-privateprofile-l1-1-0.dll



  2. winecfgでdllオーバーライドの設定を行う。

    winecfgを起動し、ライブラリダブでquartz.dllqcap.dllを追加する。




音ずれを修正する

艦これ一覧めいかー改二のソースを修正してHot Soup Processorでコンパイルする。



  1. ソースに差分を適用する

    --- a/src/sub/VideoCapture.hsp
    
    +++ b/src/sub/VideoCapture.hsp
    @@ -192,20 +192,12 @@
    diffTime = 0.0

    if (vStartTime!=0.0 && aStartTime!=0.0){
    - vStartTime = 11644473600.0+vStartTime
    dim FILETIME, 2
    GetSystemTimeAsFileTime varptr(FILETIME)
    - aStartTime = -0.001*timeGetTime() + aStartTime + (4294967295.0*FILETIME(1) + (FILETIME(0)&0x7FFFFFFF) + -2147483648.0*((d(0)&0x80000000)>>31) )/10000000.0
    - diffTime = (aStartTime-vStartTime)/1000
    - //2秒以上ズレずれていたら無かったことにする
    - if ( absf(diffTime)>2.0 ){
    - diffTime = diffTime2
    - }
    - }
    -
    - //2秒以上ズレずれていたら無(ry)
    - if ( absf(diffTime)>2.0 ){
    - diffTime = 0.0
    + mtime = double(timeGetTime()) / 1000.0
    + ftime = double(strf("%u", FILETIME(1))) * 4294967296.0 + double(strf("%u", FILETIME(0)))
    + utime = ftime / (10000.0 * 1000.0) - 11644473600.0
    + diffTime = (vStartTime - (aStartTime + (utime - mtime)))
    }

    logmes "vStartTime :"+vStartTime




  2. HSPのインストールとエディタのUnicode対策

    HSPをインストールする。

    一覧めいかーのソースはutf-8だが、HSPスクリプトエディタは非対応なので……


    1. あらかじめSJISに変換する。

    2. Unicode対応HSP「hsp3utf」を使う。

    3. 自分が知らないだけで楽な解決策がある。

    今回は2の方法で。

    hsp3utf_20170824b.zipをダウンロード・展開。hsed3utf.exehsed3.exeに名前変更してHSPインストール先のファイルを上書きする。




  3. コンパイル

    src/main.hspをHSPスクリプトエディタで開いて、メニュー > HSP > 実行ファイルの自動作成を実行する。文字化けしたファイル濶ヲ縺薙l荳€隕ァ繧√>縺九・謾ケ莠・.exeが生成されるので艦これ一覧めいかー改二.exeに名前変更する。



  4. あとはLinux環境に持っていって実行するだけ