Being rather tech savvy but still not working with software, the entire field of source repos and management of them has been a field where I felt my competence was really blurry. Adding to this, I hear from many sources that building VICE from source seemed like it included elements of black magic to pull off. So I didn’t even try. Then Pokefinder nightly build stopped working at new year 2018/19 (and much to my surprise it seems up again since a few days). So in short, if I wanted to keep up, I had to learn to build myself.

So I was ready to dig deep and start learning black magic. I’m not really sure if I was disappointed, surprised or happy when I realised that all it took was following a guide and then I was done. There was absolutely nothing strange about it. Nothing.

There is a guide in the source package so the only part one can have views on is that you need to download the package just to get the guide. It would be a lot easier if the guide was online directly. Below you will find the guide as provided in the source package, after my modifications. The bulk of the text is written by the VICE project.


ALSO: the switches in “$ ./configure -C –enable-native-tools –enable-native-gtk3ui” begins with double minus characters. It seems copy + paste can fail … (Thankx to tNG for this)

VICE (GTK) on Windows

These are some instructions about getting VICE with the GTK3 GUI
compiled on Windows under MinGW.

  1. Get MSys2 (includes mingw):
    Install as per that webpage; but, don’t bother with step 7 (GIT),
    unless you actually want GIT.
  2. Install the stuff that you actually need to build VICE:
    Launch either the MSYS2 MinGW 64-bit shell or the MSYS2 MinGW 32-bit shell
    (use the one that matches the version of MSys2 that you installed).
    Run the following command line to install your prerequisites:

You now need to install a number of libraries, and here things changed since the original text I wrote. (Please mind that I have identified no libs that will handle the pdf generation so in the following I will disable the pdf docs)

$ pacman -Syu
$ pacman -S base-devel
$ pacman -S mingw-w64-x86_64-toolchain

And optionally also

$ pacman -S git

Quit the shell and started it again. Issue the string:

$ pacboy sync base-devel: pkg-config gcc ntldd zip: subversion: gtk3 glew

  1. Then you need the xa 6502 cross-assembler, which is used to assemble the “driver” program for vsid (the SID player that comes with VICE). It can be found here:

    Check this link for a reference to the most recent version. Below URL to the download assumes 2.3.11 which was current at the time of writing this.

    Download to where you want it by placing yourself in a directory of your choice – here I make one in the Home where you should be now.

    $mddir -p Download
    $ wget

Make the directory “/usr/local/src/”.
Use tar to unpack xa (use the MSys2 path to where you downloaded it):

$ cd /usr/local
$ mkdir -p src
$ cd src
$ tar -xzf ~/Download/xa-2.3.11.tar.gz

Then, build and install it:

$ cd xa-2.3.11
$ make mingw install
$ mv ../../bin/xa.exe ../../bin/xa65.exe
  1. Get VICE’s source code.
    To checkout the source with Subversion (to “~/vice/”, for example),
    you could type:
$ cd ~
$ svn checkout

Now, you can try to build VICE:

$ cd ~/vice
$ ./
$ ./configure -C --enable-native-tools --enable-native-gtk3ui --enable-cpuhistory --disable-catweasel --enable-lame --disable-rs232 --disable-hardsid --disable-parsid --enable-ethernet --enable-x64 --disable-debug --disable-pdf-docs --without-ogg-vorbis --without-flac
$ make
$ make bindist

NOTE: If you copy my string from above, please ensure that you get real “double minuses”. It seems there is a risk that you get an alternative sign first and then you will of course get errors. Also, the parameters might look a bit different than in other examples you find. This is due to recent changes. Docs suddenly built as PDF (but there is no TeX that would work for me on windows) and they also recently fiddled with the supported codecs, so I had to disable ogg-vorbis and flac support to make it build.

Pontus: There are aspects of VICE I really want (CPU history being the main one) and there are a number of features I can live without, that only risk slowing down emulator and making the payload bigger. The general recommendation is to disable anything you don’t need. So my first build looks like this:

$ cd ~/vice
$ ./
$ ./configure -C --enable-native-tools --enable-native-gtk3ui --enable-cpuhistory --disable-catweasel --enable-lame --disable-rs232 --disable-hardsid --disable-parsid --enable-ethernet --enable-x64 --disable-debug --disable-pdf-docs --without-ogg-vorbis --without-flac
$ make
$ make bindist 
  1. If it got through all those steps, you should have some executables to play
    with in “GTK3VICE-3.?-win??-*/” (the “win??” part of that name tells you which
    type [32-bit or 64-bit] you built).
  2. You can build the 32-bit version of VICE and/or the 64-bit version. You
    make the choice by choosing to run a particular one of the MSYS2 MinGW shells
    (its environment variables control VICE’s configuration).

If you build one version, then want to build the other version, you must clean away some object files first. Then, you must configure VICE again.

$ make clean
$ rm config.cache
$ ./configure -C --enable-native-tools --enable-native-gtk3ui
$ make
$ make bindist

NOTE: The above alternative configure lines shoule be used if you want the alternative configurations.

  1. If you want the distribution in a ZIP archive instead of a subdirectory,
    then use the command
$ make bindistzip

instead of

$ make bindist

Pontus: Updating VICE is then easy. Open the MSYS2 shell and write:

$ svn update vice
$ cd ~/vice
$ make
$ make bindist

One thing I haven’t tried, but which was confirmed on the bug reporting mailing list recently was that if you don’t want to build the entire package (and that takes a lot of time), you can build just one of the emulators by using for example:

make x64sc
Thanks for rating this! Now tell the world how you feel - .
How does this post make you feel?
  • Excited
  • Fascinated
  • Amused
  • Bored
  • Sad
  • Angry