Digiwar - the Yeep-blog

August 23rd, 2005

The “good old days”

When installing games and programs on a new version of Windows you run into all kinds of problems because the OS is newer then the programs know. This made me think of how games worked years ago and I felt like writing it down and putting it up here. so here goes: A trip down memory lane.

Back in the old days, think mid-eighties, games were simple. They all fit on a few floppies and there was only one thing to keep in mind if you wanted to know if you could play a particular game: What videocard do I have?
Back in that day the requirements were simple. No one asked about your shader version capabilities, about hardware T&L or about the High Dynamic Dynamic Lightning possibilities of your videocard. No, you had MDA, CGA, EGA and VGA cards and that was it. MDA was a monochrome adapter (2 colors), CGA was 4 colors, EGA was 16 colors and VGA a whopping 256 colors. And even if you didn’t meet the specific requirements, sometimes you could cheat. We had an MDA and I often used the program “simcga” to run programs that were meant for CGA or even EGA monitors. Those days were simple.

Then games got bigger and better. Sure, by then we had a better computer with a VGA card, but as the games grew, they also needed more memory. The thing with DOS was that you just had 640k and that was it! Everything had to fit in there. So after the ‘videocard-age’, we enter the ‘memory manager-age’. You needed to make the perfect boot sequence so every driver and TSR was loaded in just the right order, so their memory consumption was as optimal as possible. It was the time QEMM reigned supreme. My worst encounter during that time was with “Master of Magic“. It required 632k of the available 640k to play.

Then games even got bigger! But so did our computers, now we had 4 MB of RAM to run Windows 3.x. But DOS didn’t give you easy access to the additional 4 MB RAM. It was hardwired to give you 640k and not 1k more. So we got other memory managers. The worst part was that getting access to RAM above 640k wasn’t possible with just one standard. So we had EMS memory and XMS memory and I believed even something called VCPI memory. During that time your computer presented you with a boot menu with boot options for almost every seperate game on your harddisk. Just to get them to run.

Then the memory problems went away. Protected mode made it’s entrance and everytime you started a game and it greeted you with the “DOS4/GW” text, you know it was going to be allright. Some games required 3 MB RAM, others 4 MB. But with 4 MB RAM, you could run everything. But again, progress hadn’t stopped. Because now we had Sound Blasters and even some Network cards for multiplay. And we entered a whole new age of problems: IRQ conflicts.
IRQ’s are used by hardware to get the attention of you CPU. The problem starts when two pieces of hardware start using the same IRQ. That just doesn’t work. So the more hardware stuffed in your PC, the more IRQs you need to use, the more chance for conflict there was. This was also the time when you has traded in your ISA videocard for a nice fast Vesa Local Bus videocard.

Windows 95 and DirectX was here! Before this game developers would need to support every piece of hardware specifically in their game, or target a range of products (NE2000-compatible network cards, or SoundBlaster-compatible soundcards), but with DirectX the game would just target DirectX and the hardware manufacturer would need to provide the driver for DirectX. Heavenly bliss! If it wasn’t for that damned stubborn IRQ conflict. So Windows 95 had this new thing called Plug&Play. It wasn’t called Plug&Pray for nothing! I turned off the PnP fearures of a lot of my hardware and managed the resources manually, because Windows would only fuck them up. You’d have everything working, then reboot and WHAM! all conflicted again. Windows decided the change the resource distribution for some reason. This was also the time Vesa Local Bus was out and PCI was in.

Then game the most frustrating period in gaming (at least for me). I switched to Windows 2000 and it had a feature called ACPI and it made IRQ sharing work. It truly made hardware resource conflicts a thing of the past. Everything seemed to work perfect. Seemed….because games games had grown even bigger and better. Hardware possibilities had increased tremendously. We had hardware accelerated 3D rendering and hardware accelerated sound. But the drivers these devices used were far from perfect. Driver conflicts and instabilities were a nightmare! Everytime you’d get a new game there was a good chance it would trigger and driver conflict and freeze your system. You could update the driver and make it work, but then some other game would break. And even updating a driver didn’t help that much most of the time. When bying a new computer you had to decide on a CPU brand (AMD or Intel) and then do reseach on what chipset would work best without conflicts, which USB chipset would cause the least trouble and ofcourse you also needed to be careful you had the right videocard for the games. Because the new games would try to use the new capabilities. Which would ofcourse be only on the brand-spanking new AGP videocards.

Then we got Windows XP and most of the problems went away. Some conflicts remain, but I personally don’t have them that often. The hardware has gotten much better, as has the drivers made for them. Microsoft does much better tests in the Windows Hardware Quality Labs, so driver upgrades do more good now. Now we only have to deal with the aforementioned shader version problems, memory throughput limts and other things commonly only related to not having the best and latest videocard. Although this might change a bit with the advent of hardware accelerated physics.

