Difference between revisions of "AGI/Specifications"

From ScummVM :: Wiki
< AGI
Jump to navigation Jump to search
m (trying subpage for part1)
m (changed links to point to subpages)
Line 28: Line 28:
==AGI internals==
==AGI internals==


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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

Revision as of 14:27, 16 September 2006

This is being slowly wikified and the specs added --df 14:01, 18 August 2006 (UTC)

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 Version 3 resource storage
   * 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