This article mainly talks about an error “Unsupported CPU: CPU does not have POPCNT!” that probably appears when you launch Apex Legends on your old PC. It also provides several methods to deal with the problem. Learn more about CPU issues on MiniTool partition magic website.
Apex Legends CPU Does Not Have POPCNT
The most situations are when you launch your Apex Legends game on your old PC, you get an error message saying “Unsupported CPU: CPU does not have POPCNT!” It means that your old CPU, most probably an old Intel CPU that is not built with the SSE4 instructions set, does not support the game. The SSE4 refers to Streaming SIMD Extensions 4, a SIMD (Single Instruction, Multiple Data) CPU instruction set used in the Intel Core microarchitecture and AMD K10 (K8L).
Related article: 6 Ways to Apex Legends Won’t Launch Windows 10
What Is POPCNT CPU?
According to Wikipedia, instruction POPCNT, population count (count number of bits set to 1), support is indicated via the CPUID.01H;ECX.POPCNT[Bit 23] flag. Intel implements POPCNT beginning with the Nehalem microarchitecture and AMD with the Barcelona microarchitecture.
This instruction operates on integer rather than SSE registers. It is not SIMD instruction, yet appear at the same time and although introduced by AMD with the SSE4a instruction set. It is counted as separate extensions with its own dedicated CPUID bits to indicate support.
When Apex Legends keeps crashing on your Windows computer, how to fix it? Don’t worry. You can find some effective solutions in this post.
CPU Does Not Have POPCNT Fix
there are several solutions to solve the “CPU does not have POPCNT” problem.
Solution 1. Use POPCNT Emulator
There are tools like POPCNT Emulator developed by ogurets to run Quantum Break on pre-SSE4.2 CPUs. Yet, for Apex Legends, it is using the Easy Anti-Cheat engine. If you make use of the POPCNT Emulator to patch Apex Legends’ executable r5apex.exe binary, it will trigger the anti-cheat system and you may get banned by EA (Electronic Arts), the publisher of Apex Legends.
According to ogurets, the solution is to make use of a sophisticated loader that starts the emulator in debug mode, circumvent all attempts to detect the emulator (anti-debugging technologies) as well as patches the game in real-time and in memory.
Solution 2. Rely on Intel SDE
According to Intel, SDE, Software Development Emulator, is built upon the Pin dynamic binary instrumentation system and the XED encoder-decoder. It requires CPUID to figure out what features to emulate. SDE modifies the output of CPUID so that compiled applications that check for the emulated features are told that those features exist.
However, SDE kills performance by emulating the entire Nehalem architecture and occupying CPU while the above POPCNT emulator won’t. POPCNT emulator Pin tool is having being detached after initial loading. Everything POPCNT Emulator has to do is to patch CPUID to enable POPCNT feature flag. With POPCNT Emulator, you don’t have to keep Pin tracer running all the time to get rid of “CPU does not have POPCNT” matter.
Solution 3. Upgrade CPU
It seems that the above two solutions are somehow risky. Then, if you are non-adventurous people, the best choice is to upgrade your CPU to a compatible mode. Or, just upgrade your whole computer to meet the minimum requirements of Apex Legends:
- CPU: Intel Core i3-6300 3.8GHz or AMD FX-4350 4.2GHz Quad-Core Processor
- RAM: 6GB
- GPU: AMD Radeon HD 7700 or NVIDIA GeForce GT 640
- GPU RAM: 1GB
- OS: Windows 7 64 bit
- Hard Drive: 30GB
The above are the basic requirements of computer hardware & software components. In order to ensure your Apex Legends working, you should at least equip your PC with them or higher ones.
Can I run Apex Legends? What are Apex Legends system requirements? What can I do if my PC doesn’t meet requirements? You can find the answers in this post.
Solution 4. Dev Sided Solution
It is because CPU does not have SSSE3; just setting "-arch=SSE2 -axSSE4.1,SSE4.2,SSSE3,SSE3" instead of something like "-march=corei7" in the compiler options.
Solution 5. Stop Apex Legends from checking for POPCNT Instruction
Since POPCNT is an additional instruction which can’t be used in the game, it is flexible to skip it when checking for the CPU instructions when loading the game. This can be done by the developers of Apex Legends.
Though only old CPUs have this problem and users who are running old CPUs are not of the mainstream, it is worth trying since there are still many complaints online on various big forums like answers.ea, Reddit, GitHub, Tom’sHARDWARE, etc.
Besides Apex Legends, there are many other games been affected by “CPU does not have POPCNT” problem, including Agents of Mayhem, Black Ops IV, Dishonored 2, EDF, Final Fantasy XV and so on. Yet, they are all patched and can be launched on those old machines.