The field walk film: one walk, both sides, pass by pass
The retail comparison corpus scores one frame per state, so it cannot see how a walk unfolds: how fast the follow camera closes, which way the pad turns the player, what a script carrying the player does to the camera's ease. The walk film holds one pad schedule on one retail field state on both sides and compares them pass by pass. It reports and asserts nothing; its output reads retail RAM, so it stays under captures/.
At a glance
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_walkthat brought the camera's pitch and eye height onto retail's for nearly every pass. - A placement at
geremi_field_door_hopthat 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'srand()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 byautorun_walk_route.luawithLEGAIA_FILM_SCENE.- Town placements hold retail's headings and seats for a 300-vsync film in
garmel,vozzandretona;town01_field_card_boot's seven that part are wanderers, each first off after40vsyncs or more. - A held walk's clip runs at retail's rate:
kor_field_route_walksteps16a pass through the same ten frames on both sides.