Reverse-engineering notes

One file per guest binary we have dug into, holding the facts that are expensive to re-derive and cheap to write down: module load bases, container/asset layout, which Win32 or COM paths the app actually uses, the function addresses we have already disassembled, and the hypotheses that have been ruled out.

These notes exist because the same disassembly keeps getting redone. Before starting an investigation on an app that has a file here, read it. When you finish one, add what you learned.

Paint dock-collapse geometry and remaining repaint artifacts: mspaint.md.

Blobby Volley's settings.dat format, the per-player CONTROL field, why player two must not be preset to the computer, and why two emulator processes in one room have to share a wall clock: blobby-volley.md.

What belongs here

What does not belong here

Ground rules

Index

App File
Abe's Oddysee demo abes-oddysee-demo.md
Age of Empires III trial age-of-empires3-demo.md
Beyond Good and Evil demo beyond-good-evil-demo.md
Dungeon Lords demo dungeon-lords-demo.md
Age of Empires (1997 shareware demo) age-of-empires.md
Arcanum demo arcanum-demo.md
Bricks I bricks.md
Civilization II: Multiplayer Gold Edition (Indeo 4 movies, headless Indeo install) civilization-2-mge.md
DX-Ball dxball.md
Diablo pre-release demo (1996) diablo-demo.md
Diablo II Shareware demo diablo2-demo.md
Diablo Shareware diablo-shareware.md
Diablo retail CD diablo-retail.md
Grand Theft Auto 2 Wild Demo gta2-demo.md
Half-Life: Uplink half-life-uplink.md
Heroes of Might and Magic III (demo) heroes3-demo.md
Heroes of Might and Magic II (demo) heroes2-demo.md
Hitman: Codename 47 demo hitman-demo.md
Taipei (Entertainment Pack) taipei.md
Microsoft Hearts Network (Win16) mshearts16.md
Hype: The Time Quest demo hype.md
Icy Tower v1.3.1 icy-tower.md
Jardinains! v1.2 jardinains.md
Rattler Race (Entertainment Pack) rattler-race.md
Pyramid (Funpack) pyramid.md
Solitaire, 16-bit Win98 (sol16) sol16.md
FreeCell, 16-bit Win98 (freecell16) freecell16.md
JigSawedME 1.3 (VB6; version-resource byte counts) jigsawedme.md
Rattler Race (Win16 WEP2, VB1; player is the yellow snake, arrows/mouse steer) wep16-rattler.md
Klotski (Win16 WEP3; route, board geometry, pick arithmetic, selector erase fix) wep16-klotski.md
Tut's Tomb (Win16 WEP2; wndproc map, first-show WM_SIZE fix, hover-then-click) wep16-tutstomb.md
Tic Tac Drop (Win16 WEP4, VB3; SOUND by name, drop route, computer never moves) wep16-tictacdp.md
Maxwell's Maniac (Win16 WEP4; click slides the gate, WM_TIMER frame = GetDC..ReleaseDC, ~18 Hz) wep16-maxwell.md
JigSawed (Win16 WEP, VB1; Thunder OK, SetActiveWindow, child-surface clip) wep16-jigsawed.md
Cruel (Win16 WEP1; maximize invalidation, redeal rule) wep16-cruel.md
FreeCell (Win16 WEP2; corrupt WEP2 CARDS.DLL fixture, cdtDrawExt modes, move animation) wep16-freecell.md
Moorhuhn 1, 2, Winter-Edition, 3, Tennis and CD extras moorhuhn.md
Myth: The Fallen Lords (demo + retail ISO) myth-tfl.md
NetHack 3.4.3 for Windows nethack-win32.md
Liquid War 5.6.2 liquid-war.md
Little Fighter 2 v1.9 little-fighter-2.md
War Wind (USA) and War Wind II (Europe) CD installs war-wind.md
Over 1000 Games for Windows (Nodtronics CD) over1000games-shareware.md
Pawn 3 pawn.md
Plus! 98 DirectAnimation theme savers (CORBIS, FASHION, HORROR, WOTRAVEL) plus98-directanimation-savers.md
Pocket Tanks shareware pocket-tanks.md
Tomb Raider II demo (Venice) tomb-raider-2-demo.md
Tomb Raider III demo (India/Jungle) tomb-raider-3-demo.md
Total Annihilation demo total-annihilation.md
The Elder Scrolls: Arena (GOG) elder-scrolls-arena-gog.md
Ultima IV: Quest of the Avatar (GOG) ultima4-gog.md
Quake II (demo) quake2-demo.md
Forsaken demo (InstallShield 3 DATA.Z, execute-buffer cache slots, licence) forsaken-demo.md
Starlancer demo (packed lancer.exe, self-resolved imports, DirectInput cursor offset, menu route) starlancer-demo.md
Quake III Arena (demo 1.11) quake3-demo.md
Re-Volt demo (DirectPlay lobby registration, load-time CRC, licence) re-volt-demo.md
Rollcage demo (working directory, ATD GFX chaining /FRONTEND child, DirectInput-only keys, licence) rollcage-demo.md
Dethkarz demo (Install Path GOB, "Device Libraries" renderers, Glide-default driver dialog, maximized WM_SIZE loop) dethkarz-demo.md
Shogo demo (LithTech launcher vs direct Client.exe, menu-to-level route, licence) shogo-demo.md
MDK2 demo (IS6 groups, launcher config.lua, GL-init deadlock via suspended worker, projective glVertex4fv blocker) mdk2-demo.md
Midtown Madness Trial (D3D device names, absolute DirectInput mouse, mouse driving) midtown-madness-trial.md
Monster Truck Madness 2 Trial (MFC CFormView WM_CREATE, DisplayDibWindow, renderer DLL probing) monster-truck-madness2-trial.md
Heretic II Demo (early InstallShield 5 cabs, time bomb, GL window position) heretic2-demo.md
Hellbender Trial (System\ install layout, Quick Configuration dialog art) hellbender-trial.md
Expendable Demo (launcher -> Go.exe, registry options, DirectInput Device2, route) expendable-demo.md
Rayman 2 demo (Ubi.ini renderer, thread thunk sync, CREATESTRUCT scratch over the PE header) rayman2-demo.md
Incoming demo (Rage, Direct3D; zip tree, menu-to-turret route, in-game key chart) incoming-demo.md
Tachyon: The Fringe demo (NovaLogic, Direct3D; IS5 cab, registry D3D cfg, menu-to-cockpit route) tachyon-demo.md
Trespasser demo (DreamWorks Interactive, Direct3D; msvcirt, reserved-page commits, menu-to-level route) trespasser-demo.md
Battlezone demo (Activision, Direct3D; vendor DLLs, sub-1 MB heap fragmentation, INI .trn eager, keypad bindings) battlezone-demo.md
Evolva demo (Direct3D 7; IS5 cab groups, ImageLoader COM self-registration, HKLM XxxDir paths, SearchPath lists, DirectInput COM, vertex-fog specular) evolva-demo.md
Requiem: Avenging Angel demo (Direct3D; IS5 files split across 5 volumes, Enter = console, readme keymap) requiem-demo.md
Kingpin Demo (Quake II engine GL, loopback timeouts during a slow level load) kingpin-demo.md
Hexen II Demo (GL build vs bundled 3Dfx MiniGL, WinDirect software build, slow meshing) hexen2-demo.md
SiN Demo (Quake II engine GL, long scripted intro before control) sin-demo.md
Soldier of Fortune Demo (Quake II engine GL; a DLL imports from the EXE; runtime traces only) soldier-of-fortune-demo.md
Command & Conquer: Red Alert (Win95 demo) red-alert-95-demo.md
Die by the Sword (demo) die-by-the-sword-demo.md
Dark Colony (magazine demo) dark-colony-demo.md
Daytona USA Deluxe (Win95 demo) daytona-usa-deluxe-demo.md
Blood II: The Chosen (demo) blood2-demo.md
Sid Meier's Pirates! (2004) pirates-2004.md
Disciples: Sacred Lands (demo) disciples-demo.md
Commandos: Behind Enemy Lines (demo) commandos-demo.md
Age of Wonders (beta demo) age-of-wonders-demo.md
Age of Wonders II (beta demo; world, army moves, UI clean since the viewport clip) age-of-wonders2-demo.md
Sid Meier's Alpha Centauri (demo) alpha-centauri-demo.md
Betrayal in Antara (demo, parked) betrayal-in-antara-demo.md
Comanche Gold (demo, parked) comanche-gold-demo.md
Croc 2 (demo, parked) croc2-demo.md
Descent: FreeSpace (demo) freespace-demo.md
Dark Earth (demo) dark-earth-demo.md
Asghan (demo, parked) asghan-demo.md
Delta Force (demo) delta-force-demo.md
Daikatana (demo, parked) daikatana-demo.md
Crusaders of Might and Magic (demo) crusaders-mm-demo.md
GeneRally generally.md
Tetravex tetravex.md
TetriNET (two-seat virtual LAN, Delphi) tetrinet.md
SkiFree (16-bit, WEP3) wep16-ski.md
Winarc winarc.md
Atlantis: The Lost Tales (demo) atlantis-demo.md
Dark Reign (demo) dark-reign-demo.md
Descent 3 (demo) descent3-demo.md
Anno 1602 (demo) anno1602-demo.md
Drakan: Order of the Flame (demo) drakan-demo.md
Braveheart (demo) braveheart-demo.md
Anachronox (demo) anachronox-demo.md
Die Hard: Nakatomi Plaza (demo, in progress) diehard-nakatomi-demo.md
Driver (demo) driver-demo.md
Colin McRae Rally 2.0 (demo) cmr2-demo.md
Populous: The Beginning (demo) populous-the-beginning-demo.md
Colin McRae Rally (demo) colin-mcrae-rally-demo.md
Aliens versus Predator (Alien demo) avp-alien-demo.md
Aliens versus Predator (Marine demo) avp-marine-demo.md
Carmageddon II (demo) carmageddon2-demo.md
Rodent's Revenge (Win16) wep16-rodent.md
ScummVM 0.8 — Flight of the Amazon Queen scummvm-fotaq.md
Serious Sam: The First Encounter (demo) serious-sam.md
Outwars (trial) outwars-trial.md
Pharaoh (demo) pharaoh-demo.md
Homeworld (demo) homeworld-demo.md
Giants: Citizen Kabuto (demo) giants-demo.md
SimCity 2000 Win95 Demo simcity-2000-demo.md
SkiFree (Entertainment Pack) skifree.md
Snood 2.2W snood.md
Worms 2 October demo worms2-demo.md
Warcraft III: Reign of Chaos demo warcraft3-demo.md
Windows Installer 2.0 for Win9x (instmsi.exe) windows-installer-2.0.md