LocalDentIV 1.2.2 local regression checks

render exit=0
PASS: concurrent worker lock does not omit bend or leak D3D state
PASS: same-frame exact render anchor prevents pass disagreement; 1cm offset, 35ms age and next frame rejected
PASS: current runtime chassis matches render origin; ahead-of-physics 50cm motion accepted; off-path/over-limit draws rejected
PASS: moving draw stays bent with 50 cm render lag; nearby path, stale history, fragment change, teleport rejected
PASS: real Vincent collections: 20 geometries, 7 panel draws; cleared CPU data accepted; ambiguous signatures rejected
PASS: two identical cars draw independent damage, preserve D3D state, reset independently; stale NPC fragment cannot inherit damage
PASS: draw isolation, shader/constants restoration, collision sectors, deduplication, owner guard

collision exit=0
PASS: 100 light contacts cause no bend; grazing/vertical pushes rejected; 100 contacts in one burst contribute 90mm; stronger record adds only difference; separate impact adds again
PASS: boot gain 50 percent over base; strong burst 180mm; duplicates coalesced; weaker separate hit 135mm; boot cap 330mm
PASS: signed contact side maps to mirrored shape center; duplicate contacts do not jitter; radius changes width
PASS: executable x86 trampoline, thiscall/fastcall stack ABI, original calls preserved, peer thread resumed, exact-byte guard, immediate record capture, queue reset/replacement, side/invalid/owner/other vehicle rejection

shader exit=0
PASS: bonnet amplitude +15 percent keeps crest vertex, straight-slope ratio, hinge/tip and other bone unchanged
PASS: bonnet and boot centered creases are equal across left/center/right, bonnet has straight slopes, boot quarter-point height narrowed with unchanged crest and endpoints; asymmetric cross-section is planar
PASS: Sentinel boot uses straight fold slopes across the full width; quarter point is half crest height, hinge/tip/crest preserved
PASS: actual GPU vertex execution mirrors lateral asymmetry and moves longitudinal crest with variation
PASS: bend executes after IF/ELSE native position adjustment, both branches preserve native displacement
PASS: Direct3D executes bend: midpoint +25cm, quarter point +12.5cm (straight bonnet slopes), hinge/tip/other bone/outside unchanged
PASS: GPU executes all four weighted panel influences; mixed weights scale bend, other bones unchanged, native damage retained
PASS: 4096 deterministic malformed/truncated shader inputs preserve input and output bounds
PASS: patched shader accepted by D3D9; unknown weighted layouts and truncated shaders rejected; known weighted shadow triplets supported

models exit=0
PASS: real Futo painted/alternate/inner bonnet palettes agree at both LODs; cyclic child ownership cannot bend the painted skin
PASS: real Futo painted/alternate/inner bonnet palettes agree at both LODs; cyclic child ownership cannot bend the painted skin
PASS: 128 real stock assets; 36 single-panel profiles; 1666 unique eligible draws; runtime names/tags/pivots/bindings and hash rejection validated; transient metadata retained, invalid fragment clears target

fleet exit=0
PASS: world contact projects to opposite lateral offsets on differently rotated cars, even when normalized record X is zero; invalid transform rejected
PASS: actual NPC collision hook discovers two validated stock assets, captures first impact independently, preserves player original calls and damage across car switches; despawn removes only its own state

retention exit=0
PASS: exact guarded CE callsites execute fastcall/thiscall wrappers with correct original ABI; native latch/unlatch/detach arguments preserved
PASS: relocated operand mismatch rejection and 420mm bonnet latch budget; one severe hit stays latched; severe wind-detach bypass, 1500ms continuous wind delay, interruption restart, explicit opening/other panels/detached/stale instance bypass

perf exit=0
BENCH medianMs=0.388 draws=200000 passes=5 streamCalls=0 worldConstantCalls=0
PASS: unrelated draws call original exactly once with no D3D queries; every inserted signature accepted; capacity exhaustion fails open

logging exit=0
PASS: small log preserved, 4MiB rotation restarts and accepts further diagnostics; failed reopen/null log safely disable only logging

