Skip to content

Basilisk II Compilation Guide

Ricky Zhang edited this page Jul 11, 2022 · 14 revisions

Table of Contents

Overview

According to the source code in Basilisk II, it targets for 68K, PPC and Intel CPU host platform and also supports Linux, Mac and Windows.

I believe unless the project receives support from a corporation there is no way to continue to maintain such a broad platform base. Please feel free to extend this page and add your own build process.

Mac OS X

Apple silicon Mac OS X

I personally tested this in 2022 Mac Studio up to Monterey 12.4.

  • Requisite

    • XCode
    • Use Macport get SDL2 and gtk2.
    • Install XQuartz
  • Configure

make clean
NO_CONFIGURE=1 ./autogen.sh
./configure CFLAGS="-O3" CXXFLAGS="-O3" --enable-sdl-video --enable-sdl-audio --disable-vosf --disable-jit-compiler --with-x --with-gtk --with-mon --with-sdl2
make -j 32

SDL2 is required. It can leverage Apple metal library to accelerate the graphics.

Intel Mac OS X

I personally tested this in 2013 Intel iMac up to Catalina 10.15.5.

NOTE: Apple discontinued support for OpenGL in Mojave. So you must compile BII with SDL2.

  • Requisite

    • XCode
    • Use Macport get SDL2 and gtk2.
    • Install XQuartz
  • Configure

cd macemu/BasiliskII/src/Unix/
make clean
NO_CONFIGURE=1 ./autogen.sh
./configure CFLAGS="-O3 -march=native" CXXFLAGS="-O3 -march=native" --enable-sdl-video --enable-sdl-audio --with-sdl2 --with-esd=no --with-gtk --with-mon --x-includes=/opt/local/include --x-libraries=/opt/local/lib --enable-addressing=banks
make -j 32

The configure can emulate for both System 6 and Mac OS 7.x.

  • Note
    1. JIT doesn't work in 64 bit.
    2. slirp is not 64bit clean.I can't find anyway to use virtual network.
    3. I can emulate System 6.0.8, 7.0.1 and 7.5.5.
    4. PERFORMA.ROM has been tested for System 7. Its MD5 hash is af343f3f1362bf29cefd630687efaa25.
    5. Mac SE ROM has been tested for System 6. Its MD5 hash is 9fb38bdcc0d53d9d380897ee53dc1322. A ROM patch was added to support emulated disk.
    6. The preference for System 6 is picky. You must set the color depth -- displaycolordepth 1 and the resolution -- screen win/512/342

Power PC Mac 10.4 tiger

I personally tested this in my Apple iBook Laptop 14.1

  • Requisite

    • XCode from Tiger 10.4. It comes with installation DVD.
    • Use Macport build git, gcc, sdl and gtk2. This will takes at least 2 days to compile the whole dependency libraries.

TODO fill in more details.

Linux

64bit Fedora Linux on Intel

I personally tested this.

  • Requisite

    • Get sdl1 (or sdl2) and gtk2 develop library from Fedora repo
  • Configure

By default, it is built for SDL1. Add --with-sdl2 to enable SDL2 library build.

cd macemu/BasiliskII/src/Unix/
make clean
NO_CONFIGURE=1 ./autogen.sh
./configure --enable-sdl-video --enable-sdl-audio --disable-vosf --disable-jit-compiler --with-x --with-gtk
make -j 32

To build for 24 bit Macintosh ROM and run System 6, please use the following configure:

  • Use X11 as back end
CFLAGS=-O0;CPPFLAGS=-O0 ./configure --with-esd=no --with-gtk=no --with-mon --enable-addressing=banks
  • Use SDL1 as back end
CFLAGS=-O0;CPPFLAGS=-O0 ./configure --enable-sdl-video --enable-sdl-audio --with-esd=no --with-gtk --with-mon --enable-addressing=banks
  • Note
    1. JIT doesn't work in 64 bit.
    2. slirp is not 64 bit clean. Use other methods for virtual networking. I tested that sheep_net module works up to kernel 4.11.
    3. I can emulate System 6.0.8, 7.0.1 and 7.5.5.
    4. PERFORMA.ROM has been tested for System 7. Its MD5 hash is af343f3f1362bf29cefd630687efaa25.
    5. Mac SE ROM has been tested for System 6. Its MD5 hash is 9fb38bdcc0d53d9d380897ee53dc1322. A ROM patch was added to support emulated disk.
    6. The preference for System 6 is picky. You must set the color depth -- displaycolordepth 1 and the resolution -- screen win/512/342

Raspbian

  • Configure
cd macemu/BasiliskII/src/Unix/
make clean
NO_CONFIGURE=1 ./autogen.sh
./configure --enable-sdl-video --enable-sdl-audio --disable-vosf --disable-jit-compiler --with-x --with-gtk
make