Difference between pages "PSP/GMO Format" and "FF8/Menu mngrp strings locations"

From Final Fantasy Inside
< PSP(Difference between pages)
Jump to navigation Jump to search
m (5 revisions imported)
 
my_wiki>Sebanisu
(String: going to make a page about the string encoding)
 
Line 1: Line 1:
<small>Last updated: [[User:Koral|Koral]] 06:48, 7 Apr 2009 (EDT)</small>
+
Many strings.
 
+
===Header String Offsets===
= GMO Model-data container =
+
{| class="wikitable"
 
+
! Type
<small>Stub</small>
+
! Size
 
+
! Value
<br />
+
! Description
 
+
|-
= Format Specifications =
+
| UInt16
 
+
| 2
<small>Information: '''MrAdults''', '''Ukurere'''</small>
+
| Offset_Count
 
+
| Number of offsets before strings start
<br /> [GMO] Files consist of various Chunks defining the type of data they contain, with no initial hard-coded offsets in the begining of the file. Each chunk must be parsed seperatly to determine its Type and Size, either to skip it entirey or attempt to extract the information contained within.
+
|-
 
+
| UInt16[Offset_Count]
As such, parsing these [GMO] files is a similar mechanism to parsing generic 3DS files.
+
| 2 * Offset_count
 
+
| Offsets
<br />
+
| The offset value points to start of a string
 
+
Can be '''0x00''' ignore those
== File Header ==
+
|}
 
+
===String===
There is an initial 16-Byte header describing the file as a [GMO]:
+
Strings end with '''0x00'''. [[FF8/String_Encoding|Strings are encoded]].<br/>
 
+
'''[Start of string location]''' = '''[Start of file]''' + '''[String offset value]'''
 
    0x00  MAGIC = 0x4f 0x4d 0x47 0x2e 0x30 0x30 0x2e 0x31 0x50 0x53 0x50 0x00 0x00 0x00 0x00
 
                  "OMG 00 1PSP"
 
 
 
<br /> After this comes the first specialised Chunk.
 
 
 
<br />
 
 
 
== Chunks ==
 
 
 
Each Chunk contains an initial local header describing the Type and Size of the contents to come.
 
 
 
 
    0x00  SHORT  Chunk-Type
 
    0x02  SHORT  Size of Chunk-Header
 
    0x04  LONG    Size of Chunk-Data
 
 
 
<br /> A number of Chunk-Types have been discovered, described in detail in the sections to follow.
 
 
 
<br />
 
 
 
=== 0x0002 - File Start ===
 
 
 
This Chunk can be described as the root Chunk containing all Sub-Chunks within.
 
 
 
<br />
 
 
 
=== 0x0003 - Sub-File ===
 
 
 
These Chunks mark the exact nature of the Chunks which follow, and can be determined by reading the last SHORT of the chunk.
 
 
 
They usually mark Model or Skeletal data, although there may be more types which are currently undocumented.
 
 
 
Known Values:
 
 
 
* 0x6f6d Models
 
* 0x305f Skeletal Animations
 
 
 
<br />
 
 
 
=== 0x0004 - Bone Info ===
 
 
 
=== 0x0005 - Model Surface ===
 
 
 
=== 0x0006 - Mesh ===
 
 
 
=== 0x0007 - Vertex Array ===
 
 
 
===  0x0008 - Material ===
 
 
 
=== 0x0009 - Texture Reference ===
 
 
 
=== 0x000A - Texture ===
 
 
 
=== 0x000B - Shared Vertex Data ===
 
 
 
=== 0x000F - Texture Animation ===
 
 
 
=== 0x8061 - Mesh Material Info ===
 
 
 
=== 0x8015 - UV Scale and Bias ===
 
 
 
=== 0x8066 - Mesh Index Data  ===
 
 
 
=== 0x8081 - Material Texture Blend ===
 
 
 
=== 0x8082 - Material RGBA ===
 
 
 
=== 0x8083 - Material Specularity ===
 
 
 
= References =
 
 
 
* [http://www.richwhitehouse.com/index.php?postid=34 http://www.richwhitehouse.com/index.php?postid=34]
 

Revision as of 15:02, 22 April 2019

Many strings.

Header String Offsets

Type Size Value Description
UInt16 2 Offset_Count Number of offsets before strings start
UInt16[Offset_Count] 2 * Offset_count Offsets The offset value points to start of a string

Can be 0x00 ignore those

String

Strings end with 0x00. Strings are encoded.
[Start of string location] = [Start of file] + [String offset value]