I feel, perhaps irrationally, that reference emulators should at least run on Linux, because I feel more confident about being able to run Linux in 40 years than current-gen Windows.
I feel, perhaps irrationally, that reference emulators should at least run on Linux, because I feel more confident about being able to run Linux in 40 years than current-gen Windows.
If you want proof, look at the best Unix port of WinUAE (FS-UAE). It works, but compared to the original, the experience is so bad in many different ways (graphical glitches, crashes, audio stuttering, latency, bugs and more bugs) that you're better off running WinUAE through Wine.
I'm a hardcore Amiga user and enthusiast, and own multiple original units in working condition. Regarding preservation, I feel so much better knowing that WinUAE runs on Windows. Linux is simply not a stable/quality graphical platform and with the Wayland/X.org fiasco taken into account, should inspire even less confidence for the future.
If you want code that you know can be run in 100 years, you should target WINE. This is assuming that the code you’re writing is a medium sized project- a small project would be too trivial, a large one (think MySQL or Java) would probably get ported to a future architecture.
Native Windows isn’t great, a lot of Windows 95 binaries have issues running on Windows 11. Linux binaries aren’t great either, I don’t trust Linux binaries from 1999 to work perfectly even now.
But WINE? There are millions of pieces of Win32 software from 1995-2030+ (at the very least) that define this period in history. This means that even if we all use some weird alien OS or architecture in 100 years, at least it’s probable that there’s a fork of WINE that future-people use to run obsolete Windows software.
So yeah, if I was hypothetically writing an emulator which was for (an obscure enough platform that no other emulators would exist in 100 years), and assuming that the emulator would not be getting patched/ported after 100 years, then WINE-Win32 would probably be the platform I’d aim to support for maximum compatibility in the far future.
Go ahead, I'll wait.
Yes, Win32 has been supported for a long time (though it's worth noting that it barely older than this emulator, which started development in 1995 and not originally on Win32), but there's been a long series of other API changes in Windows that often mean that software designed for previous versions no longer runs as well - if at all - on subsequent versions. Wine on Linux does a better job running many Win95, 98, and XP titles than current Windows.
Not to mention, with the shift to cloud and containerisation, and Microsoft's decades-long quest to get people to move on from Win32, I think it's bold to assert that Win32 will run smoothly on whatever (if any) Windows is about in 2063.
Yes, sometimes native Windows is not the best solution. But wine on Linux is far better than anything else - including running native Linux GUI binaries should they be > 10 year old: the rate of change and the introductions of incompatibilities in Linux is far higher.
Unless you think Windows in 2063 will not be able to run something like vmware or wine, I think bitwize is perfectly right: win32 binaries are what's the most stable and supported.
WinUAE: yes. But UAE, the core, is multi-platform.