OME: Difference between revisions

From Ryu Ga Gotoku Wiki
Jump to navigation Jump to search
(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>Unclear yet if this actually does contain physics, there seems to be coordinates for a collision shape in prop/stage object OME files.
<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

Majima construction.svg 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

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!

Object/physics data block
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