mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-23 15:52:42 +02:00
D245: water tiled at the wrong size + s16 sky/water vertices; D242 closed
The IsWater 32x32 CI8 image (drawn through an RGBA16 tile, D229) was imported with its mip chain as 32x43 and normalised as 16 wide, so the pattern ran at 2x and wrapped every 43 rows instead of the N64's 32: fold steps made it jump. Import the base level only and use CI8 geometry in the tri path. Sky/water fans now go through a port-only G_FLOATVTX_EXT (float clip positions + S/T) instead of s16 Vtx, removing the tc shift and wScale quantisation jitter. User-verified vs 1964; golden 3/3; Win + Linux build. A/B: GE_D245_OLDVTX / GE_D245_OLDTEX.
This commit is contained in:
1 parent
d5f41d6a37
commit
f242992360
7 files changed
+172
-5
No files matched your search
@@ -610,6 +610,9 @@ through a converter or a runtime bswap fixup reads scrambled.
|
||||
Headless `-level_XX` boots hide this class (the first stage is the level
|
||||
itself): repro through a real boot → title → level sequence.
|
||||
|
||||
- **A texture re-declared in another format must be normalised with the geometry it was IMPORTED with (D245).** GE's sky water loads a CI8 image and draws it through an RGBA16 tile; fast3d imports it as CI8 (D229) but its triangle path computed the UV divisor from the RGBA16 tile (half the width) and the whole mip-chain height (43 rows, not the 32-row mask period). Anything that changes the importer's format/extent must change the tri-path `tex_width/tex_height` with it, and wrap must equal the N64 mask period.
|
||||
- **CPU-built RDP triangles need float vertices, not `Vtx` (D245).** Where GE builds RDP edge/texture coefficients on the CPU (sky/water), 32-bit S/T and positions are normal; squeezing them through s16 `tc`/`ob` costs visible precision on horizon-scale geometry. Use `G_FLOATVTX_EXT` (`port/include/floatvtx.h`).
|
||||
|
||||
## D. N64 hardware idioms fast3d does not emulate
|
||||
|
||||
- **Appending a port-owned 2D overlay to the game frame: hook inside
|
||||
|
||||
Reference in new issue
Block a user