Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

As I understand it, standard emulation is not dynamic recompiling or jit, it is emulating and converting system calls in realtime. So the game calls a system function unique to the original platform, the emulator sees that call and makes a similar one (or multiple) in the language of the emulating system, and then returns the correct response back to the original call from the game.

I dont think it is compiling anything here.



Your understanding is incorrect. Applications (games) written for older gaming consoles all had to ship some native code, and were even typically entirely native code. These consoles were also typically not x86 or x86-64 based, so for a PC-targeting emulator to run applications written for these platforms, they do need to have recompiler or interpreter facilities.

They also do not necessarily need to hook and replicate syscalls, provided the user provides a dump of the system software (they just run the system software and make it load the game - the original syscall codes are then ran).

This extends even to the graphics hardware side once programmable shaders became a thing.


Thanks for the explanation




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: