New Utility: Verify Game Released

Submitted by jbreland on Wed, 08/01/2018 - 01:28

Verify Game (verify_game.sh) is a Linux-native script to check and verify your video game backups (ROMs/ISOs/etc.) against trusted sources.  It's meant to fill the gap for this kind of utility under Linux.  It's intended to just verify games, so there are no additional ROM management features included such as renaming, but it does include a few handy features such as transparent decompression and parallel verification.

Please see the Verify Game page for details and the download link.

This is one of the many scripts I mentioned in my general update that I've been tinkering with for the last few years, hence the immediate jump to version 3.1.  :-)  Expect more to follow.

How to Strip and Inject XCI (Nintendo Switch ROM) Certificates under Linux

Submitted by jbreland on Tue, 07/31/2018 - 22:02

Note: I previously posted this to Reddit, but posting here as well for permanence.  This post is of a technical nature and focuses on messing with dumped Nintendo Switch game cartridges, so for most people reading this site it'll be of little interest.  For anyone else interested in the subject, by all means continue reading...

This won't be of much use to people running Windows, but it may be helpful for fellow Linux users (and potentially OSX users as well). This will show to to strip a certificate out of a dumped XCI ROM, as well as restore it to return the ROM back to its original state. XCI Explorer provides an easier way to do this from within Windows, I just don't run Windows. :-)

So here is a Cave Story+ ROM that I dumped with gcdumptool:

$ md5sum Cave\ Story+.xci
a311902acb6813bf61f9cde9e0139913  Cave Story+.xci

If I try to verify the ROM (using a home-grown scripts that checks against no-intro DAT files), we'll see it doesn't match because the certificate field is stripped in the No-Intro dumps:

$ verify_game.sh -p xci Cave\ Story+.xci
Warning: No match found for XCI game 'Cave Story+.xci'

Using the following dd and printf commands I can strip the certificate and copy it to a separate file. Note that the checksum of the new XCI is different from the original and, this time, matches against No-Intro:

# First, backup the certificate to a separate file
$ dd bs=1 skip=28672 count=512 if=Cave\ Story+.xci >Cave\ Story+.cert
512+0 records in
512+0 records out
512 bytes copied, 0.0010961 s, 467 kB/s

$ ls -l Cave\ Story+.cert
-rw-r--r-- 1 user user 512 2018-07-30 19:01 Cave Story+.cert

# Next, strip the certificate from a copy of the ROM file
$ cp Cave\ Story+.xci test.xci
$ printf '\xff%.0s' {1..512} | dd bs=1 seek=28672 count=512 conv=notrunc of=test.xci
512+0 records in
512+0 records out
512 bytes copied, 0.00115365 s, 444 kB/s

$ md5sum Cave\ Story+.xci test.xci
a311902acb6813bf61f9cde9e0139913  Cave Story+.xci
af8ac186efd0fa1a02d0c63c40dd2fd4  test.xci

$ verify_game.sh test.xci
Verified XCI game: Cave Story+ (USA).xci

So far, so good. Now, let's say something happened to my original dump of Cave Story+ and I wanted to inject my certificate back into the stripped copy to re-create the original. The following dd command will write the certificate back to the ROM. Note that the test.xci file then has the same checksum as the original.

$ cat Cave\ Story+.cert | dd bs=1 seek=28672 count=512 conv=notrunc of=test.xci
512+0 records in
512+0 records out
512 bytes copied, 0.000806952 s, 634 kB/s

$ md5sum Cave\ Story+.xci test.xci
a311902acb6813bf61f9cde9e0139913  Cave Story+.xci
a311902acb6813bf61f9cde9e0139913  test.xci

Hope someone finds this helpful.

Legroom General Update

Submitted by jbreland on Tue, 07/31/2018 - 17:47

Wanted to put out a short general update. I clearly haven't been putting much time into the legroom.net website in recent years. It honestly just hasn't been enough of a priority compared to other stuff going on. Heck, it's been over a year since my last post, about a major upgrade mentioning a few remaining issues that I still need to resolve... and those issues are still unresolved. Sigh

However, while I haven't posted much to the website, I've still been tinkering around with stuff, writing new scripts and whatnot that would be of interest to at least some people out there. I'm going to make an effort over the next few days to start publishing this stuff on the site so it's publicly available. To be clear, nothing here will be earth-shattering, but it'll include a few posts, scripts, tips & tricks and whatnot that some my find useful. So, you'll see a flurry of activity while I'm working on this, and then afterward I'll try to get back into the habit of posting new stuff here to share with the world.

In the process I'll likely clean up some other content on the site. Much of the content is dated and I've left it on here solely for archival reasons, but I mean really - how useful is my Installing Gentoo Linux page originally written in 2003 for a Pentium III-based system really going to be today? I'm not sure yet what will go and what will stay, but just a heads up that changes are coming. That's it for now. If anyone's still reading this site after being idle so long, well, buckle up. Going to get (comparatively) busy soon!

Major Website Upgrade

Submitted by jbreland on Sun, 04/09/2017 - 16:04

