OME: Difference between revisions
(Overview of a typical OME file) |
(correction) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Category: File Formats]] | [[Category: File Formats]] | ||
{{Page in progress}} | |||
OME is a model format used in [[Yakuza]], [[Yakuza 2]], and by extension, [[Ryu Ga Gotoku 1 + 2 HD Edition]]. It was phased out and replaced with [[GMD]]. | OME is a model format used in [[Yakuza]], [[Yakuza 2]], and by extension, [[Ryu Ga Gotoku 1 + 2 HD Edition]]. It was phased out and replaced with [[GMD]]. | ||
Line 13: | Line 15: | ||
MDBP is an earlier version of OME and is not supported by the game, attempting to load one may lead to a crash. | MDBP is an earlier version of OME and is not supported by the game, attempting to load one may lead to a crash. | ||
Within ODBP: | Within ODBP: | ||
1) File header data | |||
1) ODBP File header data | |||
2) Mesh block (pointers, material ids etc.) | 2) Mesh block (pointers, material ids etc.) | ||
Line 31: | Line 35: | ||
<nowiki>*</nowiki> | <nowiki>*</nowiki>Does not contain physics collision mesh(stored somewhere else) but does play some role (something physics?) in case of props, otherwise don't know what this does. | ||
<nowiki>**</nowiki>Doesn't seem to control anything related to actual materials, here like materials are grouped together. | <nowiki>**</nowiki>Doesn't seem to control anything related to actual materials, here like materials are grouped together. | ||
== Technical Information == | |||
{| class="wikitable" | |||
|+OME header block | |||
!Offset | |||
!Data type | |||
!Description | |||
!Notes | |||
|- | |||
|0x00 | |||
|4 bytes | |||
|File magic | |||
|"OME" | |||
|- | |||
|0x04 | |||
|Uint32 | |||
|Version ID | |||
|Unclear if this does anything | |||
Version ids in Y1: (4, 5, 6, 2, 1, 0) | |||
|- | |||
|0x08 | |||
|Uint32 | |||
|ODBP file pointer | |||
| | |||
|- | |||
|0x10 | |||
|Uint32 | |||
|Count | |||
|Count of the entries in the next block (object/physics data block) | |||
|- | |||
|0x14 | |||
|Uint32 | |||
|Block size | |||
|Here, refers to the size of this struct | |||
|- | |||
|0x18 | |||
|Uint32 | |||
|Model "sheen/glare" strength | |||
|Controls the "glare" of the model, which is controlled by the | |||
model's texture alpha | |||
|- | |||
|0x1c | |||
|Uint32 | |||
|Mesh flag | |||
|Unclear if this does anything | |||
|} | |||
Note: This is still WIP, more info needed on this! | |||
{| class="wikitable" | |||
|+Object/physics data block | |||
! colspan="4" |Entry | |||
(Block size: 32 bytes) | |||
|- | |||
!Offset | |||
!Data type | |||
!Description | |||
!Notes | |||
|- | |||
|0x00 | |||
|Uint32 | |||
|Read flag | |||
|The whole entry will not be read if set to 0, | |||
If 1, will be read. | |||
(assumption) | |||
|- | |||
|0x04 | |||
|Uint32 | |||
|Pointer | |||
|Pointer to a field below the entries | |||
|- | |||
|0x08 | |||
|Uint32 | |||
|Unknown | |||
| | |||
|- | |||
|0x0c | |||
|Uint32 | |||
|Constant | |||
|Always FF FF FF FF | |||
|- | |||
|0x10 | |||
|Uint16 | |||
|Unknown1 | |||
| | |||
|- | |||
|0x12 | |||
|Uint16 | |||
|Unknown2 | |||
| | |||
|- | |||
|0x14 | |||
|Uint32 | |||
|Unknown | |||
| | |||
|- | |||
! colspan="4" |Field A | |||
(Block size: 16 bytes) | |||
|- | |||
!Offset | |||
!Data type | |||
!Description | |||
!Notes | |||
|- | |||
|0x00 | |||
|Uint32 | |||
|count1 | |||
|Unclear on how its used | |||
|- | |||
|0x04 | |||
|Uint32 | |||
|pointer1 | |||
|Unclear on how its used | |||
|- | |||
|0x08 | |||
|Uint32 | |||
|pointer2 | |||
| | |||
|- | |||
|0x0c | |||
|Uint32 | |||
|count2 | |||
| | |||
|- | |||
! colspan="4" |Field B (based from pointer2 and count2) | |||
(Block size: 16 bytes) | |||
|- | |||
!Offset | |||
!Data type | |||
!Description | |||
!Notes | |||
|- | |||
|0x00 | |||
|Float | |||
|X coord | |||
| | |||
|- | |||
|0x04 | |||
|Float | |||
|Y coord | |||
| | |||
|- | |||
|0x08 | |||
|Float | |||
|Z coord | |||
| | |||
|- | |||
|0x0c | |||
|Float | |||
|Unk float | |||
|Don't know what this does so far | |||
|} |
Latest revision as of 10:58, 23 February 2025
![]() |
This page is under construction Check back later for additional changes |
OME is a model format used in Yakuza, Yakuza 2, and by extension, Ryu Ga Gotoku 1 + 2 HD Edition. It was phased out and replaced with GMD.
Format Overview
A typical OME file has the following order:
1) File header data
2) Object/physics data*
3) ODBP/MDBP block
MDBP is an earlier version of OME and is not supported by the game, attempting to load one may lead to a crash.
Within ODBP:
1) ODBP File header data
2) Mesh block (pointers, material ids etc.)
3) Armature block
4) File header data
5) Material group**
6) Mesh data (vertex info and face index table)
7) End block
*Does not contain physics collision mesh(stored somewhere else) but does play some role (something physics?) in case of props, otherwise don't know what this does.
**Doesn't seem to control anything related to actual materials, here like materials are grouped together.
Technical Information
Offset | Data type | Description | Notes |
---|---|---|---|
0x00 | 4 bytes | File magic | "OME" |
0x04 | Uint32 | Version ID | Unclear if this does anything
Version ids in Y1: (4, 5, 6, 2, 1, 0) |
0x08 | Uint32 | ODBP file pointer | |
0x10 | Uint32 | Count | Count of the entries in the next block (object/physics data block) |
0x14 | Uint32 | Block size | Here, refers to the size of this struct |
0x18 | Uint32 | Model "sheen/glare" strength | Controls the "glare" of the model, which is controlled by the
model's texture alpha |
0x1c | Uint32 | Mesh flag | Unclear if this does anything |
Note: This is still WIP, more info needed on this!
Entry
(Block size: 32 bytes) | |||
---|---|---|---|
Offset | Data type | Description | Notes |
0x00 | Uint32 | Read flag | The whole entry will not be read if set to 0,
If 1, will be read. (assumption) |
0x04 | Uint32 | Pointer | Pointer to a field below the entries |
0x08 | Uint32 | Unknown | |
0x0c | Uint32 | Constant | Always FF FF FF FF |
0x10 | Uint16 | Unknown1 | |
0x12 | Uint16 | Unknown2 | |
0x14 | Uint32 | Unknown | |
Field A
(Block size: 16 bytes) | |||
Offset | Data type | Description | Notes |
0x00 | Uint32 | count1 | Unclear on how its used |
0x04 | Uint32 | pointer1 | Unclear on how its used |
0x08 | Uint32 | pointer2 | |
0x0c | Uint32 | count2 | |
Field B (based from pointer2 and count2)
(Block size: 16 bytes) | |||
Offset | Data type | Description | Notes |
0x00 | Float | X coord | |
0x04 | Float | Y coord | |
0x08 | Float | Z coord | |
0x0c | Float | Unk float | Don't know what this does so far |