Page MenuHomeFeedback Tracker

arma3_x64.exe crashes with STATUS_ILLEGAL_INSTRUCTION when loading the main menu after 2.18 update
Feedback, NormalPublic

Description

Since the 2.18 update, arma3_x64.exe crashes right before showing the main menu in Windows 7 64 bit.

The 64 bit executable was working fine up to version 2.16. Reverting to the 2.16 branch from the main branch (2.18)using Steam allows the game to work fine again with no issues, which proves that the source of the problem can be tracked down to something different introduced in the v2.18 x64 executable. Nothing has been changed in the operative system, drivers, DirectX or VCC redistributables in the affected PC.

The 32bit executable of the 2.18 version on the other hand is able to load the main menu. I've not tried to enter any game though. But even if this was possible, the performance is very low and unsuitable to play in heavy public servers such as KOTH, which is why I switched to the 64 bit version years ago.

Solutions that didn't fix the issue:

  • Switching the memory allocator didn't work
  • Verifying the cache through Steam didn't work
  • Switching to the legacy v2.16 branch and switching back to the main 2.18 branch, reinstalling all the files didn't work
  • Installing the latest versions available for the Visual C++ redistributables that the game uses didn't work.

Relevant fragment of the crash rpt:

15:31:02 Creating action map cache
15:31:02 MovesType CfgGesturesMale load time 404.0 ms
15:31:02 Loading movesType CfgMovesMaleSdr
15:31:02 Creating action map cache
15:31:12 Warning: looped for animation: a3\anims_f_epa\data\anim\sdr\cts\hubcleaned\briefing\hubbriefing_loop.rtm differs (looped now 1)! MoveName: hubbriefing_loop
15:31:12 Warning: looped for animation: a3\anims_f_epa\data\anim\sdr\cts\hubcleaned\briefing\hubbriefing_loop.rtm differs (looped now 0)! MoveName: hubbriefing_ext
15:31:12 Warning: looped for animation: a3\anims_f_epa\data\anim\sdr\cts\hubcleaned\spectator\hubspectator_stand.rtm differs (looped now 0)! MoveName: hubspectator_stand
15:31:14 MovesType CfgMovesMaleSdr load time 11280.0 ms
=======================================================
-------------------------------------------------------
Exception code: C000001D ILLEGAL_INSTRUCTION at 3FDF79A3

The crash happens just when the game is about to show the world scene in the main menu.
The full rpt is attached to this report.

Details

Severity
Crash
Resolution
Open
Reproducibility
Always
Operating System
Windows 7 x64
Operating System Version
Home Premium v6.1.7601 Service Pack 1 Build 7601
Category
Game Crash
Steps To Reproduce
  1. Open the 64 bit version of the game normally in any windows 7 64 bit machine

EDIT: It might only be reproducible on Windows 7 machines with old CPUs that might not have some modern instruction extensions that the x64 executable might be using since the 2.18 update.

Additional Information

Processor: Intel Core2 Duo E7500
RAM: 8 GB
Card: NVIDIA GeForce GTX 760 with the last game ready driver available (2022)
DirectX 11

Event Timeline

fragmeister57 added a comment.EditedOct 18 2024, 11:13 PM

Could it be this problem?
https://stackoverflow.com/questions/59584105/illegal-instruction-from-vs-c-on-windows

This is certainly a very old CPU I'm using. It might not have some of the more modern instruction extensions. A new compile flag might have been introduced in v2.18 that is causing the game to crash on my old rig.

fragmeister57 updated the task description. (Show Details)
Leopard20 added a subscriber: Leopard20.EditedOct 19 2024, 7:18 AM

It appears this is due to a POPCNT instruction
F3 0F B8 C0 = popcnt eax,eax

based on some Googling, it looks like yeah Core2 Duo doesn't support it:

Intel implements POPCNT beginning with the Nehalem microarchitecture

https://community.intel.com/t5/Processors/Which-CPUs-do-not-support-the-POPCNT-instruction/td-p/1610165

It appears this is due to a POPCNT instruction
F3 0F B8 C0 = popcnt eax,eax

based on some Googling, it looks like yeah Core2 Duo doesn't support it

Does this mean the developers are using a new compiler or new compiler flags starting with v2.18?

But apparently the x32 executable of v2.18 is still able to proceed past the main menu where the x64 executable fails... Can we confirm if the x32 exe has been compiled differently from the x64, or might it raise the same exception at other point in the program?

Leopard20 added a comment.EditedOct 20 2024, 4:25 AM

Does this mean the developers are using a new compiler or new compiler flags starting with v2.18?

The compiler has been changed to Visual Studio 2022 (MSVC 1940 or 1939 most likely) yes. But not the flags. (afaik)
This is most likely a compiler bug that's emitting an unsupported instruction.
Let's wait for Dedmen to respond.

dedmen added a subscriber: dedmen.Oct 22 2024, 2:25 PM

note: Minidump has been generated into the file C:\Users\pod\AppData\Local\Arma 3\Arma3_x64_2024-10-14_15-29-54.mdmp

I need that file, please pack it in a zip and also upload it here

dedmen changed the task status from New to Need More Info.Oct 22 2024, 2:26 PM

I need that file, please pack it in a zip and also upload it here

Thanks. Here you are:

Any new info on this? Was the minidump useful?

You may want to ask on the arma discord as reminder if your update was missed

You may want to ask on the arma discord as reminder if your update was missed

What Discord? I was re-directed to this tracker by Bohemia Support. They said the devs would look into it.

Leopard20 added a comment.EditedNov 19 2024, 12:39 AM

Official Arma Discord, #perf_prof_branch channel:
https://discord.com/invite/arma

dedmen changed the task status from Need More Info to Feedback.Wed, Nov 27, 10:54 AM

The code responsible for this, has been removed on performance/profiling branch, and will also be gone in 2.20. So the issue is already fixed, but won't make it to stable release until 2.20 next year