3 ms·
> All an emulator is doing is changing the shape and flow of those commands. Maybe if you're SIMH and you're emulating an old CPU that was connected asynchrono
by bitwize 4y ago
> All an emulator is doing is changing the shape and flow of those commands.
Maybe if you're SIMH and you're emulating an old CPU that was connected asynchronously to like RS232 peripherals. But I think this statement understates the complexity of emulating something like a console.
Emulating a console or home computer, or even something like an old console's GPU, is HARD because you have to do these translations in a bug-for-bug compatible way, with strict timing constraints -- for the system's many components -- and you have to take into account the raster nature of CRT displays, which allowed for changing the display in significant ways between frames or scanlines.
There's a reason why emulation is these days usually only undertaken by some of the strangest most terminally online people, and it can take even them decades to get the details right. Of course, this engineer worked at Sony and probably had the benefit of being able to talk to the developers of the graphics chip he was emulating, but that's still a daunting task.
- rbanffy 4y ago> ou have to do these translations in a bug-for-bug compatible way, with strict timing constraints -- for the system's many components Not only that, but you need to catch the way the hardware is accessed on the emulated console by generating a fault or trap, then rearrange everything for the actual hardware, and then pass control back to the emulated code on a processor that had, IIRC, no provision for hardware assisted virtualization.
- matheusmoreira 4y agoI used to really enjoy byuu's detailed articles on the matter. They effectively demonstrated the effort necessary to accurately reproduce the behavior of these machines. > the raster nature of CRT displays, which allowed for changing the display in significant ways between frames or scanlines In case anyone would like to know more, this is a really good explanation of these concepts: https://youtu.be/Q8ph2OVqZeM https://youtu.be/Q8ph2OVqZeM > There's a reason why emulation is these days usually only undertaken by some of the strangest most terminally online people They could be perfectly normal people for all we know... A few days ago I saw a comment here from someone who worked with an emulator developer. Only revealed that fact to him after 4 years working together.
- monocasa 4y agoThe PS1 GPU is a bit easier than something like the the SNES to get to the compat to meet their goals since it really doesn't encourage 'racing the beam' style techniques. It's a more modern design which runs scanout asynchronously from drawing using a relatively large VRAM buffer between them. For anything other than emulating absolute batshit demoscene level code, you can get away with just being in the right ballpark for how long drawing a frame takes. And apparently they were OK with blacklisting a few of the problem titles.