Posted December 02, 2024
If you like me get an error message like this:
0024:err:seh:NtRaiseException Unhandled exception code c0000409 flags 1 addr 0x79c51f30
When trying to run Homm3 with wine, the solution is quite simple. It seems GOG changed the Heroes3.exe executable to use their own xdd.dll instead of the normal DDRAW.dll, probably for better compatibility on Windows. However this makes us unable to launch the game with Wine.
Looking at the executable, you can see that GOG has simply overwritten the "DDRAW.dll" with "xdd.dll", so lets change that back with this simple command:
printf "DDRAW.dll" | dd of=Heroes3.exe bs=1 seek=2475928 conv=notrunc
This command simply replaces xdd.dll with DDRAW.dll at byte 2475928 in the executable Heroes3.exe
You should be able to launch the game with no issues now.
0024:err:seh:NtRaiseException Unhandled exception code c0000409 flags 1 addr 0x79c51f30
When trying to run Homm3 with wine, the solution is quite simple. It seems GOG changed the Heroes3.exe executable to use their own xdd.dll instead of the normal DDRAW.dll, probably for better compatibility on Windows. However this makes us unable to launch the game with Wine.
Looking at the executable, you can see that GOG has simply overwritten the "DDRAW.dll" with "xdd.dll", so lets change that back with this simple command:
printf "DDRAW.dll" | dd of=Heroes3.exe bs=1 seek=2475928 conv=notrunc
This command simply replaces xdd.dll with DDRAW.dll at byte 2475928 in the executable Heroes3.exe
You should be able to launch the game with no issues now.