Repository navigation
Home
AEP (After Effects Project) is a proprietary file format used by various KONAMI games which defines an animated 2D scene graph, typically for user interfaces. This format has existed for a long time, used at least as far back as the GFDM V series, and has been mostly superseded in more recent times by KONAMI's AFP file format. If you are familiar with SEGA's AET file format then you should feel (mostly) right at home with AEP.
AEP shares its name with the file format it is converted from, Adobe After Effects' AEP (After Effects Project). AEPs are designed within After Effects, then either exported to an Adobe AEP and converted to a KONAMI AEP, or exported directly from AE to a KONAMI AEP using a custom plugin. Assumingly the former based on how production workflows tend to be, but it doesn't make much of a difference either way.
AEP is a very minimal format, containing (comparatively) little data. The program takes on a lot of responsibility in knowing the contents of its graphs, which texture stores to load, which compositions to load, and how to use them. A generic program, while functional, will give less than favourable results in terms of performance and usability.
As AEP has been around for a long time, it has gone through major platform changes, the one that directly affects AEP being the move from 32-bit to 64-bit processors. As it seems that libaep uses the native short, int, long, etc. data types, when the architecture changed so did the size of these data types.
To counter this KONAMI simply made a new AEP x64 format, with the original AEP format now being considered AEP x86. The only changes that x64 makes is the changes that the architecture imposes; data type sizes are changed (pointers become 8-byte instead of 4), and struct field order and padding is changed slightly. Aside from this the contents of the files are identical.
Despite newer games such as GITADORA only running on x64 machines, each AEP still has x86 and x64 counterparts, and the game will crash if both are not present.
Note that all integers are in little-endian.
| Name | Size (x86) | Size (x64) | Description |
|---|---|---|---|
U8 |
0x1 |
0x1 |
Unsigned 8-bit integer. |
U16 |
0x2 |
0x2 |
Unsigned 16-bit integer. |
U32 |
0x4 |
0x4 |
Unsigned 32-bit integer. |
F32 |
0x4 |
0x4 |
32-bit floating-point number. |
Pointer |
0x4 |
0x8 |
Unsigned 32-bit (x86) or 64-bit (x64) integer which is an absolute offset within the file, in bytes. |
String |
0x4 |
0x8 |
Pointer which points to a null-terminated array of ASCII characters. |
Count |
0x4 |
0x8 |
Unsigned 32-bit (x86) or 64-bit (x64) integer which is the number of elements within an array. |