On the other hand, I'd also be surprised if the code couldn't be ported as-is, with just some minor tweaks if any, to the latest Delphi release (released this month).
The transition to Unicode strings was a breaking change that did have some impact, but if the code used string manipulation routines instead of direct byte manipulation it should work without any change.
I'd be surprised if it didn't. Not Delphi, but I've been helping a client update their Windows program, from a compiler which shipped in 1998. Their program, with that compiler, runs just fine on Windows 11.
The backward compatibility of the Win32 API is such that I regularly use programs last compiled 20 years or more ago.
I suppose if you run it as admin and/or install it outside Program Files it'll make it a lot less troublesome.
So, not unexpected, but I'd still be mildly surprised.
Now that's rattling a thing in my brain. I recall disabling UAC was one of the more consistent ways to get Delphi 6 to even run on Windows 7, and even then it wasn't a guarantee.
Yeah, I had the displeasure around 2009-2011 of trying to get an old IDE version running on then-current versions of Windows, with multiple Vista and 7 computers in the office. It ran fine on Windows XP, but newer OSes were not so lucky.
Perhaps the solution was to purchase a newer Delphi, but that avenue wasn't sought after.
The fall off occurs as you veer off into deeper holes:
- Multimedia software and games tend to hit on areas of Windows where compatibility is far from perfect.
- Even 32-bit software would sometimes have random Win16 binaries, and those are not emulated; I don't blame Microsoft or anything, but they could support it if they wanted to. (Understandably, they do not.)
- Software that uses truly obsolete Windows components may no longer work. AFAIK .NET Framework 1.1 hasn't been supported since Windows 8. Old ActiveX and COM components can also be a problem.
This has led to some situations where you might actually have better luck running the old software under Wine and Linux than modern Windows, especially for some older games.
It's not that Microsoft didn't do immense amounts of work here, but in practice there are some holes I've run into.
InstallShield being a common one in that regard. So common that 64-bit Windows, which doesn't support 16-bit binaries, contains code to handle specifically[1] InstallShield and Acme 16-bit binaries[2].
[1]: https://devblogs.microsoft.com/oldnewthing/20131031-00/?p=27...
[2]: https://learn.microsoft.com/en-us/windows/win32/winprog64/ap...
Here is a screenshot from ~5 years ago when i was playing around writing a Quake 1 level editor in Delphi 2 under Windows 10[0] (i switched to using Linux as my main OS soon after and converted it to Lazarus[1]).
Did a bit of search, is it QuARK?
It is not QuArK, though AFAIK QuArK was made in Delphi too. There have been a few other Quake editors made in Delphi, like the qED Quake Editor which was one of the earlier Quake editors (the author wrote a book about quake mapping too[2]).
[0] http://runtimeterror.com/tech/dglvp/
[1] http://runtimeterror.com/tech/bcbgl/
[2] https://archive.org/details/unofficial-quake-level-design-ha...
I believe the community is still thriving.
It's been a long enough time that the details have left my brain, but the feelings of pain have not been forgotten :-)