Computer specifications: Difference between revisions

From Emulation General Wiki
Jump to navigation Jump to search
Ahayri (talk | contribs)
Ahayri (talk | contribs)
No edit summary
Line 1: Line 1:
Most emulators tend to be CPU-dependent in general, meaning that their performance is greatly determined by the CPU's speed. The GPU on the other hand, usually serves as a graphics enhancer by allowing for higher resolutions, anti-aliasing, etc. If your CPU isn't fast enough, you will not likely to be able to emulate a system at full speed. This page will explain and state other possible choices to take, provided that the above choices are not feasible.
Most emulators tend to be CPU-dependent in general, meaning that their performance is greatly determined by the CPU's speed. The GPU on the other hand, usually serves as a graphics enhancer by allowing for higher resolutions, anti-aliasing, etc. If your CPU isn't fast enough, you will not likely to be able to emulate a system at [[Frames_per_second|full speed]]. This page will explain and state other possible choices to take, provided that the above choices are not feasible.


==CPU==
;Recommended Reading: Check out the [[Displays]], [[Controllers]], and [[Input lag]] pages for additional context. Websites like [https://pcpartpicker.com/ PCPartPicker] can help with hardware selection.
===Megahertz Myth===
;Demanding Emulation: If you're aiming for demanding emulation (e.g., [[Arcade_emulators#Machines|3D arcade boards]], [[PC_Emulator_Comparisons#Hardware_.26_Peripheral_Support|Pentium II emulation]], [[PlayStation_2_emulators|PS2]], [[Xbox_emulators|Xbox]], [[GameCube_emulators|GameCube]], or newer systems), avoid mobile devices or low-power Single Board Computers (SBCs) like the Raspberry Pi, as their CPU performance is generally insufficient for these tasks. Even recent Android-based handhelds such as Retroid Pocket 5, or handheld gaming computers such as the Steam Deck, may struggle to meet the requirements for these tasks. If you're purchasing a handheld gaming computer,  look for one with a CPU, such as a Ryzen U family chip, that at least offers some level of AVX-512 support. Keep in mind that; for demanding emulation, [[Dynamic_recompilation|dynarec and Just-In-Time (JIT) compilation]] support is vital for good performance (See [[Emulation accuracy]] for more information). Unlike on iOS/iPadOS where 'jailbreaking' might be needed to enable JIT, emulators on Mac systems typically utilize JIT without such modifications, but graphics performance in emulation on Macs is significantly influenced by Apple's native Metal API. Software relying on Vulkan or OpenGL may use [[Wrappers#2000s_and_later_APIs|wrappers]] like MoltenVK to run on Metal, or may use older, deprecated versions of OpenGL, which can impact efficiency compared to native Metal implementations.
Whenever a CPU has a high clock speed (e.g: Pentium 4 580 @ 4 GHz), it does not always necessarily mean that it is powerful.<ref>http://www.computer-hardware-explained.com/megahertz-myth.html</ref> This is usually a common misconception, that stems from lack of detailed information on how a CPU works. However, it is true that a higher CPU clock speed guarantees improved emulation performance. While it is true that a high clock speed is one of the main factors for good CPU performance, it is not always the sole determining factor. For example, a Core 2 Duo E6600 @ 2.4 GHz will nearly always outperform a Pentium D 940 @ 3.2 GHz.<ref>http://www.pcstats.com/articleview.cfm?articleid=2097</ref> Even though the Pentium D 940 is clocked significantly higher, the Core 2 Duo E6600 is still faster due to the reduced amount of pipeline stages and a wider execution unit. This improves the amount of instructions it can output per cycle, which means better performance at a lower clock speed. In other words, the particular architecture of the CPU itself matters more than the clock speed.
;Architecture Recommendation: Recommended to stick to x86 or ARM CPUs. Non-x86/ARM architectures (e.g., PowerPC, SPARC, MIPS, IA-64, Alpha, PA-RISC, 68000) lack support and often require inefficient x86 emulation. Native emulators for these are rare or outdated. But keep in mind, software emulator library and development on ARM-based systems, whether mobile or desktop, not as much getting attention compared to x86 due to its toxic community according to various developers.
 
;Key Components: As mentioned earlier in this page, CPU is the most critical component when building or upgrading a PC for running emulators, especially for [[Emulation_accuracy|accurately]] recreating performance-demanding systems. While a good graphics card (GPU) is important for rendering visuals and using various graphical and post-processing [https://emulation.gametechwiki.com/index.php?title=Special:Search&limit=500&offset=0&profile=default&search=%5B%5Benhancements%7C enhancements] provided by emulators, the raw computational work of mimicking another system's hardware primarily falls on the CPU. Some emulators offers all of the graphics processing can be done on the CPU ''([[High/Low_level_emulation#Software_Rendering|Software Rendering]])'', but that is performance costly.
AMD's FX (Bulldozer) CPUs also follows the aforementioned Pentium 4 (NetBurst) example, which has the same issue that the NetBurst-derived CPUs suffer from. They also share the same high clock speed traits, which might cause confusion and misleading performance conclusions. Because of this, it is recommended to completely avoid Bulldozer at all costs. To further discourage the use of  a Bulldozer-derived CPU; its single-threaded performance is somewhat lower when compared to an equally-clocked Phenom II or Core 2,<ref>https://www.overclock.net/photopost/data/1501987/b/b1/b16fb0b4_ScreenShot005.jpeg</ref> though the multi-threaded performance of Bulldozer far exceeds the fastest Phenom II or Core 2 offerings. The actual problem here is Bulldozer's under-average single-threaded performance that will not help in high-end emulation that uses 4 or fewer cores, and the fact that Bulldozer has a shared FPU between 2 cores. What this means, is that a FX-4350 would have 2 FPUs (1 FPU per 2 cores), and a FX-9590 would have 4 FPUs (1 FPU per 2 cores x 4). This will lead to weaker performance in floating-point heavy calculations, which is also another reason why it is not recommended. If you are still not convinced, have a look at the benchmarks.<ref>https://docs.google.com/spreadsheet/ccc?key=0AunYlOAfGABxdFQ0UzJyTFAxbzZhYWtGcGwySlRFa1E#gid=1></ref><ref>https://docs.google.com/spreadsheet/ccc?key=0AunYlOAfGABxdFQ0UzJyTFAxbzZhYWtGcGwySlRFa1E#gid=0</ref><ref>http://forums.pcsx2.net/Thread-CPU-Benchmark-designed-for-PCSX2-based-on-FFX-2?page=107</ref><ref>https://forums.dolphin-emu.org/Thread-new-dolphin-cpu-benchmark-no-game-required?page=15</ref><ref>https://forums.dolphin-emu.org/Thread-new-dolphin-cpu-benchmark-no-game-required?page=15</ref><ref>http://translate.google.com/translate?act=url&depth=1&hl=pl&ie=UTF8&prev=_t&rurl=translate.google.pl&sl=auto&tl=en&u=http://pclab.pl//art55934.html</ref><ref>http://wccftech.com/ultimate-cpu-gpu-floating-point-performance-battle-amd-intel/</ref><ref>http://www.anandtech.com/show/7711/floating-point-peak-performance-of-kaveri-and-other-recent-amd-and-intel-chips</ref><ref>http://vr-zone.com/articles/ivy-bridge-e-i7-4960x-vs-amd-fx-9590-battle-2013-flagships/54295.html/2</ref><ref>http://www.extremetech.com/computing/159619-5ghz-showdown-overclocked-5ghz-amd-haswell-ivy-bridge/2</ref>
;Desktop vs. Laptop: Desktop CPUs outperform laptop variants due to higher clock speeds and better cooling. Laptops face thermal and power limits, and performance varies by cooling design (thicker laptops often perform better). Some laptops use desktop CPUs, but they’re heavy, noisy, and costly, making desktops preferable for demanding emulation unless portability is key. Although, this situation is not as bad as older days.
 
;Overclocking: This can boost performance but requires compatible CPUs and motherboards. Risks include overheating and instability, especially on laptops, where cooling is limited. For desktops, older boards may use front-side bus overclocking (risky without PCI/AGP locks) or safer ‘CPU BSEL Select’ settings. In the older days; laptops rarely supported overclocking natively; third-party tools (e.g., ThrottleStop, SetFSB) was an option but unsafe without excellent cooling (keep below 100°C/212°F). Check power supply and voltage regulator limits too.
===Emulation on a non-x86/ARM CPU===
CPUs that are not x86-based, or are not ARM-based <small>(smartphones can run emulators with varying degrees of success)</small>, are not very likely to be good enough for emulation in general. Certain emulators have been ported or programmed for some CPUs that are not ARM or x86-based, but those are generally very old and are possibly no longer in active development. IBM PowerPC CPUs for example, had emulators ported or even programmed for it. However, these are rather outdated emulators and are not recommended for emulation.
 
Some very specific CPU architectures such as the Elbrus, SPARC, MIPS, IA-64 (Itanium), Alpha, PA-RISC, and 68000, are heavily discouraged for emulation. This is mostly due to the lack of support and interest in them, which forces people that utilize these CPUs to resort to x86 emulation. While some of them may be capable of performing x86 emulation, not all of them have the necessary software or hardware capability to do so. Even such emulators that are native to their architecture are extremely hard to find, or non-existent. Therefore, it is strongly recommended to avoid using these CPUs in any way possible.
 
===Desktop vs. Laptop===
Laptop CPUs are typically much weaker than their desktop variants due to lower clock speeds and heat management requirements. They may also come with fewer cores when compared with their desktop variants with similar naming schemes, which may be confusing. Also, please be aware that different laptops with the same CPU may vary in actual performance due to the aforementioned restrictions, as well as manufacturer-implemented settings. This is strongly correlated with cooling capabilities, with thicker and larger laptops typically having better performance. As such, it is strongly recommended to pick a laptop with a decent cooling system if emulation is one of your primary goals.
 
A limited number of laptops have full desktop processors: however, due to thermal and power requirements, they are relatively heavy and in many cases noisy and expensive. As above, the constraints of a portable system often reduces the performance of the device, so such hybrid devices are not recommended.
 
===More Cores and Threads===
Emulators generally only utilize 2 cores, or with hacks, sometimes 3 or 4 cores. Thus, owning a CPU with 6 cores or more with Hyper-Threading/Simultaneous Multi-Threading, does not help or give the said CPU an advantage over a CPU with only 4 cores. Although, there are certain exceptions. One such exception is RPCS3, which can utilize more cores and threads by emulating the system's thread scheduler, that allows it to use as many cores and threads as the game makes threads. While CPUs with very high IPC performance are usually recommended for emulation, most CPUs nowadays feature more than 4 cores with even higher clock speeds. This in comparison to the previously released 6-core or 8-core HEDT CPUs with far lower clock speeds, is a fine improvement. Therefore, purchasing a 6-core or an 8-core CPU with said higher clock speeds would hold no disadvantages over a lower core-count CPU, as it no longer forces a clock speed reduction over a similarly clocked 2-core or 4-core CPU.
 
===Overclocking===
Not all CPUs can be overclocked, and the motherboard's BIOS must be additionally capable of supporting overclocking. The CPUs in particular that can be overclocked are the usually the ones that are labeled: OverDrive, FX, Extreme Edition, Black Edition, K, and X. Although, certain engineering or qualification sample CPUs that AMD or Intel has manufactured may also be overclockable, since they were used for testing purposes and were not meant for sale. If you are not sure what kind of a CPU you have, check if it has these overclocking labels. For Intel CPUs, their overclocking labels are OverDrive, Extreme Edition, K, and X. For AMD CPUs, their overclocking labels are FX and Black Edition.
 
Although, some special CPUs such as the Pentium E6500K, Pentium G3258, and all Ryzen CPUs are overclockable. But keep in mind that you have to be running the CPU on a motherboard that supports overclocking. The motherboards that tend to support overclocking features, comes with a chipset that also supports overclocking, which is required for the CPU to be overclockable. However, this only applies to the newer motherboards, not the older motherboards as they tend to vary from being overclockable to not overclockable. For Intel, the overclockable chipsets' name starts with an X or a Z. The other chipsets that were not mentioned, are not overclockable (B, C, H, and Q). For AMD, the overclockable chipsets' name starts with an X or a B. The other chipsets that were not mentioned, are not overclockable (A).
 
For older desktop motherboards with older chipsets, there might be overclocking available in the form of a front-side bus setting. Use that setting with caution however, as the front-side bus clock speed gets raised, so does the rest of the other components on the motherboard (which causes instability, data corruption, etc). Unless the motherboard has a PCI/AGP lock, it is advised not to use the front-side bus setting to overclock the CPU. In further depth, there is a safer setting that can be used to overclock without suffering from instability. Called the 'CPU BSEL Select' or similar, it was intended to manually select the proper front-side bus clock speed of the CPU. By using this method, it allows us to use it for overclocking whilst staying within the factory specifications of the motherboard. This does not affect the rest of the other components on the motherboard, as the front-side bus is not overclocked and is only following the rated speeds it can achieve. Therefore, it is safer than the dangerous front-side bus setting. Also, be aware that once the CPU has hit a certain clock speed, it may be no longer capable of scaling to higher clock speeds due to voltage issues. The reasoning behind this is because of how higher clock speeds require more voltage, and these non-overclockable motherboards have a high chance of not having the ability to directly modify the CPU's core voltage.
 
However, if there is no 'CPU BSEL Select', proceed with the front-side bus setting with caution. As a safety precaution, do whatever it takes to not allow the PCI bus' clock speed to reach above 40 MHz. This is because anything higher than the 40 MHz mark will have a very high chance of inducing instability and possible data corruption, or worse. This is also why the front-side bus setting is only recommended for motherboards that are equipped with a PCI/AGP lock, since they prevent the other components on the motherboard from being overclocked. Additionally, please be aware that your motherboard can only supply a limited amount of current before it hits its limits, which will then limit your CPU's overclocking ability. This is due to the weak voltage regulator modules that are not rated to supply a large amount of stable current to keep the CPU and the rest of the other components stable, which is common for motherboards that are not meant for overclocking. The CPU's potential overclock may also be limited by the power supply unit, so a better power supply unit with better efficiency and wattage rating may be required.
 
If you have a laptop, overclocking will be severely limited. Most laptops in circulation do not support overclocking, and may not be capable of handling the extra heat produced from an overclocked CPU. For the few laptops that can be overclocked through the BIOS, it is more or less the same as how a desktop would be configured to overclock the CPU. For the majority that does not officially support overclocking, it may be possible to overclock it in a different approach.
 
A common approach to overclock your laptop's CPU is to use third-party applications, such as ThrottleStop and CPUMSR. However, these applications only work with CPUs with an Extreme Edition/Black Edition/K/X label. Sometimes, special CPUs such as an engineering sample or a qualification sample may also be overclockable. And always remember this, do not overclock your laptop if you are not confident in its cooling system. If you are able to force the cooling system's fan to always run at its maximum speed, it is strongly recommended to do so. Avoid hitting temperatures higher than 100C/212F at all costs, even if the CPU is rated for a maximum of 105C/221F at the transistor-junction level.
 
For non-overclockable laptop CPUs, you might be able to overclock it in a different way. Certain third-party applications are capable of controlling a chip that generates the clock signal for the front-side bus' clock, which is called the phase-locked loop. This is extremely unsafe and may result in potential data corruption, as it follows the same principle of overclocking the front-side bus. All laptops in existence do not have a PCI/AGP lock either, so keeping the PCI bus below 40 MHz is advised. The applications that can control the phase-locked loop are: ClockGen, CPUCool, SetFSB, SoftFSB, SetPLL, and SysTool. However, there is a catch when using these mentioned programs; none of them supports every phase-locked loop in existence. This means that each one of them has a range of phase-locked loops they support, and you must use the correct matching program that has support for your phase-locked loop. There is also no auto-detection in these programs for the phase-locked loop, as they do not have a standardized way to report their manufacturer and model name, so be careful when selecting the correct phase-locked loop that resides in your laptop.
 
==GPU==
GPUs are basically just hundreds of under-powered CPUs on the same die, or better described as a massively parallel CPU with a core count that far exceeds most traditional multi-core CPUs.
 
The thing is, with 3D graphics, you can split the work up into hundreds of different parts and give each operation to a different core on the GPU to work on. Since it doesn't matter which order the pixels are rendered in, as long as they all get rendered for the same frame before moving on to the next frame.
 
File compression/extraction and bitcoin mining are also good examples of programs that can make use of parallel processing. However, most programs can not do this. Dwarf Fortress, for example, can't make use of a graphics card. This is because of how every calculation it does is dependent on the one performed before it. That obviously doesn't work if you try and do them all at the same time.
 
Pretty much any emulator is the same; it does not know what comes next until it has done what preceded it. It has to run off a single thread. It still needs some form of graphical output to output the final rendered 2D screen alone. This can be done via a GPU to put the 3D graphics on the screen, but any system capable of being emulated shouldn't be too taxing. This is called 'Hardware Rendering'. Alternatively, all of the graphics processing can be done on the CPU and will be more predictable/consistent for it, but that is also costly. This is called 'Software Rendering'.
 
Most 3D emulators have hardware and software renderers. Software renderers use more CPU power, which may mostly be slower. They may also run on their own threads separate from other emulator parts, which would likely reduce the performance loss, but the CPU must still be fast enough in the first place.
 
==Build Guide for Emulation==
;Before diving in;
*Highly recommended to read [[Displays]], [[Controllers]] and [[Input lag]] pages. You can also use [https://pcpartpicker.com/ PCPartPicker] website.
*If you're aiming for demanding emulation (e.g., [[Arcade_emulators#Machines|3D arcade boards]], [[PC_Emulator_Comparisons#Hardware_.26_Peripheral_Support|Pentium II emulation]], [[PlayStation_2_emulators|PS2]], [[Xbox_emulators|Xbox]], [[GameCube_emulators|GameCube]], or newer systems), avoid mobile devices or low-power Single Board Computers (SBCs) like the Raspberry Pi, as their CPU performance is generally insufficient for these tasks. Even recent Android-based handhelds such as Retroid Pocket 5, or handheld gaming computers such as the Steam Deck, may struggle to meet the requirements for these tasks. If you're purchasing a handheld gaming computer,  look for one with a CPU, such as a Ryzen U family chip, that at least offers some level of AVX-512 support.
*Keep in mind that; for demanding emulation, [[Dynamic_recompilation|dynarec and Just-In-Time (JIT) compilation]] support is vital for good performance (See [[Emulation accuracy]] for more information). Unlike on iOS/iPadOS where 'jailbreaking' might be needed to enable JIT, emulators on Mac systems typically utilize JIT without such modifications, but graphics performance in emulation on Macs is significantly influenced by Apple's native Metal API. Software relying on Vulkan or OpenGL may use [[Wrappers#2000s_and_later_APIs|wrappers]] like MoltenVK to run on Metal, or may use older, deprecated versions of OpenGL, which can impact efficiency compared to native Metal implementations.
*Another key factor contributing to the limited software emulator library and development on ARM-based systems, whether mobile or desktop, is the toxic community according to various developers.
*As mentioned earlier in this page, CPU is the most critical component when building or upgrading a PC for running emulators, especially for [[Emulation_accuracy|accurately]] recreating performance-demanding systems. While a good graphics card (GPU) is important for rendering visuals and using various graphical and post-processing [https://emulation.gametechwiki.com/index.php?title=Special:Search&limit=500&offset=0&profile=default&search=%5B%5Benhancements%7C enhancements] provided by emulators, the raw computational work of mimicking another system's hardware primarily falls on the CPU.


===X86 (recommended)===
===X86 (recommended)===
;CPU
;CPU
*Prioritize Single-Core Performance, this is often the most important factor for emulator performance. Look for CPUs with high Instructions Per Clock (IPC) – generally found in more recent generations and architectures. See [https://www.techpowerup.com/review/amd-ryzen-9-9700x-performance-smt-disabled/6.html TechPowerUp emulation chart] and [https://docs.google.com/spreadsheets/d/1Rpq_2D4Rf3g6O-x2R1fwTSKWvJH7X63kExsVxHnT2Mc/edit#gid=0 CPU Tier List for RPCS3] for benchmarks with emulators. If you don't have the time to research, it is recommended to get one of the [https://www.cpubenchmark.net/cpu_value_available.html#single-thread most single thread price/performance value chip on the market] with considering the factors mentioned below.
*Prioritize Single-Core Performance: This is the top factor for emulator performance. Focus on CPUs with high Instructions Per Clock (IPC), typically found in newer generations and architectures. Beware the Megahertz Myth: higher clock speeds don’t always mean better performance. There are other factors due to architectural differences that affects performance; e.g., fewer pipeline stages, wider execution units. Similarly, Some CPUs that have high clocks but weaker single-threaded performance and shared FPUs (e.g., FX-4350 has 2 FPUs for 4 cores), making them poor choices for emulation. See [https://www.techpowerup.com/review/amd-ryzen-9-9700x-performance-smt-disabled/6.html TechPowerUp emulation chart] and [https://docs.google.com/spreadsheets/d/1Rpq_2D4Rf3g6O-x2R1fwTSKWvJH7X63kExsVxHnT2Mc/edit#gid=0 CPU Tier List for RPCS3] for benchmarks with emulators. If you don't have the time to research, it is recommended to get one of the [https://www.cpubenchmark.net/cpu_value_available.html#single-thread most single thread price/performance value chip on the market] with considering the factors mentioned below.


*[[wikipedia:Advanced_Vector_Extensions#Advanced_Vector_Extensions_2|AVX2]] and [[wikipedia:X86-64#Microarchitecture_levels|x86-64-v3]] Support: Consider this a baseline requirement for a modern emulation build. Many emulators use AVX2 instructions to significantly speed things up nowadays. Ensure any CPU you consider supports it.
*[[wikipedia:Advanced_Vector_Extensions#Advanced_Vector_Extensions_2|AVX2]] and [[wikipedia:X86-64#Microarchitecture_levels|x86-64-v3]] Support: Consider this a baseline requirement for a modern emulation build. Many emulators use AVX2 instructions to significantly speed things up nowadays. Ensure any CPU you consider supports it.
:*[[wikipedia:Advanced_Vector_Extensions#AVX-512|AVX-512]] and [[wikipedia:X86-64#Microarchitecture_levels|x86-64-v4]] exists and can offer benefits in specific emulators due to more registers or specific instructions, but support is less widespread, hardware implementations vary, and it's less critical than strong AVX2 support for most users currently. Early implementations sometimes required multiple clock cycles for certain operations or could cause the CPU to downclock significantly under heavy load due to power/heat constraints, potentially negating performance gains in some scenarios. Newer implementations are better. See [https://uops.info/ uops.info], and [[PlayStation 3 emulators#Emulation issues]] section for more information.
:*[[wikipedia:Advanced_Vector_Extensions#AVX-512|AVX-512]] and [[wikipedia:X86-64#Microarchitecture_levels|x86-64-v4]] exists and can offer benefits in specific emulators due to more registers or specific instructions, but support is less widespread, hardware implementations vary, and it's less critical than strong AVX2 support for most users currently. Early implementations sometimes required multiple clock cycles for certain operations or could cause the CPU to downclock significantly under heavy load due to power/heat constraints, potentially negating performance gains in some scenarios. Newer implementations are better. See [https://uops.info/ uops.info], and [[PlayStation 3 emulators#Emulation issues]] section for more information.
*Core Count: Multithreading often irrelevant prior to PlayStation 3 emulation and while single-core speed is key, don't neglect core count entirely especialy for emulation of demanding systems.
*Core Count: Multithreading often irrelevant prior to PlayStation 3 emulation. While CPUs with very high IPC performance are usually recommended for emulation, most CPUs nowadays feature more than 4 cores with even higher clock speeds. This in comparison to the previously released 6-core or 8-core HEDT CPUs with far lower clock speeds, is a fine improvement. Therefore, purchasing a 6-core or an 8-core CPU with said higher clock speeds would hold no disadvantages over a lower core-count CPU, as it no longer forces a clock speed reduction over a similarly clocked 2-core or 4-core CPU.
:*Minimum: Aim for at least 4 cores / 8 threads.
:*Minimum: Aim for at least 4 cores / 8 threads.
:*Recommended: 8 cores / 16 threads is a good sweet spot for handling demanding emulators alongside compiling modules, shader compilation and background tasks.
:*Recommended: 8 cores / 16 threads is a good sweet spot for handling demanding emulators alongside compiling modules, shader compilation and background tasks.
Line 97: Line 51:
*If you're gonna edit this section, please provide only the official system requirements page URL and nothing else, but for emulators that '''lacking detailed''' official information, we offer unofficial guidelines and data to help you decide.
*If you're gonna edit this section, please provide only the official system requirements page URL and nothing else, but for emulators that '''lacking detailed''' official information, we offer unofficial guidelines and data to help you decide.


===[[86Box]] and [[PCem]]===
;[[86Box]] and [[PCem]]
See [https://pcem-emulator.co.uk/phpBB3/viewtopic.php?t=371 this forum thread].
See [https://pcem-emulator.co.uk/phpBB3/viewtopic.php?t=371 this forum thread].


===[[Yuzu]] and forks===
;[[Yuzu]] and forks
See [https://web.archive.org/web/20240302185354/https://yuzu-emu.org/help/quickstart/#hardware-requirements official requirements page for yuzu]. Also see [https://github.com/MaxLastBreath/TOTK-mods?tab=readme-ov-file#--quick-installation-guide-- TOTK Optimizer recommended specs].
See [https://web.archive.org/web/20240302185354/https://yuzu-emu.org/help/quickstart/#hardware-requirements official requirements page for yuzu]. Also see [https://github.com/MaxLastBreath/TOTK-mods?tab=readme-ov-file#--quick-installation-guide-- TOTK Optimizer recommended specs].


===[[Ryujinx]]===
;[[Ryujinx]]
See [https://web.archive.org/web/20241001085156/https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide#system-requirements official requirements page for Ryujinx].
See [https://web.archive.org/web/20241001085156/https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide#system-requirements official requirements page for Ryujinx].


===[[Xenia]]===
;[[Xenia]]
:[https://github.com/xenia-canary/xenia-canary/wiki/Quickstart#system-requirements Official requirements page], see [[Xenia#Xenia_on_Other_Operating_Systems|Xenia Linux and Steam Deck guide]].
:[https://github.com/xenia-canary/xenia-canary/wiki/Quickstart#system-requirements Official requirements page], see [[Xenia#Xenia_on_Other_Operating_Systems|Xenia Linux and Steam Deck guide]].
<blockquote>
<blockquote>
Line 123: Line 77:
</blockquote>
</blockquote>


===[[xemu]]===
;[[xemu]]
:[https://xemu.app/docs/about/#system-requirements Official requirements page for xemu]
:[https://xemu.app/docs/about/#system-requirements Official requirements page for xemu]
:[https://xemu.app/docs/troubleshooting/#windows-performance-considerations Windows OS performance considerations for xemu]
:[https://xemu.app/docs/troubleshooting/#windows-performance-considerations Windows OS performance considerations for xemu]
Line 140: Line 94:
</blockquote>
</blockquote>


===[[Cxbx-Reloaded]]===
;[[Cxbx-Reloaded]]
See [https://github.com/Cxbx-Reloaded/Cxbx-Reloaded?tab=readme-ov-file#system-requirements official requirements page for CXBX-Reloaded]
See [https://github.com/Cxbx-Reloaded/Cxbx-Reloaded?tab=readme-ov-file#system-requirements official requirements page for CXBX-Reloaded]


===[[ShadPS4]]===
;[[ShadPS4]]
See [https://github.com/shadps4-emu/shadPS4/blob/main/documents/Quickstart/Quickstart.md#pc-requirements this page] for official system requirements.
See [https://github.com/shadps4-emu/shadPS4/blob/main/documents/Quickstart/Quickstart.md#pc-requirements this page] for official system requirements.


===[[RPCS3]]===
;[[RPCS3]]
*[https://rpcs3.net/quickstart#requirements_desktop Official requirements page for RPCS3]
*[https://rpcs3.net/quickstart#requirements_desktop Official requirements page for RPCS3]
*[https://docs.google.com/spreadsheets/d/1Rpq_2D4Rf3g6O-x2R1fwTSKWvJH7X63kExsVxHnT2Mc/edit#gid=0 CPU Tier List for RPCS3]
*[https://docs.google.com/spreadsheets/d/1Rpq_2D4Rf3g6O-x2R1fwTSKWvJH7X63kExsVxHnT2Mc/edit#gid=0 CPU Tier List for RPCS3]
*For information on DualShock 3 controller support, see [[SCP Driver Package]].
*For information on DualShock 3 controller support, see [[SCP Driver Package]].


===[[PCSX2]]===
;[[PCSX2]]
*[https://pcsx2.net/docs/setup/requirements/#system-requirements Official requirements page for PCSX2]
*[https://pcsx2.net/docs/setup/requirements/#system-requirements Official requirements page for PCSX2]
:*[https://wiki.pcsx2.net/Category:CPU_intensive_games CPU-intensive games (PCSX2 wiki)], [http://forums.pcsx2.net/Thread-LIST-The-Most-CPU-Intensive-Games CPU-intensive games (PCSX2 forum thread)] and [https://wiki.pcsx2.net/Category:Software_rendering_only_games Software rendering only (PCSX2 wiki)]
:*[https://wiki.pcsx2.net/Category:CPU_intensive_games CPU-intensive games (PCSX2 wiki)], [http://forums.pcsx2.net/Thread-LIST-The-Most-CPU-Intensive-Games CPU-intensive games (PCSX2 forum thread)] and [https://wiki.pcsx2.net/Category:Software_rendering_only_games Software rendering only (PCSX2 wiki)]
Line 159: Line 113:
*See [[PCSX2#Compatibility with obsolete hardware and OSes]] section for running specific PCSX2 builds with older OSes and hardware.
*See [[PCSX2#Compatibility with obsolete hardware and OSes]] section for running specific PCSX2 builds with older OSes and hardware.


===[[Mednafen]]===
;[[Mednafen]]
Depends on which core used for emulation.
Depends on which core used for emulation.
*[https://mednafen.github.io/documentation/ss.html Official requirements for Saturn core page]
*[https://mednafen.github.io/documentation/ss.html Official requirements for Saturn core page]
*[https://mednafen.github.io/documentation/psx.html Official requirements for PSX core page]
*[https://mednafen.github.io/documentation/psx.html Official requirements for PSX core page]


===[[PPSSPP]]===
;[[PPSSPP]]
See [https://www.ppsspp.org/docs/getting-started/system-requirements/ official requirements page for PPSSPP]. Also see [https://github.com/hrydgard/ppsspp/issues/10560#issuecomment-360733737 this issue page].
See [https://www.ppsspp.org/docs/getting-started/system-requirements/ official requirements page for PPSSPP]. Also see [https://github.com/hrydgard/ppsspp/issues/10560#issuecomment-360733737 this issue page].
<blockquote>
<blockquote>
Line 178: Line 132:
Note that the JIT does not currently function on 64-bit iOS builds<ref name="PPSSPP FAQ">http://www.ppsspp.org/faq.html</ref> It is possible to install PPSSPP (or any iOS app for that matter) on a non-jailbroken device through Cydia Impactor, however. Since 2024-05-15 it is officially available through app store with some cut capabilities<ref name="PPSSPP blogpost about announcement Apple Store approval">https://www.ppsspp.org/news/live-on-app-store/</ref>.
Note that the JIT does not currently function on 64-bit iOS builds<ref name="PPSSPP FAQ">http://www.ppsspp.org/faq.html</ref> It is possible to install PPSSPP (or any iOS app for that matter) on a non-jailbroken device through Cydia Impactor, however. Since 2024-05-15 it is officially available through app store with some cut capabilities<ref name="PPSSPP blogpost about announcement Apple Store approval">https://www.ppsspp.org/news/live-on-app-store/</ref>.


===[[Cemu]]===
;[[Cemu]]
See [https://cemu.info/ official requirements page for cemu]
See [https://cemu.info/ official requirements page for cemu]
<blockquote>
<blockquote>
Line 192: Line 146:
</blockquote>
</blockquote>


===[[Dolphin]]===
;[[Dolphin]]
See [https://en.dolphin-emu.org/docs/guides/performance-guide/ official requirements page for Dolphin]
See [https://en.dolphin-emu.org/docs/guides/performance-guide/ official requirements page for Dolphin]
<blockquote>
<blockquote>
Line 213: Line 167:
:See the [[Dolphin]] page for further information, such as [[Dolphin#Controllers|controller setups]].
:See the [[Dolphin]] page for further information, such as [[Dolphin#Controllers|controller setups]].


===[[Citra]]===
;[[Citra]]
See [http://web.archive.org/web/20240228020658/https://citra-emu.org/wiki/faq/#can-i-expect-_citra_-to-play-game-at-full-speed official requirements page for Citra].
See [http://web.archive.org/web/20240228020658/https://citra-emu.org/wiki/faq/#can-i-expect-_citra_-to-play-game-at-full-speed official requirements page for Citra].


===[[DeSmuME]]===
;[[DeSmuME]]
See [https://wiki.desmume.org/index.php?title=Faq#What_are_the_minimum_hardware_requirements_for_DeSmuME.3F official requirements page for DeSmuME].
See [https://wiki.desmume.org/index.php?title=Faq#What_are_the_minimum_hardware_requirements_for_DeSmuME.3F official requirements page for DeSmuME].


===[[mGBA]]===
;[[mGBA]]
See [https://mgba.io/faq.html#what-are-the-system-requirements-for-mgba official requirements page for mGBA], also see [https://github.com/mgba-emu/mgba?tab=readme-ov-file#system-requirements this section].
See [https://mgba.io/faq.html#what-are-the-system-requirements-for-mgba official requirements page for mGBA], also see [https://github.com/mgba-emu/mgba?tab=readme-ov-file#system-requirements this section].


===[[Vita3K]]===
;[[Vita3K]]
See [https://vita3k.org/faq.html official requirements page for Vita3K].
See [https://vita3k.org/faq.html official requirements page for Vita3K].


===[[MelonDS]]===
;[[MelonDS]]
<blockquote>
<blockquote>
;Minimum:
;Minimum:

Revision as of 11:47, 25 July 2025

Most emulators tend to be CPU-dependent in general, meaning that their performance is greatly determined by the CPU's speed. The GPU on the other hand, usually serves as a graphics enhancer by allowing for higher resolutions, anti-aliasing, etc. If your CPU isn't fast enough, you will not likely to be able to emulate a system at full speed. This page will explain and state other possible choices to take, provided that the above choices are not feasible.

Recommended Reading
Check out the Displays, Controllers, and Input lag pages for additional context. Websites like PCPartPicker can help with hardware selection.
Demanding Emulation
If you're aiming for demanding emulation (e.g., 3D arcade boards, Pentium II emulation, PS2, Xbox, GameCube, or newer systems), avoid mobile devices or low-power Single Board Computers (SBCs) like the Raspberry Pi, as their CPU performance is generally insufficient for these tasks. Even recent Android-based handhelds such as Retroid Pocket 5, or handheld gaming computers such as the Steam Deck, may struggle to meet the requirements for these tasks. If you're purchasing a handheld gaming computer, look for one with a CPU, such as a Ryzen U family chip, that at least offers some level of AVX-512 support. Keep in mind that; for demanding emulation, dynarec and Just-In-Time (JIT) compilation support is vital for good performance (See Emulation accuracy for more information). Unlike on iOS/iPadOS where 'jailbreaking' might be needed to enable JIT, emulators on Mac systems typically utilize JIT without such modifications, but graphics performance in emulation on Macs is significantly influenced by Apple's native Metal API. Software relying on Vulkan or OpenGL may use wrappers like MoltenVK to run on Metal, or may use older, deprecated versions of OpenGL, which can impact efficiency compared to native Metal implementations.
Architecture Recommendation
Recommended to stick to x86 or ARM CPUs. Non-x86/ARM architectures (e.g., PowerPC, SPARC, MIPS, IA-64, Alpha, PA-RISC, 68000) lack support and often require inefficient x86 emulation. Native emulators for these are rare or outdated. But keep in mind, software emulator library and development on ARM-based systems, whether mobile or desktop, not as much getting attention compared to x86 due to its toxic community according to various developers.
Key Components
As mentioned earlier in this page, CPU is the most critical component when building or upgrading a PC for running emulators, especially for accurately recreating performance-demanding systems. While a good graphics card (GPU) is important for rendering visuals and using various graphical and post-processing enhancements provided by emulators, the raw computational work of mimicking another system's hardware primarily falls on the CPU. Some emulators offers all of the graphics processing can be done on the CPU (Software Rendering), but that is performance costly.
Desktop vs. Laptop
Desktop CPUs outperform laptop variants due to higher clock speeds and better cooling. Laptops face thermal and power limits, and performance varies by cooling design (thicker laptops often perform better). Some laptops use desktop CPUs, but they’re heavy, noisy, and costly, making desktops preferable for demanding emulation unless portability is key. Although, this situation is not as bad as older days.
Overclocking
This can boost performance but requires compatible CPUs and motherboards. Risks include overheating and instability, especially on laptops, where cooling is limited. For desktops, older boards may use front-side bus overclocking (risky without PCI/AGP locks) or safer ‘CPU BSEL Select’ settings. In the older days; laptops rarely supported overclocking natively; third-party tools (e.g., ThrottleStop, SetFSB) was an option but unsafe without excellent cooling (keep below 100°C/212°F). Check power supply and voltage regulator limits too.

X86 (recommended)

CPU
  • Prioritize Single-Core Performance: This is the top factor for emulator performance. Focus on CPUs with high Instructions Per Clock (IPC), typically found in newer generations and architectures. Beware the Megahertz Myth: higher clock speeds don’t always mean better performance. There are other factors due to architectural differences that affects performance; e.g., fewer pipeline stages, wider execution units. Similarly, Some CPUs that have high clocks but weaker single-threaded performance and shared FPUs (e.g., FX-4350 has 2 FPUs for 4 cores), making them poor choices for emulation. See TechPowerUp emulation chart and CPU Tier List for RPCS3 for benchmarks with emulators. If you don't have the time to research, it is recommended to get one of the most single thread price/performance value chip on the market with considering the factors mentioned below.
  • AVX2 and x86-64-v3 Support: Consider this a baseline requirement for a modern emulation build. Many emulators use AVX2 instructions to significantly speed things up nowadays. Ensure any CPU you consider supports it.
  • AVX-512 and x86-64-v4 exists and can offer benefits in specific emulators due to more registers or specific instructions, but support is less widespread, hardware implementations vary, and it's less critical than strong AVX2 support for most users currently. Early implementations sometimes required multiple clock cycles for certain operations or could cause the CPU to downclock significantly under heavy load due to power/heat constraints, potentially negating performance gains in some scenarios. Newer implementations are better. See uops.info, and PlayStation 3 emulators#Emulation issues section for more information.
  • Core Count: Multithreading often irrelevant prior to PlayStation 3 emulation. While CPUs with very high IPC performance are usually recommended for emulation, most CPUs nowadays feature more than 4 cores with even higher clock speeds. This in comparison to the previously released 6-core or 8-core HEDT CPUs with far lower clock speeds, is a fine improvement. Therefore, purchasing a 6-core or an 8-core CPU with said higher clock speeds would hold no disadvantages over a lower core-count CPU, as it no longer forces a clock speed reduction over a similarly clocked 2-core or 4-core CPU.
  • Minimum: Aim for at least 4 cores / 8 threads.
  • Recommended: 8 cores / 16 threads is a good sweet spot for handling demanding emulators alongside compiling modules, shader compilation and background tasks.
RAM

If you don't want to waste your time, just prioritize getting two sticks of RAM for dual-channel performance and aim for a total capacity suitable for your needs within your budget. If you have time however, when choosing speed and latency, target the recommended 'sweet spot' for your platform. Be aware that the quality of the underlying memory chips used on the modules affects how reliably and stably they perform at those rated speeds and latency (recommended to see buildzoid's youtube channel for this). Opting for kits considering these, including motherboard's Memory QVL and better-quality or better-binned memory chips, generally provides better experience compared to the absolute cheapest or expensive options.

GPU

Choosing the right GPU for emulation is more important now than it used to be. This increased importance is due to recent advancements like compute shader renderer implementations, which may leverage specific GPU hardware features and APIs for optimized rendering, as well as the graphical and post-processing enhancements offered by modern emulators. For example, see "VK_DEPENDENCY_BY_REGION_BIT" and "VK_EXT_fragment_shader_interlock" situations.

ARM

CPU
  • Minimum: Aim for at least ARMv8.2-A (or derivatives such as 'Kryo 300' series and onwards) at this point.
  • Recommended: ARMv9.2-A or later (or derivatives such as 'Oryon' series and onwards)
GPU

Choose Snapdragon Adreno platforms for GPU as much as possible due to better driver support and possibly capabilities regarding to API and libraries. placeholder text

Before diving in
Why? In the '90s and '00s, there are various popular tools and webpages for users to check system compatibility for games and software. Similarly, this page aims to guide emulation users by highlighting the system requirements for modern, actively maintained emulators. These emulators implements and rely on up-to-date frontends, standards, compiler features, functions, library and API related stuff from time to time (such as "XAudio2 situation[7][8][9]", "using D3D12", "qt6", SDL3", "Zstandard"/"lz4"/"zlib", "memcpy", "timers", "VirtualAlloc2", "mapviewoffile3", time zone APIs) which usually depends on actively maintained and supported operating system versions and hardware via drivers (considering using binaries provided by official sources, not building software by yourself without some serious patching).[10] There are even some interesting discussions happening recently about dropping SSE4 support from some of the emulators.[11]
Windows: 10 (64-bit) based on servicing supported build or later
Linux: Distributions based on 64-bit active kernel releases/EOL
macOS: still maintained version
Android: still maintained version
iOS: still maintained version
  • If you're gonna edit this section, please provide only the official system requirements page URL and nothing else, but for emulators that lacking detailed official information, we offer unofficial guidelines and data to help you decide.
86Box and PCem

See this forum thread.

Yuzu and forks

See official requirements page for yuzu. Also see TOTK Optimizer recommended specs.

Ryujinx

See official requirements page for Ryujinx.

Xenia
Official requirements page, see Xenia Linux and Steam Deck guide.
Minimum
  • CPU: x86-64 processor with AVX2[12] support and 4-cores, 4-threads - (Intel Core i5-4460 or AMD Ryzen 3 1200)
  • GPU: NVIDIA GeForce GTX 1050 Ti or AMD RX 570
Some release titles and 2D games which underutilized the Xbox 360 hardware may run acceptable on less powerful hardware such as;
Still driver supported NVIDIA GeForce GTX 750Ti or AMD RX 460
AVX supported Intel Core i5-2300 or overclocked AMD FX-4350
  • RAM: 4 GB
Recommended and using enhancements
Some of the titles needs the top-notch latest lineup of graphics cards to play on higher than 2x internal resolution.
  • RAM: 8 GB or more
xemu
Official requirements page for xemu
Windows OS performance considerations for xemu

As mentioned in Xbox emulators#Comparisons section, some titles require powerful hardware for full-speed emulation, particularly single-threaded performance, is often the bottleneck.[15] Additionally, using demanding graphical enhancements may also require a strong GPU.

Minimum
  • CPU: x86-64 processor with AVX2 support and 4-cores, 4-threads - (Intel Core i5-4460 or AMD Ryzen 3 1200)
Some release titles and 2D games which underutilized the Xbox hardware may run acceptable on less powerful SSE4.2 hardware[16] such as: Intel Core i5-750 or AMD FX-4350 CPUs.
  • GPU: OpenGL 4.0-compatible hardware
  • RAM: 4 GB
Recommended and using enhancements
Some of the titles needs the latest lineup of graphics cards to play on 4K internal resolution.
  • RAM: 8 GB or more
Cxbx-Reloaded

See official requirements page for CXBX-Reloaded

ShadPS4

See this page for official system requirements.

RPCS3
PCSX2
Mednafen

Depends on which core used for emulation.

PPSSPP

See official requirements page for PPSSPP. Also see this issue page.

Minimum
  • CPU: Any CPU based on ARMv7-A or a 2-thread CPU with at least SSE2 support will be sufficient for bare minimum.
  • GPU: Any GPU that handle OpenGL 3.0 will be enough for bare minimum.[17]
  • RAM: Recommended amount by the operating system.
Recommended
iOS notes

Note that the JIT does not currently function on 64-bit iOS builds[1] It is possible to install PPSSPP (or any iOS app for that matter) on a non-jailbroken device through Cydia Impactor, however. Since 2024-05-15 it is officially available through app store with some cut capabilities[2].

Cemu

See official requirements page for cemu

Minimum
  • CPU: Any AVX2 x86-64 hardware and 4-cores, 4-threads - (Intel Core i5-4460 or AMD Ryzen 3 1200)
Similar to #PCSX2 situation, some release titles and 2D games which underutilized the Wii U hardware may run acceptable on less powerful SSE4.2 hardware such as i5-750 or AMD FX-4350.
  • GPU: OpenGL 4.5 or Vulkan 1.2 required - NVIDIA GeForce GTX 750 or AMD RX 460
  • RAM: 4 GB
Recommended and using enhancements[18]
Dolphin

See official requirements page for Dolphin

Minimum
  • RAM: 4GB
  • Desktop CPU: Any SSE4.2 x86-64 hardware and 4-cores, 4-threads - (Intel Core i5-750 or AMD FX-4350)
  • Mobile CPU: ARMv8.2-A or later
Some release titles and 2D games which underutilized the GameCube and Wii hardware may run acceptable on even less powerful hardware such as: Core 2 Duo E8400 or AMD Athlon II X2 255 or ARMv8-A based CPUs, on top of that there are several performance and hack options such as "VBI Skip" which is a powerful tool for weaker devices, especially in games that struggle. It's obviously not perfect, but the mixture of slowdown and frameskip keeps the game fairly playable[23].
  • Desktop GPU: Direct3D 11 / OpenGL 4.4 supported hardware
  • Mobile GPU: OpenGL ES 3.0 required but OpenGL ES 3.2 / Vulkan 1.1 supported hardware preferred
Recommended
  • RAM: 8 GB or more
  • CPU: Any AVX2 instruction set supported x86-64 hardware[24] and at least 4-cores, 4-threads - (Intel Core i5-4460 or AMD Ryzen 3 1200)
Some intensive titles and incompatible ones with performance options such as "dual core"[25][26][27][28] may require Intel Core i5-7600 or OC'ed AMD Ryzen 3 2300X level of single thread performance for running on full speed.
  • GPU: Vulkan 1.1 supported hardware that have active driver support. NVIDIA GeForce GTX 750 or AMD RX 460
For using enhancements[29][30];
  • Desktop GPU: NVIDIA GTX 1650 or AMD RX 570 or better
  • Mobile GPU: Recent RDNA2 or recent Snapdragon based graphics processors hardware
See the Dolphin page for further information, such as controller setups.
Citra

See official requirements page for Citra.

DeSmuME

See official requirements page for DeSmuME.

mGBA

See official requirements page for mGBA, also see this section.

Vita3K

See official requirements page for Vita3K.

MelonDS
Minimum
  • Desktop CPU: Any SSE4.2 x86-64 and 2-cores hardware will be sufficient for acceptable performance - (Intel Core i3-530 / Pentium G850 / Celeron G530)
  • Mobile CPU: Any ARMv8.2-A or later [31]
  • GPU: Any GPU that handle OpenGL 3.1 will be enough for bare minimum.[32]
  • RAM: Recommended amount by the operating system.
Recommended

References