There have been a few ports of the original UAE emulator, the only 2 active ones are WinUAE and FS-UAE.
WinUAE is Windows only and is developed and built in a sporadic way, so probably not the best option for porting (haven't checked if it separates UI and core).
FS-UAE is actively developed and has a community. Its author also pulls core updates from WinUAE every once in a while (it mostly happens in one direction), so it kinda combines the best parts from the scene. Core separation is probably there.
It may feel hard to set up amiga emulation, but here's what we've been doing with FS-UAE+libTAS:
https://tasvideos.org/Forum/Topics/20837
Framebuffer is interesting, because most amiga games have small res, but some programs may enable hires. The emu renders at 752x572, and it's not pixel perfect iirc. All in all: to be figured out.
It can work with multiple images (not sure if it's at once or in a queue). It can write to images, but that is stored as diffs in a separate folder.
It had issues with libTAS savestates due to threading, but I haven't tested its internal savestates.
There have been a few ports of the original UAE emulator, the only 2 active ones are WinUAE and FS-UAE.
WinUAE is Windows only and is developed and built in a sporadic way, so probably not the best option for porting (haven't checked if it separates UI and core).
FS-UAE is actively developed and has a community. Its author also pulls core updates from WinUAE every once in a while (it mostly happens in one direction), so it kinda combines the best parts from the scene. Core separation is probably there.
It may feel hard to set up amiga emulation, but here's what we've been doing with FS-UAE+libTAS:
https://tasvideos.org/Forum/Topics/20837
Framebuffer is interesting, because most amiga games have small res, but some programs may enable hires. The emu renders at 752x572, and it's not pixel perfect iirc. All in all: to be figured out.
It can work with multiple images (not sure if it's at once or in a queue). It can write to images, but that is stored as diffs in a separate folder.
It had issues with libTAS savestates due to threading, but I haven't tested its internal savestates.