Amiga UAE Emulator

Anybody else working on getting an Amiga emulator up and running on Gameshell ?

There is libretro-uae, compiles with one little tweak and runs. I don’t know whether uae4arm-libretro, libretro-fsuae or even uae4arm-rpi would be the better choices. However the latter three will need some more work to make them compile.

Meanwhile libretro-uae works, probably needs some improvements and configuration work. I can play games, however it feels like it is just a little bit too slow and sometimes there is a lag with joypad inputs. I am still with retroarch 1.70 and may also have a look at Retroarch Megathread first.

DSC_0769 DSC_0770

5 Likes

I’d love to get this working on my gameshell, I’ll give compiling it a go and see how I get on.

Would you like me to write down how I compiled it? For instance one single include is missing, sys/timeb.h in the only file that will fail to compile.

If you could that would be a big help, thank you!

Waiting for that emulator to work all night long. All my gaming childhood memories refer to an AMIGA 500 (okay, the SNES and Mega Drive, too. :smiley:).

First of all a warning this is work in progress and only for experienced users, the result runs, however slow, some games not stable or not at all. You will probably be disappointed, but be eager to get it fixed soon :slight_smile:

Although the worst case might be that GameShell is not powerfull enough, but we will see.

Please do also read the original README on github, it tells which of the Amiga ROM’s will work with the emulator. And yes it is really that picky.

Connect to your GameShell with ssh then type the following 2 commands:

git clone https://github.com/libretro/libretro-uae.git
cd libretro-uae

Now you need to edit the following file, either directly on the GameShell or you copy it to your PC, once edited copy it back to the GameShell:

sources/src/fsdb.c

At it’s top insert the following line:

#include <sys/timeb.h>

Still connected with ssh and in libretro-uae directory type the following 2 commands. NOTE that the compilation (first command) takes roughly 25 minutes:

make
cp puae_libretro.so /home/cpi/apps/emulators

At the moment I am directly having one menu item for each single Amiga game. Here for example Turrican II:

Create it like this when logged in with ssh, one single line:

echo "retroarch -L /home/cpi/apps/emulators/puae_libretro.so /home/cpi/games/Amiga/TurricanII.uae" > /home/cpi/apps/launcher/Menu/GameShell/TurricanII.sh

And then do this single command, still one single line:

chmod +x /home/cpi/apps/launcher/Menu/GameShell/TurricanII.sh

Upload ROM and ADF files to GameShell, that would be:

/home/cpi/games/Amiga/turrican2.adf
/home/cpi/games/Amiga/kick40063.A600

Finally create the UAE config file for the game place it here:

/home/cpi/games/Amiga/TurricanII.uae

Contents are:

kickstart_rom_file=/home/cpi/games/Amiga/kick40063.A600
chipmem_size=1
bogomem_size=2
use_gui=no
nr_floppies=2
cpu_type=68000
cpu_speed=real
cpu_compatible=true
ntsc=false
chipset=ocs
immediate_blits=false
gfx_linemode=double
gfx_framerate=1
sound_output=normal
sound_frequency=44100
sound_channels=mixed
sound_interpol=none
show_leds=true
floppy_speed=100
gfx_center_vertical=smart
gfx_center_horizontal=smart
gfx_color_mode=16
floppy0=/home/cpi/games/Amiga/turrican2.adf

Start RetroArch, quit again, or reboot your GameShell to let it refresh the menu items. Turrican II is ready to play.

2 Likes

Oh my god!

Followed your guide and set up Test Drive II - The Duel (played this a lot in my childhood).

It works really great. A bit sound cracking, but no problems with the performance at all. This is so great.

Huuuuuge thanks to you.

Have a look at the RetroArch Megathread I meantioned above, I do not have a prove whether the tweaking of video and audio do really help. I tried, but this is really hard to measure.

I will continue to work on this, including writing an installer as soon as the result runs betters.

1 Like

These are the settings to play with in uae configuration files, I have not checked out all settings yet, however these 3 did the job for every game I tested.

Turning cpu compatibility off will increase the performance, some games will even have better audio output. E.g. IK+ has sound effects, they are only played when false, else only music is played and that one stuttering.

