Resurrected Entertainment

Flashing the Atmel AT91SAM9M10-G45

September 15, 2010

This is a very cool board and has a lot of good features, but for those of you who are attempting to install your own operating system, you’d better make sure that only one of the jumpers are closed (either the data flash or the NAND flash)!  The flashing script will start the procedure but will halt after fetching the CPU id (incorrect) and will not continue. This is all very logical and there are good reasons behind it, but if you weren’t aware of the existence of the “data flash” jumper, then it can be very puzzling indeed.

The PC Gaming Onion

July 9, 2010

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

Thoughts on the PS3 (Slim)

July 8, 2010

Well, 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.

Bionic Commando 3D

July 6, 2010

I 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 wanders 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.

Dragon Age – Data Read Error

July 1, 2010

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

Public Service Announcement

January 7, 2010

The Revolutionary Guide to Bitmapped Graphics

December 29, 2009

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

Beware the Evils of Winter

December 14, 2009

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

Bringing multi-touch support to the much neglected PC

October 20, 2009

While 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

2D Boy Birthday Sale

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