Monday, November 13, 2006

The Spirit of Radio

So Wil Wheaton has a piece up about the decline of radio and I couldn't help thinking of Rush's incredible song The Spirit of Radio, dedicated to Toronto's (okay, Brampton's) CFNY radio station, which wasn't afraid to play alternative music and music that wasn't radio-friendly.

When you consider that The Spirit of Radio was written in 1980, it really puts in perspective how long the recording industry has been dictating exactly what becomes popular and what doesn't. As Rush say in the song, "the words of the profits are written on the studio wall."

There's another aspect to the idea too, of course. It's not just about the RIAA and its cronies choosing what will become popular, but also forcing artists to change their work. The power they must wield is somewhat frightening--you want us to release your record? Well, then change these lyrics here, cut out this part, sell your soul to get your record cut.

Rush again, who say it better than I ever could:
But glittering prizes
And endless compromises
Shatter the illusion
Of integrity

I really believe that digital recording and distribution, once it really starts to take off, will revitalize the music industry and get us back to the basics--artists getting their music heard, and getting rewarded fairly for that.

And leaving the fat cats out of the loop.

Wednesday, September 06, 2006

A font of wisdom...

My laptop is a Dell (and though a candidate for it, mercifully free of the battery problem). Actually, I've had that battery problem explained in painstaking detail, as I designed a LiIon pack into a product we're developing, so people at work were a little concerned lest we fall victim to the same problem as Dell--so I've been brushing up, with our battery cell vendor, on exactly what happened at Sony and reasons why it shouldn't concern us.

In any case, this Dell machine I've got has some not-too-shabby Radeon X1400 graphics built-in (with 128MB of dedicated video memory, thank-you-very-much), and a screen resolution of 1280x800. I'm using ATI's custom driver for X (bad free software supporter) and Mandriva looks pretty good.

However, I didn't realize what I was missing until I read this piece on the Optimal use of fonts on Linux, and installed a version of Freetype that included a proper Truetype byte code interpreter.

The results are quite astounding, and I've fallen in love with doing my writing on the laptop all over again. Sigh.

Monday, August 21, 2006

If the shoe fits...

... then you'll wear them a lot, and they'll eventually start falling off your feet.

Just before I got married, I bought a new pair of shoes. The dress shoes I had fit, but tended to give me sore feet after only a couple of hours--they had very poor arch support, and I've got freakishly high arches. As I was going to be wearing these from morning to night on the day of my wedding, I wanted something comfortable.

On the advice of my best man, I picked up some Rockports, as he declared them to be the most comfortable shoes he'd ever owned. Astoundingly, right next to Scerbo Formals at St. Vital Shopping Centre, where we had gone to get fitted for tuxedos, was West Point Shoes, which sold Rockports.

They weren't cheap: $220, at a time when I was trying to save money for the wedding, and the anticipated expensive bliss of marriage. The soles were also a bit overkill for dress shoes, as these were sturdy, waterproof outdoor shoes, but I figured the state of my soles wasn't likely to interest anyone at the church (duck).

So fast-forward through 4.5 years of said married bliss, and I have worn my Rockports every single day. I have not cared for them particularly well, with only a few scattered polishings here and there, but they've stood up admirably to the test of time. And they're comfortable too---in fact, I've never had a more comfortable pair of shoes.

But they were finally breaking down. The stitching on the heel was starting to come loose, there were cracks in the leather at the balls of the feet.

I loved my old Rockports. I haven't been wearing them long (2.5 hours now), but I think I love my new Rockports too.

And no, I'm not affiliated with Rockport in any way. Except as a rabidly loyal customer, of course.

Friday, August 18, 2006

MAME cabinet: slow but steady march of progress

In the midst of enjoying the summer, I have managed to get a bit of work in on the game cabinet.

For the coin door, I opted to get a brand-new one from Happ Controls, rather than dig around for a used one in questionable condition that might not be exactly what I wanted. I ended up getting the Over/Under Door Mini System, as it seemed the most cost- and space-effective double door I could find. Rather than dealing with Happ directly, I ordered through Starburst Coin in Toronto. That eased any unexpected customs woes. I was able to order it without the default USA coin mechs, and with some Happ Ultimech coin mechs instead, configured for .984" tokens instead. I also got 10' worth of video game marquee retainer, seeing I was placing the order. It looked to be the easiest way to attach the marquee to the cabinet.

