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 )
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 ...