The PC Gaming Onion
July 9, 2010 2:00 pmI have been caught in a diagnose, debug, and repair cycle for a few days now when using my PC. It's been a frustrating experience so far, and I have yet to arrive at a stable platform to play games, which is the reason why I began this epic quest in the first place. This particular problem has been quite nasty, and all the usual tricks and secret handshakes aren't working. I have had to systematically replace and diagnose each component of my system by placing everything from software services to my set of DRAM sticks under the microscope.
On the one hand, I do enjoy problem solving, so I could put the frustration aside sometimes and concentrate on the problem (although, I wanted to throw the machine out the window yesterday). However, problem solving was not my goal here. Since I'm on vacation right now, I want to play games, not fix computer problems. Like everything else in the desktop computer market, the complexity has risen to the point where an average computer user must treat their computer like a mystical black box. You might as well throw a big fat "No Serviceable Components Inside" sticker on the side of the case. Unless it's something simple, like a unplugged monitor or a mis-aligned video card, then I would expect most people to throw their hands up in frustration and start filing through their list of contacts looking for the local computer geek.
You don't need to understand everything about everything, you need to comprehend just enough so that you can effectively peel back a layer or two and fix your problem, or at least diagnose it. Of course, if it were that easy, I would be playing Bionic Commando right now. The hard part is dealing with all of these hardware and software layers, and trying to find that mystical needle in the haystack.
I would like to see a better solution to the problem of diagnosing a system crash. It's a hard problem, and one that cannot be fixed without first changing the system, and reducing the number of layers or at least fixing those layers to know stack. The problem is that layers provide a certain kind of freedom to hardware and software engineers. It allows them to ignore a lot of the inner workings of a system, and concentrate more on what they want to build, be it a game or a piece of tax software, so as much as I feel like getting rid of them right now, those layers are here to stay. However, we do not need all of those layers in all circumstances, and some people have customized their desktop configurations so that only the necessary layers are used when performing a task. These customizations are very high level, the user typically does not have a lot of control over the low level pieces of the operating system (unless you're using Linux, but if your goal is to play games, then you're not using Linux anyway). I don't think these kind of profiles are a good idea either, since that creates an even bigger nightmare while testing or debugging a failing product, and much of the configuration is beyond the understanding of a typical user or support personnel.
What the desktop needs is a specialized mode, which essentially brings some of the benefits of a console to the PC arena. This mode must be supported by the operating system, and consist of a limited but complete set of layers, so that game programmers can continue to write great games. That's it; nothing else should be included. By reducing the number of layers, and provide appropriate diagnostic tools for reporting on hardware configurations or problems, game development companies can target much more typical configurations while testing, and support personnel could diagnose problems faster.
Products like DirectX for Microsoft Windows were designed to solve that problem, but over time the development platform began to stray with the introduction of more layers and thus more complexity. Games which utilize DirectX are nice, but simply providing DirectX is not a complete solution, since there are so many services still running on the system, which have nothing to do with the game or the game development framework. These services can cause problems, add complexity, and serve to hide the real culprit, until we arrive at the situation I am dealing with today.
Categories: Uncategorized
No Comments »
Thoughts on the PS3 (Slim)
July 8, 2010 1:37 amWell, the PS3 has been out since late 2006 in North America, so I figure it's about time I gave the console a minute or two of my time. My first impressions of the console so far? It hasn't crashed yet, so I'm happy. On my wish list for the console would have been a longer USB cord for the controller, instead of skimping with a ~4-foot one. I mean come on Kaz, how close do you sit in front of your television anyway? The second item on this list would have been the inclusion of an HDMI or component cable, instead of the cheap-ass composite one supplied in the box. What's the deal Sony? I can buy an HDMI cable on eBay from a Chinese manufacturer for less than $10 (US) dollars a cable, and it's a nice cable too. Just to reflect on my ability to swing a good price with the seller: I'm not buying them in bulk, I don't have business relations with the guys who make them, and my company is not called Sony, so what is your excuse for not including them in an item which retailed for over $300 (CAN)?
I knew the PS3 Slim didn't have great compatibility with PS2 software before making the purchase, so I'm not blaming them, but I am choosing to think out loud. How is it that the creator of the Ps2 platform cannot produce a 100% functioning software emulator? Why can't they continue to work on it behind the scenes, and then release it as a separate product? I believe they are doing this, which is probably one of the reasons why they took it out of the PS3. The other reason is that the PS2 is still selling well which is helping to defray the high cost of the PS3. Once they retire the cash-cow which is the PS2 console, I would expect the emulator to appear on the market again in some form or another.
Categories: Uncategorized
No Comments »
Bionic Commando 3D
July 6, 2010 10:30 pmI downloaded this title from Steam a few nights ago and have been struggling with frustrating system lock-up problems ever since. I went through the usual suspects: the game and its patches, video card drivers, sound drivers, GPU temperature, CPU temperature (usually causes a reboot when the core temperature goes too high, but I investigated just to be sure). My machine was having the following symptoms:
1. The game would freeze in seemingly random locations - a reboot was required to fix it
2. Eventually my desktop froze as well at one point, which seemed to indicate it wasn't the game
3. I tried three different video card driver versions: AMD Catalyst 10.6, 10.5, 104
4. I tried a brand new video card, using a different chip set (nVidia), then subsequently returned it to the store
5. I tried posting to the Bionic Command message board with a DirectX dump (useless, apparently the game is too old)
6. I made sure my fans were running at peak efficiency
7. I cried (only a little)
Until it occurred to me, that it could be Steam causing the crash. So, I took Steam off-line, as it is not possible to play Bionic Commando without it (when purchased through the Steam network). Low and behold, it was a miracle. No freezes. For your reference, here are a few of my vital stats in case someone from Steam wonders by:
Windows 7 64-bit Professional
Intel Core2 Quad CPU with 4 GB of RAM
ATI Radeon 3850 with 500 MB of VRAM
Steam API v009; built June 30, 2010 14:43:46
Here's the system information Steam gathered.
Categories: Uncategorized
1 Comment »
Dragon Age – Data Read Error
July 1, 2010 12:48 pmIt has been a while since Dragon Age first appeared on the market. My wife have been playing off and on since the release, and we are close to completing the game, definitely within the last 25%. To make a long and frustrating story short, I managed to destroy our operating system installation accidentally one dark and stormy night (NTFS file system gone, EXT3 in it's place with additional files installed on top for good measure), on the very drive which held our Dragon Age and Fallout 3 games. Two very long games, so no small amount of investment. Obviously, there was much drama and hand waving.
Long story short (didn't we already do this part?), I recovered most of the save game files, reinstalled the operating system (Windows 7, 64-bit), and installed all of those nasty dependencies. Now, I was ready to install the game. I gingerly placed my Dragon Age game disc in the DvD drive, ran the auto-installer, and... whammo! A big ol' data read error in my face. Now isn't that just great. Insolent hardware! I went through this process several times later (copying contents from the disc to the hard drive, disabling the Data Execution Prevention for the installer, etc.), and to make a long story short, had no success with the same error appearing in seemingly random locations during the install. However there is a silver lining, and I eventually did manage to get a fully functional installation. Would you like to know how?
SCRATCH HERE TO REVEAL SECRET
I simply copied the disc's contents from another machine's DvD drive (an iMac in this case) to my Windows 7 box. Ran the installer and it worked. No fuss, no muss. Except for all of the fuss and muss I mentioned above. Please feel free to send me money if you find this helpful.
Categories: Uncategorized
1 Comment »
Public Service Announcement
January 7, 2010 12:38 pm
Categories: Comic, Retro
No Comments »
The Revolutionary Guide to Bitmapped Graphics
December 29, 2009 1:08 pm
This is another book from my library that I have decided to take a look back on and see if there are any useful tidbits to be used by programmers today. As with most technical books which are more than ten years old, there is usually an abundant amount of information about specific technologies which are no longer in popular use, or perhaps the technologies are still present in one form or another but the means to access them have changed dramatically. I personally believe that many of these books can give the novice programmer a background not taught in universities and colleges and will certainly give them an edge when working on limited or older machines.
The book does talk about video hardware used in that time period and delves deep into the programmatic underpinnings when accessing the display and creating custom video modes. I found some of the discussions to be noteworthy but if you really want a thorough explanation, you may want to investigate the Zen of Graphics Programming or the Graphics Programming Black Book. It also delves into a bit of assembly language primer, which is very typical for these books, since many of the routines were coded using that language. The introduction is short but may be a nice refresher for those who haven't gotten their hands dirty in a couple of years.
I've made a list of what was still useful for work you may be doing today - unless you're one of the lucky few who get to maintain software written in 1994. Your mileage will vary as some of the techniques are really just short introductions to a much larger field like digital image processing (DIP) and morphing. It even had a short introduction to 3D graphics, which seemed to be slapped on at the end because the publisher wanted "something on 3D" so they could put it on the cover.
- It provided color space introductions, conventions, and conversions for the following spaces: CIE, CMY, CMYK, HSV, HLS, YIQ, and RGB. Most of the conversions go both ways (to and from RGB space), although CMY/K conversion calculations are only provided from RGB space.
- Dithering and half-toning, followed by a chapter on printing. I think the authors mentioned Floyd-Steingberg in there somewhere, but it wasn't a full discussion.
- Fading the YIQ and HLS color space. I'm not sure why they didn't provide one for the RGB space, but it could very well be on the bundled CD-ROM.
- It introduces the reader to a few algorithms for primitive shape drawing and clipping, like Bresenham line drawing and Sutherland-Cohen clipping. It also included discussions and examples for ellipses, filled polygons, and b-spline curves.
- Extensive discussions on graphics file formats for GIF, JPEG, TGA, PCX, and DIB. Although these tended to be higher-level than what would have been useful for someone implementing a decoder for any one of these formats (with the possible except of PCX). Associated algorithms like LZW and RLE are also explained as they are used by encoders of these formats.
- The topic on fractals and chaotic systems was a little out of place, but was a little more extensive than the chapter on 3D. It did explain the concept of an L-system fractal, and even provided a generator for it. When supplied with a configuration file, it could produce fractals like the von Koch curve. It briefly touched on the Harter-Height Dragon fractal and introduced the Mandelbrot and Julia sets, but didn't delve into chaos theory, even though I'm sure one the authors desperately wanted to do so.
- Related to the discussion of fractals was the section on generated landscapes via the midpoint displacement method. While not a landscape per se, the authors digressed a bit to talk about cloud generation as well.
The book finally managed to get around to the reason I bought it in the first place many years ago, which was the all too brief chapter on DIP techniques. It quickly introduced and provided code for algorithms like the Laplace filter, as well as popular effects like emboss, blur, diffuse, and interpolation. The treatment was very light, so the reader will not walk away with a solid understanding for any of the example code, other than trivial effects like pixelate or crystalize.
Categories: Books, Graphics, PC, Programming
2 Comments »
Beware the Evils of Winter
December 14, 2009 12:08 amI was sitting in my basement tonight, peacefully roaming the country side after successfully defeating the lurking dungeon boss within the bowels of Dungeon 5 in The Legend of Zelda, and my cat nonchalantly brushes by my arm when she was getting off the couch. It was dry in the basement due to the cold weather, so in that brief instant it was enough to create a charge that passed from her to me through my NES controller and into the box. The game subsequently froze and I lost everything I had obtained in the last two hours of play. The spark was intense enough to be visible, and I know they can sometimes pack quite a wallop (as far as voltages found in most digital circuits are concerned), but I was touching a plastic controller at the time, so I've concluded that it must have been the work of the Devil or one of his subordinates.
Categories: NES
No Comments »
Bringing multi-touch support to the much neglected PC
October 20, 2009 4:33 pmWhile touch interfaces for small devices are creating a small revolution in our technoverse, the problems of transitioning the personal computer into this space is a little more problematic. The folks over at 10/GUI have done a good job in summarizing the problem and presenting a nice solution. Of course, whenever I look at new technologies like these, my mind always wanders to how they could be used to enhance the games I play. It's nice to have these kind of vices.
Interesting video on new human-computer interaction techniques
Categories: Hardware
No Comments »
2D Boy Birthday Sale
10:53 amI am really, really late in finding this out (I'm looking at you Jared), but you can still buy World of Goo and pay whatever you want for the title during their birthday sale. It's an experiment of sorts, and the data they collected is not terribly surprising (I've seen data collected before which indicated purchasers went "on the cheap" because that's "all they could afford at the time"), but if you think there is money to be made using this model, then it's certainly worth it to go whole hog and put your data where your mouth is, or your money where your data is, or whatever.
Categories: Games, Linux, Mac OSX, Windows
No Comments »
Use Windows. Because we’ve got you by the short and curlies.
September 20, 2009 11:39 pmIt's now 10:38 PM on Sunday, September 20, 2009. I've been installing a fresh copy of Windows XP since 6:00 PM yesterday night. My efforts have been on and off for the most part. Downloading drivers. Updating software. Finally installing the one and only piece of software I'm interested in using. You know, the usual chore. I'm sitting here with my glass of wine and a good book wondering why do people put up with it these days? Fundamentally, the Windows software process is just plain broken for the average user. I can pick any of the popular Linux distributions or almost any version of Mac OS X and do exactly the same thing which would be: install the operating system including drivers and updates, and then exactly one application. The only difference being, between the three operating systems, is that this pain would only last a short while (less than an hour) on Linux or Mac OS X and then it would be over. It gets even better if my home directories are preserved and I don't need to spend hours reconstituting them. But on Windows, it's just painful and frustrating.
Sigh. Thirty minutes and the download process is 4% finished. It's a 650 MB download, but I have high speed Internet access. I've downloaded things a couple of Gigabytes in length in less time. It's not my home connection and it's not my Internet provider. Whatever Microsoft is doing to serve me this file, whatever servers and load balancing machines they have to manage their network, it's not working. It's quite possibly the slowest download I have ever experienced, including during my time on a dial-up connection in the 1990's. I've used Bulletin Board Systems with MODEMs clocking in at just over 300 baud, and I have never experienced such a time dilation. I'm going to need to keep this machine on all night, just to download the equivalent of an Ubuntu Lite installation, which I just did yesterday and it only took 10 minutes.
Why do we put up with it? Why do we go through this crap, and why do we tolerate it? I couldn't tell you how many times I've installed a Microsoft operating system over the last 20 years. I couldn't tell you how many times I've done it in the last three years. I can tell you I've installed my Linux desktops a couple of times and I've upgraded my Max OS X systems once. But I can tell you that each Windows installation was painful. Every. Single. Time. Their installation process is nothing like Windows. Sure, the Linux side of things can be a bit more difficult if you're trying to do something different, but if you're just installing out of the box configurations - just like I'm doing with Windows - it's a walk in the park.
So why do we put up with all of this shit? It's not because we like it. In fact, this time around it was one of the worst installations I have done in recent months, all because I wanted to play a game, which is now sitting at 5% download complete. And herein lies why I continue to suffer this operating system: I simply want to use a piece of software which can only be run on Windows. Can you imagine what this process will be like if I want to play this game five years from now? Pretty to close to impossible, I think. Their installation and software deployment model is fundamentally broken, and they have yet to come up with anything better.
After all these years, they still don't have a dependency model for software packages. They don't have the concept of a single, atomic unit of software. Instead, they have a rats nest of files and directories scattered all across the operating system. Mac OS X have application bundles and a rigid deployment model; Linux has packages with dependencies which makes installing software, and the dependencies of that software a much better experience. They too have a rigid deployment structure which only makes the lives of the user that much easier. Sure, they have their technical drawbacks sometimes, like the availability of bleeding edge software to drive bleeding edge hardware, but that's only because the bulk of the market is held by Microsoft. Naturally, if the market dries up, then those hardware vendors will see to it that their drivers and helper applications make it to the operating system of choice.
On top of all of that, Windows developers are still doing really bad things because the model continues to let them. I continue to use the operating system because I want the software the developers are writing, but I have my limits and I will go elsewhere for entertainment. One of Windows' great strengths was their drive to maintain compatibility with older software products. This didn't make them popular but it kept them in business.
There are numerous stories about what the Windows operating system developers did "in the old days" to make obsolete or broken software work. You want Sim City to work with Windows 95 for the launch? No problem. Oh wait, it seems the developers at Maxis were sneaking their hands up the dress of the Windows memory manager. Ha ha. We'll just work in some special handling for that naughty piece of software. That backward compatibility created value. That kept people coming back to The Old New Thing. Windows 7 and Vista before that are changing that model. In their quest to improve every system and the kitchen sink with Windows, they seem to be forgetting the biggest pain point of their operating system. It's not the freaking file system, or the surface manager, or the rendering routines for adding fancy window dressing (ooh, transparency). It's the fact that I need to install a million, fragmented pieces of software in order to get things done. Oh, and in the mean time, reboot a few dozen times. Ha! That never seems to get old. Funny that.
Categories: Windows
2 Comments »


