OK,
Here is the thread, so go at it: When you run software written for one computer (let us say an Amiga) on another computer (for instance a PC, MAC, or DEC PDP 11/40), what is it?
Depends.
If you run software written for Amiga on a Mac using MorphOS, which provides the complete Amiga environment and API's (minus Amiga custom chips etc) fully native on the Mac hardware, then it's not emulation, the software is being run native. The Amiga apps are scheduled by the same scheduler as those compiled directly for MorphOS, they all share the same resources, the same memory space, the same signalling system. There is no difference from an Amiga program and a MorphOS program in the way they are treated/handled, they all have full access to everything, they are both running directly on top of the OS (no layer in between), which is running directly on top of the HW. Everything is fully native!
If you run the Amiga software on a Mac using UAE sitting on top of the native environment, then it will run boxed in an emulated environment. UAE is software that tries to mimic the Amiga hardware, and the Amiga applications are then executed by that piece of SW inside its own box, shielded from the native system that lies underneath it.
On MorphOS you generally don't need to use emulators to run Amiga software. Games/apps that access Amiga custom chips directly (instead of going through the OS) will not run without an emulator like UAE though.
So, by "natively," you mean PPC opcodes only running on a PPC system.
Yep, that's native.
68k opcodes running on a PPC? There's some level of emulation.
PPC opcodes running on a PPC system, is running native.
If you have a 68k program and you recompile it into being PPC instead, then you will have PPC opcodes running on a PPC system, fully native.
Both the above is how MorphOS does it. In other words, fully native.
If you on the other hand constructs a piece of program with the aim to mimic a physical 68k CPU through SW and run 68k opcodes using that, then you would have emulation. Just like a real CPU, it would have a Program Counter pointing to the next in line 68k opcode to be executed, it would have routines to deal with that opcode and all the others (instruction set), it would have the D0-D7 data registers and the A0-A6 address registers to be used by these opcodes, it would have the status register (signalling "overflow", etc), and it would have a chunk of "system RAM" allocated in a box where the 68k application(s) and their data resides, that this "CPU" can access. When one opcode is executed, registers are altered, "system RAM" is altered, the Program Counter in this "virtual CPU" increases to point to the next opcode in line. Since it's the 68k opcodes (unchanged) that are actually being executed, by a program that simulates a physical 68k CPU, it is emulation. The emulator itself would run native on the system, but the 68k code inside it would be emulated.
