Mac Mini Processor Upgrade

Our Mac Mini (Intel, late 2006) is now the family computer.  That’s a big job for this little machine, which last saw an upgrade in 2008 to 2gb RAM.  However, it still poked along on the Core Solo 1.5ghz processor that it shipped with.  That was decent in 2006 but it’s slow in 2012: when your Flash games look like a slideshow, it’s time to upgrade.

Fortunately, the top end processor for this machine (Core2Duo 2.33ghz, the “T7600″ model) has been out of production for some time and prices have finally fallen below $100 shipped on eBay.  I snagged one for $91 and went through with the install today.  It’s a little nerve-wracking working in such a tight space, especially since you must pry the case apart using a putty knife.  Also, I had no thermal compound… the nice guys at Luyet Computers donated the .1 gram or so that I needed at no charge (thanks!) and I was up and running shortly.  I also blew out a ton of dust and cleaned up some stickiness that appeared to be ancient Sprite spilled on the computer.

End result: well, it’s way way faster, as to be expected.  I didn’t measure temperatures before and after but (thanks to eliminating dust) it’s actually running quieter than when I took it apart.  For fun I did a before-after Geekbench scores comparison.  Click here to see the Google Docs spreadsheet.

If you have a Mac Mini, I highly highly recommend this upgrade, it’s great for the price (or you can probably do even better getting the T7200 or T7400 versions… but I was enticed by the turbo clock speed).  We should be good for the foreseeable future, until the HDD dies and I put in an SSD instead : )

Posted in Uncategorized | Leave a comment

SlugFest ’97 DX

Kids have big dreams.  Some of them want to grow up to be scientists or astronauts or football stars or President.  When I was in school I wanted to make video games.  So I took programming classes and worked hard on my craft.  I churned out lines of QBasic spaghetti code and, later, migrated to Visual Basic on Windows to do the same thing.  Surrounding much of what I produced was a feeling that I was destined to do something big with whatever I was working on: I was going to make a million dollars off some shareware game, or I would code up a groundbreakingly massive and openended world (and it would all fit on a 1.44MB floppy), or whatever.

Over a summer break in 1997 my cousin Rusty came to spend a week at my family’s house.  I don’t recall exactly how it happened – something to do with playing a lot of Myst, I think – but I managed to convince Rusty and my sister Erin to work on a video game.  We were going to make an awesome fighting game on PC.  It was going to be released on CD – ostensibly because we could put music in the empty space, but most likely because CD-ROM was the hot item of the day.

Our game was called SlugFest ’97.

And so we set to work, with the enthusiasm that only kids have.  For that whole week we invested our time and effort on producing this game.  We each painstakingly drew out MSPaint sprites for our assigned characters.  We coded and built and playtested.  When we weren’t working on it, we were talking about it: how to improve it, how to produce it, how to market it.  We even took time out to make a “The Making Of” video.  And as time grew short we did, in fact, wrap up a version that we were quite happy with.

Then reality set in: we called a local CD mastering shop (this was in the days before CD-R became widespread) and were told that we would be charged $100 to produce our CD.  In hindsight I think the clerk may have been confused about what we were asking and thought we wanted to book studio time.  In any case, we all realized that the dream was simply beyond our financial resources.  Enthusiasm drifted away.  Though we later made an attempt at a sequel (“SlugFest 2000″), it never made it past initial character design before we all lost interest and started playing BattleMasters on the landing at the top of the stairs.

Well.  I cleared out an old folder on my HD recently and ran across both the compiled version of the game, plus the source code.  Unfortunately, it doesn’t run on the most modern Windows version, and is hit-or-miss functional on the rest.  A quick calculation: Fourteen years of coding experience in the intervening time, including running a college game development club for two years… plus a stash of resources including a 2d game framework… a remake should take very little time indeed.  The actual “game logic” is absurdly simple.  The technology to realize the dream is here too – everyone has a CD burner these days.  Yes, I can do this.  I can release SlugFest.  (Since misquoting Steve Jobs is all the rage these days, I’ll throw in an old favorite: “Real Artists Ship”.)

