Difference between revisions of "AGI/Specifications"

From ScummVM :: Wiki
< AGI
Jump to navigation Jump to search
m (changed resource link title)
(Moved AGISpecifications/* pages to 'AGI Specifications/*' to fix subpage links)
Line 7: Line 7:




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


==General AGI overview==
==General AGI overview==


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


==AGI internals==
==AGI internals==


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


==The LOGIC language==
==The LOGIC language==


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


==Formats of the resource files==
==Formats of the resource files==


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


==LOGIC resources==
==LOGIC resources==


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


==PICTURE resources==
==PICTURE resources==


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


==VIEW resources==
==VIEW resources==


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


==SOUND resources==
==SOUND resources==


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


==Other game data==
==Other game data==


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


==Other information==
==Other information==


     * 11.1 [[AGISpecifications/Other#AGDS|The AGDS package]]
     * 11.1 [[AGI Specifications/Other#AGDS|The AGDS package]]
     * 11.2 [[AGISpecifications/Other#Thunder|The making of the Thunderstorm educational Program]]
     * 11.2 [[AGI Specifications/Other#Thunder|The making of the Thunderstorm educational Program]]
     * 11.3 [[AGISpecifications/Other#Terps|Other AGI interpreters]]
     * 11.3 [[AGI Specifications/Other#Terps|Other AGI interpreters]]

Revision as of 11:23, 15 October 2006

AGI Specifications v3.0, 22 May 1999

Lance Ewing, Peter Kelly, Claudio Matsuoka, Stu George


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 [[AGI Specifications/Formats#Vol3|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
   * 6.4 Sample code

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