Emulation accuracy: Difference between revisions
No edit summary |
No edit summary |
||
| Line 6: | Line 6: | ||
*'''[[Simulators]]''' where developers build virtual replicas of specific environments or processes | *'''[[Simulators]]''' where developers build virtual replicas of specific environments or processes | ||
*'''[[:Category:Emulators|Emulation]]''' endeavors to recreate an entire historical architecture. This digital reconstruction seeks to faithfully capture the instruction set, timing behaviors, hardware features and even peripheral nuances of a bygone hardware platform. In years, lots of techniques and other technologies come in useful to emulator development which is mentioned in [[High/Low level emulation#Future Outlook]] section. Thanks to this, emulators achieve impressive levels of [[Frames_per_second|performance]] and compatibility, further unlocking the doors to historical software [[Preservation_projects|preservation]]. | *'''[[:Category:Emulators|Emulation]]''' endeavors to recreate an entire historical architecture. This digital reconstruction seeks to faithfully capture the instruction set, timing behaviors, hardware features and even peripheral nuances of a bygone hardware platform. In years, lots of techniques and other technologies come in useful to emulator development which is mentioned in [[High/Low level emulation#Future Outlook]] section. Thanks to this, emulators achieve impressive levels of [[Frames_per_second|performance]] and compatibility, further unlocking the doors to historical software [[Preservation_projects|preservation]]. | ||
*'''Static Recompilation''' is a specific form of binary translation where the source program's machine code is translated into the host machine's native code ahead of time (statically). Unlike generic [[Dynamic_recompilation|Dynamic Recompilation]] (JIT) used by many emulators, [[Game_engine_recreations_and_source_ports|static recompilation projects]] often target a single program and leverage extensive, game-specific analysis and optimization to achieve maximum performance, sometimes at the expense of strict hardware accuracy. | *'''[[Game_engine_recreations_and_source_ports|Static Recompilation]]''' is a specific form of binary translation where the source program's machine code is translated into the host machine's native code ahead of time (statically). Unlike generic [[Dynamic_recompilation|Dynamic Recompilation]] (JIT) used by many emulators, [[Game_engine_recreations_and_source_ports|static recompilation projects]] often target a single program and leverage extensive, game-specific analysis and optimization to achieve maximum performance, sometimes at the expense of strict hardware accuracy. | ||
*'''[[Compatibility_layer|Compatibility/translation layers]]''' allow software written for one operating system to run on a different OS, often by translating system calls made by an application to their equivalent calls in the host operating system. | *'''[[Compatibility_layer|Compatibility/translation layers]]''' allow software written for one operating system to run on a different OS, often by translating system calls made by an application to their equivalent calls in the host operating system. | ||
*'''[[Wrappers]]''' is a reimplementation of a library, where the goal is to substitute the original API with a better-supported interface. Wrappers are most common for proprietary interfaces that are either abandoned or otherwise platform-specific. | *'''[[Wrappers]]''' is a reimplementation of a library, where the goal is to substitute the original API with a better-supported interface. Wrappers are most common for proprietary interfaces that are either abandoned or otherwise platform-specific. | ||