Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Amiga core #2003

Closed
vadosnaprimer opened this issue May 13, 2020 · 3 comments · Fixed by #3941
Closed

Amiga core #2003

vadosnaprimer opened this issue May 13, 2020 · 3 comments · Fixed by #3941
Labels
Core: UAE Commodore Amiga core Enhancement For feature requests or possible improvements Repro: Fixed/added in 2.10

Comments

@vadosnaprimer
Copy link
Contributor

vadosnaprimer commented May 13, 2020

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.

@YoshiRulz YoshiRulz added Core: Future core Core doesn't exist yet or is an early WIP Enhancement For feature requests or possible improvements labels May 13, 2020
@nattthebear
Copy link
Contributor

Did a little of investigation into this, which is on a branch https://github.com/TASVideos/BizHawk/tree/uae (still in early stages of development)

My tactic was to build the libuae.a portion which seems to be a nice "core" division, and then mate that to Bizhawk IEmulator adapter code.

It's not pretty.

  • Massive number of emulated components and options. Common problem with lots of PC systems.
  • Many components are optional, except they aren't. Only one blessed configuration is built and tested regularly upstream, and turning off a lot of optional things breaks stuff all over the place.
  • Threads need to be removed or deterministicized in quite a few places.
  • The core <-> frontend separation is weak, with a massive API surface area shared between parts, leaky abstractions, and a lot of random hooks that punch through to other things (eg Picasso 96)

This would be a very large undertaking.

@vadosnaprimer
Copy link
Contributor Author

Does https://github.com/tonioni/WinUAE look equally (or more) bad?

@nattthebear
Copy link
Contributor

Not sure. Not going to spend any time going deep in it right now. The directory structure looks cleaner, but some stuff in the build instructions like "download http://www.winuae.net/files/b/winuaeinclibs.zip" seem pretty dodgy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Core: UAE Commodore Amiga core Enhancement For feature requests or possible improvements Repro: Fixed/added in 2.10
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants