Tag: Linux

Final Fantasy 7 PC Mods

I'm not altogether sure when I first stumbled across the Final Fantasy 7 modding community. It's not surprising that it exists -- it is, after all, a popular game with a huge fan following -- but it is perhaps surprising that there are some really high-quality improvements to the game out there. High enough that I got the itch to replay the game for the first time in about a decade.

I'll talk about the experience of replaying it at 28 later. (tl;dr: it's not as good as 15-year-old Thad thought, but it's better than 18-year-old Thad thought.) For now, I'll stick with the technical.

Now, there are advantages to simply emulating the PlayStation version -- the ability to save anywhere is a biggie, and emulator-level texture smoothing is nice too. But I decided to go with the PC version because, again, it's the mods that drew me in. The major hub of mod development is the qhimm forums. And here are a few I've been using, ranked in order of importance.

The Essential

First, you'll need to get the game. Try eBay.

Then, you'll need to patch it to version 1.02.

And there's one mod that is absolutely necessary to get Final Fantasy 7 PC to run at all on a post-Win98 computer: Aali's Custom Graphics Driver. At the time of this writing it's at version 0.7.10b, but it's under active development. Make sure you jump to the end of the thread and grab the latest version; the link in the first post is version 0.1a from March 2009.

Setting it up is a simple process and described in the post that links it. You need to run both ff7config.exe and ff7.exe with full Administrator privileges, and I found that the graphics looked washed-out until I set compress_textures = no in the ff7_opengl.cfg file. It's probably a good idea to go through the troubleshooting thread if you have any other issues with it.

The Pretty Great

FMV Updates -- the PC versions of the FMV cutscenes look, inexplicably, even worse than the PlayStation versions. Modder DLPB has taken the PS1 versions and given them frame-by-frame upscaling and cleanup. The end result is, as he put it, a polished turd -- it's still kind of a mess but it's a damn sight better than what you get out of the box. Keep in mind that, after installing, you'll need to edit the videopath setting in your Windows registry.

