New findings not covered by TCRF's articles (full detail in local backlog/cut-content/RESEARCH.md): - The shipped game's M16 pickup text still reads 'an AR33 assault rifle' (LpropobjE PROPOBJ_STR_2A, propobj.c:10471); unused 'US AR33' strings and PROP_CHRM16 comments survive too. - Klobb rename scar verified: GUN_STR_6B is the only out-of-alphabetical-order weapon name in LgunE.c, exactly as TCRF's prerelease page describes. - cartrifle + wristdart: full pickup/prop resources, no ITEM_ enum, no weapon stats — cut weapons missing from TCRF's unused-items list (wrist dart = the AMMO_DARTS hardware; decomp comments it '(BETA)'). - All four Bonds mapped: CUFF_/BOND_ Connery/Dalton/Moore enums + the actor-switch code in bondview2.c with every branch flattened to Brosnan; no former-actor models exist in the ROM (80 C*Z chr models enumerated). - Cuba (LlenE.c) is the only orphan level with recoverable text: cut Natalya dialogue, title card, alternate credits cast. - Orphan-level geometry confirmed present in ROM (obseg.h segment decls); what's missing is mission setup, not geometry. - Music enum vs Notes-page GS index aligned slot-for-slot through 0x2C with four local mismatches past it (49/52/54/59) pending in-game audition.
21 KiB
CUT-CONTENT-BACKLOG — TCRF "cutting room floor" findings vs decomp/port
Research branch: research/cut-content-backlog. Source of truth: the local TCRF
export at scratchpad/backlog-scrape/restore-cut-content-mod/ (gitignored).
Superseded by the verified cross-reference. All six article bodies were recovered and every major claim was checked against the decomp source and asset tables. The full verified findings (with file:line references, corrections to TCRF, and updated mod tiers) live in
backlog/cut-content/RESEARCH.md(gitignored; article markdowns inbacklog/cut-content/articles/). This doc is the first pass (image-filename based) — read it for the per-item imagery index, but trust RESEARCH.md where they disagree. Key corrections: (1) "dest" is the shipped Frigate geometry, not an early version (bg.clevelinfotable);cryp/dishare shipped Egypt/Temple; (2) Library/Stack share Basement's bg file — they have geometry; (3) all 29 "unused items" exist in the ROM object table as pickup+prop pairs except heroine; (4) TCRF's 11 unused cheats, music track index, MP character table and build dates all verify 1:1 againstbondconstants.h/cheat.c/front.c/compiletime.c.Round 2 (decomp-only discoveries — not in TCRF's documentation):
- The shipped game still calls the M16 an "AR33" — pickup text
"an AR33 assault rifle."(LpropobjE.cPROPOBJ_STR_2A, used atpropobj.c:10471), plus unused strings"US AR33 Assault Rifle"/"US AR33"(LgunE.cGUN_STR_74/75) andPROP_CHRM16 /* AR33 Assault Rifle */comments. TCRF's prerelease page mentions the AR33 name in early footage but not that it survived into retail text.- Klobb rename trace verified: weapon-name strings in
LgunE.care alphabetical except GUN_STR_6B"Klobb"(between "Spy File" and "Staff List") — exactly the last-minute Skorpion→Klobb scar TCRF describes.- Two cut weapons TCRF's unused-items page doesn't list:
cartrifleandwristdart— full pickup+prop resources (GcartrifleZ,GwristdartZ,PchrwristdartZ /* (BETA) */) but noITEM_*entry and no WeaponStats, i.e. unusable as weapons. The wrist dart is the hardware behind TCRF'sAMMO_DARTS($0E).- All four Bonds, fully mapped:
CUFF_CONNERY/DALTON/MOORE+BOND_BROSNAN/CONNERY/DALTON/MOOREenums; the actor-switch code (bondview2.c:391-460) survives with every branch flattened to Brosnan; the save struct keeps the per-dossier actor field. No Connery/Moore/ Dalton models exist in the retail ROM (80C*Zchr models enumerated — none for the former actors); only enum slots + theSW_CONNERY/SW_DINNERswitches on the watch-arm model remain. TCRF's "four dossiers, four actors" was pre-release state.- Cuba is the one orphan level with recoverable content:
LlenE.cholds a cut Natalya dialogue exchange, the "C U B A N J U N G L E" title card, and a full alternate credits cast. The other 12 unused level text files are empty stubs.- Orphan-level geometry IS in the ROM:
assets/obseg/obseg.hdeclares all nine text-only orphans' bg segments (bg_sho_all_p_seg[]…) — a byte-matching decomp can't fabricate them. What's missing is mission setup (briefings exist only for the 21 solo levels), not geometry.- Moneypenny's two risqué Frigate-briefing lines are gone from the ROM (final
LdestE.ckeeps only the toned-down "thighs of steel" paragraph); recoverable only from TCRF's transcription. "Destroyer"→"Frigate" rename is complete; the Manticore yacht mission has zero ROM trace.- Music enum ↔ Notes-page GS index fully aligned: indices 0–48 match slot-for-slot; four local mismatches past 0x2C (49
M_CUBAvs "Ending theme", 52M_MPTHEME3vs "Surface 2 X", 54M_GUITARGLISSvs "MP Death (Alt)", 59M_SURFACE2Xvs "Surface 1 X") — in-gameDEB_MUSICaudition needed to resolve.
1. Findings
A. Debug menu & dev tools — fully in the ROM, fully compiled into the PC build
TCRF main page images: GEDebugMenu, GECheatOptions, GoldenEye-displayspeed,
GoldenEye-moveview, GoldenEye-LineMode, GoldenEye-testingmanpos,
GoldenEye-gunwatchpos.
All of these exist in decompiled code:
- Debug menu —
src/game/debugmenu_handler.c(1202 lines). Opened by holding U + D C-buttons (debug_menu_processor, ~line 451; wired intoboss.c:551and the main game loop). Full option list at lines 116–185:move view,stan view,bond view,level/region/scale(level switching),play title,bond die,select anim,gun pos,flash colour,hit colour,music,sfx,invincible,visible,collisions,all guns,max ammo,display speed,background,props,stan hit/stan region/stan problems,print man pos,port close/port inf/port approx,pr room loads,show mem use/show mem bars,grab rgb/grab jpeg/grab task(screenshots),rnd walk,record ramrom/replay ramrom/save ramrom/load ramrom(input recording/replay!),auto y aim,auto x aim,agent/all/fast(unlock flags),objectives,marg top/bot/left/right/reset,screen size,screen pos,show patrols,intro/intro edit/intro pos,world pos,gun key pos,vis cvg. - Free camera —
src/game/debug_camera.c(the "move view" option). - Load-all-models tool —
src/game/deb_loadallmodels.c(used byinitguards.c; dumps every model — how the TCRF screenshots of unused models were likely made). - Line mode —
CHEAT_LINEMODEinsrc/game/cheat.c:685(wireframe toggle, cheat-menu unlockable;front.c:1017). - Screenshot options (
grab rgb/grab jpeg) callindyGrabRgb32bit()/indyGrabJpg32bit()— N64 VI grabs; on PC these are the natural hook for the port's existing screenshot QoL (seefeat/qol-mute-screenshotlineage).
Status: Tier 0. Everything compiles into the PC build (CMakeLists.txt
GLOB_RECURSE src/game/*.c). The debug menu should already work in the PC port
if U+D C-buttons can be produced by port/src/input.c. Verify in-game (open
menu, toggle display speed, use free cam). Mod value: document it; consider a
config/keybind that synthesizes the U+D c-button hold, and mapping grab rgb
to the port's screenshot path.
B. Cut weapons — fully functional in the ROM, grantable via existing cheat codes
TCRF images (main + prerelease pages): GoldenEye-Taser[PR], GoldenEye-KF7[PR]
(+KF7Watch), GoldenEye-GrenadeLauncher[PR], GoldenEye-RocketLauncher[PR]
(+RocketLauncherWatch), GoldenEye-RifleLauncher (+RifleLauncherCheat),
GE64_Shotgun1, watch variants MagnumWatchPR, PP7WatchPR, KlobbWatchPR,
TaserWatch.
Evidence in code/assets:
- Model + stat files exist for every cut gun under
assets/obseg/gun/:taser/,rocketlaunch/,grenadelaunch/,fnp90/,spectre/,autoshot/,ak47/,m16/,skorpion/… each withgunWeaponStat.inc.c+ModelFileHeader.inc.c. assets/obseg/gun/gunWeaponStats.inc.c: completeWeaponStatsfortaser_stats(line ~365),rocketlaunch_stats(~305),grenadelaunch_stats(~295), pluswatchlaser_stats,tank_stats,bombcase_stats, etc. These are data-driven — the weapon engine (src/game/gun.c,gunfire.c) will run them.- First-person view cases exist:
src/game/bondview_r.c:38handlesITEM_GRENADELAUNCH,:41ITEM_ROCKETLAUNCH. - Cheat codes grant them:
src/game/cheat.c—CHEAT_2X_ROCKET_LAUNCHER(line 711),CHEAT_2X_GRENADE_LAUNCHER(712),CHEAT_2X_RCP90(713), plus unlock sequences (CHEAT_UNLOCK_2XGL/2XRL/2XFNP0, lines ~695–734) and the grant logic at lines 1277–1310:bondinvAddInvItem(ITEM_ROCKETLAUNCH)/give_cur_player_ammo(AMMO_ROCKETS, …)etc. Note the#if defined(BUGFIX_R1)guards — check which region macros the PC build defines (non-negotiable #3). - Taser SFX exist:
GUN_TASER_SFX/GUN_TASER_LOOP_SFX(src/bondconstants.h:2271). ITEM_TASERis in the item enum and used as an inventory bound inbondinv.c:854(JP-text-trigger branch) — the taser was closest to shipping.
Status: Tier 0/1. Rocket launcher, grenade launcher and FN P90 are
playable today via the game's own cheat codes (single-player). Taser/Spectre/
AutoShot have no cheat path but everything needed is in the binary; a
port-layer toggle calling the same bondinvAddInvItem +
give_cur_player_ammo pair the cheats use would be a clean mod (no game-logic
change — it replicates an existing code path). Watch-mounted variants
(KF7/Magnum/PP7/Taser watch) are not in the item enum — likely cut before
data landed; unverified whether any model exists beyond what TCRF shows.
C. "Unused items" page (intact imagery) — objects with full logic, never placed
The 20 intact images correspond exactly to ROM object entries
(assets/obseg/file_resource_table.inc.c, 781 entries):
| Image | Resource ID | Notes |
|---|---|---|
GE007-AudioTape |
AUDIOTAPE / CHRAUDIOTAPE (lines 125, 265) |
pickup + prop variants |
GE007-BombCase |
BOMBCASE (129) |
has full bombcase_stats (throwable explosive) |
GE007-Controller |
N64 controller model (joypad/ dir in gun table) |
desk prop |
GE007-WatchMagnetRepel |
ITEM_WATCHMAGNETREPEL (bondconstants.h:4190) |
watch function, use-logic present |
GEMicroCamera |
MICROCAMERA (176) + AMMO_MICRO_CAMERA |
|
GoldenEye-Weapon_Case |
ITEM_WEAPONCASE (gunfire.c:3066 use-case) |
|
GE007-PolarizedGlasses |
POLARIZEDGLASSES (185) + ITEM_POLARIZEDGLASSES |
darkglasses/ also present |
GoldenEye-Plans |
PLANS (183) |
blueprints/ variant too |
GoldenEye-Watch_Identifier |
WATCHIDENTIFIER (208) + ITEM_WATCHIDENTIFIER (gunfire.c:3076) |
4th watch function with use-anim, never spawned |
GoldenEye-Safecracker |
SAFECRACKERCASE (190) |
|
GoldenEye-Watch_Communicator / Watch_Geiger_Counter |
ITEM_WATCHCOMMUNICATOR / ITEM_WATCHGEIGERCOUNTER (bondconstants.h:4188-89) |
shown for contrast — these are used (Aztec) |
GEGasKeyring |
GASKEYRING (157) + ITEM_GASKEYRING |
All have GUN_ANIM_STATE_USE_ITEM handling in gunfire.c:3060-3084 — i.e. the
game can use them; level data just never places them.
Status: Tier 1/2. Granting any of these to Bond is a port-layer item-spawn (same mechanism as §B). Actually placing them in levels requires ROM/level-data editing (a level editor or hand-patched object tables) — Tier 2, out of scope for this repo but viable as a data mod.
D. Cut multiplayer maps — 8 commented-out menu entries with dev notes
src/game/front.c:556-573 multi_stage_setups[]: the shipped MP list is
Random/Temple/Complex/Caves/Library/Basement/Stack (default) + Facility/Bunker2/
Archives/Caverns/Egypt (progression-unlocked). Immediately below, commented
out with in-source dev annotations:
//{... LEVELID_CITADEL ...}, //Citadel (old format setup)
//{... LEVELID_FRIGATE ...}, //dest (has xbla setup)
//{... LEVELID_STATUE ...}, //stat (works)
//{... LEVELID_CRADLE ...}, //crad (works)
//{... LEVELID_AZTEC ...}, //azt (needs setup)
//{... LEVELID_RUNWAY ...}, //runway (xbla setup)
//{... LEVELID_DAM ...}, //dam (xbla setup)
//{... LEVELID_DEPOT ...}, //depot (xbla setup)
TCRF imagery matches: GECitadel* (5 screenshots, main page),
GEStatueMulti, GECradleMulti, the whole Depot image set (DepotCrateStack,
DepotRockets, DepotSafeTable, DepotSiloPipe[Ed], DepotTrailers,
DepotPhoto), and GoldenEye-FrigateMap.
The port already boots every one of these standalone (-level_XX; see
docs/dev/LEVEL-STATUS.md — Statue -level_22, Train -level_25, etc. all
PASS). So the geometry, AI setup and briefings
(assets/obseg/brief/UbriefdepoZ.c, UbrieftraZ.c, …) are intact; only the MP
menu entry was removed.
Status: Tier 3 (mod fork). Re-enabling = editing a game data table in
src/game/front.c — that's a game-logic change, disallowed in this repo
(non-negotiable #2). Viable as a separate mod branch/fork ("8 more MP maps"),
or as a documented cheat-menu route (the debug menu's level/region options
may already jump to any level ID — verify).
E. Per-level unused props & geometry ("Unused stuff by level" page)
~150 intact screenshots, grouped by level. Cross-referenced against the object table and level IDs:
- Streets (campaign stage 12;
LEVELID_STREETS): an entire prop kit was never placed —StreetsCars,StreetsLamp[Base/Big],StreetsSign[2/3],StreetsTrafficLight,StreetsShovel,StreetsCrossing, plus two cut set piecesGE64-StreetsArea1/2and Ourumov's car driving/crashing (StreetsOuruGo,StreetsOuruCrash,GEOurumovsCar). Suggests a cut street-chase scene. - Silo:
SiloVentShaft,SiloLadder,SiloLaunchDoors,SiloWalkway2Door/Guard,SiloMissingHandrail(a bug/oddity screenshot),GoldenEye_UnusedStartingPoint, and prerelease-onlyPRSiloElevator,PRSiloLamps,SiloCutWalkway,ThirdSiloEditor(editor view of a third silo that didn't ship). - Facility: PR-vs-final wall sets (
FacilityWalls[Final],PRFacilityWalls,ArchivesWalls), plus cut rooms:FacilityBathroom,FacilityConveyor,FacilityGasTanks,FacilityLabTanks,FacilityWalkway,FacilityArmedScientistPR,FacilitySatBoxTex,GoldenEye007-FacilityPhoto. - Archives:
ArchivesOverview,ArchivesLamp[Scan],ArchivesPhoto,PRArchivesNoWalls(wall-less build view). - Bunker:
BunkerExtraMons[Side](extra monster/guard spawns),BunkerPIP, PRBunkerLamp. - Caverns:
CavernsPursueObj(a cut "pursue" objective marker), PRCavernsWalkway. - Dam:
DamIsland,DamPlatform,DamDockDoors,DamEndDuct,DamTruckDoor; region-diff shotsDamCompUS/EU. - Frigate:
FrigateHarpoonScan(scan of a harpoon model),PRTrainTargetGlass,Pdest_harpoonZ[2],Ptorpedo_rack,FrigateMoneypennyPR(a Moneypenny model in the Frigate PR build!), region-diffFrigateIntroUS/JP. - Aztec/Temple:
AztecConsolePads1-4,GE-AztScreen2781/2789,AztExtraMainframe,AztDronePadsLabel,unused-Aztec-Path(a whole unplaced path),EgyptianRed/WhiteClouds(two skybox variants),TempleSkySolo/Multi, PR:AztBlueSuitPR(cut enemy suit),AztHeavyFogPR,AztTableScreensPR. - Surface:
SurfaceBookCrate,SurfaceObsPad,SurfaceTower,SurfaceJerryCan,SurfaceHutTable,SurfacePropHut, PRSurfaceOverviewPR,SurfaceVent[PR],SurfaceDish[PR]. - Train (campaign stage 14):
GE007-TrainSecretRoom(a hidden room),TrainTargetGlass. - Misc props/vehicles:
GEMotorbike,GERedTruck,GESovietBoat,GEHelicopterPilot,GEBiker,GoldenEye-moonfemale(moonfemale/chr model exists),OurumovKey/Briefcase,GEDeskMat,GoldenEye-Crypt(confirmed orphaned map — see note below),GE64-BridgeRooms,GEJunglePicture,Runwaypicture,Controlicon,Cactus. - Orphaned level geometry —
assets/obseg/bg/holds per-level dirs forame arch arec ark azt cat cave crad cryp dam depo dest dish len oat ref run sev sevb sevx silo stat tra. Notable:cryp(Crypt) has full geometry + briefing (UbriefcrypZ.c) but noLEVELID_CRYPTentry inbondconstants.h— fully orphaned.len(Lenin statue area, cf.StatueLeninPR) anddish/cat/oat/arec/ame/ark/refare further level dirs beyond the shipped set. Nocitadeldir — its geometry was either removed or shared (TCRF's 5 Citadel screenshots show a finished map, so it existed in some build).
Status: Tier 2. All models are in the ROM's object table (spot-checked:
PchrtesttubeZ, Pdest_harpoonZ, Pdoor_roller1-4Z, PhatfurryZ,
Pletter_tray1Z, Pmissile_rackZ, PsilencerZ, Psteel_door2[ b]Z,
Ptorpedo_rack). Placing them needs level-data editing (object spawn tables) —
a data-mod / level-editor project, not a port change. The PR-vs-final texture
pairs (*PR__1vt.jpg) are interesting for a "pre-release textures" cosmetic mod
via the tools_pc asset pipeline — but the PR ROM itself isn't available here,
so source assets would have to come from TCRF's screenshots (low-res) or a
donated PR dump.
F. Unused characters & faces
TCRF main-page imagery: UnusedFace1/2/3 (each with F/S1/S2 views),
GE64-FemHead1-4, KenFaceUnused/Used, Rosika[Compare], SciCompare,
FemaleSci, GEBonds, Terrorists, TerroristBiker, StPetersburgGuard,
Bond-suit sets named after actors: Connery*, Dalton*, Moore* (each with
HeadFront/Back/Left/Right + Jacket pieces), GEArmor[our].
Cross-reference:
- The MP character table (
front.c:601+mp_chr_setup[]) is huge — ~40 named entries beyond the 8 selectable, includingROSIKA,KARL,MARTIN,MARK,DAVE,DUNCAN, …TERRORIST,BIKER,STPETERSBURGGUARD,HELICOPTERPILOT— Brosnan-body + swapped-head combos. The "unused faces" are almost certainly extra head models in this pool that no body/entry uses. - Head model dirs exist under
assets/obseg/chr/:headken(the Ken face),headbrosnan*(4 costume variants),moonfemale, plus ~30 named heads. The actor-named suits (Connery/Dalton/Moore) do not appear as chr dirs — resolved in round 2: the ROM holds exactly 80C*Zcharacter models and none is a former-Bond actor; only the enum slots + the flattened actor-switch code (bondview2.c:391-460) survive (see banner, item 4).
Status: Tier 2/3. Cosmetic mod (extra MP faces) = asset-level work if the
models are in the ROM; verify by dumping assets/obseg/chr/*/Model.c headers.
G. Prerelease / dev-build evidence
Prerelease page (body blocked; filenames + embeds only):
- PR-vs-final comparison pairs: Taser, KF7, GrenadeLauncher, RocketLauncher
(+watch versions), SurfaceVent/Dish,
StatueLeninPR, Facility walls/rooms (§E), ArchivesWalls, CavernsWalkway, SiloCutWalkway, ThirdSiloEditor, PRSiloElevator, BunkerLamp, OutletConsoles. Pattern: the PR build had more weapons (watch-mounted guns!) and different Facility/Silo/Aztec geometry. - Dev-build videos (YouTube embeds captured in the export):
- "Goldeneye 007 - Shoshinkai/Space World 1996"
- "Nintendo of America E3 1996 Take Away Video (VHS Rip)"
- "Goldeneye Beta WalMart Video"
- "Goldeneye 007 Promotional Trailer 1996"
- "N64 vous n'en reviendrez pas (VHS RIP 1997)"
- "64History - N64 B-Roll (1995)"
- "Escape (Banjo-Kazooie, GoldenEye 007)" — engine sibling footage. Useful for dating PR features; not actionable in-repo.
H. Misc oddities (main page, unverified)
GoldenEye007MickeyMouse(by-level page, 2 KB image) — no "mickey" object in the resource table; likely a texture/model easter egg spotted in a level.Unused_bond_walk.gif— an unused Bond walk animation (checkassets/animationtable_entries.cfor orphaned anim IDs).GoldenEye007-MovieLogoUnused/-MovieNoLogoUnused— alternate intro logo frames (title sequence data;src/game/brief*? verify).GE_UnusedAlarm,GoldenEye-BloodImpact/BoxBlood/ PROpaqueBlood— blood-effect variants (cf.src/game/blood_animation.c).GoldenEye007-BarrelUnused/-SmallBarrelUnused— barrel props never placed.GoldenEye-OddDay,Sight[Alt],MountainTex,background,Pbin1Z,PchrtesttubeZ[Explode],PitonGunBungee,Psev_door[3_wind]Z— props in the table, placement unverified.- Bugs & Notes articles: nothing recoverable from this export — re-scrape.
2. Feasibility summary
| Tier | Item | Effort | Where it lands |
|---|---|---|---|
| 0 — already works | Debug menu (U+D C-hold), free cam, line mode, ramrom record/replay, cheat-grantable rocket/grenade/P90 | verify in-game; document keybinds | docs + maybe input.c keybind for U+D c-buttons |
| 1 — port-layer hook | Grant taser/spectre/autoshot + unused items (watch identifier, bomb case, …) via config toggle replicating the cheat grant path (bondinvAddInvItem + give_cur_player_ammo) |
small; follow F10-toggles pattern (feat/f10-game-toggles) |
port/src/ only |
| 2 — data/asset mod | Place unused props per level; extra MP faces; PR texture swap | needs level-editor or object-table patching; separate project | data mod, not this repo's code |
| 3 — game-logic change (mod fork) | Re-enable 8 cut MP maps (front.c table), campaign reordering |
one-line-per-map table edits + setup fixes ("xbla setup" = unknown editor flag) | separate mod branch/fork only |
3. Next steps
- In-game verification pass (PC build): open debug menu; confirm free cam,
display speed, level switch; enter the 2X rocket/grenade/P90 cheat codes; screenshot viagrab rgb. Record results here + findings.md if anything new breaks (Dxx). - Confirm which region macros the PC build defines vs the
BUGFIX_R1guards in the weapon-grant cheats (non-negotiable #3) — the grants may be dead code in our build. - Dump
assets/obseg/chr/model headers to identify the UnusedFace1-3 / FemHead1-4 models concretely. Re-scrape TCRF article bodies— done; all six bodies recovered intobacklog/cut-content/articles/and cross-referenced (see RESEARCH.md §0).- If Tier-1 item granting is wanted: spec it as an F10 toggle set, port-layer
only, each entry citing the cheat-code precedent in
cheat.c.