Short way:
1) Download modded binaries
https://disk.yandex.ru/d/PYprvzXPwfWo6w
There are two functionaly equal packs - Default and Custom.
Default contains "native" One-Core-Api dlls only.
Custom contains older One-Core-Api dlls and custom simple kernel32.dll wrapper (called kernel33.dll, sources included).
Custom wrapper jumps directly to native XP kernel32.dll functions, except small amount of functions from One-Core-Api kernel32.dll (renamed to kernel34.dll)
Functions, taken from One-Core-Api kernel32.dll (called kernel34.dll):
- FlsAlloc
- FlsFree
- FlsSetValue
- FlsGetValue
- GetCurrentProcessorNumber
- GetLargePageMinimum
- GetTickCount64
- SetThreadStackGuarantee
- InitializeCriticalSectionEx
It's not necessary, it just minimizes probability of crashes (because of possible realization bugs in One-Core-Api kernel32.dll)
Anyway, in my case there were no crashes at all on both packs.
You can use any pack you want.
2) Place fury.grp and fury.grpinfo near eduke32.exe
3) Play
Advice:
Disable voxels in graphics menu. Performance with enabled voxels is awful (something about 5 fps on GTX 680).
Long way (modding binaries by yourself):
1) Take eduke32_win32_20230926-10459-8feaf6c25 (https://dukeworld.com/eduke32/synthesis/20230926-10459-8feaf6c25/) or compile it with sources
2) Take 4 dlls from One-Core-Api (https://github.com/Skulltrail192/One-Core-API-Binaries) or compile it with sources
One-Core-API-Binaries/Packages/x86/Base Installer
- ntext.dll
- msvcrt.dll
- kernelbase.dll
One-Core-API-Binaries/Packages/x86/Base Installer\XPSP3
- xpspkernel32.dll
3) Replace 2 bytes in msvcrt.dll from One-Core-Api:
Address Byte change Purpose
0x000002A7 0x32 to 0x33 Import table kernel32.dll to kernel33.dll
0x0009B82F 0x32 to 0x33 Import table kernel32.dll to kernel33.dll
4) Place 4 dlls from One-Core-Api near eduke32.exe and then rename them (because of "known dlls"):
One-Core-Api dll Rename to
- xpspkernel32.dll - kernel33.dll
- ntext.dll - ntext.dll
- msvcrt.dll - msvcru.dll
- kernelbase.dll - kernelbase.dll
5) Replace 3 bytes in eduke32.exe:
Address Byte change Purpose
-0x00043AC9 0x01 to 0x00 minicoro calls CreateFiberEx with argument FIBER_FLAG_FLOAT_SWITCH (1). This flag is not supported by Windows XP, change it to 0
-0x005F0F7F 0x32 to 0x33 Import table kernel32.dll to kernel33.dll
-0x005F11C9 0x74 to 0x75 Import table msvcrt.dll to msvcru.dll
6) Place fury.grp and fury.grpinfo near eduke32.exe
7) Play