Compiling FS-UAE

This page will help you compile, install and run FS-UAE, FS-UAE Arcade and FS-UAE Launcher. Please note that unless you have experience compiling software, I strongly recommend you download pre-built versions instead.

The instructions given on this page are general instructions for building FS-UAE. Also see Compiling on Windows for more specific information.

Compiling FS-UAE

The following software is needed to compile FS-UAE from the source code archive:

  • A bourne-compatible shell
  • GNU or BSD make
  • GCC compiler suite with C/C++ support (mingw on Windows) or clang/clang++.
  • pkg-config
  • git – if you want to checkout the development repository), or
  • tar, gzip – to untar the source tarballs
  • gettext
  • zip – needed to compile fs-uae.dat at the end of the compilation process

You need the following libraries (with headers / development files):

  • SDL 2.0
  • libpng
  • zlib
  • glib
  • libintl (from gettext)
  • OpenAL or OpenAL Soft – the latter is recommended for most systems.
  • OpenGL
  • freetype – strictly speaking, this library isn’t yet used, so it is possible to remove it from configure.ac.
  • GLEW

If you have checkout out the git repository, you first need to run the bootstrap script (this additionally requires autoconf, automake, libtool) – skip this step if you have extracted a source tarball:

./bootstrap

Then you need to configure the source:

./configure

To compile the program simply run make:

make

The resulting program is placed in the root directory of the project, and you can run it directly without installing by running:

./fs-uae

Running fs-uae locally like this works fine – but you need to have the source root directory as the current working directory when running it like this without installation.

Installing FS-UAE

To install fs-uae, you can run make install

make install

Compiling FS-UAE Launcher

FS-UAE Launcher is written in pure Python, but depends on several Python extensions in addition to Python itself:

  • Python 3.3 or newer.
  • PyQt5.
  • setuptools – for resource loading.
  • python-lhafile – for .lha file support (optional).

I recommend extracting the source code in a directory parallel to the fs-uae source directory, i.e: src/fs-uae and src/fs-uae-launcher.

You can run FS-UAE Launcher from the source directory without installing it:

 FIXME

Installing FS-UAE Launcher

python setup.py install
make install

Additional Instructions for Windows

See Compiling FS-UAE on Windows

