Home






AIBO Action File Format
Contents of this website are freeware and/or copyrighted material, and may not be sold under any circumstances.
Email: dogsbody@dogsbodynet.com     Home: http://dogsbodynet.com


Table of Contents
  1. Introduction
  2. AMS1.0 Format
  3. AMS1.1 Format
  4. AMS1.1 Block Records
  5. AMS1.1 Entry Records
  6. Example

1. Introduction

AIBO Action Files (*.act) are used to organize individual skits.   They tell Skitter (and Master Studio) which Motion/LED/Sound files belong together.   Action files store the filenames of the various skit elements, along with the action/skit name, comments, and the platform type (110/210/220/310/7).

There are two versions of the action file.   The first version (AMS1.0) only supports the 210.   The second version (AMS1.1) can support all AIBO platforms.



2. AMS1.0 Format

The first action file format uses fixed size fields for everything.   It's organized in three blocks, but none ever change size.  This makes loading/saving the format very easy.   There are numerous unknown fields, which always appear to be zero.

struct action_entry_type {
unsigned signature; // "OACT"
unsigned block0_id; // always 0
unsigned block0_len; // always 0x10 (len of block)
unsigned unknown[2]; // Version info?

unsigned block1_id; // always 1
unsigned block1_len; // always 0x408 (len of block)
char action_title[0x100];
char action_company[0x100];
char action_model[0x100];
char action_comment[0x100];

unsigned block2_id; // always 2
unsigned block2_len; // always 0x434 (len of block)
char action_motion[0x100];
unsigned unknown2; // always 0
char action_sound[0x100];
unsigned unknown3; // always 0
char action_led[0x100];
unsigned unknown4; // always 0
char action_mark[0x100];
unsigned unknown5[2]; // always 0
unsigned motion_valid; // Set 1 if motion valid.
unsigned sound_valid; // Set 1 if sound valid (MIDI/WAV)
unsigned led_valid; // Set 1 if led valid.
unsigned unknown6; // always 0
unsigned start_time; // Sound start time.
unsigned unknown7; // always 0
};

The motion/sound/led fields hold pathnames relative to the position of the action file.   For example:
  • Motion\myskit.mtn
  • Sound\myskit.wav
  • LED\myskit.led
The marker file is used internally by only Master Studio.  Marker files are ignored by Skitter.



3. AMS1.1 Format

The newer action file format is more complicated, with a different block organization and variable size data fields.   However, these files are generally much smaller than the AMS1.0 format as a result.   The files consist of a signature followed by one or more block records.

struct atn_header_type {
unsigned signature; "OATN"
};


4. AMS1.1 Block Records

struct atn_block_type {
unsigned short block_len; // len not inclusive of atn_block_type
unsigned short block_type;
};

The block types are:
  • 0x0000 - Action Info Block
  • 0x0100 - Filename Blocks
  • 0xFFFF - End of file indicator
Blocks contain one or more entry records.   There is always an action info block, followed by up to three filename blocks.  Filename blocks are always ordered: Motion, Sound, LED.

Pathnames stored in the filename blocks are relative to the position of the action file.   For example:
  • Motion\myskit.mtn
  • Sound\myskit.wav
  • LED\myskit.led

5. AMS1.1 Entry Records

struct atn_entry_type {
unsigned short entry_len; // len not inclusive of atn_entry_type
unsigned short entry_type;
};

Action Info Block entry types are:
  • 0x0002 Action Name
  • 0x0003 Creator Name
  • 0x0004 AIBO Model (ie: "ERS-210")
  • 0x0005 AIBO Platform (ie: "DRX-910")
  • 0x0006 Comment
  • 0x0080 Company Name
Filename Block entry types are:
  • 0x0101 Unknown (4-byte value)
  • 0x0102 Filename
  • 0x0103 Set 1 if filename valid (4-byte value)
  • 0x0104 Start Time if sound file (in keyframes).  Zero otherwise.
  • 0x0105 Unknown


6. Example

Green: Block Record Headers
Brown: Entry Record Headers
000000:  4f 41 54 4e  5d 00 00 00  05 00 02 00  70 69 61 6e  |OATN].......pian|
000010:  6f 07 00 03 00 53 6b 69  74 74 65 72  1b 00 80 00 |o....Skitter....|
000020:  44 6f 67 73  42 6f 64 79  20 26 20 52  61 74 63 68  |DogsBody & Ratch|
000030:  65 74 20 53  6f 66 74 77  61 72 65 07  00 04 00 45  |et Software....E|
000040:  52 53 2d 32  31 30 07 00  05 00 44 52 58 2d 39 31  |RS-210....DRX-91|
000050:  30 00 00 06 00 04 00 07  00 01 00 00  00 04 00 08 |0...............|
000060:  00 03 00 00  00 34 00 00  01 04 00 01  01 02 00 00  |.....4..........|
000070:  00 10 00 02 01 4d 6f 74  69 6f 6e 5c  70 69 61 6e |.....Motion\pian|
000080:  6f 2e 6d 74  6e 04 00 03  01 01 00 00  00 04 00 04 |o.mtn...........|
000090:  01 00 00 00  00 04 00 05  01 00 00 00  00 33 00 00 |.............3..|
0000a0:  01 04 00 01  01 00 00 00  00 0f 00 02  01 53 6f 75  |.............Sou|
0000b0:  6e 64 5c 70  69 61 6e 6f  2e 6d 69 64  04 00 03 01 |nd\piano.mid....|
0000c0:  01 00 00 00  04 00 04 01  e1 00 00 00  04 00 05 01 |................|
0000d0:  00 00 00 00  31 00 00 01  04 00 01 01  00 00 00 00  |....1...........|
0000e0:  0d 00 02 01 4c 45 44 5c  70 69 61 6e  6f 2e 6c 65  |....LED\piano.le|
0000f0:  64 04 00 03 01 01 00 00  00 04 00 04  01 00 00 00  |d...............|
000100:  00 04 00 05 01 00 00 00  00 00 00 ff  ff          |.............   |
Download Example