red screen on non glut builds

Find any bugs in Vega Strike? See if someone has already found it, or report them here!
Post Reply
mgstrein
Star Pilot
Star Pilot
Posts: 5
Joined: Sat Jul 12, 2008 10:39 pm
Location: Seattle
Contact:

red screen on non glut builds

Post by mgstrein »

I'm building using Visual Studio 2005. When I run glut builds Vega Strike runs fine, however when playe Vega Strike with a non glut build the screen is red with a small black border. I can barely see in red on the bottem Vega Strike loading. Then the music starts and the black border goes away and the enitre window is red.

I was wondering if this has been seen before. I don't want to waste a lot of time working on something that has a fix already. I did a quick forum crawl and didn't see anything.

--Michael
You do not have the required permissions to view the files attached to this post.
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Post by loki1950 »

Welcome mgstrein not sure one of the devs should be by later but i have a feeling you may have to build a glut dll not sure of the VS2005 build tweaks i build Linux side but use the pre built windows binaries till safemode gets cmake working properly win side.

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
ace123
Lead Network Developer
Lead Network Developer
Posts: 2560
Joined: Sun Jan 12, 2003 9:13 am
Location: Palo Alto CA
Contact:

Post by ace123 »

I think it's a Vista bug with the special effects and windowed games.

Microsoft has always had a hack called an overlay to allow windowed programs to use the graphics card.
Basically the window is painted with a solid color, and the graphics card is told the color as well as the coordinates of the top-left point, and that way windows can overlap on top but not get painted that color (unless it happens to have that exact shade of color).

To see if the overlay is related to this, try taking a screenshot and see if that weird color comes out the same when you paste the screenshot into paint.

I don't happen to see the "Loading..." text you are talking about, however. (Though the JPEG compression caused some distortion--PNG is much better suited for screenshots)

My guess is that Microsoft fixed their version of Glut to workaround this Vista bug.

So you have to basically do one of a few things:
Disable special effects while playing Vega Strike
Play in Fullscreen mode
Download a newer SDL.dll and overwrite (or move away) the other SDL dll: http://www.libsdl.org/release/SDL-1.2.13-win32.zip
Try the "SDL98.dll" which was for windows 98, so it might be more compatible.
Use GLUT (though it has poor joystick and keyboard support).
Install Linux or WinXP

Try and see which of those solve the problem. I don't really know how to solve the problem and I haven't seen others report it.

Since you are already compiling it, feel free to play around with some SDL flags in "gldrv/winsys.cpp" and try turning off some things like SDL_GL_DOUBLE_BUFFER or SDL_GL_ACCELERATED_VISUAL... probably the best way is to set them to 0 instead of 1
mgstrein
Star Pilot
Star Pilot
Posts: 5
Joined: Sat Jul 12, 2008 10:39 pm
Location: Seattle
Contact:

Post by mgstrein »

Thanks for the excellent replay. You gave me a lot to work with.

First off I don't think it is an overlay the image I posted was a copy and paste from the window into paint. So if it is an overlay problem that trick didn't expose it.

Sorry for saving as a JPEG I will try to do png in the future, however you didn't not missing anything the picture I took was after the square fills the entire screen. If you want I can get one that shows the writting as well, although I don't think it will help too much it is just a the loading information in a small red font.

So far I have tried the following:

*Full screen mode -- no effect same red square.
*Downloaded newer SDL.dll -- no effect
*Renamed SDL98.dll to SDL.dll -- app wouldn't load although no big surprise there I'm sure the exported fxn sigs are different. I could try a relink with SDL98.lib but I have not looked at that in too much detail
*As I said the glut version does work but I'd rather not go with that
*I also run an xp machine and ubuntu but, and I sometimes think I'm the only person on the planet who says this, I like Vista better than both of those options. If you want a long explanation as to why we should start another thread but lets just say I'd rather not use that option.

I also started playing around with some of the settings written into winsys.cpp. The only change I saw occur was that with double buffering on you could see the two triangles that form the square slowly come together and then repeat. No splash image or anything. No change with the acceleration off.

Anyways I'll keep playing around with this. Since the glut version does work I'm not too concerned. I'm a little worried that my graphics card driver is just not as good as it should be. I have the latest but still sometimes they can misbehave. BTW I'm running an asus 1300 pro, basically a radeon 1300.

Also since the distributed vegastrike.exe works I think it is the way I'm building not running Vega Strike. Does anyone know what flavor of build that distributed version would map to?

Thanks so much for the great suggestions. If anyone has any other ideas please share them. If I figure anything out I'll post it here.

--Michael
ace123
Lead Network Developer
Lead Network Developer
Posts: 2560
Joined: Sun Jan 12, 2003 9:13 am
Location: Palo Alto CA
Contact:

Post by ace123 »

That's really interesting.
It does look like an overlay, but it's pretty hard to tell at times.

No, Vista's not bad. Indeed, many things are improvements from the way things existed in XP.
But the way I see it, things haven't improved enough to justify the massive increase in required memory and disk space, and the security changes and the driver problems when it first came out didn't help my opinion.

As to SDL, I just assumed that the dist version also had the same problem since it sounded driver-related or something of the sort.

Just a question: Could you try disabling Aero, then open the game and see if it works? (Or try putting it into "compatibility mode" if there are settings for that).

The release version was compiled using VC7 (.NET 2001).
The reason is that 2005 and 2008 depend on a bunch of .NET runtime libraries that seem pretty incompatible and cause different problems on each version of windows... they will compile and run fine on the computer that compiled them, but transfer them to another computer and you just get weird error messages when you open the executable.

I also committed a new EXE with the latest subversion changes, so you can maybe try that.
http://vegastrike.svn.sourceforge.net/v ... e?view=log
mgstrein
Star Pilot
Star Pilot
Posts: 5
Joined: Sat Jul 12, 2008 10:39 pm
Location: Seattle
Contact:

Post by mgstrein »

I got it working. Here is what I did. After comparing the svn logs for the folders for the 2005 project vs the 2001 that you said does the build. I noticed that the 2005 project had libs and for version 1.2.11 where as the 2001 did not. I dropped the older SDL.lib and SDLmain.lib into my libs folder and copied over the SDL header folder. Rebuilt and presto it worked.

I have 1.2.11 in my bins folder. So linking off of 1.2.11 lib should be fine. I can see there being problems if I was linking with a newer version than the one in my bins folder but they matched. So why does it work when I link off of 1.2.7, an older lib? This one has me scratching my head. I confess I don't know as much about linking and loading as I should. Heck I don't know enough about binary interfaces/layouts in general. And there are times I'm amazed by Microsoft and COM. (in good and bad ways)

Here is my best guess. I think 1.2.11 exports the the old functions so linking off of 1.2.7 works. But there must be some new functionality in 1.2.11 that does not play nice with my graphics card. Sound reasonable?

Anyways it's working now. We might want to take a look at sycronizing lib versions. Is there a known reason for some projects have a different version than others or is just side effect of maintaining different build folders?
Post Reply