2017年09月11日

WineやWindows 2000でカスタムメイド3D2の一部機能が動作しない原因が判明

カスタムメイド3D2エディット体験版をWin2000で安定動作させるパッチ
パッチで無理やりクラッシュを回避する処理を作ったものの、動作しない原因を調べてみました。

Windows 7の D3D11.DLL の D3D11CoreCreateDevice 内の処理に
          push    00000003h
          push    L10001370
          call    D3D11CoreRegisterLayers
                :

 L10001370:
          dd    00000000h
         dd    L1000F8AF
         dd    L1000F94F
         dd    L1000F9EC
          dd    00000040h
         dd    L1000F8AF
         dd    L1000F94F
         dd    L1000F9EC
          dd    FFFFFFFFh
         dd    L1000F8AF
         dd    L1000F94F
         dd    L1000F9EC
          dd    FFFFFFFFh
こういうのがあります

 L1000F9EC:

        :

 L1000FAC3:
          cmp    edi,00000040h
          jz     L1000FAFF
          cmp    edi,FFFFFFFFh
          jz     L1000FAD6
          mov    eax,esi
          call    SUB_L10017BB0
          jmp    L1000FAA6
 L1000FAD6:
          push    0000000Ch
          pop    ecx
          push    [ebp+1Ch]
          mov    esi,ebx
          push    [ebp+18h]
          lea    edi,[ebp-4Ch]
          rep movsd
          mov    edi,[ebx]
          push    eax
          mov    ecx,00000640h
          add    [ebp-4Ch],ecx
          sub    [ebp-48h],ecx
          lea    eax,[ebp-4Ch]
          push    eax
          call    SUB_L10013354
          jmp    L1000FAA6
 L1000FAFF:
          push    0000000Ch
          pop    ecx
          push    [ebp+1Ch]
          mov    esi,ebx
          push    [ebp+18h]
          lea    edi,[ebp-54h]
          rep movsd
          push    eax
          push    [ebx]
          mov    ecx,000002C0h
          add    [ebp-54h],ecx
          sub    [ebp-50h],ecx
          lea    edi,[ebp-54h]
          mov    [ebp-24h],eax
          call    SUB_L10013584
          jmp    L1000FAA6
 L1000FB2D:
          mov    eax,L1000FB33
          retn
赤字の関数の処理を追うと、こんな処理が

 SUB_L10013354:
          push    00000014h
          mov    eax,L100738E4
          call    SUB_L10072FBD
          mov    [ebp-10h],edi
          push    [ebp+08h]
          and    dword ptr [ebp-04h],00000000h
          lea    esi,[edi+40h]
          push    esi
          mov    dword ptr [edi],L1000A63C
          call    SUB_L10015F99
          mov    eax,[ebp+0Ch]
          mov    dword ptr [esi],L1000A1B8
          mov    dword ptr [esi+04h],L1000A1A4
          mov    dword ptr [esi+08h],L1000A0D8
          mov    dword ptr [esi+14h],L1000A0C4
          mov    dword ptr [esi+18h],L1000A0A4
          mov    dword ptr [esi+1Ch],L1000A088
          mov    dword ptr [esi+20h],L1000A078
          mov    dword ptr [esi+24h],L1000A064
          mov    dword ptr [esi+28h],L1000A038
          mov    dword ptr [esi+2Ch],L1000A028
          mov    [esi+30h],eax
          and    dword ptr [ebp-14h],00000000h
          mov    [ebp-20h],esi
          mov    dword ptr [ebp-18h],L10064CE1
          push    [ebp+14h]
          mov    byte ptr [ebp-04h],02h
          push    [ebp+10h]
          push    edi
          call    SUB_L10013300
          call    SUB_L10017BB0
          call    SUB_L100730A9
          retn    0010h
ここで、DirectX11の動作モードによって、機能関数を登録するようになっています