bumpers exit=0
binding vincent side 0 stage 1
binding vincent side 1 stage 1
PASS: user-log front impact strengths qualify after two bursts; moderate .36 impacts need three bursts; light .20 rejected; one extreme impact still cannot detach.
PASS: light/side/invalid impacts rejected; sustained scrape peak counted once; independent ends; clock wrap; all five guarded impact call sites; original writer ABI chained; changed-record capture; two separated impacts + settling delay detach exactly once; NPC fast path.
binding admiral side 0 stage 1
binding admiral side 1 stage 1
binding ambulance side 0 stage 1
binding ambulance side 1 stage 1
binding banshee side 0 stage 1
binding banshee side 1 stage 1
binding benson side 0 stage 1
binding biff side 0 stage 1
binding blista side 0 stage 1
binding blista side 1 stage 1
binding bobcat side 0 stage 1
binding bobcat side 1 stage 1
binding boxville side 0 stage 1
binding boxville side 1 stage 1
binding buccaneer side 0 stage 1
binding buccaneer side 1 stage 1
binding burrito side 0 stage 1
binding burrito side 1 stage 1
binding burrito2 side 0 stage 1
binding burrito2 side 1 stage 1
binding bus side 0 stage 1
binding bus side 1 stage 1
binding cabby side 0 stage 1
binding cabby side 1 stage 1
binding cavalcade side 0 stage 1
binding cavalcade side 1 stage 1
binding chavos side 0 stage 1
binding chavos side 1 stage 1
binding cognoscenti side 0 stage 1
binding cognoscenti side 1 stage 1
binding comet side 0 stage 1
binding comet side 1 stage 1
binding df8 side 0 stage 1
binding df8 side 1 stage 1
binding dilettante side 0 stage 1
binding dilettante side 1 stage 1
binding dukes side 0 stage 1
binding dukes side 1 stage 1
binding e109 side 0 stage 1
binding e109 side 1 stage 1
binding emperor side 0 stage 1
binding emperor side 1 stage 1
binding emperor2 side 0 stage 1
binding emperor2 side 1 stage 1
binding esperanto side 0 stage 1
binding esperanto side 1 stage 1
binding faction side 0 stage 1
binding faction side 1 stage 1
binding fbi side 0 stage 1
binding fbi side 1 stage 1
binding feltzer side 0 stage 1
binding feltzer side 1 stage 1
binding feroci side 0 stage 1
binding feroci side 1 stage 1
binding feroci2 side 0 stage 1
binding feroci2 side 1 stage 1
binding firetruk side 0 stage 1
binding firetruk side 1 stage 1
binding flatbed side 0 stage 1
binding flatbed side 1 stage 1
binding fortune side 0 stage 1
binding fortune side 1 stage 1
binding futo side 0 stage 1
binding futo side 1 stage 1
binding fxt side 0 stage 1
binding fxt side 1 stage 1
binding habanero side 0 stage 1
binding habanero side 1 stage 1
binding hakumai side 0 stage 1
binding hakumai side 1 stage 1
binding huntley side 0 stage 1
binding huntley side 1 stage 1
binding ingot side 0 stage 1
binding ingot side 1 stage 1
binding intruder side 0 stage 1
binding intruder side 1 stage 1
binding landstalker side 0 stage 1
binding landstalker side 1 stage 1
binding lokus side 0 stage 1
binding lokus side 1 stage 1
binding manana side 0 stage 1
binding manana side 1 stage 1
binding marbella side 0 stage 1
binding marbella side 1 stage 1
binding merit side 0 stage 1
binding merit side 1 stage 1
binding minivan side 0 stage 1
binding minivan side 1 stage 1
binding moonbeam side 0 stage 1
binding moonbeam side 1 stage 1
binding mrtasty side 0 stage 1
binding mrtasty side 1 stage 1
binding mule side 0 stage 1
binding noose side 0 stage 1
binding noose side 1 stage 1
binding nstockade side 0 stage 1
binding oracle side 0 stage 1
binding oracle side 1 stage 1
binding packer side 0 stage 1
binding packer side 1 stage 1
binding patriot side 0 stage 1
binding patriot side 1 stage 1
binding perennial side 0 stage 1
binding perennial side 1 stage 1
binding perennial2 side 0 stage 1
binding perennial2 side 1 stage 1
binding peyote side 0 stage 1
binding phantom side 0 stage 1
binding phantom side 1 stage 1
binding pinnacle side 0 stage 1
binding pinnacle side 1 stage 1
binding pmp600 side 0 stage 1
binding pmp600 side 1 stage 1
binding police side 0 stage 1
binding police side 1 stage 1
binding police2 side 0 stage 1
binding police2 side 1 stage 1
binding polpatriot side 0 stage 1
binding polpatriot side 1 stage 1
binding pony side 0 stage 1
binding pony side 1 stage 1
binding premier side 0 stage 1
binding premier side 1 stage 1
binding pres side 0 stage 1
binding pres side 1 stage 1
binding primo side 0 stage 1
binding primo side 1 stage 1
binding pstockade side 0 stage 1
binding rancher side 0 stage 1
binding rancher side 1 stage 1
binding rebla side 0 stage 1
binding rebla side 1 stage 1
binding rom side 0 stage 1
binding rom side 1 stage 1
binding romero side 0 stage 1
binding romero side 1 stage 1
binding ruiner side 0 stage 1
binding ruiner side 1 stage 1
binding sabre side 0 stage 1
binding sabre side 1 stage 1
binding sabre2 side 0 stage 1
binding sabre2 side 1 stage 1
binding sabregt side 0 stage 1
binding sabregt side 1 stage 1
binding schafter side 0 stage 1
binding schafter side 1 stage 1
binding sentinel side 0 stage 1
binding sentinel side 1 stage 1
binding solair side 0 stage 1
binding solair side 1 stage 1
binding speedo side 0 stage 1
binding speedo side 1 stage 1
binding stalion side 0 stage 1
binding steed side 0 stage 1
binding steed side 1 stage 1
binding stockade side 0 stage 1
binding stratum side 0 stage 1
binding stratum side 1 stage 1
binding stretch side 0 stage 1
binding stretch side 1 stage 1
binding sultan side 0 stage 1
binding sultan side 1 stage 1
binding sultanrs side 0 stage 1
binding sultanrs side 1 stage 1
binding supergt side 0 stage 1
binding supergt side 1 stage 1
binding taxi side 0 stage 1
binding taxi side 1 stage 1
binding taxi2 side 0 stage 1
binding taxi2 side 1 stage 1
binding trash side 0 stage 1
binding turismo side 0 stage 1
binding turismo side 1 stage 1
binding uranus side 0 stage 1
binding uranus side 1 stage 1
binding vigero side 0 stage 1
binding vigero side 1 stage 1
binding vigero2 side 0 stage 1
binding vigero2 side 1 stage 1
binding virgo side 0 stage 1
binding virgo side 1 stage 1
binding voodoo side 0 stage 1
binding voodoo side 1 stage 1
binding washington side 0 stage 1
binding washington side 1 stage 1
binding willard side 0 stage 1
binding willard side 1 stage 1
binding yankee side 0 stage 1
PASS: exact native setter/predicate/cleanup code executed with reference callbacks; parent contact ignored while present; unrelated object contact unaffected; rule and reference cleared when matching contact ceases; original collision flag retained; invalid owner/body/type and occupied pair rejected; missing signature fails closed.
PASS: 190 bumper bindings from 100 real relocated stock resources; 10 absent ends reject without native calls; child/group distinction; owner/hash/private metadata rejection; one-shot native thiscall ABI; wrong vehicle and expiry; executable door trampoline and three original arguments; signature mismatch rejection.

