|Re: [hatari-devel] Identifying the presence of Hatari|
[ Thread Index |
| More lists.tuxfamily.org/hatari-devel Archives
On 03/19/2018 08:00 PM, Roger Burrows wrote:
On 19 Mar 2018 at 5:36, Thorsten Otto wrote:
On Montag, 19. März 2018 05:27:35 CET Roger Burrows wrote:
Would it be possible to add something to Hatari to allow EmuTOS to be able
to detect its presence?
You could use the NF_NAME NatFeats feature, but unfortunately that is disabled
by default in Hatari.
Along with other emulation detection methods, NatFeats can break
(NatFeats uses unimplemented CPU opcodes, which means that it changes
CPU behavior when program executes such opcodes. Programs relying on
specific behavior from unimplemented CPU opcodes are rare, but they do
A larger problem is that, once Hatari does get support for something,
a thing that tries to be clever and detect Hatari version & disable
support for the missing feature, won't work. And it can't be used
for testing whether Hatari's support for that feature works properly.
Whereas if that program can't detect Hatari, these problems go away.
(This has happened many times with during Hatari life-time, and
there were multiple counter-examples before Hatari, from emulators
which were detectable.)
As Vincent said, "exactly". Therefore in the general case, it can't be used to
detect the presence of Hatari.
I'm not sure what the state of SCSI emulation in Hatari is
There is NatFeats based host SCSI support in Hatari.
According to Uwe, who contributed that to Hatari and Aranym:
"it works with any application that makes use of the SCSI Driver. A
hard disk driver (like CBHD or HDDRIVER, which make use of the SCSI
Driver as low level access layer) is not mandatory for that. If you are
using GEMAR or DISKUS, for instance, in order to access peripherals just
the SCSI Driver is sufficient. The same should be the case for Extendos
but i can only
think of 3 possibilities: either the hardware addresses generate a bus-error
(dunno wether that works with TOS 3.06 where that hardware might be expected
to be present), or there is some dummy implementation that just reports
errors, so scanning for devices does not find anything, or it is properly
implemented. In either case, that should work with EmuTOS without knowing
Unfortunately the Falcon SCSI implementation does not report errors, but does
not behave properly either. This is mostly because the SCSI chip is "behind"
the ACSI hardware registers. I have figured out a reasonable workaround, but I
hate having to do this every time I'm implementing hardware support. Thus the
Hatari is supposed to do what "real HW" does in that case.
Is there any real HW that would be a "Falcon", but would/could lack SCSI
* If yes, does Hatari behavior differ from that?
* If not, is what Hatari currently does reasonable? If not, why?
PS. I know you're busy, but if there's somebody else whose interested
in getting native SCSI support to Hatari, patches are welcome!
(Both Aranym and Qemu should contain code on which Hatari SCSI support
could be based on.)