On to the remake.  It actually was very easy.  The entire thing was rewritten from the ground up in C, using SDL as the backend library (plus SDL_Mixer and SDL_Image to provide sound and graphics loading).  I managed to squeeze in a few “DX Mode” features to inject a bit of modernity into the game.  I even cut some sound samples from ancient recordings of us to make fight sound effects.  The result is faster, better, and smaller than the original… though I included that in the installer too, for completeness’ sake.

In fact the most challenging part of all was the music.  When we wrote the game we had no music sources of our own and couldn’t burn anything to test with, but we wrote the game with CD support expecting to just substitute our own tracks in production.  Most playtesting happened to the tune of either No Doubt’s “Tragic Kingdom” CD, or some electronic “Phantom of the Opera” remix CD.  Inspiring, but copyrighted, and not really fitting for the remake.  Instead, I loaded the game up with MIDI files that I or my sisters had written in our school years and used them for background music.  Some of these hadn’t been heard in many years, because they were in a proprietary format that I first had to write a decoder for.  In the end I found 43 tracks worthy of inclusion, mostly without any musicality or rhythm.  Hey, if it worked for Marvel vs. Capcom 2…

And so we come to the release.  There is a web-downloadable installer here, if you want to try it out:

Download SlugFest ’97 DX – Installer – Windows, version 1.0.  1.6 MB

The finishing touch is here, though: run the MIDIs through a MIDI -> WAV conversion tool (I used WinGroove), create a cue sheet, redo the installer to work from CD, and burn a copy.

Well, there you have it.  Childhood dream: accomplished.  Now if I could just figure out a way to market it… : )

Posted in Games | Leave a comment

Hornpipe2 – Test Patterns

 

Lord help me, I’m releasing an album.

When I was in late high school / early college, I wanted to make electronic music.  I didn’t have gear or experience.  My knowledge of music theory was patchy: I am a classically trained violinist, but knew almost nothing about chords.  What I did find and manage to use was Buzz Machines.  Sort of a tracker on steroids, it’s a very customizable software DAW with “machines” as plugins to be synthesizers, samplers, effects (reverb, EQ, volume, …)  Through the process of trial and error I managed to bang together a handful of trance-styled tracks that never got released.  Eventually other demands on my time crowded out my efforts and I haven’t tried to write anything in many years.

Well I’m combing through my hard drive and now I’ve found some MP3s that I had recorded “way back when”.  Most of these were composed while trying to find my way around all the features of Buzz Machines… hence the album title “Test Patterns”, since that’s essentially what they were.  When a pattern grew into something more closely resembling a song, I’d cut a WAV file and then encode it to MP3.  Those exact recordings are what I’m packing up and finally releasing now, 7-9 years after they were originally composed.  Five minutes in GIMP to create a CD cover, a little iTunes ID3 editing (the original files were named after things lying on my desk: “pocketknife”, “checkbook”, “two monitors”) and a ZIP file later… I’m a self-published recording artist.

There’s more raw material in another folder but installing Buzz Machines and tracking down years old VSTs is beyond my time or desire.  Will there be more releases, this time with new material?  Certainly I have no plans to write anything right now.  If I do decide to try that route again in the future, I want to take a different approach: one that is grounded more solidly in theory, keyboard practice, live recording, and careful song structure.  The work involved in polishing those basic skills would require far more time than I have now.  And if I do end up releasing something, it’s not going to be under the Hornpipe2 alias.  That’s a holdover from my first email address back in 1995, and I think it’s time to ditch it.  I’ve changed a lot since then.

So Merry Christmas, readers.  Enjoy the one (and only) album release.

Download Hornpipe2 – Test Patterns - ZIP archive, 26Mbytes

Posted in Uncategorized | Leave a comment

ToneMIDISynth – Arduino Project

