Trying to build with FreeBcc (borland)

I’m trying to get my hardware surfaces back. This stuff worked fine back
in 1.2.8. I’m trying to tutor a haigh school student in game
development, so I grabbed the latest code to get him started.

Unfortunately, Borland support hasn’t kept pace with the evolution of
SDL. I’m hoping I can resolve this and contribute updated borland
support back to the community.

I’m hoping some of you out there have already dealt with these issues
and can give me some help with building the libs … etc.

Here are the steps I’ve taken so far.

Using freebcc and SDL-1.2.13============================
From a clean unzip of 1.2.13
unzipped Borland.zip
went to SDL\Borland\freebcc directory
Remmed all targets in makeall.bat except for checkkeys
ran makeall.bat

MAKE Version 5.2 Copyright © 1987, 2000 Borland
C:\Borland\BCC55\BIN\bcc32 -O2 -Hc -Vx -Ve -X- -a8 -b -k- -vi -tW
-tWM -c -DWIN32 -w-par
-I…\include;…\test;C:\Borland\BCC55\include;
-D;NO_STRICT;_NO_VCL -n…\test\ …\test\checkkeys.c
Borland C++ 5.5.1 for Win32 Copyright © 1993, 2000 Borland
…\test\checkkeys.c:
Error E2176 …\include\SDL_config_win32.h 62: Too many types in
declaration
Error E2176 …\include\SDL_config_win32.h 63: Too many types in
declaration
Error E2021 …\include\SDL_stdinc.h 114: Array must have at least one
element
Error E2021 …\include\SDL_stdinc.h 115: Array must have at least one
element
Warning W8055 …\include\SDL_endian.h 147: Possible overflow in shift
operation in function SDL_Swap64
Warning W8055 …\include\SDL_endian.h 150: Possible overflow in shift
operation in function SDL_Swap64
*** 4 errors in Compile ***

=========================
Edited SDL_config_win32.h
Borland does not support ‘long long’

The following may have been unnecessary
at this stage since these bits only
effect library builds,
which I haven’t done yet

Edited SDL_stdinc.h
Borland spells _strrev strrev
Borland spells _strlwr strlwr
Borland spells _ultoa ultoa
Borland spells _stricmp stricmp

MAKE Version 5.2 Copyright © 1987, 2000 Borland
C:\Borland\BCC55\BIN\bcc32 -O2 -Hc -Vx -Ve -X- -a8 -b -k- -vi -tW
-tWM -c -DWIN32 -w-par
-I…\include;…\test;C:\Borland\BCC55\include;
-D;NO_STRICT;_NO_VCL -n…\test\ …\test\checkkeys.c
Borland C++ 5.5.1 for Win32 Copyright © 1993, 2000 Borland
…\test\checkkeys.c:
C:\Borland\BCC55\BIN\ilink32 @MAKE0000.@@@
Turbo Incremental Link 5.00 Copyright © 1997, 2000 Borland

========================= SUCCESS
A run with lots of keys pressed
was plagued by key repeats and
keyboard buffer overruns …
but we’re making progress.

Next, I’ll clean up
Borland\freebcc\testvidinfo.mak

got rid of the MAINSOURCE = testvidinfo.bpf
probably not strictly necessary, but we don’t need it.

looks clean …

MAKE Version 5.2 Copyright © 1987, 2000 Borland
C:\Borland\BCC55\BIN\bcc32 -O2 -Hc -Vx -Ve -X- -a8 -b -k- -vi -tW
-tWM -c -DWIN32 -w-par
-I…\include;…\test;C:\Borland\BCC55\include;
-D;NO_STRICT;_NO_VCL -n…\test\ …\test\testvidinfo.c
Borland C++ 5.5.1 for Win32 Copyright © 1993, 2000 Borland
…\test\testvidinfo.c:
Warning W8065 …\test\testvidinfo.c 460: Call to function
’RunVideoTests’ with no prototype in function SDL_main
C:\Borland\BCC55\BIN\ilink32 @MAKE0000.@@@
Turbo Incremental Link 5.00 Copyright © 1997, 2000 Borland
================================= SUCCESS AGAIN
Video driver: windib
Current display: 1280x1024, 32 bits-per-pixel
Red Mask = 0x00ff0000
Green Mask = 0x0000ff00
Blue Mask = 0x000000ff
Fullscreen video modes:
1280x1024x32
1280x960x32
1280x800x32
1280x768x32
1280x720x32
1152x864x32
1024x768x32
960x600x32
848x480x32
800x600x32
720x576x32
720x480x32
640x480x32
640x400x32
512x384x32
480x360x32
400x300x32
320x240x32
320x200x32
A window manager is available

Disappointment!
No hardware video driver!
worked in 1.2.8
sad face.

Part of this may be due to the fact
that linking is done against the lib
files that ship in Borland.zip which
look to be many years old.

I would link against new builds of
the libs but I’ve been unable to get
the results to link due to missing
external references.

MinGw builds the libs fine, but
resulting executables do not support
hardware acceleration either.

I’m trying to get my hardware surfaces back. This stuff worked fine back
in 1.2.8. I’m trying to tutor a haigh school student in game
development, so I grabbed the latest code to get him started.

You want the directx video driver, which you can select by setting the
environment variable SDL_VIDEODRIVER to “directx”

It’s been disabled by default because of compatibility problems with
newer versions of Windows.

See ya,
-Sam Lantinga, Lead Software Engineer, Blizzard Entertainment

Sam Lantinga wrote:

I’m trying to get my hardware surfaces back. This stuff worked fine back
in 1.2.8. I’m trying to tutor a haigh school student in game
development, so I grabbed the latest code to get him started.

You want the directx video driver, which you can select by setting the
environment variable SDL_VIDEODRIVER to “directx”

It’s been disabled by default because of compatibility problems with
newer versions of Windows.

See ya,
-Sam Lantinga, Lead Software Engineer, Blizzard Entertainment


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

That does work for compiles under Borland, but not MinGw.

Is this the appropriate place to post suggested code changes for Borland
compatibility? I’ve got working code for the ‘long long’ issue.

I’ve also got changes for the _str??? functions but I haven’t worked out
linking without “Unresolved external SDL_str???”.