Skip to content

Global Variable Reference

Inventory of all named global variables recovered from the game executable.

Provenance: Ghidra static analysis of the game executable with FA.SMS symbols applied; data sourced from DumpGlobals.csv (DumpGlobals.java headless run). Confidence markers follow spec-authoring.md: confirmed · inferred · unknown.

Referenced-globals rule: the game-executable reconstruction program treats a data symbol as in-scope only when it is referenced by code (≥1 xref): the 10,313 such globals in db/inventory/FA.EXE/globals.csv (the local-only Ghidra inventory export — see db/README.md) are the mechanical universe a completed subsystem must name or explicitly waive. The ~48k zero-xref entries are mostly struct/array interiors named at their base and are not individually tracked.


Summary

Metric Value
Total data symbols scanned 58,742
Named globals (from FA.SMS) 4,212
Named globals with size > 0 1,944
Unnamed data items ~54,530

By size category (named with size > 0):

Size Count Notes
byte (1) 1,048 Flags, boolean state, small counters
dword (4) 659 Pointers, 32-bit counts, tick counters
word (2) 196 Screen coords, IDs, 16-bit counters
small struct/array (8–32) 26 Matrices, fixed-size records
large (>32) 8 Buffers, large tables

By address range:

Range Count Segment
0x400000–0x4FFFFF 833 Code + embedded constants
0x500000–0x53FFFF 452 Initialized data
0x540000–0x55FFFF 284 Initialized data
0x560000–0x59FFFF 375 Initialized/BSS data

Top 30 Most-Referenced Globals

These are the most-accessed runtime state variables across the entire binary.

Address Name Size Type Xrefs First Writer Notes
0x553848 _objPtrs 4 ptr 408 _OBJShutdown@0 Object pool pointer array — the entity list
0x50CE80 _cg 1 byte 340 _T_AddObj@12 Current game object context / active object slot
0x4EB604 _numComputers 4 dword 321 ?MPConnect@@YGXXZ Number of players/computers in session
0x4F6FBC _curId 2 word 309 @GetCurObj@4 Current object ID being processed
0x4EB608 _thisComputer 4 dword 299 ?MPConnect@@YGXXZ This player's computer index in session
0x520A50 _curScreen 2 word 249 ?usnfmain@@YAXXZ Current UI screen ID
0x520A1C _playerId 2 word 237 ?_MISSIONInit1@@YGXXZ Local player entity ID
0x4EB6F8 _gamePrefs 4 ptr 215 ?MPMissionShutdown@@YGXXZ Pointer to single-player preferences struct
0x4EB6FC _gameMultiPrefs 4 ptr 209 FUN_00429dde Pointer to multiplayer preferences struct
0x552ED4 ?curDialog@@3PAUDIALOG@@A 4 ptr 175 _DialogSetup@12 Active dialog box pointer
0x501504 _cb 4 ptr 141 @G_SetBitmap@4 Current bitmap / render target pointer
0x5183A0 vector_table 4 ptr* 141 Dispatch vector table (function pointer array)
0x515F90 _resbuf 4 ptr 123 _GRTo2d@8 Rasterizer result buffer pointer
0x553838 _nextObjId 2 word 119 _OBJInit@4 Next available object ID counter
0x5528E0 _currentTime 2 word 111 _TIMEInit@12 Game time (mission elapsed, ticks)
0x552928 _currentTicks 4 dword 108 _TIMEInit@12 Absolute tick counter
0x5528C8 _currentT 2 word 102 _TIMEInit@12 Current time (aliased view of _currentTime)
0x583DC0 _curPalette 4 ptr 86 FUN_004afb40 Active 256-color palette pointer
0x4FB1A8 _missionName 4 ptr 84 FUN_00428412 Pointer to current mission name string
0x5528EC _timerTicks 4 dword 84 _InstallTimerInt Raw timer interrupt tick count
0x521DE8 _shellMousePos 2 word 75 ?ShellMousePos@@YGXXZ Shell UI mouse position (packed x/y)
0x5528BC _fortMission 1 byte 66 ?_MISSIONInit1@@YGXXZ Non-zero when mission is a fortress/fort mode
0x58F0E0 _overflow_ptr 4 ptr 62 render_3d 3D renderer overflow scratch pointer
0x546BA0 _serviceTicks 2 word 62 @GetCurObj@4 Per-object service tick timestamp
0x515F90 _xv/_yv/_zv 2 word 62 _GRTo2d@8 Rasterizer projected vertex coordinates
0x510288 _lineStats 4 dword 61 FUN_0045dedf Line-draw statistics counter
0x5528F8 _timeCompression 1 byte 61 _TIMEInit@12 Time compression multiplier (fast-forward)
0x515F44 _scaled_matrix 2 word 57 FUN_004cdeb4 Scaled rotation matrix element
0x517F34 vbuf 2 word 56 FUN_004d5356 Vertex buffer pointer
0x556868 ?appIO@@3P6AJJPAD@ZA 4 ptr 54 ?NET_Initialize@@YAJPAUCN_INFO@@J@Z Network I/O function pointer