So what troubles lie ahead in the future? Well, maybe some conflicts with that new and shiny physics accelerator or maybe games that can’t cope with Least User Privileges in Longh…er…Vista.

[Last played: - ]

August 23rd, 2005

Programmatically editting: Outlook Express

A while ago I promised to give some information on how to programmatically read Outlook and Outlook Express accounts. I think it’s time to get started. So, first up: Outlook Express.

The information below works for Outlook Express 4.x up until 6.x.
All the account information for Outlook Express is stored in the registry. It’s stored in “HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Accounts”. Every subkey in this registry key is an account in Outlook Express. It can be an LDAP account, an NNTP account, an IMAP account, an HTTP mail account or a POP3 e-mail account. I’m only going to cover POP3 e-mail accounts, but you should be able to figure out the other types.

Under each account key that contains a POP3 account you’ll find the following values (other account types have other values, although some are the same):
“Account Name”: The name of the account Outlook Express uses.
“POP3 Server”: The POP3 server.
“POP3 User Name”: The username to log on to the POP3 Server.
“SMTP Server”: The SMTP server.
“SMTP Email Address”: The e-mail address this account is for.
“SMTP Display Name”: The nice name this e-mail address has.
“POP3 Prompt for Password”: If set to 0 (zero), Outlook Express wil not ask for a password when checking mail on this account. If set to 1 (one) Outlook Express will ask the user for the password.
“Connection Type”: If set to 0 (zero), it means connect through LAN. If set to 1 (one), it means use the same connection method as Internet Explorer. If set to 2 (two), it means connect using dialup. In the last case “Connectiod” will be used.
“Connectiod”: The name of the RAS entry to use when checking mail for this account.

Setting a password for e-mail accounts is not something I have done before. It uses Protected storage and that’s pretty complex. Maybe if I figure it out one day I’ll post some info, but for so far, I don’t know myself.

But that’s not it! What if you want to add and account, or change which is the default account!
If you want to add a new account, you need to look at registry key “HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager” and then at the value named “Account Name”. This value is the name the next account key should have when you create it under “HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Accounts”. So you read the value, create a key with the decimal representation of that value, padded with zero’s until it’s 8 characters long. Then you increase the value by one and write it back to the registry. Easy as that!

But wait, maybe you just want to change the default e-mail account! That’s even easier. Again, look at “HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager”. There’s a value there name “Default Mail Account”, it’s value is the name of the key the default account is in. There is also a “Default News Account” and a “Default LDAP Account”.

You will find more registry values in POP3 account keys, but these are the very simple basic ones. If you want to know what value denotes the POP3 TCP port, just change it in an account from inside Outlook Express and look in the registry at what changed. The above is all you need to create a working POP3 account.

Next up: Outlook 97, which I haven’t ‘cracked’ completely myself and it’s actually pretty complex. But more on that when I post the article itself.

[Last played: - ]

August 22nd, 2005

Star Wars: Knights of the Old Republic

Recently I installed Windows 2003 Server as my main workstation OS, so I’m still installing all the programs I need. Some of these programs are games.
So last night, I installed Star Wars: Knights of the Old Republic. A brilliant RPG from Bioware which I got into very far, but never finished. So I wanted to play it again.
In itself the installer had no problems with Win2k3, it just detected it as Windows XP (which I think is actually a bug in the detection code, but that doesn’t matter much). But the installer itself wasn’t perfect.
The last thing it did was show me a popup telling me that the game needs DirectX 9.0b and that DirectX 9.0c was detected, which was newer, so I was recommended not to install the DirectX from the CD. But I still got the question wether I wanted to install DirectX from the CD! Why? If they know I have a newer version installed, why not skip this question?

Then I started the config for the game and had it auto-detect the hardware. It told me my computer didn’t meet all the recommended specs. I was very curious as my computer is more then enough for games. The problem was my videocard. My Ati X800 with 512MB RAM wasn’t good enough. It needed an Ati 9200 with 128MB RAM at least!
This game and the setup for it are definitly not made with future progression in mind.

The game still kicks ass though!

[Last played: - ]

August 21st, 2005

Windows Server 2003 Workstation

