For the past few days I've been working on a shameless self-nostalgia project: to rebuild Tetris Max from the original source code. I've finally succeeded, and along the way I rediscovered two hidden easter eggs in the game that I'd completely forgotten. This was a fun project, but also a reminder of just how much better and faster today's software development tools are compared to vintage Mac dev tools.
My first hurdle was to get the actual source code files. Somewhere along the line of migrating computers over the years, my copy of those Mac files had been split into separate data fork and resource fork files. That didn't really matter for the text files, but there were a few other files that needed to have the parts rejoined. I couldn't find any utility to do it, so I wrote the MacBinary file joiner tool that I posted here a few days ago. I then had to fix up the type/creator IDs for all the files, which was a pain. From the date stamps, I saw that the last work I ever did on Tetris Max was April 11 1998, which doesn't feel that long ago.
Next hurdle was to get the development tools installed. The game was created using Metrowerks Codewarrior, although I couldn't remember which version I'd used. I spent a long time trying to get Codewarrior 11 from Macintosh Garden installed, but I could never find a tool that would open the segmented archive file. Then I found an ISO of the Codewarrior 6 CD, but for the life of me I couldn't figure out how to extract files from the ISO image. I ended up burning a few physical CD-Rs from the ISO, which almost worked, but I think my CD drive or my CD media are flakey. Using the CDs I burned, the Mac always failed with a CD read error part-way through installation. Finally I found that a program called Toast on the Mac side will directly mount an ISO, so I was able to run the CW 6 installer that way.
It turned out that even CW 6 was far too new, and the project files I had were from some earlier version. CW upgraded the old project file to the new format, but it didn't seem to do a good job of it, and I had to mostly recreate all the project settings by hand, and from memory. I must have originally used CW 5 or an even earlier version.
When I tried to compile the code I got a ton of errors. It seems that somewhere along the way, the names of most of the Mac OS routines were renamed from cryptic stuff like GetIText to more readable versions like GetDialogItemText. The Tetris Max source code all used the old-style names, but CW6 appeared to only recognize the new style names. It took me a while to hunt down the correct new names and update all the references.
I'll spare the rest of the details for anyone who hasn't already clicked off to the next forum post, but suffice it to say there was a lot of fiddling necessary. In the end, though, I was able to produce a mostly working Power PC binary! Fun times...
My first hurdle was to get the actual source code files. Somewhere along the line of migrating computers over the years, my copy of those Mac files had been split into separate data fork and resource fork files. That didn't really matter for the text files, but there were a few other files that needed to have the parts rejoined. I couldn't find any utility to do it, so I wrote the MacBinary file joiner tool that I posted here a few days ago. I then had to fix up the type/creator IDs for all the files, which was a pain. From the date stamps, I saw that the last work I ever did on Tetris Max was April 11 1998, which doesn't feel that long ago.
Next hurdle was to get the development tools installed. The game was created using Metrowerks Codewarrior, although I couldn't remember which version I'd used. I spent a long time trying to get Codewarrior 11 from Macintosh Garden installed, but I could never find a tool that would open the segmented archive file. Then I found an ISO of the Codewarrior 6 CD, but for the life of me I couldn't figure out how to extract files from the ISO image. I ended up burning a few physical CD-Rs from the ISO, which almost worked, but I think my CD drive or my CD media are flakey. Using the CDs I burned, the Mac always failed with a CD read error part-way through installation. Finally I found that a program called Toast on the Mac side will directly mount an ISO, so I was able to run the CW 6 installer that way.
It turned out that even CW 6 was far too new, and the project files I had were from some earlier version. CW upgraded the old project file to the new format, but it didn't seem to do a good job of it, and I had to mostly recreate all the project settings by hand, and from memory. I must have originally used CW 5 or an even earlier version.
When I tried to compile the code I got a ton of errors. It seems that somewhere along the way, the names of most of the Mac OS routines were renamed from cryptic stuff like GetIText to more readable versions like GetDialogItemText. The Tetris Max source code all used the old-style names, but CW6 appeared to only recognize the new style names. It took me a while to hunt down the correct new names and update all the references.
I'll spare the rest of the details for anyone who hasn't already clicked off to the next forum post, but suffice it to say there was a lot of fiddling necessary. In the end, though, I was able to produce a mostly working Power PC binary! Fun times...

