Difference between revisions of "AGI/Specifications"

From ScummVM :: Wiki
< AGI
Jump to navigation Jump to search
m (adding wikilinks to individual pages, not just sections)
 
(13 intermediate revisions by 6 users not shown)
Line 1: Line 1:
==[[AGI Specifications/Introduction|AGI Specifications v3.0, 22 May 1999]]==
==[[AGI/Specifications/Introduction|AGI Specifications v3.2, 17 July 2007]]==


Lance Ewing, Peter Kelly, Claudio Matsuoka, Stu George
Lance Ewing, Peter Kelly, Claudio Matsuoka, Stu George, David Symonds




Line 7: Line 7:




     * 1.1 [[AGI Specifications/Introduction#About|About]]
     * 1.1 [[AGI/Specifications/Introduction#About|About]]
     * 1.2 [[AGI Specifications/Introduction#Audience|Audience]]
     * 1.2 [[AGI/Specifications/Introduction#Audience|Audience]]
     * 1.3 [[AGI Specifications/Introduction#Conventions|Conventions used in this document]]
     * 1.3 [[AGI/Specifications/Introduction#Conventions|Conventions used in this document]]
     * 1.4 [[AGI Specifications/Introduction#WhatsStillMissing|What's still missing]]
     * 1.4 [[AGI/Specifications/Introduction#WhatsStillMissing|What's still missing]]
     * 1.5 [[AGI Specifications/Introduction#ChangeLog|Change log]]
     * 1.5 [[AGI/Specifications/Introduction#ChangeLog|Change log]]
     * 1.6 [[AGI Specifications/Introduction#Credits|Credits]]
     * 1.6 [[AGI/Specifications/Introduction#Credits|Credits]]


==[[AGI Specifications/Overview|General AGI overview]]==
==[[AGI/Specifications/Overview|General AGI overview]]==


     * 2.1 [[AGI Specifications/Overview#Versions|Versions of the AGI interpreter]]
     * 2.1 [[AGI/Specifications/Overview#Versions|Versions of the AGI interpreter]]
     * 2.2 [[AGI Specifications/Overview#GameFiles|AGI game files]]
     * 2.2 [[AGI/Specifications/Overview#GameFiles|AGI game files]]
     * 2.3 [[AGI Specifications/Overview#Logic|LOGIC, PICTURE, SOUND, and VIEW data files]]
     * 2.3 [[AGI/Specifications/Overview#Logic|LOGIC, PICTURE, SOUND, and VIEW data files]]
     * 2.4 [[AGI Specifications/Overview#Ego|What is Ego?]]
     * 2.4 [[AGI/Specifications/Overview#Ego|What is Ego?]]
     * 2.5 [[AGI Specifications/Overview#Commands|AGI commands]]
     * 2.5 [[AGI/Specifications/Overview#Commands|AGI commands]]
     * 2.6 [[AGI Specifications/Overview#Debug|Debug modes]]
     * 2.6 [[AGI/Specifications/Overview#Debug|Debug modes]]
     * 2.7 [[AGI Specifications/Overview#Priority|Priority bands and control lines]]
     * 2.7 [[AGI/Specifications/Overview#Priority|Priority bands and control lines]]


==[[AGI Specifications/Internals|AGI internals]]==
==[[AGI/Specifications/Internals|AGI internals]]==


     * 3.1 [[AGI Specifications/Internals#Interpreter|How the interpreter works]]
     * 3.1 [[AGI/Specifications/Internals#Interpreter|How the interpreter works]]
     * 3.2 [[AGI Specifications/Internals#VariableTypes|Variable types]]
     * 3.2 [[AGI/Specifications/Internals#VariableTypes|Variable types]]
     * 3.3 [[AGI Specifications/Internals#Variables|Variables used by the interpreter]]
     * 3.3 [[AGI/Specifications/Internals#Variables|Variables used by the interpreter]]
     * 3.4 [[AGI Specifications/Internals#Flags|Flags used by the interpreter]]
     * 3.4 [[AGI/Specifications/Internals#Flags|Flags used by the interpreter]]
     * 3.5 [[AGI Specifications/Internals#Memory|Memory organization]]
     * 3.5 [[AGI/Specifications/Internals#Memory|Memory organization]]
     * 3.6 [[AGI Specifications/Internals#GameID|Game IDs and loaders]]
     * 3.6 [[AGI/Specifications/Internals#GameID|Game IDs and loaders]]
     * 3.7 [[AGI Specifications/Internals#Encryption|Encrypted AGI data]]
     * 3.7 [[AGI/Specifications/Internals#Encryption|Encrypted AGI data]]
     * 3.8 [[AGI Specifications/Internals#Input|Player input parsing]]
     * 3.8 [[AGI/Specifications/Internals#Input|Player input parsing]]
     * 3.9 [[AGI Specifications/Internals#InterpreterVersions|AGI interpreter versions]]
     * 3.9 [[AGI/Specifications/Internals#InterpreterVersions|AGI interpreter versions]]
     * 3.10 [[AGI Specifications/Internals#VersionDifferences|Version differences]]
     * 3.10 [[AGI/Specifications/Internals#VersionDifferences|Version differences]]


==[[AGI Specifications/Logic|The LOGIC language]]==
==[[AGI/Specifications/Logic|The LOGIC language]]==


     * 4.1 [[AGI Specifications/Logic#Logic|LOGIC syntax]]
     * 4.1 [[AGI/Specifications/Logic#Logic|LOGIC syntax]]
     * 4.2 [[AGI Specifications/Logic#CommandRef|Reference of the LOGIC commands]]
     * 4.2 [[AGI/Specifications/Logic#CommandRef|Reference of the LOGIC commands]]
     * 4.3 [[AGI Specifications/Logic#Sample|Discussion of sample LOGIC code from KQ4 ]]
     * 4.3 [[AGI/Specifications/Logic#Sample|Discussion of sample LOGIC code from KQ4 ]]


==[[AGI Specifications/Formats|Formats of the resource files]]==
==[[AGI/Specifications/Formats|Formats of the resource files]]==


     * 5.1 [[AGI Specifications/Formats#Dir|Directory files]]
     * 5.1 [[AGI/Specifications/Formats#Dir|Directory files]]
     * 5.2 [[AGI Specifications/Formats#Vol2|Format of Vol files (version 2)]]
     * 5.2 [[AGI/Specifications/Formats#Vol2|Format of Vol files (version 2)]]
     * 5.3 [[AGI Specifications/Formats#Vol3|Format of Vol files (version 3)]]
     * 5.3 [[AGI/Specifications/Formats#Vol3|Format of Vol files (version 3)]]
     * 5.4 [[AGI Specifications/Formats#Sample|Sample code]]
     * 5.4 [[AGI/Specifications/Formats#Sample|Sample code]]


==[[AGI Specifications/Resources|LOGIC resources]]==
==[[AGI/Specifications/Resources|LOGIC resources]]==


     * 6.1 [[AGI Specifications/Resources#Intro|Introduction]]
     * 6.1 [[AGI/Specifications/Resources#Intro|Introduction]]
     * 6.2 [[AGI Specifications/Resources#CmdList|Command list and argument types]]
     * 6.2 [[AGI/Specifications/Resources#CmdList|Command list and argument types]]
     * 6.3 [[AGI Specifications/Resources#LogicFormat|LOGIC resource format]]
     * 6.3 [[AGI/Specifications/Resources#LogicFormat|LOGIC resource format]]
    * 6.4 [[AGI Specifications/Resources#Sample|Sample code]]


==[[AGI Specifications/Pic|PICTURE resources]]==
==[[AGI/Specifications/Pic|PICTURE resources]]==


     * 7.1 [[AGI Specifications/Pic#Intro|Introduction]]
     * 7.1 [[AGI/Specifications/Pic#Intro|Introduction]]
     * 7.2 [[AGI Specifications/Pic#PicFormat|PICTURE resource format]]
     * 7.2 [[AGI/Specifications/Pic#PicFormat|PICTURE resource format]]
     * 7.3 [[AGI Specifications/Pic#Implementation|Implementation]]
     * 7.3 [[AGI/Specifications/Pic#Implementation|Implementation]]
     * 7.4 [[AGI Specifications/Pic#HiRes|Using higher resolution modes]]
     * 7.4 [[AGI/Specifications/Pic#HiRes|Using higher resolution modes]]
     * 7.5 [[AGI Specifications/Pic#PicEdit|Sierra's picture editor]]
     * 7.5 [[AGI/Specifications/Pic#PicEdit|Sierra's picture editor]]
     * 7.6 [[AGI Specifications/Pic#Sample|Sample code]]
     * 7.6 [[AGI/Specifications/Pic#Sample|Sample code]]


==[[AGI Specifications/View|VIEW resources]]==
==[[AGI/Specifications/View|VIEW resources]]==


     * 8.1 [[AGI Specifications/View#Intro|Introduction]]
     * 8.1 [[AGI/Specifications/View#Intro|Introduction]]
     * 8.2 [[AGI Specifications/View#ViewFormat|VIEW resource format]]
     * 8.2 [[AGI/Specifications/View#ViewFormat|VIEW resource format]]
     * 8.3 [[AGI Specifications/View#ViewTable|VIEW table]]
     * 8.3 [[AGI/Specifications/View#ViewTable|VIEW table]]
     * 8.4 [[AGI Specifications/View#ViewTest|VIEW test commands]]
     * 8.4 [[AGI/Specifications/View#ViewTest|VIEW test commands]]
     * 8.5 [[AGI Specifications/View#Sample|Sample code ]]
     * 8.5 [[AGI/Specifications/View#Sample|Sample code ]]


==[[AGI Specifications/Sound|SOUND resources]]==
==[[AGI/Specifications/Sound|SOUND resources]]==


     * 9.1 [[AGI Specifications/Sound#Intro|Introduction]]
     * 9.1 [[AGI/Specifications/Sound#Intro|Introduction]]
     * 9.2 [[AGI Specifications/Sound#PCJr|Sound in the IBM PCjr]]
     * 9.2 [[AGI/Specifications/Sound#PCJr|Sound in the IBM PCjr]]
     * 9.3 [[AGI Specifications/Sound#IIgs|Sound in the Apple IIgs]]
     * 9.3 [[AGI/Specifications/Sound#IIgs|Sound in the Apple IIgs]]
     * 9.4 [[AGI Specifications/Sound#Other|Sound in other platforms]]
     * 9.4 [[AGI/Specifications/Sound#Other|Sound in other platforms]]
     * 9.5 [[AGI Specifications/Sound#PCJrFormat|SOUND resource format (PCjr version)]]
     * 9.5 [[AGI/Specifications/Sound#PCJrFormat|SOUND resource format (PCjr version)]]
     * 9.6 [[AGI Specifications/Sound#IIgsFormat|SOUND resource format (IIgs version)]]
     * 9.6 [[AGI/Specifications/Sound#IIgsFormat|SOUND resource format (IIgs version)]]
     * 9.7 [[AGI Specifications/Sound#Playing|Playing the sounds on a sound card]]
     * 9.7 [[AGI/Specifications/Sound#Playing|Playing the sounds on a sound card]]
     * 9.8 [[AGI Specifications/Sound#Sample|Sample code]]
     * 9.8 [[AGI/Specifications/Sound#Sample|Sample code]]


==[[AGI Specifications/Data|Other game data]]==
==[[AGI/Specifications/Data|Other game data]]==


     * 10.1 [[AGI Specifications/Data#Object|Format of the object file]]
     * 10.1 [[AGI/Specifications/Data#Object|Format of the object file]]
     * 10.2 [[AGI Specifications/Data#Words|Format of words.tok]]
     * 10.2 [[AGI/Specifications/Data#Words|Format of words.tok]]
     * 10.3 [[AGI Specifications/Data#Sample|Sample code]]
     * 10.3 [[AGI/Specifications/Data#Sample|Sample code]]


==[[AGI Specifications/Other|Other information]]==
==[[AGI/Specifications/Other|Other information]]==


     * 11.1 [[AGI Specifications/Other#AGDS|The AGDS package]]
     * 11.1 [[AGI/Specifications/Other#AGDS|The AGDS package]]
     * 11.2 [[AGI Specifications/Other#Thunder|The making of the Thunderstorm educational Program]]
     * 11.2 [[AGI/Specifications/Other#Thunder|The making of the Thunderstorm educational Program]]
     * 11.3 [[AGI Specifications/Other#Terps|Other AGI interpreters]]
     * 11.3 [[AGI/Specifications/Other#Terps|Other AGI interpreters]]
 
==[[AGI/Specifications/Booters|Booter versions of AGI games]]==
 
    * 12.1 [[AGI/Specifications/Booters#DDP|Donald Duck's Playground]]
 
==[[AGI/Specifications/Fan Made Extensions|Fan-Made Extensions to the AGI Engine]]==
 
    * 13.1 [[AGI/Specifications/Fan Made Extensions#AGIPAL|AGIPAL]]
    * 13.2 [[AGI/Specifications/Fan Made Extensions#AGI256|AGI256]]
    * 13.3 [[AGI/Specifications/Fan Made Extensions#AGI256-2|AGI256-2]]
 
==[[AGI/Specifications/Savegame|Savegame files]]==
 
    * 14.1 [[AGI/Specifications/Savegame#Introduction|Introduction]]
    * 14.2 [[AGI/Specifications/Savegame#Saved_Game_Format|Saved Game Format]]
    * 14.3 [[AGI/Specifications/Savegame#Restoring_a_Game|Restoring a Game]]

Latest revision as of 22:22, 11 March 2017

AGI Specifications v3.2, 17 July 2007

Lance Ewing, Peter Kelly, Claudio Matsuoka, Stu George, David Symonds


This document is a collection of all the information currently known about the structure and operation of the Adventure Game Interpreter, used in 1984--1989 for a variety of adventure games published by Sierra On-Line such as Space Quest I and II, and Leisure Suit Larry in the Land of the Lounge Lizards.


   * 1.1 About
   * 1.2 Audience
   * 1.3 Conventions used in this document
   * 1.4 What's still missing
   * 1.5 Change log
   * 1.6 Credits

General AGI overview

   * 2.1 Versions of the AGI interpreter
   * 2.2 AGI game files
   * 2.3 LOGIC, PICTURE, SOUND, and VIEW data files
   * 2.4 What is Ego?
   * 2.5 AGI commands
   * 2.6 Debug modes
   * 2.7 Priority bands and control lines

AGI internals

   * 3.1 How the interpreter works
   * 3.2 Variable types
   * 3.3 Variables used by the interpreter
   * 3.4 Flags used by the interpreter
   * 3.5 Memory organization
   * 3.6 Game IDs and loaders
   * 3.7 Encrypted AGI data
   * 3.8 Player input parsing
   * 3.9 AGI interpreter versions
   * 3.10 Version differences

The LOGIC language

   * 4.1 LOGIC syntax
   * 4.2 Reference of the LOGIC commands
   * 4.3 Discussion of sample LOGIC code from KQ4 

Formats of the resource files

   * 5.1 Directory files
   * 5.2 Format of Vol files (version 2)
   * 5.3 Format of Vol files (version 3)
   * 5.4 Sample code

LOGIC resources

   * 6.1 Introduction
   * 6.2 Command list and argument types
   * 6.3 LOGIC resource format

PICTURE resources

   * 7.1 Introduction
   * 7.2 PICTURE resource format
   * 7.3 Implementation
   * 7.4 Using higher resolution modes
   * 7.5 Sierra's picture editor
   * 7.6 Sample code

VIEW resources

   * 8.1 Introduction
   * 8.2 VIEW resource format
   * 8.3 VIEW table
   * 8.4 VIEW test commands
   * 8.5 Sample code 

SOUND resources

   * 9.1 Introduction
   * 9.2 Sound in the IBM PCjr
   * 9.3 Sound in the Apple IIgs
   * 9.4 Sound in other platforms
   * 9.5 SOUND resource format (PCjr version)
   * 9.6 SOUND resource format (IIgs version)
   * 9.7 Playing the sounds on a sound card
   * 9.8 Sample code

Other game data

   * 10.1 Format of the object file
   * 10.2 Format of words.tok
   * 10.3 Sample code

Other information

   * 11.1 The AGDS package
   * 11.2 The making of the Thunderstorm educational Program
   * 11.3 Other AGI interpreters

Booter versions of AGI games

   * 12.1 Donald Duck's Playground

Fan-Made Extensions to the AGI Engine

   * 13.1 AGIPAL
   * 13.2 AGI256
   * 13.3 AGI256-2

Savegame files

   * 14.1 Introduction
   * 14.2 Saved Game Format
   * 14.3 Restoring a Game