I was going to order some of the .984" Happ tokens, but Starburst Coin doesn't carry them, instead offering custom tokens from the Royal Canadian Mint. The price was excellent at $0.12 each, but I would have had to purchase 1000. Instead, I opted to purchase some MAME tokens from Arcade Tokens (now Arcade Replay). Sadly, the nickel ones are not available, so I had to settle for brass. Going with the MAME tokens was more expensive, but I love having something unique.

All these things arrived quite some time ago, and I'm pleased to report that it all works. The only problem is that the slot on the coin door is large enough to accept a loonie, but the coin mech is not. So inserting loonies into this is currently a no-no.

I've now built both the front door and the drawer, and both are installed. I still have to install the key on the front door. I'll install it just to get the holes cut, and then remove it until after the cabinet's painted.

Next up is the back door, and then all the internals--intake fan for the back door, internal wiring, marquee lamp, outlet fans, TV shelf and all that. It's slowly starting to come together.

Tuesday, August 01, 2006

Not all routery flashes result in goodness...

As we found out on last week; zar' updated his WRT54G v5 router much as I did. It went off without a hitch.

He has a WRT54G v1 as well, and gave that a try. Did it succeed? Well, I'll just say that I received an email the next morning with the subject "Bricked my router..." and leave you to draw your own conclusions.

We looked at it a bit over lunch, and discovered it wasn't entirely bricked. On power-up, it would respond to pings for a short space of time, about five seconds or so. This is when the bootloader runs, just before it loads and jumps to the firmware image. During this short space of time, the router's TFTP server runs, waiting for a firmware download.

We ran a repeating ping in one command prompt window, and had the tftp client all ready to download a firmware image in another. We powered up the router, and when we saw the ping succeed, quickly hit Enter in the tftp window.

This allowed us to get back to the original Linksys firmware... we had to use an early version though, as the latest wouldn't take--we also had to switch his NIC to half-duplex and 10Mbps. After the upgrade, we used the web client to upgrade it to the latest Linksys firmware, and we were back to a safe place. Phew.

We tried a number of times after that to upgrade it to the DD-WRT firmware, without success, both from the web client and the tftp client. We just kept bricking it, even when we left it for five minutes after the download. Strange.

On the weekend, zar' did a little bit of investigation, and found out that the v1's CPU runs at only 125MHz, which means it's significantly slower than later versions, which run at 200Mhz. He speculated, and I agree, that this lower CPU speed almost certainly means a lower external bus speed. So he reflashed again with DD-WRT, and left the router sitting there for half an hour. And guess what? He now has a working WRT54G v1 running the DD-WRT firmware.

The moral of the story? I'm not sure there is one, but I guess it would be to check your hardware before upgrading, and make sure you understand what you've got.

And before you ask, yes, a computer engineer and a computer scientist should have known better.

Wednesday, July 26, 2006

A flash of routery goodness...

On vacation. That's the answer to a question nobody asked ("Where have you been?"). I'm back to work this week after two weeks of blissful hanging around the house.

The Aged Ps paid a visit from Edmonton (well, from St. Albert to be precise).

We had a good time. Dad helped me install some stair stringers and a patio stone landing area out the back door, so we now have back yard access without having to do the dash around from the front.

We also took some time to visit the zoo with the kids, which they really enjoyed.

The other thing of note I did over the holidays was pick up a Linksys WRT54G to replace my aging BEFW11S4. Now that I'm using the laptop a lot, 11Mb wireless just doesn't cut it for internal transfers.

Unfortunately, I couldn't find a WRT54GL, which runs Linux, so had to settle for the poorly performing WRT54G v6.

But in a case of really fortuitous timing, it turns out that you can upgrade the WRT54G to run Linux. I followed the instructions, and everything worked perfectly, apart from a hole in the instructions--at the last step, when you're running the TFTP client on your PC and about to put the DD-WRT firmware on there, you have to remember to give your PC a static IP, or it won't be able to find the router, as the router is no longer servicing DHCP requests.

I rebooted with the new firmware, rubbing my hands together in glee. Wireless worked, wired worked, all was good. Then I went to set the WAN connection information on the router. Hmmm. Three WAN choices. Static IP. Automatic. Or Disabled. Where's PPPoE? Hey! I need that!