This is ToneMIDISynth: a MIDI-controlled square wave generator written for the Arduino. The code is available here:
http://arduino.cc/forum/index.php/topic,79326.0.html

I’ve already begun rebuilding this into a full-blown MIDI synthesizer.

Posted in Hardware | Leave a comment

New Server Problems

Well… the server began powering off after only a few minutes of activity, so I had to crack it open and fix several issues inside.  Self-hosting is great sometimes: the level of control is unmatched, and the costs are low.  On the downside, you must do your own tech support.  When hardware issues crop up, this can be quite an annoyance.  Here’s a shortlist of the issues I worked on.

  • Detached heatsink: Almost immediately after opening the case I found the cause of my force poweroffs: the heatsink mounting bracket (already damaged on one side) had broken completely and the heat sink was falling off the CPU. Overheating triggered a safety mechanism that shut down the PC to save the chip. I reattached this using a couple of plastic cable ties from Home Depot. According to BIOS measurements, it is running 5 degrees cooler now than when I originally brought it home.
  • Added PCI video card: My aging S3 Virge is now serving VGA duty in the machine. This allowed me to return the 16MB of shared video RAM back to the system. Definitely not much, but with only 384mb RAM total, every byte counts.
  • BIOS problems: Made a couple changes to BIOS. Unfortunately, the system remains a bit unstable after power-on… the second hard drive takes a while to report to BIOS after first power on. This generates an error that freezes the BIOS since boot devices had changed. I changed settings to simply ignore all errors and boot no matter what.
  • ACPI crash: ACPI support in FreeBSD must have broken at some point recently (or thenew gfx card is having troubles with it), but there are kernel panics on boot when trying to run with ACPI enabled. For now I have shut it off with an entry in /boot/loader.conf (hint.acpi.0.disable=”1″). Power management is not really necessary for an always-on server… I have the second hard drive set to spin down after 10mins inactivity, and do not have power to my floppy drive or CD drive at all.

With luck, this will keep me up and running for a good long while.

Posted in Hardware | Leave a comment

New Webserver

From FreecycleJust a quick post here before my latest projects all escape me.  I snagged a used PC off Freecycle a couple of weeks back and swapped out my web server – reformatting and installing the latest FreeBSD at the same time, then reinstalling all the ports from scratch.

In fact my needs have simplified considerably since standing up the old server, as I’m now using a TomatoUSB-flashed WRT54GS as my router / gateway instead of the webserver box – meaning I no longer needed dhcpd, natd, an elaborate pf.conf, dyndns client, a second NIC, etc.

Interesting specs: 2.0ghz Celeron (old machine 1.3ghz Pentium4), 384MB SDRAM (old: 128mb RDRAM).  Gigabit ethernet card.  Two SATA ports.  On-board GFX using 16mb shared ram (could put in a PCI card to get that back, if I really need it)  Most everything is up and running as before – a few side projects have dependencies I haven’t reinstalled yet.  In fact the biggest challenge was updating the BIOS, because all my floppy disks are dying… I managed to do it using two half-damaged disks, one for the flasher and one for the ROM, and even then command.com didn’t want to boot so I needed to use the flasher as the interpreter : )

The old machine is going to be fitted into the gutted Galaxian cabinet and run dedicated MAME – win98se stripped, off a CF card.

Posted in Hardware | Leave a comment

Joule Thief

So I had a few problems I needed to solve:

* My 4 year old daughter loves flashlights, but often forgets to turn them off, and all of our flashlights use D cells or multiple AAs.

* We have a large (20+) collection of “mostly dead” batteries that I feel kind of bad just tossing or recycling