I've recently upgraded the Legroom.net website, as the new look of the site probably gave awway.. This was a major upgrade, with some significant changes:

  • I've upgraded from Drupal 6 to Drupal 8. I got most of the old content migrated over, but it's still a work in progress.  Currently:
    • Most visibly, I've switched to the default Drupal 8 theme, bartik.  It's not ideal, but it'll take quite some time to port over my old theme, so I'm not sure what I'm going to do about it yet.  At the very least I plan on tweaking bartik to better meet my needs, but I'm not sure how much of the old look and feel I'll be able to pull over.
    • Forum content is completely missing.  This appears to be due to a bug in the migration scripts.  I'll see if I can write a script to cover that myself, but honestly don't know if it's going to be worth the trouble considering they've been read-only for several years now.
    • Navigation/links/permissions may not be 100% correct at this point, though most things should work.  I need to tweak a few things to work with the new/different permissions available in this version of Drupal.
    • There are known rendering issues on several pages, especially wherever dates are shown.  I haven't had time to rewrite them to use the new Drupal API yet.
  • I've upgraded from PHP 5 to PHP 7.  This has affected a number of support scripts on the website, but I believe the user-facing scripts should be working as expected now.  Finding and fixing all issues in all scripts will likely be an ongoing process for some time.
  • I've switched to Let's Encrypt for TLS certificates instead of my own LegRoom CA.  This has two important implications:
    • From now on, the secure (HTTPS) version of my website should be trusted by any browser.
    • As a result, I'm forcing encryption on by default for all visitors.

I'll be tweaking the site much more and working out the kinks over the next few days.  In the meantime you see anything obviously wrong or missing, please let me know so I can add it to the list.

Convert to FLAC 2.1.4 Released

Submitted by jbreland on Sat, 09/03/2016 - 23:08

I just uploaded a minor update to Convert to FLAC. It adds support for converting Windows Media Audio (WMA) Lossless and Meridian Lossless Packing (MLP). MLP is a format commonly used on DVD-Audio and Blu-ray audio discs; note that you'll need some way to decrypt and rip the MLP files from the disc - they can't be copied directly.

For more information:
Convert to FLAC home page and downloads
Convert to FLAC ChangeLog

New Tutorial: How to Hack and Take Full Advantage of Your Wii

Submitted by jbreland on Wed, 12/03/2014 - 00:45

I picked up a Wii earlier this year and decided to hack it to see what benefits that would provide. The results were, to be honest, quite spectacular. After spending quite some time digging through various HOWTOs scattered across the internet with often conflicting or out of date information, testing different configurations and applications, and running through quite a bit of trial-and-error, I finally have a solid and extremely functional Wii that lets me do pretty much anything I want with it. Some of the highlights include:

* Boot directly to WiiFlow (a slick homebrew launcher application), bypassing the health and safety screen and main Wii menu
* Rip any Wii or GameCube game to an attached 500 GB USB drive
* Browse, select, and launch any previously ripped Wii game from the USB drive
* Browse, select, and launch any previously ripped GameCube game from the USB drive (note: this requires a GameCube-compatible Wii)
* Play older games via emulators (though, honestly, PC emulators provide a better experience)
* Run various and miscellaneous utilities such Wii and GameCube memory card management utilities, allowing me to copy/backup saved games from the Wii or GameCube memory card to my computer

The end result is that I have every one of my 27 Wii games and and 25 GameCube games ripped and stored on the USB drive, and I can play any one of them now by simply powering on the Wii, browsing to the desired game in WiiFlow, and pressing A on the controller. No more disc swapping, and no more worrying about where to even store all of the games so they're accessible (they're now all boxed up in a closet, along with my GameCube). It's a wonderful thing. :-)

For details on how to hack your own Wii, if you're interested in that sort of thing, please continue reading:

How to Hack and Take Full Advantage of Your Wii

HTPC Upgrade 2014

Submitted by jbreland on Wed, 09/17/2014 - 01:15

Note: I updated the post about my 2013 desktop upgrade based on some component changes and my thoughts/experiences after about year. Feel free to check it out if you're interested in such things.

I built a new Home Theater PC over the summer. I didn't get around to discussing the parts here as I usually do (though you can find the details on my hardware specs page), but I've been very happy with it so I thought I write a (relatively) quick post about it to share some details.

Case
nMediapc HTPC 7000B ($80 - Newegg)

For me, the case is what makes the HTPC a home theater PC as opposed to just a PC that you have connected to your TV. While I've never found an HTPC case that meets 100% of my desires, I found the HTPC 7000B a while back and was quite taken with it. It's taller than I would care for and looks slightly more "PC-ish" than I would prefer, but it has a number of great features going for it:

  • The looks - while not perfect, it still looks pretty damn good sitting right under my Blu-ray drive next to the rest of my home theater system. At first glance from across the room, you really don't notice it's a PC until you start looking a little closer.
  • The depth - it's much shallower than typically PC (even HTPC) cases, so it fits in with the rest of my components much better. For example, desktops are generally in the 18-21" range, most HTPC cases I've found are 15"+, but this one is only 12.7" - for comparison, that's just about the same depth as the Oppo blu-ray player it's sitting under.
  • The height - while I listed this as a con above, it's also a plus - this case is just tall enough, and not any taller, to allow the use of a full-sized video card while not being any taller. For the short term, this is critical as I need to use my old Nvidia card in this case for component video out (more details below).
  • Built-in small window in the front of the case to add an infrared receiver so you can use a remote with this system without requiring a hardware mod or external receiver

