mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-24 00:02:45 +02:00
romdataFixupFont re-lays out the N64 24B fontchar array into the PC 32B array in place; for glyphs 0/1/2 dst overlaps src by less than the 24B read span, so a forward field write clobbered a later field's source mid-loop (glyph 1 width = bswap(index), glyph 2 pixeldata -> wild ptr). Facility's level title 'Chemical Warfare Facility #2' rendered '#' with the wild pixeldata -> gDPLoadTextureBlock -> fast3d AV in import_texture_i8. Fix: stage all six N64 fields in a local f[6] before writing any. Not the model-GDL relocation the D124-Facility addendum suspected (disproved; D124 entry + BRIEF-C2gdl-model-reloc premise corrected). Verified: -level_34 0/~14 runs, -level_35 0/4 (was ~3/4); -level_09/20/24 unregressed. Sweep 18 -> 20/21 PASS; only Jungle C2m (gfx_sp_matrix explosion-DL G_MTX) remains. Docs: D130 in PCPortResearch §F/§H, LEVEL-STATUS 20/21, HANDOFF M-18, PORT-LEARNINGS §A (in-place relayout aliasing + negative glyph index).