今夜はWINEに乾杯っ!

blogの記事分類に、カテゴリ分けよりもタグ分類が欲しい今日この頃。今回の記事は、Linux(技術系)×おとボク(小説・ゲーム・アニメ系)なので。

ただし、fc2.comのように、他の方々の記事も串刺しにするのはお断り。

というわけで、Linuxでおとボクを動かせたので報告。なお、本報告においては、2chlinux.org(今夜もWineで乾杯! テンプレサイト)、および、Wine上でMicrosoft GS Wavetable SW Synth(MSGS・ゲイツシンセ)の音を鳴らす(WindowsネイティブDirectXのDLLを使用)CommentsAdd Star試験運用中なLinux備忘録)の記述を参考にした。
私が実施した手順と、気をつけるポイントは以下の通り。

(1) Linuxをセットアップする

VMware PlayerQEMU on Windowsをインストール。

仮想マシンの設定は、いつきログの手順に従っているが、該当記事はFreeBSD、こちらはDebian Linuxなので差分注意。

インストールが終わったら、仮想マシンをシャットダウンして、vmxファイルをいじってCD-ROMイメージをアンマウントしておくのがおすすめ。

もっとも、作業スペースがあるなら旧いパソコン1台持ってきてCD-ROMつっこんだ方が楽。

ちなみに、私のホスト名はkaoruko。もう一個たててみたfedoraのホスト名はhatsuneとしてある。

(2) Wineをインストール(rootで実施)

ここでは、Debian GNU/Linux 4.0でネットワークインストールにを実施する場合について記す。

基本的には、Wineの公式ページに書いてある、Debianのインストール手順通りに実施すればよいが、手順が少し異なる。

Open a terminal

su #to log as root

gedit /etc/apt/sources.list #to open repository file with a text editor (you can use gedit or another)

Add this line for Lenny: deb http://www.lamaresh.net/apt lenny main

Add this line for Squeeze: deb http://www.lamaresh.net/apt squeeze main

Add this line for Sid: deb http://www.lamaresh.net/apt sid main

Save and close sources.list

wget -O – http://www.lamaresh.net/apt/key.gpg | apt-key add – #to add gpg key

までは一緒(↑は公式から引用)。wgetの最後のハイフンを忘れないこと。もちろん、geditの代わりに好きなエディタを使って良い(私は慣れているviを使った)。

次からが異なる。公式ではapt-getを使っていたが、いろいろと調べてみると、aptitudeコマンドのほうが望ましそうである。

aptitude upgrade

aptitude install lzma # lzmaのインストール。これを先にやらないとはまる。

aptitude install wine

ここが苦労した点。wineインストールに必要なlzmaが入ってなかったので、手順をミスると、”Wineのインストール終わってないんだから先にやれ”と言われてしまい、lzmaを入れるのに苦労する。

(3) directX9を設定(ユーザーモードで実施。以下全部ユーザーモード)

公式のWikiに紹介されている、winetricksを用いて、directXをインストールする。

winetricks directx9

途中、エラーが大量に吐かれてインストーラが落ちるが、ファイルコピーは正常に終わっていることに注意。

というわけで、インストーラがやりたかったと思われる作業であるところの、directX設定を実施する。

cd ~/.wine/drive_c/windows/system32/

wine dxdiag.exe &

(4) おとボクをインストール

cdromを入れて、VMwareの「デバイス」メニューから、「CD/DVD(IDE)」→「D:¥に接続」として、CD-ROMを認識させる。

cd /cdrom

wine setup.exe &

デスクトップのアイコンは必ず作っておくこと。作らないと設定がめんどい。

(5)おとボクをプレイ

以上の手順をもって、おとボクがプレイできることになった。

動かすだけならば、デスクトップにあるおとボクのアイコンをクリックすればよい。

ただ、デバッグなどの理由で動作ログを取りたい場合は、以下のようにコマンドラインからおとボクを実行する。

cd ~/.wine/Program Files/Caramel-Box/処女はお姉さまに恋してる/

wine otoboku.exe >& log.txt &

コマンドラインからの場合、~/.wine/Program Files/Caramel-Box/処女はお姉さまに恋してる/ にリンクを張っておくと楽。

なお、動作確認のポイントは、初手にオープニングムービーが流れるか否か。いきなりメニューに行く場合、どこか設定が間違えている。

