At a glance

Field state + pad schedule --pad 0-180:UP Retail: PCSX-Redux probe player, camera, staging, ease: a row a vsync Engine: corpus seed the same columns, a row a tick Pair by pass each retail pass with the last engine row on the same spot
The engine side seeds as the corpus does, stands the camera on the state's pose, and raises what both play hosts raise: the compass bias, the edge wall probes, terrain follow, solid and living NPCs.
scripts/ci/walk-film.py kor_field_route_walk --pad 0-180:UP --frames 200 --run
scripts/ci/walk-film.py kor3_field_route_walk --pad 0-120:UP --no-retail   # engine side only

--run sets the Field Move option to Run. Read it off the retail side's step - a run step is 24 at frame step 2, a walk step 16 - since the seed has no host to mirror the option from.

Reading it

  • Pairing. A retail pass is a row where the player or the camera changed. The engine walks one vsync at a time and eases on the pass grid, so each retail pass pairs with the last engine row on the same spot, and the summary counts the camera fields that differ. A low pairing count means the two walked different paths: read that first.
  • The pose. Both sides write the player's clip, its cursor and its rate. Retail's cursor steps once a pass, the engine's once a vsync at half the step, so the two meet on every second row.
  • The first pass differs by construction. A state saved mid-walk has one more pass of the old pad queued.
  • Placements. The placement report keys on the flat MAN index. A wanderer's heading and seat are rand() history, so one that parts from retail after a few dozen vsyncs is not a finding by itself; a placement off retail from the first row is.

What it has settled

  • The follow camera's ease runs once a game pass, not once a vsync (encounter and camera); a player a script carries reads as still, and the camera focus trails a pass.
  • The d-pad remap reads the scene's authored octant, not the live camera angle.
  • kor3's placements hold retail's headings for a whole film, with no spin.
  • A player a script carries up a stair glides onto each step as retail's does, 24 units a pass, instead of landing on it at once; on tower_field_walk that brought the camera's pitch and eye height onto retail's for nearly every pass.
  • A placement at geremi_field_door_hop that looked mis-faced is not: the scene's system script turns it every pass onto the bearing of a wanderer, so its heading is that wanderer's rand() history one pass late, on both sides.
  • An ambient script's turns run at retail's rate and differ only in phase: two placements repeat retail's ramps a fixed number of vsyncs early, the wait their scripts were inside at the capture.
  • kor_field_route_walk's displayed frame is its pass-two-back pose exactly, filmed over the passes before the save by autorun_walk_route.lua with LEGAIA_FILM_SCENE.
  • Town placements hold retail's headings and seats for a 300-vsync film in garmel, vozz and retona; town01_field_card_boot's seven that part are wanderers, each first off after 40 vsyncs or more.
  • A held walk's clip runs at retail's rate: kor_field_route_walk steps 16 a pass through the same ten frames on both sides.

See also