hardware emulation