So here I was at the end of a one-way street, download-wise, with no way to go back to the VxWorks firmware, and no Internet connection to go look into this problem. No worries. I plugged my BEFW11S4 back in, surfed back to the DD-WRT site and poked around. It turns out that the unstable, alpha releases do have PPPoE support. So I downloaded that, flashed it in, and everything worked--or did, once I remembered that MTS insist on you using user@hostname as the PPPoE user name.

So now everything's back up and running with DD-WRT and life is sweet--I had noticed, since getting the WRT54G that DNS lookups were taking a lot longer... well, they're back to quick and zippy now. And let's be honest, I love having a router you can telnet into and get a shell prompt.

Monday, June 26, 2006

WMA11b galore...

According to zar', when I bought that Linksys Wireless-B media adapter in January for the low price of $24.99, I bought a really capable little unit.

He's got a lot of the same complaints as I do about the weighty Microsoft .NET executables on the server side.

My geek instincts must have been tingling when I bought that thing--I purchased it essentially on a whim, because it was so cheap, and I ended up with a product that works pretty good out of the box, but is also completely reconfigurable--not to mention running Linux, and based around an Intel PXA255 microcontroller, a processor I'm intimately familiar with, having worked on the hardware designs for couple of different products using that chip, and now working on a design based around the PXA270, the follow-on to the PXA255.

In any case, it sounds like there are some pretty cool things you can do with it to replace both the target app, and the server side... the server side is of more interest at the moment. The browsing software on the unit meets all my needs right now, but the server side really bogs down the PC as all those services start. I think I'll let zar' work through all the problems, and then just tag along for the ride, rather than entering full-on geek-out mode and jumping into it myself. Hey, I've got 3 kids. 4 if you count Oblivion.

Monday, May 29, 2006

The magic of William Gibson

How disappointing is it that the only two posts on my blog in the last couple of weeks have been links to other stuff that I wrote, rather than new material for here?

Maybe I should do a piece on "how to ignore your blog in five easy steps" or something. With summer rearing its head, and the kids, and finishing the basement, working on the MAME cabinet, and starting to do some contracting work, time for the blog has been scarce.

That's fine--it's never been intended as something that's kept up-to-date religiously. It's more of a place I can dump my brain, sound off about things and generally share stuff too one-sided to make for good conversation. A write-only conversation.

The other thing I've been doing is rereading William Gibson. I started with Neuromancer a couple of weeks ago and blazed through those, and I just started Virtual Light this morning at breakfast. I don't know what it was with the timing, but it was perfect--it was like reading them again for the first time.

Neuromancer especially was an incredible experience. Gibson's prose just comes out and kicks you in the gut; it's such a visceral experience. I love it.

I just love that Gibson has had several of his novels do well outside of the sci-fi area as well, selling well against "general" fiction. I get a mental picture of the laid-back Western saloon of fiction, and Gibson's prose drifting into town on a lazy summer afternoon, kicking in the doors of the saloon, overturning all the tables, starting some fights, and then vanishing, leaving the place wondering what hit it... but knowing it was an incredible experience.

As an aspiring author, I am astounded by the meaning he packs into a single phrase. He reminds me a lot of Dickens in that way, bizarre as that might seem, but Dickens had the same talent of having a short sentence layered with meaning.

One of my favourite passages from Neuromancer is where Molly gets asked about her eyes. She has mirrored lenses surgically inserted into the flesh around her eyes, and someone asks her how she cries. She says she doesn't, much. The questioner presses the issue, asking how she does, if she does need to. "I spit... The ducts are routed back into my mouth."

Incredible, isn't it? There are so many insights into Molly that you can read from that. I love it.

The other thing that's great about Neuromancer is it's not at all dated. Considering that Neuromancer is 22 years old, it's still got a fresh, futuristic feel. There's only one moment that doesn't ring true, and that's Case's 3 megabytes of hot RAM--that's the sort of reference that dates quickly. You can also tell, from the fact that it's 3 megabytes and not 2 or 4, that Gibson is not a computer person--but he's admitted as much himself.

Of course, you could interpret the problem with the RAM another. What kind of sick and twisted future is it where RAM comes in 3 megabyte sticks, and is worth stealing in those quantities?

Monday, April 24, 2006

Oblivion silliness

But what is all this fear of and opposition to Oblivion?"1

