With full emulation, I'd argue memory access is
not direct. Memory access from the emulated system will go through user space code in the emulator. That code may translate it to actual memory access, or perhaps an emulated, memory mapped I/O device like a frame buffer. Either way, there is something in the middle.
You could argue that nothing is direct unless you're running on a bare metal system, no MMU, no page tables. How do you define "direct"?