Matt Hackmann

MattHackmann

The thoughts and goings-on of some programmer dad.

Fun with old computers

Every once in a while I get a hankering for a hands on type project. Back in May that project was the Xbox mod. This time around it was to build myself a new server after the last one I'd been using overheated while I was away on vacation and the air conditioning was off (at least, that's my guess on the diagnosis). Of course, I would have liked to build something from scratch, but college funds being what they are that isn't always the most viable option. Instead, I took a trip up the the local TriftKo (yes, they spell it with a "K") and picked up the cheapest (and at that time, only) computer they had. I really had no idea what kind of computer it was (though, I made a really close guess based on the ports on the back), but that didn't matter for my needs, namely, to run a web and file server.

Whenever I get a new computer I like to boot it in its "virgin" state to see what the computer is and what it was used for before it came into my possession (so far, I've only found mild pron on one computer). After that, I take the thing apart and, dipping into the vast amounts of old computer parts available to me, upgrade it to make it as high tech as possible. After a long amount of research, trial and error, a BIOS upgrade, and some dabbling in GRUB for DOS I was able to get the computer up to the following specs:

Pentium 166Mhz 64MB RAM 1.2GB Primary drive (still has Win98 on it) 4GB Secondary drive (running the latest Debian) DVD-RW drive (which doesn't have any power since there are only two large molex adapters available) Ethernet card PCI USB 2.0 card

Yeah, it's a laughable computer to say the least and its age did prove to be more of an issue than I originally anticipated. The first was the inability to boot from CD even though the BIOS claimed to support it. I figured the old BIOS was the problem, so I set about trying to update it. Unlucky for me, IBM has pulled all BIOS upgrades for old systems off their site so I was stuck wading through forums. Once I got the BIOS upgraded it still wouldn't boot from CD, but it did correct an issue with identifying the 4GB drive (and now I have support for drives up to 8.4GB).

So, after all those many hours I was still unable to boot my Linux install CD. It was about then that I had the genius idea of copying the Linux kernel off of the install disc onto the Windows 98 drive and starting the installer in GRUB from DOS. Took a few tries to get off the ground, but it did wind up working. Things were looking great, then Linux took six or seven hours to install. I decided to sleep at this point.

Luckily, after Linux was installed and I got ssh up and running I could close the box, clean up the mess that had appeared on the floor, and continue the finishing touches from the comfort of my laptop. Everything after that went pretty well, but there was still the issue of not being to use my 120GB hard drive full of stuff that I usually streamed to XBMC. Luckily, the fix for that was really, really simple. Buy a PCI USB card and use my external hard drive enclosure. For the first time in this entire project, and my entire time messing with Linux, it worked first crack out of the barrel without any extra configuration on my part (save changing my home directory mount in fstab).

So, it's been far more useful as of late, but I wanted to take it a step further. The box does have a sound card and seeing as it is sitting right next to my speaker system I figured "Hey, why not use it as a stereo too?" So, that's what I've been doing this evening. Getting the sound card to run was a bitch, especially with the little info I could find on the card itself. Looking through the startup messages it was being found as "AT931 Audio 16". Google turned up two pages on that. It turns out the card is actually a OPTi 82c931, but even finding the correct module for that was a pain in the ass (it's snd-opti93x). After that, I followed this handy guide on the AlsaProject wiki to get the rest up and running.

So now my computer plays sound which is pretty sweet. But, I'm again being bitten in the ass by its age. If you try to do anything while playing an MP3, file access or an HTTP request, the audio starts lagging. So, I think I've devised a clever way around said issue. I'm going to write a series of scripts that will convert the MP3 to a wave file and play the wave (which requires almost no processor time). Couple that with a web interface for making playlists and it'll be the most kick ass twelve year old computer of all time.

Returning to my Roots

They say all good things must come to an end. Such is true for my one week of summer vacation. It was brief, yet enjoyable. Got to celebrate my birthday with my family, eat grilled food and lots of potato salad, and also take the usual trip to Tulsa. It's a pity that it was so short, but I'm complaining too much. The school is giving me a bachelor's degree in less than two years, so this time next year I'll be out of school. But that's a story for another day.

As you may recall, last month began my two month long journey through the wonders of Flash. Last month focused primarily on Flash as it pertains to design, teaching us the interface, motion tweens, and just a hint of ActionScript. This month, however, is dedicated to nothing but ActionScript. To demonstrate these "newly acquired skills" our final project consists of making a game.

Now, I put "newly acquired" in quotes for a reason. For anybody who's frequented this blog long enough you should know by now that I am, or at least used to be, heavy into coding. Because of this I have an unfair advantage over the rest of the class in this regard and as such I am taking my project to ridiculous extents (far above the scope of the course). The nice thing, though, is that the instructor actually acknowledges the fact that I am as proficient as I am, so much so that I took the place of the lab instructor for one day (whilst the real one was waiting in line for his iPhone 3G). Being able to talk to the instructor about geeky stuff as equals is a nice departure. But, enough ego stroking, about the actual project itself.

I chose to challenge myself and create essentially a dumbed down clone of Street Fighter, but be completely extensible through external configuration files. The first thing I avoided was the use of graphics inside Flash itself opting instead to load sprite sheets from external sources. Everything is configured through XML sheets that define how a character should react, define where animations are within a sprite sheet, stages, etc. Amazingly, I've achieved most of this and all very, very quickly. The biggest problem I foresee is the addition of enemy AI, but I've got ideas on how to achieve this as well. Overall, though, I'm loving being back at the helm of the coding ship. I'd forgotten how much of a thrill can be derived from hours of typing if statements and nested for loops. Damn, it's good to be back.

Metal Gear Music Day!

I missed a week again, but here I am performing my civic duty whilst on vacation. Today, the music of choice is Metal Gear Solid. I recently just finished the first one and as soon as I return from vacation will begin work on MGS2. If you have a PS2 and have not plaed any of these games I highly recommend picking up the recently released Essential Collection as I did. Three games for thirty bucks is a really good deal for excellent games such as these. But anyways, on to the music.

Continue Reading

It's Super Awesome Vacation Time!

Summer is here, and with it vacation. Unfortunately for us Full Sailors, we only get about a week of summer vacation (I get ten days because all my classes let out early). However, that's not to say I'm not going to take advantage of the time off. Quite the contrary. Tomorrow I will be heading back to the good old midwest and chill with my folks. It's been over half a year since I've seen them, so I'm definitely looking forward to going back. I'm especially looking forward to potato salad. Mmmmmm....

Interestingly enough, tomorrow is also one year from my graduation. It hardly seems like I've been here for nine months, but there it is. It probably helps that I'm usually pretty busy and that most of this is pretty fun. Though, I will admit, Flash was pretty boring. Don't get me wrong, I enjoyed working on my projects, but they were small enough that I finished pretty quickly. And the last half of the course was a beginners guide to programming, something that I really don't need. So, while I did try to do more advanced things than what the project originally called for, there wasn't a whole lot of room to flex my muscles, as it were. You can check out my final project here. Yes, it is an homage to egoraptor's series of awesomeness (who I had the great pleasure of helping recently). My other class this month was 3D modelling. That class was a lot of fun. The teacher was cool, the project was fun; I just enjoyed the entire class. I'll have my final project up on YouTube sometime soon.

In other news, I have begun and am about half way through animating a real Flash cartoon, one which will be entitled Phoenix Awesome. I hope to have it up on Newgrounds sometime over break.

Well, that's about everything. I'll leave you with my MGP final project which I never actually posted on here. Enjoy

youtube video

Game Music Friday - Gerudo Valley

One of the first video game songs I remember really enjoying was Gerudo Valley from Zelda: Ocarina of Time for the Nintendo 64. Back when I had a crappy computer and little hard drive space, I would listen to MIDI files and Gerudo Valley was one of the few songs that had a pretty good version out there. Of course, now that disk space isn't an issue, I've moved on to MP3s. However, I still find myself listening to more remixes than the actual original itself (because, let's face it, the N64 instrument library sucked). But, anyways, here are this weeks Gerudo Valley music picks.

Continue Reading