Project 1999

Project 1999 (/forums/index.php)
-   Technical Discussion (/forums/forumdisplay.php?f=40)
-   -   Mac Catalina, Wine (wineskin, crossover, playonmac), DSETUP.DLL Issue (/forums/showthread.php?t=371291)

freezzo 11-10-2020 09:20 PM

Mac Catalina, Wine (wineskin, crossover, playonmac), DSETUP.DLL Issue
 
I recently got a new macbook that has catalina installed. I understand that 32bit application support has been removed from it, however I have tried the following:

PlayOnMac
CrossOver
Wineskin (https://github.com/Gcenx/WineskinServer)

They all seem to use wine32on64, and when I do a fresh installation of EverQuest Titanium, they will load up and I can make it to the char select screens. However, once I copy over the newest P99 file, specifically DSETUP.DLL, wine no longer loads EQ. Replace it with the original, and all is good.

I have tried to debug any error messages its throwing upon loading, but nothing gets spit out. I think I am really close to getting EQ/P99 to work on Catalina (not that I really did that much), but curious if anyone can help debug this with me, or if there is some way to create a patched/updated DSETUP.DLL to work. Maybe it has to be compiled to support 64bit? I am not sure. Any feedback or help would be appreciated. Thanks.

freezzo 11-11-2020 11:11 AM

Here is some more output that I notice in the debugging when using the P99 dsetup.dll file. Specifically the
Code:

caused page fault during read

Code:

005f:trace:seh:raise_exception code=c000008e flags=0 addr=0x7bc72002 ip=7bc72002 tid=005f
005f:trace:seh:raise_exception  eax=0033e760 ebx=0033e760 ecx=7bca9050 edx=0033e750 esi=0033e750 edi=100b7000
005f:trace:seh:raise_exception  ebp=0033e790 esp=0033e754 cs=331007 ds=ffff100f es=7bca100f fs=1017 gs=7bca0000 flags=00000216
005f:trace:seh:call_vectored_handlers calling handler at 0x101308b3 code=c000008e flags=0
005f:trace:seh:call_vectored_handlers handler at 0x101308b3 returned ffffffff
005f:trace:seh:NtContinue (0x33e47c, 0) stub!
005f:trace:seh:raise_exception code=c0000005 flags=0 addr=0x7bca8ca5 ip=7bca8ca5 tid=005f
005f:trace:seh:raise_exception  info[0]=00000000
005f:trace:seh:raise_exception  info[1]=7ffbe000
005f:trace:seh:raise_exception  eax=00001000 ebx=00000001 ecx=0033e6f0 edx=0033e6f0 esi=00000004 edi=0033de30
005f:trace:seh:raise_exception  ebp=0033e840 esp=0033de20 cs=1007 ds=100f es=100f fs=1017 gs=0000 flags=00010246
005f:trace:seh:raise_exception  underlying 64-bit state:
005f:trace:seh:raise_exception    rip=000000007b4a4f7f
005f:trace:seh:raise_exception    rax=0000000000001000 rbx=0000000000000001 rcx=000000000033e6f0 rdx=000000000033e6f0
005f:trace:seh:raise_exception    rsi=0000000000000004 rdi=000000007ffbe000 rbp=000000000033e840 rsp=000000000033e6a0
005f:trace:seh:raise_exception    r8=0000000000000011  r9=000000000017e438 r10=000000000017e420 r11=0000000000110000
005f:trace:seh:raise_exception    r12=0000000000000000 r13=0000000000000004 r14=00000000ffffffff r15=0000000000000000
005f:trace:seh:call_stack_handlers calling handler at 0x7b4af710 code=c0000005 flags=0
005f:trace:seh:__regs_RtlUnwind code=c0000005 flags=2
005f:trace:seh:__regs_RtlUnwind eax=00000000 ebx=0033dad0 ecx=7b4af370 edx=7b4af370 esi=0033dac0 edi=0033e5cc
005f:trace:seh:__regs_RtlUnwind ebp=0033dab8 esp=0033dab0 eip=7b4af386 cs=1007 ds=100f fs=1017 gs=0000 flags=00000202
005f:trace:seh:__regs_RtlUnwind calling handler at 0x7bcae9d0 code=c0000005 flags=2
005f:trace:seh:__regs_RtlUnwind handler at 0x7bcae9d0 returned 1
005f:trace:seh:IsBadReadPtr 0x7ffbe000 caused page fault during read
005f:trace:seh:raise_exception code=c0000005 flags=0 addr=0x1032a9bb ip=1032a9bb tid=005f
005f:trace:seh:raise_exception  info[0]=00000001
005f:trace:seh:raise_exception  info[1]=fffffffc
005f:trace:seh:raise_exception  eax=1020583e ebx=1020586d ecx=fffffffc edx=10205861 esi=390a003a edi=00000000
005f:trace:seh:raise_exception  ebp=1020583e esp=0033e858 cs=1007 ds=100f es=100f fs=1017 gs=0000 flags=00010202


freezzo 11-11-2020 11:25 AM

Here is exiftool output for the default installed dsetup.dll
Code:

ExifTool Version Number        : 12.09
File Name                      : dsetup.win.dll
Directory                      : EverQuest
File Size                      : 59 kB
File Modification Date/Time    : 2005:10:17 12:35:02-04:00
File Access Date/Time          : 2020:11:11 10:09:04-05:00
File Creation Date/Time        : 2005:10:17 12:35:02-04:00
File Permissions                : rw-rw-rw-
File Type                      : Win32 DLL
File Type Extension            : dll
MIME Type                      : application/octet-stream
Machine Type                    : Intel 386 or later, and compatibles
Time Stamp                      : 2002:12:11 04:58:30-05:00
Image File Characteristics      : Executable, No line numbers, No symbols, 32-bit, DLL
PE Type                        : PE32
Linker Version                  : 7.0
Code Size                      : 50688
Initialized Data Size          : 15360
Uninitialized Data Size        : 0
Entry Point                    : 0x6892
OS Version                      : 5.1
Image Version                  : 5.1
Subsystem Version              : 4.0
Subsystem                      : Windows GUI
File Version Number            : 4.9.0.900
Product Version Number          : 4.9.0.900
File Flags Mask                : 0x30003f
File Flags                      : (none)
File OS                        : Windows 16-bit
Object File Type                : Driver
File Subtype                    : 8
Language Code                  : English (U.S.)
Character Set                  : Windows, Latin1
Company Name                    : Microsoft Corporation
File Description                : Direct driver preloader
File Version                    : 4.09.00.0900
Internal Name                  : dsetup.dll
Legal Copyright                : Copyright ┬⌐ Microsoft Corp. 1994-2002
Original File Name              : dsetup.dll
Product Name                    : Microsoft┬« DirectX for Windows┬«
Product Version                : 4.09.00.0900

And here is the P99 provided one

Code:

ExifTool Version Number        : 12.09
File Name                      : dsetup.dll
Directory                      : EverQuest
File Size                      : 3.8 MB
File Modification Date/Time    : 2019:10:25 03:14:00-04:00
File Access Date/Time          : 2020:11:11 10:13:06-05:00
File Creation Date/Time        : 2019:10:25 03:14:00-04:00
File Permissions                : rw-rw-rw-
File Type                      : Win32 DLL
File Type Extension            : dll
MIME Type                      : application/octet-stream
Machine Type                    : Intel 386 or later, and compatibles
Time Stamp                      : 2019:10:25 04:13:06-04:00
Image File Characteristics      : Executable, 32-bit, DLL
PE Type                        : PE32
Linker Version                  : 14.11
Code Size                      : 539648
Initialized Data Size          : 183808
Uninitialized Data Size        : 0
Entry Point                    : 0xa1a000
OS Version                      : 6.0
Image Version                  : 0.0
Subsystem Version              : 6.0
Subsystem                      : Windows GUI
File Version Number            : 3.49.0.0
Product Version Number          : 3.49.0.0
File Flags Mask                : 0x003f
File Flags                      : (none)
File OS                        : Windows NT 32-bit
Object File Type                : Dynamic link library
File Subtype                    : 0
Language Code                  : English (U.S.)
Character Set                  : Unicode
Company Name                    : Project 1999
File Description                : Project 1999 Game Server DLL
File Version                    : 3.49b.0.0
Internal Name                  : dsetup.dll
Legal Copyright                : Copyright (C) 2019
Original File Name              : dsetup.dll
Product Name                    : P1999DLL
Product Version                : 3.49b.0.0


freezzo 11-11-2020 11:42 AM

A DLL viewer is showing the following functions exported in the installer provided version (I should also note I don't exactly knowing what I am doing, but just trying to get some information that might point to something)

Headers are Function Name, Address, Relative Address, Ordinal, Filename, Type

Code:

DirectXDeviceDriverSetupA        0x0040531f        0x0000531f        1 (0x1)        dsetup.win.dll        Exported Function       
DirectXDeviceDriverSetupW        0x004053bb        0x000053bb        2 (0x2)        dsetup.win.dll        Exported Function       
DirectXLoadString        0x00404c1e        0x00004c1e        14 (0xe)        dsetup.win.dll        Exported Function       
DirectXRegisterApplicationA        0x00405a4f        0x00005a4f        3 (0x3)        dsetup.win.dll        Exported Function       
DirectXRegisterApplicationW        0x00405e12        0x00005e12        4 (0x4)        dsetup.win.dll        Exported Function       
DirectXSetupA        0x004050f0        0x000050f0        5 (0x5)        dsetup.win.dll        Exported Function       
DirectXSetupCallback        0x00404e00        0x00004e00        12 (0xc)        dsetup.win.dll        Exported Function       
DirectXSetupGetEULAA        0x00404c72        0x00004c72        17 (0x11)        dsetup.win.dll        Exported Function       
DirectXSetupGetEULAW        0x00404c9c        0x00004c9c        18 (0x12)        dsetup.win.dll        Exported Function       
DirectXSetupGetFileVersion        0x00404f25        0x00004f25        13 (0xd)        dsetup.win.dll        Exported Function       
DirectXSetupGetVersion        0x00404924        0x00004924        11 (0xb)        dsetup.win.dll        Exported Function       
DirectXSetupIsEng        0x004057fd        0x000057fd        15 (0xf)        dsetup.win.dll        Exported Function       
DirectXSetupIsJapan        0x004057d3        0x000057d3        6 (0x6)        dsetup.win.dll        Exported Function       
DirectXSetupIsJapanNec        0x00406206        0x00006206        7 (0x7)        dsetup.win.dll        Exported Function       
DirectXSetupSetCallback        0x004050d1        0x000050d1        10 (0xa)        dsetup.win.dll        Exported Function       
DirectXSetupShowEULA        0x00404c48        0x00004c48        16 (0x10)        dsetup.win.dll        Exported Function       
DirectXSetupW        0x00405203        0x00005203        8 (0x8)        dsetup.win.dll        Exported Function       
DirectXUnRegisterApplication        0x0040551a        0x0000551a        9 (0x9)        dsetup.win.dll        Exported Function

The only thing exported from the P99 provided file:

Code:

Extern11        0x1000b810        0x0000b810        11 (0xb)        dsetup.dll        Exported Function

freezzo 11-12-2020 04:37 PM

Tried the DSETUP.DLL from P99Files45 that I happened to have and it got past the dsetup.dll file loading issue, but shows and issue with not being able to open oreans.vxd driver.

freezzo 11-13-2020 02:20 PM

Would it be possible to rebuild the DSETUP.DLL file so that it can be loaded into any location in memory, if it isn't?

Eldini 11-13-2020 09:09 PM

Given how effective the anti-cheat on P99 is (PRAS ROGANE) I think it's plausible that this is because their anti-cheat doesn't work on Catalina or Big Sur right now. Still, I want to play on my Mac without using Bootcamp...

A guildie had it working but it's broken as of recent updates. I updated to Big Sur today. Was messing with "CrossOver" but couldn't get it running; bootcamp runs amazing but at that point why am I using my mac?

let me know if you get it working! also a comment from staff would be so amazing. Love the project thanks again for your hard work.

freezzo 11-13-2020 11:11 PM

I agree. I tried parallels, but the mouse issues make it uncomfortable. I have a mac and don't really want to dual boot. I had it working on High Sierra fine. I assume the same issues are true on Big Sur. It would be interesting to see a full debug from wine if possible? `WINEDEBUG=all` around the part where it loads the DSETUP.dll and see if its the same issue.

I will continue trying to see if I can do anything, but at this point, I'm to the point where I think DSETUP.dll has to get compiled differently? to support work properly in this case, and I don't know if there is much incentive for them to do that?

Staff reply would be amazing, and I am willing to help however I can. Thanks

Eldini 11-14-2020 01:05 PM

Try to file a petition yet? not sure what amount of technical support we can expect for a emulated server like this run by volunteers.. I am just grateful it exists.

This is an old game and they can't touch the client. Also the person who made the DLL isn't affiliated with P99 AFAIK, but he's around.

We don't know the metrics of what OS'es people use but I am willing to bet it's mostly Windows! Probably some linux too given that EQ has nerdy fans. rogan pls, metrics? graphs? open source some datasets and have the public make them for you?

I think accessibility is overall very important to a server and community like this; it can be its greatest asset.
You can be in-game in less than 2 minutes (make account on website, DL already set up thin-client approx 1gb total) and boom - you are in Brad's world now...

No payment barriers, no bullshit - the biggest barrier is the technical issues in running it and setting it up properly for performance.
The game could run on your smartphone, no doubt. People are already playing P99 on Chromebooks and this can be done on a phone as well.

For now I'll settle for getting it on my Mac... :3

Izmael 11-14-2020 01:50 PM

DSETUP.DLL is packed with anti-hax0r software called Themida. It's likely to create issues with running it under unintended conditions such as in Wine, moreover under MacOS.

First of all, I'd recommend trying the latest Wine builds, stable and dev.

If this doesn't work, try some kind of virtualization software for Mac, hoping your Mac is powerful enough that it will not kill P99 performance.

If all fails, honestly I'd just get a $300 Windows laptop that will run P99 just fine.


All times are GMT -4. The time now is 04:49 PM.

Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.