friendlyanon / simcity-noinstall

Fix SimCity 2000 Special Edition (Win95) issues without patches
The Unlicense
14 stars 1 forks source link

Supporting Wine #6

Open tferrett opened 8 months ago

tferrett commented 8 months ago

First of all, very cool project and kudos for the effort. I'm curious if this DLL could be adapted to work with Wine in Linux - I'm going to start working on this myself. I made a naive attempt to use the DLL by just dropping it in to my SC2K install and received an error where the DLL failed to initialize. It's possible that my Wine environment simply isn't configured correctly.

friendlyanon commented 8 months ago

Please be aware that the DLL from the release doesn't use the C runtime library and links to some of the exports of ntdll.dll that are not available in the ntdll.lib provided in the Windows SDK. Here is the extra .def file that I create a separete ntdll.lib from:

LIBRARY ntdll

EXPORTS
  memset
  memcpy
  strlen
  memcmp
  memchr
  strcmp
  strncmp
  wcsncat
  strncat
  sscanf
  sprintf

I'm not sure if Wine also provides the full NT API or focuses on the Win32 API.

friendlyanon commented 8 months ago

Forgot to also mention that the entrypoint of the DLL is not _DllMainCRTStartup, but DllMain. I'm also not sure if Wine is a-okay with non-default entrypoints.