After building it and using it for a few months, I can happily report that I'm overall very satisfied with it. It looks good, it fits everything I need, and the airflow and cooling is reasonably (though not exceptional) and quiet.

The one and only complain I have is that they placed the IR window directly in front of the optical drive support beam. I could not physically install the IR receiver because the support beam was right where the receiver needed to be. The only thing I could do to fix that was bend the support beam out of the way, but then that makes it useless for the optical drive. Fortunately, I'm not using an optical drive in this system, but I'd like the capability to add it if I need one in the future, but because of this design that's no longer possible. Still, everything else about the case is just wonderful, and since I'm not actually using the optical drive it's not really an issue, so I can give it a pass on that.

Overall, big thumbs up and highly recommend.

Motherboard
ASRock H87M Pro4 ($90 - Newegg)

The case requires a microATX motherboard, and after narrowing down the options I went with the ASRock board above due to price and the relatively modest selection of features I wanted for this system. Final verdict? I f*ing love it. It's stable, easy to setup UEFI-wise, boots almost as fast as it takes for my TV and receiver to fully power on, and has been very, very stable and reliable. It puts both of my recent desktop motherboards to shame, and I'm now sorry I didn't go for as ASRock for it when I had the chance.

Unfortunately, ASRock boards always seem to be available in only limited supplies for some reason, but if you see one that seems to fit your needs, grab it. I seriously can't recommend this highly enough. After the hell I've gone through with my desktop boards, working with this one has been pure, unmitigated joy.

CPU
Intel Core i5-4690s ($215 - Newegg)

I wanted a powerful but low-power/cool processor for this system, and the i5-4690S fit the bill perfectly. It's pricey, but for a fast quad-core processor w/ turbo (though unfortunately no hyperthreading) and perfectly capable embedded graphics for a HTPC running at just 65 W, it's worth it for me.

CPU Cooler
Noctua NH-U12S ($70 - Newegg)

I was so pleased with the Noctua cooler I added to my last desktop that I decided to add a similar, lower profile version to this system, and once again I'm very happy with it. It's super quiet and does a great job of cooling the CPU. Highly recommended.

I really don't have anything else to say about it, but just a word of caution - it's a tight fit in this case and with the motherboard I used. I had to play around with the orientation of the cooler quite a bit until I found a position that works, and even then the tips of the heatpipes came so close to the case fans that they would actually come in contact causing a rattle whenever someone walked across the floor and caused the case to vibrate just a bit. I ended up propping the cooler up a little bit by wedging a cable between it and one of the DIMMs, which solved the rattling problem. Just wanted to give everyone else a heads up - if you use these same components in your build, be prepared to play with it a bit to get it just right; otherwise, you may want to look for a more compact cooler.

Memory
G.Skill Ares F3-1600C9D-8GAO, 8GB DDR3-1600 ($80 - Newegg)

Not much to say here. 8 GB is more than enough for this system, the RAM itself is low-latency and low profile, and I've been happy with the brand for some time. It just works.

Power Supply
Seasonic SSR-450RM, ATX, 460W, 80 Plus Gold ($140 - Newegg)

Not much to say here, either. Like the Noctua cooler, I was very happy with the Seasonic PSU I picked up for my last desktop, so I used one here as well, and it doesn't disappoint. Recommended.

Hard Drive
Crucial M4 CT128M4SSD2, 128GB SSD (Newegg)

I picked up one of these on sale at Amazon for $80 a while back, which was a hell of a deal. It's not very big, but it's fast, I don't need much space for this system (in fact, I'm only using 6.5 GB on it, as all of my data is stored on my NAS), and, most importantly of all, I already had it and didn't need it for anything else. :-) This is a good drive, but honestly you'll want to pick up something more recently if shopping for SSDs today.

Video Card
EVGA e-GeForce 8800GTS 320MB Superclocked 320-P2-N815-AR (Newegg)

This is a ridiculously old card now, released back in 2007, but it's a critical component for my HTPC as it's the only video card I have that will support component video out, and as far as I can tell no cards on the market today support this feature. I'm still using a TV and receiver from before HDMI existed on appliances, so I absolutely need this feature right now. I'm planning on upgrading my home theater in the next year or so, at which point I'll probably switch over to using the embedded Intel HD Graphics 4600 controller with HDMI, but in the meantime this seven year old card is still kicking and still working great.

Other
I'm using the embedded sound card (Realtek ALC892 HD Audio codec and embedded NIC (Intel i217-V on my motherboard. Both work fine for my needs, but aren't particularly noteworthy.

For input I'm using a couple of controllers. The first is an Esky Mini i8 wireless mini keyboard/touchpad. It's actually not too bad for what it is, though for anything that requires a lot of typing I'll just SSH in from may laptop.

The second is a universal remote controller using the RC6/MCE protocol with an internal USB IR receiver. This works and makes navigating XBMC convenient, but it's not without it's flaws.

