Jump to content

Avernum on rotated monitors

The Digital Monk

Recommended Posts

I rotate my LCD monitor because I find that the screen layout is much more useful for my programming work. When I try to run the Avernum 4 demo, it says it needs to change the screen mode and then crashes (access violation exception 0xc0000005). That is as far as I can ever get.


This is Avernum 4 1.0.1 for Windows. I am running Windows XP SP2 on a Dell Pentium IV hyperthreaded machine with an AGP based nVidia GeForceFX 5200. Screen Depth is 16 bit.


I'm guessing that the problem comes from not having any screen resolutions that you recognize (instead of 800x600, I have 600x800). I'd be happy to run in a window (monitors are 1200x1600, so I could do a 1024x768 window without having to unrotate), but that doesn't appear to be an option.


(End of tech support request, beginning of programmer-to-programmer comments)


I don't have experience with DirectDraw, but I have used SDL before (http://www.libsdl.org/). It is pretty nice for letting you specify how you want the surface to act, and it will get a real hardware mode for that if it can, but will provide optimized translations if it can't. That would let your internal code remain straightforward 16 bit color, and leave complications of striping, packing, color conversion, etc up to the SDL library.


SDL also works the same on Windows and on Mac OS X, which would seem to be a good thing. It also provides audio, input functions, and various other stuff, and is stylistically similar to DirectX. This is the library that people use when porting DirectX Windows games to Linux.


By the way, I understand the small business thing -- my small business is me and my wife. I also understand that changing out infrastructure is generally a huge pain in the neck -- I've been trying to convert my Windows OpenGL/DirectAudio/DirectInput program to Mac OS X for quite a while now. I can't use SDL because my application uses multiple top level windows, but SDL only supports a single "screen" (top level surface/window). Anyway, I just wanted to mention it in case it would help bring the OS X and Windows builds closer together. (I'd like to try out the new NetherGate, but am awaiting the Windows build laugh )


I also feel like I should try to contribute back, because when I did play around with SDL to make a little infinite random terrain exploring app, I used the GeneForge artwork for terrain and the character that wandered around. (Just for my own playing around -- never released anywhere) I'm not sure if I still have that code around (the machine's drive has since been formatted, so I would have had to have copied it somewhere), but if I do still have it and you'd like it for examples, I can send it. Come to think of it, though, it's probably better to just go through the SDL examples like I did -- I was writing that as a play app at bedtime, so it's probably really bad code rolleyes ...

Link to comment
Share on other sites

This would appear to be an issue with some aspect of the Geneforge 3 engine that Avernum 4 reuses/builds on. Geneforge 3 has the same problem (which I suppose means that this would be a shared bug report). I've just tried Avernum 1 and Blades of Avernum (the beginning and end of the "classic" Avernum engine), and they both run just fine with the screen depth set to 16 or 32 bit. (In a perfect world, it would be nice if when fullscreen was disabled they gained a draggable but non-resizable window and dropped the always on top property, but that's purely quibbling. But if you make a windowed mode for new games...)


OK, I've just pulled down all the demos for testing:



Avernum 1-3 (16 or 32 depth)

Blades of Avernum (16 or 32 depth)

Geneforge 1 & 2 (16 depth only)


Doesn't Work:

Geneforge 3 (any depth)

Avernum 4 (any depth)


I also run dual monitors, if that has anything to do with it (both are rotated). I just tested making sure that both monitors were at 16 bit (you can set them separately), but it didn't change anything.

Link to comment
Share on other sites

I know that it adds to the GUI effort, but it would be great if the newer games could support arbitrary resolutions. I just perused screenshots for NetherGate Resurrection, Geneforge 4 and Avernum 4, and it seems like all of them could support arbitrarily higher resolutions just by letting the main map window grow. (Note that I'm not talking about letting users shrink your current layouts -- just letting them go to bigger screens) All of the sub panels could stay the same size.


I only mention this because rotatable LCDs are becoming more common, and widescreen (16:9) is becoming common as well. 4:3 screen modes are no longer guaranteed to be available. If I played Avernum on my den computer, I'd like to take advantage of the 1368x768 resolution of my 37 inch television/monitor.


It would require some method of tiling the cool marble background that you use for window borders, but that shouldn't be especially hard. I personally would be okay with taking the section of marble in the stretch zone and just StretchBlt'ing (or rescaling some other way) it up until it was long/wide enough to work. Not anything with buttons or celtic knots or anything, but just the kind of blobby marble. It won't look quite as nice, but it wouldn't bother me either. Alternatively, various metallic gradient styles can scale or repeat even easier.


I also understand that this is not the fun part of designing these games, that adding it to released games won't bring in much if any additional revenue, and that you're deep into getting Nethergate Resurrection ported. I mean these more as things to consider when you sit down to decide what improvements you're going to put into Avernum 5's engine.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...