It is different. If you have the correct Kickstart and hardware for a given game, you can just run it directly.Bren McGuire wrote: ↑Fri Jun 24, 2022 5:53 am Is there any difference between this Kickstart environment and having an appropriate Kickstart rom installed on your system (maybe a 1.3-3.1 switcher)? I'm talking about real Amiga hardware.
I'm unclear on the exact technical details of how it works, so this is speculation: I believe WHDLoad instead loads a new Kickstart at a different address, and then just before launching, changes a basic pointer-to-Kickstart in low memory. IIUC, all Kickstart calls are supposed to index through base pointer plus offset, so using a different Kickstart means loading it into RAM and changing that pointer. It's not real virtualization, but well behaved programs should work with it.
If it was 68030-and-up, WHDLoad could be using the MMU to provide a true virtual address space, but since the program works on even a basic 68000, I think it *has* to be using that pointer approach. I don't actually know this to be a fact, however: the entire paragraph above is guesswork based on what I know about the 68K family, and the knowledge that Kickstart can be relocated by programs like PrepareEmul, which is used for Macintosh emulation. (the Mac demands the use of memory where Kickstart normally is, so it has to be moved before Mac programs can launch.)
When WHDload exits, on the 68010 or higher, it can restore the Kickstart pointer before resuming execution of the host Workbench. I have always understood that exiting didn't work correctly on the 68000, and that a reboot was the only option, but I'm being contradicted above, so that might be wrong.
Again: lots of guesswork here on technical internals, based on program behavior and hardware capabilities. If anyone claims to have actual knowledge, trust them more than me.