Dockerized Emulation

I created a simple shell script that makes it easy to execute an AmigaOS binary using FS-UAE:

#!/bin/bash

if [ -z $1 ]
  then
    echo "$0 "
    exit 1
fi

if [ ! -f $1 ]; then
    echo "$1 not found"
    exit 1
fi

amiga=`mktemp -d`

mkdir "$amiga/C"
cp $1 "$amiga/C"

mkdir "$amiga/S"
echo "C:$1" > "$amiga/S/startup-sequence"

docker run -it \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v $HOME/.config/fs-uae/:/home/fsuae/config \
  -v $amiga:/amiga \
  jamesnetherton/fs-uae \
  --amiga_model=A1200 \
  --hard_drive_0=/amiga \
  > /dev/null

rm -rf $amiga

This creates a temporary directory that is used as the emulated Amiga's hard drive. The binary to be executed is copied to that hard drive's C: directory and a S:startup-sequence script that executes the binary on boot is created.

This approach is a lot simpler than what I described in my previous post.

Update

The script shown above can now be downloaded.

Dockerized Development Tools

Stefan "Bebbo" Franke has forked Krystian Bacławski's AmigaOS cross compiler toolchain in an effort to update, amongst other components, GCC to version 6.

I have created a Dockerfile for building a software container for use with Docker. This allows me to conveniently build and use the AmigaOS cross compiler toolchain, which requires a 32-bit environment, on my 64-bit Linux system.

Once Docker is installed we can compile hello.c, the famous "Hello world!" example:

Hello world!

$ docker run -v $HOME:/host \
  -it sebastianbergmann/m68k-amigaos-bebbo \
  m68k-amigaos-gcc /host/hello.c -o /host/hello -noixemul

Christian Vogelgsang created amitools, a collection of tools to work with AmigaOS binaries. One of these tools is xdftool which can be used to work with Amiga Disk File (ADF)s. In the example below, I use another Docker container for running xdftool.

Using xdftool, we can create a fresh a floppy image, format it using Fast File System (FFS), copy the binary we compiled in the previous step to it, and create a S:startup-sequence script that executes our binary:

$ echo C:hello > $HOME/startup-sequence

$ docker run -v $HOME:/host \
  -it sebastianbergmann/amitools \
  xdftool \
  /host/hello.adf \
  format HelloWorld ffs + \
  boot install + \
  makedir C + \
  write /host/hello C/hello + \
  makedir S + \
  write /host/startup-sequence S/startup-sequence

$ rm $HOME/startup-sequence

Now that we have a floppy image with our compiled binary we can finally test it using the FS-UAE emulator (provided by yet another Docker container):

$ docker run -it \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v $HOME/.config/fs-uae/:/home/fsuae/config \
  -v $HOME:/host \
  jamesnetherton/fs-uae \
  --amiga_model=A1200 \
  --floppy_drive_0=/host/hello.adf

Hello world!

The above assumes that you have Kickstart ROM files in the $HOME/.config/fs-uae directory on the host.

If you do not have Kickstart ROM files available then you can omit the -v $HOME/.config/fs-uae/:/home/fsuae/config \ line in the command shown above and FS-UAE will fall back to the Open Source AROS kernel:

Hello world!

By the way: the binary created by compiling hello.c is simple enough to be executed through vamos, the Virtual AmigaOS that allows to run AmigaOS m68k binaries directly on Linux:

Hello world!

Viva Amiga

Back in 2011, there was a Kickstarter campaign to produce a "a film about the legendary Amiga system". Today I was able to purchase this film on Vimeo.

Unfortunately I have to say that I am happy that I did not support this film's campaign back then (because I heard about it too late). It's not only that this film was delayed again and again. From what I was able to observe as an outsider (as someone who did not back the film) it appears that the communication by the project creator was lacking. As far as I can see, no physical copies of the film are available at this point in time. Backers of the Kickstarter campagin were promised a DVD of the film. And while DVD might have been fine back in 2011 it's not acceptable to not offer a BluRay in 2017.

The film itself turned out rather short: 62.5 minutes including opening titles and closing titles. The content is not bad but if you have seen "From Bedrooms to Billions: The Amiga Years", for instance, then there is not much in this film that you have not seen before. I have to say, though, that I enjoyed the focus on artistic usage of the Amiga.

From Bedrooms to Billions:
The Amiga Years

From Bedrooms to Billions: The Amiga Years

Today I received the physical rewards from the "From Bedrooms to Billions: The Amiga Years" Kickstarter that I mentioned in my previous post.

I watched the Special Edition, which I had not seen before, and have to say that I like it even more than the Standard Edition. Especially the extended section of the demoscene was a welcome addition.

ReShoot

ReShoot

Today I received my physical copies of ReShoot, a new bullet hell shooter for the Amiga 1200, Amiga 4000 and CD32.