35 thoughts on “Compiling FS-UAE

  1. Hi, Is there a pre built version of fs-uae for osx 10.5.8 (PPC)?

    I’m really not comfortable building the source tbh. I would really appreciate your help.

    Thanks

  2. I’m having issues compiling under Debian 8 on a G4 Mac Mini. I don’t have the exact error handy but it’s something to do with libmpeg2arch? I have the libmpeg2 libraries installed. Otherwise for the life of me I can’t get it to run (using latest stable or latest dev) without being slower than Quake on a real Amiga.

    • Hi, I do not *officially* support FS-UAE on PPC, but it sounds like you may have encountered the same problem as this user: http://eab.abime.net/showthread.php?t=76837 (see thread for possible solutions).

      As for performance, the G4 is likely underpowered for running FS-UAE. You can tweak FS-UAE to run a bit faster (see http://fs-uae.net/performance), and you also need to ensure you have HW-accelerated OpenGL, otherwise the rendering will slow down FS-UAE too.

      • Thanks for the reply!

        I have tried a few performance tweaks and nothing has really helped (at best 1 frame every 3 seconds vs every 5). I’m also about 80% certain that OpenGL is working, however I’m wondering what version the linux repositories gave me. If I’m reading correctly the Radeon 9200 in the G4 Mac Mini only supports OpenGL 1.3 (http://en.wikipedia.org/wiki/ATI_Radeon_R200_series). Would it call for/use opengl functions that are incompatible?

        I’ve also had a chat with tlosm/Luigi who told me Mac OSX 10.5 was the was to go on a similarly specced G4 Mac, achieving about 68040/20 speeds, but otherwise I should use EUAE JIT PPC. To my knowledge all implementations of EUAE don’t support parallel joysticks which was something I was hoping for (and it really surprises me that this is pretty much the only emulation option under MorphOS).

        If I get a chance I’ll try the compiling tips from the link you mentioned, otherwise I ‘ll tinker with OpenGL more or revisit Linux at a later date and roll with OSX in the meantime.

        • I’ve found something that wasn’t allowing OpenGL drivers to function completely. Running glxinfo seemed to show everything working allright, but glxgears kept giving me nothing, and running the game Supertux was similarly slow with OpenGL turned on. The Mac Mini G4 w/Debian needs Mesa3D drivers for the OpenGL to function all the way, and I somehow missed one important bit of them: the libgl1-mesa-dri package. After that all of the above worked (though it could also have been one of the other packages I’d installed trying to troubleshoot opengl). Sadly even with that fixed FS-UAE was still slow (about 2fps) but the interface was improved! I really like how it pans out for the save state functions to appear (that didn’t happen at all before).

          Now I will try compiling again, as well as performance tweaks, to see if that changes anything, but after that if there are no changes in speed I’ll just try FS-UAE under OSX

  3. why it’s very slow on Odroid U3+
    i compiled it on ubuntu desktop 13 and ubuntu server 14
    both are very slow

    i don’t understand why…

    • Hi, too little information. What operating system are you using? How did you install FS-UAE Launcher, and what menu are you looking for it in?

      • main application menu. operating system in manjaro 0.8.10 32bit and i compiled from sources as said here in this how to.

        • Using python3 setup.py install does not install any launch icon. For the binary packages I provide for .rpm and .deb-based system for example, I add the launcher icon (.desktop file) when packaging the software. The setup script should install a “fs-uae-launcher” script though, which you can run manually – or you can create a launcher icon to run it.

          • i dont know how to create launcher,im somewhat new to linux and.

        • I double-checked the source distribution btw. Looks like I have in fact at some point added the .desktop launcher to the source distribution, and I’ve also added a Makefile target to install it. Just run “make install” from the launcher source code directory to install the icon, launcher and translations 🙂

          • icon is there now, but when i click on it it doesnt start up for some reason…i have all dependencies installed.
            ok 😀 after trying to run it thru terminal, it says”no module named lzhlib.

          • I don’t think that’s the problem. lhafile/lzhlib should be an optional dependency 🙂 Can you paste the last 20-30 lines of output from the terminal?

          • [martinxd@Arvuti ~]$ fs-uae-launcher

            Traceback (most recent call last):
            File “/usr/bin/fs-uae-launcher”, line 68, in
            from fs_uae_launcher.ConfigChecker import ConfigChecker
            File “/usr/lib/python3.4/site-packages/fs_uae_launcher/ConfigChecker.py”, line 7, in
            from .Config import Config
            File “/usr/lib/python3.4/site-packages/fs_uae_launcher/Config.py”, line 28, in
            from fsgs.platform import PlatformHandler
            File “/usr/lib/python3.4/site-packages/fsgs/platform.py”, line 49, in
            from .platforms.amiga import AmigaPlatformHandler
            File “/usr/lib/python3.4/site-packages/fsgs/platforms/amiga.py”, line 8, in
            from fsgs.amiga.runner import AmigaRunner
            File “/usr/lib/python3.4/site-packages/fsgs/amiga/runner.py”, line 10, in
            from fsgs.amiga.LaunchHandler import LaunchHandler
            File “/usr/lib/python3.4/site-packages/fsgs/amiga/LaunchHandler.py”, line 18, in
            from fsbc.Resources import Resources
            File “/usr/lib/python3.4/site-packages/fsbc/Resources.py”, line 9, in
            from pkg_resources import resource_filename, resource_stream
            ImportError: No module named ‘pkg_resources’

          • You are missing the required dependency setuptools (a python package).

          • now it says …

            [martinxd@Arvuti ~]$ fs-uae-launcher
            Traceback (most recent call last):
            File “/usr/lib/python3.4/site-packages/fsgs/Archive.py”, line 15, in
            from lhafile import LhaFile
            File “/usr/lib/python3.4/site-packages/lhafile/__init__.py”, line 2, in
            from .lhafile import *
            File “/usr/lib/python3.4/site-packages/lhafile/lhafile.py”, line 45, in
            import lzhlib
            ImportError: No module named ‘lzhlib’
            LhaFile module import problem
            checking /usr/bin/Portable.ini
            checking /usr/Portable.ini
            checking /Portable.ini
            no Portable.ini found in search path
            base_dir not decided yet, checking FS_UAE_BASE_DIR
            using default base_dir
            – checking /home/martinxd/.config/fs-uae-launcher/base-dir
            – checking /home/martinxd/.config/fs-uae/base-dir
            XDG user dir DOCUMENTS => ‘/home/martinxd/Dokumendid’
            base dir is /home/martinxd/Dokumendid/FS-UAE
            fs-uae-launcher
            2.4.1
            stable
            enabling except hook
            enable tread exception handler
            uname_result(system=’Linux’, node=’Arvuti’, release=’3.14.21-1-MANJARO’, version=’#1 SMP PREEMPT Sat Oct 11 18:54:33 UTC 2014′, machine=’i686′, processor=”)
            [‘/usr/bin/fs-uae-launcher’]
            FS-UAE Launcher 2.4.1

            Unhandled exception detected in thread MainThread:
            Exception:__init__.py::56

            Traceback (most recent call last):
            File “/usr/bin/fs-uae-launcher”, line 71, in
            from fs_uae_launcher.FSUAELauncher import FSUAELauncher
            File “/usr/lib/python3.4/site-packages/fs_uae_launcher/FSUAELauncher.py”, line 12, in
            from fs_uae_launcher.ui.download import DownloadGameWindow, DownloadTermsDialog
            File “/usr/lib/python3.4/site-packages/fs_uae_launcher/ui/download.py”, line 10, in
            import fsui
            File “/usr/lib/python3.4/site-packages/fsui/__init__.py”, line 24, in
            from .qt import *
            File “/usr/lib/python3.4/site-packages/fsui/qt/__init__.py”, line 56, in
            raise Exception(“no QT python bindings found”)
            Exception: no QT python bindings found

          • You need python QT bindings…

            Btw, if you want to try running “your own version” of FS-UAE, it might be better to use the development version (http://fs-uae.net/download-devel). Since that is more up to date, I’ll easier be able to help you.

            I have also updated the documentation at http://fs-uae.net/compiling to work with the latest development version 🙂 (so you’ll find an updated list of dependencies on this page now).

  4. I got it up and running on PCBSD 10. Be aware that you need to install gcc separately since FreeBSD changed to clang from version 10.

    I needed to add a few other packages to complete the gmake build. But it works.

    • Hi, that’s great! Note that GCC isn’t needed to compile FS-UAE (you should be able to point CC/CXX to clang instead). The latest development version uses autoconf and should detect the compiler automatically (and gmake isn’t needed either anymore).

  5. Hi! Thanks for fast reply 🙂
    Sorry my English is bad 🙁 I tested with python 2.7 and 3.0 and have follow errors:

    python2.7 /usr/bin/fs-uae-launcher

    File “/usr/share/fs-uae-launcher/lhafile/lhafile.py”, line 45, in
    import lzhlib
    ImportError: No module named lzhlib

    File “/usr/share/fs-uae-launcher/fsui/qt/__init__.py”, line 56, in
    raise Exception(“no QT python bindings found”)
    Exception: no QT python bindings found

    python3 /usr/bin/fs-uae-launcher

    File “/usr/share/fs-uae-launcher/fsgs/mame/mame.py”, line 92
    rom_path = rom_path + u’;’ + self.mame_get_bios_dir()
    SyntaxError: invalid syntax

    • It does not start on your system (with python2.7) because you are missing QT bindings for Python. You need either Pyside, PyQt4 or PyQt5. Python 3.x isn’t officially supported yet.

  6. I use CommodoreOS Vision (Linux Mint Julia)

    python fs-uae-launcher

    Traceback (most recent call last):
    File “fs-uae-launcher”, line 31, in
    from fsgs.FSGSDirectories import FSGSDirectories
    File “/home/user/Downloads/fs-uae-launcher-2.4.0/fsgs/__init__.py”, line 6, in
    from .FSGameSystemContext import FSGameSystemContext
    File “/home/user/Downloads/fs-uae-launcher-2.4.0/fsgs/FSGameSystemContext.py”, line 17, in
    from fsgs.Archive import Archive
    File “/home/user/Downloads/fs-uae-launcher-2.4.0/fsgs/Archive.py”, line 24, in
    from fsbc.SevenZipFile import SevenZipFile
    File “/home/user/Downloads/fs-uae-launcher-2.4.0/fsbc/SevenZipFile.py”, line 68
    return {“name:”, name}
    ^
    SyntaxError: invalid syntax

    Regards
    Rolly

    • This is a bug, the line should be return {“name:”: name} instead (colon should replace the comma). It does not cause a syntax error in Python 2.7 since this is a valid expression for sets.

      FS-UAE Launcher is not tested with Python 2.6. I’ll fix this error, but the launcher may still not work with Python 2.6, You should, if possible, upgrade your Linux distribution so you have Python 2.7.

      If you already have Python 2.7 installed (but 2.6 is default), please run the launcher with
      python2.7 /usr/bin/fs-uae-launcher

  7. I’m trying to compile on FreeBSD 10, and have all the dependencies installed (including gcc; I also have gcc49). The compilation quits with the following:

    g++ -DFSEMU -DFSUAE -D_FILE_OFFSET_BITS=64 -DFREEBSD -DUSE_SDL -DUSE_GLIB -DWITH_LUA -Isrc/od-fs -Isrc/od-fs/include -Isrc/include -Igensrc -Isrc `pkg-config –cflags glib-2.0 gthread-2.0 libpng` -Ilibfsemu/include -Ilibfsemu/src/lua `sdl-config –cflags` -O2 -ggdb -c gensrc/blitfunc.cpp -o obj/gensrc-blitfunc.o
    g++: not found
    gmake: *** [obj/gensrc-blitfunc.o] Error 127

    Am I missing something, or is this a FreeBSD 10 issue?

    • You are missing the C++ compiler from GCC (g++). Perhaps you need to install that separately from “gcc” in FreeBSD 10? – or perhaps it is installed but with a version suffix like g++-4.9 instead?

  8. Hi, thanx for the cool emulator. On FreeBSD openal-soft is in audio category, so perhaps you could correct devel/openal-soft to audio/openal-soft.

Leave a Reply

Your email address will not be published. Required fields are marked *