bzztbomb

New (old) highscores!

I got these a while ago and have been too lazy to post.  Q*Bert: 137320, Robotron: 387875

Qbert robotron 387875

Still need to work on my homebrew Wii robotron clone. I have a “player” working. Need to get hit detection and enemies on the screen next.

Homebrew Weekend

I’ve got free time again and I want to try out some homebrew console development. I’ve got a Wii, so I’m looking at GameCube homebrew for now. The steps as I see them are:

  1. Get someone elses homebrew working on my system.
  2. Get a dev environment setup, compile someone elses stuff and run it.
  3. Write some silly stuff of my own (I’m thinking Robotron ripoff)
  4. Profit!

I’ve got step 1 done. I bought a Datel SD Media launcher which allows one to load .dol and .bin files off of a SD card. I’m curious how the Datel CD is bootable by the Wii. How’d they pull that off? I also got some cheapo Gamecube controllers and downloaded some ROM’s from here: http://www.dcemu.co.uk/vbulletin/showthread.php?t=48442

So now I’m onto steps 2 & 3, this is my launchpad for that: http://www.tehskeen.com/forums/showthread.php?t=2968

Update:  Neat, that didn’t take very long to do.  I was expecting quite a fight to get a dev environment running for some reason.  Onto step 3!

New Q*Bert high score!

118420!

QBert high score! 118420

Not Breathing -- The Black Old Pueblo

I got this new disc from Not BreathingThis disc is awesome. The great tracks on the disc are Dead Voices on Acetone and the crazy one about treating your mom right (What’cha Mom Wearing).

I also get a random bonus prize with my disc:

not breathing fun kracker jack prize It’s some random ass circuit board that looks like it used to plug into something judging by the traces at the bottom.  This is why it’s best to order direct from the creator. ;)

Effective searches

Being smart about searches is key to exploring large codebases. You have many approaches to take to get better searches:

One must exploit language syntax to get search results that don’t suck. Some examples for C++:

One must also exploit code base conventions.

Some IDE’s (Visual Studio, Eclipse) will give you this information without these searches. Which is nice to use when they work and when it’s available. The great thing about these text tricks are they work everywhere that “Find-in-files”/grep is implemented.
You can get away without such tricks. But you’ll spend a lot more time parsing your search results for the information you really need. I’d rather spend that extra time slacking. ;) More tricks to come as I remember/use them!

Robotron

Robotron high score Got my best score in Robotron 2084 recently: 136600. I’m not a super master by any means, but that’s damn good for me. Here’s a pic from Ground Kontrol. Gotta take the pic because the machines are reset nightly. It’d be cool to start a Flickr pool, or random high score site for Ground Kontrol.

From Windows to Mac

I’m not a convert, but I’ve had to jump over to port a project I’ve been working on. Here are some of my thoughts about it:

The Good

The Bad

Stuff to explore

The Summary

After actually using the Mac for a while, I like it. Having a nice looking Unix box is a good time. As I said above I’m not a convert. But it is a pleasant environment to work in. For day to day things, I’m just using Firefox and Emacs on both platforms, so it’s not too different. Windows and Mac are basically two flavors of kool-ade, but they’re both just a lot of sugar.

Microsoft Application Updater Block

Microsoft Application Updater Block is supposed to be an example of “best patterns and practices”. It is a decent amount of good code that can be used to build an automated updating solution for your software.

It’s got a lot of great features: compression, only downloading the files that have changed, and hash checking to ensure you’re getting the right file. It’s got unit tests for everything.

The problem with it is, if you try to use them all together it fails horribly. Out of the box if you try to use compression you can’t use the hashes to conditionally download. If you try to use all of these features together you need to store the following info per file:

Then you need to modify the code to check the uncompressed hash for the conditional download and check the compressed hash to verify the file you got is correct. Finally, you run it through the uncompressor component to get your uncompressed version. Another annoying bug with the hash checking feature is that it does not support salted hashes. But the tool you use to generate the hash has the salted hash enabled by default.

Overall, it’s a good package but needed some tweaking for real use. I think .NET 2.0 is suppossed to have a new mechanism for updates that I hope is more mature.

random dumb stuff

This is yet another developer blog. Topics will be about debugging, coding, and whatever I’m playing with at the time. I’m putting this together as an exercise to better my writing skills. Maybe I’ll even write something interesting!