Firstly, I would like to thank foft for all his work that he has done on hybrid emulation for the Amiga implementation on MiSTer.
I have played with the uae4arm implementation that foft put together, but always had problems getting it to work. Yesterday I had some spare time to investigate what the problems were. This post is a summary of the things that I have found whilst getting this to work. The impressive thing for me is that I managed to reproduce the same result that foft did in his testing.
To install the bundle do the following:-
1. Login to the MiSTer and cd /media/fat
2. Run the command
wget
http://www.64kib.com/mister_hybrid_file ... dir.tar.gz
3. When the file has downloaded extract the files from the tar ball.
tar zxvf uae4arm_dir.tar.gz
4. This should create a directory called uae4arm_dir, cd into that directory.
5. Make sure that the console screen is visible on your monitor (press F9 to get it from the MiSTer main screen).
6. Run the command and you should get the uae4arm config screen
./uae4arm.sh
The following output on an ssh connection where the script has been launched is normal.
./uae4arm.sh
UAE4ARM 4.5.0, by TomB
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
…
Be warned the application is experimental to confirm that that ARMv7 core on the MiSTer has enough processing power to run a faster hybrid emulation. As such the implementation is very fragile. Pressing the wrong buttons on the configuration GUI will cause the software to abort. These buttons are usually file selector dialog boxes. Once the application has aborted, you will need to reboot your MiSTer to clear the console screen so that you can start again. This can be very frustrating, but with perseverance progress can be made.
- uae4arm startup.jpg (41.3 KiB) Viewed 10981 times
The config files for the application are in the conf directory. There are three files that are included in the tar ball. The following URL is useful to understand some of the parameters.
https://github.com/keirf/e-uae/blob/mas ... ration.txt
The config file adfdir.conf file appears to be autogenerated by the application. There are some paths that can be updated however that make life easier. The following is a copy of my adfdir.conf file.
path=/media/fat/games/Amiga
config_path=/media/fat/games/Amiga/conf/
rom_path=/media/fat/games/Amiga/
ROMs=7
ROMName=KS ROM v1.2 (A500,A1000,A2000) rev 33.180 (256k) [315093-01]
ROMPath=/media/fat/games/Amiga/Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A1000-A2000).rom
ROMType=256
ROMName=KS ROM v1.3 (A500,A1000,A2000) rev 34.5 (256k) [315093-02]
ROMPath=/media/fat/games/Amiga/Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV).rom
ROMType=256
ROMName=KS ROM v2.04 (A500+) rev 37.175 (512k) [390979-01]
ROMPath=/media/fat/games/Amiga/Kickstart v2.04 rev 37.175 (1991)(Commodore)(A500+).rom
ROMType=256
ROMName=KS ROM v2.05 (A600HD) rev 37.300 (512k) [391304-01]
ROMPath=/media/fat/games/Amiga/Kickstart v2.05 rev 37.300 (1991)(Commodore)(A600HD).rom
ROMType=256
ROMName=KS ROM v3.1 (A1200) rev 40.68 (512k) [391773-01/391774-01]
ROMPath=/media/fat/games/Amiga/Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200).rom
ROMType=256
ROMName=Freezer: HRTMon v2.37 (built-in)
ROMPath=:HRTMon
ROMType=524291
ROMName= AROS KS ROM (built-in) (1024k)
ROMPath=:AROS
ROMType=256
MRUDiskList=7
Diskfile=/media/fat/games/Amiga/adf/trans2.adf
Diskfile=/media/fat/games/Amiga/adf/amiga-os-310-workbench.adf
Diskfile=/media/fat/games/Amiga/adf/amiga-os-310-fonts.adf
Diskfile=/media/fat/games/Amiga/adf/amiga-os-310-extras.adf
Diskfile=/media/fat/games/Amiga/adf/amiga-os-310-install.adf
Diskfile=/media/fat/games/Amiga/adf/amiga-os-310-storage.adf
Diskfile=/media/fat/games/Amiga/adf/amiga-os-310-locale.adf
MRUCDList=0
Quickstart=1
The entries that can be edited are:-
rom_path – Change this to point to where the Kickstart ROM files are located on your system. The application will auto populate the entries in the file when it runs.
Diskfile – These entries are useful because whilst they don’t auto populate except if you specify a file in the floppy0, floppy1, floppy2, floppy3 entry of a .uae file, they do allow you to specify floppy disk images that can be selected from the floppy disk drop down menu in the configuration GUI. It does make life easier.
MRUDiskList – If you add Diskfile entries then update the count to match the number of entries.
- uae4arm floppy dropdown.jpg (55.1 KiB) Viewed 10981 times
What I found worked for me was to start the application and use the GUI to configure some basic settings. These configurations were:-
• CPU and FPU
• Chipset
• ROM – use the drop down menu to select the ROM type
• RAM
• Floppy Drives – use the drop down menu to select the desired .adf files
When done use the Configurations page to save a custom config. Fill in a Name: and a Description: and press the [Save] button.
The name that you give will form the filename of .uae config file.
- uae4arm config.jpg (29.83 KiB) Viewed 10981 times
The .uae config files are complicated and have a lot of entries that I don’t understand. Common parameters that can be changed are:-
floppy0 – This specifies the file that is to be used in floppy drive 0.
floppy0=/media/fat/games/Amiga/adf/amiga-os-310-workbench.adf
floppy1 – This specifies the file that is to be used in floppy drive 1.
floppy2 – This specifies the file that is to be used in floppy drive 2.
floppy3 – This specifies the file that is to be used in floppy drive 3.
filesystem2 – This specifies the directory that can be used as a hard drive. Mounts the host directory specified by the path <path> as a virtual filesystem under AmigaOS with the volume name <volume> and a faked device name of <device>. The volume will have the boot priory <bootpri>. The token <access> specifies whether the volume is writable. If this is set to 'rw' then the device is writable; if it's 'ro' then the volume is read-only.
e.g. filesystem2=rw,DH0:System:/media/fat/games/Amiga/hdf_dir,0
The application will create the following entry in the .uae config file.
uaehf0=dir,rw,DH0:System:/media/fat/games/Amiga/hdf_dir,0
Note: The directory needs to sit on a Linux ext4 filesystem to work properly. I got this to work by doing the following to a USB drive that I had formatted a partition as ext4. I then ran the commands:-
mkdir -p /media/usb1/games/Amiga/hdf_dir
chmod a+rwx /media/usb1/games/Amiga/hdf_dir
I then updated the .uae file to the following:-
filesystem2=rw,DH0:System:/media/usb1/games/Amiga/hdf_dir,0
uaehf0=dir,rw,DH0:System:/media/usb1/games/Amiga/hdf_dir,0
This worked and I was able to install Workbench on the virtual hard disk.
Most importantly with all of this I have been consistently able to recreate the test result that foft produced.
- Hybrid Amiga.jpg (237.11 KiB) Viewed 10981 times
I’m sure to some people a lot of the things in this post will be common knowledge, but if they aren’t then I have shared them.