SDL 1.3 and Win2k

Didn’t find anything regarding this on the list. Is SDL 1.3 supposed
to support Windows 2000?

I tried compiling it yesterday using Mingw/MSYS and ran into several issues.

  1. win32/SDL_syshaptic.c does not compile.

I found a note in TODO that states that there is a problem, so it
might be just this. If not, here’s the error:

/bin/sh ./libtool --mode=compile gcc -I/usr/local/include
-I/usr/local/include -I./include -D_GNU_SOURCE=1 -mmmx -msse -c
./src/haptic/win32/SDL_syshaptic.c -o build/SDL_syshaptic.lo
gcc -I/usr/local/include -I/usr/local/include -I./include
-D_GNU_SOURCE=1 -mmmx -msse -c ./src/haptic/win32/SDL_syshaptic.c
-DDLL_EXPORT -DPIC -o build/.libs/SDL_syshaptic.o
./src/haptic/win32/SDL_syshaptic.c: In function SDL_SYS_ToDIEFFECT': ./src/haptic/win32/SDL_syshaptic.c:778: warning: comparison is always false due to limited range of data type ./src/haptic/win32/SDL_syshaptic.c:786: error: structure has no member nameddwStartDelay’
./src/haptic/win32/SDL_syshaptic.c:822: warning: comparison is always
false due to limited range of data type
./src/haptic/win32/SDL_syshaptic.c:823: warning: comparison is always
false due to limited range of data type
./src/haptic/win32/SDL_syshaptic.c:833: error: structure has no member
named dwStartDelay' ./src/haptic/win32/SDL_syshaptic.c:869: warning: comparison is always false due to limited range of data type ./src/haptic/win32/SDL_syshaptic.c:871: warning: comparison is always false due to limited range of data type ./src/haptic/win32/SDL_syshaptic.c:873: warning: comparison is always false due to limited range of data type ./src/haptic/win32/SDL_syshaptic.c:887: error: structure has no member nameddwStartDelay’
./src/haptic/win32/SDL_syshaptic.c:911: warning: comparison is always
false due to limited range of data type
./src/haptic/win32/SDL_syshaptic.c:912: warning: comparison is always
false due to limited range of data type
./src/haptic/win32/SDL_syshaptic.c:920: error: structure has no member
named dwStartDelay' ./src/haptic/win32/SDL_syshaptic.c:965: error: structure has no member nameddwStartDelay’
./src/haptic/win32/SDL_syshaptic.c: In function SDL_SYS_HapticUpdateEffect': ./src/haptic/win32/SDL_syshaptic.c:1152: error:DIEP_STARTDELAY’
undeclared (first use in this function)
./src/haptic/win32/SDL_syshaptic.c:1152: error: (Each undeclared
identifier is reported only once
./src/haptic/win32/SDL_syshaptic.c:1152: error: for each function it
appears in.)
make: *** [build/SDL_syshaptic.lo] Error 1

Commenting the problematic lines got me over this, however.

  1. During linking, -lunicows cannot be found. Again, removing it from
    the linker flags gets me over this. Out of curiosity, I did a search
    for unicows.dll and found it in various places on my box (Java 1.5 has
    it, Visual Studio 2005 and a few others), but none of them is in the
    system PATH.

  2. Finally, and that was the deal breaker, the generated SDL.dll
    references symbols that do not exist in User32.dll on Win2k SP4.
    DependencyWalker shows those are

GetRawInputData
GetRawInputDeviceInfoA
GetRawInputDeviceList
RegisterRawInputDevices

It was late by then, so I didn’t trace those functions down in the SDL
code and see if they could be safely removed or replaced.

Has anyone ever build SDL1.3 successfully on win2k?

Kai

  1. win32/SDL_syshaptic.c does not compile.

Known issue with cygwin32 and mingw32, their DirectX headers aren’t current.

  1. During linking, -lunicows cannot be found.

Yes, this is for Windows 98 compatibility, which I’m considering dropping.

  1. Finally, and that was the deal breaker, the generated SDL.dll
    references symbols that do not exist in User32.dll on Win2k SP4.
    DependencyWalker shows those are

GetRawInputData
GetRawInputDeviceInfoA
GetRawInputDeviceList
RegisterRawInputDevices

Ugh, these are not easily worked around. I’ll have Ryan take a look.

Has anyone ever build SDL1.3 successfully on win2k?

I don’t have access to Win2K, but this is useful information and I’ll
try to get this resolved.

If you want to enter an official bug report, you can do it here:
http://bugzilla.libsdl.org/

Thanks!
-Sam Lantinga, Founder and President, Galaxy Gameworks LLC

  1. win32/SDL_syshaptic.c does not compile.

Known issue with cygwin32 and mingw32, their DirectX headers aren’t current.

Actually, after making a complete fool of myself on the MinGW mailing
list, I realized that MinGWs win32api does not even contain the dinput
header :-). Turned out I had old dx5 headers in my include path
(probably from compiling SDL 1.2). I replaced them with dx8 headers
and it worked just fine.

  1. Finally, and that was the deal breaker, the generated SDL.dll
    references symbols that do not exist in User32.dll on Win2k SP4.
    DependencyWalker shows those are

GetRawInputData
GetRawInputDeviceInfoA
GetRawInputDeviceList
RegisterRawInputDevices

Ugh, these are not easily worked around. ?I’ll have Ryan take a look.

Looking at MSDN, I could confirm that these first appear in WinXP indeed. :frowning:

Hope you’ll find a way around that. I wouldn’t shed a tear about
dropping Win98, but my work laptop still runs Win2k, and that’s what
I’m stuck with for porting stuff to Windows.

KaiOn Wed, Feb 25, 2009 at 8:30 AM, Sam Lantinga wrote:

Hello !

Actually, after making a complete fool of myself on the MinGW mailing
list, I realized that MinGWs win32api does not even contain the dinput
header :-). Turned out I had old dx5 headers in my include path
(probably from compiling SDL 1.2). I replaced them with dx8 headers
and it worked just fine.

You can even install the latest DirectX SDK from MS
and use there libs and header files directly.
Since some time MinGW is able to use MS library files.
If i remember correctly only a litte renaming is needed.

CU