forked from Ports/goldeneye-pc-port
6229d20a6dc1fdaf5cc2ed7bbccd78c4e590d3ba
g_GfxSizesByPlayerCount / -mgfx is a BYTE budget sized for N64 8-byte Gfx slots. On x86-64 a Gfx is 16 bytes, so the master display list needs 2x the bytes for the same command count. Every render fn appends with a bare 'gdl++' and no bounds check, so once BUNKER1 emits real room geometry the list overruns g_GfxBuffers[1]/[2], runs off the stage mempool, and faults writing a GBI command at the end of the 8 MB emulated DRAM (0x70800000) -- non-deterministically, and corrupting room GDL blobs on the way (the 'unknown GBI opcode' / seg-9 0x90000000 faults were downstream of this). Scale the gfx allocation by sizeof(Gfx)/8 under #ifdef PORT. Vtx/Mtx are 16/64 bytes on both targets so g_VtxBuffers is unchanged. Verified: -level_09 runs 90 s+ (5000+ VI posts) with no crash where it previously faulted within seconds. (Separate open issue: the kernel heartbeat reports frames=0 -- render-loop completion needs a look.)
Goldeneye 007
About this repository
This is a WIP decompilation of Goldeneye 007!
It builds the following ROMs:
- ge007.u.z64
sha1: abe01e4aeb033b6c0836819f549c791b26cfde83 - ge007.j.z64
sha1: 2a5dade32f7fad6c73c659d2026994632c1b3174 - ge007.e.z64
sha1: 167c3c433dec1f1eb921736f7d53fac8cb45ee31
Note: This repository does not include all assets necessary for compiling the ROMs. A prior copy of the game is required to extract the assets.
Documentation
- Setup Guide: useful information about installing the necessary dependencies and how to use it
- Structure Guide: learn more about the project structure of this repository
- Style Guide: code style conventions if you want to contribute code
Languages
C
92.9%
C++
2.8%
Python
1.8%
Assembly
1.2%
HTML
0.4%
Other
0.7%