Skip to content

COMMON.DLL Analysis

Verdict: Pure resource container. No game logic. No Ghidra decompilation needed.

Summary

Property Value
File size 2,988,544 bytes (2.9 MB)
Code section (.text) 13,312 bytes (0.4%)
Resource section (.rsrc) 2,953,728 bytes (98.8%)
Exported functions 0
Imported DLLs KERNEL32.dll only (47 CRT functions)
Game logic None

Prior documentation incorrectly described COMMON.DLL as a "DirectPlay networking" DLL or "MFC/Win32 shared library." DirectPlay lives in REBEXE.EXE (address range 0x5a0000–0x5b0000), which imports DPLAYX.dll directly.

How REBEXE.EXE Loads It

COMMON.DLL is not in the PE import table. REBEXE.EXE loads it at runtime as module ID 8 in the game's resource module system:

// FUN_005ff020 — resource module loader
hModule = LoadLibraryA("common.dll");  // module_id = 8
// Then accessed via:
FindResourceA(hModule, resource_id, RT_BITMAP);

DLL Resource Module Registry

Module ID DLL Content
1 textcomm.dll Common text strings
3 texttact.dll Tactical text strings
5 encybmap.dll Encyclopedia bitmaps
6 tactical.dll Tactical view sprites
7 strategy.dll Strategy map sprites
8 common.dll Core UI widgets
10 gokres.dll GOK (game object kit) resources
12 Rebdlog.dll Dialog resources

Contents

321 BMP Resources (2,893,312 bytes)

  • 215 button sprites: Scrollbar arrows, checkboxes, radio buttons, sliders, tab controls
  • 4 full-screen backgrounds (640x480): Main menu, loading screens
  • 2 title screens: Game logo + LucasArts splash
  • ~100 UI widget elements: Borders, frames, separators, progress bars
  • 3 named resources: COCKPIT_BUTTON_GAMESCALE (1–3) — speed control buttons

5 WAV Resources (42,850 bytes)

UI interaction sounds: button clicks, notification chimes.

1 RCDATA Resource (20 bytes)

Widget animation descriptor linking bitmap IDs 10150–10157 as an 8-frame animation sequence.

1 RT_VERSION Resource (904 bytes)

LucasArts build metadata. OriginalFilename field says "REBEXE.EXE"—a build template artifact (the DLL was compiled from the same project).

Code Section (13,312 bytes)

~7 functions, all MSVC CRT boilerplate: - _DllMainCRTStartup (entry point) - Heap initialization - TLS callbacks - Runtime error handlers

Zero game logic. Zero DirectPlay. Zero MFC.

Status in Open Rebellion

Asset Status
321 BMPs Already extracted to assets/references/ref-ui-full/common-dll/
5 WAVs Not yet extracted (42 KB total — low priority)
Code Not needed — no game logic to port

Corrections to Prior Documentation

Prior Claim Correction
"Handles DirectPlay networking" DirectPlay is in REBEXE.EXE, imports DPLAYX.dll
"MFC/Win32 shared library" No MFC imports, no exports, pure resource container
"May contain shared combat utilities" 7 CRT functions total, zero game logic