[過去ログ] 今夜も Wine で乾杯! - 23本目 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
671(2): 2022/04/17(日)07:19 ID:ONuqPY9B(1) AAS
Windows3.1時代の16bitアプリ動かない…
672(2): 2022/04/17(日)07:35 ID:cYFH+4CE(1) AAS
16ビットプログラムは非対応でなかったかな
673(3): 2022/04/17(日)08:51 ID:iZt/TDlj(1) AAS
>>671-672
WineはWindowsと違ってx86_64上でも16bitアプリに対応しているよ
ただしDOSBoxをインストールする必要あり
このSameGameで64bit Windows 10で動かないけどWine 7.0で動くことを確認済み
外部リンク[html]:www.vector.co.jp
16bitアプリはNT系Windowsではntvdmを利用していて、nvvdmはx86_64のlongモード非対応の
仮想8086モードを使用するので32bit Windowsでしか動作しないけど、Linuxの32bit Wineのwinevdmは
DOSBoxの8086、80286エミュレーション機能を自動的に利用するので16bitアプリも動作する
ちなみにWindowsに32bitアプリとしてWineとwinevdmを移植したものがあって
これを使うと64bit Windowsでも16bitアプリが動かせるはず
外部リンク:github.com
674(1): 2022/04/18(月)15:29 ID:FL8qeWrS(1/2) AAS
>>673
そのwinevdmをビルドしてみて?
675: 2022/04/18(月)15:48 ID:FL8qeWrS(2/2) AAS
>>674
汎用freewareレベルなら16bitアプリは確かに動くなしかしだから証明された訳でもない。
676(1): 2022/04/19(火)00:09 ID:6BsM3YVq(1/2) AAS
>>673
16ビットと言っても
?DOS用で、リアルモードまたは仮想8086モード向けのコード
?Win3.x用で、16ビットプロテクトモードまたは16ビット互換モード向けのコード
の2種類あって、
i)32bitWindowsの場合、?は仮想8086モードに移行して直接動作(ntvdm)、?は16ビットプロテクトモードに移行して直接動作(wowexec)
ii)32bitlinux上のwineの場合、?は仮想8086モードに移行して直接動作(vm86システムコール利用)、?は16ビットプロテクトモードに移行して直接動作(modify_ldtシステムコール利用)
iii)64bitlinux上のwineの場合、?はDOSBoxのエミュレーション(longモードでは仮想8086モード非対応のため)、?は16ビット互換モードに移行して直接動作(32bitwineからmodify_ldtシステムコール利用)
iv)64bitWindowsの場合、?は非対応(longモードでは仮想8086モード非対応のため)、?も非対応(MSのやる気がないため)
v)64bitWindows上のwinevdmでは、??いずれもエミュレーションまたはCPUの仮想化機能を使う
677: 2022/04/19(火)00:19 ID:6BsM3YVq(2/2) AAS
>>671-673
結局、Windows3.1向けの16ビットアプリケーションは64bit環境でも動作するが、
1) 32bitのWineをインストールしなければならない(32bitのWindowsアプリが動けばOK)
2) DOSBoxは不要(エミュレーションなしで動く)
3) modify_ldtシステムコールが禁止されていたりすると動かない
678(2): 2022/04/19(火)10:24 ID:WRR9mRIv(1/2) AAS
>>676
> ii)32bitlinux上のwineの場合、?は仮想8086モードに移行して直接動作(vm86システムコール利用)
Wine4.0でvm86システムコールを利用するコードが削除され、以降はdosboxのCPUエミュレーションで
リアルモードのコードを実行するようになっているはず
dosboxを利用するコードが入ったのはWine1.4
Wineのコードをgrep vm86して確認してみて
> ?は16ビットプロテクトモードに移行して直接動作(modify_ldtシステムコール利用)
自分もこう動いているように思っていたんだけど実際のwineでmodify_ldtを使っている箇所は
外部リンク[c]:source.winehq.org
外部リンク[c]:source.winehq.org
の2つで、下はobsoleteになっていて使っていないっぽい
コード読み切れていないから全然理解できていないだけど、本当にWineは16bitプロテクトモードの
コードの実行にmodify_ldtを利用している?
winevdmのコードを見てもdosboxを呼びだしているのはわかるんだけど、どこまでdosboxのCPU
エミュレータでコードを動かしているかわからん
外部リンク[c]:source.winehq.org
679(1): 2022/04/19(火)10:33 ID:WRR9mRIv(2/2) AAS
あとWine7.0のANNOUNCEで32bitWineなしでも実行できる新しいWOW64を実装したっていっているけど
実際はまだ32bit<->64bitのコードが実装されていない気がするんだけど
wow64cpuでmodify_ldtを使うと思うんだけどそんなコード入っていないように見える
外部リンク:source.winehq.org
この辺にもない
外部リンク:source.winehq.org
外部リンク:source.winehq.org
Wine7.6でも変わらない
680: 2022/04/20(水)00:54 ID:s2MtO61K(1/2) AAS
>>678
今は32bit環境がないからdosプログラムがどうなっているかはすぐには確認できないけど、Win3.x向けプログラムはWine7.6でもmodify_ldtを使っている(少なくとも俺環では)
strace -f wine <win16app.exe> |& grep modify_ldt
で一杯出る
あと、64bitのlinux環境では32bit用セグメントが常にGDTに用意されていたと思うから、32bit互換モードにはfar jmp一発で移れる(アセンブリで試しに書いたら動いた)
681(1): 2022/04/20(水)03:25 ID:s2MtO61K(2/2) AAS
>>678
外部リンク[h]:source.winehq.org
を見る限り、MacとAndroidの場合に16bit用のLDT関連がobsoleteになるっぽい
確かにMacは今や32bit互換モードも含めてobsoleteだし、Androidはセキュリティのためseccompで多くの不要なシステムコールを禁止している
あと、外部リンク[c]:source.winehq.org
の144行とかにfar jmpがあるから、ここでモード移行かな
これはWindowsのHeaven's Gateと同じ方式
不要になるのは32bitのlinuxのライブラリ(/usr/libとか/usr/lib32にある.so)であって、Wineの32bitライブラリ(syswow64にあるやつ)は必要
682: 2022/04/20(水)11:44 ID:+KfR7A8M(1) AAS
>>681
>>679は根本的な部分で勘違いしていた
Wineは5.0辺りからずっとリファクタリングを進めていて、wineserver等のELFなLinux側とkernel32.dllや
user32.dll等のPEなWindows側に完全に分離する作業が行われている
modify_ldtとかi386_set_ldtはLinuxやBSDの機能で、Linux側のwineserverでmodify_ldtを使うのは
いいんだけど、wow64cpu.dllはWindows側だからmodify_ldtを使ってはいけない
だから最初からdlls以下のwow64関連コードにmodify_ldtが存在するはずがない
x86_64 Linuxには32bitユーザーモードコードを動かすためのセグメントディスクリプタがGDTにあって
それを使って32bitコードを動かしているんだから、wow64cpuの側ではfar jmpでセグメント切り替え
ジャンプをすることで64bit<->32bitの切り替えを行うことができる、ということでいいのかな
683: 2022/05/04(水)10:10 ID:qKePorg5(1) AAS
うん
684: 2022/05/23(月)02:57 ID:cid6qQlb(1/2) AAS
ほぼ何にも設定してないwineでsteam使いたいんだけど、ログインのときの認証コード入れるポップアップ?が出てこないんだけどどうすればいい
685: 2022/05/23(月)03:50 ID:cid6qQlb(2/2) AAS
すまんwinetricks steamでとりあえずいつもの画面までは行けた真っ黒だけど
sha256sumが違うから、/usr/bin/winetricksの中のsteamのチェックサムを~/.cache/winetricks/steam/にある現物に書き換えてインスコさせた
686: 2022/05/25(水)11:20 ID:Lipee68u(1) AAS
真っ黒になるな。windows XPをサポートしていた時代のsteamを使って、それ以上アップデートさせないようにすれば、一応真っ黒にならずにすむ。
687(1): 2022/05/25(水)12:54 ID:112ik0wZ(1) AAS
16bitプロテクトモードってなんだ?
てかwine使うくらいなら素直にWindows入れろよ
688: 2022/05/25(水)13:21 ID:zM1W1wTm(1) AAS
お前はなんてこのスレにいるんだよ
>>687
689: 2022/05/25(水)13:22 ID:WXGhbdgi(1) AAS
16bitプロテクトモードってなんだ? ってなにか教えてほしいから
690: 2022/05/25(水)15:04 ID:Ac9iPAWA(1) AAS
目的がLinuxでSteamのゲームをプレイすることではなくwineでSteamを動かすことに見える
691: 2022/05/25(水)16:43 ID:oUMX3Tg4(1) AAS
まあゲームプレイするだけなら
linux版steam入れてprotonでゲーム動かした方が大分無難だしね
692: 2022/05/25(水)18:50 ID:qfajogRQ(1) AAS
protonを汎用的に使う事は出来ないのだろうか
693: 2022/05/26(木)07:20 ID:Paexe7fr(1) AAS
デュアルブートにしろ2台にするにしろデメリットはある。wineを使うか使わないかで差が出る。linux版steamでうまく動かない場合(まれによくある)windows版なら動くんか?と試すことになる。
694: 2022/05/27(金)21:26 ID:uELYCjyk(1) AAS
ブラウザが別途起動する二段階認証をするアプリは無理?
認証後のトークンが引き渡せないみたい。
使いたいのはDropBoxと連携するアプリです。
695: 2022/06/04(土)02:30 ID:0RnGxxJy(1/2) AAS
Linux MINTのWineでインストールしたMT5についてです。
他のプロパティは変更できるのですが、
なぜか色のプロパティだけは変更できなくて困っています。
対処法のわかる方いらっしゃいますか?
696(1): 2022/06/04(土)02:30 ID:0RnGxxJy(2/2) AAS
Linux MINTのWineでインストールしたMT5についてです。
他のプロパティは変更できるのですが、
なぜか色のプロパティだけは変更できなくて困っています。
対処法のわかる方いらっしゃいますか?
697: 2022/06/11(土)09:55 ID:MTVZQdxV(1) AAS
いません
698: 2022/06/11(土)11:04 ID:eDAyrFZh(1) AAS
>>696
Windowsをつかいます
699: 2022/06/13(月)10:19 ID:J+Jqq6nE(1) AAS
にこあ将棋(外部リンク:www.vector.co.jpってのを頑張って動かそうとしてるんだけどエラーが出てうまくいかない
調べたらd3d11.dllとdxgi.dllをネイティブ版で動かしてみるとよいとあったけどそれやってもダメそう
あともうちょっとでいけそうな感じはするんだけどな
700: 2022/06/13(月)15:53 ID:kyuNGT6w(1) AAS
15年ぶりくらいに使ってみたんだけど思ってた以上にどんなアプリも普通に動いてすごい
上下前次1-新書関写板覧索設栞歴
あと 302 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 1.556s*