The main point is mostly that if you try an LC you will encounter different kinds of road-blocks one after the other. If you can code then you can pick them off one by one as you encounter them. But my belief is that FPU emulation would do a great deal to remove many or most of these in one single swoop.
Sometimes it would actually emulate something, and sometimes the performance impact of that emulation wouldn't be so bad or even noticable (mxPlay)
Sometimes it would be incredibly slow and unusable (Quake) - but that is still no worse off than not being able to start it at all.
Sometimes it would not emulate anything but only serve as being able to even start 020-060 compiled applications.
No matter how you look at it I fail to see why something like that could ever be a bad thing?
mikro wrote: 31 Jul 2024 19:56
I'm not sure I understand your reasoning here: if it's not too demanding, we have a 000 build. If it is, we have a 020-60 build but you still think a SoftIEEE would help here? How so? If it's so demanding, it is perhaps due to heavy FPU usage so how SoftIEEE would help here?
If there is a 000 build of something then yes it could be run. Some integer stuff may now end up under emulation but who cares if it's something that isn't really demanding.
But then the same could be applied for everything. Why are we wasting time building separate 000,020,030,040 and 060 versions of Mint if the 000 build should be good enough for everyone regardless of CPU? ;)
If there is a 020-060 build then that build does not work on LC.
You are greeted with "This program requires FPU, kthxbye, sucks to be you!". The originator of that message has no idea if the program actually requires FPU.
If there is only a 020-060 build an no 000 you are now out of luck.
This scenario exists. And it makes sense, typically games which will not run on a stock ST anyway so why not optimise for the better integer instruction set. If something is barely hitting 30fps on an 060, then yes I would build for 020-060 only because why bother with the hassle.
If you don't have experienced using an 030 accelerator without FPU, or an 060LC then how obvious is it that these CPU flags are also implying hard FPU requirements and even worse that "helpful" code in Mintlib that will refuse the thing from running on non-fpu systems -- when mintlib has no idea if I am actually using floats or not. It's nuts.
An -msoft-float option will only work in practice if the programmer actively knows and cares about non-fpu machines.
It's too easy to do the "wrong" thing, since the "wrong" thing is the default (wrong being extremely subjective here :) )
Besides, we have 10+ years of existing binaries with "This program requires FPU" in programs that may or may not require FPU.
By demanding I'm thinking mostly on game ports. And as I typed that I do realise I am quite narrow minded.
I've worked in games since, too long, so that's naturally where my mind goes.
But keeping on that trail, seeing as a modest 68060 is just about fast enough for late 486 or early Pentium1 era things, all but very few of these will have been fixed point due to economics, wanting to reach the widest audience possible in a time when FPU's were not yet fully the norm on the DOS side of things.
This is where my, perhaps narrow minded;
"almost nothing is actually using FPU but still the thing wont start because whoever put that message into mintlib is an asshole that hates poor people" comes from ;)
In that context. Yes, SoftIEEE will be a solution and it doesn't even have a performance impact - it's mostly there to be able to start the thing that doesn't even use FPU.
In reality, it's quite possible that I am wrong and a lot of things are indeed using FPU to the extent that emulation is a futile effort.
SDL remakes can of course have done it different after the fact, but let us at least assume that the majority of anything you'd possibly want to port that originates from the DOS era and is playable on a comparatively slow 68060 will not have been using floating point in the original DOS release.
There is Quake, being an early P1 game and one of the first PC games without a fixed-point codepath, but then shortly after that x86 performance quickly started accelerating towards crazy town - so forget most of what came after.
So yes. there is Quake...
If it was me, I think I would have started from scratch based off the one inside m68k-Linux instead of that one which I extracted from NetBSD. Or even better, ask the Amiga guys nicely if it's possible to borrow the SoftIEEE sources for an Atari port. I'm assuming it would need to be extended to deal with being invoked from usermode, and the usual kernel glue differences etc but since it's already designed as a standalone thing I'm thinking it has to be a win in terms of work involved.
Now, it probably isn't me since I caved in and got a full Rev6, and by that loosing the powerful motivation by necessity.