So last time I successfully got a “self-built” version of the FS-UAE Amiga emulator to execute on my Raspberry Pi 400… But how can I “port” my environment over?

GitLab…

Over time I can populate a remote git repository as I build up everything needed. We can’t use git directly on our emulated Amiga so we’ll clone a repository into a folder the Amiga can use like a hard drive, in our case with FS-UAE already executed once:

cd ~/FS-UAE/Hard\ Drives/
mkdir AmigaDev_XFER
cd AmigaDev_XFER
git clone https://gitlab.com/bhandscomb/t81t-dev.git

This already includes a bunch of things from Aminet as well as some scripts and code to configure our emulator.

First thing we’ll do is head into the “Linux” directory and run a very basic script to compile tools for building a hard disk file and blank (unformatted) ADF floppy disk images. The script will copy these to that “prg” folder from last time and build the tools there.

cd t81t-dev/Linux
sh copyandbuild.sh

Next we should talk about the Amiga OS. I purchased a CD version, and I did think of using that directly with a USB optical drive. However the (bus powered) drive I tried though it would work to a point (browsing the disc) the power draw was too much when trying to copy files. If you had a mains powered optical drive that should work fine. The alternative in this situation is copying the contents to a USB flash drive. We only actually need the ROM and ADF files, so those are the directories/folders to copy.

I wrote a script that can copy the files we want either from a directly connected (mains powered) optical drive or from a user specified location. The Raspberry Pi OS will automatically mount the CD or flash drive in my experience, but here is where we’ll pause and talk about file systems.

Normally Linux is a “case sensitive” system and the names “Fred”, “FRED” and “fred” are all different. This is because the filing system (e,g. “ext4”) treats them this way. Windows by way of a particular example is called a “case preserving” system, again due to the filing system (e.g. NTFS or FAT32) storing both uppercase and lowercase but treating them as the same letters.

When I looked at the Amiga OS 3.2 CD in Windows and copied from it the names had mixed case. Doing the same on a Linux system I saw all lower case. Does this matter? Likely no but maybe yes, because remember it is not the operating system but the filing system that decides if “ADF” and “adf” are the same.

If you use a Windows computer to copy from CD to a USB flash drive and copy that to a Linux hard drive THAT will be case sensitive and we need to use the name “ADF” for example. If you use a Linux computer and see lower case then we can safely use “adf”.

With this in mind there are two copies of the same script copyos32files_l.sh and copyos32files_w.sh that will “pretend” everything is case sensitive (the source is likely not but could be) and copy the needed files. If the source is not a directly connected CD you can specify a path. For example in my case and the USB flash drive I used:

sh copyos32files_l.sh /media/pi/KINGSTON/amigaos32/

This script handles both locations I’ve seen FS-UAE on Linux systems and checks the specified source having the correct files in the correct places before copying the files. The script will make all the names lowercase in the process, e.g. install3.2.adf instead of Install3.2.adf.

If all of this has worked, now we need to configure the emulator complete with setting up a hard drive file. You guessed it, there’s another script.

sh configemu.sh

This same script can change the emulator config later but for now I’ll mention a safety feature… If you run the script a second time it will refuse to run because of the risk of data loss (it creates an unformatted hard drive file). This is potentially dangerous, hence the safety check, but if you do want to start again you can add “–clobber” to the command.

The script will check everything is in place and if everything checks out will do three things:

  • Create a hard drive file in FS-UAE’s “Hard Drives” directory
  • Create a “temp” floppy disk image in FS-UAE’s “Floppies” directory (we’ll use this much later)
  • Create a configuration file suitable for installing Amiga OS 3.2

This is where we’ll leave it for now, a Raspberry Pi 400 primed on the Linux side.

#18: Raspberry Pi 400, emulator config