From 287695fd3b6b9a1beeda0cfc80fe15260ab29d93 Mon Sep 17 00:00:00 2001 From: Cyd Date: Mon, 27 Jul 2026 12:34:37 -0500 Subject: [PATCH] BT410 5.3.35: the MFD strip art belongs in the middle of the quadrant image_names[auxScreenPlacement] (qblh0..qblh6) is the mech diagram with THIS subsystem's segment lit, and SubsystemCluster drew it at the panel origin. Shipped puts it in the quadrant's middle. Solved from the framebuffer rather than guessed: our extra pixels clustered at panel x 0..70 against shipped's missing at x 140..230, and a cross-correlation of the two sets peaked at dx=+144 dy=-54 independently on all three panels of the head. +144 is 0x90 exactly; y is bottom-up in this space, so up the screen is +0x36. head missing extra Mfd1 4908 -> 1331 3960 -> 1776 Mfd2 6870 -> 1908 5280 -> 2196 Mfd3 3091 -> 730 2565 -> 1119 ~10.9K missing and ~6.7K extra pixels recovered. The whole cockpit is now 96.4% pixel-identical / 95% coverage against the shipped binary, from 89.7%/92% at the start of the session -- and the MFD weapon panels are visually indistinguishable apart from the state box, which still reads OFF where shipped shows a digit. Co-Authored-By: Claude Fable 5 --- restoration/source410/BT_L4/BTL4GAU2.CPP | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/restoration/source410/BT_L4/BTL4GAU2.CPP b/restoration/source410/BT_L4/BTL4GAU2.CPP index 0d1fcbc1..0a40aadb 100644 --- a/restoration/source410/BT_L4/BTL4GAU2.CPP +++ b/restoration/source410/BT_L4/BTL4GAU2.CPP @@ -1933,9 +1933,19 @@ SubsystemCluster::SubsystemCluster( if (placement >= 0 && placement < 8 && image_names != NULL && image_names[placement] != NULL) { + // + // PLACEMENT (A/B rig, 5.3.35): the strip is the mech diagram + // with THIS subsystem's segment lit, and it belongs in the + // middle of the quadrant, not at its origin. Solved from the + // shipped framebuffer: our extra pixels clustered at panel x + // 0..70 against shipped's missing at x 140..230, and the + // cross-correlation peaked at dx=+144 dy=-54 on all three + // panels independently. y is bottom-up in this space, so up + // the screen is +54. + // background = new BackgroundBitmap( mfd_mode, renderer_in, owner_ID, mfd_port, - x, y, image_names[placement], + x + 0x90, y + 0x36, image_names[placement], 1, // opaque 0xff, 0 // fg / bg );