integration exit=0
binding vincent side 0 stage 1
binding vincent side 1 stage 1
PASS: user-log front impact strengths qualify after two bursts; moderate .36 impacts need three bursts; light .20 rejected; one extreme impact still cannot detach.
PASS: combined bumper callsites -> panel entry hook -> original writer; both features receive impact once; light/side/invalid impacts rejected; sustained scrape peak counted once; independent ends; clock wrap; all five guarded impact call sites; original writer ABI chained; changed-record capture; two separated impacts + settling delay detach exactly once; NPC fast path.
binding admiral side 0 stage 1
binding admiral side 1 stage 1
binding ambulance side 0 stage 1
binding ambulance side 1 stage 1
binding banshee side 0 stage 1
binding banshee side 1 stage 1
binding benson side 0 stage 1
binding biff side 0 stage 1
binding blista side 0 stage 1
binding blista side 1 stage 1
binding bobcat side 0 stage 1
binding bobcat side 1 stage 1
binding boxville side 0 stage 1
binding boxville side 1 stage 1
binding buccaneer side 0 stage 1
binding buccaneer side 1 stage 1
binding burrito side 0 stage 1
binding burrito side 1 stage 1
binding burrito2 side 0 stage 1
binding burrito2 side 1 stage 1
binding bus side 0 stage 1
binding bus side 1 stage 1
binding cabby side 0 stage 1
binding cabby side 1 stage 1
binding cavalcade side 0 stage 1
binding cavalcade side 1 stage 1
binding chavos side 0 stage 1
binding chavos side 1 stage 1
binding cognoscenti side 0 stage 1
binding cognoscenti side 1 stage 1
binding comet side 0 stage 1
binding comet side 1 stage 1
binding df8 side 0 stage 1
binding df8 side 1 stage 1
binding dilettante side 0 stage 1
binding dilettante side 1 stage 1
binding dukes side 0 stage 1
binding dukes side 1 stage 1
binding e109 side 0 stage 1
binding e109 side 1 stage 1
binding emperor side 0 stage 1
binding emperor side 1 stage 1
binding emperor2 side 0 stage 1
binding emperor2 side 1 stage 1
binding esperanto side 0 stage 1
binding esperanto side 1 stage 1
binding faction side 0 stage 1
binding faction side 1 stage 1
binding fbi side 0 stage 1
binding fbi side 1 stage 1
binding feltzer side 0 stage 1
binding feltzer side 1 stage 1
binding feroci side 0 stage 1
binding feroci side 1 stage 1
binding feroci2 side 0 stage 1
binding feroci2 side 1 stage 1
binding firetruk side 0 stage 1
binding firetruk side 1 stage 1
binding flatbed side 0 stage 1
binding flatbed side 1 stage 1
binding fortune side 0 stage 1
binding fortune side 1 stage 1
binding futo side 0 stage 1
binding futo side 1 stage 1
binding fxt side 0 stage 1
binding fxt side 1 stage 1
binding habanero side 0 stage 1
binding habanero side 1 stage 1
binding hakumai side 0 stage 1
binding hakumai side 1 stage 1
binding huntley side 0 stage 1
binding huntley side 1 stage 1
binding ingot side 0 stage 1
binding ingot side 1 stage 1
binding intruder side 0 stage 1
binding intruder side 1 stage 1
binding landstalker side 0 stage 1
binding landstalker side 1 stage 1
binding lokus side 0 stage 1
binding lokus side 1 stage 1
binding manana side 0 stage 1
binding manana side 1 stage 1
binding marbella side 0 stage 1
binding marbella side 1 stage 1
binding merit side 0 stage 1
binding merit side 1 stage 1
binding minivan side 0 stage 1
binding minivan side 1 stage 1
binding moonbeam side 0 stage 1
binding moonbeam side 1 stage 1
binding mrtasty side 0 stage 1
binding mrtasty side 1 stage 1
binding mule side 0 stage 1
binding noose side 0 stage 1
binding noose side 1 stage 1
binding nstockade side 0 stage 1
binding oracle side 0 stage 1
binding oracle side 1 stage 1
binding packer side 0 stage 1
binding packer side 1 stage 1
binding patriot side 0 stage 1
binding patriot side 1 stage 1
binding perennial side 0 stage 1
binding perennial side 1 stage 1
binding perennial2 side 0 stage 1
binding perennial2 side 1 stage 1
binding peyote side 0 stage 1
binding phantom side 0 stage 1
binding phantom side 1 stage 1
binding pinnacle side 0 stage 1
binding pinnacle side 1 stage 1
binding pmp600 side 0 stage 1
binding pmp600 side 1 stage 1
binding police side 0 stage 1
binding police side 1 stage 1
binding police2 side 0 stage 1
binding police2 side 1 stage 1
binding polpatriot side 0 stage 1
binding polpatriot side 1 stage 1
binding pony side 0 stage 1
binding pony side 1 stage 1
binding premier side 0 stage 1
binding premier side 1 stage 1
binding pres side 0 stage 1
binding pres side 1 stage 1
binding primo side 0 stage 1
binding primo side 1 stage 1
binding pstockade side 0 stage 1
binding rancher side 0 stage 1
binding rancher side 1 stage 1
binding rebla side 0 stage 1
binding rebla side 1 stage 1
binding rom side 0 stage 1
binding rom side 1 stage 1
binding romero side 0 stage 1
binding romero side 1 stage 1
binding ruiner side 0 stage 1
binding ruiner side 1 stage 1
binding sabre side 0 stage 1
binding sabre side 1 stage 1
binding sabre2 side 0 stage 1
binding sabre2 side 1 stage 1
binding sabregt side 0 stage 1
binding sabregt side 1 stage 1
binding schafter side 0 stage 1
binding schafter side 1 stage 1
binding sentinel side 0 stage 1
binding sentinel side 1 stage 1
binding solair side 0 stage 1
binding solair side 1 stage 1
binding speedo side 0 stage 1
binding speedo side 1 stage 1
binding stalion side 0 stage 1
binding steed side 0 stage 1
binding steed side 1 stage 1
binding stockade side 0 stage 1
binding stratum side 0 stage 1
binding stratum side 1 stage 1
binding stretch side 0 stage 1
binding stretch side 1 stage 1
binding sultan side 0 stage 1
binding sultan side 1 stage 1
binding sultanrs side 0 stage 1
binding sultanrs side 1 stage 1
binding supergt side 0 stage 1
binding supergt side 1 stage 1
binding taxi side 0 stage 1
binding taxi side 1 stage 1
binding taxi2 side 0 stage 1
binding taxi2 side 1 stage 1
binding trash side 0 stage 1
binding turismo side 0 stage 1
binding turismo side 1 stage 1
binding uranus side 0 stage 1
binding uranus side 1 stage 1
binding vigero side 0 stage 1
binding vigero side 1 stage 1
binding vigero2 side 0 stage 1
binding vigero2 side 1 stage 1
binding virgo side 0 stage 1
binding virgo side 1 stage 1
binding voodoo side 0 stage 1
binding voodoo side 1 stage 1
binding washington side 0 stage 1
binding washington side 1 stage 1
binding willard side 0 stage 1
binding willard side 1 stage 1
binding yankee side 0 stage 1
PASS: exact native setter/predicate/cleanup code executed with reference callbacks; parent contact ignored while present; unrelated object contact unaffected; rule and reference cleared when matching contact ceases; original collision flag retained; invalid owner/body/type and occupied pair rejected; missing signature fails closed.
PASS: 190 bumper bindings from 100 real relocated stock resources; 10 absent ends reject without native calls; child/group distinction; owner/hash/private metadata rejection; one-shot native thiscall ABI; wrong vehicle and expiry; executable door trampoline and three original arguments; signature mismatch rejection.

asiload exit=0
PASS: x86 DLL loads, exports resolve, foreign host rejected, repeat init and unload succeed.

version exit=0
Executable version: 1.2.0.59
PASS: CE executable version validated; SHA256 gate disabled; runtime code and model guards remain enabled.
FAIL: Cannot read GTAIV.exe version.
Executable version: 1.2.0.58
FAIL: This diagnostic targets GTA IV 1.2.0.59 only.
PASS: actual CE executable with changed bytes/hash passes; absent version and edited 1.2.0.58 version reject; installed game untouched.

Integration is tested in an executable x86 fixture; the combined ASI still requires an in-game test.
