Table
of Contents
- Introduction
- MWC Header
- MWC Block Record
- MWC Chunk Record
- Chunk Type Codes
- 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
|