LinApple Emulator on Ubuntu 14.04 64-bit (actually Xubuntu…)

While KEGS is nice for emulating an Apple IIGS on Linux, if you want to emulate an Apple //e (IIe) on Linux the choices seem to be narrower, at least for a version that will work on newer versions of Linux. LinApple is available here and is derived from AppleWin with libraries changed to SDL and POSIX from the Windows equivalents. Please note that this is not my project, but since I encountered a few issues during compilation I thought I’d share the experience. I have not yet thoroughly tested LinApple, only a few programs/disks, but it seems very promising. Note that sound worked immediately and doesn’t require a work-around due to old audio implementations.

You’ll need to make sure you have installed libsdl1.2-dev, libcurl4-gnutls-dev, g++, and libzip-dev, if not already installed. For those that are unfamiliar, I normally open a Terminal session and run each installation separately, just so I can see what’s happening. You can combine all the installations on one line, but then you probably don’t need this part of the discussion…

sudo apt-get install libsdl1.2-dev

sudo apt-get install libcurl4-gnutls-dev

sudo apt-get install g++

sudo apt-get install libzip-dev

If you received any errors during any of these installations, Google will probably help. Normally, though, these are common libraries and shouldn’t cause a problem. Even if you already have libsdl2 or higher installed, go ahead and install libsdl1.2 as that’s the version LinApple is currently configured to utilize.

You’ll need to untar/unzip the LinApple source code into a working location in order to start compiling. Once extracted, change to the src subdirectory in the LinApple folder. Before you try “make” though, you’ll (probably) need to make the following changes:

– In Frame.cpp, scroll down to the last line that says #include and add a new line below that one:

#include <unistd.h>

– Do the same in SerialComms.cpp and Timer.cpp.

If you do not add this include line to each of those files, you’ll receive error 1 relating to either usleep() or close() not being a valid function within their scope.

Once you’ve completed these changes, stay in the src directory and type

make

at the command prompt. No parameters are required and, although you’ll see many warnings, you should not receive any errors. The last couple of lines should include the command mv AppleWin LinApple. If you perform an ls at this point, you should see an entry called linapple.

Before attempting to run the linapple command, you’ll need to copy it to the main LinApple folder; use the command

cp linapple ..

in order to copy it to the next higher folder. You can then cd to the main LinApple folder and execute the linapple command.

I have not attempted to use the make install command, nor have I deployed the program system-wide. I’m in the testing stages and welcome any feedback. At some point, I might contact the author and attempt to bring it up to SDL2.

Let me know if you find any steps I missed or any additional information that should be included.