For one, the design of the board is just stupid, with the receiver sticking up perpendicular to the board. This requires that the entire board be placed sticking away from the IR window, which is likely to cause problems because there usually isn't going to be that much free space behind the front panel of a case (see my case comments above for more on this). Having the IR receiver by parallel to the board would've made much more sense as I could then just mount the board flush against the front of the case.

Second, something (I don't know if it's the board, the protocol, or just the Linux driver) prevents the multiple signals from the remote from being processed properly. If I hit down twice rapidly, it'll only register one press. If I hit down, say, four times rapidly, it'll register something like six presses. If I want to press any button two or three times, I have to purposely press them slowly to get it to register. This quickly gets very irritating. I don't think this board is necessarily the cause of this, but it definitely keeps me from loving it like I thought I would.

Third, despite my best efforts, I can't get this to power on the system from an off (S0) state. I can get the Esky keyboard to do that, so the system is obviously capable of this, but the IR receiver apparently won't send the correct signal to power the computer on.

All in all I'm reasonably happy with the IR receiver for the investment I made, but I'll probably look into switching it out at some point for something that'll hopefully address some of the above issues a little better.

Closing Thoughts
On the whole, I'm very, very, very, very, very happy with my HTPC. I'm running Gentoo Linux on it and have it set to boot directly into XBMC, which I use as the main user interface. It boots fast, runs fast, operates very quietly, and looks quite good mixed in with my other home theater components. If you decide to build your own HTPC, I hope this will give you some inspiration and useful tips.

Hey, what do you know? This actually did end up (relatively) short, by my standards. :-)

Website Upgrades

Submitted by jbreland on Mon, 12/02/2013 - 19:15

I just upgraded a number of components on both my website and server, as well as made a few backend configuration changes. If you notice anything not working correctly, please let me know.

How to Install and Configure MS-DOS 6.22 (Yes, Really)

Submitted by jbreland on Sun, 08/11/2013 - 01:23

I just posted an extensive new HOWTO regarding How to Install and Configure MS-DOS 6.22. I'm sure you're probably thinking, "WTF?", and you have every right to, so let me paste a bit from the HOWTO introduction that explains why I bothered to take the time (quite a lot of time, actually) to write this up:

This walkthrough covers installing MS-DOS 6.22 from the original installation diskettes. Why write this in 2013? That's a very valid question, to which there are a few answers:

  • Setting up a fully working DOS system will give you great appreciation for how far computing has come. For old-timers, it will be a walk down memory lane; for youngsters who've never used nor even seen DOS before, it should be quite an eye-opening experience to experience first hand both how primitive DOS was and yet how capable it could be.
  • A working physical DOS system is the most authentic way to (re-)experience classic PC games. DOSBox does an amazing job of supporting DOS games on modern platforms, but for perfect accuracy, including the full memory management experience (which can be a game unto itself), a real DOS system can't be beat.
  • There is a dearth of detailed information about MS-DOS on the internet. This makes sense as MS-DOS predates the web as we know it today, but I don't want knowledge of this system to be lost to time. I did a significant amount of research for this project, and I want to document and share what I've discovered and re-learned for future reference.
  • Perhaps most importantly, why not? This project was inspired by a previous project to resurrect my old Packard Bell, my first computer that, not coincidentally, ran MS-DOS 6.2 and Windows for Workgroups 3.11. Rebuilding and enhancing it from a hardware perspective was a fun experience, and now I'm doing the same from a software perspective.

If you're curious, please continue reading, but take heed: geeky content ahead.

Desktop Upgrade 2013

Submitted by jbreland on Tue, 07/09/2013 - 01:03

Update: 09/14/2014
I updated the post to account for a couple different components that I swapped out, as well as some general comments about my thoughts/experiences with the components after nearly a year.

Update: 11/04/2013
I finally settled on and ordered all of the components. I updated each item below to clarify my final selection, so please read on if you're interested in the details.