Globals by subsystem

Generated from the symbol database — the named referenced globals of each completed subsystem (waived struct/array interiors live in the CSVs, not here). Detail per subsystem is on its own page.

Generated from db/symbols/; each subsystem's detailed prose lives on its own page.

Binary: FA.EXE

HUD / cockpit

hud.csv · page — 16 named referenced globals

VA Symbol Src Role
0x004EBD08 _hudTargetViewEnable re enable flag guarding HUDDrawTargetView
0x004EBD30 _hudPitchBarTable re pitch-ladder bar table, 37 records x 3 int16 {pitch,dY,dX}
0x0052107C _hudWarnExpireTick re warning-message expiry tick vs _currentTicks
0x005213AD _hudLineHeight re text row pitch between HUD print lines
0x005213D2 _hudColor re current HUD draw colour (G_SetColor)
0x005213D4 _hudBitmap re HUD offscreen bitmap handle (G_SetBitmap target / G_Blit source)
0x005213D8 _hudShape re 3D shape record rendered into the HUD by HUDDrawTargetView
0x00521498 _hudTargetViewCount re element count for the HUDDrawTargetView blit loop
0x00521614 _hudBlink1 re ~1Hz blink flag from _timerTicks
0x00521620 _hudWarnText2 re secondary warning line buffer
0x00521694 _hudMasterMode re HUD weapon/master submode; ==2 selects landing (HUDDrawApproach)
0x005216A0 _hudBlink2 re second blink-phase flag
0x005216A4 _hudWarnText re warning-message string pointer set by HUDSetWarning
0x00521980 _hudFpmXCached re cached _hudFpmX restored when not in a view transition
0x00521D94 _hudFpmX re flight-path-marker screen X; anchor for nearly all HUD symbology
0x00521D96 _hudFpmY re flight-path-marker screen Y

View / camera & replay (VIEW)

view.csv · page — 5 named referenced globals

VA Symbol Src Role
0x004EC420 viewModeTable re view-mode dispatch table scanned by VIEWModeLookup
0x005223F0 replayWindowStart re replay capture window start tick
0x005223F4 replayWindowEnd re replay capture window end tick
0x00522400 replaySaveBuf re saved-view replay buffer base (0x30 dwords copied in/out of the view)
0x005224C0 replayActive re replay-active flag (set by VIEWReplayRecordGate, read by VIEWReplayPlayback)

Collision (COL)

collision.csv · page — 38 named referenced globals