Avalanche's Graphical Overhaul: Gorgeous but not quite finished.Team Avalanche's Graphical Overhaul (the thread links the GUI Update as well, but I'll get to that a little lower down). Many of the models in FF7 -- such as the characters, monsters, and treasure chests -- are untextured polygons. That means they upscale without loss of quality, and actually hold up pretty well even though they're not as smooth as what we're used to in this day and age. The polygons with 2D textures on top of them, on the other hand -- like, say, the world map -- look quite a lot the worse for wear upscaled to a modern resolution. The Avalanche World Map Patch adds hi-res textures, in both 720p-and-down and 1080p-and-up flavors, and it looks goddamn gorgeous. It's currently an 0.9, which means it's not quite there yet -- now and again you'll see a low-res stripe on a hi-res mountain, as in the image to your right -- but it's close, and it's well worth installing in its mostly-complete state. (YMMV on which components you want to install -- I don't use the alternate avatars or the replacement Barrett model.)

FF7Music: Okay, so the FF7 soundtrack sounds not-very-good coming out of Windows's default MIDI sequencer. It's bundled with its own Yamaha sequencer, but it's incompatible with modern versions of Windows. It's possible -- and perhaps more elegant -- to tweak your soundfont with Timidity, but FF7Music gives you the flexibility to set whatever tracks you want. The installer I linked includes the PS1 version of the music, and also a resequenced version by a guy going by the handle finalfantim -- it's not a remix as it's the exact same MIDI tracks, but he's resequenced them using high-quality instruments and, while it's a matter of taste, I find that they sound better in nearly all cases. (Except the guitar on his version of the Cosmo Canyon theme; I don't care for that and use the PS1 version.) Of course, there's also the option of customizing it with music of your choice -- I've always hated the FF7 version of the Victory Fanfare, so I've swapped it out for a nice Minibosses version instead. And if you want to edit music files so they loop properly, there's a tutorial for that, too.

(The biggest drawback for me? While the thread says FF7Music works in Wine, I've found it doesn't work very well on my system -- it'll play a track or two, the opening, maybe the overworld theme when I load my game, but it stops after a few track changes. So if I want to enjoy the benefits of FF7Music, I have to reboot to Windows proper. YMMV, though; if you want to try using it under Wine, maybe you'll have better luck than I did.)

(I should add, though, that in my experience every single other mod I list here works great under Wine.)

Haven't Decided What I Think of These Yet

Team Avalanche's GUI Overhaul -- I linked this same thread up above to praise the Graphical Overhaul, but the GUI update is a separate mod. And as the header implies, I'm not sure if I like it or not. It's added a font that looks more like the one in the PS1 version of the game, but I'm not sure it looks as good as the default Windows font; there are some spacing issues I don't care for. And it actually supercedes some of the additions in the Graphical Overhaul -- for example, the GO includes a rather nice set of color item icons by a guy named romeo14, but the custom GUI will ignore them in favor of its own grayscale versions. And while it works fine on one of the two computers I installed it on, it somehow managed to hose my installation on the other, leaving it so that the game crashes as soon as I load a menu -- and it must have overwritten a setting somewhere, because it happens even if I disable the mod.

Project Blackfan -- Okay, so we've covered overworld graphics. This is a huge attempt to replace all the field graphics. Modder yarLson is extracting every single background image and running it through a Photoshop filter. The result -- well, the biggest problem is that they're all PNGs because that's the only format Aali's driver supports; highest-quality JPEGs would have looked just as good and taken up a fraction of the space. As for how they look, that's a matter of personal perspective; all graphics filters inevitably come down to whether you prefer your upscaled lo-res images to be pixellated or blurry. These are blurry. For my money, they work absolutely wonderfully on natural environments that look like photographs (like the rocky areas in the North Crater) but aren't as good on the technological sets (like the Highwind). It's worth checking out to see what you think; since the files sit in the mods\[modpath]\field directory, they're trivial to remove if you don't like them.

Millenia's custom weapons for Cloud -- from what I've seen these look great; however, the new swords appear to have finally shattered my Cloud's fragile psyche and convinced him to join Cobra.

Image: Cloud's messed-up jaw

Keep an Eye on These

Retranslation -- this could go either way. It's sure to be more competent than the game's official translation, but it's too early to tell whether it will be any fun. Fan translations of Final Fantasy 4 and 5 back in the 1990's were fun and vastly superior to Square's initial attempts at English scripts for those games, but the fan translation of 6 met a more lukewarm reception; I'm part of the group that thinks it sucks all the charm out of Woolsey's (admittedly compromised) version. Now, this 7 fan translation could end up like 4 and 5, or it could end up like 6 -- and given that the focus seems to be on debating whether the Turks should be named Reno and Elena or Leno and Yrena, I'm sadly inclined to fear the latter. But hey, at least they know how to spell mithril.

Menu overhaul -- this is actually included in the Retranslation mod, so don't install both. (Actually, at the time of this writing neither one of them has a demo available to install at all, but...you know, keep it in mind once they're updated.) At any rate, it changes the menu font and alignment, apparently to something more closely resembling Final Fantasy 9's version. It was initially designed to accommodate the longer names of items, spells, and summons in the retranslation, but I foresee it improving aesthetics and possibly even gameplay for the existing version of the game as well.

FL's Battle Scene/World Map Enhancement -- I've covered projects to improve the world map and the field maps; this one is for the battle scenes. (And also the 2D bits of the world map, like the skyline with Meteor, though I couldn't get that bit to work -- maybe it's incompatible with Team Avalanche's world map version?) It's still early days, but it's looking good.

Project Bombing Mission -- Team Avalanche's project to replace all graphics -- battle and field, background and character -- in the opening section of the game.

Q-Gears -- an attempt to rewrite the FF7 engine from scratch. It's the equivalent of Exult, the open-source engine for Ultima 7; it would use the FF7 resource files but would provide its own executable. If this project is finished, it has potentially huge ramifications; it would mean multiplatform support for FF7 and, potentially, other PS1-era Square games like 8, 9, and Xenogears. It could make all of them easier to mod, as well as open up opportunities for people to develop their own games based on the engine.

Haven't Tried

Kranmer's Trainer -- I griped earlier about FF7 PC's lack of save-anywhere functionality. Well, nobody's grafted save states onto the thing, but this trainer purports to do the next best thing: enables the "Save" and "PHS" options any time you open the menu. I say "purports" because AVG flags the binary as a Trojan and refuses to run it, so I haven't actually tried it; I believe it's a false positive but fair warning, use it at your own risk.

AnyCD -- purportedly this removes the need to change discs/mounted disc images. It's not a nodisc crack, as you'll still need at least one game disc (or image) to play, but if it works that's two disc images you don't need to store on your hard drive. Three if you include the installation CD.

Zerox's Tifa model -- I haven't tried any replacement character models because it would be distracting to have a detailed character standing in-between two PS1-vintage ones; maybe I'll replay the game when there are high-detail models for every character. But this one looks good from the screenshots!

Not Actually a Mod

Can't really think of a better place to put this. While FF7 PC has joystick support, I couldn't get it to recognize my Rumblepad 2. I rigged up keyboard emulation using Logitech's Gaming Software. I mapped the buttons to the appropriate keys to match the PS1 button config, and additionally set up the left stick for movement and the right stick for camera rotation. (I also set it up so pushing in the left stick works as a second Run button, but it doesn't work very well.) You can import my settings or, if you don't have a Logitech controller or just don't like my settings for some reason, try rolling your own using finalfantasy7pc.com's game controls page as reference. (If you are using Logitech's Gaming Software, remember to check the inexplicably-named "FPS Style Movement" box or diagonals won't work on the D-pad. Because FPS, apparently, is the only genre where you hit two directional buttons to make a diagonal.)

Not My Cuppa

APZ Cloud -- this one's been pulled from the qhimm forums since the designer swiped the textures from somewhere else; he's working on a new version now. The existing APZ Cloud is a popular mod but I don't really like the look of it -- but YMMV. I preferred his Kingdom Hearts model, but he never released it for download; the qhimm forums have a strict policy against ripping models from other games.

Phoenix Rejuvenation Project -- an incredibly ambitious project to replace every single "chibi" field character with a more detailed, more realistically-proportioned version. I have a great deal of respect for the talent and work that's gone into the project, but I think it's a bad idea from the get-go; I'm all for more detailed models but the field models should stay chibi. In fact, I intend to devote my entire next post to the subject. Be here.


If you would rather be somewhere else, do feel free to discuss this post and general FF7age over at Brontoforumus.

Also, I finally fixed the horribly outdated worstforumsever.com link at the top of the sidebar. Just in time for my background check!

Unison: File sync from Ubuntu to Windows 7

Hey, been awhile. Have been ignoring the blog (even my traditional New Year's Eve Post) and many of my other Internet habits in favor of various projects I've been hard at work on. I just pulled off a WordPress update; you're reading this so it looks like it went smoothly.

Anyhow. One of the aforementioned projects (and the thing you came here to read, if you found this page by Googling an error message -- and if you did, you may want to skip my meandering explanation and go straight for the numbered steps at the bottom of this post): I recently decided to set up a file sync system across the computers in my house. It's useful for syncing things like savegames, RSS feeds, and the public-domain ebooks I've been grabbing from Project Gutenberg and MobileRead and comics from Digital Comic Museum across multiple devices.

I'd done some command-line RSS before, and also set up backup systems with Toucan, but figured I'd try something different on this one. I gave Ubuntu One a shot and it seemed promising until I realized it isn't open-source and I can't set up my own server. Canonical is swiftly becoming the Apple of the Linux world -- good at taking open-source software and making it pretty and usable, but not so great at giving back to the open-source community.

Ultimately I settled on Unison, which proved to be a bit of a headache -- frankly if anybody has a better solution I'd be happy to hear it, but here's how I got it to work.

First of all, the Unison GUI requires GTK. Hardly a problem on the Linux side, but under Windows, extracting the binaries from gtk.org and setting the PATH variable didn't work, no matter what I did. Maybe it's a Windows 7 thing, or maybe it's a Unison thing, but either way, Unison threw up "This application has failed to start because libgtk-win32-2.0-0.dll was not found. Re-installing the application may fix this problem." every time I ran it. Sticking it directly in the GTK\bin directory worked but is an ugly solution; multiple sites suggested installing Pidgin, which comes with GTK, but produces the same problem as Unison doesn't find it in the path.

(Actually, let me back up a bit: I couldn't get Unison to work with 64-bit GTK at all. The only Unison binaries I could find were 32-bit; I opted to install a 32-bit version of GTK rather than stick Cygwin on my HTPC and compile Unison from source.)

Ultimately, I found a binary Windows installer for GTK (conveniently the first Google match for gtk windows binary installer); whatever my PATH problem was, this installer fixed it. The Unison GUI was up and running, from its own folder.

Next problem, though: SSH. Unison did not play nice with PuTTy.

Googling the problem, I found a page called Unison-ssh, which includes a wrapper named ssh.exe for download. If you've read this far you've probably already installed PuTTy, but in case you haven't, you'll only need it if you want to use public key authentication -- this ssh.exe will automatically install a copy of PuTTy's command-line SSH utility, plink.exe, if it can't find it. (Well, hypothetically. It tries to stick it in WINDIR and if you're not running it with admin privileges it'll fail.)

Now, I should add that this ssh.exe doesn't work properly under Windows 7; it'll prompt you for a username but only let you type one character and then automatically Enter it. Same problem with the password prompt. The comments thread in the page is filled with people who have the same problem. Maybe a clean compile would fix it, I don't know; again, I didn't want to go to the trouble of setting up compilers on my HTPC.

There's a solution a ways down the comments thread. Unison stores its data in the .unison directory, even under Windows. (That'd be \Users\name\.unison under Win7.) They're simple text files with the .prf extension. And you can add an "sshargs" line to give command-line arguments. If you're comfortable sticking your password in plain text, you can add the line "sshargs = -pw [pass]" and you're done. But if you're not, you can set it up with RSA keys. A later comment links a post on Palin's Technical Blog that runs down how to generate a keypair with puttygen -- the problem is, I couldn't get my Linux server to accept it; I kept getting a "Server refused our key" error.

I found the solution on Andre Molnar's blog: you need to generate the keypair on the Linux server, using ssh-keygen, add the public key to your authorized_keys file, then move the private key over to the Windows machine and use puttygen to import it and then save as a PuTTy .ppk file. From there, add "sshargs = -i [path to private key]" to the appropriate .prf file.

Almost done, but the Unison GUI still has path issues, even if you stick ssh.exe in the same directory as PuTTy and add that to your PATH. I got around it by sticking a shortcut on the desktop with the PuTTy directory as the working directory.

In summary:

  1. Install openssh-server on your Linux server and PuTTy on your Windows client.
  2. Install Unison and its dependencies on your Linux server. (It's offered in the Ubuntu repos; command-line is unison, GUI is unison-gtk.)
  3. Install Unison on the Windows client.
  4. If you want to use Unison's GUI, install GTK on Windows.
  5. Download the ssh.exe wrapper for PuTTy. Stick ssh.exe in the same directory as PuTTy and put that directory in your PATH.
  6. Generate an RSA keypair on your Linux server using ssh-keygen. By default it will put the keys in ~/.ssh/id_rsa and id_rsa.pub.
  7. Copy the contents of the public key (id_rsa.pub) to ~/.ssh/authorized_keys. Remember to set perms on ~/.ssh to 700 and authorized_keys to 600.
  8. Move the private key (id_rsa) to the Windows machine. That's move, not copy; delete it from the Linux side as you don't want to store the same private key in more than one place.
  9. Run puttygen.exe. Import your existing private key, then save the result as a new .ppk file. Delete the original key file. Again, only the owner should have read perms on this file.
  10. At a minimum, your \Users\name\.unison\foo.prf file should contain the following:

    root = [Windows path]
    root = ssh://[user]@[host]//[Linux path]
    sshargs = -i [path to private key]

  11. To get the Unison GUI to run ssh.exe properly, create a shortcut and set its working directory to the PuTTy directory.
  12. You can schedule regular syncs using Windows Task Scheduler; run the command-line Unison executable, with args "-batch [name of pref file]". Don't include path or extension, just the filename ("foo" in my example above).

So there you go: a cross-platform syncing solution. Good for backups, for keeping files consistent between your desktop and your laptop, or for anything else that requires keeping the same files on multiple machines.


Playing: Just finished playing a fan translation of Act Raiser. Maybe a bit more on that soon.

Reading: Blood of the Elves. As I await The Witcher 2.

Triple-Booting a Mac Pro

Updated 2007-10-14. Scroll down to where it says "Update 2007-10-14". I'd put a link here, but for some reason b2evolution will not let me use the "id" or "name" attributes; expect a presumably silly and useless "rant" on that subject very, very soon. (Update 2008-01-17: Switching to WordPress fixed the problem.)


So I got that Mac Pro I was talking about earlier. No, I still can't afford the thing, so if you notice me living a life of indentured servitude for the rest of my days, well...I'm Irish. We're used to it.

The bastard about being on the bleeding edge is that there aren't a whole lot of guides to walk you through your setup. For example, I found quite a number of guides on how to multiboot a MacBook Pro with 3 OS's on different partitions of the same drive, but approximately bupkis on how to do it on a Mac Pro with each OS on its own drive.

So, in case anyone winds up Googling for the same information I couldn't quite find, here's how I finally did it. Hopefully this'll make it easier for you than it was for me.

Installation and booting

I can't say for certain, but I think order of drives and order of installation are both important.

After some trial and error, I wound up laying my drives out like this:

Drive 1 is Kubuntu.
Drive 2 is OSX.
Drive 3 is Windows XP x64.

Leastways, that's how they're set up in hardware. For reasons I'm not altogether clear on, they show up in software as Kubuntu on sda, Windows on sdb, and OSX on sdc. Still more curiously, both the Kubuntu drive and the OSX drive are assigned SCSI ID 0,0,0. (Could be some holdover from the old master/slave days? Maybe the drives are on different controllers? Something to do with MBR vs. GPT? Is it because the Kubuntu drive is physically first but the Mac drive boots first? Don't know.)

Order of installation seems to be important too. I say this because my first time through, I installed Kubuntu, it ran fine, and then I installed Windows and Kubuntu wouldn't boot anymore. I'd click on the Linux icon and it would boot the wrong OS. (Actually, it still does; more on that later.) So, as with most things in life, everything was going great until I installed Windows.

But after a day and a half of banging my head against the wall, I finally got all 3 OS's moving by rearranging the drives (see above) and installing Windows first and then Kubuntu. (OSX, of course, was preinstalled.)

Things to keep in mind: since we're talking 64-bit Windows, the Boot Camp program is useless. You can ignore it. It might be useful for resizing your OSX partition since Windows insists, for no reason whatsoever, on writing system files to the first drive. I say "for no reason whatsoever" because you can move those files -- boot.ini , ntdetect.com , and ntldr -- to the drive Windows is installed on and it'll run just fine. There's more info at x(perts)64; that guide is specifically for dual-booting XP and Vista, but I found it useful anyway.

(Also, "the first drive" noted above is actually the second drive in my case, which caused a good deal of confusion; as I mentioned earlier, both the Kubuntu drive and the Mac drive show up as 0,0,0.)

It's also worth noting that the much-ballyhooed rEFIt doesn't work for me; I have to hold down Option at startup to get a working boot menu.

That menu gives me the following:
rEFIt, Windows, Windows, Windows
because EFI very helpfully assumes anything that's not Mac is Windows.

The first "Windows" is actually Kubuntu. The second gives me "Error loading operating system". I assume that the first "Windows" is the MBR of the drive and the second is the first partition, which is flagged bootable but doesn't have Grub on it.

The third "Windows" is actually Windows.

Now, rEFIt looks similar -- it offers "Boot Mac OS X from Mac", then "Boot Linux from HD", "Boot Legacy OS from HD", "Boot Windows from Partition 1", not always in that order -- but the last three all open the same OS, either Linux or Windows depending on which I booted more recently.

So I'm stuck with holding Option at boot and selecting the left Windows or the right Windows, but at least it works. I'm hoping future versions of rEFIt fix this problem.

Windows

Here's where you can find the necessary 64-bit drivers for Windows:

(Sources: Triple Boot thread on the Apple forums; Airport Driver thread on driverguide.com forums)

Kubuntu

Boot issues aside, this is the single most painless Linux installation I have ever experienced. I know there's no dearth of people singing the praises of Ubuntu and how close it is to being ready for desktop use, but I'm afraid I'm going to have to add my own redundant voice to the chorus. It was almost painless.

I still had to install the nVidia drivers by hand -- either get us some free drivers that work or stop being so damn concerned about ideological purity, guys; I need support for my video card, and this would make life pretty rough for the average user. But by my standards as a Linux vet...I didn't even have to touch xorg.conf. Kubuntu, how I love you.

Setting up wireless was another concern, especially when I read there was no native support for the adapter and I'd have to use ndiswrapper. Let me explain something about ndiswrapper: it was a bastard to install under Gentoo, and is responsible for every single kernel panic I've experienced in the past year and a half.

Under Kubuntu, on the other hand, it was over in minutes. And I don't want to jinx it, but it hasn't panicked my kernel yet.

There's a HowTo at ubuntuforums.org. Steps 1-3 are outdated now; Feisty comes with a current version of ndiswrapper, so you won't need to update it. As for the bcmwl5.inf file, it's the same one in the Dell package I linked above.

To get wireless to work immediately at boot, you'll also need to set your access point up. In Kubuntu, you do go to K → System Settings → Network Settings, click "Administrator Mode", enter your password, click wlan0, then Configure Interface, and enter the ESSID and WEP key. (DHCP and "Activate when computer starts" should already be set.)

I will note that on one of my reboots wireless didn't start up automatically and I had to run iwconfig myself. I think that's most likely due to signal interference in my apartment, but I can't say for sure at this point.

Sound support was the biggest problem I hit. The ALSA driver for Feisty doesn't support the Mac Pro's audio adapter.

After poking around for awhile, I decided that rather than bother with the individual package, I'd just go ahead and upgrade to Gutsy RC. After all, if you've even read this far, I'm guessing you're somebody who's not afraid of the letters "RC"; I'd advise you just to go with Gutsy from the start. (Course, by the time anybody actually reads this guide, I'm betting Gutsy final will be out.)

So far Gutsy's working just fine for me. (Update 2007-10-14: Except that I can't adjust volume from the keyboard. The bar goes between 0 and 11 but doesn't actually make any change in the volume. This appears to be a known bug in Gutsy at the moment.)

I'll edit this post if anything changes or if I find anything else out -- I have a Bluetooth keyboard and Mighty Mouse that I haven't bothered trying to set up in Kubuntu yet; I intended it more for my media center/emulation rig Mac Mini anyway. But if I get that, or anything else set up, I'll make a note of it here.

Hoping this has been a help to somebody. I don't usually do this, but when I find myself running into problems that aren't well-documented, I figure I may as well document them myself in the hopes that I can make life a little easier for the next guy.

Good luck, next guy.


Reading: Cat's Cradle again, the first in my "My favorite recently-deceased science fiction authors" theme. I think A Wrinkle in Time is probably next.


Update 2007-10-14: Accessing the Mac drive from Kubuntu

It's easy enough to mount an HFS+ volume under Linux (FS type is just "hfsplus" in mount or fstab), but accessing your home directory or mounting with write permissions is a little trickier.

To access your home directory on the Mac volume from Kubuntu, your Mac user account and your Linux user account need to have the same UID. There are a number of ways to do this; the easiest involve simply creating a new user, but I changed the UID on my Mac login to 1000 with no real trouble.

Just go into Applications/Utilites and run NetInfo Manager, click Users, then your username, then scroll down to uid and gid and change them both to 1000 (or whatever your UID is under Linux -- 1000 is, of course, the default number for the first user account).

After that, you'll need to log out and back in, pull up a terminal, do a sudo chown -R <username>:<group> /Users/<username>, and then log out and back in again.

My source on all this is the Gentoo wiki (even though I'm using Kubuntu).

That should give you write access to your home directory on the Mac drive from Linux. To get read access, you'll need to disable journaling.

It occurred to me that I'd like to keep journaling enabled in OSX and only disable it when I want to access the data from Kubuntu. I came up with a relatively simple solution: I wrote a script to enable journaling when OSX boots, and added a line to the shutdown script to disable it.

For the startup script, I created a directory called /Library/StartupItems/EnableJournaling containing a filepair called EnableJournaling and StartupParameters.plist, as follows:

StartupParameters.plist

{
Description = "Enable Journaling";
Provides = ("Journaling");
OrderPreference = "Late";
}

EnableJournaling

#!/bin/sh

. /etc/rc.common

# Enables journaling on Mac volume

ConsoleMessage "Enabling journaling on /Volumes/Mac"
diskutil enableJournal /Volumes/Mac
exit 0

(Don't forget to make this file executable.)

(Source: Greg Neagle's blog)

And I modified /etc/rc.shutdown to the following:

#!/bin/sh
# Copyright 1997-2004 Apple Computer, Inc.

. /etc/rc.common

if [ -f /etc/rc.shutdown.local ]; then
sh /etc/rc.shutdown.local
fi

SystemStarter stop

# ADD THIS LINE:
diskutil disableJournal /Volumes/Mac

kill -TERM 1

exit 0

Seems to work all right; I get journaling when I'm running OSX, and I get write access when I'm running Kubuntu. (Update 2007-11-05: It appears rc.shutdown is gone in Leopard. I'll update when I learn more.)

The bad news is that it doesn't work both ways. At present I have Kubuntu installed on a ReiserFS volume, which is unsupported by OSX. I could have made it an ext3 FS instead and installed the ext2 driver for OSX, but, well, if I wanted compatibility over performance, I probably wouldn't have gotten a Mac Pro.

Nineteen Hundred Plus

Had some serious computer trouble last night, and it vanished as mysteriously as it came.

It has occurred to me that I know at least three couples who have gotten engaged, married, and divorced in the time since my last major hardware upgrade. And that was just a new video card.

If I had the dollars, I'd get me one o' them Mac Pro things the kids talk about. Triple-boot OSX, Windows, and some flavor of Linux. I'm thinking Kubuntu, since I've discovered I don't have the time to keep my packages up-to-date in Gentoo.

But man, I'll miss Gentoo.

All of that, of course, is academic at this point, as I do not have the dollars for a Mac Pro. Hopefully I can remedy that situation, but if my computer dies in the meantime, I guess I'll have to use Knoppix or my Mac Mini or something.

Thad's Tech Tips

Hello, random Googler. This one is for you.

Today's post is about some issues I've been having at work with an old Web server running Fedora Core 2. For various reasons, I have been attempting to update the packages on this old piece of junk to the latest available versions. (That is, the latest available for FC2; I'm not going to try the Herculean task of updating to 7.) For those of you who are not interested in technical details on server administration, this post is not for you; it is for the random Googler who found this page by searching for some of the keywords in the below explanation. Keywords like 4f2a6fd2, 6cdf2cc1, yum, GPG, and zlib.

The reason that I am posting this is that I have spent several days figuring this shit out for myself, with only minimal aid provided by Google searches; there seems to be no information anywhere detailing this set of problems, and I'd like to make life a little easier for the next poor bastard caught in this situation.

Problem #1 is finding a yum repository. The Fedora Legacy Project has shut down. There are still a goodly number of mirrors operational as of this writing, but my copy of yum rejected a number of them based on errors like the following:

Gathering header information file(s) from server(s)
Server: Fedora Core 2 - via Fedora Legacy Project
retrygrab() failed for:
http://[...]/fedora/2/os/i386/headers/header.info
Executing failover method
failover: out of servers to try
Error getting file http://[...]/fedora/2/os/i386/headers/header.info
[Errno 4] IOError: HTTP Error 404: Not Found


A couple of URLs I've found that do have the header.info file are:

http://www.blagblagblag.org/pub/mirrors/fedoralegacy/fedora/$releasever/updates/$basearch/
http://fedoralegacy.mirrors.redwire.net/fedora/$releasever/updates/$basearch/

and the latter, conveniently, is even the top option in the default /etc/yum.conf . So just comment out the Main Fedora Updates section and uncomment the pertinent lines under Fedora Legacy Project.

(Aside gripe: b2evo apparently automatically turns URLs into links, even if they are obviously bullshit URLs. Update 2008-01-17: Switching to WordPress took care of this problem.)

Then comes my next problem:

warning: rpmts_HdrFromFdno: V3 DSA signature: NOKEY, key ID 4f2a6fd2
Error: Could not find the GPG Key necessary to validate pkg /var/cache/yum/updates-released/packages/pango-1.4.1-1.i386.rpm
Error: You may want to run yum clean or remove the file:
/var/cache/yum/updates-released/packages/pango-1.4.1-1.i386.rpm
Error: You may also check that you have the correct GPG keys installed


It turns out that key is actually located on the default install. Just do:

rpm --import /usr/share/doc/fedora-release-2/RPM-GPG-KEY-fedora

You'll probably also want to import http://www.fedoralegacy.org/FEDORA-LEGACY-GPG-KEY.

You'd think that would be the end of my GPG problems. But you'd be wrong.

warning: rpmts_HdrFromFdno: V3 DSA signature: NOKEY, key ID 6cdf2cc1
Error: Could not find the GPG Key necessary to validate pkg /var/cache/yum/crash-hat/packages/zlib-1.2.2.2-0.i386.rpm
Error: You may want to run yum clean or remove the file:
/var/cache/yum/crash-hat/packages/zlib-1.2.2.2-0.i386.rpm
Error: You may also check that you have the correct GPG keys installed


Now this one turned out to be a bit tricky. All my Google searches for "6cdf2cc1" turned up people trying to install a certain open-source anti-virus program (I'm omitting its name because if you're like me, you'll see page after page of results mentioning that program and then attempt a Google search which removes that search term). Very few mentioned zlib, and none told me where I could find the appropriate GPG key.

After some further banging my head against the wall, it occurred to me to ask myself what set zlib apart from all the other packages, since they hadn't given me any errors.

As it turns out, zlib was the only package hanging out in the /var/cache/yum/crash-hat/packages directory. It was, in fact, from a different repository, not the Fedora Legacy repos listed above.

So I Googled crash-hat and the very first match was titled CrashHat YUM Repository. It linked the appropriate GPG-KEY and that was all I needed; at last I could update my server. Now it is merely ancient, not decrepit.

With any luck, this may help fix some of the other issues the server's been having. Perhaps more on those at a later date.

Escape from Crazytown

A thief comes during the night and steals 13 oxen.

Hello!

I have migrated my site to a new server!

Because it turns out that my previous hosting provider is a shining example of what I mentioned in my previous post about how all my friends are currently campaigning for the office of Mayor of Crazytown.

I would like to thank my previous hosting provider for three and a half years of hosting which was relatively free of capriciously removing the site and pretending it was an accident. And even before that, a redirect to the ol' BBS waaaaay back in '01. We had some good times, buddy, and I wish you all the best; take your ice cream cone and run with it.

On another topic, I would like to share some useful information with random people who have found this site with Google!

If you are in the process of migrating your site and don't want to ask for help from your hosting provider because your hosting provider is currently campaigning for the office of Mayor of Crazytown, and if you need to export your MySQL DB (say, for example, because it has all your blog data on it), here is the operative command:

mysqldump -u username -p dbname --single-transaction > foo.sql

That "--single-transaction" flag is key if you're getting the following error:

mysqldump: Got error: 1044: Access denied for user 'username'@'localhost' to database 'dbname' when using LOCK TABLES

Because what that generally means is you have read access for the DB, but you don't have permission to lock it.

Don't say I never gave you anything, random Googler.

(Also, now that I have migrated the site to a server I control, I can set the whole mysqldump thing up as a cron job. Whoo redundancy! Whoo redundancy!)

I hope that you, my loyal readers, as well as random Googlers, will continue to follow my very boring exploits as I continue to chronicle them -- this time on a new server.

Huzzah!

Just Like T's Class

You know, there's just something cathartic about cleaning house -- about going through a few dozen old computers, finding out what works and what doesn't, wiping drives, keeping what may be of use at a later date and donating the rest. Sure it's boring and repetitive, and I inevitably manage to cut myself on something, but it reminds me of high school, and then my first job out of high school, and it's good honest work.

I sure as hell wouldn't want to do it every day, but it's a welcome break from mail server maintenance -- and a whole lot more inline with my salary, too.

dd if=/dev/zero of=/dev/hda.


Reading: Neuromancer

Playing: Mega Man ZX

Stay Grounded

The latest hilarious chapter in the Fixing Grandma's Computer saga is that the new CD-RW drive I bought her at Fry's turned out to be bad. I exchanged it for a good one, but discovered on getting home that I had left my Knoppix CD in the one I returned. Which is probably all right, since it was Knoppix 3.9 and I'm overdue for an upgrade anyway.

But the whole process is just one disaster after another, and I don't have the tools I need. This must be how Fred Flinstone felt when he tried to fix his computer. With, I can only assume, some sort of small bird with a skinny beak -- possibly a hummingbird; I imagine that a hummingbird would be a very difficult bird to use as a screwdriver, but "very difficult" is sort of what I'm going for with this analogy -- and, assuming Fred is a Mac user like everybody else on TV, a paper clip.

I am, of course, burning a new copy of Knoppix; I tried to use the ExpressCD program that came with my old copy of Ultimate Boot CD but it had approximately the worst interface I have ever seen in a CD burning program (yes, worse than xcdrecord -- much worse). It kept putting folders in places I didn't tell it to, and wouldn't let me move them.

I do believe my Windows XP disc is trashed, meaning that even once I back up Grandma's files, I can't install a new OS on her computer. (Well, I could install 98, but that would rather defeat the purpose of this whole exercise. Or I could install 2000, but the reason I'm switching her from 98 in the first place is that it's now unsupported, and 2000 is next on the chopping block.)

All in all, considering that Grandma doesn't do any kind of online banking or credit card transactions, really the worst-case scenario if her unsecure installation of Win98 had gotten a nasty malware infection would be...basically what's happened anyway. (Though I suppose her CD-ROM was going to die no matter what.) Live and learn, I guess. I'm never doing a Windows update again. I mean it this time. Fool me once, shame on, shame on you... ... ... ... ...fool me can't get fooled again.

Oh, by the way, I've disabled trackbacks, since nobody but spammers was using them anyway. If you really really want me to bring them back for some reason, let me know.

(Also, is it bad that my favorite part of work is now driving?)

Moving

As previously noted, my New Year's resolutions were: get a real job, get a car, and move out of my grandparents' house. Well, I have a car and an apartment now, and my job seems realer every day (although if you want to help me get a job writing games in Canada, by all means, be my guest).

It was a fun weekend, and many thanks to Brad and Ben for helping haul and build furniture. The place is still a warren of cardboard boxes and plastic tubs, and this afternoon is looking like it will be another spent between building shelves and putting things on them, but the place is looking more and more like home every day. After a few calls to Cox I've finally got cable TV and Internet working, though I'm still trying to figure out how to get wireless running under Linux. In the meantime, it's a good thing I brought a long ethernet cable.

Apartment is nice, though the previous occupants had a cat who, as cats tend to do, made a mess of it. Got new carpeting, though, and I think everything's in pretty good shape, though you can still smell cat pee in the bathroom closet. This is one of the many reasons I'm a dog person.

(As I have recently been informed that I shouldn't be using my blog as a forum for presumably silly and useless "rants", I should probably note that cats have a right to pee all over everything if they want to and I have no right to complain unless I'm willing to breed a competing cat which does not stink up an apartment. ...Now, on the subject of that thread, I hate to be my own cheerleader, but honestly I think it's turned into a classic example of me helping a bad arguer make himself look stupid. What're the odds that when I poke my head back in Eric makes some potshot at me for not posting for a few days, and then immediately turns around and defends his refusal to respond to all my points by claiming to have better things to do? ...I really should finish my How to Argue Like a Complete Fuckwit guide, as this guy is a textbook example of the people I'm making fun of in it, but that's a presumably silly and useless "rant" for another day.)

Good to be on this side of town now, though; a 30-minute bike ride to work beats the hell out of a 45-minute drive. (One of the many nice things about riding my bike to work is it eliminates the need for a morning cup of coffee; I can get all the way to lunch before I need my caffeine fix. ...For those who didn't know, I gave up my precious Mountain Dew in favor of black coffee last summer. I miss the Dew, but I'm sure coffee's not nearly as bad for me.) Costco's right up the road for all my bulk-buying needs, and there's a Fry's Electronics not too far off in case I get hit in the head and decide I want to pay $100 for a DVI-to-HDMI cable. (Fucking Monster.) Also, as previously noted, this particular Fry's has an ass-ugly Aztec motif, complete with fake palm trees which seem to serve no other purpose but being in your fucking way when you're trying to walk past people.

I have also finally caved and gotten a cell phone, which has made me about as happy as I expected. Nothing like losing your signal twice while trying to talk to the cable guy. Also, I can't access my voice mail; I get a "number is unavailable" error every single time I try.

But aside from these minor annoyances, the new place is great. It's roomy, it has new carpet, and I can wander around without pants if I damn-well feel like it.

Mactel

To: David Lazarus, The San Francisco Chronicle

I am curious as to the motivation behind your "Intel inside -- so what?" article: are you really as ignorant and intellectually lazy as you come across in it, or did you just want the attention of being the only guy in the press with a headline saying it's not a big deal?

The point of the article seems to be "Most people don't care how something works, just that it works." Well stop the presses, what a scoop!

But David, SOMEBODY has to worry about the "how" or nothing's going to get done.

So what "what" does this "how" lead to?

There is an ABUNDANCE of information online that can tell you exactly why the Intel switch is important, and what its long-term effects may be, and a competent reporter would probably have done some research rather than consult computer industry experts like the administrator of a San Francisco law firm, a flight attendant from England, or Officer Gary Constantine of the San Francisco Police Department.

But, failing that, I will do my best to explain why the Intel switch is relevant.

I'm going to start out with some extraordinarily basic background on the computer industry here, as your article makes you seem blissfully unaware of it.

Apple makes computers. Macintosh computers.

But most people don't use Macs.

Most people use Microsoft Windows, which runs on Intel (and compatible) hardware.

(Now, you may have already made a connection here: "Oh hey, Apple's going to be running on the same hardware as Windows!")

The MacOS is almost universally regarded as superior to Windows in terms of ease-of-use and security.

So why do people still use Windows?

Well, in-between talking to flight attendants, you might consider walking into a computer store where someone is buying a Windows machine and ask that person why he isn't buying a Mac. I can guarantee you that at some point in the conversation, he will tell you he is worried his programs won't run on a Mac.

This stereotype has dogged Apple for twenty years, and is largely unfair: anything the average user needs, be it Web, E-Mail, or Microsoft Office, will run on a Mac.

However, there ARE some power users whose programs DON'T have Mac versions: engineers who need AutoCAD, for example, or gamers. (And before you pooh-pooh gamers as a niche market, consider that they're the people who buy the most expensive computers -- with the possible exception of movie editors, who are already firmly in the Apple court.)

Now, why isn't there a Mac version of AutoCAD? Why aren't there Mac versions of many popular games? Well, it's largely because of the hassle of porting them to a new architecture.

You get that?

The hassle of porting them to a new architecture.

But with Macs switching to Intel, the MacOS is now running on the SAME architecture as Windows does.

Making it much, much easier for these developers to release their software on the Mac.

And even if they don't release their software for Mac, this makes it far easier for third-party developers to make software which will allow Windows programs to run on a Mac. Take Microsoft's VirtualPC, for example, which has heretofore run programs very slowly and lacked advanced hardware support because it's had to emulate Intel hardware -- that hurdle is now gone. Or take Cedega, a program for making Windows games run under Linux -- a Mac version was impossible on the PowerPC architecture, but many cite it as inevitable now that the MacOS runs on Intel architecture.

And then there are people who may want to dual-boot: to use the MacOS primarily but reboot to Windows when they need to use a program which is not available for Mac. While there are some technical hurdles to jump, it seems obvious that someone will find a way to run Windows and the MacOS on the same computer within a matter of months, if not weeks.

It is even probable that people will figure out how to run the MacOS on non-Apple computers, and, while Apple has said it will not provide support for such an installation, this is still a significant draw to many users.

So, given all this "how", David, we can answer your question of the "what": the Intel chips will almost certainly mean better compatibility between the MacOS and Windows. Which, if you recall, is the primary concern keeping people from buying Macs. Programs which previously ran only on Windows will run on Macs.

But what does this mean for the Apple faithful, the people who have been buying Apples for years and would buy them no matter whose chip was in the box?

You dismiss the idea that end-users won't be able to tell the difference between a PowerPC Mac and an Intel Mac as if it means the difference isn't important -- as if being able to transfer an entire platform to a completely different architecture with such a seamless transition that the average user can't tell the difference is something that doesn't even bear thinking about. That's simply absurd. That Apple has made this dramatic change but managed to make it in such a way that the average end-user won't even notice any change at all is nothing short of amazing.

So, in a way, your vapid, superficial article answers its own question: that Apple has made a fundamental change and you can't, for the life of you, tell that anything has changed at all IS the story here.