It's been over three years since my last post about upgrading my desktop, which can mean only one thing. It's upgrade time again! As I've done in the past, I'm going to post the details and part selection here, both to help organize my thoughts on the subject as well as solicit feedback. Unfortunately, unlike my previous builds, the comment system for this site is currently disabled (see this post for the details, if you're interested). So, if you do have any feedback or suggestions, please hit me up on IM or shoot me an e-mail; I'll post any feedback I receive in a future update.

My current desktop was originally built in 2007, and was upgraded in 2010. At this point, it sports a Nehalem-based Core i7 with 8 GB of RAM, a couple SSDs, an Nvidia GTX 460 video card, and other miscellany. If that sounds like a pretty beefy system to, well, that's because it is. I've actually been very, very happy with it, and it's still the fastest computer I've every used. It does everything I need, and does it well.

So, you may be wondering why I'm interested in upgrading at all. That's a fair question, and it comes down to three basic reasons:

  • Greatly improved motherboard/chipset support for certain features such as Serial ATA 6 Gb/s and USB 3.0
  • Front panel USB 3.0 ports on a case
  • After six years using, upgrading, and tinkering with the same basic computer, I'm just ready for a change

If not for the USB and SATA support (which I really want, and almost upgraded last year to get), this computer could easily last me another couple years as-is. I've been on a three year upgrade cycle for the past few years, and I've been building my computers with that cycle in mind, but this time I think I'm going to aim for five years. I'm sure there will be some new hot technology introduced within that time frame that I really want, but honestly, modern multi-core CPUs (especially the Core i7 processors with hyper-threading) are fast enough even for my generally crazy needs, and with solid support for super fast I/O interfaces now for my SSD and USB disk drives I think I should be good for a while.

Because I want to get a new case as well, I'm going do a complete build this time rather than another upgrade. As noted my current desktop is still quite capable, so I'm trying to figure out what I want to do with it once I'm done. I'll probably move it to HTPC duty (which also provides emulator-based gaming in my living-room, so all that horsepower won't be going to waste), with my current HTPC possibly being relegated to classic PC gaming duty. It'll be fun figuring out how exactly to handle all of that as well. :-)

I probably won't be ready to pull the trigger on this until July (the core components below have just launched, and I want to give things a few weeks to settle down), but since I've already begun my research I wanted to go ahead and document it here. So, with all that out of the way, let's get down to business.

CPU
Intel Core i7-4771 ($320 - Newegg)
Alternatives:
Intel Core i7-4770K ($350 - Newegg)
Intel Core i7-4770 ($310 - Newegg)

Update: 09/14/2014
The i7-4771 has worked out well. It's very fast, as one would expect, and hasn't given me any issues at all. Intel's still an asshole for the forced, arbitrary product segmentation, though.

Update: 11/04/2013
I decided to to go with the Intel Core i7-4771. This is a slight upgrade to the "locked" i7-4770 so that the default clock speed is now on parity with the i7-4770K. Given the rather shitty overclockability of the i7-4770K and the loss of other features, I decided trying to overclock this just wasn't worth it, and the i7-4771 should be fast enough as-is to last me five years.

The choice of CPU largely dictates the rest of the components, so I'm starting with that first. My last two builds/upgrades have used high(ish)-end Intel CPUs, and I've been very happy with both of them. Unfortunately, without a competing high-end offering from AMD to spur competition, Intel has gotten lazy on the desktop side. Their recent CPUs have only marginal performance improvements over previous generations (focusing instead on mobile-centric features such as power consumption), product selection is extremely limited, and prices are pretty high. Again, though, AMD doesn't have a high-end competitor, so if I want the best processor for a high-performing five year system that's at least reasonably cost-effective, then the i7-4770 line is pretty much the only option. So, while this is undoubtedly a stellar chip, I'm rather disappointed in the circumstances leading to this decision, which is kind of an odd thing.

One other item of disappointment is Intel's forced and rather arbitrary market segmentation, which restricts certain CPU features to certain CPU modules. The Core i7-4770K that I listed above, is part of their "unlocked" line of processors that allow overclocking. Unfortunately, unlocked processors are also feature-crippled, because apparently Intel feels that their customers shouldn't be able to get both a top performing and fully featured CPU. Nevermind that enthusiasts buying those high-end, unlocked parts are the also the people mostly like to take advantage of those additional features, such as VT-d, a feature I'm personally interested in that can be extremely useful in certain virtualization scenarios. Instead, they want their consumers to choose between the best performing parts, and slower, but more fully capable, parts. Assholes.

So instead of the i7-4770K I'm also considering the "locked" Core i7-4770. The specs are pretty similar, but the i7-4770 gives me VT-d support (potentially useful in the future for virtualization, which I do run on my desktop) and some other goodies, whereas the i7-4770K gives me the possibility of overclocking my CPU (potentially useful in the future so I can eek out some more performance if/when needed). But, because Intel has become lazy and has no real competition on this level, I can't have both. Assholes.

Right now I'm leaning toward the i7-4770K, but that's not definite. AMD also announced a new CPU refresh just yesterday, so I'll be interested to see how those look (especially considering my growing dissatisfaction with Intel), but I think it's unlikely they'll be compelling enough to change my mind. I really, really hope AMD can get back in the game over the next couple of product cycles, though. We need that competition, and I'd really like to give AMD another shot my my desktop if the can put out a compelling enough product.

For additional reference, here's AnandTech's review of the Core i7-4770K (and Haswell platform has a whole):
http://www.anandtech.com/show/7003/the-haswell-review-intel-core-i74770k-i54560k-tested

They also wrote-up a detailed analysis of the Haswell architecture a while back:
http://www.anandtech.com/show/6355/intels-haswell-architecture

CPU Cooler
Noctua NH-U12S ($70 - Newegg)

Update: 09/14/2014
I'm very happy with this cooler. The thing's a beast, but it's so quiet and cools very well. I've since added Noctua coolers to two other systems, and I've been happy with those as well.

Update: 11/04/2013
I went with the Noctua NH-U12S as originally mentioned. It's much larger than I would've liked, but at least slimmer than many of the alternative options, and should be whisper quiet even at high load. This is probably overkill since I don't plan on overclocking after all, but it'll be the first high-end air cooler that I've ever used, so I'd still like to get it anyway just to see how well it works.

I used the stock cooler on my previous two builds, which worked perfectly fine, but the fan was definitely noticeable when the CPU under load. For this computer, taking the five year plan into account, I'm looking at three main factors:

  • Near silent operation - I don't want to hear it even under full load
  • Great cooling performance - necessary to deal with Haswell's higher CPU temps (especially if I decide to overclock, as all reports indicate this CPU gets very hot quickly
  • Not intrusively large - some CPU coolers can, quite literally, occupy almost the entire case. I want something compact enough that it won't get in the way of anything else.

The Noctua NH-U12S seems to score well on all of these. Based on the reviews and comparisons, it doesn't excel at any one criterion, but is a solid, reasonably priced all-rounder.

Motherboard
Intel DZ87KLT-75K ($250 - Newegg)
Original shitty choice:
Gigabyte GA-Z87X-UD3H ($160 - Newegg)
Alternatives:
Asus Z87-PLUS ($160 - Newegg)
ASRock Z87 Extreme6 ($175 - Newegg)

Update: 09/14/2014
The Gigabyte board was a total piece of shit. The main reason I'm adding this update is to warn people away from it. It's buggy and extremely unreliable. One (or both) of my DVD/Blu-ray drives would occasionally fail to be recognized by the motherboard when I started my computer, Wake-On-LAN didn't work reliably at all, and the computer had a very bad habit of turning itself back on immediately after you shut it off, such that it was literally impossible to shut the computer down without holding the power button in for 8 seconds to force it off. I tried opening a support ticket with Gigabyte, but got several shitty, very unhelpful responses. After suffering through that for several months, I switched over to the Intel board listed above and I'm now done with Gigabyte, at least for the next couple generations until they hopefully get their shit together again.


As for the Intel board, it's fine, but it has its quirks as well. It's much more expensive than the other choices, and because it's Intel I was hoping it'd be super stable, but that hasn't been the case. It has a really nasty bug that prevents it botting from ANY video device other than the built-in HDMI controller if you disable Legacy (BIOS) booting, which caused me a lot of grief when initially setting this up as I have no HDMI-capable devices in my house (they also state this bug was fixed in the UEFI firmware I had on the motherboard at the time, but that's a lie). It also has Wake-On-Lan issues like the Gigabyte, and it's the slowest booting motherboard I've had, well, ever for a desktop. Aside from the Wake-On-Lan issue, though, it is stable once I got it up and running, so while I'm not overly happy with it, I can at least stick with it for a while. I highly doubt this is going to be a 5-year computer because of this, though - I'll almost certainly upgrade my motherboard (and, by extension, processor) before then to try to get to something better/faster/more stable.