というわけで、今までのWine動作まとめを、WineHQ AppDB風にすると下表のようになる。

Name otoboku DVD edition
Version 1.1 (first release)
License Retail
URL http://www.caramel-box.com/products/otoboku/index.html
Votes 0
Rating Gold
Wine Version 1.1.18
Distribution Debian GNU/Linux 4.0r6
Test date 2009/04/04
Installs? Yes
Runs? Yes
Submitter Takumi Kanno
Description otoboku DVD edition(処女はお姉さまに恋してる DVDフルボイスパッケージ)is Japanese eroge visual novel game created by Caramel-Box.

Selected test results (selected in ‘Test Results’ table below)
What works

  • Installing
  • Playing
    • Reading
    • Watching images
    • Watching ingame movies (* need directx setup; below)
    • Hearing voice
    • Listening music
  • Browsing the Menus

What does not
not found

What was not tested
Still not finished playing the game.

Additional Comments
Rated Gold because we need directx installation and setup to watch ingame movies.

We need to install directx with winetrickers and execute .wine/drive_c/windows/system32/didiag.exe.

When I installed directX with winetrickers, directX installer halted but all modules were installed.

(*)The ingame movies, when they play automatically from start menu.

なお、本記事は技術的には終了したと思われるが、完全なものではない。

動作確認として、「全シナリオ&おまけをクリア」する必要があるためである。

次は「小説・ゲーム・アニメ系」で逢おう(笑)


以下、専門な方々に参考。

参考1:VMware vmx設定

.encoding = “Shift_JIS”

config.version = “8”

virtualHW.version = “3”

memsize = “256”

ide0:0.present = “TRUE”

ide0:0.fileName = “debian.vmdk”

ide1:0.present = “TRUE”

ide1:0.fileName = “debian-40r6-i386-amd64-powerpc-NETINST-1.iso”

ide1:0.deviceType = “cdrom-image”

#ide1:0.fileName = “auto detect”

#ide1:0.deviceType = “cdrom-raw”

floppy0.fileName = “A:”

ethernet0.present = “TRUE”

#ethernet0.connectionType = “nat”

ethernet0.connectionType = “bridged”

usb.present = “TRUE”

sound.present = “TRUE”

sound.virtualDev = “es1371”

displayName = “Debian Linux”

guestOS = “other26xlinux”

nvram = “debian.nvram”

scsi0:0.redo = “”

ethernet0.addressType = “generated”

uuid.location = “56 4d 2d 6b 9c 86 fb 6c-c2 56 3d 9d 52 8e 21 dc”

uuid.bios = “56 4d 2d 6b 9c 86 fb 6c-c2 56 3d 9d 52 8e 21 dc”

ide1:0.autodetect = “TRUE”

ethernet0.generatedAddress = “00:0c:29:8e:21:dc”

ethernet0.generatedAddressOffset = “0”

checkpoint.vmState = “debian.vmss”

tools.remindInstall = “FALSE”

ide0:0.redo = “”

extendedConfigFile = “debian.vmxf”

virtualHW.productCompatibility = “hosted”

tools.upgrade.policy = “manual”

vmotion.checkpointFBSize = “16777216”

ide1:0.startConnected = “FALSE”

tools.syncTime = “FALSE”

debugStub.linuxOffsets = “0x0,0xffffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0”

参考2:directXインストール時のエラーログ

wine: created the configuration directory ‘/home/takumi/.wine’

Could not load Mozilla. HTML rendering will be disabled.

wine: configuration in ‘/home/takumi/.wine’ has been updated.

err:setupapi:do_file_copyW Unsupported style(s) 0x144 # 同じエラーが313回連続する。

fixme:advapi:SetEntriesInAclA 1 0x33f794 (nil) 0x33f7dc

fixme:advapi:SetSecurityInfo stub

fixme:dpnhpast:DllRegisterServer :stub

wine: Unhandled page fault on read access to 0x0000000f at address 0x7e8d0637 (thread 0032), starting debugger…

Unhandled exception: page fault on read access to 0x0000000f in 32-bit code (0x7e8d0637).

Register dump:

CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b

EIP:7e8d0637 ESP:0033f46c EBP:0033f4c4 EFLAGS:00210216( – 00 -RIAP1)

EAX:00000000 EBX:7e91eeac ECX:00000003 EDX:00000003

