Specification for AGT binary file formats

When you compile an AGT game, it creates up to 6 binary files with the following file extensions:

  • D$$ (encrypted messages)
  • DA1 (general data)
  • DA2 (rooms)
  • DA3 (nouns)
  • DA4 (creatures - optional)
  • DA5 (commands - optional)

DA6 is also included in some games, but it’s not mentioned in the AGT documentation.

Is there a specification for the file format used by these files?

In case you’re wondering, I’m trying to identify the version of AGT that was used to compile the games. I’m also interested in cross-compatibility between systems (PC, Mac, Atari ST & Amiga).

for much more than identify, there’s that nifty agility tool called agtout, whose not only ID version, but also gives out a complete disassembling of the story file.

an excerpt of agtout, from the binary of electrabot :

General Information:(ver=1, aver=5)
Signature: 55728
AGT Version Classic,  (Size:SMALL)
	Start room: 2    Treas Room: 3000    Resurrect Room: 2
	Lives: 3    Max Score: 100
	<DEBUG>	Status Mode 0    Score mode 0   Time 0+0

Ranges--  Room: 2..199   Noun: 200..218   Creature: 300..309
     ExitMsg Base:1000
Max--	Vars: 50    Counters: 50    Flags: 255   User Strings: 0
	Metacommands: 0     Subroutines: 0    Error Messages: 0
	Vocabulary: 282

  Static String Size:   1559    Syntbl Size:   1744
  Data size-- Room: 15840   Noun:  1824    Creat:   560
      Commands: Headers:     0   Text:     0     Total:     0
      Dictionary:  Dict:  2256       Text:  2171( 3072)    Tot:  4427

  Num of Objs-- Room: 198/198   Noun:  19/100  Creat:  10/100
      Message: 250/250    Cmd:    0/ 400


preceded by the reporting of the results of the opening of the various ELECTRA.D* files, and followed by the disassembled data of rooms, nouns (that is, objects), creatures, the intro text, commands and messages (none in electrabot)

lastly, I’m not 100% sure, but ISTR that .DA6 was the picture (and sound ?) files, the few master stories whose actualy used graphic.

HTH and
Best regards from Italy,
Dott. Piergiorgio.

1 Like

Thank you. This is very useful. The versioning of AGT is a bit of a mess. It’s sometimes numeric and sometimes not. I thought I’d be able to get the version from one of the files, but that’s not the case. Instead, AgtOut does a lot of clever guesstimation. ver is not the version, but the size, where 0 = unknown, 1 = small, 2 = big, 4 = masters. aver is not really a version but a sort of compatibility level that takes account of the vagaries of some of the better known games.

At any rate, I should be able to use this in conjunction with the AGT source code (or actually, the AGiliTy source code) and a lot of trial and error to work out file compatibility on different platforms.