VA Symbol Src Role
0x00536728 _colSelfObj re querying entity ptr (predicted-pos cache follows)
0x00536730 _colRayEndX re query ray end X
0x00536734 _colRayEndY re query ray end Y
0x00536738 _colRayEndZ re query ray end Z
0x0053673C _colObjPart re hit child-box/part id
0x00536740 _colObjCount re registered collidable count this frame
0x00536748 _colBoundMaxX re swept AABB max X
0x0053674C _colBoundMaxY re swept AABB max Y
0x00536750 _colBoundMaxZ re swept AABB max Z
0x00536758 _colBoundMinX re swept AABB min X
0x0053675C _colBoundMinY re swept AABB min Y
0x00536760 _colBoundMinZ re swept AABB min Z
0x00536764 _colBlockType re blocking-hit terrain-leaf/structure type
0x00536768 _colStructCount re registered structure count
0x0053676C _colBlockDist re nearest blocking-hit distance (sentinel 0x7FFFFFFF)
0x00536770 _colStructList re structure id list (word[0x1c2])
0x00536AF8 _colObjAngleH re object-hit angle H
0x00536AFC _colObjAngleP re object-hit angle P
0x00536B00 _colClosureRadius re closure radius (query param)
0x00536B04 _colGearHeight re gear/ground clearance (COLInfo+8 <<8)
0x00536B0C _colSelfSide re IFF side bit of the querying object
0x00536B10 _colObjList re collidable id list (word[900])
0x00537218 _colBlockAngleH re blocking-hit angle H
0x0053721C _colBlockAngleP re blocking-hit angle P
0x00537220 _colRayStartX re query ray start X
0x00537224 _colRayStartY re query ray start Y
0x00537228 _colRayStartZ re query ray start Z
0x0053722C _colObjId re nearest hit object id
0x00537230 _colBlockPosX re blocking-hit pos X
0x00537234 _colBlockPosY re blocking-hit pos Y
0x00537238 _colBlockPosZ re blocking-hit pos Z
0x0053723C _colSelfId re querying entity id
0x00537240 _colObjPosX re object-hit pos X
0x00537244 _colObjPosY re object-hit pos Y
0x00537248 _colObjPosZ re object-hit pos Z
0x0053724C _colTargetId re single-target id (excluded from broad-phase)
0x00537250 _colObjDist re nearest object-hit distance (sentinel 0x7FFFFFFF)
0x00537254 _colObjBox re hit box pointer

Sound / music (incl. WAIL32)

sound.csv · page — 5 named referenced globals

VA Symbol Src Role
0x004EB5F0 _musicOn re music/MIDI subsystem-available master flag
0x004F3C10 _warnSndVol re initial-volume table for _warnSnd
0x004F3C20 _warnSndName re filename table for _warnSnd (IR1.11K, ...)
0x004F3CCC _curShellMusic re current shell-music category
0x005380B8 _warnSnd re RWR/IR threat-warning tone channel table (8 entries)

Memory & resource managers (MM/RM)

memory-resource.csv · page — 12 named referenced globals