My Windows XP machine started to behave weird. It would not recognize my DVD writer 9 times out of 10. It had lost it’s MIME handler for HTTP:// (so when I clicked an internet link from inside a program or an internet shortcut on my desktop, nothing would happen, or an error message would popup). And various other things made the whole Windows experience less enjoyable. So I decided it was time for a reinstall. Only this time, I would not install Windows XP, but Windows Server 2003.
I had heard it makes a kick-ass workstation OS if you just disable a few server thingies and tweak a few settings. I found a great guide to help me out and I’m very happy with the result so far. There are a few annoyances though….
The first thing is drivers. Most of the drivers I found are for Windows XP, not Window 2003 Server. While this is understandable for things like an MP3 player, I was surprised Logitech doesn’t have a Windows 2003 Server driver. Even worse, their setup detects it and refuses to install. I had to start it under “Compatibility mode” to get it to install. After that it works perfect, at least, I think it does. I do have a little trouble with the middle mouse button in FireFox and I’m not sure if this is because of the driver, or of FireFox.
As for games, I installed World of Warcraft and it works like a charm. Half-Life 2 installed perfectly as well (although I haven’t actually played it on Windows 2003 Server yet). Norton Systemworks also won’t install, but because of the nature of that program (some low-level OS thingies going on in there) I didn’t wat to risk installing it using compatibility mode.
I do miss UPnP support. I read it was removed because of security issues, so that’s a shame. But so far, so good. I really like this version of Windows. It actually boots faster then Windows XP!

I think more companies need to start supporting Windows Server 2003 as a workstation OS. It’s Windows 5.2 for crying out loud! The only difference between Server and Workstation versions of Windows have always just been settings and services that are installed during setup. Internally they’re practically the same!

[Last played: - ]

August 15th, 2005

No more fun games?

Last week I had a discussion with a friend about computer games (PC games). We both aggreed that it’s been a while since really new and cool games have been released. Sure, GTA: San Andreas is cool, but it’s more of the same, just bigger. Half Life 2 was also very cool, a reall step forward for the FPS genre, but still just a bigger and better Half Life 1.
Then two days ago I saw this. This sounds like a really cool new thing. Or how about Stubbs the zombie. Although the game itself might be ‘just another’ 3rd-person fighting/shooting game, playing the zombie killing the humans is pretty new.

[Now playing: Nine Inch Nails - With Teeth]

August 9th, 2005

Crippled OpenGL in Microsoft Vista follow-up

So, it’s been almost two days now since the news and so far I have not seen anything official by Microsoft. Just a lot of speculation and flaming. I did find this link which has a nice summary of features that are supposed to be in Vista. If you look at that list you’ll probably notice “Update 5″, which states that “When you start a game, the Vista graphics interface immediately unloads everything out of the memory that isn’t needed by your ‘game hardware’ (video, sound and physics card) such as the 3D Windows Desktop.” So, if I understand this correctly and if this information is true, then when I start a game, the Aero desktop is unloaded, meaning the whole reason why I can’t use OpenGL natively goes away. So, if I then want to play an OpenGL game, fullscreen (windowed will require Aero to remain loaded and will then probably use the D3D-OpenGL), it should work. This means that it would only pose a problem to people using CAD programs or those medical programs that use OpenGL in a windowed mode. In which case there still isn’t a big problem, because you can just turn off Aero and OpenGL will work natively.
Seems like this guy has about the same idea as me.

Still nothing from any Microsoftee on the subject though….

[Now playing: Korn - Got the life]

August 7th, 2005

Crippled OpenGL in Microsoft Vista

According to this Slashdot article, Microft Vista will change the way OpenGL is implemented. In previous versions of Windows they had a full-fledged OpenGL implementation, but for Vista, they will merely make it a wrapper around DirectX. This could cause a slowdown of 50% according to the article.
Ofcourse all the regular Slashdot readers scream hell and brimstone to Microsoft. I just don’t get it. Why would they care about a new version of Windows, aren’t they all running Linux or some BSD variant anyways?
One of the comments really pissed me off. It stated that no serious gamer would want to use Vista now. I’m a gamer, a passionate gamer and I couldn’t care less if the game ran on OpenGL or DirectX. I just want my game to look good and work. This comment really reminds me of the whole Acid2 thing with Internet Explorer 7 that started with this article by Paul Thurrott and sprawled a lot of commentary by a lot of people. My favorite was this one by Robert McLaws. Read it, because it also applies to the OpenGL debate on Slashdot. Most important quote: “Too many times, I think people forget about the reason “standards” exist in the firstplace. They are there to make life easier for computer users. NOT GEEKS.”

I’ll keep trying to read the page the Slashdot article referred to, but it has been slashdotted, so I can’t get to the source of this ‘controversy’ and really read what’s up. I tend to think this OpenGL implementation only applies to the desktop graphics and not to games. The reason: Microsoft need to be a 100% sure certain things are working and implemented correctly for their cool new desktop graphics engine to work. So they want to make sure it uses the API they have direct control over. When I got a change to read the article, I’ll post something new.

[Last played: Sick Of It All - Step down]

|