Both these problems are nicely solved by the Joule Thief circuit (http://www.emanator.demon.co.uk/bigclive/joule.htm) – an LED driver that can drain the very last bit of power from a battery and still function for days on end.  It has an additional advantage of only using a few parts, and I happened to have them all on hand… a rarity for me!

I have no idea what the “ferrite” material is.  I stole this massive coil out of a broken car stereo, cracked open the plastic and found that it was actually some sort of tightly wound metal tape.  So I put the plastic back on since it was prone to damage otherwise and just ran a bunch of untwisted cat5e wires around it.  Works great.  The transistor is NPN… I assume the values of pretty much everything here really don’t matter much.  I did have problems getting the lights until I realized I had connected the wrong end of one transformer lead to the battery: the two coils must oppose one another, not run in the same direction.

Of course a bare circuit is fun but not all that useful.  So I stuffed it in a little elephant toy I got off Freecycle and gave him a shiny trunk.  For now the battery is soldered straight to the leads.  One day I’ll get a real AA battery holder and some velcro to finish this up.  In the meantime he’s a good nighttime buddy for my 4 year old daughter.

Posted in Hardware | Leave a comment

Dumping C64 Tapes

Cleaning out the garage to set up my photo studio and I ran across boxes of Commodore 64 gear given to me by a friend for my birthday a couple years ago.  Among the items: some crusty old cassette tapes with data on them.  Back in the day, disk drives were expensive luxury items for saving your data (and the disks were costly too).  The cheaper alternative: a “datasette” – a specialized tape recorder that can save and load to standard and widely available audio tapes.  There were some quirks to working with tapes: they are extremely slow, must be manually positioned at the right point, and like all magnetic media the tapes “should be” carefully stored.

Fortunately retrocomputing hobbyists have since worked out long-term digital storage solutions for the analog data on the tape of various 8-bit computers.  On Commodore machines this is the TAP file – a digital representation of the various pulse lengths detected on a tape.  It can be replayed in an emulator, or turned back into a pristine WAV file to be used in a real machine (record it back to a new tape, etc).

Now, the ‘preferred’ way to dump a tape is to use a special cable to link the C64 to your PC, but I only have three tapes here and there’s no way I would go to the effort of that.  Instead I settled on the super cheap method: hook a standard tape deck to the line in of the computer sound card, record the WAV, then use a tool to make a TAP file out of it.  Not a very good solution for people with a lot of tapes to dump, because the resulting file needs a lot of manual cleaning to work properly afterwards.  The tool suite I used to fix it all up were:

  • Audacity to record the wave.  Use 96khz sample rate if your hardware supports it.
  • UberCassette (or an alternative, e.g. AudioTap) to turn a wave into a .tap file
  • tapclean to clean up, standardize, repair and verify the tap image
  • a hex editor to do a good bit of manual cleanup
  • A good reference on the tap file format!

End result of all this: I managed to fully dump the three tapes that I own.  One is “Dungeons of Death” for the VIC-20, a previously unreleased RPG.  Another is “Touch Typing Tutor” for C64: a .prg file existed, but no tape dump or scans.  And the last… a tape with programs that my friend had written back in 1985 or so.  Now that I’ve gotten the hang of this, I’m out of material!  So there’s an open request out for C64 tapes.  If you’ve got them, I may be able to dump them.

Posted in Software | Leave a comment

Time-Lapse Intervalometer

This was an interesting and mildly frustrating project.  I busted an old camera trying to get this to work, but in the end I was able to take some cool videos with it (and salvage the camera again for its single purpose).  The design is based largely on the instructable for the 555-timer based intervalometer, seen here:

http://www.instructables.com/id/Time-Lapse-Intervalometer-for-SLRs-with-555-timer-/

I had to make some changes to the circuit, replacing the transistor with a relay to fake push-button on the camera shutter.  It’s extremely fragile but works well and can produce some fascinating videos.  More info is available on my Photography News page:  http://greg-kennedy.com/2011/08/01/time-lapse-photography/

Posted in Hardware | Leave a comment

MAME Arcade Machine

I’ve posted about this in several other places, so I’m not going to write a lot about it here.  I finished my MAME arcade machine.  It’s a cocktail table style, with a vertically oriented monitor.  It runs DOS and dosmame, and plays 729 games.

There’s a complete build write-up on a separate Google Sites page.  Click here to read it.

Posted in Hardware | Leave a comment