Home






AIBO MWC 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. MWC Header
  3. MWC Block Record
  4. MWC Chunk Record
  5. Chunk Type Codes
  6. Example

1. Introduction

AIBO MWC (Middleware Catalog) files are index tables, for associating the elements/chunks stored in ODA files.   Since AIBO stores Motion, LED & Sound elements separately, it needs a way to know which elements belong together.

The MWC file tells AIBO which elements go together, and provide AIBO a reference number called the MWCID.   The MWCID can be used directly within R-Code to play a skit, using the PLAY:MWCID:<value> command.   Generally though human readable names are preferable (see Action Config Files).

Following the header are block & chunk records.   Each block record is immediately followed by its associated variable sized chunk records (a chunk header plus variable size chunk name).

For example, an MWC file with blocks containing 3, 2, and 1 chunks in turn:
<header> <block> <chunk> <chunk> <chunk> <block> <chunk> <chunk> <block> <chunk>
These files may be optionally GZIP compressed (AIBO can decompress them on-the-fly).


2. MWC Header

struct mwc_header_type {
char signature[4]; // "MWCM"
int version;
int num_blocks;
int num_chunks;
};

3. MWC Block Record

struct mwc_block_type {
char signature[4]; // "MCID"
int mwcid;
int num_chunks;
};

4. MWC Chunk Record

Chunk headers are followed by the variable length chunk name (length specified by the 'namelen' field below).

struct mwc_chunk_header_type {
char signature[4]; // "CMAC"
int chunktype; // See type codes below.
int repeat_count;
int starttime;
int alwayszero;
short synchronize; // Chunk elements should be synchronized
short special; // Chunk is special system action
char namelen;
};

5. Chunk Types Codes
CHUNK_MOTION              0x1000
CHUNK_MOTION_ALL        0x1010
CHUNK_MOTION_MOUTH      0x1020
CHUNK_MOTION_HEADAXIS   0x1030
CHUNK_MOTION_LEGS       0x1040
CHUNK_MOTION_TAIL       0x1050
CHUNK_MOTION_EARS       0x1060

CHUNK_SOUND             0x2000
CHUNK_SOUND_ALL         0x2010

CHUNK_LED               0x3000
CHUNK_LED_PAUSE         0x3000
CHUNK_LED_EYES          0x3030
CHUNK_LED_TAIL          0x3050

CHUNK_LED_220HEADLIGHT  0x3002
CHUNK_LED_220MOUTHRED   0x3003
CHUNK_LED_220MOUTHBOTTOM 0x3020
CHUNK_LED_220MOUTHTOP   0x3060
CHUNK_LED_220TAILFAN    0x3070

CHUNK_LED_7             0x3000     // Mode LED's
CHUNK_LED_7A            0x3003     // WLAN LED
CHUNK_LED_7B            0x3030     // Face Matrix LED's
CHUNK_LED_7C            0x3060     // Head Touch LED's
CHUNK_LED_7D            0x3070     // Back LED's