ESI:010015fc EDI:0033fa8c

Stack dump:

0x0033f46c: 03010000 7ef8b47e 7ef8c78e 00110000

0x0033f47c: 01010020 b7fbdd8c 0033f4c4 b7e99bfa

0x0033f48c: 7e92438c 01010028 0033f524 7ef8b366

0x0033f49c: 00110000 01010020 00137840 7e91eeac

0x0033f4ac: ffffffff 0033fa8c 0033f4c4 7e91eeac

0x0033f4bc: 010015fc 0033fa8c 0033f7f4 7e8d117b

Backtrace:

=>0 0x7e8d0637 in rpcrt4 (+0x10637) (0x0033f4c4)

1 0x7e8d117b NdrDllRegisterProxy+0x92() in rpcrt4 (0x0033f7f4)

2 0x358215aa in msvidctl (+0x215aa) (0x0033f824)

3 0x01003180 in dxdllreg (+0x3180) (0x0033fb94)

4 0x010033f7 in dxdllreg (+0x33f7) (0x0033fdc0)

5 0x01003814 in dxdllreg (+0x3814) (0x0033fee8)

6 0x7ee554ed in kernel32 (+0x654ed) (0x0033ffe8)

7 0xb7e9dcfb wine_switch_to_stack+0x17() in libwine.so.1 (0x00000000)

0x7e8d0637: movzbl 0xf(%eax),%eax

Modules:

Module Address Debug info Name (92 modules)

PE 1000000- 100f000 Export dxdllreg

PE 35800000-35931000 Export msvidctl

ELF 7bf00000-7bf03000 Deferred

ELF 7d5a6000-7d5d9000 Deferred uxtheme

¥-PE 7d5b0000-7d5d9000 ¥ uxtheme

ELF 7d5d9000-7d638000 Deferred shlwapi

¥-PE 7d5f0000-7d638000 ¥ shlwapi

ELF 7d638000-7d719000 Deferred comctl32

¥-PE 7d640000-7d719000 ¥ comctl32

ELF 7d719000-7d745000 Deferred msvfw32

¥-PE 7d720000-7d745000 ¥ msvfw32

ELF 7d745000-7d796000 Deferred dsound

¥-PE 7d750000-7d796000 ¥ dsound

ELF 7d796000-7d811000 Deferred quartz

¥-PE 7d7a0000-7d811000 ¥ quartz

ELF 7d811000-7d826000 Deferred midimap

¥-PE 7d820000-7d826000 ¥ midimap

ELF 7d826000-7d84d000 Deferred msacm32

¥-PE 7d830000-7d84d000 ¥ msacm32

ELF 7d84d000-7d866000 Deferred msacm32

¥-PE 7d850000-7d866000 ¥ msacm32

ELF 7d866000-7d927000 Deferred libasound.so.2

ELF 7d927000-7d965000 Deferred winealsa

¥-PE 7d930000-7d965000 ¥ winealsa

ELF 7d965000-7d9fd000 Deferred winmm

¥-PE 7d970000-7d9fd000 ¥ winmm

ELF 7d9fd000-7da11000 Deferred avicap32

¥-PE 7da00000-7da11000 ¥ avicap32

ELF 7da11000-7db23000 Deferred oleaut32

¥-PE 7da30000-7db23000 ¥ oleaut32

ELF 7db23000-7db43000 Deferred devenum

¥-PE 7db30000-7db43000 ¥ devenum

ELF 7e2ad000-7e2fe000 Deferred libgcrypt.so.11

ELF 7e2fe000-7e311000 Deferred libtasn1.so.3

ELF 7e311000-7e33f000 Deferred libcrypt.so.1

ELF 7e33f000-7e3ad000 Deferred libgnutls.so.13

ELF 7e3ad000-7e3dc000 Deferred libcups.so.2

ELF 7e3e8000-7e3ed000 Deferred libxfixes.so.3

ELF 7e3ed000-7e3f6000 Deferred libxcursor.so.1

ELF 7e3f6000-7e3f9000 Deferred libxrandr.so.2

ELF 7e3f9000-7e401000 Deferred libxrender.so.1

ELF 7e401000-7e406000 Deferred libxxf86vm.so.1

ELF 7e406000-7e426000 Deferred imm32

¥-PE 7e410000-7e426000 ¥ imm32

ELF 7e426000-7e42b000 Deferred libxdmcp.so.6

