Category: Tech

Backing Up Wii Data -- All of It

So I've been having problems with my Wii. It's stopped running discs entirely -- I put one in, it spits it right back out. I suspect the spindle motor, and I'm going to try fixing it myself with a little help from the guides and parts at Console Zombie -- but before I go taking my Wii apart and poking around in its innards, I figure I should probably back all my shit up.

Course, as you may know, the Wii doesn't allow you to back up everything onto an SD card. Certain downloads and save files are copy-protected. This is what is known, amongst technical people such as myself, as a bunch of stupid fucking bullshit.

See, the way I see it, I should be able to back up my saves in case my console gives up the ghost. Or, say, go over to my brother-in-law's house and have access to every course on Mario Kart without having to unlock them all again in fucking single-player mode.

So I did a bit of reading up and found a utility called Savegame Extractor. It requires installation of the Homebrew Channel.

I have an old Wii and the latest version of the Wii System Menu (4.3U). After some reading, I found that the appropriate utility for my system was LetterBomb, and there are installation instructions at wiibrew.org.

It was about as simple and painless as root tools come. Select your firmware version and input your MAC address, then download the LetterBomb zipfile. Rename the private folder on your SD card, copy the boot.elf file and private directory from the zip to the root. Put it in the Wii, power it up, open up the messageboard, and click on the LetterBomb icon. From there I installed the Homebrew Channel, and installed BootMii as boot2 (apparently on recent Wii revisions you can only install as IOS, ie overwriting the Wii firmware).

Once you boot up again, you'll need to use either a GameCube controller or the buttons on the Wii face (Power to move the cursor, Reset to select an option) on the bootscreen. You should back up your NAND memory (provided you've got 512MB free on the card; it's under the gears icon, then the icon with the arrow pointing from the chip to the SD card).

Next thing: install the Homebrew Browser.

Create an apps directory on the root of your SD card. Download the Homebrew Browser, extract it, and copy the homebrew_browser subdirectory to apps. Once it's on the SD card, you can load it from the Homebrew Channel; from there -- well, from there I got a stack dump and had to reload it. But I reloaded it, and from there you can download all sorts of useful apps -- including Savegame Extractor.

In fact, there are a few variations on it -- there's Savegame Manager, which combines Savegame Extractor with Savegame Installer, and which also just flat-out stack-dumped every time I tried to use it -- but there's a fork called SaveGame Manager EX, which works great, comes with a GUI that mimics the Wii's, and has a nice batch option to extract everything from the Wii at one go, eliminating all that tedious clicking on each individual file and then selecting Copy. (And, okay, also copying over some other shit that you don't really need to expend the space on backing up, like the Netflix Channel. But hey, still.)

Soapbox time: I'm not doing this to play pirated games. I'm not doing this to cheat at online games. (I'm not doing it to cheat at offline games, either, but if I were, that would be none of anybody's goddamn business but my own.)

I'm doing this to access my data, the games I bought and paid for (and, all right, one that Brent got me for my birthday), the saves I slogged through hours of stupid bullshit single-player Mario Kart to get.

And I shouldn't fucking have to install a bunch of hacks to do this.

I like my Wii. Rather a lot. I mean, Jesus Christ, look at how much effort I've gone to to keep all the stuff I've got on it, and that's before I've even started taking it apart.

But Nintendo is completely fucking ass-backwards in its approach to modern technology in general and network play in particular. Its "safeguards" are asinine and poorly-thought-out. They won't stop some guy with an Action Replay from unlocking all the karts on Mario Kart or all the fighters on Smash Bros and then going online (and hey, Nintendo? Maybe if you didn't make it impossible to unlock anything on multiplayer in Mario Kart, and a pain in the ass to unlock everything on multiplayer in Smash Bros, people wouldn't be tempted to cheat to do it?). They just put up barriers to prevent people with broken consoles from getting their data off. Which, again, includes games they paid for.

