Win64 Build Deficiencies
This is a list of problems that need to be fixed before Win64 builds can be considered stable. Feel free to add points as long as you maintain quality standards in your reports.
Hendricks266 is leading the Win64 stability project.
Critical Problems
- The ebacktrace dll does not build under 64-bit. It uses code specific to the format of 32-bit executables and will have to be ported to work with 64-bit executables. A future 64-bit version will be named ebacktrace1-64.dll. [NOTE: Hendricks266 has this problem solved and is testing it.]
- DirectInput is broken: you will get an error if you have a joystick plugged in at runtime. Mouse and keyboard are unaffected. The error never happens without any joysticks plugged in.
- Saved games don't work. [Is this a 64-bit error specifically or a wider bug in the source code?]
- original report:
- "WGR2 monsters can be grouped using z-vel. Once all monsters of a group die they activate a tag. Using this build the tag is activated each time a monster dies in the specific group. ( similar code is used in duke plus too )"
- "Pow menu slots say invalid value" (see this screenshot).
Inconveniences
All problems below should be fixed but do not prevent Win64 builds from being declared stable.
- Some oddity in SDL_mixer (possibly SDL itself) causes 64-bit RENDERTYPE=SDL builds to mysteriously crash. Sometimes backtraces indicate a crash in SDL_mixer's Mix_Linked_Version() (which just happens to be the first SDL_mixer function called in the code sequence), and sometimes it is a SIGSEGV at "0x0000000000000000 ()". This happens with both the website-provided VC-built import library (SDL_mixer.lib) and DLL, and Hendricks266's MinGW-w64 build (libSDL_mixer.a). Both builds use Hendricks266's MinGW-w64-built mainline SDL because no Win64 development libraries are provided on the website.
Endemic but Non-Critical Flaws
- The classic renderer will be measurably slower compared to 32-bit builds because Ken's ultrafast ASM code is 32-bit, forcing other architectures to use the slower C ports of the code. This is the only truly endemic drawback and is unlikely to be resolved anytime soon without skilled help.