ELF 7e42b000-7e517000 Deferred libx11.so.6

ELF 7e517000-7e525000 Deferred libxext.so.6

ELF 7e525000-7e53d000 Deferred libice.so.6

ELF 7e53d000-7e546000 Deferred libsm.so.6

ELF 7e54c000-7e550000 Deferred libgpg-error.so.0

ELF 7e552000-7e5fe000 Deferred winex11

¥-PE 7e560000-7e5fe000 ¥ winex11

ELF 7e6b6000-7e6d6000 Deferred libexpat.so.1

ELF 7e6d6000-7e701000 Deferred libfontconfig.so.1

ELF 7e702000-7e705000 Deferred libxinerama.so.1

ELF 7e705000-7e708000 Deferred libxau.so.6

ELF 7e70d000-7e721000 Deferred libz.so.1

ELF 7e721000-7e78b000 Deferred libfreetype.so.6

ELF 7e797000-7e8b2000 Deferred ole32

¥-PE 7e7b0000-7e8b2000 ¥ ole32

ELF 7e8b2000-7e925000 Export rpcrt4

¥-PE 7e8c0000-7e925000 ¥ rpcrt4

ELF 7e925000-7e938000 Deferred lz32

¥-PE 7e930000-7e938000 ¥ lz32

ELF 7e938000-7e954000 Deferred version

¥-PE 7e940000-7e954000 ¥ version

ELF 7e954000-7ea06000 Deferred gdi32

¥-PE 7e960000-7ea06000 ¥ gdi32

ELF 7ea06000-7eb6d000 Deferred user32

¥-PE 7ea20000-7eb6d000 ¥ user32

ELF 7eb6d000-7eba5000 Deferred winspool

¥-PE 7eb70000-7eba5000 ¥ winspool

ELF 7eba5000-7ec14000 Deferred setupapi

¥-PE 7ebb0000-7ec14000 ¥ setupapi

ELF 7ec14000-7ec6d000 Deferred advapi32

¥-PE 7ec20000-7ec6d000 ¥ advapi32

ELF 7ec6d000-7ec87000 Deferred libjis.so

ELF 7eca3000-7ecae000 Deferred libnss_files.so.2

ELF 7ecae000-7ecb8000 Deferred libnss_nis.so.2

ELF 7ecb8000-7ecce000 Deferred libnsl.so.1

ELF 7ecce000-7ecd7000 Deferred libnss_compat.so.2

ELF 7edd6000-7ef21000 Export kernel32

¥-PE 7edf0000-7ef21000 ¥ kernel32

ELF 7ef21000-7ef46000 Deferred libm.so.6

ELF 7ef46000-7f000000 Deferred ntdll

¥-PE 7ef60000-7f000000 ¥ ntdll

ELF b7d41000-b7d45000 Deferred libdl.so.2

ELF b7d45000-b7e76000 Deferred libc.so.6

ELF b7e76000-b7e88000 Deferred libpthread.so.0

ELF b7e8a000-b7e8f000 Deferred euc-jp.so

ELF b7e95000-b7fd2000 Export libwine.so.1

ELF b7fd4000-b7feb000 Deferred ld-linux.so.2

Threads:

process tid prio (all id:s are in hex)

0000000f

00000010 0

00000025

0000002e 0

0000002d 0

0000002c 0

0000002b 0

00000027 0

00000026 0

00000028

00000030 0

0000002f 0

0000002a 0

00000029 0

00000031 (D) C:¥windows¥system32¥dxdllreg.exe

00000032 0 <==

Backtrace:

=>0 0x7e8d0637 in rpcrt4 (+0x10637) (0x0033f4c4)

1 0x7e8d117b NdrDllRegisterProxy+0x92() in rpcrt4 (0x0033f7f4)

2 0x358215aa in msvidctl (+0x215aa) (0x0033f824)

3 0x01003180 in dxdllreg (+0x3180) (0x0033fb94)

4 0x010033f7 in dxdllreg (+0x33f7) (0x0033fdc0)

5 0x01003814 in dxdllreg (+0x3814) (0x0033fee8)

6 0x7ee554ed in kernel32 (+0x654ed) (0x0033ffe8)

7 0xb7e9dcfb wine_switch_to_stack+0x17() in libwine.so.1 (0x00000000)

タグ: , , ,