[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