この機能関数が WineD3Dの D3D11.dllには存在しないので、呼び出されるとNULLが返ってクラッシュする模様

 DLL_Color_CreateByteDataFromTexture:
          push    ebp
          mov    ebp,esp
          mov    ecx,[ebp+08h]
          test    ecx,ecx
          jz     L10004773
          mov    edx,[ebp+0Ch]
          test    edx,edx
          jz     L10004773
          mov    eax,[ebp+10h]
          test    eax,eax
          jz     L10004773
          push    eax
          call    SUB_L100096D0
          add    esp,00000004h
          pop    ebp
          retn


 SUB_L100096D0:
          push    ebp
          mov    ebp,esp
          push    FFFFFFFFh
        :
          mov    dword ptr [ebp-80h],00000000h
          mov    dword ptr [ebp-04h],00000000h
          lea    edx,[ebp-6Ch]
          mov    eax,[esi+08h]
          mov    dword ptr [ebp-6Ch],00000000h
          push    edx
          push    eax
          mov    ecx,[eax]
          call    [ecx+000000A0h]


こんな感じWin7のどこに対応するかと言うと

 L1000A0D8:
         dd    L100157EA
         dd    L1001597F
         dd    L100158E9
         dd    L10018014
         dd    L100181CC
         dd    L1001842C
         dd    L1001868B
         dd    L1001896D
         dd    L10018C8F
         dd    L10018E99
         dd    L100190F3
         dd    L10019BA6
         dd    L10019318
         dd    L10019636
         dd    L1001975F
         dd    L10019937
         dd    L10019432
         dd    L10019534
         dd    L10019A60
         dd    L10019B62
         dd    L10019CF7
         dd    L1001A01B
         dd    L1001A21F
         dd    L1001A4A1
         dd    L1001A6AC
         dd    L1001A84B
         dd    L1001A8CB
         dd    L1001AA35
         dd    L1001C02B
         dd    L1001B6BB
         dd    L1001B6DB
         dd    L1001B7F7
         dd    L1001B818
         dd    L1001B96F
         dd    L1003017F
         dd    L10015A18
         dd    L10015A09
         dd    L100159F0
         dd    L1001BC70
         dd    L1001C06B
         dd    L1001C1CF (+0xa0)
         dd    L1001C08D
         dd    L1001C123
         dd    L1001C1CF
         dd    L100270F4
         dd    L10027119
         dd    L10027333
         dd    L1002756F
         dd    L1001C051
         dd    L1001C05E
         dd    L1001C13D
 L1000A1A4:

 L1001C1CF:
          Align    2
          push    ebp
          mov    ebp,esp
          push    esi
          mov    esi,[ebp+08h]
          mov    eax,[esi+000001C8h]
          mov    eax,[eax+0Ch]
          mov    ecx,[eax]
          push    eax
          call    [ecx+04h]
          mov    eax,[esi+000001C8h]
          mov    ecx,[eax+14h]
          mov    eax,[ebp+0Ch]
          mov    [eax],ecx
          pop    esi
          pop    ebp
          retn    0008h
こうですね・ω・



blackwingcat at 08:30|PermalinkComments(0) | Win2000拡張カーネル | Driver/API

2017年09月10日

カスタムメイド3D2エディット体験版をWin2000で安定動作させるパッチ

CustomMaid3D2 - カスタムメイド3D2 - エディット体験版
周りの人がMOD入れて遊んでるので、気になって入れてみた

・目や髪を操作するとクラッシュ。
・色のプリセットが全く反映されない。

という問題が…バグかな?
と思ってググったら

新しいWineビルドしたのでMacでカスタムメイド3D2の体験版動くのかやってみたけど目のテクスチャがおかしいのと、目のメニュー開くと落ちるのを除けば一応動くっぽい。んで、どっかで見たことあるなと思ったら金剛のポーズか。

mattintosh4[1:07 - 2015年12月19日]

というわけで、落ちなくするパッチ作ってみた

CM3D2w2k.cab

CM3D2x86_Data\Plugins\cm3d2_x86.dll
にあてるパッチです

EXE起動するとフォルダ聞かれるので指定してください

cm1

製品版も同じなんだろか?

もしかするとWineでもクラッシュしなくなるかも




blackwingcat at 12:30|PermalinkComments(0) | Win2000拡張カーネル | Games

2017年09月09日

32bit版のWindows Server 2003を128Gのマシンにインストールしてみたところ

32bit版のWindows Server 2003が128G PAEに対応してるか解析してみた
API的には128G PAEに対応してる事が判明した Windows Server 2003

