D168: fix vertically-flipped GE_PCDUMP captures; close D114/D116

gfx_opengl_dump_bound_fbo wrote glReadPixels output (GL bottom-left
origin) straight into a top-row-first P6 PPM, so every GE_PCDUMP / F12
capture was upside-down. This is the entire source of the D114/D116
"HUD/text X-mirror" - four sessions chasing a fast3d mirror that never
existed, misreading inverted screenshots of asymmetric content. The
developer confirms the game renders correctly on real hardware.

- writer now emits rows top-to-bottom
- tools_pc/golden/*.png flipped in place to match + golden/README.md
- D114/D116 reclassified as capture-orientation artifacts (not deleted);
  D75 "logo mispositioned" / RC1 "photo 180 deg" flagged for re-judging
- annotations in findings.md, GRAPHICS-BACKLOG.md,
  TEXTURE-GLITCH-ANALYSIS.md, porting-notes.md D2, GE-ENV-PROBES.md

Not runtime-verified (migrated tree has no ROM/toolchain) - needs a
fresh capture to confirm text reads normally.

Claude-Session: https://claude.ai/code/session_01UpTM1AcBRJuTetoZNcCD5V
This commit is contained in:
James Dansereau committed 2026-09-01 19:44:39 -04:00
1 parent 81f02c7d3a
commit 203549f57e
10 files changed
+84 -22

No files matched your search

+19
View File
@@ -0,0 +1,19 @@
# Golden baseline frames
`frame_NNNNNN.png` — reference `GE_PCDUMP` captures for `framediff.py`
(`-level_09` BUNKER1 intro pan). Compared structurally, not exactly — the port
is not frame-deterministic (see `docs/internals.md` "D117").
## D168 re-orientation (2026-09-01)
The `GE_PCDUMP` PPM writer (`port/fast3d/gfx_opengl.cpp
gfx_opengl_dump_bound_fbo`) used to emit `glReadPixels` rows unreversed, so
every capture — and therefore these goldens — was **vertically flipped**. The
writer now emits rows top-to-bottom. The PNGs in this directory were flipped
vertically in place to match; content is otherwise unchanged. Regenerate them
properly from a fresh run when convenient:
```sh
GE_PCDUMP="200-440:120" ./build-pc/ge007.x86_64.exe -level_09
python tools_pc/framediff.py ppm --update
```
Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

After

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 203 KiB

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

After

Width:  |  Height:  |  Size: 200 KiB