VA Symbol Src Role
0x004F3DBC mm_initialized sms MM one-time init guard (bool); set by MMInit cleared by MMShutdown
0x004F3DC0 mm_handles sms base of T_HANDLE[count] pool (operator_new'd in MMInit)
0x004F3DC4 mm_used_list sms head of allocated-handle intrusive list (next@+0 prev@+4)
0x004F3DC8 mm_unused_list sms head of free-handle intrusive list
0x004F3DCC mmAllocIdSp re depth/index of the alloc-id save-stack (@0x538250) for MMPushAllocId/MMPopAllocId [was DAT_004f3dcc]
0x00503E30 resList sms RES_LIST[1400] resource registry spanning 0x503E30..0x50A618 (1400*0x13=0x67E8)
0x0050A618 rmInitialized re RM init flag; its ADDRESS doubles as the resList end-marker (scans stop at 0x50A617) [was DAT_0050a618]
0x0050A61C rmNotifyEnabled re guards RMNotify; cleared during RMFree/RMFreeAllId bulk operations to prevent reentrancy [was DAT_0050a61c]
0x00538248 mm_page_size sms GetSystemInfo dwPageSize; VirtualAlloc-vs-GlobalAlloc threshold (shared reader: sound)
0x0053824C mmAllocId sms current alloc-id tag stamped on new handles/RES_LIST rows; widely read (campaign/network/shell-ui) but MM-owned
0x00573208 brsColorProcess sms bitmap color-process mode set by SetupBitmapAccess
0x00573248 resCache re 20-slot x 8-byte LRU find-cache {RES_LIST* ; timerTicks} spanning 0x573248..0x5732E8 [was DAT_00573248]

.SEQ scripted-cutscene / sequence player (SEQ)

seq.csv · page — 25 named referenced globals

VA Symbol Src Role
0x00540318 seqFontArray sms SEQFNT font pool base - init by SeqInit
0x0054039C seqFonts sms active font list head
0x005403A0 seqFadeLen sms palette fade duration in fixed ticks
0x005403A8 seqGrArray sms SEQGR graphic-node pool base
0x00540768 seqSynch sms synch flag - current command is a wait/synch point
0x00540770 curSeq sms index of the sequence slot being ticked
0x00540778 seqTextArray sms SEQTXT text-node pool base
0x005407D8 videoState sms video/AVI playback state gating SEQvideo (shared with video path)
0x005407DC seqIgnoreTicks sms accumulated load time subtracted from the sequence clock
0x005407E0 seqGrList sms SEQGR free-list head
0x005407E4 seqFading sms fade direction 0 none 1 in -1 out
0x005407E8 seqFlipState sms page-flip/dirty state for the render pass
0x005407EC seqSndPriority sms current sound priority
0x005407F0 seqLoadPtr sms write cursor into the compiled command buffer
0x005407F4 seqFadeStart sms tick at which the current fade started
0x00541278 seqSndLink sms linked sound handle
0x0054127C seqGraphics sms active SEQGR display-list ring head
0x00541280 seqFontList sms SEQFNT free-list head
0x00541284 seqLabelList sms SEQLBL free-list head
0x00541288 lineChar sms interpreter cursor into the current command line
0x00541290 seqLine sms expanded current-line scratch buffer
0x00541394 seqLabelPtr sms label node just defined by SeqParseLabel
0x00541398 seqTextList sms SEQTXT free-list head
0x005413A0 seqList sms SEQUENCE slot array base - stride 0x38 - up to 3-4 slots
0x00541450 seqLabels sms SEQLBL node pool base

Renderer & rasterizer (GG/G_)

renderer.csv · page — 3 named referenced globals

VA Symbol Src Role
0x004F6CA4 _blitDestX re destination X of the present blit rect (GG_FlushShaken/FlushDirtyLines)
0x004F6CA8 _blitDestY re destination Y of the present blit rect; offset by screen shake
0x004F6CAC _shakeParity re current screen-shake parity toggle (GG_FlushShaken)

Wingman / group AI (WNG/GRP)

wingman.csv · page — 1 named referenced globals

VA Symbol Src Role
0x00546AB8 _wmNameBuf re scratch buffer for WNGName/GRPName output

Object / entity system & shape selection

objects.csv · page — 15 named referenced globals

VA Symbol Src Role
0x004F6FDC _curObjStackTop re PushCurObj/PopCurObj nesting stack for GetCurObj
0x004F6FE0 _cmdBufWritePtr re command-buffer write cursor (WriteCmdBuf*/AllocCmdBuf)
0x004FFE34 _objArena re entity arena base (MMAllocPtr in OBJInit; shrunk by OBJStopAdding)
0x00546B94 _curObjSize re byte size of the current entity mirror; = type +0x03 + 0xDE for classes 0/2/4/6
0x00546B9C _curTypeSize re byte size of the current type-record mirror (from type +0x01)
0x00546BA4 _lastPadlockId re previous padlock/tracked id, compared by CheckForEvents1/2
0x00546BA8 _requeueChain re objects serviced this frame; ChainMergeSorted folds it back into chainStart
0x00546BB8 _lastCurZ re previous frame Z of current object (CheckForEvents1)
0x00553120 _objSizes re word[900] per-id entity size table (OBJAdd/OBJSubtract); ends at _objArenaNext
0x00553828 _objArenaNext re bump cursor into the entity arena (OBJAdd memcpy target)
0x0055382C _tempAliasBase re lowest temp-alias id: (-0x14 - thisComputer)*1000 - 999
0x00553830 _tempAliasMax re highest temp-alias id: (-0x14 - thisComputer)*1000; OBJTempAlias wraps to base past it
0x00553834 _multiAliasCursor re OBJAliasForMulti/OBJNextAliasForMulti iteration cursor
0x0055383C _tempAliasNext re next temp alias returned by OBJTempAlias (negative per-computer id band)
0x00553840 _objArenaSize re arena byte capacity (OBJInit parameter), bounds OBJAdd

AI interpreter (CT)

ai.csv · page — 11 named referenced globals

VA Symbol Src Role
0x0050CF83 _ctOverrideName re alternate/override AI script-name buffer; selected by _ctState+0x1d
0x0050CF90 _ctStateCheckpoint re heap copy of _ctState for preemptible save/restore
0x0050D312 _ctProgramNamePtr re pointer to the current AI script name; NULL gates the interpreter off
0x00546BC0 _ctCompareActor re actor slot used by CTVarDiff to evaluate attributes under the other object
0x00546BC8 _ctState re 0x80-byte CT execution state block copied by CTSaveState/CTRestoreState (vars+stack+IP+base+name+line+priority)
0x00546C48 _ctPrintBuf re HUD message text staged by CTDo_print/printnum, flushed on loop exit
0x00546C8C _ctCheckPass re validate/dry-run flag: skips branches and side effects, enables the stack-imbalance check
0x00546C90 _ctActionTaken re set 1 when a CTDo action fires; returned by CTExecProgram
0x00546C94 _ctActorObj re pointer to the current actor entity record
0x00546C98 _ctHalt re halt flag; the CTExecProgram loop runs while *IP!='%' and !_ctHalt
0x00546CA4 _ctExecuting re re-entry guard set across CTExecProgram

Terrain (T_)

terrain.csv · page — 1 named referenced globals

VA Symbol Src Role
0x004AACF0 T_DefaultHorizon sms default horizon descriptor (14 B) embedded after T_HorizonProc; pushed into leaf list by T_Make

Weapons — projectiles / seekers / ECM (PROJ)

weapons.csv · page — 8 named referenced globals

VA Symbol Src Role
0x0050D0F8 _projGunSoundHandle re active looping gun-sound handle
0x0050D0FA _projGunSoundExpiry re gun-sound expiry tick
0x0058F0F8 _projBestTargetCost re seeker-search best-cost accumulator (init 0x7FFFFFFF)
0x0058F10C _projBestTargetId re seeker-search result id
0x0058F110 _projPkPenalty re running hit-chance (Pk) multiplier
0x0058F118 _projNameBuf re weapon display-name buffer (PROJBuildName)
0x0058F180 _projSeekerList re seeker-parameter array from HARDBestSeekers
0x0058F1D4 _projInboundWarnT re inbound-missile warning throttle

Startup / Phar Lap DOS extender / config

startup.csv · page — 47 named referenced globals

VA Symbol Src Role
0x004D85AA __NLG_Return2 sms MSVC CRT global (xrefs=1)
0x004D86F8 __except_handler3 sms MSVC CRT global (xrefs=7)
0x004DD080 __forcdecpt sms MSVC CRT global (xrefs=1)
0x004DD0F0 __cropzeros sms MSVC CRT global (xrefs=1)
0x004DD150 __positive sms MSVC CRT global (xrefs=1)
0x004DD170 __fassign sms MSVC CRT global (xrefs=1)
0x004DD510 __cfltcvt sms MSVC CRT global (xrefs=1)
0x0051E750 __umaskval sms MSVC CRT global (xrefs=1)
0x0051E758 __winver sms MSVC CRT global (xrefs=1)
0x0051E75C __winmajor sms MSVC CRT global (xrefs=1)
0x0051E760 __winminor sms MSVC CRT global (xrefs=2)
0x0051E770 __environ sms MSVC CRT global (xrefs=15)
0x0051E778 __wenviron sms MSVC CRT global (xrefs=6)
0x0051E788 __exitflag sms MSVC CRT global (xrefs=1)
0x0051E78C __C_Termination_Done sms MSVC CRT global (xrefs=1)
0x0051E790 __C_Exit_Done sms MSVC CRT global (xrefs=2)
0x0051E7A0 __NLG_Destination sms MSVC CRT global (xrefs=2)
0x0051E7BC __adjust_fdiv sms MSVC CRT global (xrefs=1)
0x0051E7C0 __FPinit sms MSVC CRT global (xrefs=1)
0x0051E7D0 __aenvptr sms MSVC CRT global (xrefs=5)
0x0051E7D8 __aexit_rtn sms MSVC CRT global (xrefs=1)
0x0051E7F0 __locktable sms MSVC CRT global (xrefs=9)
0x0051E8B0 __pctype sms MSVC CRT global (xrefs=38)
0x0051E8B4 __pwctype sms MSVC CRT global (xrefs=3)
0x0051EC78 __cfltcvt_tab sms MSVC CRT global (xrefs=2)
0x0051EDF8 __mbctype sms MSVC CRT global (xrefs=7)
0x0051F010 __stdbuf sms MSVC CRT global (xrefs=1)
0x0051F2A8 __cflush sms MSVC CRT global (xrefs=2)
0x0051F2B0 __XcptActTab sms MSVC CRT global (xrefs=1)
0x0051F328 __First_FPE_Indx sms MSVC CRT global (xrefs=4)
0x0051F32C __Num_FPE sms MSVC CRT global (xrefs=4)
0x0051F334 __XcptActTabCount sms MSVC CRT global (xrefs=2)
0x0051F3F8 __adbgmsg sms MSVC CRT global (xrefs=2)
0x00520470 __commode sms MSVC CRT global (xrefs=2)
0x00520474 ?__pInconsistency@@3P6AXXZA sms MSVC CRT global (xrefs=1)
0x00520478 __newmode sms MSVC CRT global (xrefs=3)
0x00520578 __alternate_form sms MSVC CRT global (xrefs=17)
0x0052057C __no_lead_zeros sms MSVC CRT global (xrefs=20)
0x005205E0 __timezone sms MSVC CRT global (xrefs=7)
0x005205E4 __daylight sms MSVC CRT global (xrefs=3)
0x005205E8 __dstbias sms MSVC CRT global (xrefs=2)
0x00520670 __tzname sms MSVC CRT global (xrefs=4)
0x00591A60 ?_pnhHeap@@3P6AHI@ZA sms MSVC CRT global (xrefs=1)
0x00591B24 __crtheap sms MSVC CRT global (xrefs=11)
0x00591C30 __nhandle sms MSVC CRT global (xrefs=18)
0x00592C40 __nstream sms MSVC CRT global (xrefs=6)
0x00592C4C __acmdln sms MSVC CRT global (xrefs=5)

Binary: WAIL32.DLL

Binary: IP.EXE

Binary: CDRVDL32.DLL

Binary: CDRVHF32.DLL

Binary: CDRVXF32.DLL

Binary: COMMSC32.DLL

Binary: MSAPI.DLL

Matchmaking / internet-play client (MSAPI)

msapi.csv · page — 12 named referenced globals

VA Symbol Src Role
0x1001D098 ms_running re Running flag: set in initializeMS, cleared by closeMS / ms_disconnect.
0x1001D09C ms_conn_state re Connection-state/idle flag toggled around operations; set when the link is torn down.
0x1001D0A0 ms_list_dirty re Game-list-dirty flag: resetMSfilter sets it; requestMSgame refetches when set and clears it when the list is exhausted.
0x10020BD0 ms_recv_thread re MFC CWinThread* background receive pump (AfxBeginThread, CREATE_SUSPENDED); m_hThread at +0x28, Resume/Suspended by the login exports.
0x10020BD4 ms_game_list_tail re Game-list append cursor (last node); advanced as 'P' records arrive.
0x10020BD8 ms_game_list_head re Game-list head sentinel node (0x24 bytes; allocated in initializeMS).
0x10020BDC ms_game_selected re Current game-list selection/iteration node (walked by requestMSgame, reset by resetMSfilter).
0x10020BFC ms_socket re Connected TCP socket handle (AF_INET/SOCK_STREAM); first arg to every send/recv; 0 when not connected.
0x10020C08 ms_host_cookie re Host-mode cookie/handle set by loginMShost, cleared by loginMSPlayer.
0x10020C10 ms_record_size re Negotiated record size in bytes for game/player records (send/recv payload length).
0x10020C14 ms_list_inited re Game-list-initialised flag (set in initializeMS; guards teardown in closeMS).
0x10020C18 ms_game_count re Number of games accumulated in the list (incremented per 'P' record, reset by resetMSfilter).

Notable Globals for C Reimplementation

These globals represent the minimum set of extern declarations needed for a C reimplementation to link correctly:

// Object system
extern void     **_objPtrs;          // 0x553848 — entity list
extern uint8_t    _cg;               // 0x50CE80 — current object context
extern uint16_t   _curId;            // 0x4F6FBC — current object ID
extern uint16_t   _nextObjId;        // 0x553838 — next free ID

// Timing
extern uint16_t   _currentTime;      // 0x5528E0 — mission elapsed ticks
extern uint32_t   _currentTicks;     // 0x552928 — absolute tick counter
extern uint32_t   _timerTicks;       // 0x5528EC — hardware timer count
extern uint8_t    _timeCompression;  // 0x5528F8 — time-compression factor

// Multiplayer
extern uint32_t   _numComputers;     // 0x4EB604 — player count
extern uint32_t   _thisComputer;     // 0x4EB608 — this player index
extern void      *_gamePrefs;        // 0x4EB6F8 — SP prefs struct
extern void      *_gameMultiPrefs;   // 0x4EB6FC — MP prefs struct

// Mission
extern uint16_t   _playerId;         // 0x520A1C — local player entity ID
extern void      *_missionName;      // 0x4FB1A8 — mission name pointer
extern uint8_t    _fortMission;      // 0x5528BC — fortress mission flag

// UI
extern uint16_t   _curScreen;        // 0x520A50 — current screen ID
extern void      *curDialog;         // 0x552ED4 — active dialog pointer

// Graphics
extern void      *_cb;               // 0x501504 — current bitmap
extern void      *_curPalette;       // 0x583DC0 — active palette
extern int16_t    _xv, _yv, _zv;    // 0x51CDAA/AC/AE — projected vertex
extern int32_t    _clipLeft, _clipRight, _clipTop, _clipBottom; // clip rect

Full Named Global Listing

The complete list of the 1,955 named globals — those carrying an assigned name (USER_DEFINED, applied from db/, or IMPORTED, from FA.SMS), with Ghidra's auto-analysis labels (switchD_/caseD_/s_/DAT_) excluded — is regenerated into $FA_PROJECT/output/DumpGlobals_named.csv by DumpGlobals.java, with columns: address, name, size_bytes, data_type, xref_count, first_writer

The raw full export (all 58,517 data symbols, including switch tables and unnamed data) is the sibling $FA_PROJECT/output/DumpGlobals.csv. Both are local-only Ghidra output (never committed, #342); the counts track the current canonical fa-re project.