Evolva (demo)

Computer Artworks / Interplay, 2000, Direct3D 7 squad action (four "Genohunters", third person). Candidate evolva-demo, app evolva_demo, local only.

Source and layout

Emulator bugs it found (all fixed)

  1. CoCreateInstance(CLSID_DirectInput) was unknown, and IDirectInput::Initialize popped 20 bytes for its 3 arguments. That corrupted the caller's EBX/ESI/EDI, so the next CreateDevice got a NULL out pointer. Fixed in c9b5904a4.
  2. D3D7 EnumDevices left D3DDEVICEDESC7.deviceGUID zero, so the game threw "D3DMgr: Could not set up preferred device". Fixed in f44edf4e7.
  3. SearchPathA treated a semicolon-separated lpPath as one directory. No texture, font, sound or movie was found, and every frame was white.
  4. Vertices without a specular colour got specular 0. That covers D3D-lit D3DVERTEX, and LVERTEX/TLVERTEX FVFs without D3DFVF_SPECULAR. The specular alpha is the vertex fog factor, so with FOGENABLE on (Evolva sets no fog mode) the whole 3D world drew as the fog colour, 0xff788c78. They now get 0xFF000000 (black, no fog).

Route (headless, --batch-size=100000)

The game cursor is DirectInput relative motion. Absolute clicks don't move it; use relmousemove. The cursor starts at the screen centre.

Not checked

Movement and fire in the mission (only reaching it), the browser and touch layout in a running mission (the load is long), audio, the 4XM FMVs (the Intro FMV option is off), multiplayer.