The 7th Guest Developer Wiki
/ Library / DocumentationThe 7th Guest modding and reverse engineering. This independent developer wiki organizes research into the original game, its GROOVIE V1 engine, GRV scripts, graphics, audio and resource formats. It brings the MS-DOS, Windows and Macintosh disassembly topics into one searchable directory.
About the project and documentation
For developers investigating a mod or a game hack, the catalogue connects practical editing questions to the underlying formats and engine behavior. Decompilation, recompilation and disassembly are related research activities, but they are different deliverables; this wiki does not claim that a complete recovered source tree or rebuilt executable is already available.
The article directory distinguishes planned entries from published documentation. Planned pages reserve a topic and do not yet provide technical instructions. The category guides explain the scope of each area, and completed articles will document evidence, input builds and reproducible results.
For an established open-source engine implementation, see the ScummVM Groovie engine documentation. This wiki is an independent reference and is not an official Trilobyte or ScummVM site.
Explore a category
Choose a subject, or browse every title.
Article catalogue in progress. Article content and category data are served from PostgreSQL.
Article catalogue
No matching titles
Try fewer words or choose All Topics.
A
- Aborted Game SnapshotSavegames
- Adapter and Driver DescriptorAudio & Music
- Address Space ConventionsHistory & Research
- Adjacent Piece ConversionPuzzles & Game Logic
- AdLib and OPL SynthesisAudio & Music
- Animation and Frame TimingInput & Cursors
- Archive IDs and Reference EncodingArchives & Resources
- Archive InventoryArchives & Resources
- Archive StructureArchives & Resources
- Arithmetic Helpers and Calling ConventionsMacintosh Disassembly
- Artifact Provenance and HashesHistory & Research
- Audio and CD BehaviorWindows Disassembly
- Audio Chunk 0x80Graphics
- Authoring a Room ScriptTools & Modding
B
- Background Rectangle CopiesGraphics
- Background Save and RestoreInput & Cursors
- Bank Switch CallbacksMS-DOS Disassembly
- BIOS and Miles Playback PathsAudio & Music
- Bitstream and Token LayoutCompression
- Block Types and DecodingAudio & Music
- Board RepresentationPuzzles & Game Logic
- Borrowed Handles and File LifetimesArchives & Resources
- Branches and Absolute TargetsGRV Scripting
- Branches and Sequence EventsAudio & Music
C
- Calls and Return StackGRV Scripting
- Canonical Build and Byte IdentityMS-DOS Disassembly
- Canonical Build and Byte IdentityWindows Disassembly
- Canonical Builds and Byte IdentityMacintosh Disassembly
- Canonical Coordinate SystemInput & Cursors
- Case-Insensitive Name ResolutionArchives & Resources
- CCC Color and Mask TablesMacintosh Disassembly
- Changed Payload Sizes and Index RebuildingTools & Modding
- Character MapFonts & Text
- Child Scripts and Local VariablesGRV Scripting
- Chunk Headers and Stream LayoutGraphics
- Chunk Types and Playback OrderGraphics
- Clone and Jump MovesPuzzles & Game Logic
- Code Gaps and Data OwnershipMS-DOS Disassembly
- CODE Resources and Jump TablesMacintosh Disassembly
- Command DirectoryTools & Modding
- Complete Palette ReplacementGraphics
- Compression and BackreferencesInput & Cursors
- Configuration ParsingEngine Runtime
- Container LayoutFonts & Text
- Container StructureAudio & Music
- Controllers and Instrument ChangesAudio & Music
- Cropped Scenes and Bar-Only RegionsInput & Cursors
- Cross-Platform CompatibilitySavegames
- Cross-Platform Function MatchingHistory & Research
- Cursor Resource ContainerArchives & Resources
D
- Delta Frame Chunk 0x25Graphics
- Delta Opcode ReferenceGraphics
- Delta Row End Opcode 0x61Graphics
- Delta Tile Map TableGraphics
- Description Text EncodingSavegames
- Device ConfigurationAudio & Music
- Disassembly Listings and Raw Byte AssemblyGRV Scripting
- DOS and Windows CounterpartsMacintosh Disassembly
- DOS and Windows Decoder DifferencesGraphics
- DOS and Windows DifferencesPuzzles & Game Logic
- DOS and Windows Playback DifferencesAudio & Music
- DOSBox and Original Hardware WorkflowsHistory & Research
- DOS Built-In RectanglesInput & Cursors
- DOS Counterparts and Port DifferencesWindows Disassembly
- DOS DecoderCompression
- DOS File and Memory ServicesMS-DOS Disassembly
- DOS Variable PayloadSavegames
- Driver Configuration and ShutdownMS-DOS Disassembly
- Driver Registration and Command TransportAudio & Music
- Duplicate Frame Chunk 0x00Graphics
E
- Editing Executable Diagnostic TextTools & Modding
- Editing Room Hotspots and TransitionsTools & Modding
- Embedded Commands and Buffer StateAudio & Music
- Embedded HDISK and Credits StillsMacintosh Disassembly
- Encoded Characters and SequencesGRV Scripting
- Encoded GRV CharactersFonts & Text
- Encoder CompatibilityCompression
- Entry Order and Numeric ReferencesArchives & Resources
- Error Paths and DiagnosticsEngine Runtime
- Evidence Confidence and Open QuestionsHistory & Research
- Example Project CatalogueTools & Modding
- Explicit and Built-In HotspotsGRV Scripting
- Extracting and Repacking GlyphsFonts & Text
- Extracting Resource PayloadsArchives & Resources
F
- File HeaderGraphics
- File I/O and Resource LifetimesEngine Runtime
- File Naming and Slot SelectionSavegames
- Font Compatibility LimitsFonts & Text
- Font Editing WorkflowTools & Modding
- Foreground and Background BuffersGraphics
- Frame Timing and Rate OverridesGraphics
- Function Address CatalogueMS-DOS Disassembly
- Function Address CatalogueWindows Disassembly
G
- Game State and Script StateEngine Runtime
- General MIDI and MT-32Audio & Music
- Ghidra Analyzer BoundariesHistory & Research
- Glyph Offset TableFonts & Text
- Glyph Records and BitmapsFonts & Text
- GROOVIE Engine and Production ToolsHistory & Research
- GRV Disassembly and AssemblyTools & Modding
H
- Historical Bugs and Overlapping InstructionsMS-DOS Disassembly
I
- Icons Strings and Version ResourcesWindows Disassembly
- IFF Chunks and Event StreamsAudio & Music
- Imports and Runtime SupportWindows Disassembly
- Inclusive and Half-Open BoundsInput & Cursors
- Indexed Display ModesGraphics
- Indexed Frame and Palette SidecarsGraphics
- Indexed PNG ExtractionGraphics
- Indexed PNG RepackingGraphics
- Indexed PNG WorkflowTools & Modding
- Index File StructureArchives & Resources
- Indirect Calls and Recovered EntriesMS-DOS Disassembly
- Initialization and ShutdownEngine Runtime
- Input and Presentation CoordinationEngine Runtime
- Input Loops and Declaration OrderGRV Scripting
- Installing and Distributing Replacement AssetsTools & Modding
- Interrupt Handlers and Completion CallbacksMS-DOS Disassembly
K
- Keyboard Actions and Hidden InputsGRV Scripting
- Keyboard Queues and Key ActionsInput & Cursors
L
- Length Mask and Length BitsCompression
- Load Image and Segment MapMS-DOS Disassembly
- Local Palette UpdatesGraphics
- Local Variables and Puzzle StateSavegames
- Looping and Background MusicAudio & Music
- Lossless Content and Byte IdentityGraphics
- LZSS Parameters and Chunk CodingGraphics
M
- MacBinary Containers and ForksMacintosh Disassembly
- Macintosh Resource EditingTools & Modding
- Macintosh T7SG ResourcesSavegames
- Macintosh Video ResourcesGraphics
- Main Loop and Script ExecutionEngine Runtime
- Main Menu Music ReplacementTools & Modding
- Main Menu Song IdentificationAudio & Music
- Malformed Streams and Decoder LimitsGraphics
- MAZE.GRV and the BasementGRV Scripting
- Memory Banks and Switching HandlersGraphics
- Memory Layout and Buffer OwnershipEngine Runtime
- Microscope GAMELOGIC ContractGRV Scripting
- MIDI ConversionAudio & Music
- MIDI Import CompatibilityAudio & Music
- MIDI to XMI Import and PackagingTools & Modding
- Modern Companion DataSavegames
- Modern Ogg Track MappingAudio & Music
- Mouse Coordinates and Button StateInput & Cursors
- Move Iterators and DeduplicationPuzzles & Game Logic
- Movement and CapturePuzzles & Game Logic
- MSCDEX Audio IntegrationMS-DOS Disassembly
- MSCDEX Commands and Track SelectionAudio & Music
- Music Archive PairArchives & Resources
- MZ Header and RelocationsMS-DOS Disassembly
N
- Named and Numeric LookupArchives & Resources
- NASM Encodings and Literal FallbacksMS-DOS Disassembly
- Native Function CatalogueMacintosh Disassembly
- New Animation and PCM AudioTools & Modding
- No-Argument Diagnostic OutputMS-DOS Disassembly
O
- Offsets and Payload LengthsArchives & Resources
- One-Shot Palette MergeGraphics
- Opcode 0x00 - NOPGRV Scripting
- Opcode 0x01 - RESERVED_01GRV Scripting
- Opcode 0x02 - PLAYSONGGRV Scripting
- Opcode 0x03 - FADEIN_NEXT_VIDEOGRV Scripting
- Opcode 0x04 - PALFADEOUTGRV Scripting
- Opcode 0x05 - FIRSTFRAME_NEXT_VIDEOGRV Scripting
- Opcode 0x06 - VIDEOFLAG6_ONGRV Scripting
- Opcode 0x07 - VIDEOFLAG7_ONGRV Scripting
- Opcode 0x08 - SETBACKGROUNDSONGGRV Scripting
- Opcode 0x09 - VIDEOREFGRV Scripting
- Opcode 0x0A - VIDEOFLAG5_ONGRV Scripting
- Opcode 0x0B - INPUTLOOPSTARTGRV Scripting
- Opcode 0x0C - KEYACTIONGRV Scripting
- Opcode 0x0D - HOTSPOT_RECTGRV Scripting
- Opcode 0x0E - HOTSPOT_LEFTGRV Scripting
- Opcode 0x0F - HOTSPOT_RIGHTGRV Scripting
- Opcode 0x10 - HOTSPOT_CENTERGRV Scripting
- Opcode 0x11 - HOTSPOT_CENTER_2GRV Scripting
- Opcode 0x12 - HOTSPOT_CURRENTGRV Scripting
- Opcode 0x13 - INPUTLOOPENDGRV Scripting
- Opcode 0x14 - RANDOMGRV Scripting
- Opcode 0x15 - JMPGRV Scripting
- Opcode 0x16 - LOADSTRINGGRV Scripting
- Opcode 0x17 - RETGRV Scripting
- Opcode 0x18 - CALLGRV Scripting
- Opcode 0x19 - SLEEPGRV Scripting
- Opcode 0x1A - STRCMP_NE_JMPGRV Scripting
- Opcode 0x1B - XOR_OBFUSCATEGRV Scripting
- Opcode 0x1C - VIDEO_TRANSITION_REFGRV Scripting
- Opcode 0x1D - SWAPGRV Scripting
- Opcode 0x1E - RESERVED_1EGRV Scripting
- Opcode 0x1F - INCGRV Scripting
- Opcode 0x20 - DECGRV Scripting
- Opcode 0x21 - STRCMP_NE_JMP_INDIRECTGRV Scripting
- Opcode 0x22 - COPY_BG_TO_FGGRV Scripting
- Opcode 0x23 - STRCMP_EQ_JMPGRV Scripting
- Opcode 0x24 - MOVGRV Scripting
- Opcode 0x25 - ADDGRV Scripting
- Opcode 0x26 - VIDEO_NAMEGRV Scripting
- Opcode 0x27 - VIDEO_TRANSITION_NAMEGRV Scripting
- Opcode 0x28 - RESERVED_28GRV Scripting
- Opcode 0x29 - STOP_OR_WAIT_MIDIGRV Scripting
- Opcode 0x2A - ENDSCRIPTGRV Scripting
- Opcode 0x2B - NOP_2BGRV Scripting
- Opcode 0x2C - SET_HOTSPOT_TOPGRV Scripting
- Opcode 0x2D - SET_HOTSPOT_BOTTOMGRV Scripting
- Opcode 0x2E - LOADGAMEGRV Scripting
- Opcode 0x2F - SAVEGAMEGRV Scripting
- Opcode 0x30 - HOTSPOT_BOTTOM_4GRV Scripting
- Opcode 0x31 - MIDI_CONTROLGRV Scripting
- Opcode 0x32 - JNE_INDIRECTGRV Scripting
- Opcode 0x33 - LOADSTRING_INDIRECTGRV Scripting
- Opcode 0x34 - CHAR_GREATER_JMPGRV Scripting
- Opcode 0x35 - VIDEOFLAG7_OFFGRV Scripting
- Opcode 0x36 - CHAR_LESS_JMPGRV Scripting
- Opcode 0x37 - COPY_RECT_TO_BGGRV Scripting
- Opcode 0x38 - RESTORESTACKGRV Scripting
- Opcode 0x39 - GRID_SWAPGRV Scripting
- Opcode 0x3A - PRINTSTRINGGRV Scripting
- Opcode 0x3B - HOTSPOT_SAVE_SLOTGRV Scripting
- Opcode 0x3C - CHECK_VALID_SAVESGRV Scripting
- Opcode 0x3D - RESETVARSGRV Scripting
- Opcode 0x3E - MODGRV Scripting
- Opcode 0x3F - LOADSCRIPTGRV Scripting
- Opcode 0x40 - SET_VIDEO_ORIGINGRV Scripting
- Opcode 0x41 - SUBGRV Scripting
- Opcode 0x42 - GAMELOGICGRV Scripting
- Opcode 0x43 - RETURNSCRIPTGRV Scripting
- Opcode 0x44 - SET_HOTSPOT_RIGHTGRV Scripting
- Opcode 0x45 - SET_HOTSPOT_LEFTGRV Scripting
- Opcode 0x46 - RESOURCE_CONTEXT_SAVEGRV Scripting
- Opcode 0x47 - RESOURCE_CONTEXT_RESTOREGRV Scripting
- Opcode 0x48 - SET_VDX_RATE_OVERRIDEGRV Scripting
- Opcode 0x49 - PALETTE_MERGE_ONCEGRV Scripting
- Opcode 0x4A - PCM_DRIVER_PARAMGRV Scripting
- Opcode 0x4B - SET_VIDEO_MODEGRV Scripting
- Opcode 0x4C - GETCDGRV Scripting
- Opcode 0x4D - PLAYCDGRV Scripting
- Opcode 0x4E - MUSICDELAYGRV Scripting
- Opcode 0x4F - RESERVED_4FGRV Scripting
- Opcode 0x50 - RESERVED_50GRV Scripting
- Opcode 0x51 - SET_VIDEO_SKIP_CANDIDATEGRV Scripting
- Opcode 0x52 - COMMIT_OVERLAYGRV Scripting
- Opcode 0x53 - HOTSPOT_OUTSIDE_RECTGRV Scripting
- Opcode 0x54 - NOP_54GRV Scripting
- Opcode 0x55 - SET_SCRIPT_END_CANDIDATEGRV Scripting
- Opcode 0x56 - RESERVED_SOUND_SHAPEGRV Scripting
- Opcode 0x57 - MASK_VIDEO_REF32GRV Scripting
- Opcode 0x58 - MASK_VIDEO_NAMEGRV Scripting
- Opcode 0x59 - CHECK_SOUND_OVERLAY_SHAPEGRV Scripting
- Opcode 0x5A - UNSUPPORTED_T7GGRV Scripting
- Opcode DirectoryGRV Scripting
- Operand Width and High-Bit EncodingGRV Scripting
- Ordered Neighbor TablesPuzzles & Game Logic
- Original Bugs and Compatibility DecisionsEngine Runtime
- Original DOS CompatibilityTools & Modding
- Original Executable Diagnostic StringsFonts & Text
- Original Symbols and Descriptive NamesHistory & Research
- Overlapping BackreferencesCompression
P
- Packed and Unpacked ExecutablesCompression
- Packed LZEXE and Unpacked MZMS-DOS Disassembly
- Padding and Physical LayoutArchives & Resources
- Palette DAC and Vertical RetraceGraphics
- Palette Fades and Black FramesGraphics
- Palette Selection and Style ValuesInput & Cursors
- PCM Interleaving and Visual BoundariesGraphics
- PE Headers and SectionsWindows Disassembly
- Persistent and Local DeclarationsInput & Cursors
- Piece Counts and ScoringPuzzles & Game Logic
- PIX and the VDX Production PathHistory & Research
- Platform Abstractions and Host ReplacementsEngine Runtime
- Platform Credits and Hidden ContentHistory & Research
- Platform Dialects and Operand ExceptionsGRV Scripting
- Play PLAYTLC and the Promotional DemoHistory & Research
- Presentation Command OrderingGRV Scripting
- PRINTSTRING and RenderingFonts & Text
- Puzzle Completion and EndgamePuzzles & Game Logic
R
- Random State and Inclusive BoundsGRV Scripting
- Ranked Candidate SearchPuzzles & Game Logic
- Raw and Compressed PayloadsGraphics
- Rebuilding an Index After Payload ChangesArchives & Resources
- Recursive SearchPuzzles & Game Logic
- Relocating Code and Branch TargetsGRV Scripting
- Render and Presentation PipelineGraphics
- Repacking and Relocating PayloadsArchives & Resources
- Repacking XMI.RL and XMI.GJDTools & Modding
- Replacing a VDX AnimationTools & Modding
- Replacing a VDX StillTools & Modding
- Replacing Font GlyphsTools & Modding
- Replacing Speech and Sound EffectsTools & Modding
- Resource and Save PathsWindows Disassembly
- Resource Map and Resource IDsMacintosh Disassembly
- Resource Names and Duplicate EntriesArchives & Resources
- Resource Order and Stable ReferencesTools & Modding
- Resource References and Named VideoGRV Scripting
- Responsive Window MappingInput & Cursors
- Retail Script and Resource InventoryHistory & Research
- RGB Encoding and QuantizationGraphics
- RL and GJD Archive ManifestsTools & Modding
- ROB.GJD Blob LayoutInput & Cursors
- Room and Script CataloguePuzzles & Game Logic
- Room Navigation and TeleportsPuzzles & Game Logic
- Room Script InventoryGRV Scripting
S
- Sample Format and Playback RateAudio & Music
- Save and Load CommandsGRV Scripting
- Save Slot Captions and Empty SlotsFonts & Text
- Scene Coordinates and Original Screen BarsGraphics
- Script and Map DataPuzzles & Game Logic
- Scripted Logic and Native HelpersPuzzles & Game Logic
- Script File LayoutGRV Scripting
- SCRIPT.GRV and the Main MenuGRV Scripting
- Search Workspace and SnapshotsPuzzles & Game Logic
- Segmented Address SpacesEngine Runtime
- Separate Executable Forks and Canonical SourceTools & Modding
- Sequence Startup and ReplacementAudio & Music
- Sequence Volume and RampsAudio & Music
- Shape and Palette Pointer TablesInput & Cursors
- Shared Variables and ProgressionPuzzles & Game Logic
- Six-Bit and Eight-Bit Palette ComponentsGraphics
- Sixteen-Index Delta TilesGraphics
- Skipped Tiles and Unchanged PixelsGraphics
- Sliding Dictionary and Initial HistoryCompression
- Solid Runs and Repeated TilesGraphics
- Song and Resource IndexAudio & Music
- Source Layout and Emission OrderMS-DOS Disassembly
- Startup and Command-Line DispatchEngine Runtime
- Static Analysis and Indirect ReferencesHistory & Research
- Static Workspace and Initialized DataMS-DOS Disassembly
- Still Frame Chunk 0x20Graphics
- Still Image Cache and XMSGraphics
- Strategy Modes and PhasesPuzzles & Game Logic
- Stream Buffers and Partial ReadsGraphics
- Streaming Buffers and CompletionAudio & Music
- Strings and Variable InterpolationGRV Scripting
T
- T7GData and HDISK.RLArchives & Resources
- T7GData Archive and FF SeparatorsMacintosh Disassembly
- T7GM Scripts and IndexesMacintosh Disassembly
- T7SG Save ResourcesMacintosh Disassembly
- Ties and Random SelectionPuzzles & Game Logic
- Tile Coordinates and Image DimensionsGraphics
- Timers and Tick CountersEngine Runtime
- Timer Scheduling and CallbacksAudio & Music
- Timing and Note DurationsAudio & Music
- TLC and FLIC BridgeHistory & Research
- Toolkit OverviewTools & Modding
- Truncation and Output BoundsCompression
- Twelve-Bit DictionaryCompression
- Two-Color Still TilesGraphics
U
- Unresolved Code and Data CatalogueHistory & Research
- Unresolved Functions and Source OwnershipWindows Disassembly
- Unresolved Symbols and BoundariesMacintosh Disassembly
- Unsupported and Reserved OpcodesGRV Scripting
V
- Valid Slot DiscoverySavegames
- Variables and Reserved StateGRV Scripting
- VDX Rendering and CCC TablesWindows Disassembly
- Version 1.02b1 and Canonical ArtifactWindows Disassembly
- Version 1.0 and Canonical ArtifactsMacintosh Disassembly
- Version 1.30 and Canonical ArtifactsMS-DOS Disassembly
- Video Flags and TransparencyGraphics
- Video Hardware DetectionMS-DOS Disassembly
W
- Windows and Linux BuildsTools & Modding
- Windows Built-In RectanglesInput & Cursors
- Windows DecoderCompression
- Windows Input and Key QueueWindows Disassembly
- Windows Variable PayloadSavegames
- WinMain and the Message LoopWindows Disassembly
- Workspace and Original AssetsTools & Modding
X
- XMS Allocation and Move DescriptorsEngine Runtime
- XMS Cache and Background TransfersMS-DOS Disassembly
Z
- Zaphod BeeblebroxPuzzles & Game Logic