Mantises are still having sex.

This is just something I remembered I took a picture of a while back, and I thought “what better place for this than the interwebs!”. Really, how often do you see praying mantises fucking on the side of a trailer? Like… never.

Anyways, that’s not the real reason for this post. Actually, there’s not much of a reason. I just wanted to ramble about my latest gaming. I’m not sure if it’s sad or not, but I’ve been having the most fun playing old games lately. Specifically, I played both campaigns of Warcraft 2, plus most of the Human campaign in the expansion pack (Beyond the Dark Portal). After a week-long intermission of playing NOLF, I moved on to another oldie: Command and Conquer (free here). However, the NOD campaign wasn’t as fun as the GDI one; GDI has too many versatile heavy weapons. If you don’t have some SAM sites yet, they’ll fuck you up with helicopters and especially air strikes. If you don’t have 5 light tanks, you’ll get rocked by a mammoth tank. And no more carting engineers into their base in an APC to jack their shit. :( So, I gave up on NOD and switched to C&C: Red Alert. Occasionally, I get an urge to play C&C: Renegade again. It’s too cool being in the middle of a strategy game. Alas, I never finished Renegade the two times I tried.

I’m not sure exactly what sparked this bought of classic gaming–maybe nothing in particular, but I’ve got some guesses. One is that my system is falling below the acceptable performance level for most new games. I was looking forward to playing Bioshock until I found out about the steep system requirements. Even though the community has fixed the video card shader requirements somewhat, I still feel like I’m having trouble getting into the game because of performance issues–try battling a Big Daddy with 6fps. Another reason for not playing recent video games is that I feel like I’m turning into the demographic old gamer that only enjoys strategy or nostalgic gaming. Hopefully, a game will come along soon to prove this wrong, though. The final reason is that my taste for them has been soured by constant bugginess and instability problems. It seems like every game I’ve played recently has had at least one problem I’ve needed to google, even the older games. Let’s go through a list, shall we…

  • Red Alert: Problems installing under XP. Fix: Run the DOS installer under compatibility mode for Win95 or just copy the install directory to your hard drive. Don’t forget to patch it.
  • No One Lives Forever: No music. Fix: Run DXDIAG, under Music tab, disable “Default Port Acceleration”. Apparently, NOLF uses MIDI music with their own sound font.
  • Warcraft II: Doesn’t run in XP. Fix: Get the Battle.Net edition.
  • Sven Coop: Can’t play online. Fix: Crack the authentication, because WON is dead. Check out Steamless Project, but probably don’t bother with the WON alternatives.
  • Dark Messiah: Overheated my video card initially, but then just started randomly freezing halfway through the game. Fix: Gave up on this one.
  • Stalker: Oh, where to begin. Fix: Play Deus Ex or Oblivion.
  • And finally, Fortress Forever…

I’ve been pretty excited off and on over the last year about Fortress Forever, the source engine remake of Half-Life’s Team Fortress Classic mod. Well, I finally checked up on it recently and noticed they finished it in September, weeks before the launch of TF2 in fact. But of course, when I got onto an empty server to give it a whirl, I locked up within minutes. Googling around, I came up with several supposed fixes to the generic “looping sound crash/freeze”. I dunno about crashes, but whenever my system freezes and the sound loops every few seconds, I know it’s a video card problem. Sure enough, most of the fixes were of the video card variety. So I tried the typical “update your drivers” fix, thus finding out that ATI has inadvertently (or maybe not) started phasing out AGP cards from its newest drivers (7.7+). Shit, my Direct3D wouldn’t even initialize with the 7.9 Cats. I went back to the next latest set of Omega drivers (based on 7.4) because I enjoy the control panel that doesn’t force bloatware rape on your system like the Catalyst Control Center that fucked my system over last time I installed it. But part of the Omega control panel doesn’t work for some reason, so I may end up going back to 7.6 + ATI’s control panel from some old Cat version (4.12?).

Long story short, the drivers weren’t the issue. I tried lowering sound card acceleration in DXDIAG and setting FF to launch in Direct3D 8.0. None of this did any good. Then I got a hint that reminded me of a “fix” I used to get Stalker working. You may recall from this news post, how I set some Paged Pool parameters to stop Stalker from freezing. At the time, I was unsure that such a change to the memory management would affect other programs negatively. From my understanding, setting PagedPoolSize to 0xFFFFFFFF basically just told Windows to use as big a pool as it could, thus making it difficult to run out. Apparently, the source engine doesn’t like this. After I forced a value of 402653184 (Dec) bytes (384MB), I was able to play an entire game of the classic map Well as a sniper. (Betting this fix may also work for my Dark Messiah troubles, as it also uses the source engine.) I’m still feeling out this new TFC, but it was still great fun and everyone in the community is awesome. I had some problems sniping though, at first…I kept trying to make lag shots like I was still on a 56K modem. Nope, you don’t need much lead with 70ms ping.

Oh…and FUCK YOU, STALKER! Ukrainian piece of shit.

Posted in Gaming, Troubleshooting | Tagged , , , , , , , | Leave a comment

It’s 10:30, right? Ttssssss…I gotta take a news break.

A lot of stuff has happened since my last post: my sister got married, I had a birthday, and school started back. However, none of those are particularly interesting or tech-oriented, but here’s some things that are:

Since my last post about fixing my video card, the fan naturally died again. I should have expected this. Trick #2 to know about fans is that after they’ve failed once, they’ll probably fail again soon after fixing them. I overlooked this fact because I was too satisfied with my work. But after confirming the fan had died a second time, I went ahead and ordered a copper GPU HSF kit (VANTEC CCB-A1C) from Newegg.

The installation was mostly straight-forward except that I had to modify the 3-pin fan connector to fit the 2-pin header on the video card. I did this by putting the 3-pin wires (of which there were only 2; the third wire is typically for RPM monitoring) into the previous fan’s 2-pin connector (the plastic part). The thing about 2-pin and 3-pin connectors is that they don’t terminate the wires the same way, so I basically just had to force the wires down into the connector, hoping the pressure would keep them contacting the header pins. It’s pretty ghetto.

Kaylen’s a sweetie. She got me a Western Digital 320GB (3200AAKS) SATA drive for my birthday. Unfortunately, she (and I) overlooked the fact that this drive only has a SATA power connector, which my PSU lacks. In my defense, the Newegg page that I sent to her about it had no mention of what power connectors it offered. Newegg came to the rescue again, though, with a SATA power to 4-pin Molex adapter for a few bucks, which was shipped in an absurdly large box filled almost completely with packing peanuts.

The hard drive upgrade plan (which I devised a year or more ago) was to copy each current drive up to the next highest capacity drive and then remove the oldest drive, a near-failing Maxtor 40GB. Thus, the 40GB drive’s data would go to the 80GB, the 80 to the 160, and the 160 to the new 320 (in the reverse order, obviously). This process went rather smooth until I got to the 40GB drive, which held the OS and boot loader stuff. I knew I couldn’t just copy the drive within Windows and expect it to boot. There are just too many OS-locked system files, for one thing; but also, the Master Boot Record won’t be copied. I looked around for a while trying to find the right way to approach this. After a whole afternoon of failed WD Data Lifeguard bootable floppies, I finally found a program that would do everything I wanted, Acronis True Image. It will step you through a simple wizard that will even let you resize copied partitions and then force you to reboot into a Windows console (like Scandisk uses) that flies through the process. It even gives you time to unplug the source drive so that it can assign the correct drive letters to the destination. It worked flawlessly (after I converted the source drive from FAT32 to NTFS). I now have about 280GB free across 3 drives–I wonder how long it’ll take me to fill them all up.

news238Lastly, if you haven’t seen the new show on G4, Code Monkeys, then you really need to. Even if you don’t get that channel, you know there are plenty of sources for the episodes on eMule. Basically, it’s a show about 80s video games that looks like an 80s video game. The comedy is a good amount of raunchy and there are plenty of game references strewn about the sets. Seriously, if you’re a gamer or a programmer, you will love this show. /end plug

Posted in Hardware | Tagged , , | Leave a comment

Links and Alarm

Links

First of all, you may notice that there is actually a link for the “Links” item in the nav. Over the past few days, I’ve been designing, coding, and adding the links themselves for this new links system. The building process was pretty similar to all the systems I’ve done so far, especially the Photo Album. I design the page in HTML first, so I can preview how tables and such will look and debug browser compatibility locally. Then I take this HTML page and convert it to server-side form, quantifying item HTML blocks with PHP loops and adding the necessary SQL queries. Somewhere in there, I create the database tables and start adding in records. This is pretty much how every system was built.

The links system is seemingly the most simple system I’ve built so far, but it’s actually a bit more complex. For one, the category (directory) hierarchy is not linked through paths like the Photo Album, but is linked by item IDs and parent category IDs (a tree). This makes sense because the category hierarchy is logical here, instead of being based on physical paths with the Photo Album. The advantage of this method is that items (links and categories alike) are not dependent on a whole chain of parent categories but merely the parent ID. This makes moving items, renaming items, and the MySQL queries easier. The disadvantage being that mapping the category paths is a recursive nightmare.

Another complex part of the links system is the feature that checks link status–whether or not the URL of the link is working. I’ve set it up so that every Friday morning (or when I run it manually), a script will request every link URL in the database. It then takes the HTTP response code from the requests and puts them into the database (this will appear as a popup tip for the link status), decrypting them into a brief OK, MOVED, or BROKEN status that appears for each link on the page. This seems to be working quite bitchin so far, except that FilePlanet always returns 403 Forbidden. I suspect that they filter out non-supported browsers through their default index this way.

Except for any bug-fixes that may pop up, the new links system is done. I’d recommend you comb through the more than fifty links already there; you may find something useful.

Snake’s Alarm

I put some more work into my alarm program before getting involved with the links business. Mainly, I’ve been working on improving the stability of the sound system. Luckily, FMOD handles all of the low-level loading, decoding, and outputting stuff for me, but I still have to implement when, what, and how it does its job. My original implementation of FMOD would crash whenever you tried to play two sounds at once. Because I didn’t want FMOD to hold onto some sound resources when alarms aren’t being played, it didn’t initialize until an alarm went off. Thus if two alarms happen to overlap, the second will indeed try to reinitialize the system, crashing it in the process.

I solved this problem by making a simple sound system stack. When the first sound is pushed onto the stack, the system initializes. When the last sound is popped, it closes. This fixes the problem with multiple sounds playing, but now I’m working on a problem when sounds end. I’ve traced this back to the fact that each sound alarm gets its own thread. My next big challenge will be bringing the different alarm threads together into one big sound system thread (with the stack). Easier said than done, but I will prevail!

I was also going to talk about my current gaming trends in this post, but I’ll save that for another time. In the meantime, here’s a rare picture of Kaylen and I out in the sun. Oh noes!

Kaylen and I catching some much-needed rays on the beach at Kiptopeke State Park.

Posted in Programming, Website | Tagged | Leave a comment

Half-Life:Source

I’d been interested in trying out Half-Life: Source ever since I first heard about it. But I kept hearing that the changes were so minimal that it wasn’t worth it. Well, I recently got it anyways and decided I would clear up all the changes that it does and doesn’t make. Most of them are inherent to the engine as you will see.

news226

Water

Water
You can’t deny that the new water looks fabulous compared to the original’s.

news227

Reflections and Lights

Reflections and Lights
Pools of water look nicer thanks to some cubemap reflections. The lighting is also crisper and more realistic, casting shadows from objects.

news228

Fire and Smoke

Fire and Smoke
These effects are volumetric and thus more realistic looking than the sprite ones from Half-Life. Also notice that small fires are appearing on the tentacles; although not common, objects can burn now.

news229

Physics (Buoyancy)

Physics (Buoyancy)
Valve just couldn’t stand it. They couldn’t let this scripted buoyancy puzzle from the original game alone and replaced it with the familiar HL2 cage with blue barrels one.

news230

Physics (Non-Rigid Chains)

Physics (Non-Rigid Chains)
All the game’s ropes are replaced with non-rigid ones that twist and sway realistically.

news231

Ragdolls and Blood Decals

Ragdolls and Blood Decals
All models will ragdoll when dead. When shot, they place high-resolution blood spatter decals on the walls. Notice here that the scientist on the left was placed dead into the game, but the other was killed during play, ragdolling and creating hi-res blood spatter. Hi-res bullet hole decals can also be seen.

news232

Model Blood Decals

Model Blood Decals
When shot, models get blood decals placed on them–something not even possible in the original game’s engine.

news233Even with all these engine changes, the fact remains that all the textures and models are the same lo-res, lo-poly versions from the original game. It would have been really nice to see some crisp, high-resolution textures made. It’d only take a small group of artists less than a year. They wouldn’t even have to change the map’s geometry and it would have looked so much better. However, there have been some attempts are upping the quality of HL:S textures and models. One in particular called High Definition Source stands out. All of the weapons, most of the character models, and many textures have been redone, making it slightly more visually appealing than before. I tried putting Half-Life 2 models into HL:S, but they don’t work right, of course. The animations are missing, so they just kind of stand around and look pretty (see the screenshot at right).

There are also changes that you can’t see–changes to the audio system. Half-Life used a fairly early implementation of surround sound APIs in the form of Aureal3D or EAX. And while they sounded pretty awesome back in the day, now they’re noticeably flawed mainly because of their use of preset audio zones. You’d walk into a new zone, and instantly, the sound is transformed differently. In HL:S, the reverberations are smooth and not overdone. The surround sound is also smoother; sounds don’t jump from one speaker to the next. Like the game’s textures, the majority of sounds were not improved. Although, some were actually replaced, such as physics and door sounds. The music was converted to 128kbps MP3, which sounds very good, but will stop playing upon the frequent level loads.

I’d recommend Half-Life:Source if you were a big fan of Half-Life or have never played it. Otherwise, it is rather underwhelming. I still enjoyed it, though, and am now looking forward to how it should have been done with the community mod Black Mesa.

Posted in Gaming | Tagged | Leave a comment

Snake fixes his video card.

Recently, I’ve been noticing increased GPU temperatures on my Radeon 9600 XT courtesy of ATITool and MBM. At idle, the GPU was already up to 140°F. At first, I just shook it off as a fluke or an overcompensation as I wasn’t seeing any real issues or graphical corruption. Looking back, I realize that the reason I hadn’t been seeing any problems was the games I (and Kaylen) had been playing: GTA3 (6 year old game), Alice (7 year old game), and Project64 (based off of 11 year old technology). None of these games even take advantage of some of the three year old technologies on my video card; so it wasn’t being stressed enough to fail.

Then I decided to play Dark Messiah since it’d been out long enough to get passed its initial release stability problems; I never had any problems with the demo version either. But once I got through the training mission, my system just locked up completely. I restarted and checked the BIOS hardware monitors and everything looked acceptable. Suspecting something else, I started playing again with the MBM dashboard open on the secondary monitor. When the system locked again almost immediately, I looked at the dashboard to see an insane 240°F (115°C) for the GPU core temperature–well beyond the boiling point for water. I was surprised to see it get that high before failing.

At this point, I acknowledged that the excessive temperatures reported indicated some cooling problems with the video card. I removed the card from the system so that I could get at the cooling apparatus better; and sure enough, there were some large chunks of dust clogging up several of the fins on the sides. I felt that the amount of dust was even capable of slowing the fan down enough for failure. After cleaning and replacing the card into the motherboard, I booted up and checked the temperatures–still ~140°F at idle. To see if there was any sort of improvement, I tried the “fuzzy spinning cube” stress test of ATITool. It got up to and then leveled out at 219°F, locking after a few minutes. There was still something wrong; however, cleaning the dust chunks out of the heatsink did seem to alleviate some of the heat stagnation.

news218

Testing the fan with a battery after oiling.

I let the system POST and then went into the BIOS so I could poke around in the computer case while it was on. I positioned a mirror and flashlight so I could see the GPU HSF, and as I had expected, the fan was not spinning at all. I took the card out again and moved it to the kitchen table so I could work on it. I removed the HSF from the GPU and then slid the wires out of the fan power connector. I was going to test the fan with some battery power; however I didn’t know what voltage the fan normally took. But I figured 9V was probably a safe bet and easiest to test with. I laid the exposed fan wires on the battery terminals and nothing happened. It was looking like the fan might just be burnt out and I would need to order a replacement, but I had one more trick up my sleeve.

news219

Curiously enough, the chip appears to say Radeon 9570 XT instead of 9600 XT.

As Kaylen looked on in amazement, I removed the sticker on top of the fan to reveal the mechanical access hole. As you may know, a couple drops of household oil into a ball-bearing fan can bring it back to top speed or even quiet it down. So, that’s what I did, followed by manually spinning the blades until the motion felt smooth. As you can probably guess, the fan buzzed right up. While I was at it (and because I had made a mess of what was already there), I replaced the questionable thermal compound that was used previously between the core and the HSF. It was a silver material, but not necessarily comparable to the quality of the Arctic Silver I replaced it with. Kaylen had fun snapping pictures while I did this. You can see them below.

And after I put everything back together, I did get to play Dark Messiah for five hours without any problems. It’s actually a lot better game than some of the reviews made it out to be. It reminds me of a cross between Enclave and Thief 3–the former for the combat style and the latter for the atmosphere. However, I will admit that the overabundance of convenient environmental traps to kick or cut detracts from the realism. But at the same time…fuck it, the game is still fun.

Posted in Gaming, Hardware, Troubleshooting | Tagged | Leave a comment

GTA3 Modding and Stuff

The day after my last post on Stalker, I finally realized that Stalker sucks. It has a good design but was poorly executed. I came to that conclusion upon getting to the final “level” (should be called an area, but their shoddy translation rears its head again) in which you have to rush through the outer perimeter of the Chernobyl Power Plant in about six minutes before the reactor has a blowout. I wasn’t even told that I had to do everything before the blowout, so my play style dictated that I creep around and then hunker down until the blowout was over; but here’s the thing: it never ends. When I looked it up on the forums and saw that was the case, I just threw in the towel. I had enough of this game and its half-assed gameplay. I only wanted to play it because people related it to Deus Ex repeatedly. But no, it isn’t like Deus Ex; it wishes it was like Deus Ex.

So I was trying to decide what game I would partake in next, and as you could guess from this post’s title, I chose Grand Theft Auto 3. I had only played this game through once before back in 2003. But when I remembered how irritating the gangs were in that game, I grew more uneasy about playing it again. I recalled quite specifically a quote from my (late) blog on January 1, 2003:

… Then I played GTA3 for the rest of the day…or..er..night and early morning. I have 58 of the 100 secret packages, and that armor at my hideout for getting package 50 is going to help a whole lot. I finally did beat the Turismo mission, although I had to cheat to win after about 40 more attempts to win. I had to use the time slow cheat so I could see dangers and react more quickly. The problem wasn’t speed, because I had a Stinger from Staunton Island, but the fucking car blowing up. Once, I was so fucking close to winning, I was on the home stretch with nothing in front of me and could see the final waypoint. Then, because I was in Chinatown, a Triad member shot my car and it was enough to set it over the edge and start burning. I kept going but it blew up within feet of the win. I streamed obscenities for about five minutes and woke up the parents. Usually, though, it was a shotgun-wielding Mafia member that set my car ablaze. When I slowed it down, I made sure to run them over or block their view with another car. It’s too bad I had to cheat, but it wasn’t anything too drastic, only a speed change, so I could react in time. It’s impossible to complete missions in Portland now, though, because all the gangs hate me. I only go back for secret package hunts, now.

news217

The code to my GTA3 mod.

Knowing the gangs would ruin my gaming experience, I looked around the GTA3\data directory for a config file that handled gang weapons. After I didn’t find anything in the plain-text config files, I suspected the main.scm file handled such attributes. Just from my observations of the file in UltraEdit, it appeared to be a structured scripting language. After a few Google queries, I came up with a very nice program called Barton Waterduck’s Mission Builder that can decompile the script file. Of course, as with any decompiler, you can only get it back into an “assembler-like” format; all control structures except jumps are lost. But I was at home with the code in only a few hours, having successfully implanted some code to change the gang weapons when in mid-game (you can see that code in the screenshot at right). Naturally, I tooled up the mod to work with the game’s story changes so I could release it to the public. Information on the final product can be found here.

Posted in Gaming, Modding | Tagged , | Leave a comment