...and frankly they're not very good barriers. This was really a breeze. I'd like to thank the developers of all the various tools I've mentioned, and the writers of the walkthroughs on how to set them up. Because this was pretty damn painless, and to be frank I enjoyed doing it.

Tune in next time to see how I do at taking my Wii apart and seeing if I can fix it.

If I even get that far. I don't have a tri-wing screwdriver onhand, so I'm going to see if I can get the screws out with a small flathead. If not, well, tri-wings are like $5 on Amazon.

ownCloud

My post on Unison remains one of the most popular things on this site. (The FF7 Trilogy remain my most popular posts, the ROM Collection Browser post is far and away the most popular hit on the site this month, and a number of people seem confused, as I was, by Netflix's reorganization of Doctor Who -- but Unison's still way up there.)

Well, I rebuilt my computer a few months ago, and I've opted not to go back to Unison. The main reason is that I don't just have Windows/Linux/OSX machines in the house now -- I've got a phone and a tablet both running Android now, and I'd very much like to be able to sync to them, too.

(Yes, okay, so Android is also Linux; good observation, gold star. It is technically possible to run Unison on Android. It is also, as far as I can discern, as big a pain in the ass as you would expect.)

I've decided to take a crack at ownCloud, and set my overworked G4 Mac Mini up as a server. It was a quick, easy setup, and a lot less fiddly than Unison (though it took a little bit of fucking around on the command line to enable SSL), but it's got its tradeoffs -- oddly, near as I can tell the desktop client can only set directories to sync, not individual files, while the Android client can only set individual files to sync, not entire directories.

