Since r4260, the dynamic_x86 core 64 bit update has introduced some serious graphical glitches with the svga_s3 machine type. Switching to vesa_nolfb does not exhibit this issue. I noticed it first on the flickering title screen of Duke Nukem 3D, but it also affects the held gun texture too. It can also be seen on the HUD elements and weapon in BLOOD. I'm told Topbench can show this issue too but I haven't personally tested. I have checked revision 4259 and the problem is not there. Attached is the best screen I can capture for this issue.
The flickering is an issue related to page flipping that affects all Build-engine games. There are a somewhat complicated set of factors that determine if (or to what extent) the issue appears: video resolution, number of video pages, system speed, and scene complexity. The 64-bit dynx86 core providing more speed than the dynarec is probably why you are seeing the issue to a greater extent. However, it's possible you could see it to a lesser extent with dynarec, such as flickering of the HUD or held weapon when closely facing walls in the game because low detail scenes are rendered faster.
The issue doesn't appear with machine=vesa_nolfb because the absence of LFB means bank-switching must be used, thus there is no page flipping. Ken Silverman, the author of the Build engine, has a NOLFB TSR utility on his website originally intended for real systems, but it can be used in DOSBox to disable LFB if you'd rather use machine=svga_s3 than switching to machine=vesa_nolfb. Alternatively, you can try using cycle limits, which I prefer to use with Build games rather than fixed cycles, but it can be tricky to find the right amount of cycles to eliminate the flickering due to variations in framerate caused by varying scene complexity.
Last edit: ripsaw8080 2020-05-14