Update: 11/04/2013
I went with the Gigabyte motherboard. As mentioned below I had some quality concerns regarding the choice of components in the ASRock motherboard, and between Gigabyte and Asus I gave the nod to Gigabyte just because I have a Gigabyte board in my current computer and have been happy with it.

I've narrowed down the list of motherboard contenders to the above three. Each has their pros and cons, but the general difference is that the ASRock board seems to pack more features than the Gigabyte and Asus board, but at the cost of lower quality components. I still need to sift through the details a bit more before I'll be able to decide on one.

Unfortunately, while each of these are perfectly adequate, none are ideal because, as discussed in the sound card section below, I'm constrained by the need for a conventional PCI slot. For this product cycle, motherboard manufacturers are only including PCI slots on their low- to mid-range motherboards. So, if I want to be able to carry forward the last great sound card fully supported under Linux, I need to give up the higher end stuff. Honestly, it doesn't seem like it's going to be a big loss, but I would like a bit more options - the three above do cover my needs, but only barely, and aside from the ASRock (which I have some quality concerns about) none feature much in the way of niceties.

Memory
G.Skill RipjawsX F3-2133C9D-16GXH ($151 - Newegg)

Update: 09/14/2014
No complaints here. It just works.

Update: 11/04/2013
Decided to go with some fast DDR3-2133 low latency (CL 9) memory. There were only a few options available in this range, and I chose G.Skill just because I had good luck with them in the past. I went with a 2x8 GB kit for 16 GB total RAM, with the option to add an additional 16 GB later (though, honestly, even 16 GB is more than I really need, so I don't expect to upgrade beyond that).

Haven't begun researching this yet. If I decide to overclock my system I might pick up some higher frequency RAM to go along with that, but most likely I'll stick with a fairly conservative standard option.

Power Supply
Seasonic SS-660XP2, ATX, 660W, 80 Plus Platinum ($140 - Newegg)

Update: 09/14/2014
As with the Noctua CPU cooler, I'm now officially a Seasonic fan. It works great and is very, very quiet. I've also added Seasonic PSUs to two additional computers as a result of this experience and I've been bappy with both.

Update: 11/04/2013
I decided to stick with the Seasonic SS-660XP2. Looks like it has all the qualities I'm interested in, and managed to pick it up on sale for a great price.

Not a ton to say here. PSUs are pretty boring, but are nonetheless one of the most critical system components, as a misbehaving PSU can cause no shortage of problems. The Seasonic SS-660XP2 gets high reviews for being a quiet, efficient, and reliable product, all of which I'm looking for. Unless something else catches my eye, I'll probably stick with this.

Case
Cooler Master CM 690 II Advanced ($90 - Newegg)
Alternatives:
Rosewill Blackhawk ($90 - Newegg)
Thermaltake Armor Revo ($140 - Newegg)
Zalman Z12 Plus ($70 - Newegg)
Zalman MS800 Plus ($114 - Newegg)
Cooler Master HAF XM ($110 - Newegg)
Gigabyte Luxo M30 ($53 - Newegg)
Apex PCV-588 ($35 - Newegg)

Update: 09/14/2014
The Cooler Master case I picked out here has been ok. Not great, and definitely not bad, just ok. It does it's job fine, and there are some nice features (in particular I've used the built-in hard drive dock a couple of times now and it's very convenient), but having all port/buttons on top of the case rather than in front just creates a a lot of clutter. I literally have to shift cables out of the way every time I want to turn my computer on. I'm also still not crazy about the looks, but it's gown on me somewhat. So, I'm reasonably happy with it, and don't have too much of a problem recommending it to others. Because of the top port thing, though, I probably wouldn't buy it again for myself.

Update: 11/04/2013
As noted previously, this was by far the most difficult decision to nail down. I'm still not crazy about the case I ended up choosing (the Cooler Master CM 690 II Advanced), but it does meet all of my requirements, and isn't hideous. As a bonus, it includes an adapter to mount two SSDs in one of the internal 3.5" bays, as well as dust filters for all of the fan intakes. It's also supposed to be reasonably quiet, which was an important requirement I forgot to list previously. Hopefully it'll work out.

The case has proven one of the most difficult components to find. I have a number of criteria, a some of which aren't really in line with the latest design trends:

  • I need at least 3 external 5.25" drive bays - not too difficult
  • The external bays need to be directly accessible; ie., no door or other covering - more difficult; most higher end designs feature a door that blocks access to the drive bays for some dumbass reason
  • I need at least 1 3.5" external drive bay, or a fourth 5.25" bay with a 3.5" adapter - very hard to find on modern high quality cases, but needed for my media card reader
  • I want a reset button - this should be a no brainer, but some case manufacturers still follow the big OEMs lead in pretending that no computer problems ever happen, and hence there'd be no reason, ever, that a person may need to recover from some abnormal condition (such as this "crash" thing I've heard about)
  • I need at least 4 front panel USB ports, with at least 2 of those (preferably all four) USB 3.0 - this, sadly, is still not common. I don't know what's taking so long, but USB 3.0 has been around for over three years now. WTF?
  • I'm looking for a reasonably classy design without so many LEDs it can illuminate a city block - here are some examples of what I do not want

