[Prev][Next][Index][Thread]
Re: to announce emulation or to not announce... (Hamlet had it easy)
Re the pros & cons of having an emulator "stand up when called"...
One traditional strategy applications have used to tell whether they
are running on a machine with Mac roms or not, has been to address
memory locations used by the roms, and attempt to change a value
contained there. If the change is made, then there is ram at these
addresses and not rom. For example, Dave Small uses this method to
recognize when his emulator is running within real Mac roms, or
within a ram-image of the Mac roms.
Also, the software can query each of the rom-addresses in which the
Mac roms store Mac-specific data, not used by standard OS calls.
What it finds in these sorts of addresses will tell the software
whether it is running on a machine with Mac-roms or not. Ditto some
of the io devices. You can pin down the precise sort of Mac you are
running on this way, with enough patience, if it is indeed a Mac at
all.
Granted, this gets more complicated with memory re-mapping schemes,
and it will eventually get impossible, but there is still some
mileage yet left in these traditional schemes.
So it seems to me that any programmer who really wants his/her
software to be able to learn if it is being run by "real Mac roms" or
an emulator can already do so using these well-known methods. But it
is harder to use these methods to tell just which emulator is used,
or which version of an emulator, and thus it seems thoughtful to have
the emulator itself give its rank and serial number when asked ---
thoughtful, and unlikely to create a new problem.
Henning Leidecker