さて、実際にインストールするとどうなるでしょう?

結果・・・。

続きを読む

blackwingcat at 12:30|PermalinkComments(5) | Win Home Server | 仮想OS/BootCamp

2017年09月08日

JavaScriptで動く仮想マシンが熱いらしい ・ω・

JavaScript 上で動作する OS と言うと何を連想するでしょうか?

WINDOWS 93 Service Pack 2?

いえ、あれは実機のエミュレータではありません

有名どころでは、以下のような Linux コンソールのエミュレータがあります

Javascript LatticeMico32 Emulator (runs Linux)
jor1k: OpenRISC OR1K Javascript Emulator Running Linux With Network Support
ANGEL - RISC-V JS ISA Simulator



少し前に話題になった

v86 emulates
というプロジェクトでは Windows 9xReactOS が動作します
(Qemu に近いエミュレーターをブラウザ経由でアクセスする仕組みだとおもいます)

v86

JSLinux
こちらもQemu のファイルを流用してるとのことですが、 v86で動作しない Windows 2000が動くと言うことで話題になっています

jsl

PaleMoonだとちょっと動作が怪しいですね・ω・ Firefox だと、しばらく遊んでると
メモリ枯渇して死亡しますが(白目)



blackwingcat at 08:30|PermalinkComments(0) | 仮想OS/BootCamp | WebBrowser
このエントリーをはてなブックマークに追加
|
livedoor プロフィール
My PC
SNOWSTORM(P5E3 Premium)
OS:Win2000AdvancedSv
CPU:Xeon(4Core) 2.83G
Memory:8G
VGA:NVIDIA GTX 780Ti
HDD:SSD(32G)
    +SATA(540G+180G)
