Die by the Sword (demo)

Treyarch/Interplay 1998 demo in test/binaries/win98-games-a-d/Die by the sword demo-SW+Glide/: dbts_demo.exe (v. Feb 16 1998), the Rlapi.dll render-library front end (static import, which imports SIMFORCE.dll), the Glide back end rl3dfx.dll, and data/*.atd archives plus moves/. No installer. Registry id die_by_the_sword_demo (localhost-only; dlls = rlapi + SIMFORCE), manifest written by tools/gen-win98-games-a-d-manifests.js (28 companions, subdirectories kept).

Imports KERNEL32, USER32, GDI32, ADVAPI32, ole32, WINMM, AVIFIL32, MSVFW32, Rlapi, DDRAW, DSOUND, DINPUT. No emulator change was needed to reach play.

Route (headless, default 200 ms/batch clock)

batch action / screen
~400 "Die By The Sword - 3D Hardware Detection" dialog: 3Dfx Voodoo / Do Not Use 3D Hardware
500 click (200,134): "Do Not Use 3D Hardware -- Use Software Rendering Only"
600 click (534,119): OK
~19900 main menu: Tutorial, Quest, Arena, Tournament, Options, Quit (Arena/Tournament greyed)
20000 keydown:40 (Down) to Quest, 20400 keydown:13 (Enter): Loading screen
~60000 Quest level 1: textured wooden hut, Enric seen from behind
62000-74000 di-keydown:87 + keydown:87 (W held): Enric walks to the barred gate

Evidence: scratch/runs/20261006T040000Z-die-by-the-sword-demo-quest-walk/.

Input

Captures

Glide (the dialog's default)

"3Dfx Voodoo" is the selected entry, so a plain OK (what a user does) loads rl3dfx.dll, which imports glide2x.dll. In the browser that made the logos and menu black (DBTS-WEB-BLACK-20261006). It looked like a Threads or lazy-file bug and was neither: every 2D screen is written through the LFB, and rl3dfx+0x10001ff4 calls grLfbLock(WRITE_ONLY, BACKBUFFER, 565, upper-left, FXFALSE, &info) with info.size never written (a stale .wav from its stack). The handler rejected size != 20, rl3dfx gives up after ten failed locks (cmp edi, 0xa), and nothing reached the screen. Retail glide2x only checks size with the debug-only GR_CHECK_F, so the handler no longer checks it.

Open / not evaluated