O
O is a file extension in EA Sports games which is used for model and animation files. The file itself has an ELF structure. EA used their own code for ELF reading.
The file may contain model (geometry) data, skeleton information, animations, rendering information, effects (shaders) and embedded textures.
Elf File Structure
[edit]The overall file structure is following (the order of sections might be different, but for most files it is same):
- Elf Header (52 bytes)
- .data section data (Data section)
- .shstrtab section data (Section names table)
- .strtab section data (Symbol names table)
- .symtab section data (Symbol table)
- .rel.data section data (Relocation table)
- Section descriptions (section header table)
Each block is aligned by 16 bytes.
Header
[edit]| Data type | Name | Value |
|---|---|---|
| UINT8[16] | e_ident | 7F 45 4C 46 01 01 01 00 00 00 00 00 00 00 00 00 |
| UINT16 | e_type | ET_REL (1) |
| UINT16 | e_machine | EM_MIPS (8) |
| UINT32 | e_version | EV_CURRENT (1) |
| UINT32 | e_entry | 0 |
| UINT32 | e_phoff | 0 |
| UINT32 | e_shoff | sections offset - different for each file |
| UINT32 | e_flags | 546455552 |
| UINT16 | e_ehsize | 52 (size of this header) |
| UINT16 | e_phentsize | 0 |
| UINT16 | e_phnum | 0 |
| UINT16 | e_shentsize | 40 (size of section header entry) |
| UINT16 | e_shnum | 6 (number of sections) |
| UINT16 | e_shstrndx | index of .shstrtab section (section with section names) |
Games
[edit]O files were used mostly in games developed by EA Vancouver, between 1999 and 2009. It is also known as NIS ("Non-Interactive Scene") or EAGLAnim in some titles where it's used exclusively for animations.
Tools
[edit]OTools - open-source tool for .O files import/export, by Dmitri
OEdit - .O files editor, by Arushan
Icebreaker - cutscene editor for NFS games, by r033