Links Championship Edition

Unlike Links LS 2000, the Links Championship Edition code was brand new to us. it was a windows application, but it was far more complex than previous versions we had converted (especially the rendering code which we converted to use OpenGL).

We used NetSprocket again for the DirectPlay replacement and we replaced all the sound code with OpenAL.

Click here for a more detailed description of the porting process for Links Championship Edition.

Links LS 2000

Links LS 2000 had evolved from the code we ported a few years ago. In addition to an improved rendering system, it also was a Windows application this time instead of a DOS application. In addition, the source code was designed to use 2 byte characters to support languages other than English.

We started with the original Links LS source code, the Macintosh version of Links LS and the PC source code for Links LS 2000 and went to work. We used what we could from our original conversion and we wrote new code as well.

The fact that the new source code was for a windows application made some things easier (the new source actually had an update mechanism in it, so we didn't have to do an end run around the MacOS to update the screen properly) and it made other things harder (the new source relied on windows to save and load data from the registry as well as load some resources for dialog boxes).

The networking code in Links LS 2000 was much improved over Links LS 98, but it used DirectPlay. Since there are no DirectPlay libraries for Macintosh we had to rip out the lower levels of the network code and replace them with NetSprocket. We left as much of the original networking UI intact as possible. Our networking code supported both AppleTalk and Internet play.

download demo

download the LS 2000 1.0.4 patch

Links 2000 1.0.4 patch ReadMe


The first pressing of CD #1 for Links LS 2000 is missing some files. These files are needed to install some older courses. Click here to learn how to use the Links LS Vintage disk image to install these old courses for Links LS 2000.

Links LS

Links LS was a conversion from the PC to the Macintosh. The PC code base was a combination of C++ and Intel assembler. A generic system for rendering scenes at any resolution was implemented as Links LS will support resolutions from 800 x 600 to 1600 x 1200 and runs in either thousands or millions of colors.

As with previous projects, Links LS had to be able to read from the original PC data files. This was especially important because add-on course packs are released periodically. The Mac version is also capable of reading Links 386 and Links Pro course data files.

The PC version supported Modem and IPX networking. The Mac version supported these modes as well as direct serial, appletalk, and IP.

Links LS allows the sounds for various game events to be customized using WAV files. We supported this as well as Macintosh sound files.

Links LS 1.1.1 updater is now available. This version includes minor bug fixes and works in 640x480!

MechWarrior 2

After completing this project we also localized it for Japan, accelerated it for QuickDraw 3d RAVE, and added network support.

MechWarrior 2 was a conversion from the PC version to the Macintosh. This project involved converting the C and C++ code in the project to compile and run on the Macintosh. The bulk of the time critical code was written in Intel assembler. This code was rewritten in C and then optimized into PowerPC assembler where the speed was needed. The end result read all of the original data files, and, was able to write saved game files which are compatible with the PC version of the game.

Q: How can I get the RAVE update for MW2.

A: You can't. Activision has made this version available only in various hardware bundles. We have tried to get them to release this version in some form, but so far we have failed. Please contact Activision and let them know that you want it. Perhaps,with enough requests, they will release it.


The conversion of NetMech was done using both Communications Toolbox, Open Transport, and Novell's IPX. This version supports play over AppleTalk networks, the Internet (using IP), Novell IPX networks, direct serial connections, and modem connections.

The Modem and IPX connections allow Mac NetMech to be played against DOS NetMech.

NetMech Listening Posts

Do you want to be notified when someone wants to play NetMech? Download the listening posts and you will be! They are applications that watch for NetMech traffic on either AppleTalk, the Internet, or IPX and then notify you if any is found.

WARNING! These were written in about a day and have had only minimal testing!

Download NetMech now!


MechWarrior 2 RAVE

We first converted all math to use floating point throughout the codebase. The original MechWarrior 2 codebase was done in fixed point math. We then updated our code to read the new PC data files used for the 3D accelerated PC version. This mainly consisted of code to handle loading 16 bit per pixel textures (instead of the 8 bit per pixel textures used in the original).

Since one of the texture formats used in the PC version was not supported by RAVE, we then had to convert this texture to a RAVE supported format before sending the texture to RAVE. We also had to write a last recently used caching system to determine which textures should be deleted when there was no more room in VRAM for any new textures.

During the course of this project we also added support for InputSprocket (in addition to the manufacturer APIs for talking to input devices). We also used DrawSprocket to allow us to automatically change resolutions for the best possible game play.

Kanji RAVE MechWarrior 2 

In order to complete the Mac Localization we needed to change all code to handle mulibyte character sets. Some of the codebase uses an internal font system, while some code brings up Macintosh Dialogs with Mac Fonts in then, We needed to handle both cases. We also had to work with a translator to create the Kanji text needed for this version.

The second localization project was to combine what we had done to localize MechWarrior 2 with the changes we had made to accelerate it for RAVE. This was complicated by the fact the PC accelerated Kanji version used a slightly different format for some of the textures. In the end we have a Kanji RAVE accelerated version of MechWarrior 2.

Under a Killing Moon

Although Under a Killing Moon was a conversion from the PC to the Macintosh, all the original code was written in Intel assembler. This meant that the entire code base had to be rewritten on the Mac to follow the same architecture as the PC version. This was vital to the project since we wanted to use all the existing data files on the four CDs that this game ships on. Since all the video was in proprietary format, we had to write custom playback code to play this video instead of simply using QuickTime. We also had to write code to parse the WAV format sound effects and play them. For more information, see Access Software.

Blown Away

Blown Away was a conversion from the PC to the Macintosh. We wrote custom drawing code in C which was called by the existing C code from the PC version. Blown Away is a game which involves a great deal of Quicktime, MIDI music, and sound effects. This project was written as a FAT application (it runs native on both 68k Macintoshes and PowerMacs).


These 3 titles are all based on the original code base for Spectre. Spectre was originally written in Pascal and 680x0 assembly language. The changes we made were in Pascal, C, C++, and assembly language. Since we were modifying the original code in ways the original authors had not intended, this code has grown to be very complex.