6. Example
000000:  4d 57 43 4d  01 00 00 00  0a 00 00 00  0e 00 00 00  |MWCM............|
000010:  4d 43 49 44  c1 5d 00 00  01 00 00 00  43 4d 41 43  |MCID.]......CMAC|
000020:  10 10 00 00  01 00 00 00  00 00 00 00  00 00 00 00  |................|
000030:  01 00 00 00  16 61 5f 73  74 61 6e 64  23 73 74 61  |.....a_stand#sta|
000040:  6e 64 5f 6d  74 6e 32 34  30 30 31 4d  43 49 44 c2  |nd_mtn24001MCID.|
000050:  5d 00 00 01  00 00 00 43  4d 41 43 10  10 00 00 01  |]......CMAC.....|
000060:  00 00 00 00  00 00 00 00  00 00 00 01  00 00 00 16  |................|
000070:  61 5f 73 74  61 6e 64 23  73 74 61 6e  64 5f 6d 74  |a_stand#stand_mt|
000080:  6e 32 34 30  30 32 4d 43  49 44 c3 5d  00 00 01 00  |n24002MCID.]....|
000090:  00 00 43 4d  41 43 10 10  00 00 01 00  00 00 00 00  |..CMAC..........|
0000a0:  00 00 00 00  00 00 01 00  00 00 16 61  5f 73 74 61  |...........a_sta|
0000b0:  6e 64 23 73  74 61 6e 64  5f 6d 74 6e  32 34 30 30  |nd#stand_mtn2400|
0000c0:  33 4d 43 49  44 c4 5d 00  00 01 00 00  00 43 4d 41  |3MCID.]......CMA|
0000d0:  43 10 10 00  00 01 00 00  00 00 00 00  00 00 00 00  |C...............|
0000e0:  00 01 00 00  00 16 61 5f  73 74 61 6e  64 23 73 74  |......a_stand#st|
0000f0:  61 6e 64 5f  6d 74 6e 32  34 30 30 34  4d 43 49 44  |and_mtn24004MCID|
000100:  c5 5d 00 00  01 00 00 00  43 4d 41 43  10 10 00 00  |.]......CMAC....|
000110:  01 00 00 00  00 00 00 00  00 00 00 00  01 00 00 00  |................|
000120:  16 61 5f 73  74 61 6e 64  23 73 74 61  6e 64 5f 6d  |.a_stand#stand_m|
000130:  74 6e 32 34  30 30 35 4d  43 49 44 c6  5d 00 00 01  |tn24005MCID.]...|
000140:  00 00 00 43  4d 41 43 10  10 00 00 01  00 00 00 00  |...CMAC.........|
000150:  00 00 00 00  00 00 00 01  00 00 00 16  61 5f 73 74  |............a_st|
000160:  61 6e 64 23  73 74 61 6e  64 5f 6d 74  6e 32 34 30  |and#stand_mtn240|
000170:  30 36 4d 43  49 44 c7 5d  00 00 01 00  00 00 43 4d  |06MCID.]......CM|
000180:  41 43 10 10  00 00 01 00  00 00 00 00  00 00 00 00  |AC..............|
000190:  00 00 01 00  00 00 16 61  5f 73 74 61  6e 64 23 73  |.......a_stand#s|
0001a0:  74 61 6e 64  5f 6d 74 6e  32 34 30 30  37 4d 43 49  |tand_mtn24007MCI|
0001b0:  44 c8 5d 00  00 01 00 00  00 43 4d 41  43 10 10 00  |D.]......CMAC...|
0001c0:  00 01 00 00  00 00 00 00  00 00 00 00  00 01 00 00  |................|
0001d0:  00 16 61 5f  73 74 61 6e  64 23 73 74  61 6e 64 5f  |..a_stand#stand_|
0001e0:  6d 74 6e 32  34 30 30 38  4d 43 49 44  c9 5d 00 00  |mtn24008MCID.]..|
0001f0:  04 00 00 00  43 4d 41 43  10 10 00 00  01 00 00 00  |....CMAC........|
000200:  00 00 00 00  00 00 00 00  01 00 00 00  16 61 5f 73  |.............a_s|
000210:  69 74 77 32  23 73 69 74  77 32 5f 6d  74 6e 32 34  |itw2#sitw2_mtn24|
000220:  30 30 39 43  4d 41 43 10  20 00 00 01  00 00 00 00  |009CMAC. .......|
000230:  00 00 00 00  00 00 00 01  00 00 00 08  73 6e 64 32  |............snd2|
000240:  34 30 30 39  43 4d 41 43  30 30 00 00  01 00 00 00  |4009CMAC00......|
000250:  00 00 00 00  00 00 00 00  01 00 00 00  08 6c 65 64  |.............led|
000260:  32 34 30 30  39 43 4d 41  43 70 30 00  00 01 00 00  |24009CMACp0.....|
000270:  00 00 00 00  00 00 00 00  00 01 00 00  00 08 6c 65  |..............le|
000280:  64 32 34 30  30 39 4d 43  49 44 ca 5d  00 00 02 00  |d24009MCID.]....|
000290:  00 00 43 4d  41 43 10 10  00 00 01 00  00 00 00 00  |..CMAC..........|
0002a0:  00 00 00 00  00 00 01 00  00 00 16 61  5f 73 74 61  |...........a_sta|
0002b0:  6e 64 23 73  74 61 6e 64  5f 6d 74 6e  32 34 30 31  |nd#stand_mtn2401|
0002c0:  30 43 4d 41  43 30 30 00  00 01 00 00  00 00 00 00  |0CMAC00.........|
0002d0:  00 00 00 00  00 01 00 00  00 08 6c 65  64 32 34 30  |..........led240|
0002e0:  31 30                                              |10             |
Download Example