The above listed "possibilities" are the few that come close to meeting my needs, but none quite cover all of them. I'm still doing research here, but would love any specific suggestions.

Hard Drives
I'm rocking two SSDs in my current desktop: a 240 GB OCZ Vertex 3 for my home drive, and a 128 GB Crucial M4 for my system drive. Both are Serial ATA 6 Gb/s, and are still amongst the fastest SATA drives available. There's no good reason to upgrade either of these at this time, so I'll be reusing them in the new computer.

Optical Drives
LG BH16NS40 ($118 - Newegg)
Original shitty choice:
Pioneer BDR-208DBK ($70 - Newegg)

Update: 09/14/2014
The Pioneer blu-ray drive I picked up was a turd. It was incredibly slow when it did work, but more often than not it just didn't work. I may have just gotten a bad unit, but I read a lot of similar complaints about the same drive, so I wasn't particularly interested in a replacement. Plus, Pioneer treats this drive as a bastard stepchild, not releasing firmware updates for it nearly as often as it's retail counterpart, the more expensive BDR-2209.

I ended up going without a blu-ray drive at all for a while and just using my old, trusty Samsung SH-S183 DVD burner, but I ended up buying the LG drive listed above a few months ago because I really wanted to rip some blu-rays. The new drive actually works very well - it rips DVDs in about half the time of my Samsung DVD drive, and rips blu-ray discs quite fast as well. The one complaint I have is that it is incredibly slow at ripping audio CDs (which, believe it or not, I still buy and rip). I'll probably keep my Samsung drive in here just for ripping CDs, but for everything else the LG blu-ray drive works like a champ and, though expensive, I'll happily recommend

Update: 11/04/2013
I decided to pick up a blu-ray burner for the new computer. Went with the Pioneer mostly 'just because' - it was between this, an Asus, and an LG, and based on prior experience I think Pioneer is probably the highest quality of the three. Plus, the Pioneer was on sale for a good price. :-) Some preliminary reports suggest this may be a good ripping drive as well, but it's still mostly luck of the draw, so I'm not too optimistic. Will certainly put it through it's paces, though.

I'll probably stick with my previous drive. Would love to pick up a shiny new drive that excels at ripping audio CDs (yes, I still rip audio CDs), but finding those are a matter of pure luck - I've never seen one documented in recent years as good for ripping until long after they're off the market. Again, any suggestions here would be welcome.