And speaking of syncing with the Android app, it took me a day to figure out how to get it to sync in the first damn place. The sync toggle is under the system Settings menu, not, for some reason, anywhere in the app's interface, and it turns out that in order to set a file to sync, you have to upload or download it first, and then tap it in the ownCloud browser, and then there's a "Keep file up to date" checkbox. It's not exactly what you'd call discoverable, and the closest thing I can find to documentation is a damn YouTube video. (Can we talk for a minute about tutorials that are only available as videos? For my money, that trend fucking sucks. I mean, videos are great for some things, like showing you how to take apart a piece of equipment, or shave, or otherwise do something that's easier to watch than read about -- but much of the time, step-by-step instructions with the occasional illustration is a far superior method of walking someone through how to do a thing.)

So, not quite perfect. And there are some other pitfalls -- the filebrowser in the Android app can't seem to access the directory with my World of Goo save to sync it, SNESoid save files use a different extension than desktop SNES9X...plenty of rough edges that aren't actually ownCloud's fault but the fault of developers who didn't consider that users would want to sync save files across multiple systems. (It looks like you might be able to sync a file under a different name on the Android client than on the server; I'll look into that but I'm also thinking of switching from SNESoid to SNES9X EX on my phone and EX+ on my tablet. So far it looks like it's a lot more flexible than SNESoid, and while EX+ is too burly for my phone, EX runs all right once I turn off graphics filters, set scaling to integer-only, and turn on the GPU Sync Hack. Save states aren't compatible between versions, but of course save RAM is. As for World of Goo...maybe I can whip something up with symlinks or something; I'll look into it.)

And it's a pity there's no way to set up an automated wireless sync with my PSP.

A Wizard Did It

As soon as this week's episode of Bones opened with the word "Previously," I knew I was in for something really, really stupid.

I like Bones. It is a workplace comedy disguised as a police procedural; it has a good cast and often features the best gross-out humor on television.

But god damn I hate its sweeps arcs.

I get what they're trying to do with the Pelant arc. He's the nemesis. He's Moriarty. Hell, they even cast a guy who looks like the guy who plays Moriarty on Sherlock.

But -- Sherlock spoiler warning -- at least Moriarty's big "I have a secret code to hack every computer system in the world" plot built up to the resolution that nah, he was just fucking with you guys, there's no such thing, he just bribed a bunch of people.

Now, Sherlock has done some legitimately stupid things with technology -- Irene Adler's acid-equipped cell phone springs immediately to mind -- but it's never approached the sheer inanity of Pelant's first appearance, where he encoded a virus into a skeleton that caused the computer that scanned it to catch on fire. And, to be fair, Bones hasn't reached that level of stupidity a second time either -- though God knows it's not for lack of trying.

The latest featured the "Your bank account is being slowly drained!" trope, which I recently commented on in Insufferable by Mark Waid and Peter Krause. But -- Insufferable spoiler warning -- at least the guy draining the account in Insufferable was actually the guy who was in charge of Galahad's accounts. It is entirely plausible that he had talked Galahad into signing documents that gave him the right to take all his money.

In Bones, that is quite clearly not what happened. And, funny story: banks can't just let other people steal your money, even if they have your password. There's this thing called FDIC, plus various fraud protections -- but hell, let's not let that get in the way of a good story.

Only thing is, all this bullshit really is getting in the way of a good story. The game of cat-and-mouse between Pelant and the Jeffersonian would be enjoyable, if it weren't for the constant distractions of Pelant doing crazy impossible shit because the writers can't be arsed to come up with something evil for him to do that's actually remotely plausible.

If the show's going to make the bad guy a wizard, it should just drop all fucking pretense of being set in the real world where logic and rationality apply. Just have everybody discover that magic actually exists and now they're going to have to deal with it. It wouldn't be any more hokey or less plausible than what they're already doing anyway.

I guess what I'm saying is, I'm really looking forward to the City Watch TV series.

And more Sherlock.

nVidia BSoD Fix?

Well, after a year and a half, I think I've finally got the constant BSoD's I get when playing a game with my nVidia GTX 570 fixed.

First, I bit the bullet and used MSI Afterburner to underclock it to 650 MHz. I may not need to keep it that low, but I still got lockups with 690.

I also added a registry key. Via Mike's Technology and Finance Blog, you can set a key at HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers called TdrLevel.

One of the complaints with Windows (or really any other operating system) is that the screen freezes from time to time. If the screen freezes for more than a few seconds, users are likely to hard reset the machine that they are working on. This seems natural, but in this case the system is still responsive. The graphics processing unit (GPU) is busy processing something (possibly a game, 3D render, or even Windows Aero) and is not actively refreshing the screen.

In Windows Vista SP1 and Windows Server 2008 SP1 Microsoft introduced a feature to help catch and correct this behavior using a feature called "Timeout Detection and Recovery (TDR)." The TDR feature works to identify whether the graphics processor is hung (the default timeout is 2 seconds), and if it is, it prepares to reset the graphics processor and the relevant part of the graphics stack. During this process, it tells the driver not to access the hardware or memory and gives it a short time for currently running threads to leave the driver. If the threads do not leave within the timeout, then the system bug checks with 0x116 VIDEO_TDR_FAILURE. The system can also bug check with VIDEO_TDR_FAILURE if a number of TDR events occur in a short period of time (the default is 5 TDRs in 1 minute). If the TDR is successful, then the user may receive a bubble that says "Display driver stopped responding and has recovered."

TdrLevel should be a REG_DWORD. I set it to 0, to disable checking for TDR entirely.

I'm not sure if that helped or not; I think the underclocking was the more important step (as when I set TdrLevel to 0 but didn't underclock, I still got a lockup). But TDR certainly sounds like something that matches my symptoms, as the lockups usually occur with graphical and audio sputtering -- indeed, sometimes I don't get a blue screen at all, the game just sputters to the point of unusability and the system becomes unresponsive.

At any rate, I'm cautiously optimistic; it looks like I've finally got this thing under control and can actually play games under Windows without constant crashes. I didn't notice any performance hit, either, but then again it's not like I'm trying to run Crysis 2. Walking Dead works fine with its settings maxed out, but you don't need a GTX 570 for that.

Now if I could only get OSX running stably with a 64-bit kernel.

More Triple-Boot Trouble

Getting Chameleon to run properly on my Mac Pro 1,1 continues to elude me. I've followed all the steps on the Netkas forum precisely, except that I made a smaller boot partition (because 1GB is just silly and I assumed that was only required because that's the smallest that OSX's Disk Utility will allow). I guess the next thing to try is swap in another hard drive and give it a 1GB boot partition and see if that works -- and then I guess I can start asking questions on the forum because I'm just about stumped.

Meantime, when I've got a helper card in I can boot OSX from EFI but not from GRUB -- meaning I can't boot it 64-bit. Windows definitely seems more crash-prone when the helper card is in and DirectX is running. If I pop the helper card out, I can boot OSX from GRUB (either 32- or 64-bit) but it's unstable as hell that way and a significant number of programs just hang when I try to run them; for some reason I can't boot OSX from EFI without the helper card. (Even if I hold Option at boot, arrow over the correct number of spaces, and hit Enter to boot from the OSX drive, it doesn't.)

There are other bootloaders designed for OSX but none of them seem to be as well-documented for use on genuine Apple hardware as Chameleon.

It's a pain in the ass, is what it is. This is an impressive damn machine, but I sure can't see buying another Mac anytime soon.

Reinstallatin'

Well, for the second time in as many weeks, I find myself taking a day to reinstall Windows 7. The last one was for a cousin; this latest was for me.

As I mentioned the other day, something went wrong with my Win8 installation and it wouldn't boot. And, since I was running a Release Preview that was set to expire by the end of the week anyway, I decided it would be kinda stupid to spend any time trying to fix it, so I just backed up My Documents and reinstalled Win7.

Win8 is pretty much what everybody's said it is: a perfectly decent touchscreen interface with some discoverability issues, awkwardly grafted onto a traditional Windows interface, Frankenstein-fashion. Seeing as I don't have a touchscreen, I see no reason whatever to keep Windows 8.

Well, that's not entirely true -- some of the tweaks to the traditional Windows interface are damn fine: I like having a Task Manager that doesn't just report CPU and RAM usage but also hard drive and network activity (meaning no more "What the fuck is making the HD light blink like crazy when nothing's taking up more than 1% of the CPU?!"), and a filecopy interface that isn't a fucking 1980's holdover designed for transferring files between a 1.44MB floppy and an 80MB hard drive. I had a job once that consisted of copying databases -- single files ranging from 15-40GB -- to laptops all day. And when there was a network hiccup, it would abort the transfer and I'd have to start all over from the beginning. Almost as annoying: copying a user's entire home directory, hundreds or thousands of files, and if a single one fails, the entire transfer cancels itself.

Windows 8 has finally baked in filecopy tools that allow for pausing and resuming file transfers -- not just in command-line tools but in the standard Explorer UI.

Course, you only get that if you upgrade to Win8. Don't want a silly-ass tablet-style interface on your desktop? Well, then you get to stick with the old Task Manager and filecopy, too.

Meantime, I had a job interview today. And if all goes well, I'll have a lot more Windows 7 installations in my immediate future.

Games a-Breakin'

I can't get Windows to boot at all on my main computer -- the Win8 preview doesn't expire until next week, so I think it's because I stuck my helper card back in so I could get a stable Mac boot. Which apparently means I can't get a stable Windows boot.

I tried to play The Walking Dead on the HTPC in the living room, but the controls don't map right on my Cordless Rumblepad 2, x360ce doesn't work, and my Xbox 360 wireless controller receiver seems to have died when I tried disconnecting and reconnecting it. I've got a third-party wired Xbox controller, but for some reason that doesn't work either.

And my Wii is now ejecting every disc I put in it.

Come on, games! I've been productive this week! I finished two submissions, scheduled a job interview for Monday, and have a potential programming position lined up for a few months from now! I deserve a little time to kick back and play games!

...guess I'll just have to work on one of the several dozen on the list that aren't Walking Dead or a Wii game.

My Latest Barrier to Productivity

So yesterday I set up an external hard drive for my audio recording. Because as it turns out a 40GB hard drive is not a good long-term choice for audio production. (In fact I'm surprised I've gotten as far as I have using a 2005-vintage Mac Mini in the first place.)

Setting up an external hard drive turned out not to be as easy as it should have been. Pro Tools kept giving me a crypic "DAE error -9131", because apparently this is 1993 and it is still considered acceptable for a programmer to throw up an incomprehensible number for an error message instead of telling the user what the fuck is actually wrong.

An hours-long troubleshooting story short, I found the solution via Noize at Gearslutz. It involves not merely reformatting the external drive, and not merely repartitioning the external drive, but repartitioning it using the old, pre-OSX Apple Partition Map. (I also disabled journaling because another post somewhere recommended that, too. Plus that way I can hook it up to a Linux box and mount it read-write.)

After that, though, I had a good, fruitful few hours. And then I took a break and biked downtown. When I got back my voice was hoarse and I found I couldn't record any more for the day, but as it was I was already a week and a half ahead of schedule so I'm not too worried. And I came home to a note from my contact on the project about more possible work in the future.

It's early days yet but I've certainly received a lot of encouragement.

Loud Noises

Working on a project right now that involves some audio recording -- I'll talk more about it when I have something to show.

In the meantime, I'm going to talk about the actual logistics of recording.

I haven't rented out a studio; I'm doing this in my home office. And while I think I've got the acoustics set up nicely -- boxes of comics around the walls deadening much of the sound, blankets covering surfaces, the heat and all the fans turned off, and doing the whole thing on a very quiet 2005-vintage Mac Mini -- I'm still at the mercy of noises from the great outdoors.

Yesterday I got up, ate a breakfast bar, did 45 minutes on the elliptical machine while watching an X-Files, showered, and then sat down to start recording...and that's when a neighbor started using a weed eater. Damn it. Well, I was hungry anyway, so I went and fixed lunch (with an extra helping of Gas-X, because leaf blowers aren't the only background noises I don't want on the track) and watched Tron: Uprising.

Then I sat down and recorded for a couple of hours, mostly without incident. But as I was wrapping up the day's recording with some dead air (room tone), I heard a jet overhead. And then I had to wait for that.

And that's when my fiancée got home from work.

Clearly this is going to take some fine-tuning. I could try recording first thing in the morning and then working out -- but I don't have much of a voice when I get out of bed. I could shower and then record and then work out, but then I'd probably wind up having to shower again.

Anyway. Off to take another crack at it -- bit of a late start today but we'll see how I do.

...oh hell. Is that a fucking lawnmower?

Some Good-Natured Ball-Busting

Last August, Mark Waid and Jeremy Rock at The Gutters treated us to Mark Waid's 4 Panels that Never Work. It included some funny bits like the following:

A speech from the Times Square Jumbotron!  The jumbotron doesn't have speakers.  You know this, right?  You don't?  GO FIND ANOTHER CAREER.

It's a good point. I laughed. But here's the thing. It opens up Waid to his own share of good-natured ball-busting when he does shit like this, from Insufferable #29 (art by Peter Krause):

Funds Transfer 85% Complete

What the fuck is that, Mark Waid? Why is the funds transfer at 85%? Is it transferring the money one dollar at a time?

Mark Waid, you are a tech-savvy man. I am confident that you have, at some point in your life, done some online banking or purchased a product from Amazon. You know financial transactions over the Internet do not work like that. They either succeed or they fail. There is no such thing as a partial transfer, and it does not actually take longer to transfer a million dollars than it takes to transfer one dollar.

Now, there are things that might make your connection to another site slower -- say, if the character was using some kind of Tor-like program to cover his tracks -- but even still, while he was waiting he'd just be seeing a spinning ball or a "Please wait..." dialog or something like that. It wouldn't have a percent with it, because there is no such thing as partial completion for such a request; it's either finished, waiting to finish, or timed out waiting.

(Now, I suppose that if the money were being sent to multiple different locations, that could be done through some kind of custom script that would update a percentage-amount every time it completed a transfer. But #34 seems to imply that is not what is going on here and the money did indeed all go to one place.)