Both ideas have their place place though and I'd definitely be interested to see your project (if it ever matures) too
Both ideas have their place place though and I'd definitely be interested to see your project (if it ever matures) too
An emulator emulates the hardware (CPU, network interface, disk, graphics, etc.) and the real operating system runs mostly or entirely unmodified atop this.
A simulator reproduces the APIs that an application expects without running the actual operating system code, through some combination of a port or a reimplementation.
However, I think it's fair to use the word simulation here too. It is a simulation from the user's point of view.
In fact, another way to categorize all this is at which level the mimicry happens: hardware, API, or user.
An emulation presents a replica of something else's outward observable behavior.
A simulation runs a specific internal model, which generates some gestalt behavioral results.
An emulator might simply mimic surface-level behavior directly, or use an internal simulation in order to generate it from first principles.
There really isn't a hard and fast agreed-upon definition of these terms in software, but these seem in tune with their non-computing definitions.
To add a little: sometimes emulation can be achieved by simulation.
However, you are right, this can be called a simulator since it simulates the Amiga user experience on a very high level.