My name is Turthalion, and I don't remember my past. I came to a few months ago in a prison cell in the Imperial City. Through circumstances I probably shouldn't mention in detail, I escaped, with a little help from our soon-to-be-deceased emperor (I wasn't involved, honestly).

So there I was, free in the world, with not a gold piece to my name, and no idea of my history. I'm not sure how that happened, as I have no prior history of amnesia that I know of. Though I suppose I wouldn't remember it if I did. Hmmm.

I've been struggling though. No money to speak of, and everything is so expensive! I did manage to find a few knick-knacks exploring some dungeons, but none of the merchants I went to see could afford to buy the items from me--at least, not at anything close to their real value.

I joined the Mages Guild in Chorrol, and that gave me access to their excellent library, and after reading a lot of the books, I noticed no one seemed to mind if I took them to my room at night to read. So the next day, I guess I forgot that that copy of "On Morrowind" didn't belong to me, and I took it over to Renoit's Books, and she was happy to give me 7 gold for it.

I went back to the Guild, and asked around, and no one seemed to have missed the book, or if they did, nobody minded. So I picked up a few more. And then a few more. No one seemed to care at all! Maybe the Guild books are all out of date.

The strange thing is, Renoit adamantly refuses to buy a book I borrowed from a friend in Bruma. See, I borrowed it without permission, but I'd done a bunch of things for this friend, and figured he wouldn't mind. But somehow, Renoit knows exactly where it came from, and I can't sell it to her. But she hasn't uttered a word of complaint about me selling 17 copies of "On Morrowind" to her. I'm surprised she even wants to carry all that stock. I mean, how often does she sell a copy of that in Chorrol? Not very often, as it turns out, as I've been back months later, and she's still got them all.

I've slowly been learning about magic as well, and I've seen that do some pretty wild things, but it's nothing compared to what I saw the other day.

So there I was. I had built up a pretty good supply of steel arrows--I like them better than the iron. They fly a little better, and do more damage. I guess I had about a hundred of them. I was visiting A Fighting Chance in the Imperial City, just browsing, but I was holding my bow... easy to forget, as I spend most of my time with a Chameleon spell active. Well, somehow, I accidentally started drawing back on the bow, ready to fire one of those steel arrows, while facing Rohssan. I panicked. I should have just wheeled to point the arrow at the floor, but my brain was flustered. Quickly, I turned to take inventory of my items, thinking that would avert the catastrophe.

It seemed to work, but I thought, in order to ensure that the arrow doesn't fire once I stop checking my inventory, perhaps I should drop these steel arrows. I tried, but as every archer in the world knows, you can't drop a quiver of arrows that you're in the middle of firing. So I couldn't drop my steel arrows, but I thought I'd drop the only other arrow I was carrying, a single magical arrow that inflicts the target with cold frostiness (not to be used on your spouse). I dropped that arrow instead.

Then, I stopped taking inventory and turned back to face Rohssan, and with a sudden burst of magical energy, the single arrow I dropped multiplied as it fell, into one hundred single arrows. Rohssan just stared blankly at me as I hurriedly picked them up, listening apprehensively for him to claim that they belonged to him, simply because they were on his shop floor.

Mumbling something about having dropped a bunch of my arrows, I left the shop. Outside, I leaned up against the wall, and took a deep breath. What had just happened?

I wasn't sure, but I knew my arrows had been involved. Hastily, I ran all over the city, buying up all the iron arrows I could, until I had 350 of them in a quiver and on my back.

Then, I found a nice secluded spot, and with trembling fingers, pulled back the string of my trusty Bow of Lightning. Once again, just before releasing the arrow, I took stock of my inventory. I tried to drop my 350 iron arrows, and failed. I then dropped my single glass arrow, and stopped checking my inventory.

With a quiet but steady tinkling sound, the glass arrow multiplied into 350 arrows as they dropped, lining the ground in front of me. I picked them all up quickly.

I don't understand exactly what is going on, but I know it's going to cut down on my arrow costs. And, in a somewhat tentative experiment, I've discovered that local merchants can't tell the difference between a purchased arrow, and one generated through this process. Assuming I can continue to create them at will, my money worries are over...

1James Thurber

Friday, April 21, 2006

Is it fin rot? It's fin rot, isn't it? Tell me it's not fin rot!

I was struggling with Platform Builder1, trying to get a WinCE build to work earlier this week, and complaining bitterly about some aspect or other, and Zar' pointed me to a great talk by Charles Petzold, asking whether Visual Studio Rots the Mind. It's a great read, and for the record, yes, I think it does.

The problem with the Platform Builder build turned out to be related to the latest Platform Builder QFE (no link provided as it created such evil problems for me). Once that was rolled out of the way, the whole thing compiled like a dream. Not that dreams compile... everyone knows dreams must be interpreted.

1Don't expect that link to work long-term. With any slightly older link (i.e. > 1 year) I find on the Internet to a page at Microsoft, when I follow the link, the original page is gone or moved. It's like there's a whole division at Microsoft constantly shuffling webpages around.

New bloggy goodness

I've added links at the side to Benjamin Thornton's Nine-Inch Column, and Zar''s Recursion Man blog.

Ben is a friend from my Mississauga days (which came to an end in 1986), miraculously reunited with me via the magic of the Internets.

And that's not a typo in reference to Zar''s blog. That's Zar', as in Zar "prime". The first ' indicates prime, the second, the possessive. Zar' is a cow-orker here at ... well, let's just say work, whom I've known for many years, having previously worked together at Symbol in the Mobile Computing Division.

They've both started blogs on Blogger now, independently, but within days of each other. It's like they're subconsciously guilting me into putting more content on my blog.

Well, it won't work, and I'll blog here every day about it not working if necessary!

Rogues, hence, avaunt! vanish like hailstones, go;
Trudge, plod away o' the hoof; seek shelter, pack!

So close, yet so far

Well, after coming in second place last year, I was disappointed to only get three honourable mentions (and here and here) in this year's BBspot geek limerick contest.

That's not to take anything away from the winners of course. Well done. I felt, when submitting them, that I'd failed to come up with the limerick that would seal victory, so I should be pleased I placed--and I am. So, kudos to me then.

Next year in Jerusalem!*

* I am quoting Bender, not uttering the traditional phrase spoken after the Seder meal.

Tuesday, April 18, 2006

The importance of Mr Solid

Proving that even years apart can't dull the cosmic connection I had with my childhood friend, Ben Thornton, he's just penned a new piece on his blog about the importance of selecting the right chocolate bunny at Easter...

And his bunny of choice? Allan's Mr Solid. Absolutely, no question. He's the bunny to go with.

And yes, that's what the Easter bunny left for me this year. The kids, being so young, got hollow bunnies, but mum and dad got Mr Munchy and Mr Solid respectively. Once their teeth are capable, that's what the kids will be getting too. No skimping.

It's kind of funny that Ben still insists on the same bunny that I do. It's good to know I'm not the only one hanging on, kicking and screaming, to his youth.

Monday, March 13, 2006

IF: how Risorgimento Represso was born...

In answer to a comment on an earlier post about whether I used a transcript to create Risorgimento Represso... sorry to take so long to reply, but I hadn't read the comment until now.

No, with Risorg1, I jumped right into it.

In fact, when I started coding, I didn't even realize I was writing a game.

I started with a short story I'd written (or started to write), and thought I'd turn the first part into an IF game just to learn Inform. I also wanted to try out the Enchanter-style spell code from the Balances sample Inform game.

In that original version, you had to retrieve a fizmo spell scroll and unblock a sewer pipe in the basement using that, retrieve Ninario's glasses, and get him to send you home, and that was where it ended.

When that was finished, I realized I really didn't like having the spell scrolls in there--it seemed really derivative, and unoriginal. So I opted to create a different method for unblocking the pipe.

At that point, I looked at this little mini-game I had, and how relatively easy it was to create, and realized that I had the start of a real game. I sat down and thought a little bit about what elements I wanted in the game.

I wanted some multi-level puzzles, like the Babel fish puzzle in the Hitchhiker's Guide to the Galaxy game that Douglas Adams created in collaboration with Infocom. You can see the babel fish inspiration in Risorgimento Represso's "getting past the bear" and "getting into the farm" puzzles, where every solution you think of to an immediate problem results in a new, unforeseen problem--while at the same time being a necessary step towards the solution.

I wanted to leave the stereotypical doddering old wizard in there; making such a clichéd character interesting and fun was a challenge I wanted to meet.

I didn't know what to do with Ninario for the span of a whole game, and how to free up the player without leaving Ninario sitting dully in his study. Likewise, I didn't just want Ninario wandering around his own little area... so having him abducted was the perfect way to get him out of the way once his possibilities as an NPC were exhausted.

Ninario's unauthorized use of magic seemed a perfect explanation for his abduction. In the original short story, it was his reason for fleeing his fortress along with the main character, so it translated fairly easily into the game. And then the Wizards Guild's heavy-handed dealing with Ninario gave rise to the whole idea of the Guild suppressing scientific innovation; the renaissance repressed idea, which is, of course, the meaning of the title.

I wanted a bear, in deference to the original Colossal Cave (aka Adventure).

Once I knew I wanted a bear, I needed to have a place to put a bear... so why not a mountain trail? And the bear seemed an ideal place for a Babel fish puzzle.

Of course, if getting past the bear was going to be a significant, multi-level puzzle, there had to be something on the other side. A lonely, wind-blown mountaintop seemed the perfect place for a world-weary hermit. And once I had a hermit, what was more natural than having a bottle with a hermetic seal?

Finally, I knew I wanted to make a cheesy game. Once I decided that, I also knew that Renaldo, the evil head of the Wizards Guild, would have to be lactose-intolerant. It's not a huge part of the game, and there is, in fact, only one tiny part of the game where you can find that out, but it rounded out my vision of that character--and resulted in me deciding that the Cheese Shop in Vechlee would be another victim of the Wizards Guild, with a sign posted outside about it being shut down. Ostensibly, it was for use of modern production methods, but behind the scenes, I knew it was Renaldo's lactose-intolerance.

I came up with these required elements in conjunction with a map of the game world. Some of the things I wanted resulted in having to place certain things on the map. Other times, the drawing of the map drove the selection of the elements I wanted.

When this stage was complete, I had a map, and a pretty good idea of the required elements. A lot of the puzzles grew naturally out of the orientation of the map. I had Ninario's tower and caer, and it made perfect sense that any structure like that would have heavy-duty doors and a gate--especially if the inhabitant was living in fear of Wizards Guild reprisals.

The need for doors gave rise to the cannon, which led to the gunpowder puzzle. The need for a gate led to the hydrolytic counter-balancing machine, which is, I believe, the only puzzle in the game with three distinct solutions. Getting into the shed comes a close second with two quite different solutions.

I wanted the hydrolytic counter-balancing machine to be unusable once the puzzle was solved, to simplify it, so I had the text describe it as coming to a halt, and a hose popping off it. And then I thought, rather than having the hose just hang free from the machine, why not make it an object that popped off, and had a use later in the game? That led to the whole idea of getting into the upper floor of the Wizards Guild, the dumb waiter, the second bottle of Wizstrip, and enabled me to bring the background knowledge I had of Renaldo (his lactose-intolerance) in as a funny consequence of sending one of the many pieces of cheese up to the second floor in the dumb waiter.

So it was a sort of chicken-and-egg development, with each element feeding off the others, and growing into a much larger game than I had originally anticipated.

With Risorg2, starting with a transcript, I am, thus far, creating a much more structured environment. I'm not sure yet if that's helping or hindering me. It's certainly helping me to stay in one "mode" at a time. I'm either in programming mode or writing mode, and can be more focused on whatever I'm doing at time, but it may result in a more narrow game when all is said and done.

We'll have to wait and see...

IF: Risorgimento Represso release 4 (and source code)

I finally got around to uploading release 4 of Risorgimento Represso to the IF Archive. This version has a number of bugfixes, and is noteworthy for being the final, never-again-to-be-updated release. Oh, it adds a Glulx binary as well, more for the sake of completeness than anything else. The Glulx version does not add any fancy graphics or anything to the game, but was really done to check that my auto-opening and auto-unlocking door features from Risorg would work in Glulx.

I also released the game's source code, which can be found either at my website on MTS (click here) or at the IF Archive here. It's written in Inform, and thus requires the Inform 6.30 compiler and library in order to build successfully. It does include a Makefile though for easy building, so if you're at all interested in Inform or writing your own interactive fiction in general, check it out.

With Risorg1 now firmly out of the way, never to be worked on again, I have been focusing on Risorg2. I've almost completely exhausted the work I've done on the transcript. Let me explain; whenever I have a free moment, but don't necessarily feel like coding the game, I'm working on a high-level transcript of play, detailing room descriptions, play-by-play action and so on. That way, when I feel like coding, I can stay at the coding detail level, and just paste in big chunks of already-written text when it comes to actually spitting stuff out at the user. Not only do the room descriptions slot right in place, but I even have a model for the code--from my transcript, I know how the objects and NPCs should react to a lot of the user input, and can code them accordingly, from the ground up.

I'm also finding that as I write the transcript, I stay more in "player mode"--I anticipate, a lot more, the different things players might try when confronted with specific situations. This should make the beta-test process easier, as some of the more obvious things a beta-tester might try will already have sensible, (and entertaining) responses, rather than generic failure messages.

But anyway, to continue my original train of thought, I've been working on the code to such an extent that I've just about reached the limit of what I had already transcripted, so I guess it's either back to transcript for a little while, or else continue improving and rounding out the code I've already written, or just forge ahead with coding, creating the game experience as I go. I think I'll stick to keeping the transcript and coding tasks largely separate though. It seems to be working pretty well, and I think I'll end with a tighter game as a result.

Tuesday, February 14, 2006

MAME cabinet: it stands!

So steady progress has been made with the cabinet.

During January, I managed to finish all the cuts of the MDF. Once I reached that point, the pieces sat there for a little while again--it's hard to find time to get down there. If the boys are awake, they want to come down with me. If they're asleep, I can't make a lot of noise down there.

In the end though, I got down there, and was able to place the two cabinets sides on top of each other. Even though they'd been cut out independently of each other, they fit together very well, with only a 1/16" difference between them at most. I sanded out the minor differences in the edges, and rounded the corners.

I then assembled the base. As per the source plans I'm using, the base is in two pieces, and I opted to use some metal strapping top and bottom to hold them together. The strapping means the floor of the cabinet is not perfectly smooth, but I made sure to leave enough room so that the PC case could rest securely on the floor of the cabinet, without being on top of either strap. That's the only thing that needs to go on the floor of the cabinet, so it should be okay.

The wheels went in fairly easily, and I offset the 5" kickplate, front and back, to give my fingers enough room to reach under and lock the wheels.

Once that was done, I had the base assembled, and I wasn't sure what the best way was to attach it to the sides. I ended up placing one side on the floor, dropping the base on top of that, and then screwing the corner brackets into place, leaving me with what you see below.



At this point, I stopped to do some thinking about exactly how I was going to get the second side installed.

In the end, I figured out the location for the front supports, rear slanted cover, top, underside of marquee and so on, and stuck them to the inside of the cabinet with small L brackets. I ended up with one side of the cabinet on the floor, and all these pieces of wood sticking straight up in the air. As these are all fairly small pieces, they were fine in the short term with just the bracket holding them in place.

This meant I could then take the second side, and maneuver it on top of this forest of MDF. I rested it on there, lined it up, and then screwed it into the base. Then, I went along and screwed in the inside brackets.

Next up was putting all the screws through the side of the cabinet into the cross-pieces. That went okay, apart from a few near misses. I then flipped the whole thing over onto its other side, and screwed the first side in. This was the side that had only been bracketed in so far.

At the end of all that, I had this:



The boys really like it too, and came down just before bed while I was trying to take the photos. Nicholas helped during some of the construction, and actually did help, a sure sign he's getting older. He held some screws for me, at least until he lost interest and then I set him up with a piece of scrap wood, a small hammer, and some nails.

The next step is to work on the doors, front and back, and the drawer. I was planning on using plywood for the doors, as using MDF would have meant purchasing a whole other sheet. The plywood is nice and light too, which puts less stress on the hinges.

The only thing that worries me about that is whether it will paint to the same texture as the MDF. In the end though, if it doesn't, the doors are a fairly easy component to change.

I'm still not sure whether I'm going to look for a reclaimed coin door locally, or just bite the bullet and order one from Happ Controls--maybe I'll do that, and then I can order marquee edging and a bunch of tokens at the same time too.

We'll see. Now that the most time-involving parts are done, the rest should be easy, and work I enjoy a lot more than woodwork. Give me electronics, every time, thank you.

Monday, January 16, 2006

IF: a non-update update

In order to address the emails I've gotten from a couple of Risorgimento Represso fans, asking about when the sequel is coming out, I thought I'd post this publicly.

Progress is still very slow. I've still been mainly concentrating on the final, never-going-to-make-another-even-if-I-have-a-paper-bag-over-head-bug release of RR, which adds the Glulx target, and provides true context-sensitive hints (which I now wish I hadn't bothered starting to do, as it's quite time consuming). Once I get that out of the way, I can get back to alternating work between the Risorg2 transcript of expected gameplay, and the actual coding.

Patience is a virtue. Anyway, look at this way, even if it was 100% finished, I still couldn't release Risorg2, as I have no idea what I'm going to call it.

Linksys's wireless-B media adapter

So there's only a couple of issues I've discovered with the Linksys Wireless-B Media Adapter. The control is really good, and the browsing works great.

However, even when you're not actively serving out files from the PC to the adapter, the service that runs in the background regularly chews up CPU cycles, hitting 35% at times. Ouch! And guess what needed to be installed before I could install this? Windows .NET Framework v1.1. Gee, I wonder if that's why it's slow?

I regularly kill the service if I've booted and know I'm not going to be using the adapter.

The other annoying thing is the service doesn't show up in the Services list, so there's no way to stop or restart it easily. I've resorted to killing it in Task Manager, but then I have no way to get it going again--running the Linksys's "Manage Shared Folders" application doesn't restart them, neither does launching their EXEs directly. In fact, launching their EXEs gives you a (Microsoft) message that "You can't launch this service this way, you should do it from the Services tool".

Argh.

Apart from those concerns, it's working great--we have to keep the CDs hidden away in a closet, or one or more of the kids gets into them and starts opening them, so having a way to stream MP3s from the PC to the stereo is great. It was certainly worth the minimal cash I spent on it.

Friday, January 13, 2006

The grapes of wrath...

I picked up a Linksys Wireless-B Media Adapter for cheap from TigerDirect, and it arrived yesterday.

It's only 802.11b, and doesn't do video, but it does understand JPG and MP3 files, so it's a really handy way to play MP3 files from the PC on the home stereo. It also features a nice interface, and understands MP3 tags, so after you select the folder to share from your PC, you can browse on the TV via folder, artist, genre, song name and so on. Very nice.

I got it home yesterday, and set about hooking it up before supper. I was just moving the entertainment unit out from the wall to plug it in when Michelle voiced her suspicion that the kids might have been sticking things into the bass exhaust ports on the speakers. These are Monitor Audio Silver 8 speakers, with two bass drivers and one midrange each, and thus two exhaust ports each--one at the bottom and one at the top. I paid a bundle for them when I bought them in 2001 (or was it 2000?), and they're an amazing set of speakers. We've often found the kids sticking things into the ports, but usually it's items that are large enough that they remain sticking out, or they're not in far enough that we can reach in and grab them.

So once both kids were in bed, I pulled the fronts off, and started with the bottom driver. I unscrewed it and pulled it out. Behind it, nestled in the bottom of the cabinet, were a piece of chalk, a piece from a magnetic Caillou fridge puzzle, and a plastic harmonica. However, these were all things that had been missing for quite some time, and not what Michelle suspected was in there.

The next step was to open the midrange driver, as it's separated from the two bass drivers by foam inserts inside the cabinet--thus, anything dropped into the upper exhaust port is likely to stay up there behind the midrange. So I pulled that driver out and lo and behold, I found them: six grapes which had been stuffed into the upper exhaust port, and were sitting right behind the driver on the foam insert. Thank goodness Michelle had noticed the boys lingering around the back of the speaker while they were eating grapes. Now, to be fair to the kids, Nicholas did admit that he'd put grapes into the speaker when Michelle asked, and as far as we can tell, he's always truthful--we frequently rely on him to tell us what's happened if we come into the room and one or more of the kids is crying.

After recovering the grapes, I asked Michelle if they'd been near the other speaker--it's a little harder to get to, as the piano sits close to that side of the entertainment unit, and she thought not. But, I was already in speaker-opening mode, and I had the tools, so I thought I'd check. Clean of grapes, but behind the bottom driver, I found an AA battery that someone had slipped in there.

So my speakers are now gloriously free of all foreign substances. Short of covering the exhaust ports though, I'm not sure what I can do to stop them doing this. I suppose I'll have to resort to yearly checking of the cabinets--sigh.

And any comments talking about "sour grapes" run the risk of deletion by the anti-atrocious-pun filtering software.