Video Card
My current video card is an EVGA GeForce GTX 460 FTW 1024MB 01G-P3-1377-TR (Newegg, which I bought about a year after my last upgrade. It still has enough oomph to handle the games I play (on Linux, which means they're rarely high end), and I don't see anything particularly compelling on the market right now, so I'll probably hang on to this for another 6 months to a year and then upgrade. Once I do, I'll almost certainly go with Nvidia, though; while the price per performance of the Radeon cards looks quite compelling, I need something that's going to work reliably and be supported for a long time on Linux, and AMD has not been able to prove themselves on either of those fronts. My last three desktop cards have been Nvidia, with the deciding factor being their Linux support every time, and despite some obvious drawbacks they have delivered quality Linux support with timely updates and long-term support. I hate to ride the fanboy train, but until AMD catches up on the Linux side, I have to stick with Nvidia.

Sound Card
Asus Xonar DX ($80 - Newegg)

Update: 09/14/2014
Despite this being one of the limiting factors for my motherboard selection, I ended up replacing the Audigy 2 when I switched to the Intel motherboard. While I still like the features, capabilities, and especially the front drive bay component (it used to be called a Live! drive; not sure about the Audigy branding) of the Audigy 2, the hardware itself seems to be failing; every time I boot or resume my computer, I get a LOT of static through the speakers, lasting for a few minutes before (mostly) slowing down and stopping. I had this problem with my old computer as well, and was hoping that the new computer/motherboard and cleaning the contacts would help out, but that wasn't the case.

So, I switched over to the Asus Xonar DX, and I've been happy with it. It's a PCIe card, has a connector to drive front panel headphone/speaker ports, and the Linux driver is solid. I really haven't had any trouble with the card, and it sounds great. And, as a bonus, no static. :-) I do miss the live drive (in particular the volume control knob so I could easily adjust the volume coming through my headphones while playing drums), but the rest of the pros definitely outweigh that one con. I have no problems recommending this card.

I currently use an Audigy 2 Platinum. Despite Creative's extremely half-hearted attempts at Linux support over the years (which has proven almost entirely ineffectual), it works fine on Linux. It actually even offers some features that are difficult (if not impossible) to find on modern sound cards, such as a real MIDI synthesizer, soundfont support, multiple hardware mixers, etc. (and if stuff like "MIDI synthesizer" sounds antiquated keep in mind that classic gaming is a hobby of mine and I take full advantage of all the hardware capabilities of my sound card).

Unfortunately, the Audigy 2 is a conventional PCI card, support for which has been largely phased out on modern systems in favor of PCI Express. I've searched, tirelessly, for a well-supported (in Linux) PCIe card capable of matching at least most of the Audigy 2's capabilities, and I have yet to find it. So, I'll one again have to stick with my Audigy 2 for this upgrade, which is going to limit my motherboard selection as most high-end motherboards no longer support PCI. Most lower-end boards still do, and it appears that a smattering of higher-end boards do as well, so I'm hopeful I can find something that will work for me. This will almost certainly be the last upgrade through which I can carry this card, though. Hopefully at some point in the next three years or so I'll finally be able to find an adequate replacement.

Monitors
As noted in my last upgrade discussion, I'm still using two 22" Viewsonic CRTs for my desktop. They're big and heavy, and one appears to be starting to go slightly fuzzy, but given the retro gaming I do on my desktop (at a great many different resolutions), these CRTs still beat every LCD monitor I've seen on the market for my typical usage scenarios. As a result, I'll be sticking with these monitors once again, probably until they die (which will be a very sad day).

Speakers
I recently had to replace my computer speaker system because of a lightening strike, so I have a fairly new Logitech Z906 (Newegg) 5.1 channel surround system. There's absolutely no reason to replace this.

Peripherals
nMEDIAPC ZE-C288 ($27 - Newegg)

Update: 11/04/2013
I also decided to pick up a new media card reader. My old 3.5" reader works fine, but since my new case has four 5.25" bays, I thought I'd take a look at alternative options and found the nMEDIAPC ZE-C288. It has a few things that I like; in addition to basic multi-card reader functionality, it also provides a native microSD card slot, which is the type of card I most frequently use with it), two additional USB 3.0 ports, and two fan controllers (which I'm not sure I'll use, but the option is nice). Unfortunately, it has a rather low review score on Newegg due to not-so-great quality parts, but on paper the features look really nice, and for $27 I thought it'd be worth taking the chance.

Probably not going to change much here, either. I have a fairly old Logitech USB keyboard (Elite) and wireless mouse (Performance Mouse MX) that are rather worn at this point, but, sadly, are still the best options out there for my needs. Everything else - printer, scanner, network, etc., just works, so no need to mess with any of it.

Wrap-up
This post ended up being much more long-winded than I originally anticipated, but I guess that's not terribly unexpected for me. I've also been working on this off-and on for a few weeks now, so... yeah, it's time to get this first draft posted.

If you stuck with it through the end, I hope you found it at least marginally informative and entertaining. If you have any feedback on my product selection, or in fact any of my comments above, please let me know (you'll need to e-mail me as comments are still disabled). I'll update this post as I finalize product selection, so stay tuned.