Crystal SCR:244765
SNOWFOX2(W860CU)
CPU:Core i5-540M(2.53G)
OS:Win2000Pro
Memory:4G
VGA:Geforce GTX285M
HDD:SSD(160G)
Crystal SCR:176460
SNOWMOBILE3(CF-J10S)
CPU:Core i5-2410M(2.3G)
VGA:Intel HD Graphics
HDD:SSD(128G)
Windows2000
Memory:6G
Crystal SCR:133495
SNOWMOBILE(N10Jc/故障)
Windows2000/XP Home
Crystal SCR:38316
SNOWLEO(MA206J/A/休止)
OS:OSX 10.4 +
Windows2000Pro(Solo動作)
Crystal SCR:24061
Windows 2000の セキュリティ対策について
FFR yarai(脆弱性防御)
SymantecEndpointSecurity 11 MR7
Windows Defender
記事検索
訪問者数

    今週のアクセス数

    Win2000お勧め
    お勧め記事
    Twitter Client Mo-Footer
    .NET FrameworkのUninstall
    lolifox 0.3.8.x
    WindowsのシャットダウンTips
    Fox Launcher
    ウィルス感染を手動で見つける方法
    Unknown Hard Errorとサルベージ
    Dependency Walker 日本語化
    Ultra VNC 1.0.6/1.0.8 を日本語化
    IME補完計画
    BSoD(ブルースクリーン)特集
    デフラグ時の4つの心得
    不明なデバイス探し
    SETUPAPI/NTDLLBugFix
    DNSデボルブ用更新[KB957579]
    最新 update.sys!
    4Thread以上のCPU最適化
    Win2000マルチコアで最適化
    Windows 2000の通信速度改善1
    Windows 2000の通信速度改善2
    内蔵簡易FireWallを使う
    ワームに感染しないインストール
    Remote Desktop Client
    IME 辞書 Tips
    Win2000用セキュリティSOFT
    不要なファイルの削除
    Win2000カスタマイズ
    便利なキーボードショートカット
    6月末まで使える体験版セキュリティ

    非対応ハード動作編
    HTC NDIS Driver
    Intel HD Graphic Driver
    VMWare Player 3.1.x
    Conexant HD Audio Driver
    NVIDIA WHQL Driver
    Intel Chipset 最新 INF
    Sentelic Finger Pad Driver
    ATI Legacy Driver 10.2
    AMD Radeon Driver 8〜11
    ATI Ahci/Raid Driver
    Intel SATA AHCI Driver
    D21LC(eMobile)
    USB-WSIM
    UVC カメラ
    Logicool Webcam
    Logicool ゲームパッド
    XBOX360用コントローラー
    Logicool Mouse
    Microsoft IntelliPoint
    iPod Touch/iPhone Driver

    非対応アプリ動作編
    Flash Player 10.3
    Java 6 JRE
    Java 7.0 JRE
    ティルズウィーバー
    Natal Online
    コンチェルトゲートフォルテ
    シルクロードオンライン
    東方幻想麻雀
    IME2010 Installer
    Adobe Reader X for Win2000
    Baidu IME 2.x
    MMORPG ドルアーガーの塔
    Adobe Air for Windows 2000
    Baidu IME
    iTunes 10.x installer
    Evernote 4
    Janetter
    Second Life
    雀龍門
    Media Manager for PSP 2.5a
    .NET Framework 3.5SP1
    ATOK 月額版(2010/2011)
    Leaf 愛佳でいくの!!
    VistaのScreenSaver
    会計ソフト弥生シリーズ 10
    Vegas Movie Studio 9
    EyeBall Chat
    ・CanonPowerShot[Soft/DPP]
    Google SketchUp Pro 7
    dance mixer
    Lismo Port
    DivX
    SONY ScreenSaver
    mixi アプリ
    DivX v7.x
    ニコニコムービーメーカー(動画)
    RC-S330 PaSoRi
    Finale 2009
    ZoneAlarm 8.0
    ルナティア Online
    ストリートギアーズ
    xfy Blog Editor
    Photoshop Elements 7
    Premiere Elements 7
    PowerShell 1.0
    ai sp@ce
    電脳フィギュアARis
    VOCALOID2 ミク・リンレン
    Google Chrome/SRW Iron
    Media Player 10
    ・iTunes 7.6.2を使う方法
    QuickTime 7.5x/7.6x
    foobar2000 9.5.x/9.6.x
    RealPlayer11
    Safari3/4.0
    ShockwavePlayer10/11
    Windows Live Writer
    Live Messenger
    Veoh Web Player / Web TV
    Level-R

    追加機能・カスタマイズ編
    W2K Kernel32 改造計画【BM】
    W2K Update Rollup v2
    XNA/SlimDX
    CPU Core数リミット解除
    OutLook Express 6SP3
    MDAC 2.8 SP2
    GIF/PNGを使えるMSPAINT
    IE5でWindowsUpdate
    MSXML 4.0SP3
    DirectX9.0c(2010/Feb)+拡張
    MS09-062(Gdiplus.dll)更新
    Unicode 制御文字
    Internet Explorer6 Bonus Pack
    夏時間(DaylightSavingTime)
    レジストリバックアップを取る
    IME2007
    Windows Media Bonus Pack
    XPSファイルビューア
    Windows Defender
    文字化け対策(FontLink)
    Meirio(KB927489)
    msconfig
    圧縮フォルダ
    Windows Movie Maker
    IE5.01/5.5/6タブ化
    MediaTypeChanger(EISA構成)
    Win2000 SP4 Support Tool
    kill/tlist with Debugging Tools
    sc.exe with Resource kit
    reg.exe
    TaskTray 256色化
    ISO仮想CD/DVDドライバ
    IE6高速化とWSH 5.7/5.8
    MS Baseline Security Analyzer
    音声認識 API 5.1
    Text Service

    Win2000インストール編
    CF-J10S
    N10Jc
    ThinkPad X200(7454)
    Quad Core/X48/P5E3
    VAIO VGN Type S
    E6850搭載 サポートPC
    Let'snote CF-R6
    MacMini
    Dell LATITUDE D630
    Core i7 + X58 +ICH10R
    790FX + SB750
    Clevo W860CU
    最新コメント
    Categories
    アーカイブ
    Information
    Google広告




    Translate


    このサイトはIE5.x/IE6
    IE5.x Internet Explorer 6.x

    Firefox Firefox ブラウザ無料ダウンロード
    で最適化されています。
    Technorati
    Add to iGoogle
    Amazon GIFTでカンパ

    Donation