cpu_compatible=false

Decrease frame rate to 2, this will improve performance also, and you won’t see any difference. When set to larger numbers you will immediately notice frame drops.

gfx_framerate=2

Decrease sound frequency to 22050, you won’t hear a difference out of the speakers, except that the music is played without stuttering nor is it slowing down when lot’s of things happen on the screen. Haven’t checked earphone output though, however again, performance improves.

sound_frequency=22050

I will check the other Amiga emulators soon and post the results here. So libretro-uae is promising with these settings. However I would change the keyboard layout and create a GameShell branch for it. Only drawback of this emulator choice is the restriction of working Amiga ROM’s.

1 Like

I’ve tried following the steps several times but all i am getting is a flashing green screen. Bad kick rom perhaps? The rom was labelled kick40063.a600 so is named correctly and I’ve tried a completely different Turrican 2 ADF file.

Turns out it was the kickstart file, all working now :smiley:

@bigeasy_uk glad to hear, yes it is really the ROM you choose, that is the the bad thing about this emulator.

I forgot how hard Turrican 2 is, I died on the first level. I need more practice!

A few news about Amiga emulation, I did check virtually every version of UAE that might run on Gameshell. In general all emulators accept only a very limited choice of ROM files and I have only tested OCS/ECS graphics with A500 or A600 models.

Libretro FS-UAE

  • crashes when starting, hence does not work

Libretro UAE4ARM

  • seems to be 2-3 times too fast
  • screen size not adapting correctly

Libretro UAE4ARM (R-Type)

  • same as original above

Libretro UAE (P-UAE)

  • works quite well when tuned with configuration options

Libretro PUAE

  • does not compile

FS-UAE

  • may be installed directly with apt-get however runs too slow
  • compiled from source same result, too slow
  • yx/ab keys need remapping in fs-uae config

UAE4ARM-RPi

  • works really well with default configuration
  • yx/ab keys not working, hence no fire button by default
  • Gameshell buttons not all working by default

UAE4ALL2

  • not tested, uae4arm is the new one to work instead

Conclusion

I will try a few more hours with UAE4ARM-RPi and Libretro UAE4ARM. I would prefer the latter, because it is integrated with Libretro, looks quite promising.

3 Likes

Has using Amiberry been considered?

Amiberry is a light weight Linux distribution with UAE4ARM-RPi. So that is the one I am already doing my testing.

1 Like

Would love to hear if you have an update on testing UAE4ARM-RPi and Libretro UAE4ARM and subsequently which was the best experience overall.

Thanks for the hard work and sharing the process and experience.
It is truly appreciated

I did not have time for a couple of weeks to work on it, however continued last week end. I have Libretro UAE4ARM running with correct speed. However the screen size is still wrong and there is an audio issue. UAE4ARM-RPi also working, there I am checking if the built in functionality is enough to remap the controls or whether I need to program something new into it. I should have an update in a couple of days, also which one to finally choose on the GameShell.

1 Like

Thanks for the update.
Will be looking forward to your final conclusion.

I am sorry, I don’t have as much time as I would like to. So I am only advancing in small steps. Libretro UAE (P-UAE) is out of the game. Once tuned it might look and sound as it would work well, however controls have issues and do lag very strong. @bigeasy_uk, Turrican 2 is even harder than thought, because of these lags.

Libretro UAE4ARM and UAE4ARM-RPi are both really great. I have already a tested some games with Cloanto’s Amiga Forever ROMS, like 1.2, 1.3, 3.1 for OCS and AGA. By either emulating an A500 and A1200 and all is working fine. Tried even Hyperions 3.1.4 ROM and Workbench :grin: but my GS is meant for gaming.

Although Libretro UAE4ARM would be the best choice, with retroarch on GS, sound and screen size remain an issue for which I do not find a solution for. If anybody else is interested into digging deeper here, let me know, I can provide compilation instructions and a couple of example configuration files and my findings so far.

UAE4ARM-RPi is my current choice, it already provides a way to reconfigure key mappings. For example to map special keys (e.g. space key for an energy line in Turrican) I have not all work done yet, but will continue these days when ever I find time.

1 Like