<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.ffrtt.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Myst6re</id>
	<title>Final Fantasy Inside - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ffrtt.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Myst6re"/>
	<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php/Special:Contributions/Myst6re"/>
	<updated>2026-08-04T01:21:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.1</generator>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF7/Field/Script/Opcodes/27_BGMOVIE&amp;diff=5880</id>
		<title>FF7/Field/Script/Opcodes/27 BGMOVIE</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF7/Field/Script/Opcodes/27_BGMOVIE&amp;diff=5880"/>
		<updated>2021-02-14T16:18:34Z</updated>

		<summary type="html">&lt;p&gt;Myst6re: Created page with &amp;quot;* Opcode: '''0x27''' * Short name: '''BGMOVIE''' * Long name: Background Movie  ==== Memory layout ==== {| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; style=&amp;quot;border: 1px solid...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Opcode: '''0x27'''&lt;br /&gt;
* Short name: '''BGMOVIE'''&lt;br /&gt;
* Long name: Background Movie&lt;br /&gt;
&lt;br /&gt;
==== Memory layout ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! width=&amp;quot;40&amp;quot; | 0x27&lt;br /&gt;
! width=&amp;quot;40&amp;quot; | ''S''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Arguments ====&lt;br /&gt;
* '''const UByte''' ''S'': Switch background movie on/off (1/0, respectively).&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
Turns background movie on or off for the next movie.&lt;/div&gt;</summary>
		<author><name>Myst6re</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5875</id>
		<title>FF8/WorldMap wmsetxx</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5875"/>
		<updated>2021-01-13T21:24:21Z</updated>

		<summary type="html">&lt;p&gt;Myst6re: /* Section 35: World Map draw points */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Info==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj (where xx may refer to gr,us,it,fr,sp) is a multi-data world map file containing many core functions and 3D objects. This file contains almost everything: sounds, scripts, dialogs, texts, textures, models- all contained in one file. Main differences between en/it/gr/sp/fr are localized dialogs, so next sections have different offsets. Offsets before this are all the same. [[FF8/WorldMap_wmset|Wmset.obj]] is probably never used in-game and is leftover. Dialogs in lang-en/wmset.obj are in english, but the file is different from wmsetus.obj.&lt;br /&gt;
&lt;br /&gt;
==General structure==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj is made from 48 sections. File starts with header, that has 48*4 bytes. Every offset is 4 bytes long. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section 1&lt;br /&gt;
|-&lt;br /&gt;
| SectNmbr * 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section SectNmbr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The last section is offset 188. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Section 1: World map encounter data supplier ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| FileSize (this+4)&lt;br /&gt;
|-&lt;br /&gt;
| 4 + (entryID * 4)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| EncounterIdSupplierDataProvider_Entry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''EncounterIdSupplierDataProvider_Entry''':&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Byte&lt;br /&gt;
| regionID&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Byte&lt;br /&gt;
| groundID&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Byte&lt;br /&gt;
| ESI*&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Byte&lt;br /&gt;
| unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ESI is the name of the register that holds the third byte parameter of section1. It is used later to determine the encounter. When the character makes a step on worldmap, the game loops through whole section1 data and tests:&lt;br /&gt;
&lt;br /&gt;
if the character is walking on groundID and regionID, if yes, then ESI is our multiplier to section4 containing encounters. Example entry:&lt;br /&gt;
&lt;br /&gt;
00 06 00 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 0 and walks on ground with ID 6 (as far as I remember it's Balamb Plains or forest) then get encounters from section4 that start at 0*8; Other example:&lt;br /&gt;
&lt;br /&gt;
04 1B 24 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 4 and walks on ground with ID 0x1B, then get encounters from section4 that starts at 0x24*8 = 288&lt;br /&gt;
&lt;br /&gt;
That way the engine can play encounter based on place you are, because if you're walking on Balamb beach, then engine should play encounter with beach, not snow plains. That's why if you change the for one map portion you can totally erase encounters in this region, because in example region 4 that may be Centra regions does not contain any BalambPlains, so there is no entry in section1 and therefore the engine finds the region encounters, but doesn't find the encounter entries for BalambPlainsGround in Centra ruins (this is totally an example).&lt;br /&gt;
&lt;br /&gt;
=== Section 2: World map Regions ===&lt;br /&gt;
&lt;br /&gt;
Nothing much to write here.&lt;br /&gt;
32x24 world map. Just open it via hexEditor.&lt;br /&gt;
It's just bitmap (you can even convert bytes to image and mini worldmap will show)&lt;br /&gt;
Every single byte is regionID used for example in section1 for encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 3: World Map Encounters Flags ===&lt;br /&gt;
&lt;br /&gt;
One byte per encounter group in section 4. Always 0 on railways/roads, always 12 on forests, 128 on Island closest to Hell/Heaven, 3 in Galbadia Desert (day and night) and 2 for everything else.&lt;br /&gt;
&lt;br /&gt;
=== Section 4: World Map Encounters ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| section1.ESI * 16&lt;br /&gt;
| 16 bytes&lt;br /&gt;
| 2 * 8 bytes of encounters from scene.out&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It's as simple as that:&lt;br /&gt;
Squall makes step on worldmap, game gets Squall position and tests it with section2 containing region, then loops through section1 and tests groundID and regionID to find ESI multiplier, if random number generates battle, then game gets to section4 using ESI determined earlier with Squall step on world map and plays randomly one of the eight encounters (because one ESI/encounterEntry is 16 bytes, where first four words are the most common, other 2 medium and last 2 rarest)&lt;br /&gt;
&lt;br /&gt;
=== Section 5: UNUSED Encounter Flags (after Lunar Cry) ===&lt;br /&gt;
Unused in-game&lt;br /&gt;
&lt;br /&gt;
One byte (always 8 here) per encounter group in section 6. Analog to section 3, but for Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 6: World Map Encounters (after Lunar Cry) ===&lt;br /&gt;
&lt;br /&gt;
Same format as Section 4, but only with Lunar Cry encounters.&lt;br /&gt;
You can use the section 1 to obtain ground, this way: search in section 1 for region == 10 (Esthar), and substract 80 from the esi value, you will obtain the correct esi for the section 6.&lt;br /&gt;
&lt;br /&gt;
=== Section 7-8: roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
Related with Section 39. Maybe scripts in section 8. (like sections 10, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
Script format (ScriptsCount must be guessed):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| List of script positions, not always sorted (ended with 0x00000000)&lt;br /&gt;
|-&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| Varies + 4&lt;br /&gt;
| Scripts data (ended with 0x00000000)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In script data you have 4-bytes opcodes, the first byte is the identifier, and the last two bytes are the parameter (the second byte is always 0xFF).&lt;br /&gt;
Scripts always start with 0x01 opcode, and finish with 0x16 opcode. There is always one 0x04 opcode inside.&lt;br /&gt;
For now most is unknown, I only understood that 0x2B opcode refer to scene ID in its parameter (you can find UFO, Koyo-K and Lac Obel battles in Section 32).&lt;br /&gt;
&lt;br /&gt;
=== Section 9: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 10-11: UNKNOWN (Related to Squall model) ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 10. (like sections 8, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 12-13: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 12. (like sections 8, 10 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 14: Side quests texts/tialogs ===&lt;br /&gt;
&lt;br /&gt;
This section provides dialogs on world map used in side quests.&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 …+-1 Airstation5 … 7  Get off…YesNo5 + 7  Get off…YesNo5 - 7  Get off…YesNo”Bound for 5 4 7“Pay 4111 Gil to rideDon't ride”&lt;br /&gt;
 Bound for 5 3 7“Pay 4111 Gil to rideDon't ride”Bound for 5 ! 7“Pay 4111 Gil to rideDon't ride7 ”You don't have enough money“&lt;br /&gt;
 Selphie ”C'mon?  To the 5Missile Base7?“ n Soldier”Give it up“ n Soldier”I'm busy“ n Soldier”There's no way you're getting &lt;br /&gt;
 through?“ n Soldier”This is our duty“ n Soldier”Just like always“ n Soldier”How 'bout a date…“Found a draw point?But no one &lt;br /&gt;
 can drawFound a draw point?Nothing thereFound a draw point? foundCan't carry anymoreYou do not have DrawWho will draw…Don't &lt;br /&gt;
 draw  stocked 1+-=*&amp;amp;??()·.71Out of/  …?3  7remaining …YesNo#‘2 How to drive 7          4!Back  7!Forward          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 Garden Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 How to ride a Chocobo 7 6!Get off Run with directional button 1!Change POV2&lt;br /&gt;
  Spaceship Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on:off Directional button to go up:down:steer 1!&lt;br /&gt;
 Change POV)This place looksfamiliar·It looks abandonedand run=down”Huh?…“Nida”The gauge is going berserk?…“)Shouldn't be getting&lt;br /&gt;
  off·This must be Obel LakeThrow a rockTry hummingIt's Obel LakeThrow a rockTry hummingA black shadow rose to the surfaceThrow&lt;br /&gt;
  a rockTry humming againThe black shadow disappearedThe rock sank .The rock skipped once . .The rock skipped twice . . .The &lt;br /&gt;
 rock skipped 4 times . . . .The rock skipped 5 times . . . . .The rock skipped 6 times . . . . . .The rock skipped 7 times . &lt;br /&gt;
 . . . . .The rock skippedmany many timesBlack Shadow”Hello human  What a lovely tune“A black shadow rose to the surface”Hello?“)&lt;br /&gt;
 There's something large there·”Thanks for speaking to me again?“”Umm“”Can you do me a favor…“)What is it·)I don't want to hear &lt;br /&gt;
 it·”It's my friend Mr Monkey Can you find him for me…“”Please“”“”Mr Monkey should be in a forest somewhere Keep walking around &lt;br /&gt;
 and I'm sure you'll find him“”Oh yeah do you know what…“”Oh yeah“”What a beautiful day“”I wonder what it means…“”Mysterious &lt;br /&gt;
 writing on the rock“”Mr Monkey had a rock like this I think“”Take a break at the railroad bridge“”Take some time off at Eldbeak&lt;br /&gt;
  Peninsula“”I bet it's a wonderful place“Relayed the whereabouts of Mr Monkey”Thank you?“There's the monkey?Throw a rockSing”&lt;br /&gt;
 You suck?“The monkey disappeared into the forestThe monkey told you off and disappeared into the forest”Ahhh?  Darn it? &lt;br /&gt;
 Y=You're just a big loser?  I'm able to skip the rock as many times as I want? So there? Ha=Ha? Loser? Dork? Idiot? Your mom &lt;br /&gt;
 wears combat boots?“”OUCH? D=Darn it? You're gonna pay for that?“The monkey threw a rock at you and ran?Upon inspecting the &lt;br /&gt;
 rockit looks man=made andhas some carving on itYou found the monkey”You big dork???“Almost?The monkey ran awayWhat's this?…You&lt;br /&gt;
  found a piece of rock by your footIt looks man=made andhas some carving on itBut it was just a rockA bird is warming an egg&lt;br /&gt;
 Check it outLeave it aloneIt seems that the birdwent to go look for foodYou found a piece of rock thereNothing there1  &lt;br /&gt;
 S T S L R M 1  U R H A E O 1  R E A I D R 1  E A S N P D 1  S T S L R M 71  U R H A E O 71  R E A I D R 71  E A S N P D 7”&lt;br /&gt;
 At the beach in 2 something special washes ashore at times“”You'll find something on an island east of 4 too“”There's also &lt;br /&gt;
 something on top of a mountain with a lake and cavern“”Back in the day south of here there used to be a small but beautiful &lt;br /&gt;
 village surrounded by deep forests Everyone lived a happy life there“There is a stone pillarIf you look closelythere's something&lt;br /&gt;
  written on it”TRETIMEASUREAT MINOFFDEISLE“)…·Found 9?Found L?Found ?Found 1?That sound disappeared into the lakeThere are many&lt;br /&gt;
  multicoloredrocks with faces all over the placeThe black=faced rock tells you sternly”The treasure is probably in the direction&lt;br /&gt;
  of the North Star“The white=faced rock tells you coldly”It's east“The white=faced rock tells you coldly”It's west“The white=&lt;br /&gt;
 faced rock tells you coldly”It's south“The white=faced rock tells you coldly”It's north“The red=faced rock tells you angrily”&lt;br /&gt;
 The blue one's a liar?“The red=faced rock tells you angrily”The treasure's to the east?“The red=faced rock tells you angrily”&lt;br /&gt;
 The treasure's to the west?“The red=faced rock tells you angrily”The treasure's to the south?“The red=faced rock tells you angrily&lt;br /&gt;
 ”The treasure's to the north?“The red=faced rock tells you angrily”The treasure's not here?“The blue=faced rock whispers”&lt;br /&gt;
 I don't know where the treasure is“The blue=faced rock whispers”People call us ‘The Liar Rocks'“The blue=faced rock whispers”&lt;br /&gt;
 Some of us just repeat the same thing“The blue=faced rock whispers”Some of us just talk nonsense“The blue=faced whispers”&lt;br /&gt;
 Some of us just say the opposite of what we mean“This place just has rubble lying among the grassAbsolutely nothing)&lt;br /&gt;
 Is thispart of something…·)Seems like the same rock     I picked up before·)This must be all of them·”This must be all the rocks““&lt;br /&gt;
 If he's not around perhaps he took a train towards Dollet…“)I remember now This is Edea's house I get the feeling there's something&lt;br /&gt;
 nearby Something hugenearby·&lt;br /&gt;
&lt;br /&gt;
=== Section 15: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 16: World map objects data ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to Model structure (below)&lt;br /&gt;
|-&lt;br /&gt;
| Various&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| Models (see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Researched by: Vehek (http://forums.qhimm.com/index.php?topic=13799.msg193791#msg193791)&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u16 triangle_count;&lt;br /&gt;
 u16 quad_count;&lt;br /&gt;
 u16 texture_page;&lt;br /&gt;
 u16 vertex_count;&lt;br /&gt;
 triangle triangleData[triangle_count];&lt;br /&gt;
 quad quadData[quad_count];&lt;br /&gt;
 vertex verticeData[vertex_count];&lt;br /&gt;
 } model&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[3];&lt;br /&gt;
 u8 semitransp; //Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 } triangle&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[4];&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u8 texcoords4[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 u8 semitransp;//Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 unknown&lt;br /&gt;
 } quad&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 s16 coordinates[3];&lt;br /&gt;
 u16 unknown;&lt;br /&gt;
 }vertex&lt;br /&gt;
&lt;br /&gt;
=== Section 17-19: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 20: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Bunch of AKAO frames headers packed&lt;br /&gt;
&lt;br /&gt;
=== Section 21: AKAO ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO header&lt;br /&gt;
&lt;br /&gt;
=== Section 22-28: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 29: World map &amp;quot;water block&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Section 29 is a duplicate segment from &amp;quot;full&amp;quot; water block (not segment!) used in world map (wmx.obj).&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Whenever landing or entering ragnarok, the engine does not load segments from wmx.obj until the transition is done.&amp;lt;/s&amp;gt; Whenever transforming viewport at certain speed, the engine can't keep up with loading the new segments/blocks. The areas that are not loaded but should be rendered in the same time are filled with this block. This can be seen when the camera view is set so that it rotates during ragnarok entering/exiting transition or placing character to different area.&lt;br /&gt;
&lt;br /&gt;
=== Section 30: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 31: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 32: Text- Location names ===&lt;br /&gt;
&lt;br /&gt;
This section provides location names (probably for Ragnarok landing?)&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 ?2344 Forest  Garden  Garden: Station!9Missile Base7WinhillEdea's House%:&lt;br /&gt;
 51 Seaside Station1 City1: AirstationLunatic Pandora Laboratory=1&lt;br /&gt;
 Sorceress MemorialTears' Point1 Seaside Station=Tears' PointTears' &lt;br /&gt;
 PointLunatic Pandora Laboratory1:Airstation1 Sorceress Memorial&lt;br /&gt;
&lt;br /&gt;
=== Section 33-34: Light related ===&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 35: World Map draw points ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x2C&lt;br /&gt;
| UNUSED&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C + (thisEntryID * 4)&lt;br /&gt;
| DWORD&lt;br /&gt;
| DrawPointVariable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''DrawPointVariable''':&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| BYTE&lt;br /&gt;
| World block X&lt;br /&gt;
|-&lt;br /&gt;
| 0x01&lt;br /&gt;
| BYTE&lt;br /&gt;
| World block Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| WORD&lt;br /&gt;
| Magic ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Magic contained in world map draw point: (ID is: section35 magic entry+0x80 [add 1 to be correct with list below])&lt;br /&gt;
    129 0 1 Cure&lt;br /&gt;
    130 0 1 Esuna&lt;br /&gt;
    131 0 1 Thunder&lt;br /&gt;
    132 0 1 Fira&lt;br /&gt;
    133 0 1 Thundara&lt;br /&gt;
    134 0 1 Blizzara&lt;br /&gt;
    135 0 1 Blizzard&lt;br /&gt;
    136 0 1 Fire&lt;br /&gt;
    137 0 1 Cure&lt;br /&gt;
    138 0 1 Water&lt;br /&gt;
    139 0 1 Cura&lt;br /&gt;
    140 0 1 Esuna&lt;br /&gt;
    141 0 1 Scan&lt;br /&gt;
    142 0 1 Shell&lt;br /&gt;
    143 0 1 Haste&lt;br /&gt;
    144 0 1 Aero&lt;br /&gt;
    145 0 1 Bio&lt;br /&gt;
    146 0 1 Life&lt;br /&gt;
    147 0 1 Demi&lt;br /&gt;
    148 0 1 Protect &lt;br /&gt;
    149 0 1 Holy &lt;br /&gt;
    150 0 1 Thundaga&lt;br /&gt;
    151 0 1 Stop&lt;br /&gt;
    152 0 1 Firaga&lt;br /&gt;
    153 0 1 Regen&lt;br /&gt;
    154 0 1 Blizzaga&lt;br /&gt;
    155 0 1 Confuse&lt;br /&gt;
    156 0 1 Flare&lt;br /&gt;
    157 0 1 Dispel&lt;br /&gt;
    158 0 1 Slow&lt;br /&gt;
    159 0 1 Quake&lt;br /&gt;
    160 0 1 Curaga&lt;br /&gt;
    161 0 1 Tornado&lt;br /&gt;
    162 0 0 Full-Life&lt;br /&gt;
    163 0 1 Reflect&lt;br /&gt;
    164 0 0 Aura&lt;br /&gt;
    165 0 0 Quake&lt;br /&gt;
    166 0 1 Double&lt;br /&gt;
    167 0 1 Break&lt;br /&gt;
    168 0 0 Meteor&lt;br /&gt;
    169 0 0 Ultima&lt;br /&gt;
    170 0 0 Triple&lt;br /&gt;
    171 0 1 Confuse&lt;br /&gt;
    172 0 1 Blind&lt;br /&gt;
    173 1 1 Quake&lt;br /&gt;
    174 0 1 Sleep&lt;br /&gt;
    175 0 1 Silence&lt;br /&gt;
    176 1 1 Flare&lt;br /&gt;
    177 0 1 Death&lt;br /&gt;
    178 0 1 Drain&lt;br /&gt;
    179 1 1 Pain&lt;br /&gt;
    180 0 1 Berserk&lt;br /&gt;
    181 0 1 Float&lt;br /&gt;
    182 0 1 Zombie&lt;br /&gt;
    183 0 1 Meltdown&lt;br /&gt;
    184 1 0 Ultima&lt;br /&gt;
    185 1 1 Tornado&lt;br /&gt;
    186 1 1 Quake&lt;br /&gt;
    187 1 1 Meteor&lt;br /&gt;
    188 1 1 Holy&lt;br /&gt;
    189 1 1 Flare&lt;br /&gt;
    190 1 1 Aura&lt;br /&gt;
    191 1 1 Ultima&lt;br /&gt;
    192 1 1 Triple&lt;br /&gt;
    193 1 1 Full-Life&lt;br /&gt;
    194 1 1 Tornado&lt;br /&gt;
    195 1 1 Quake&lt;br /&gt;
    196 1 1 Meteor&lt;br /&gt;
    197 1 1 Holy&lt;br /&gt;
    198 1 1 Flare&lt;br /&gt;
    199 1 1 Aura&lt;br /&gt;
    200 1 1 Ultima&lt;br /&gt;
    201 1 1 Triple&lt;br /&gt;
    202 1 1 Full-Life&lt;br /&gt;
    203 1 1 Tornado&lt;br /&gt;
    204 1 1 Quake&lt;br /&gt;
    205 1 1 Meteor&lt;br /&gt;
    206 1 1 Holy&lt;br /&gt;
    207 1 1 Flare&lt;br /&gt;
    208 1 1 Aura&lt;br /&gt;
    209 1 1 Ultima&lt;br /&gt;
    210 1 1 Triple&lt;br /&gt;
    211 1 1 Full-Life&lt;br /&gt;
    212 1 1 Ultima&lt;br /&gt;
    213 1 1 Meteor&lt;br /&gt;
    214 1 1 Holy&lt;br /&gt;
    215 1 1 Flare&lt;br /&gt;
    216 1 1 Aura&lt;br /&gt;
    217 1 1 Ultima&lt;br /&gt;
    218 1 1 Triple&lt;br /&gt;
    219 1 1 Full-Life&lt;br /&gt;
    220 1 1 Meteor&lt;br /&gt;
    221 1 1 Holy&lt;br /&gt;
    222 1 1 Triple&lt;br /&gt;
    223 1 1 Aura&lt;br /&gt;
    224 1 1 Ultima&lt;br /&gt;
    225 1 1 Triple&lt;br /&gt;
    226 1 1 Full-Life&lt;br /&gt;
    227 1 1 Meteor&lt;br /&gt;
    228 1 1 Holy&lt;br /&gt;
    229 1 1 Flare&lt;br /&gt;
    230 1 1 Aura&lt;br /&gt;
    231 1 1 Ultima&lt;br /&gt;
    232 1 1 Triple&lt;br /&gt;
    233 1 1 Full-Life&lt;br /&gt;
    234 1 1 Meteor&lt;br /&gt;
    235 1 1 Triple&lt;br /&gt;
    236 1 1 Flare&lt;br /&gt;
    237 1 1 Aura&lt;br /&gt;
    238 1 1 Ultima&lt;br /&gt;
    239 1 1 Triple&lt;br /&gt;
    240 1 1 Full-Life&lt;br /&gt;
    241 1 1 Meteor&lt;br /&gt;
    242 1 1 Holy&lt;br /&gt;
    243 1 1 Flare&lt;br /&gt;
    244 1 1 Aura&lt;br /&gt;
    245 1 1 Ultima&lt;br /&gt;
    246 0 1 Blizzard&lt;br /&gt;
    247 0 1 Cure&lt;br /&gt;
    248 1 1 Dispel&lt;br /&gt;
    249 1 1 Confuse&lt;br /&gt;
    250 0 0 Meteor&lt;br /&gt;
    251 0 0 Double&lt;br /&gt;
    252 0 0 Aura&lt;br /&gt;
    253 0 0 Holy&lt;br /&gt;
    254 0 0 Flare&lt;br /&gt;
    255 0 0 Ultima&lt;br /&gt;
    256 1 1 Scan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Halfer:&lt;br /&gt;
X = rowBlockAmount, which is 4 times segment amount so 4 * 32 = 128 or 0x80. The last bit tells which row of the two we are on, first or second. The range of top row is from 0x00 - 0x7F and second row's 0x80 - 0xFF.&lt;br /&gt;
&lt;br /&gt;
Y is incremented whenever X goes over 0xFF.&lt;br /&gt;
&lt;br /&gt;
=== Section 36-37: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 37. (like sections 8, 10 and 12)&lt;br /&gt;
&lt;br /&gt;
=== Section 38: World map textures archive ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). This is one of the larger sections in file. THIS section is responsible for 1/2 world map textures (Those are really used in-game). There is 36 textures inside as of original release. Also, sea, beach and special effects texture is present. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (144 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 39: Textures - roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for train track textures, road textures, bridge train track texture (the one that gets through FH). &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (52 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 40: One world map texture/NULL ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to only one .TIM texture. This is the first texture that is in [[FF8/WorldMap_texl|texl.obj]] or wmsetxx.obj/Section 38. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Various (16384 originally)&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|-&lt;br /&gt;
| After Texture&lt;br /&gt;
| Next offset-(header+TIM texture)&lt;br /&gt;
| NULL data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 41: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 42: Vehicle and object textures ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for vehicles, world map objects textures (Balamb mobile, Galbadia mobile, Balamb halo ring, cactuar statue, lunatic pandora...)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (132 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 43: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 44: Music related  ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 45-48: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;/div&gt;</summary>
		<author><name>Myst6re</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF7/PSX/Sound/AKAO_sequence&amp;diff=5826</id>
		<title>FF7/PSX/Sound/AKAO sequence</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF7/PSX/Sound/AKAO_sequence&amp;diff=5826"/>
		<updated>2020-10-31T19:24:18Z</updated>

		<summary type="html">&lt;p&gt;Myst6re: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
AKAO sequence is the most complicated part of the FF7 sound system. (&amp;quot;AKAO&amp;quot; is the signature string, which implies that the sound format has developed by Square Enix sound programmer Minoru Akao.)&lt;br /&gt;
&lt;br /&gt;
AKAO sequence is similar to MIDI sequence - it's custom tracker format for playing sequence sound, well tuned specially for PSX.&lt;br /&gt;
&lt;br /&gt;
The sequence data can be found in all FF7 game modules: Field, Battle, Worldmap and in minigames.&lt;br /&gt;
&lt;br /&gt;
All files with exension *.SND are AKAO.&lt;br /&gt;
&lt;br /&gt;
* '''MINI/ASERI2.SND''' - Battle Arena theme&lt;br /&gt;
* '''MINI/SENSUI.SND''' - used in Submarine minigame&lt;br /&gt;
* '''ENEMY6/OVER2.SND''' - game over sequence&lt;br /&gt;
* '''ENEMY6/FAN2.SND''' - battle win &amp;quot;fanfare&amp;quot; sequence&lt;br /&gt;
* '''MOVIE/OVER2.SND''' - same game over sequence, don't know, why to duplicate data&lt;br /&gt;
&lt;br /&gt;
Other AKAO sequences are hard-wired in other files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== File Structure ==&lt;br /&gt;
=== Header (size: 16 bytes) ===&lt;br /&gt;
&lt;br /&gt;
 struct AkaoSeqHeader&lt;br /&gt;
 {&lt;br /&gt;
   static const uint8_t magic[4];  // &amp;quot;AKAO&amp;quot; C-string&lt;br /&gt;
   uint16_t id;                    // song ID, used for playing sequence&lt;br /&gt;
   uint16_t length;                // data length - sizeof(header)&lt;br /&gt;
   uint16_t reverb_type;           // reverb type (range from 0 to 9)&lt;br /&gt;
   struct AkaoTimeStamp timestamp; // creation time&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 struct AkaoTimeStamp&lt;br /&gt;
 {&lt;br /&gt;
   uint8_t year_bcd;               // year (in binary coded decimal)&lt;br /&gt;
   uint8_t month_bcd;              // month (in binary coded decimal, between 0x01 - 0x12)&lt;br /&gt;
   uint8_t day_bcd;                // day (in binary coded decimal, between 0x01 - 0x31)&lt;br /&gt;
   uint8_t hours_bcd;              // hours (in binary coded decimal, between 0x00 - 0x23)&lt;br /&gt;
   uint8_t minutes_bcd;            // minutes (in binary coded decimal, between 0x00 - 0x59)&lt;br /&gt;
   uint8_t seconds_bcd;            // seconds (in binary coded decimal, between 0x00 - 0x59)&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
=== Channel Info (size: 4 bytes + 2 bytes * &amp;lt;channels count&amp;gt;) ===&lt;br /&gt;
 struct AkaoChannelInfo&lt;br /&gt;
 {&lt;br /&gt;
   uint32_t mask;                         // represents bitmask of used channels in this song&lt;br /&gt;
   uint16_t start_offsets[num_channels];  // offsets to channel opcode data&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 int num_channels = 0;&lt;br /&gt;
 while (int bit = 0; bit &amp;lt; 24; bit++)&lt;br /&gt;
   if ((info.mask &amp;amp; 0xFFFFFF) &amp;amp; (1 &amp;lt;&amp;lt; bit)) != 0)&lt;br /&gt;
     num_channels++;&lt;br /&gt;
&lt;br /&gt;
First there is 32-bit number (offset 0x10), which represents bitmask of used channels in this song.&lt;br /&gt;
&lt;br /&gt;
After this bitmask, there is &amp;lt;channels count&amp;gt; offsets to channel opcode data counting from current offset. Each offsets is a relative offset based on the address *next to* the offset itself. (This is a general rule for early versions of AKAO to interpret relative offsets.)&lt;br /&gt;
&lt;br /&gt;
=== Channel Commands [AKAO Opcodes] ===&lt;br /&gt;
For every channels in an AKAO sequence, there is a set of commands to perform. This is similar to Field opcodes. Here I will call this sound commands &amp;quot;opcodes&amp;quot;. Every opcode has its own number of arguments (from no-arguments, to 3 arguments).&lt;br /&gt;
&lt;br /&gt;
=== Drum Instrument Map Table ===&lt;br /&gt;
&lt;br /&gt;
When a song uses a drum kit with [[FF7/PSX/Sound/Opcodes/0xeced|opcode 0xEC]], a drum instrument map table will be placed at the end of the sequence. The table determines the instrument, channel volume and pan for each keys.&lt;br /&gt;
&lt;br /&gt;
The table consists of a repetition of 5-byte items.&lt;br /&gt;
&lt;br /&gt;
 struct AkaoDrumKeyAttr&lt;br /&gt;
 {&lt;br /&gt;
   uint8_t instrument;   // corresponding to opcode 0xA1&lt;br /&gt;
   uint8_t key;          // note number when playing the drum note&lt;br /&gt;
   uint16_t volume;      // corresponding to opcode 0xA8 (lower 8bit is a fractional part of the volume)&lt;br /&gt;
   uint8_t pan;          // corresponding to opcode 0xAA&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Example (Home-Created AKAO Sequence): ==&lt;br /&gt;
=== Header ===&lt;br /&gt;
'''41 4b 41 4f''' - AKAO string&lt;br /&gt;
&lt;br /&gt;
'''34 12''' - song ID: 0x1234&lt;br /&gt;
&lt;br /&gt;
'''16 00''' - data length 0x16 in hex or 22 in decimal&lt;br /&gt;
&lt;br /&gt;
'''04 00''' - reverb type: 4 (large studio)&lt;br /&gt;
&lt;br /&gt;
'''96 12 18 22 46 28''' - created at 1996-12-18 22:46:28&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Channel Info ===&lt;br /&gt;
'''01 00 00 00''' - this indicates, that used only one channel&lt;br /&gt;
&lt;br /&gt;
'''00 00''' - offset to first channel opcodes: in our example 0x00 means that next to this offset is opcodes for first channel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Channel Commands ===&lt;br /&gt;
'''e8 a8 66''' - sets tempo, parameter 0x66a8&lt;br /&gt;
&lt;br /&gt;
'''ea 00 50''' - sets reverb depth&lt;br /&gt;
&lt;br /&gt;
'''a8 55''' - load sample 0x55 from INSTR.ALL to channel&lt;br /&gt;
&lt;br /&gt;
'''aa 40''' - sets channel volume&lt;br /&gt;
&lt;br /&gt;
'''c2''' - turns on reverb effect&lt;br /&gt;
&lt;br /&gt;
'''a1 0c''' - sets volume pan&lt;br /&gt;
&lt;br /&gt;
'''c8''' - sets loop point&lt;br /&gt;
&lt;br /&gt;
'''66''' - 0x66 % 11 = 3 (3 means to take 3rd number from play length table), 0x66 / 11 = 9 (9 means to take pitch[9] from loaded instrument record index)&lt;br /&gt;
&lt;br /&gt;
'''ca''' - returns to saved loop point with opcode c8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This example plays Chocobo &amp;quot;Whoo-Hoo&amp;quot; (instrument number 0x55) repeatedly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sound Opcode List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Opcode&lt;br /&gt;
! Summary&lt;br /&gt;
! Length&lt;br /&gt;
! Operands&lt;br /&gt;
! Note&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0x0099|0x00-0x99]]&lt;br /&gt;
|Note, Tie, Rest&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|The opcode indicates the note key and length. The note will be keyed off 2 ticks before the next note.&lt;br /&gt;
|-&lt;br /&gt;
|0x9A-0x9F&lt;br /&gt;
|Unimplemented&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|Should not be used.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa0|0xA0]]&lt;br /&gt;
|Finish Channel&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa1|0xA1]]&lt;br /&gt;
|Load Instrument&lt;br /&gt;
|2&lt;br /&gt;
|instrument: byte (0-127)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0x0099|0xA2]]&lt;br /&gt;
|Overwrite Next Note Length&lt;br /&gt;
|2&lt;br /&gt;
|length: byte&lt;br /&gt;
|Ignores the regular length (delta-time) of the next note and overwrites it with the specified length.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa8aa|0xA3]]&lt;br /&gt;
|Channel Master Volume&lt;br /&gt;
|2&lt;br /&gt;
|volume: byte (0-127)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa4|0xA4]]&lt;br /&gt;
|Pitch Bend Slide&lt;br /&gt;
|3&lt;br /&gt;
|length: byte, semitones: signed byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa5|0xA5]]&lt;br /&gt;
|Set Octave&lt;br /&gt;
|2&lt;br /&gt;
|octave: byte (0-15)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa5|0xA6]]&lt;br /&gt;
|Increase Octave&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa5|0xA7]]&lt;br /&gt;
|Decrease Octave&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa8aa|0xA8]]&lt;br /&gt;
|Channel Volume&lt;br /&gt;
|2&lt;br /&gt;
|volume: byte (0-127)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa9|0xA9]]&lt;br /&gt;
|Channel Volume Slide&lt;br /&gt;
|3&lt;br /&gt;
|length: byte, volume: byte (0-127)&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa8aa|0xAA]]&lt;br /&gt;
|Channel Pan&lt;br /&gt;
|2&lt;br /&gt;
|pan: byte (0-127)&lt;br /&gt;
|64 is the center.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xab|0xAB]]&lt;br /&gt;
|Channel Pan Slide&lt;br /&gt;
|3&lt;br /&gt;
|length: byte, pan: byte (0-127)&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xac|0xAC]]&lt;br /&gt;
|Noise Clock Frequency&lt;br /&gt;
|2&lt;br /&gt;
|clock: byte (0x00-0x3f)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xAD]]&lt;br /&gt;
|ADSR: Attack Rate&lt;br /&gt;
|2&lt;br /&gt;
|attack_rate: byte (0x00-0x7f)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xAE]]&lt;br /&gt;
|ADSR: Decay Rate&lt;br /&gt;
|2&lt;br /&gt;
|decay_rate: byte (0x00-0x0f)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xAF]]&lt;br /&gt;
|ADSR: Sustain Level&lt;br /&gt;
|2&lt;br /&gt;
|sustain_level: byte (0x00-0x0f)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xB0]]&lt;br /&gt;
|ADSR: Decay Rate &amp;amp; Sustain Level&lt;br /&gt;
|3&lt;br /&gt;
|decay_rate: byte (0x00-0x0f), sustain_level: byte (0x00-0x0f)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xB1]]&lt;br /&gt;
|ADSR: Sustain Rate&lt;br /&gt;
|2&lt;br /&gt;
|sustain_rate: byte (0x00-0x7f)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xB2]]&lt;br /&gt;
|ADSR: Release Rate&lt;br /&gt;
|2&lt;br /&gt;
|release_rate: byte (0x00-0x1f)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xB3]]&lt;br /&gt;
|ADSR: Reset ADSR&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xb4b5|0xB4]]&lt;br /&gt;
|Vibrato (Channel Pitch LFO)&lt;br /&gt;
|4&lt;br /&gt;
|delay: byte, rate: byte, type: byte (0-15)&lt;br /&gt;
|When &amp;lt;code&amp;gt;rate&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xb4b5|0xB5]]&lt;br /&gt;
|Vibrato Depth&lt;br /&gt;
|2&lt;br /&gt;
|depth: byte&lt;br /&gt;
|The most significant bit of the &amp;lt;code&amp;gt;depth&amp;lt;/code&amp;gt; determines the amplitude range.&lt;br /&gt;
&lt;br /&gt;
When it is 0, the range is up to about ± 50 cents (amplitude is 15/256 compared with range type 1).&lt;br /&gt;
&lt;br /&gt;
When it is 1, the range is up to about ± 700 cents.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xb4b5|0xB6]]&lt;br /&gt;
|Turn Off Vibrato&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xB7]]&lt;br /&gt;
|ADSR: Attack Mode&lt;br /&gt;
|2&lt;br /&gt;
|attack_mode: byte (1 or 5)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xb8b9|0xB8]]&lt;br /&gt;
|Tremolo (Channel Volume LFO)&lt;br /&gt;
|4&lt;br /&gt;
|delay: byte, rate: byte, type: byte (0-15)&lt;br /&gt;
|When &amp;lt;code&amp;gt;rate&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xb8b9|0xB9]]&lt;br /&gt;
|Tremolo Depth&lt;br /&gt;
|2&lt;br /&gt;
|depth: byte&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xb8b9|0xBA]]&lt;br /&gt;
|Turn Off Tremolo&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xBB]]&lt;br /&gt;
|ADSR: Sustain Mode&lt;br /&gt;
|2&lt;br /&gt;
|sustain_mode: byte (1, 3, 5 or 7)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xbcbd|0xBC]]&lt;br /&gt;
|Channel Pan LFO&lt;br /&gt;
|3&lt;br /&gt;
|rate: byte, type: byte (0-15)&lt;br /&gt;
|When &amp;lt;code&amp;gt;rate&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xbcbd|0xBD]]&lt;br /&gt;
|Channel Pan LFO Depth&lt;br /&gt;
|2&lt;br /&gt;
|depth: byte&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xbcbd|0xBE]]&lt;br /&gt;
|Turn Off Channel Pan LFO&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xbf|0xBF]]&lt;br /&gt;
|ADSR: Release Mode&lt;br /&gt;
|2&lt;br /&gt;
|release_mode: byte (3 or 7)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc0c1|0xC0]]&lt;br /&gt;
|Channel Transpose (Absolute)&lt;br /&gt;
|2&lt;br /&gt;
|semitones: signed byte&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc0c1|0xC1]]&lt;br /&gt;
|Channel Transpose (Relative)&lt;br /&gt;
|2&lt;br /&gt;
|semitones: signed byte&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc2c3|0xC2]]&lt;br /&gt;
|Turn On Reverb&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc2c3|0xC3]]&lt;br /&gt;
|Turn Off Reverb&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc4c5|0xC4]]&lt;br /&gt;
|Turn On Noise&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc4c5|0xC5]]&lt;br /&gt;
|Turn Off Noise&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc6c7|0xC6]]&lt;br /&gt;
|Turn On Frequency Modulation&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc6c7|0xC7]]&lt;br /&gt;
|Turn Off Frequency Modulation&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc8c9|0xC8]]&lt;br /&gt;
|Loop Point&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|Remember the current offset as a loop point and increase the nesting level of the loop.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc8c9|0xC9]]&lt;br /&gt;
|Return to Loop Point Up to N Times&lt;br /&gt;
|2&lt;br /&gt;
|times: byte&lt;br /&gt;
|On the Nth repeat, this instruction will end the current loop by decrementing the nesting level of the loop. Otherwise, it will increment the loop counter and return to the loop point.&lt;br /&gt;
When &amp;lt;code&amp;gt;times&amp;lt;/code&amp;gt; is 0, it will be translated to 256 times.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc8c9|0xCA]]&lt;br /&gt;
|Return to Loop Point&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|This instruction will increment the loop counter.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xcb|0xCB]]&lt;br /&gt;
|Reset Sound Effects&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|Reset sound effects such as noise, frequency modulation, reverb, overlay voice and alternate voice.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xcccd|0xCC]]&lt;br /&gt;
|Turn On Legato&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|This instruction will stop the regular key on and key off performance of the subsequent notes and update the pitch only.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xcccd|0xCD]]&lt;br /&gt;
|Turn Off Legato&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xcecf|0xCE]]&lt;br /&gt;
|Turn On Noise and Toggle Noise On/Off after a Period of Time&lt;br /&gt;
|2&lt;br /&gt;
|delay: byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;delay&amp;lt;/code&amp;gt; is 0, it will be translated to 257 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xcecf|0xCF]]&lt;br /&gt;
|Toggle Noise On/Off after a Period of Time&lt;br /&gt;
|2&lt;br /&gt;
|delay: byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;delay&amp;lt;/code&amp;gt; is 0, it will be translated to 257 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd0d1|0xD0]]&lt;br /&gt;
|Turn On Full-Length Note Mode&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|This instruction will stop the regular key off performance of the subsequent notes.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd0d1|0xD1]]&lt;br /&gt;
|Turn Off Full-Length Note Mode&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd2d3|0xD2]]&lt;br /&gt;
|Turn On Frequency Modulation and Toggle Frequency Modulation On/Off after a Period of Time&lt;br /&gt;
|2&lt;br /&gt;
|delay: byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;delay&amp;lt;/code&amp;gt; is 0, it will be translated to 257 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd2d3|0xD3]]&lt;br /&gt;
|Toggle Frequency Modulation On/Off after a Period of Time&lt;br /&gt;
|2&lt;br /&gt;
|delay: byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;delay&amp;lt;/code&amp;gt; is 0, it will be translated to 257 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd4d5|0xD4]]&lt;br /&gt;
|Turn On Playback Rate Side Chain&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|Duplicate and use the playback frequency of the previous voice channel.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd4d5|0xD5]]&lt;br /&gt;
|Turn Off Playback Rate Side Chain&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd6d7|0xD6]]&lt;br /&gt;
|Turn On Pitch-Volume Side Chain&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|Multiply the playback frequency of the previous voice channel to the output volume. Lower pitch will make the volume smaller.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd6d7|0xD7]]&lt;br /&gt;
|Turn Off Pitch-Volume Side Chain&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd8d9|0xD8]]&lt;br /&gt;
|Channel Fine Tuning (Absolute)&lt;br /&gt;
|2&lt;br /&gt;
|amount: signed byte&lt;br /&gt;
|The pitch can be changed in the range of one octave above and below.&lt;br /&gt;
The &amp;lt;code&amp;gt;amount&amp;lt;/code&amp;gt; is the multiplicand for the playback frequency, not a log-based parameter like cents. For example, when the &amp;lt;code&amp;gt;amount&amp;lt;/code&amp;gt; is 127, the pitch will be multiplied by 127/128 (about +1 octave). Negative value ​​will lower the pitch.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd8d9|0xD9]]&lt;br /&gt;
|Channel Fine Tuning (Relative)&lt;br /&gt;
|2&lt;br /&gt;
|amount: signed byte&lt;br /&gt;
|The &amp;lt;code&amp;gt;amount&amp;lt;/code&amp;gt; will be added to the current tuning amount.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xdadb|0xDA]]&lt;br /&gt;
|Turn On Portamento&lt;br /&gt;
|2&lt;br /&gt;
|speed: byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;speed&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xdadb|0xDB]]&lt;br /&gt;
|Turn Off Portamento&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0x0099|0xDC]]&lt;br /&gt;
|Fix Note Length&lt;br /&gt;
|2&lt;br /&gt;
|length_to_add: signed byte&lt;br /&gt;
|Ignore the regular length (delta-time) of subsequent notes and set to the fixed length. The &amp;lt;code&amp;gt;length_to_add&amp;lt;/code&amp;gt; parameter will be added to the current length value. (the initial value is 0)&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xdd|0xDD]]&lt;br /&gt;
|Vibrato Depth Slide&lt;br /&gt;
|3&lt;br /&gt;
|length: byte, depth: byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xde|0xDE]]&lt;br /&gt;
|Tremolo Depth Slide&lt;br /&gt;
|3&lt;br /&gt;
|length: byte, depth: byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xdf|0xDF]]&lt;br /&gt;
|Channel Pan LFO Depth Slide&lt;br /&gt;
|3&lt;br /&gt;
|length: byte, depth: byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa0|0xE0-0xE7]]&lt;br /&gt;
|Unimplemented&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|Code-referenced to 0xA0. Should not be used.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xe8e9|0xE8]]&lt;br /&gt;
|Tempo&lt;br /&gt;
|3&lt;br /&gt;
|tempo: uint16&lt;br /&gt;
|bpm = tempo / 214.998204 (approximate)&lt;br /&gt;
More strictly, &amp;lt;code&amp;gt;bpm = 60.0 / (48 * (65536.0 / tempo) * (0x44E8 / (33868800.0 / 8)))&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this coefficient is different from other games with PlayStation AKAO.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xe8e9|0xE9]]&lt;br /&gt;
|Tempo Slide&lt;br /&gt;
|4&lt;br /&gt;
|length: byte, tempo: uint16&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xeaeb|0xEA]]&lt;br /&gt;
|Reverb Depth&lt;br /&gt;
|3&lt;br /&gt;
|depth: uint16&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xeaeb|0xEB]]&lt;br /&gt;
|Reverb Depth Slide&lt;br /&gt;
|4&lt;br /&gt;
|length: byte, depth: uint16&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xeced|0xEC]]&lt;br /&gt;
|Turn On Drum Mode&lt;br /&gt;
|3&lt;br /&gt;
|drum_map_offset: signed int16&lt;br /&gt;
|The &amp;lt;code&amp;gt;drum_map_offset&amp;lt;/code&amp;gt; is a relative offset pointing to the drum instrument map table, which determines the instrument for each keys.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xeced|0xED]]&lt;br /&gt;
|Turn Off Drum Mode&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xee|0xEE]]&lt;br /&gt;
|Unconditional Jump&lt;br /&gt;
|3&lt;br /&gt;
|destination_offset: signed int16&lt;br /&gt;
|This instruction can be used to make an infinite loop.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xef|0xEF]]&lt;br /&gt;
|CPU-Conditional Jump&lt;br /&gt;
|4&lt;br /&gt;
|condition: byte, destination_offset: signed int16&lt;br /&gt;
|Jump if the condition variable matches &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt;. The value of the condition variable can be set from the game program.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf0f1|0xF0]]&lt;br /&gt;
|Jump on the Nth Repeat&lt;br /&gt;
|4&lt;br /&gt;
|times: byte, destination_offset: signed int16&lt;br /&gt;
|When &amp;lt;code&amp;gt;times&amp;lt;/code&amp;gt; is 0, it will be translated to 256 times.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf0f1|0xF1]]&lt;br /&gt;
|Break the Loop on the Nth Repeat&lt;br /&gt;
|4&lt;br /&gt;
|times: byte, destination_offset: signed int16&lt;br /&gt;
|Unlike 0xF0, this instruction will end the current loop by decrementing the nesting level of the loop.&lt;br /&gt;
When &amp;lt;code&amp;gt;times&amp;lt;/code&amp;gt; is 0, it will be translated to 256 times.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa1|0xF2]]&lt;br /&gt;
|Load Instrument (No Attack Sample)&lt;br /&gt;
|2&lt;br /&gt;
|instrument: byte&lt;br /&gt;
|Unlike 0xA1, the sample before the loop point is replaced by a short, silence sample.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf3|0xF3]]&lt;br /&gt;
|Unknown&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|There is no actual use in music.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf4f5|0xF4]]&lt;br /&gt;
|Turn On Overlay Voice&lt;br /&gt;
|3&lt;br /&gt;
|instrument: byte, instrument2: byte&lt;br /&gt;
|Play the same melody by different instruments on two voice channels. A free voice channel is required to work. Note that the two channels share the playback rate, and the pitch is not calculated for each instruments.&lt;br /&gt;
Used in the song &amp;quot;Anxious Heart&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf4f5|0xF5]]&lt;br /&gt;
|Turn Off Overlay Voice&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf4f5|0xF6]]&lt;br /&gt;
|Overlay Volume Balance&lt;br /&gt;
|2&lt;br /&gt;
|balance: byte (0-127)&lt;br /&gt;
|When the balance is 0, the volume of the primary voice will be 100% (127/128) of original and that of the secondary voice will be 0%. 127 is the opposite.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf4f5|0xF7]]&lt;br /&gt;
|Overlay Volume Balance Slide&lt;br /&gt;
|3&lt;br /&gt;
|length: byte, balance: byte (0-127)&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf8f9|0xF8]]&lt;br /&gt;
|Turn On Alternate Voice&lt;br /&gt;
|2&lt;br /&gt;
|release_rate: byte (0x00-0x1f)&lt;br /&gt;
|This instruction allows subsequent notes to be played on two alternating channels. At the same time, the ADSR release rate will be set to the specified value. A free voice channel is required to work. &lt;br /&gt;
Check &amp;quot;Opening - Bombing Mission&amp;quot;, &amp;quot;Tifa's Theme&amp;quot; and &amp;quot;Fortress of the Condor&amp;quot; for actual usage.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf8f9|0xF9]]&lt;br /&gt;
|Turn Off Alternate Voice&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa0|0xFA-0xFC]]&lt;br /&gt;
|Unimplemented&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|Code-referenced to 0xA0. Should not be used.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xfd|0xFD]]&lt;br /&gt;
|Time Signature&lt;br /&gt;
|3&lt;br /&gt;
|ticks_per_beat: byte, beats_per_measure: byte&lt;br /&gt;
|Note that two parameters can be 0. This pattern is used for initialization.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xfe|0xFE]]&lt;br /&gt;
|Measure Number&lt;br /&gt;
|3&lt;br /&gt;
|measure: short&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa0|0xFF]]&lt;br /&gt;
|Unimplemented&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|Code-referenced to 0xA0. Should not be used.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Myst6re</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF7/PSX/Sound/AKAO_sequence&amp;diff=5815</id>
		<title>FF7/PSX/Sound/AKAO sequence</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF7/PSX/Sound/AKAO_sequence&amp;diff=5815"/>
		<updated>2020-10-29T09:14:02Z</updated>

		<summary type="html">&lt;p&gt;Myst6re: /* Channel Info (size: 4 bytes + 2 bytes * ) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
AKAO sequence is the most complicated part of the FF7 sound system. (&amp;quot;AKAO&amp;quot; is the signature string, which implies that the sound format has developed by Square Enix sound programmer Minoru Akao.)&lt;br /&gt;
&lt;br /&gt;
AKAO sequence is similar to MIDI sequence - it's custom tracker format for playing sequence sound, well tuned specially for PSX.&lt;br /&gt;
&lt;br /&gt;
The sequence data can be found in all FF7 game modules: Field, Battle, Worldmap and in minigames.&lt;br /&gt;
&lt;br /&gt;
All files with exension *.SND are AKAO.&lt;br /&gt;
&lt;br /&gt;
* '''MINI/ASERI2.SND''' - Battle Arena theme&lt;br /&gt;
* '''MINI/SENSUI.SND''' - used in Submarine minigame&lt;br /&gt;
* '''ENEMY6/OVER2.SND''' - game over sequence&lt;br /&gt;
* '''ENEMY6/FAN2.SND''' - battle win &amp;quot;fanfare&amp;quot; sequence&lt;br /&gt;
* '''MOVIE/OVER2.SND''' - same game over sequence, don't know, why to duplicate data&lt;br /&gt;
&lt;br /&gt;
Other AKAO sequences are hard-wired in other files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== File Structure ==&lt;br /&gt;
=== Header (size: 16 bytes) ===&lt;br /&gt;
&lt;br /&gt;
 struct AkaoSeqHeader&lt;br /&gt;
 {&lt;br /&gt;
   static const uint8_t magic[4];  // &amp;quot;AKAO&amp;quot; C-string&lt;br /&gt;
   uint16_t id;                    // song ID, used for playing sequence&lt;br /&gt;
   uint16_t length;                // data length - sizeof(header)&lt;br /&gt;
   uint16_t reverb_type;           // reverb type (range from 0 to 9)&lt;br /&gt;
   struct AkaoTimeStamp timestamp; // creation time&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 struct AkaoTimeStamp&lt;br /&gt;
 {&lt;br /&gt;
   uint8_t year_bcd;               // year (in binary coded decimal)&lt;br /&gt;
   uint8_t month_bcd;              // month (in binary coded decimal, between 0x01 - 0x12)&lt;br /&gt;
   uint8_t day_bcd;                // day (in binary coded decimal, between 0x01 - 0x31)&lt;br /&gt;
   uint8_t hours_bcd;              // hours (in binary coded decimal, between 0x00 - 0x23)&lt;br /&gt;
   uint8_t minutes_bcd;            // minutes (in binary coded decimal, between 0x00 - 0x59)&lt;br /&gt;
   uint8_t seconds_bcd;            // seconds (in binary coded decimal, between 0x00 - 0x59)&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
=== Channel Info (size: 4 bytes + 2 bytes * &amp;lt;channels count&amp;gt;) ===&lt;br /&gt;
 struct AkaoChannelInfo&lt;br /&gt;
 {&lt;br /&gt;
   uint32_t mask;                         // represents bitmask of used channels in this song&lt;br /&gt;
   uint16_t start_offsets[num_channels];  // offsets to channel opcode data&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 int num_channels = 0;&lt;br /&gt;
 while (int bit = 0; bit &amp;lt; 24; bit++)&lt;br /&gt;
   if ((info.mask &amp;amp; 0xFFFFFF) &amp;amp; (1 &amp;lt;&amp;lt; bit)) != 0)&lt;br /&gt;
     num_channels++;&lt;br /&gt;
&lt;br /&gt;
First there is 32-bit number (offset 0x10), which represents bitmask of used channels in this song.&lt;br /&gt;
&lt;br /&gt;
After this bitmask, there is &amp;lt;channels count&amp;gt; offsets to channel opcode data counting from current offset. Each offsets is a relative offset based on the address *next to* the offset itself. (This is a general rule for early versions of AKAO to interpret relative offsets.)&lt;br /&gt;
&lt;br /&gt;
=== Channel Commands [AKAO Opcodes] ===&lt;br /&gt;
For every channels in an AKAO sequence, there is a set of commands to perform. This is similar to Field opcodes. Here I will call this sound commands &amp;quot;opcodes&amp;quot;. Every opcode has its own number of arguments (from no-arguments, to 3 arguments).&lt;br /&gt;
&lt;br /&gt;
=== Drum Instrument Map Table ===&lt;br /&gt;
&lt;br /&gt;
When a song uses a drum kit with [[FF7/PSX/Sound/Opcodes/0xeced|opcode 0xEC]], a drum instrument map table will be placed at the end of the sequence. The table determines the instrument, channel volume and pan for each keys.&lt;br /&gt;
&lt;br /&gt;
The table consists of a repetition of 5-byte items.&lt;br /&gt;
&lt;br /&gt;
 struct AkaoDrumKeyAttr&lt;br /&gt;
 {&lt;br /&gt;
   uint8_t instrument;   // corresponding to opcode 0xA1&lt;br /&gt;
   uint8_t key;          // note number when playing the drum note&lt;br /&gt;
   uint16_t volume;      // corresponding to opcode 0xA8 (lower 8bit is a fractional part of the volume)&lt;br /&gt;
   uint8_t pan;          // corresponding to opcode 0xAA&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Example (Home-Created AKAO Sequence): ==&lt;br /&gt;
=== Header ===&lt;br /&gt;
'''41 4b 41 4f''' - AKAO string&lt;br /&gt;
&lt;br /&gt;
'''34 12''' - song ID: 0x1234&lt;br /&gt;
&lt;br /&gt;
'''16 00''' - data length 0x16 in hex or 22 in decimal&lt;br /&gt;
&lt;br /&gt;
'''04 00''' - reverb type: 4 (large studio)&lt;br /&gt;
&lt;br /&gt;
'''96 12 18 22 46 28''' - created at 1996-12-18 22:46:28&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Channel Info ===&lt;br /&gt;
'''01 00 00 00''' - this indicates, that used only one channel&lt;br /&gt;
&lt;br /&gt;
'''00 00''' - offset to first channel opcodes: in our example 0x00 means that next to this offset is opcodes for first channel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Channel Commands ===&lt;br /&gt;
'''e8 a8 66''' - sets tempo, parameter 0x66a8&lt;br /&gt;
&lt;br /&gt;
'''ea 00 50''' - sets reverb depth&lt;br /&gt;
&lt;br /&gt;
'''a8 55''' - load sample 0x55 from INSTR.ALL to channel&lt;br /&gt;
&lt;br /&gt;
'''aa 40''' - sets channel volume&lt;br /&gt;
&lt;br /&gt;
'''c2''' - turns on reverb effect&lt;br /&gt;
&lt;br /&gt;
'''a1 0c''' - sets volume pan&lt;br /&gt;
&lt;br /&gt;
'''c8''' - sets loop point&lt;br /&gt;
&lt;br /&gt;
'''66''' - 0x66 % 11 = 3 (3 means to take 3rd number from play length table), 0x66 / 11 = 9 (9 means to take pitch[9] from loaded instrument record index)&lt;br /&gt;
&lt;br /&gt;
'''ca''' - returns to saved loop point with opcode c8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This example plays Chocobo &amp;quot;Whoo-Hoo&amp;quot; (instrument number 0x55) repeatedly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sound Opcode List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Opcode&lt;br /&gt;
! Summary&lt;br /&gt;
! Length&lt;br /&gt;
! Operands&lt;br /&gt;
! Note&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0x0099|0x00-0x99]]&lt;br /&gt;
|Note, Tie, Rest&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|The opcode indicates the note key and length. The note will be keyed off 2 ticks before the next note.&lt;br /&gt;
|-&lt;br /&gt;
|0x9A-0x9F&lt;br /&gt;
|Unimplemented&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|Should not be used.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa0|0xA0]]&lt;br /&gt;
|Finish Channel&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa1|0xA1]]&lt;br /&gt;
|Load Instrument&lt;br /&gt;
|2&lt;br /&gt;
|instrument: byte (0-127)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0x0099|0xA2]]&lt;br /&gt;
|Overwrite Next Note Length&lt;br /&gt;
|2&lt;br /&gt;
|length: byte&lt;br /&gt;
|Ignores the regular length (delta-time) of the next note and overwrites it with the specified length.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa8aa|0xA3]]&lt;br /&gt;
|Channel Master Volume&lt;br /&gt;
|2&lt;br /&gt;
|volume: byte (0-127)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa4|0xA4]]&lt;br /&gt;
|Pitch Bend Slide&lt;br /&gt;
|3&lt;br /&gt;
|length: byte, semitones: signed byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa5|0xA5]]&lt;br /&gt;
|Set Octave&lt;br /&gt;
|2&lt;br /&gt;
|octave: byte (0-15)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa5|0xA6]]&lt;br /&gt;
|Increase Octave&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa5|0xA7]]&lt;br /&gt;
|Decrease Octave&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa8aa|0xA8]]&lt;br /&gt;
|Channel Volume&lt;br /&gt;
|2&lt;br /&gt;
|volume: byte (0-127)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa9|0xA9]]&lt;br /&gt;
|Channel Volume Slide&lt;br /&gt;
|3&lt;br /&gt;
|length: byte, volume: byte (0-127)&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa8aa|0xAA]]&lt;br /&gt;
|Channel Pan&lt;br /&gt;
|2&lt;br /&gt;
|pan: byte (0-127)&lt;br /&gt;
|64 is the center.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xab|0xAB]]&lt;br /&gt;
|Channel Pan Slide&lt;br /&gt;
|3&lt;br /&gt;
|length: byte, pan: byte (0-127)&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xac|0xAC]]&lt;br /&gt;
|Noise Clock Frequency&lt;br /&gt;
|2&lt;br /&gt;
|clock: byte (0x00-0x3f)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xAD]]&lt;br /&gt;
|ADSR: Attack Rate&lt;br /&gt;
|2&lt;br /&gt;
|attack_rate: byte (0x00-0x7f)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xAE]]&lt;br /&gt;
|ADSR: Decay Rate&lt;br /&gt;
|2&lt;br /&gt;
|decay_rate: byte (0x00-0x0f)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xAF]]&lt;br /&gt;
|ADSR: Sustain Level&lt;br /&gt;
|2&lt;br /&gt;
|sustain_level: byte (0x00-0x0f)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xB0]]&lt;br /&gt;
|ADSR: Decay Rate &amp;amp; Sustain Level&lt;br /&gt;
|3&lt;br /&gt;
|decay_rate: byte (0x00-0x0f), sustain_level: byte (0x00-0x0f)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xB1]]&lt;br /&gt;
|ADSR: Sustain Rate&lt;br /&gt;
|2&lt;br /&gt;
|sustain_rate: byte (0x00-0x7f)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xB2]]&lt;br /&gt;
|ADSR: Release Rate&lt;br /&gt;
|2&lt;br /&gt;
|release_rate: byte (0x00-0x1f)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xB3]]&lt;br /&gt;
|ADSR: Reset ADSR&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xb4b5|0xB4]]&lt;br /&gt;
|Vibrato (Channel Pitch LFO)&lt;br /&gt;
|4&lt;br /&gt;
|delay: byte, rate: byte, type: byte (0-15)&lt;br /&gt;
|When &amp;lt;code&amp;gt;rate&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xb4b5|0xB5]]&lt;br /&gt;
|Vibrato Depth&lt;br /&gt;
|2&lt;br /&gt;
|depth: byte&lt;br /&gt;
|The most significant bit of the &amp;lt;code&amp;gt;depth&amp;lt;/code&amp;gt; determines the amplitude range.&lt;br /&gt;
&lt;br /&gt;
When it is 0, the range is up to about ± 50 cents (amplitude is 15/256 compared with range type 1).&lt;br /&gt;
&lt;br /&gt;
When it is 1, the range is up to about ± 700 cents.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xb4b5|0xB6]]&lt;br /&gt;
|Turn Off Vibrato&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xB7]]&lt;br /&gt;
|ADSR: Attack Mode&lt;br /&gt;
|2&lt;br /&gt;
|attack_mode: byte (1 or 5)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xb8b9|0xB8]]&lt;br /&gt;
|Tremolo (Channel Volume LFO)&lt;br /&gt;
|4&lt;br /&gt;
|delay: byte, rate: byte, type: byte (0-15)&lt;br /&gt;
|When &amp;lt;code&amp;gt;rate&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xb8b9|0xB9]]&lt;br /&gt;
|Tremolo Depth&lt;br /&gt;
|2&lt;br /&gt;
|depth: byte&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xb8b9|0xBA]]&lt;br /&gt;
|Turn Off Tremolo&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/ADSR|0xBB]]&lt;br /&gt;
|ADSR: Sustain Mode&lt;br /&gt;
|2&lt;br /&gt;
|sustain_mode: byte (1, 3, 5 or 7)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xbcbd|0xBC]]&lt;br /&gt;
|Channel Pan LFO&lt;br /&gt;
|3&lt;br /&gt;
|rate: byte, type: byte (0-15)&lt;br /&gt;
|When &amp;lt;code&amp;gt;rate&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xbcbd|0xBD]]&lt;br /&gt;
|Channel Pan LFO Depth&lt;br /&gt;
|2&lt;br /&gt;
|depth: byte&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xbcbd|0xBE]]&lt;br /&gt;
|Turn Off Channel Pan LFO&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xbf|0xBF]]&lt;br /&gt;
|ADSR: Release Mode&lt;br /&gt;
|2&lt;br /&gt;
|release_mode: byte (3 or 7)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc0c1|0xC0]]&lt;br /&gt;
|Channel Transpose (Absolute)&lt;br /&gt;
|2&lt;br /&gt;
|semitones: signed byte&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc0c1|0xC1]]&lt;br /&gt;
|Channel Transpose (Relative)&lt;br /&gt;
|2&lt;br /&gt;
|semitones: signed byte&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc2c3|0xC2]]&lt;br /&gt;
|Turn On Reverb&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc2c3|0xC3]]&lt;br /&gt;
|Turn Off Reverb&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc4c5|0xC4]]&lt;br /&gt;
|Turn On Noise&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc4c5|0xC5]]&lt;br /&gt;
|Turn Off Noise&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc6c7|0xC6]]&lt;br /&gt;
|Turn On Frequency Modulation&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc6c7|0xC7]]&lt;br /&gt;
|Turn Off Frequency Modulation&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc8c9|0xC8]]&lt;br /&gt;
|Loop Point&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|Remember the current offset as a loop point and increase the nesting level of the loop.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc8c9|0xC9]]&lt;br /&gt;
|Return to Loop Point Up to N Times&lt;br /&gt;
|2&lt;br /&gt;
|times: byte&lt;br /&gt;
|On the Nth repeat, this instruction will end the current loop by decrementing the nesting level of the loop. Otherwise, it will increment the loop counter and return to the loop point.&lt;br /&gt;
When &amp;lt;code&amp;gt;times&amp;lt;/code&amp;gt; is 0, it will be translated to 256 times.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xc8c9|0xCA]]&lt;br /&gt;
|Return to Loop Point&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|This instruction will increment the loop counter.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xcb|0xCB]]&lt;br /&gt;
|Reset Sound Effects&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|Reset sound effects such as noise, frequency modulation, reverb, overlay voice and alternate voice.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xcccd|0xCC]]&lt;br /&gt;
|Turn On Legato&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|This instruction will stop the regular key on and key off performance of the subsequent notes and update the pitch only.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xcccd|0xCD]]&lt;br /&gt;
|Turn Off Legato&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xcecf|0xCE]]&lt;br /&gt;
|Turn On Noise and Toggle Noise On/Off after a Period of Time&lt;br /&gt;
|2&lt;br /&gt;
|delay: byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;delay&amp;lt;/code&amp;gt; is 0, it will be translated to 257 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xcecf|0xCF]]&lt;br /&gt;
|Toggle Noise On/Off after a Period of Time&lt;br /&gt;
|2&lt;br /&gt;
|delay: byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;delay&amp;lt;/code&amp;gt; is 0, it will be translated to 257 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd0d1|0xD0]]&lt;br /&gt;
|Turn On Full-Length Note Mode&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|This instruction will stop the regular key off performance of the subsequent notes.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd0d1|0xD1]]&lt;br /&gt;
|Turn Off Full-Length Note Mode&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd2d3|0xD2]]&lt;br /&gt;
|Turn On Frequency Modulation and Toggle Frequency Modulation On/Off after a Period of Time&lt;br /&gt;
|2&lt;br /&gt;
|delay: byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;delay&amp;lt;/code&amp;gt; is 0, it will be translated to 257 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd2d3|0xD3]]&lt;br /&gt;
|Toggle Frequency Modulation On/Off after a Period of Time&lt;br /&gt;
|2&lt;br /&gt;
|delay: byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;delay&amp;lt;/code&amp;gt; is 0, it will be translated to 257 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd4d5|0xD4]]&lt;br /&gt;
|Turn On Playback Rate Side Chain&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|Duplicate and use the playback frequency of the previous voice channel.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd4d5|0xD5]]&lt;br /&gt;
|Turn Off Playback Rate Side Chain&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd6d7|0xD6]]&lt;br /&gt;
|Turn On Pitch-Volume Side Chain&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|Multiply the playback frequency of the previous voice channel to the output volume. Lower pitch will make the volume smaller.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd6d7|0xD7]]&lt;br /&gt;
|Turn Off Pitch-Volume Side Chain&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd8d9|0xD8]]&lt;br /&gt;
|Channel Fine Tuning (Absolute)&lt;br /&gt;
|2&lt;br /&gt;
|amount: signed byte&lt;br /&gt;
|The pitch can be changed in the range of one octave above and below.&lt;br /&gt;
The &amp;lt;code&amp;gt;amount&amp;lt;/code&amp;gt; is the multiplicand for the playback frequency, not a log-based parameter like cents. For example, when the &amp;lt;code&amp;gt;amount&amp;lt;/code&amp;gt; is 127, the pitch will be multiplied by 127/128 (about +1 octave). Negative value ​​will lower the pitch.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xd8d9|0xD9]]&lt;br /&gt;
|Channel Fine Tuning (Relative)&lt;br /&gt;
|2&lt;br /&gt;
|amount: signed byte&lt;br /&gt;
|The &amp;lt;code&amp;gt;amount&amp;lt;/code&amp;gt; will be added to the current tuning amount.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xdadb|0xDA]]&lt;br /&gt;
|Turn On Portamento&lt;br /&gt;
|2&lt;br /&gt;
|speed: byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;speed&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xdadb|0xDB]]&lt;br /&gt;
|Turn Off Portamento&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0x0099|0xDC]]&lt;br /&gt;
|Fix Note Length&lt;br /&gt;
|2&lt;br /&gt;
|length_to_add: signed byte&lt;br /&gt;
|Ignore the regular length (delta-time) of subsequent notes and set to the fixed length. The &amp;lt;code&amp;gt;length_to_add&amp;lt;/code&amp;gt; parameter will be added to the current length value. (the initial value is 0)&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xdd|0xDD]]&lt;br /&gt;
|Vibrato Depth Slide&lt;br /&gt;
|3&lt;br /&gt;
|length: byte, depth: byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xde|0xDE]]&lt;br /&gt;
|Tremolo Depth Slide&lt;br /&gt;
|3&lt;br /&gt;
|length: byte, depth: byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xdf|0xDF]]&lt;br /&gt;
|Channel Pan LFO Depth Slide&lt;br /&gt;
|3&lt;br /&gt;
|length: byte, depth: byte&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa0|0xE0-0xE7]]&lt;br /&gt;
|Unimplemented&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|Code-referenced to 0xA0. Should not be used.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xe8e9|0xE8]]&lt;br /&gt;
|Tempo&lt;br /&gt;
|3&lt;br /&gt;
|tempo: uint16&lt;br /&gt;
|bpm = tempo / 214.998204 (approximate)&lt;br /&gt;
More strictly, &amp;lt;code&amp;gt;bpm = 60.0 / (48 * (65536.0 / tempo) * (0x44E8 / (33868800.0 / 8)))&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this coefficient is different from other games with PlayStation AKAO.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xe8e9|0xE9]]&lt;br /&gt;
|Tempo Slide&lt;br /&gt;
|4&lt;br /&gt;
|length: byte, tempo: uint16&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xeaeb|0xEA]]&lt;br /&gt;
|Reverb Depth&lt;br /&gt;
|3&lt;br /&gt;
|depth: uint16&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xeaeb|0xEB]]&lt;br /&gt;
|Reverb Depth Slide&lt;br /&gt;
|4&lt;br /&gt;
|length: byte, depth: uint16&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xeced|0xEC]]&lt;br /&gt;
|Turn On Drum Mode&lt;br /&gt;
|3&lt;br /&gt;
|drum_map_offset: signed int16&lt;br /&gt;
|The &amp;lt;code&amp;gt;drum_map_offset&amp;lt;/code&amp;gt; is a relative offset pointing to the drum instrument map table, which determines the instrument for each keys.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xeced|0xED]]&lt;br /&gt;
|Turn Off Drum Mode&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xee|0xEE]]&lt;br /&gt;
|Unconditional Jump&lt;br /&gt;
|3&lt;br /&gt;
|destination_offset: signed int16&lt;br /&gt;
|This instruction can be used to make an infinite loop.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xef|0xEF]]&lt;br /&gt;
|CPU-Conditional Jump&lt;br /&gt;
|4&lt;br /&gt;
|condition: byte, destination_offset: signed int16&lt;br /&gt;
|Jump if the condition variable matches &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt;. The value of the condition variable can be set from the game program.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf0f1|0xF0]]&lt;br /&gt;
|Jump on the Nth Repeat&lt;br /&gt;
|4&lt;br /&gt;
|times: byte, destination_offset: signed int16&lt;br /&gt;
|When &amp;lt;code&amp;gt;times&amp;lt;/code&amp;gt; is 0, it will be translated to 256 times.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf0f1|0xF1]]&lt;br /&gt;
|Break the Loop on the Nth Repeat&lt;br /&gt;
|4&lt;br /&gt;
|times: byte, destination_offset: signed int16&lt;br /&gt;
|Unlike 0xF0, this instruction will end the current loop by decrementing the nesting level of the loop.&lt;br /&gt;
When &amp;lt;code&amp;gt;times&amp;lt;/code&amp;gt; is 0, it will be translated to 256 times.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa1|0xF2]]&lt;br /&gt;
|Load Instrument (No Attack Sample)&lt;br /&gt;
|2&lt;br /&gt;
|instrument: byte&lt;br /&gt;
|Unlike 0xA1, the sample before the loop point is replaced by a short, silence sample.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf3|0xF3]]&lt;br /&gt;
|Unknown&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|There is no actual use in music.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf4f5|0xF4]]&lt;br /&gt;
|Turn On Overlay Voice&lt;br /&gt;
|3&lt;br /&gt;
|instrument: byte, instrument2: byte&lt;br /&gt;
|Play the same melody by different instruments on two voice channels. A free voice channel is required to work. Note that the two channels share the playback rate, and the pitch is not calculated for each instruments.&lt;br /&gt;
Used in the song &amp;quot;Anxious Heart&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf4f5|0xF5]]&lt;br /&gt;
|Turn Off Overlay Voice&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf4f5|0xF6]]&lt;br /&gt;
|Overlay Volume Balance&lt;br /&gt;
|2&lt;br /&gt;
|balance: byte (0-127)&lt;br /&gt;
|When the balance is 0, the volume of the primary voice will be 100% (127/128) of original and that of the secondary voice will be 0%. 127 is the opposite.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf4f5|0xF7]]&lt;br /&gt;
|Overlay Volume Balance Slide&lt;br /&gt;
|3&lt;br /&gt;
|length: byte, balance: byte (0-127)&lt;br /&gt;
|When &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; is 0, it will be translated to 256 ticks.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf8f9|0xF8]]&lt;br /&gt;
|Turn On Alternate Voice&lt;br /&gt;
|2&lt;br /&gt;
|release_rate: byte (0x00-0x1f)&lt;br /&gt;
|This instruction allows subsequent notes to be played on two alternating channels. At the same time, the ADSR release rate will be set to the specified value. A free voice channel is required to work. &lt;br /&gt;
Check &amp;quot;Opening - Bombing Mission&amp;quot;, &amp;quot;Tifa's Theme&amp;quot; and &amp;quot;Fortress of the Condor&amp;quot; for actual usage.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xf8f9|0xF9]]&lt;br /&gt;
|Turn Off Alternate Voice&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa0|0xFA-0xFC]]&lt;br /&gt;
|Unimplemented&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|Code-referenced to 0xA0. Should not be used.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xfd|0xFD]]&lt;br /&gt;
|Time Signature&lt;br /&gt;
|3&lt;br /&gt;
|ticks_per_beat: byte, beats_per_measure: byte&lt;br /&gt;
|Note that two parameters can be 0. This pattern is used for initialization.&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xfe|0xFE]]&lt;br /&gt;
|Measure Number&lt;br /&gt;
|2&lt;br /&gt;
|measure: byte&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[FF7/PSX/Sound/Opcodes/0xa0|0xFF]]&lt;br /&gt;
|Unimplemented&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|Code-referenced to 0xA0. Should not be used.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Myst6re</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF8/PlaystationMedia&amp;diff=5628</id>
		<title>FF8/PlaystationMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF8/PlaystationMedia&amp;diff=5628"/>
		<updated>2020-01-11T00:48:45Z</updated>

		<summary type="html">&lt;p&gt;Myst6re: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By myst6re&lt;br /&gt;
&lt;br /&gt;
=  FF8DISCX.IMG File Format  =&lt;br /&gt;
&lt;br /&gt;
Almost all of the game files are hidden in the FF8DISCX.IMG (with X=disc number) file.&lt;br /&gt;
&lt;br /&gt;
==  Root Files  ==&lt;br /&gt;
&lt;br /&gt;
In the case of a Japanese iso, the file begins directly with a list of file location and size, with the following format:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Data&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4&lt;br /&gt;
| Location of file in sectors (relative to the start of the '''iso''')&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| Size of file in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the case of a PAL iso, there are 5 unknown sectors (a sector = 2048 bytes in data, 2352 bytes in disk) before this list of files.&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
&lt;br /&gt;
* I do not have the American iso, please fix this article if you can.&lt;br /&gt;
* We do not know how many files there are in the list, neither file names!&lt;br /&gt;
* Each file in FF8DISCX.IMG are relative to the start of the '''iso'''!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID&lt;br /&gt;
! Filename (from PC version)&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| ? + packcode.bin&lt;br /&gt;
| Contains a font file (tim format)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
[[#Field_Files|field.bin]]&lt;br /&gt;
| LZSed&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| wm2field.tbl&lt;br /&gt;
| size= 72*24 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| ? + mmagic.bin + mitem.bin + areames.dc1 + ?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| ? + pet_exp.bin + ?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| ? + mwepon.bin + mwepon.msg + shop.bin + price.bin + ?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| ? + mmag.bin + mthomas.bin&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| ? + magsort.bin&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| ? + mmag2.bin + cyocobo.bin&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| ? + cardanm.sp2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| ? + mtmag.bin&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| mngrp.bin&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| init.out&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| Triple Triad (in ff8.exe in PC version)&lt;br /&gt;
| Some Triple Triad tims (LZSed)&lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| battle.bin (not present in PC version)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| world.bin (not present in PC version)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 30 -&amp;gt; 127&lt;br /&gt;
| AKAO files (music)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 128&lt;br /&gt;
| kernel.bin&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 129&lt;br /&gt;
| sysfnt.tdw&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 130&lt;br /&gt;
| icon.tim&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 131&lt;br /&gt;
| namedic.tim&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Field Files  ==&lt;br /&gt;
&lt;br /&gt;
In the list of root files, the third file is in fact the &amp;quot;FIELD.BIN&amp;quot;. This file is [[FF7/LZS_format|LZS]] compressed, and contains some informations, like the list of field files position and size.&lt;br /&gt;
&lt;br /&gt;
Find the file list is approximate, I am trying to find some bytes: &amp;quot;\x04\x00\x05\x24\x18\x00\xbf\x8f\x14\x00\xb1\x8f\x10\x00\xb0\x8f\x20\x00\xbd\x27\x08\x00\xe0\x03\x00\x00\x00\x00&amp;quot; (size=28), normally, there is the list right after this sequence of bytes, and before the &amp;quot;\x00\x00\x01\x00\x02\x00\x03\x00&amp;quot; (size=8) sequence.&lt;br /&gt;
&lt;br /&gt;
Order of files (sorted by id):&lt;br /&gt;
&lt;br /&gt;
* D000.[[FF8/FileFormat_MCH|MCH]] -&amp;gt; D075.MCH files [id=0 -&amp;gt; id=76]&lt;br /&gt;
* Field files (MIM, DAT and LZK) [id=77 -&amp;gt; id=last]&lt;br /&gt;
&lt;br /&gt;
There are three LZSed files for each field: EXAMPLE.MIM, EXAMPLE.DAT and EXAMPLE.LZK (Extension names *.MIM, *.DAT and *.LZK found in PC version, field.fs &amp;amp;gt; mapdata.fs &amp;amp;gt; map1.bak). If you want to convert Playstation fields to PC fields format, this is a concatenation of some PC files.&lt;br /&gt;
&lt;br /&gt;
===  First file (*.MIM)  ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Data&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4&lt;br /&gt;
| Location of section 3 in PSX RAM&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| Location of section 4 in PSX RAM&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| style=&amp;quot;background: rgb(255,255,204)&amp;quot; |&lt;br /&gt;
[[FF8/FileFormat_PVP|Unknown data [PVP]]]&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| 438272&lt;br /&gt;
|&lt;br /&gt;
[[FF8/FileFormat_MIM|Background data [MIM]]]&lt;br /&gt;
|-&lt;br /&gt;
| 438284 (section 3)&lt;br /&gt;
| ''Varies''&lt;br /&gt;
|&lt;br /&gt;
[[FF8/FileFormat_TDW|Font data [TDW]]]&lt;br /&gt;
|-&lt;br /&gt;
| ''Varies'' (section 4)&lt;br /&gt;
| ''Varies''&lt;br /&gt;
|&lt;br /&gt;
[[FF8/FileFormat_PMP|Particle Image Data [PMP]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===  Second file (*.DAT)  ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Data&lt;br /&gt;
! Section Data&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4&lt;br /&gt;
| Location of section 1 in PSX RAM&lt;br /&gt;
|&lt;br /&gt;
[[FF8/FileFormat_INF|Triggers &amp;amp; gateways [INF]]]&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| Location of section 2 in PSX RAM&lt;br /&gt;
|&lt;br /&gt;
[[FF8/FileFormat_CA|Camera [CA]]]&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| Location of section 3 in PSX RAM&lt;br /&gt;
|&lt;br /&gt;
[[FF7/Field/Camera_Matrix|Walkmesh [ID]]]&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| 4&lt;br /&gt;
| Location of section 4 in PSX RAM&lt;br /&gt;
|&lt;br /&gt;
[[FF8/FileFormat_MAP|Background infos [MAP]]]&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| 4&lt;br /&gt;
| Location of section 5 in PSX RAM&lt;br /&gt;
|&lt;br /&gt;
[[FF8/FileFormat_MSK|Movie cam [MSK]]]&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| 4&lt;br /&gt;
| Location of section 6 in PSX RAM&lt;br /&gt;
|&lt;br /&gt;
[[FF8/FileFormat_RAT_MRT|Battle rate [RAT]]]&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| 4&lt;br /&gt;
| Location of section 7 in PSX RAM&lt;br /&gt;
|&lt;br /&gt;
[[FF8/FileFormat_RAT_MRT|Battle formations [MRT]]]&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| 4&lt;br /&gt;
| Location of section 8 in PSX RAM&lt;br /&gt;
| Sounds/AKAOs&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| 4&lt;br /&gt;
| Location of section 9 in PSX RAM&lt;br /&gt;
|&lt;br /&gt;
[[FF8/FileFormat_MSD|Texts [MSD]]]&lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| 4&lt;br /&gt;
| Location of section 10 in PSX RAM&lt;br /&gt;
|&lt;br /&gt;
[[FF8/FileFormat_PMD|Particle Infos [PMD]]]&lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| 4&lt;br /&gt;
| Location of section 11 in PSX RAM&lt;br /&gt;
|&lt;br /&gt;
[[FF8/FileFormat_JSM|Scripts [JSM]]]&lt;br /&gt;
|-&lt;br /&gt;
| 44&lt;br /&gt;
| 4&lt;br /&gt;
| Location of the end of file in PSX RAM&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 48&lt;br /&gt;
| ''varies''&lt;br /&gt;
| Triggers and gateways&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
| ...&lt;br /&gt;
| ...&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===  Third file (*.LZK)  ===&lt;br /&gt;
&lt;br /&gt;
Almost like the [[FF8/FileFormat_ONE|chara.one]] file. The main difference is that the models data are compressed.&lt;/div&gt;</summary>
		<author><name>Myst6re</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5627</id>
		<title>FF8/WorldMap wmsetxx</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5627"/>
		<updated>2020-01-09T17:00:34Z</updated>

		<summary type="html">&lt;p&gt;Myst6re: /* Section 6: World Map Encounters (after Lunar Cry) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Info==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj (where xx may refer to gr,us,it,fr,sp) is a multi-data world map file containing many core functions and 3D objects. This file contains almost everything: sounds, scripts, dialogs, texts, textures, models- all contained in one file. Main differences between en/it/gr/sp/fr are localized dialogs, so next sections have different offsets. Offsets before this are all the same. [[FF8/WorldMap_wmset|Wmset.obj]] is probably never used in-game and is leftover. Dialogs in lang-en/wmset.obj are in english, but the file is different from wmsetus.obj.&lt;br /&gt;
&lt;br /&gt;
==General structure==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj is made from 48 sections. File starts with header, that has 48*4 bytes. Every offset is 4 bytes long. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section 1&lt;br /&gt;
|-&lt;br /&gt;
| SectNmbr * 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section SectNmbr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The last section is offset 188. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Section 1: World map encounter data supplier ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| FileSize (this+4)&lt;br /&gt;
|-&lt;br /&gt;
| 4 + (entryID * 4)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| EncounterIdSupplierDataProvider_Entry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''EncounterIdSupplierDataProvider_Entry''':&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Byte&lt;br /&gt;
| regionID&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Byte&lt;br /&gt;
| groundID&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Byte&lt;br /&gt;
| ESI*&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Byte&lt;br /&gt;
| unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ESI is the name of the register that holds the third byte parameter of section1. It is used later to determine the encounter. When the character makes a step on worldmap, the game loops through whole section1 data and tests:&lt;br /&gt;
&lt;br /&gt;
if the character is walking on groundID and regionID, if yes, then ESI is our multiplier to section4 containing encounters. Example entry:&lt;br /&gt;
&lt;br /&gt;
00 06 00 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 0 and walks on ground with ID 6 (as far as I remember it's Balamb Plains or forest) then get encounters from section4 that start at 0*8; Other example:&lt;br /&gt;
&lt;br /&gt;
04 1B 24 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 4 and walks on ground with ID 0x1B, then get encounters from section4 that starts at 0x24*8 = 288&lt;br /&gt;
&lt;br /&gt;
That way the engine can play encounter based on place you are, because if you're walking on Balamb beach, then engine should play encounter with beach, not snow plains. That's why if you change the for one map portion you can totally erase encounters in this region, because in example region 4 that may be Centra regions does not contain any BalambPlains, so there is no entry in section1 and therefore the engine finds the region encounters, but doesn't find the encounter entries for BalambPlainsGround in Centra ruins (this is totally an example).&lt;br /&gt;
&lt;br /&gt;
=== Section 2: World map Regions ===&lt;br /&gt;
&lt;br /&gt;
Nothing much to write here.&lt;br /&gt;
32x24 world map. Just open it via hexEditor.&lt;br /&gt;
It's just bitmap (you can even convert bytes to image and mini worldmap will show)&lt;br /&gt;
Every single byte is regionID used for example in section1 for encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 3: World Map Encounters Flags ===&lt;br /&gt;
&lt;br /&gt;
One byte per encounter group in section 4. Always 0 on railways/roads, always 12 on forests, 128 on Island closest to Hell/Heaven, 3 in Galbadia Desert (day and night) and 2 for everything else.&lt;br /&gt;
&lt;br /&gt;
=== Section 4: World Map Encounters ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| section1.ESI * 16&lt;br /&gt;
| 16 bytes&lt;br /&gt;
| 2 * 8 bytes of encounters from scene.out&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It's as simple as that:&lt;br /&gt;
Squall makes step on worldmap, game gets Squall position and tests it with section2 containing region, then loops through section1 and tests groundID and regionID to find ESI multiplier, if random number generates battle, then game gets to section4 using ESI determined earlier with Squall step on world map and plays randomly one of the eight encounters (because one ESI/encounterEntry is 16 bytes, where first four words are the most common, other 2 medium and last 2 rarest)&lt;br /&gt;
&lt;br /&gt;
=== Section 5: UNUSED Encounter Flags (after Lunar Cry) ===&lt;br /&gt;
Unused in-game&lt;br /&gt;
&lt;br /&gt;
One byte (always 8 here) per encounter group in section 6. Analog to section 3, but for Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 6: World Map Encounters (after Lunar Cry) ===&lt;br /&gt;
&lt;br /&gt;
Same format as Section 4, but only with Lunar Cry encounters.&lt;br /&gt;
You can use the section 1 to obtain ground, this way: search in section 1 for region == 10 (Esthar), and substract 80 from the esi value, you will obtain the correct esi for the section 6.&lt;br /&gt;
&lt;br /&gt;
=== Section 7-8: roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
Related with Section 39. Maybe scripts in section 8. (like sections 10, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
Script format (ScriptsCount must be guessed):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| List of script positions, not always sorted (ended with 0x00000000)&lt;br /&gt;
|-&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| Varies + 4&lt;br /&gt;
| Scripts data (ended with 0x00000000)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In script data you have 4-bytes opcodes, the first byte is the identifier, and the last two bytes are the parameter (the second byte is always 0xFF).&lt;br /&gt;
Scripts always start with 0x01 opcode, and finish with 0x16 opcode. There is always one 0x04 opcode inside.&lt;br /&gt;
For now most is unknown, I only understood that 0x2B opcode refer to scene ID in its parameter (you can find UFO, Koyo-K and Lac Obel battles in Section 32).&lt;br /&gt;
&lt;br /&gt;
=== Section 9: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 10-11: UNKNOWN (Related to Squall model) ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 10. (like sections 8, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 12-13: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 12. (like sections 8, 10 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 14: Side quests texts/tialogs ===&lt;br /&gt;
&lt;br /&gt;
This section provides dialogs on world map used in side quests.&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 …+-1 Airstation5 … 7  Get off…YesNo5 + 7  Get off…YesNo5 - 7  Get off…YesNo”Bound for 5 4 7“Pay 4111 Gil to rideDon't ride”&lt;br /&gt;
 Bound for 5 3 7“Pay 4111 Gil to rideDon't ride”Bound for 5 ! 7“Pay 4111 Gil to rideDon't ride7 ”You don't have enough money“&lt;br /&gt;
 Selphie ”C'mon?  To the 5Missile Base7?“ n Soldier”Give it up“ n Soldier”I'm busy“ n Soldier”There's no way you're getting &lt;br /&gt;
 through?“ n Soldier”This is our duty“ n Soldier”Just like always“ n Soldier”How 'bout a date…“Found a draw point?But no one &lt;br /&gt;
 can drawFound a draw point?Nothing thereFound a draw point? foundCan't carry anymoreYou do not have DrawWho will draw…Don't &lt;br /&gt;
 draw  stocked 1+-=*&amp;amp;??()·.71Out of/  …?3  7remaining …YesNo#‘2 How to drive 7          4!Back  7!Forward          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 Garden Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 How to ride a Chocobo 7 6!Get off Run with directional button 1!Change POV2&lt;br /&gt;
  Spaceship Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on:off Directional button to go up:down:steer 1!&lt;br /&gt;
 Change POV)This place looksfamiliar·It looks abandonedand run=down”Huh?…“Nida”The gauge is going berserk?…“)Shouldn't be getting&lt;br /&gt;
  off·This must be Obel LakeThrow a rockTry hummingIt's Obel LakeThrow a rockTry hummingA black shadow rose to the surfaceThrow&lt;br /&gt;
  a rockTry humming againThe black shadow disappearedThe rock sank .The rock skipped once . .The rock skipped twice . . .The &lt;br /&gt;
 rock skipped 4 times . . . .The rock skipped 5 times . . . . .The rock skipped 6 times . . . . . .The rock skipped 7 times . &lt;br /&gt;
 . . . . .The rock skippedmany many timesBlack Shadow”Hello human  What a lovely tune“A black shadow rose to the surface”Hello?“)&lt;br /&gt;
 There's something large there·”Thanks for speaking to me again?“”Umm“”Can you do me a favor…“)What is it·)I don't want to hear &lt;br /&gt;
 it·”It's my friend Mr Monkey Can you find him for me…“”Please“”“”Mr Monkey should be in a forest somewhere Keep walking around &lt;br /&gt;
 and I'm sure you'll find him“”Oh yeah do you know what…“”Oh yeah“”What a beautiful day“”I wonder what it means…“”Mysterious &lt;br /&gt;
 writing on the rock“”Mr Monkey had a rock like this I think“”Take a break at the railroad bridge“”Take some time off at Eldbeak&lt;br /&gt;
  Peninsula“”I bet it's a wonderful place“Relayed the whereabouts of Mr Monkey”Thank you?“There's the monkey?Throw a rockSing”&lt;br /&gt;
 You suck?“The monkey disappeared into the forestThe monkey told you off and disappeared into the forest”Ahhh?  Darn it? &lt;br /&gt;
 Y=You're just a big loser?  I'm able to skip the rock as many times as I want? So there? Ha=Ha? Loser? Dork? Idiot? Your mom &lt;br /&gt;
 wears combat boots?“”OUCH? D=Darn it? You're gonna pay for that?“The monkey threw a rock at you and ran?Upon inspecting the &lt;br /&gt;
 rockit looks man=made andhas some carving on itYou found the monkey”You big dork???“Almost?The monkey ran awayWhat's this?…You&lt;br /&gt;
  found a piece of rock by your footIt looks man=made andhas some carving on itBut it was just a rockA bird is warming an egg&lt;br /&gt;
 Check it outLeave it aloneIt seems that the birdwent to go look for foodYou found a piece of rock thereNothing there1  &lt;br /&gt;
 S T S L R M 1  U R H A E O 1  R E A I D R 1  E A S N P D 1  S T S L R M 71  U R H A E O 71  R E A I D R 71  E A S N P D 7”&lt;br /&gt;
 At the beach in 2 something special washes ashore at times“”You'll find something on an island east of 4 too“”There's also &lt;br /&gt;
 something on top of a mountain with a lake and cavern“”Back in the day south of here there used to be a small but beautiful &lt;br /&gt;
 village surrounded by deep forests Everyone lived a happy life there“There is a stone pillarIf you look closelythere's something&lt;br /&gt;
  written on it”TRETIMEASUREAT MINOFFDEISLE“)…·Found 9?Found L?Found ?Found 1?That sound disappeared into the lakeThere are many&lt;br /&gt;
  multicoloredrocks with faces all over the placeThe black=faced rock tells you sternly”The treasure is probably in the direction&lt;br /&gt;
  of the North Star“The white=faced rock tells you coldly”It's east“The white=faced rock tells you coldly”It's west“The white=&lt;br /&gt;
 faced rock tells you coldly”It's south“The white=faced rock tells you coldly”It's north“The red=faced rock tells you angrily”&lt;br /&gt;
 The blue one's a liar?“The red=faced rock tells you angrily”The treasure's to the east?“The red=faced rock tells you angrily”&lt;br /&gt;
 The treasure's to the west?“The red=faced rock tells you angrily”The treasure's to the south?“The red=faced rock tells you angrily&lt;br /&gt;
 ”The treasure's to the north?“The red=faced rock tells you angrily”The treasure's not here?“The blue=faced rock whispers”&lt;br /&gt;
 I don't know where the treasure is“The blue=faced rock whispers”People call us ‘The Liar Rocks'“The blue=faced rock whispers”&lt;br /&gt;
 Some of us just repeat the same thing“The blue=faced rock whispers”Some of us just talk nonsense“The blue=faced whispers”&lt;br /&gt;
 Some of us just say the opposite of what we mean“This place just has rubble lying among the grassAbsolutely nothing)&lt;br /&gt;
 Is thispart of something…·)Seems like the same rock     I picked up before·)This must be all of them·”This must be all the rocks““&lt;br /&gt;
 If he's not around perhaps he took a train towards Dollet…“)I remember now This is Edea's house I get the feeling there's something&lt;br /&gt;
 nearby Something hugenearby·&lt;br /&gt;
&lt;br /&gt;
=== Section 15: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 16: World map objects data ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to Model structure (below)&lt;br /&gt;
|-&lt;br /&gt;
| Various&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| Models (see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Researched by: Vehek (http://forums.qhimm.com/index.php?topic=13799.msg193791#msg193791)&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u16 triangle_count;&lt;br /&gt;
 u16 quad_count;&lt;br /&gt;
 u16 texture_page;&lt;br /&gt;
 u16 vertex_count;&lt;br /&gt;
 triangle triangleData[triangle_count];&lt;br /&gt;
 quad quadData[quad_count];&lt;br /&gt;
 vertex verticeData[vertex_count];&lt;br /&gt;
 } model&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[3];&lt;br /&gt;
 u8 semitransp; //Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 } triangle&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[4];&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u8 texcoords4[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 u8 semitransp;//Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 unknown&lt;br /&gt;
 } quad&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 s16 coordinates[3];&lt;br /&gt;
 u16 unknown;&lt;br /&gt;
 }vertex&lt;br /&gt;
&lt;br /&gt;
=== Section 17-19: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 20: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Bunch of AKAO frames headers packed&lt;br /&gt;
&lt;br /&gt;
=== Section 21: AKAO ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO header&lt;br /&gt;
&lt;br /&gt;
=== Section 22-28: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 29: World map &amp;quot;water block&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Section 29 is a duplicate segment from &amp;quot;full&amp;quot; water block (not segment!) used in world map (wmx.obj).&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Whenever landing or entering ragnarok, the engine does not load segments from wmx.obj until the transition is done.&amp;lt;/s&amp;gt; Whenever transforming viewport at certain speed, the engine can't keep up with loading the new segments/blocks. The areas that are not loaded but should be rendered in the same time are filled with this block. This can be seen when the camera view is set so that it rotates during ragnarok entering/exiting transition or placing character to different area.&lt;br /&gt;
&lt;br /&gt;
=== Section 30: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 31: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 32: Text- Location names ===&lt;br /&gt;
&lt;br /&gt;
This section provides location names (probably for Ragnarok landing?)&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 ?2344 Forest  Garden  Garden: Station!9Missile Base7WinhillEdea's House%:&lt;br /&gt;
 51 Seaside Station1 City1: AirstationLunatic Pandora Laboratory=1&lt;br /&gt;
 Sorceress MemorialTears' Point1 Seaside Station=Tears' PointTears' &lt;br /&gt;
 PointLunatic Pandora Laboratory1:Airstation1 Sorceress Memorial&lt;br /&gt;
&lt;br /&gt;
=== Section 33-34: Light related ===&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 35: World Map draw points ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x2C&lt;br /&gt;
| UNUSED&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C + (thisEntryID * 4)&lt;br /&gt;
| DWORD&lt;br /&gt;
| DrawPointVariable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''DrawPointVariable''':&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| WORD&lt;br /&gt;
| World block X&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| WORD&lt;br /&gt;
| World block Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Magic contained in world map draw point: (ID is: section35 magic entry+0x80 [add 1 to be correct with list below])&lt;br /&gt;
    129 0 1 Cure&lt;br /&gt;
    130 0 1 Esuna&lt;br /&gt;
    131 0 1 Thunder&lt;br /&gt;
    132 0 1 Fira&lt;br /&gt;
    133 0 1 Thundara&lt;br /&gt;
    134 0 1 Blizzara&lt;br /&gt;
    135 0 1 Blizzard&lt;br /&gt;
    136 0 1 Fire&lt;br /&gt;
    137 0 1 Cure&lt;br /&gt;
    138 0 1 Water&lt;br /&gt;
    139 0 1 Cura&lt;br /&gt;
    140 0 1 Esuna&lt;br /&gt;
    141 0 1 Scan&lt;br /&gt;
    142 0 1 Shell&lt;br /&gt;
    143 0 1 Haste&lt;br /&gt;
    144 0 1 Aero&lt;br /&gt;
    145 0 1 Bio&lt;br /&gt;
    146 0 1 Life&lt;br /&gt;
    147 0 1 Demi&lt;br /&gt;
    148 0 1 Protect &lt;br /&gt;
    149 0 1 Holy &lt;br /&gt;
    150 0 1 Thundaga&lt;br /&gt;
    151 0 1 Stop&lt;br /&gt;
    152 0 1 Firaga&lt;br /&gt;
    153 0 1 Regen&lt;br /&gt;
    154 0 1 Blizzaga&lt;br /&gt;
    155 0 1 Confuse&lt;br /&gt;
    156 0 1 Flare&lt;br /&gt;
    157 0 1 Dispel&lt;br /&gt;
    158 0 1 Slow&lt;br /&gt;
    159 0 1 Quake&lt;br /&gt;
    160 0 1 Curaga&lt;br /&gt;
    161 0 1 Tornado&lt;br /&gt;
    162 0 0 Full-Life&lt;br /&gt;
    163 0 1 Reflect&lt;br /&gt;
    164 0 0 Aura&lt;br /&gt;
    165 0 0 Quake&lt;br /&gt;
    166 0 1 Double&lt;br /&gt;
    167 0 1 Break&lt;br /&gt;
    168 0 0 Meteor&lt;br /&gt;
    169 0 0 Ultima&lt;br /&gt;
    170 0 0 Triple&lt;br /&gt;
    171 0 1 Confuse&lt;br /&gt;
    172 0 1 Blind&lt;br /&gt;
    173 1 1 Quake&lt;br /&gt;
    174 0 1 Sleep&lt;br /&gt;
    175 0 1 Silence&lt;br /&gt;
    176 1 1 Flare&lt;br /&gt;
    177 0 1 Death&lt;br /&gt;
    178 0 1 Drain&lt;br /&gt;
    179 1 1 Pain&lt;br /&gt;
    180 0 1 Berserk&lt;br /&gt;
    181 0 1 Float&lt;br /&gt;
    182 0 1 Zombie&lt;br /&gt;
    183 0 1 Meltdown&lt;br /&gt;
    184 1 0 Ultima&lt;br /&gt;
    185 1 1 Tornado&lt;br /&gt;
    186 1 1 Quake&lt;br /&gt;
    187 1 1 Meteor&lt;br /&gt;
    188 1 1 Holy&lt;br /&gt;
    189 1 1 Flare&lt;br /&gt;
    190 1 1 Aura&lt;br /&gt;
    191 1 1 Ultima&lt;br /&gt;
    192 1 1 Triple&lt;br /&gt;
    193 1 1 Full-Life&lt;br /&gt;
    194 1 1 Tornado&lt;br /&gt;
    195 1 1 Quake&lt;br /&gt;
    196 1 1 Meteor&lt;br /&gt;
    197 1 1 Holy&lt;br /&gt;
    198 1 1 Flare&lt;br /&gt;
    199 1 1 Aura&lt;br /&gt;
    200 1 1 Ultima&lt;br /&gt;
    201 1 1 Triple&lt;br /&gt;
    202 1 1 Full-Life&lt;br /&gt;
    203 1 1 Tornado&lt;br /&gt;
    204 1 1 Quake&lt;br /&gt;
    205 1 1 Meteor&lt;br /&gt;
    206 1 1 Holy&lt;br /&gt;
    207 1 1 Flare&lt;br /&gt;
    208 1 1 Aura&lt;br /&gt;
    209 1 1 Ultima&lt;br /&gt;
    210 1 1 Triple&lt;br /&gt;
    211 1 1 Full-Life&lt;br /&gt;
    212 1 1 Ultima&lt;br /&gt;
    213 1 1 Meteor&lt;br /&gt;
    214 1 1 Holy&lt;br /&gt;
    215 1 1 Flare&lt;br /&gt;
    216 1 1 Aura&lt;br /&gt;
    217 1 1 Ultima&lt;br /&gt;
    218 1 1 Triple&lt;br /&gt;
    219 1 1 Full-Life&lt;br /&gt;
    220 1 1 Meteor&lt;br /&gt;
    221 1 1 Holy&lt;br /&gt;
    222 1 1 Triple&lt;br /&gt;
    223 1 1 Aura&lt;br /&gt;
    224 1 1 Ultima&lt;br /&gt;
    225 1 1 Triple&lt;br /&gt;
    226 1 1 Full-Life&lt;br /&gt;
    227 1 1 Meteor&lt;br /&gt;
    228 1 1 Holy&lt;br /&gt;
    229 1 1 Flare&lt;br /&gt;
    230 1 1 Aura&lt;br /&gt;
    231 1 1 Ultima&lt;br /&gt;
    232 1 1 Triple&lt;br /&gt;
    233 1 1 Full-Life&lt;br /&gt;
    234 1 1 Meteor&lt;br /&gt;
    235 1 1 Triple&lt;br /&gt;
    236 1 1 Flare&lt;br /&gt;
    237 1 1 Aura&lt;br /&gt;
    238 1 1 Ultima&lt;br /&gt;
    239 1 1 Triple&lt;br /&gt;
    240 1 1 Full-Life&lt;br /&gt;
    241 1 1 Meteor&lt;br /&gt;
    242 1 1 Holy&lt;br /&gt;
    243 1 1 Flare&lt;br /&gt;
    244 1 1 Aura&lt;br /&gt;
    245 1 1 Ultima&lt;br /&gt;
    246 0 1 Blizzard&lt;br /&gt;
    247 0 1 Cure&lt;br /&gt;
    248 1 1 Dispel&lt;br /&gt;
    249 1 1 Confuse&lt;br /&gt;
    250 0 0 Meteor&lt;br /&gt;
    251 0 0 Double&lt;br /&gt;
    252 0 0 Aura&lt;br /&gt;
    253 0 0 Holy&lt;br /&gt;
    254 0 0 Flare&lt;br /&gt;
    255 0 0 Ultima&lt;br /&gt;
    256 1 1 Scan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Halfer:&lt;br /&gt;
X = rowBlockAmount, which is 4 times segment amount so 4 * 32 = 128 or 0x80. The last bit tells which row of the two we are on, first or second. The range of top row is from 0x00 - 0x7F and second row's 0x80 - 0xFF.&lt;br /&gt;
&lt;br /&gt;
Y is incremented whenever X goes over 0xFF.&lt;br /&gt;
&lt;br /&gt;
=== Section 36-37: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 37. (like sections 8, 10 and 12)&lt;br /&gt;
&lt;br /&gt;
=== Section 38: World map textures archive ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). This is one of the larger sections in file. THIS section is responsible for 1/2 world map textures (Those are really used in-game). There is 36 textures inside as of original release. Also, sea, beach and special effects texture is present. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (144 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 39: Textures - roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for train track textures, road textures, bridge train track texture (the one that gets through FH). &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (52 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 40: One world map texture/NULL ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to only one .TIM texture. This is the first texture that is in [[FF8/WorldMap_texl|texl.obj]] or wmsetxx.obj/Section 38. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Various (16384 originally)&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|-&lt;br /&gt;
| After Texture&lt;br /&gt;
| Next offset-(header+TIM texture)&lt;br /&gt;
| NULL data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 41: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 42: Vehicle and object textures ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for vehicles, world map objects textures (Balamb mobile, Galbadia mobile, Balamb halo ring, cactuar statue, lunatic pandora...)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (132 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 43: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 44: Music related  ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 45-48: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;/div&gt;</summary>
		<author><name>Myst6re</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5626</id>
		<title>FF8/WorldMap wmsetxx</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5626"/>
		<updated>2020-01-09T15:28:43Z</updated>

		<summary type="html">&lt;p&gt;Myst6re: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Info==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj (where xx may refer to gr,us,it,fr,sp) is a multi-data world map file containing many core functions and 3D objects. This file contains almost everything: sounds, scripts, dialogs, texts, textures, models- all contained in one file. Main differences between en/it/gr/sp/fr are localized dialogs, so next sections have different offsets. Offsets before this are all the same. [[FF8/WorldMap_wmset|Wmset.obj]] is probably never used in-game and is leftover. Dialogs in lang-en/wmset.obj are in english, but the file is different from wmsetus.obj.&lt;br /&gt;
&lt;br /&gt;
==General structure==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj is made from 48 sections. File starts with header, that has 48*4 bytes. Every offset is 4 bytes long. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section 1&lt;br /&gt;
|-&lt;br /&gt;
| SectNmbr * 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section SectNmbr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The last section is offset 188. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Section 1: World map encounter data supplier ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| FileSize (this+4)&lt;br /&gt;
|-&lt;br /&gt;
| 4 + (entryID * 4)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| EncounterIdSupplierDataProvider_Entry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''EncounterIdSupplierDataProvider_Entry''':&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Byte&lt;br /&gt;
| regionID&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Byte&lt;br /&gt;
| groundID&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Byte&lt;br /&gt;
| ESI*&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Byte&lt;br /&gt;
| unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ESI is the name of the register that holds the third byte parameter of section1. It is used later to determine the encounter. When the character makes a step on worldmap, the game loops through whole section1 data and tests:&lt;br /&gt;
&lt;br /&gt;
if the character is walking on groundID and regionID, if yes, then ESI is our multiplier to section4 containing encounters. Example entry:&lt;br /&gt;
&lt;br /&gt;
00 06 00 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 0 and walks on ground with ID 6 (as far as I remember it's Balamb Plains or forest) then get encounters from section4 that start at 0*8; Other example:&lt;br /&gt;
&lt;br /&gt;
04 1B 24 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 4 and walks on ground with ID 0x1B, then get encounters from section4 that starts at 0x24*8 = 288&lt;br /&gt;
&lt;br /&gt;
That way the engine can play encounter based on place you are, because if you're walking on Balamb beach, then engine should play encounter with beach, not snow plains. That's why if you change the for one map portion you can totally erase encounters in this region, because in example region 4 that may be Centra regions does not contain any BalambPlains, so there is no entry in section1 and therefore the engine finds the region encounters, but doesn't find the encounter entries for BalambPlainsGround in Centra ruins (this is totally an example).&lt;br /&gt;
&lt;br /&gt;
=== Section 2: World map Regions ===&lt;br /&gt;
&lt;br /&gt;
Nothing much to write here.&lt;br /&gt;
32x24 world map. Just open it via hexEditor.&lt;br /&gt;
It's just bitmap (you can even convert bytes to image and mini worldmap will show)&lt;br /&gt;
Every single byte is regionID used for example in section1 for encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 3: World Map Encounters Flags ===&lt;br /&gt;
&lt;br /&gt;
One byte per encounter group in section 4. Always 0 on railways/roads, always 12 on forests, 128 on Island closest to Hell/Heaven, 3 in Galbadia Desert (day and night) and 2 for everything else.&lt;br /&gt;
&lt;br /&gt;
=== Section 4: World Map Encounters ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| section1.ESI * 16&lt;br /&gt;
| 16 bytes&lt;br /&gt;
| 2 * 8 bytes of encounters from scene.out&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It's as simple as that:&lt;br /&gt;
Squall makes step on worldmap, game gets Squall position and tests it with section2 containing region, then loops through section1 and tests groundID and regionID to find ESI multiplier, if random number generates battle, then game gets to section4 using ESI determined earlier with Squall step on world map and plays randomly one of the eight encounters (because one ESI/encounterEntry is 16 bytes, where first four words are the most common, other 2 medium and last 2 rarest)&lt;br /&gt;
&lt;br /&gt;
=== Section 5: UNUSED Encounter Flags (after Lunar Cry) ===&lt;br /&gt;
Unused in-game&lt;br /&gt;
&lt;br /&gt;
One byte (always 8 here) per encounter group in section 6. Analog to section 3, but for Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 6: World Map Encounters (after Lunar Cry) ===&lt;br /&gt;
&lt;br /&gt;
Same format as Section 4, but only with Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 7-8: roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
Related with Section 39. Maybe scripts in section 8. (like sections 10, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
Script format (ScriptsCount must be guessed):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| List of script positions, not always sorted (ended with 0x00000000)&lt;br /&gt;
|-&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| Varies + 4&lt;br /&gt;
| Scripts data (ended with 0x00000000)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In script data you have 4-bytes opcodes, the first byte is the identifier, and the last two bytes are the parameter (the second byte is always 0xFF).&lt;br /&gt;
Scripts always start with 0x01 opcode, and finish with 0x16 opcode. There is always one 0x04 opcode inside.&lt;br /&gt;
For now most is unknown, I only understood that 0x2B opcode refer to scene ID in its parameter (you can find UFO, Koyo-K and Lac Obel battles in Section 32).&lt;br /&gt;
&lt;br /&gt;
=== Section 9: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 10-11: UNKNOWN (Related to Squall model) ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 10. (like sections 8, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 12-13: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 12. (like sections 8, 10 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 14: Side quests texts/tialogs ===&lt;br /&gt;
&lt;br /&gt;
This section provides dialogs on world map used in side quests.&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 …+-1 Airstation5 … 7  Get off…YesNo5 + 7  Get off…YesNo5 - 7  Get off…YesNo”Bound for 5 4 7“Pay 4111 Gil to rideDon't ride”&lt;br /&gt;
 Bound for 5 3 7“Pay 4111 Gil to rideDon't ride”Bound for 5 ! 7“Pay 4111 Gil to rideDon't ride7 ”You don't have enough money“&lt;br /&gt;
 Selphie ”C'mon?  To the 5Missile Base7?“ n Soldier”Give it up“ n Soldier”I'm busy“ n Soldier”There's no way you're getting &lt;br /&gt;
 through?“ n Soldier”This is our duty“ n Soldier”Just like always“ n Soldier”How 'bout a date…“Found a draw point?But no one &lt;br /&gt;
 can drawFound a draw point?Nothing thereFound a draw point? foundCan't carry anymoreYou do not have DrawWho will draw…Don't &lt;br /&gt;
 draw  stocked 1+-=*&amp;amp;??()·.71Out of/  …?3  7remaining …YesNo#‘2 How to drive 7          4!Back  7!Forward          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 Garden Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 How to ride a Chocobo 7 6!Get off Run with directional button 1!Change POV2&lt;br /&gt;
  Spaceship Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on:off Directional button to go up:down:steer 1!&lt;br /&gt;
 Change POV)This place looksfamiliar·It looks abandonedand run=down”Huh?…“Nida”The gauge is going berserk?…“)Shouldn't be getting&lt;br /&gt;
  off·This must be Obel LakeThrow a rockTry hummingIt's Obel LakeThrow a rockTry hummingA black shadow rose to the surfaceThrow&lt;br /&gt;
  a rockTry humming againThe black shadow disappearedThe rock sank .The rock skipped once . .The rock skipped twice . . .The &lt;br /&gt;
 rock skipped 4 times . . . .The rock skipped 5 times . . . . .The rock skipped 6 times . . . . . .The rock skipped 7 times . &lt;br /&gt;
 . . . . .The rock skippedmany many timesBlack Shadow”Hello human  What a lovely tune“A black shadow rose to the surface”Hello?“)&lt;br /&gt;
 There's something large there·”Thanks for speaking to me again?“”Umm“”Can you do me a favor…“)What is it·)I don't want to hear &lt;br /&gt;
 it·”It's my friend Mr Monkey Can you find him for me…“”Please“”“”Mr Monkey should be in a forest somewhere Keep walking around &lt;br /&gt;
 and I'm sure you'll find him“”Oh yeah do you know what…“”Oh yeah“”What a beautiful day“”I wonder what it means…“”Mysterious &lt;br /&gt;
 writing on the rock“”Mr Monkey had a rock like this I think“”Take a break at the railroad bridge“”Take some time off at Eldbeak&lt;br /&gt;
  Peninsula“”I bet it's a wonderful place“Relayed the whereabouts of Mr Monkey”Thank you?“There's the monkey?Throw a rockSing”&lt;br /&gt;
 You suck?“The monkey disappeared into the forestThe monkey told you off and disappeared into the forest”Ahhh?  Darn it? &lt;br /&gt;
 Y=You're just a big loser?  I'm able to skip the rock as many times as I want? So there? Ha=Ha? Loser? Dork? Idiot? Your mom &lt;br /&gt;
 wears combat boots?“”OUCH? D=Darn it? You're gonna pay for that?“The monkey threw a rock at you and ran?Upon inspecting the &lt;br /&gt;
 rockit looks man=made andhas some carving on itYou found the monkey”You big dork???“Almost?The monkey ran awayWhat's this?…You&lt;br /&gt;
  found a piece of rock by your footIt looks man=made andhas some carving on itBut it was just a rockA bird is warming an egg&lt;br /&gt;
 Check it outLeave it aloneIt seems that the birdwent to go look for foodYou found a piece of rock thereNothing there1  &lt;br /&gt;
 S T S L R M 1  U R H A E O 1  R E A I D R 1  E A S N P D 1  S T S L R M 71  U R H A E O 71  R E A I D R 71  E A S N P D 7”&lt;br /&gt;
 At the beach in 2 something special washes ashore at times“”You'll find something on an island east of 4 too“”There's also &lt;br /&gt;
 something on top of a mountain with a lake and cavern“”Back in the day south of here there used to be a small but beautiful &lt;br /&gt;
 village surrounded by deep forests Everyone lived a happy life there“There is a stone pillarIf you look closelythere's something&lt;br /&gt;
  written on it”TRETIMEASUREAT MINOFFDEISLE“)…·Found 9?Found L?Found ?Found 1?That sound disappeared into the lakeThere are many&lt;br /&gt;
  multicoloredrocks with faces all over the placeThe black=faced rock tells you sternly”The treasure is probably in the direction&lt;br /&gt;
  of the North Star“The white=faced rock tells you coldly”It's east“The white=faced rock tells you coldly”It's west“The white=&lt;br /&gt;
 faced rock tells you coldly”It's south“The white=faced rock tells you coldly”It's north“The red=faced rock tells you angrily”&lt;br /&gt;
 The blue one's a liar?“The red=faced rock tells you angrily”The treasure's to the east?“The red=faced rock tells you angrily”&lt;br /&gt;
 The treasure's to the west?“The red=faced rock tells you angrily”The treasure's to the south?“The red=faced rock tells you angrily&lt;br /&gt;
 ”The treasure's to the north?“The red=faced rock tells you angrily”The treasure's not here?“The blue=faced rock whispers”&lt;br /&gt;
 I don't know where the treasure is“The blue=faced rock whispers”People call us ‘The Liar Rocks'“The blue=faced rock whispers”&lt;br /&gt;
 Some of us just repeat the same thing“The blue=faced rock whispers”Some of us just talk nonsense“The blue=faced whispers”&lt;br /&gt;
 Some of us just say the opposite of what we mean“This place just has rubble lying among the grassAbsolutely nothing)&lt;br /&gt;
 Is thispart of something…·)Seems like the same rock     I picked up before·)This must be all of them·”This must be all the rocks““&lt;br /&gt;
 If he's not around perhaps he took a train towards Dollet…“)I remember now This is Edea's house I get the feeling there's something&lt;br /&gt;
 nearby Something hugenearby·&lt;br /&gt;
&lt;br /&gt;
=== Section 15: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 16: World map objects data ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to Model structure (below)&lt;br /&gt;
|-&lt;br /&gt;
| Various&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| Models (see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Researched by: Vehek (http://forums.qhimm.com/index.php?topic=13799.msg193791#msg193791)&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u16 triangle_count;&lt;br /&gt;
 u16 quad_count;&lt;br /&gt;
 u16 texture_page;&lt;br /&gt;
 u16 vertex_count;&lt;br /&gt;
 triangle triangleData[triangle_count];&lt;br /&gt;
 quad quadData[quad_count];&lt;br /&gt;
 vertex verticeData[vertex_count];&lt;br /&gt;
 } model&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[3];&lt;br /&gt;
 u8 semitransp; //Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 } triangle&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[4];&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u8 texcoords4[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 u8 semitransp;//Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 unknown&lt;br /&gt;
 } quad&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 s16 coordinates[3];&lt;br /&gt;
 u16 unknown;&lt;br /&gt;
 }vertex&lt;br /&gt;
&lt;br /&gt;
=== Section 17-19: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 20: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Bunch of AKAO frames headers packed&lt;br /&gt;
&lt;br /&gt;
=== Section 21: AKAO ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO header&lt;br /&gt;
&lt;br /&gt;
=== Section 22-28: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 29: World map &amp;quot;water block&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Section 29 is a duplicate segment from &amp;quot;full&amp;quot; water block (not segment!) used in world map (wmx.obj).&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Whenever landing or entering ragnarok, the engine does not load segments from wmx.obj until the transition is done.&amp;lt;/s&amp;gt; Whenever transforming viewport at certain speed, the engine can't keep up with loading the new segments/blocks. The areas that are not loaded but should be rendered in the same time are filled with this block. This can be seen when the camera view is set so that it rotates during ragnarok entering/exiting transition or placing character to different area.&lt;br /&gt;
&lt;br /&gt;
=== Section 30: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 31: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 32: Text- Location names ===&lt;br /&gt;
&lt;br /&gt;
This section provides location names (probably for Ragnarok landing?)&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 ?2344 Forest  Garden  Garden: Station!9Missile Base7WinhillEdea's House%:&lt;br /&gt;
 51 Seaside Station1 City1: AirstationLunatic Pandora Laboratory=1&lt;br /&gt;
 Sorceress MemorialTears' Point1 Seaside Station=Tears' PointTears' &lt;br /&gt;
 PointLunatic Pandora Laboratory1:Airstation1 Sorceress Memorial&lt;br /&gt;
&lt;br /&gt;
=== Section 33-34: Light related ===&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 35: World Map draw points ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x2C&lt;br /&gt;
| UNUSED&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C + (thisEntryID * 4)&lt;br /&gt;
| DWORD&lt;br /&gt;
| DrawPointVariable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''DrawPointVariable''':&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| WORD&lt;br /&gt;
| World block X&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| WORD&lt;br /&gt;
| World block Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Magic contained in world map draw point: (ID is: section35 magic entry+0x80 [add 1 to be correct with list below])&lt;br /&gt;
    129 0 1 Cure&lt;br /&gt;
    130 0 1 Esuna&lt;br /&gt;
    131 0 1 Thunder&lt;br /&gt;
    132 0 1 Fira&lt;br /&gt;
    133 0 1 Thundara&lt;br /&gt;
    134 0 1 Blizzara&lt;br /&gt;
    135 0 1 Blizzard&lt;br /&gt;
    136 0 1 Fire&lt;br /&gt;
    137 0 1 Cure&lt;br /&gt;
    138 0 1 Water&lt;br /&gt;
    139 0 1 Cura&lt;br /&gt;
    140 0 1 Esuna&lt;br /&gt;
    141 0 1 Scan&lt;br /&gt;
    142 0 1 Shell&lt;br /&gt;
    143 0 1 Haste&lt;br /&gt;
    144 0 1 Aero&lt;br /&gt;
    145 0 1 Bio&lt;br /&gt;
    146 0 1 Life&lt;br /&gt;
    147 0 1 Demi&lt;br /&gt;
    148 0 1 Protect &lt;br /&gt;
    149 0 1 Holy &lt;br /&gt;
    150 0 1 Thundaga&lt;br /&gt;
    151 0 1 Stop&lt;br /&gt;
    152 0 1 Firaga&lt;br /&gt;
    153 0 1 Regen&lt;br /&gt;
    154 0 1 Blizzaga&lt;br /&gt;
    155 0 1 Confuse&lt;br /&gt;
    156 0 1 Flare&lt;br /&gt;
    157 0 1 Dispel&lt;br /&gt;
    158 0 1 Slow&lt;br /&gt;
    159 0 1 Quake&lt;br /&gt;
    160 0 1 Curaga&lt;br /&gt;
    161 0 1 Tornado&lt;br /&gt;
    162 0 0 Full-Life&lt;br /&gt;
    163 0 1 Reflect&lt;br /&gt;
    164 0 0 Aura&lt;br /&gt;
    165 0 0 Quake&lt;br /&gt;
    166 0 1 Double&lt;br /&gt;
    167 0 1 Break&lt;br /&gt;
    168 0 0 Meteor&lt;br /&gt;
    169 0 0 Ultima&lt;br /&gt;
    170 0 0 Triple&lt;br /&gt;
    171 0 1 Confuse&lt;br /&gt;
    172 0 1 Blind&lt;br /&gt;
    173 1 1 Quake&lt;br /&gt;
    174 0 1 Sleep&lt;br /&gt;
    175 0 1 Silence&lt;br /&gt;
    176 1 1 Flare&lt;br /&gt;
    177 0 1 Death&lt;br /&gt;
    178 0 1 Drain&lt;br /&gt;
    179 1 1 Pain&lt;br /&gt;
    180 0 1 Berserk&lt;br /&gt;
    181 0 1 Float&lt;br /&gt;
    182 0 1 Zombie&lt;br /&gt;
    183 0 1 Meltdown&lt;br /&gt;
    184 1 0 Ultima&lt;br /&gt;
    185 1 1 Tornado&lt;br /&gt;
    186 1 1 Quake&lt;br /&gt;
    187 1 1 Meteor&lt;br /&gt;
    188 1 1 Holy&lt;br /&gt;
    189 1 1 Flare&lt;br /&gt;
    190 1 1 Aura&lt;br /&gt;
    191 1 1 Ultima&lt;br /&gt;
    192 1 1 Triple&lt;br /&gt;
    193 1 1 Full-Life&lt;br /&gt;
    194 1 1 Tornado&lt;br /&gt;
    195 1 1 Quake&lt;br /&gt;
    196 1 1 Meteor&lt;br /&gt;
    197 1 1 Holy&lt;br /&gt;
    198 1 1 Flare&lt;br /&gt;
    199 1 1 Aura&lt;br /&gt;
    200 1 1 Ultima&lt;br /&gt;
    201 1 1 Triple&lt;br /&gt;
    202 1 1 Full-Life&lt;br /&gt;
    203 1 1 Tornado&lt;br /&gt;
    204 1 1 Quake&lt;br /&gt;
    205 1 1 Meteor&lt;br /&gt;
    206 1 1 Holy&lt;br /&gt;
    207 1 1 Flare&lt;br /&gt;
    208 1 1 Aura&lt;br /&gt;
    209 1 1 Ultima&lt;br /&gt;
    210 1 1 Triple&lt;br /&gt;
    211 1 1 Full-Life&lt;br /&gt;
    212 1 1 Ultima&lt;br /&gt;
    213 1 1 Meteor&lt;br /&gt;
    214 1 1 Holy&lt;br /&gt;
    215 1 1 Flare&lt;br /&gt;
    216 1 1 Aura&lt;br /&gt;
    217 1 1 Ultima&lt;br /&gt;
    218 1 1 Triple&lt;br /&gt;
    219 1 1 Full-Life&lt;br /&gt;
    220 1 1 Meteor&lt;br /&gt;
    221 1 1 Holy&lt;br /&gt;
    222 1 1 Triple&lt;br /&gt;
    223 1 1 Aura&lt;br /&gt;
    224 1 1 Ultima&lt;br /&gt;
    225 1 1 Triple&lt;br /&gt;
    226 1 1 Full-Life&lt;br /&gt;
    227 1 1 Meteor&lt;br /&gt;
    228 1 1 Holy&lt;br /&gt;
    229 1 1 Flare&lt;br /&gt;
    230 1 1 Aura&lt;br /&gt;
    231 1 1 Ultima&lt;br /&gt;
    232 1 1 Triple&lt;br /&gt;
    233 1 1 Full-Life&lt;br /&gt;
    234 1 1 Meteor&lt;br /&gt;
    235 1 1 Triple&lt;br /&gt;
    236 1 1 Flare&lt;br /&gt;
    237 1 1 Aura&lt;br /&gt;
    238 1 1 Ultima&lt;br /&gt;
    239 1 1 Triple&lt;br /&gt;
    240 1 1 Full-Life&lt;br /&gt;
    241 1 1 Meteor&lt;br /&gt;
    242 1 1 Holy&lt;br /&gt;
    243 1 1 Flare&lt;br /&gt;
    244 1 1 Aura&lt;br /&gt;
    245 1 1 Ultima&lt;br /&gt;
    246 0 1 Blizzard&lt;br /&gt;
    247 0 1 Cure&lt;br /&gt;
    248 1 1 Dispel&lt;br /&gt;
    249 1 1 Confuse&lt;br /&gt;
    250 0 0 Meteor&lt;br /&gt;
    251 0 0 Double&lt;br /&gt;
    252 0 0 Aura&lt;br /&gt;
    253 0 0 Holy&lt;br /&gt;
    254 0 0 Flare&lt;br /&gt;
    255 0 0 Ultima&lt;br /&gt;
    256 1 1 Scan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Halfer:&lt;br /&gt;
X = rowBlockAmount, which is 4 times segment amount so 4 * 32 = 128 or 0x80. The last bit tells which row of the two we are on, first or second. The range of top row is from 0x00 - 0x7F and second row's 0x80 - 0xFF.&lt;br /&gt;
&lt;br /&gt;
Y is incremented whenever X goes over 0xFF.&lt;br /&gt;
&lt;br /&gt;
=== Section 36-37: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 37. (like sections 8, 10 and 12)&lt;br /&gt;
&lt;br /&gt;
=== Section 38: World map textures archive ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). This is one of the larger sections in file. THIS section is responsible for 1/2 world map textures (Those are really used in-game). There is 36 textures inside as of original release. Also, sea, beach and special effects texture is present. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (144 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 39: Textures - roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for train track textures, road textures, bridge train track texture (the one that gets through FH). &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (52 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 40: One world map texture/NULL ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to only one .TIM texture. This is the first texture that is in [[FF8/WorldMap_texl|texl.obj]] or wmsetxx.obj/Section 38. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Various (16384 originally)&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|-&lt;br /&gt;
| After Texture&lt;br /&gt;
| Next offset-(header+TIM texture)&lt;br /&gt;
| NULL data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 41: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 42: Vehicle and object textures ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for vehicles, world map objects textures (Balamb mobile, Galbadia mobile, Balamb halo ring, cactuar statue, lunatic pandora...)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (132 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 43: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 44: Music related  ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 45-48: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;/div&gt;</summary>
		<author><name>Myst6re</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5625</id>
		<title>FF8/WorldMap wmsetxx</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5625"/>
		<updated>2020-01-09T15:26:59Z</updated>

		<summary type="html">&lt;p&gt;Myst6re: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Info==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj (where xx may refer to gr,us,it,fr,sp) is a multi-data world map file containing many core functions and 3D objects. This file contains almost everything: sounds, scripts, dialogs, texts, textures, models- all contained in one file. Main differences between en/it/gr/sp/fr are localized dialogs, so next sections have different offsets. Offsets before this are all the same. [[FF8/WorldMap_wmset|Wmset.obj]] is probably never used in-game and is leftover. Dialogs in lang-en/wmset.obj are in english, but the file is different from wmsetus.obj.&lt;br /&gt;
&lt;br /&gt;
==General structure==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj is made from 48 sections. File starts with header, that has 48*4 bytes. Every offset is 4 bytes long. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section 1&lt;br /&gt;
|-&lt;br /&gt;
| SectNmbr * 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section SectNmbr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The last section is offset 188. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Section 1: World map encounter data supplier ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| FileSize (this+4)&lt;br /&gt;
|-&lt;br /&gt;
| 4 + (entryID * 4)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| EncounterIdSupplierDataProvider_Entry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''EncounterIdSupplierDataProvider_Entry''':&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Byte&lt;br /&gt;
| regionID&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Byte&lt;br /&gt;
| groundID&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Byte&lt;br /&gt;
| ESI*&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Byte&lt;br /&gt;
| unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ESI is the name of the register that holds the third byte parameter of section1. It is used later to determine the encounter. When the character makes a step on worldmap, the game loops through whole section1 data and tests:&lt;br /&gt;
&lt;br /&gt;
if the character is walking on groundID and regionID, if yes, then ESI is our multiplier to section4 containing encounters. Example entry:&lt;br /&gt;
&lt;br /&gt;
00 06 00 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 0 and walks on ground with ID 6 (as far as I remember it's Balamb Plains or forest) then get encounters from section4 that start at 0*8; Other example:&lt;br /&gt;
&lt;br /&gt;
04 1B 24 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 4 and walks on ground with ID 0x1B, then get encounters from section4 that starts at 0x24*8 = 288&lt;br /&gt;
&lt;br /&gt;
That way the engine can play encounter based on place you are, because if you're walking on Balamb beach, then engine should play encounter with beach, not snow plains. That's why if you change the for one map portion you can totally erase encounters in this region, because in example region 4 that may be Centra regions does not contain any BalambPlains, so there is no entry in section1 and therefore the engine finds the region encounters, but doesn't find the encounter entries for BalambPlainsGround in Centra ruins (this is totally an example).&lt;br /&gt;
&lt;br /&gt;
=== Section 2: World map Regions ===&lt;br /&gt;
&lt;br /&gt;
Nothing much to write here.&lt;br /&gt;
32x24 world map. Just open it via hexEditor.&lt;br /&gt;
It's just bitmap (you can even convert bytes to image and mini worldmap will show)&lt;br /&gt;
Every single byte is regionID used for example in section1 for encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 3: World Map Encounters Flags ===&lt;br /&gt;
&lt;br /&gt;
One byte per encounter group in section 4. Always 0 on railways/roads, always 12 on forests, 128 on Island closest to Hell/Heaven, 3 in Galbadia Desert (day and night) and 2 for everything else.&lt;br /&gt;
&lt;br /&gt;
=== Section 4: World Map Encounters ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| section1.ESI * 16&lt;br /&gt;
| 16 bytes&lt;br /&gt;
| 2 * 8 bytes of encounters from scene.out&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It's as simple as that:&lt;br /&gt;
Squall makes step on worldmap, game gets Squall position and tests it with section2 containing region, then loops through section1 and tests groundID and regionID to find ESI multiplier, if random number generates battle, then game gets to section4 using ESI determined earlier with Squall step on world map and plays randomly one of the eight encounters (because one ESI/encounterEntry is 16 bytes, where first four words are the most common, other 2 medium and last 2 rarest)&lt;br /&gt;
&lt;br /&gt;
=== Section 5: UNUSED Encounter Rates (after Lunar Cry) ===&lt;br /&gt;
Unused in-game&lt;br /&gt;
&lt;br /&gt;
One byte (always 8 here) per encounter group in section 6. Analog to section 3, but for Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 6: World Map Encounters (after Lunar Cry) ===&lt;br /&gt;
&lt;br /&gt;
Same format as Section 4, but only with Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 7-8: roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
Related with Section 39. Maybe scripts in section 8. (like sections 10, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
Script format (ScriptsCount must be guessed):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| List of script positions, not always sorted (ended with 0x00000000)&lt;br /&gt;
|-&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| Varies + 4&lt;br /&gt;
| Scripts data (ended with 0x00000000)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In script data you have 4-bytes opcodes, the first byte is the identifier, and the last two bytes are the parameter (the second byte is always 0xFF).&lt;br /&gt;
Scripts always start with 0x01 opcode, and finish with 0x16 opcode. There is always one 0x04 opcode inside.&lt;br /&gt;
For now most is unknown, I only understood that 0x2B opcode refer to scene ID in its parameter (you can find UFO, Koyo-K and Lac Obel battles in Section 32).&lt;br /&gt;
&lt;br /&gt;
=== Section 9: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 10-11: UNKNOWN (Related to Squall model) ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 10. (like sections 8, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 12-13: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 12. (like sections 8, 10 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 14: Side quests texts/tialogs ===&lt;br /&gt;
&lt;br /&gt;
This section provides dialogs on world map used in side quests.&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 …+-1 Airstation5 … 7  Get off…YesNo5 + 7  Get off…YesNo5 - 7  Get off…YesNo”Bound for 5 4 7“Pay 4111 Gil to rideDon't ride”&lt;br /&gt;
 Bound for 5 3 7“Pay 4111 Gil to rideDon't ride”Bound for 5 ! 7“Pay 4111 Gil to rideDon't ride7 ”You don't have enough money“&lt;br /&gt;
 Selphie ”C'mon?  To the 5Missile Base7?“ n Soldier”Give it up“ n Soldier”I'm busy“ n Soldier”There's no way you're getting &lt;br /&gt;
 through?“ n Soldier”This is our duty“ n Soldier”Just like always“ n Soldier”How 'bout a date…“Found a draw point?But no one &lt;br /&gt;
 can drawFound a draw point?Nothing thereFound a draw point? foundCan't carry anymoreYou do not have DrawWho will draw…Don't &lt;br /&gt;
 draw  stocked 1+-=*&amp;amp;??()·.71Out of/  …?3  7remaining …YesNo#‘2 How to drive 7          4!Back  7!Forward          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 Garden Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 How to ride a Chocobo 7 6!Get off Run with directional button 1!Change POV2&lt;br /&gt;
  Spaceship Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on:off Directional button to go up:down:steer 1!&lt;br /&gt;
 Change POV)This place looksfamiliar·It looks abandonedand run=down”Huh?…“Nida”The gauge is going berserk?…“)Shouldn't be getting&lt;br /&gt;
  off·This must be Obel LakeThrow a rockTry hummingIt's Obel LakeThrow a rockTry hummingA black shadow rose to the surfaceThrow&lt;br /&gt;
  a rockTry humming againThe black shadow disappearedThe rock sank .The rock skipped once . .The rock skipped twice . . .The &lt;br /&gt;
 rock skipped 4 times . . . .The rock skipped 5 times . . . . .The rock skipped 6 times . . . . . .The rock skipped 7 times . &lt;br /&gt;
 . . . . .The rock skippedmany many timesBlack Shadow”Hello human  What a lovely tune“A black shadow rose to the surface”Hello?“)&lt;br /&gt;
 There's something large there·”Thanks for speaking to me again?“”Umm“”Can you do me a favor…“)What is it·)I don't want to hear &lt;br /&gt;
 it·”It's my friend Mr Monkey Can you find him for me…“”Please“”“”Mr Monkey should be in a forest somewhere Keep walking around &lt;br /&gt;
 and I'm sure you'll find him“”Oh yeah do you know what…“”Oh yeah“”What a beautiful day“”I wonder what it means…“”Mysterious &lt;br /&gt;
 writing on the rock“”Mr Monkey had a rock like this I think“”Take a break at the railroad bridge“”Take some time off at Eldbeak&lt;br /&gt;
  Peninsula“”I bet it's a wonderful place“Relayed the whereabouts of Mr Monkey”Thank you?“There's the monkey?Throw a rockSing”&lt;br /&gt;
 You suck?“The monkey disappeared into the forestThe monkey told you off and disappeared into the forest”Ahhh?  Darn it? &lt;br /&gt;
 Y=You're just a big loser?  I'm able to skip the rock as many times as I want? So there? Ha=Ha? Loser? Dork? Idiot? Your mom &lt;br /&gt;
 wears combat boots?“”OUCH? D=Darn it? You're gonna pay for that?“The monkey threw a rock at you and ran?Upon inspecting the &lt;br /&gt;
 rockit looks man=made andhas some carving on itYou found the monkey”You big dork???“Almost?The monkey ran awayWhat's this?…You&lt;br /&gt;
  found a piece of rock by your footIt looks man=made andhas some carving on itBut it was just a rockA bird is warming an egg&lt;br /&gt;
 Check it outLeave it aloneIt seems that the birdwent to go look for foodYou found a piece of rock thereNothing there1  &lt;br /&gt;
 S T S L R M 1  U R H A E O 1  R E A I D R 1  E A S N P D 1  S T S L R M 71  U R H A E O 71  R E A I D R 71  E A S N P D 7”&lt;br /&gt;
 At the beach in 2 something special washes ashore at times“”You'll find something on an island east of 4 too“”There's also &lt;br /&gt;
 something on top of a mountain with a lake and cavern“”Back in the day south of here there used to be a small but beautiful &lt;br /&gt;
 village surrounded by deep forests Everyone lived a happy life there“There is a stone pillarIf you look closelythere's something&lt;br /&gt;
  written on it”TRETIMEASUREAT MINOFFDEISLE“)…·Found 9?Found L?Found ?Found 1?That sound disappeared into the lakeThere are many&lt;br /&gt;
  multicoloredrocks with faces all over the placeThe black=faced rock tells you sternly”The treasure is probably in the direction&lt;br /&gt;
  of the North Star“The white=faced rock tells you coldly”It's east“The white=faced rock tells you coldly”It's west“The white=&lt;br /&gt;
 faced rock tells you coldly”It's south“The white=faced rock tells you coldly”It's north“The red=faced rock tells you angrily”&lt;br /&gt;
 The blue one's a liar?“The red=faced rock tells you angrily”The treasure's to the east?“The red=faced rock tells you angrily”&lt;br /&gt;
 The treasure's to the west?“The red=faced rock tells you angrily”The treasure's to the south?“The red=faced rock tells you angrily&lt;br /&gt;
 ”The treasure's to the north?“The red=faced rock tells you angrily”The treasure's not here?“The blue=faced rock whispers”&lt;br /&gt;
 I don't know where the treasure is“The blue=faced rock whispers”People call us ‘The Liar Rocks'“The blue=faced rock whispers”&lt;br /&gt;
 Some of us just repeat the same thing“The blue=faced rock whispers”Some of us just talk nonsense“The blue=faced whispers”&lt;br /&gt;
 Some of us just say the opposite of what we mean“This place just has rubble lying among the grassAbsolutely nothing)&lt;br /&gt;
 Is thispart of something…·)Seems like the same rock     I picked up before·)This must be all of them·”This must be all the rocks““&lt;br /&gt;
 If he's not around perhaps he took a train towards Dollet…“)I remember now This is Edea's house I get the feeling there's something&lt;br /&gt;
 nearby Something hugenearby·&lt;br /&gt;
&lt;br /&gt;
=== Section 15: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 16: World map objects data ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to Model structure (below)&lt;br /&gt;
|-&lt;br /&gt;
| Various&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| Models (see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Researched by: Vehek (http://forums.qhimm.com/index.php?topic=13799.msg193791#msg193791)&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u16 triangle_count;&lt;br /&gt;
 u16 quad_count;&lt;br /&gt;
 u16 texture_page;&lt;br /&gt;
 u16 vertex_count;&lt;br /&gt;
 triangle triangleData[triangle_count];&lt;br /&gt;
 quad quadData[quad_count];&lt;br /&gt;
 vertex verticeData[vertex_count];&lt;br /&gt;
 } model&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[3];&lt;br /&gt;
 u8 semitransp; //Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 } triangle&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[4];&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u8 texcoords4[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 u8 semitransp;//Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 unknown&lt;br /&gt;
 } quad&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 s16 coordinates[3];&lt;br /&gt;
 u16 unknown;&lt;br /&gt;
 }vertex&lt;br /&gt;
&lt;br /&gt;
=== Section 17-19: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 20: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Bunch of AKAO frames headers packed&lt;br /&gt;
&lt;br /&gt;
=== Section 21: AKAO ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO header&lt;br /&gt;
&lt;br /&gt;
=== Section 22-28: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 29: World map &amp;quot;water block&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Section 29 is a duplicate segment from &amp;quot;full&amp;quot; water block (not segment!) used in world map (wmx.obj).&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Whenever landing or entering ragnarok, the engine does not load segments from wmx.obj until the transition is done.&amp;lt;/s&amp;gt; Whenever transforming viewport at certain speed, the engine can't keep up with loading the new segments/blocks. The areas that are not loaded but should be rendered in the same time are filled with this block. This can be seen when the camera view is set so that it rotates during ragnarok entering/exiting transition or placing character to different area.&lt;br /&gt;
&lt;br /&gt;
=== Section 30: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 31: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 32: Text- Location names ===&lt;br /&gt;
&lt;br /&gt;
This section provides location names (probably for Ragnarok landing?)&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 ?2344 Forest  Garden  Garden: Station!9Missile Base7WinhillEdea's House%:&lt;br /&gt;
 51 Seaside Station1 City1: AirstationLunatic Pandora Laboratory=1&lt;br /&gt;
 Sorceress MemorialTears' Point1 Seaside Station=Tears' PointTears' &lt;br /&gt;
 PointLunatic Pandora Laboratory1:Airstation1 Sorceress Memorial&lt;br /&gt;
&lt;br /&gt;
=== Section 33-34: Light related ===&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 35: World Map draw points ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x2C&lt;br /&gt;
| UNUSED&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C + (thisEntryID * 4)&lt;br /&gt;
| DWORD&lt;br /&gt;
| DrawPointVariable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''DrawPointVariable''':&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| WORD&lt;br /&gt;
| World block X&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| WORD&lt;br /&gt;
| World block Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Magic contained in world map draw point: (ID is: section35 magic entry+0x80 [add 1 to be correct with list below])&lt;br /&gt;
    129 0 1 Cure&lt;br /&gt;
    130 0 1 Esuna&lt;br /&gt;
    131 0 1 Thunder&lt;br /&gt;
    132 0 1 Fira&lt;br /&gt;
    133 0 1 Thundara&lt;br /&gt;
    134 0 1 Blizzara&lt;br /&gt;
    135 0 1 Blizzard&lt;br /&gt;
    136 0 1 Fire&lt;br /&gt;
    137 0 1 Cure&lt;br /&gt;
    138 0 1 Water&lt;br /&gt;
    139 0 1 Cura&lt;br /&gt;
    140 0 1 Esuna&lt;br /&gt;
    141 0 1 Scan&lt;br /&gt;
    142 0 1 Shell&lt;br /&gt;
    143 0 1 Haste&lt;br /&gt;
    144 0 1 Aero&lt;br /&gt;
    145 0 1 Bio&lt;br /&gt;
    146 0 1 Life&lt;br /&gt;
    147 0 1 Demi&lt;br /&gt;
    148 0 1 Protect &lt;br /&gt;
    149 0 1 Holy &lt;br /&gt;
    150 0 1 Thundaga&lt;br /&gt;
    151 0 1 Stop&lt;br /&gt;
    152 0 1 Firaga&lt;br /&gt;
    153 0 1 Regen&lt;br /&gt;
    154 0 1 Blizzaga&lt;br /&gt;
    155 0 1 Confuse&lt;br /&gt;
    156 0 1 Flare&lt;br /&gt;
    157 0 1 Dispel&lt;br /&gt;
    158 0 1 Slow&lt;br /&gt;
    159 0 1 Quake&lt;br /&gt;
    160 0 1 Curaga&lt;br /&gt;
    161 0 1 Tornado&lt;br /&gt;
    162 0 0 Full-Life&lt;br /&gt;
    163 0 1 Reflect&lt;br /&gt;
    164 0 0 Aura&lt;br /&gt;
    165 0 0 Quake&lt;br /&gt;
    166 0 1 Double&lt;br /&gt;
    167 0 1 Break&lt;br /&gt;
    168 0 0 Meteor&lt;br /&gt;
    169 0 0 Ultima&lt;br /&gt;
    170 0 0 Triple&lt;br /&gt;
    171 0 1 Confuse&lt;br /&gt;
    172 0 1 Blind&lt;br /&gt;
    173 1 1 Quake&lt;br /&gt;
    174 0 1 Sleep&lt;br /&gt;
    175 0 1 Silence&lt;br /&gt;
    176 1 1 Flare&lt;br /&gt;
    177 0 1 Death&lt;br /&gt;
    178 0 1 Drain&lt;br /&gt;
    179 1 1 Pain&lt;br /&gt;
    180 0 1 Berserk&lt;br /&gt;
    181 0 1 Float&lt;br /&gt;
    182 0 1 Zombie&lt;br /&gt;
    183 0 1 Meltdown&lt;br /&gt;
    184 1 0 Ultima&lt;br /&gt;
    185 1 1 Tornado&lt;br /&gt;
    186 1 1 Quake&lt;br /&gt;
    187 1 1 Meteor&lt;br /&gt;
    188 1 1 Holy&lt;br /&gt;
    189 1 1 Flare&lt;br /&gt;
    190 1 1 Aura&lt;br /&gt;
    191 1 1 Ultima&lt;br /&gt;
    192 1 1 Triple&lt;br /&gt;
    193 1 1 Full-Life&lt;br /&gt;
    194 1 1 Tornado&lt;br /&gt;
    195 1 1 Quake&lt;br /&gt;
    196 1 1 Meteor&lt;br /&gt;
    197 1 1 Holy&lt;br /&gt;
    198 1 1 Flare&lt;br /&gt;
    199 1 1 Aura&lt;br /&gt;
    200 1 1 Ultima&lt;br /&gt;
    201 1 1 Triple&lt;br /&gt;
    202 1 1 Full-Life&lt;br /&gt;
    203 1 1 Tornado&lt;br /&gt;
    204 1 1 Quake&lt;br /&gt;
    205 1 1 Meteor&lt;br /&gt;
    206 1 1 Holy&lt;br /&gt;
    207 1 1 Flare&lt;br /&gt;
    208 1 1 Aura&lt;br /&gt;
    209 1 1 Ultima&lt;br /&gt;
    210 1 1 Triple&lt;br /&gt;
    211 1 1 Full-Life&lt;br /&gt;
    212 1 1 Ultima&lt;br /&gt;
    213 1 1 Meteor&lt;br /&gt;
    214 1 1 Holy&lt;br /&gt;
    215 1 1 Flare&lt;br /&gt;
    216 1 1 Aura&lt;br /&gt;
    217 1 1 Ultima&lt;br /&gt;
    218 1 1 Triple&lt;br /&gt;
    219 1 1 Full-Life&lt;br /&gt;
    220 1 1 Meteor&lt;br /&gt;
    221 1 1 Holy&lt;br /&gt;
    222 1 1 Triple&lt;br /&gt;
    223 1 1 Aura&lt;br /&gt;
    224 1 1 Ultima&lt;br /&gt;
    225 1 1 Triple&lt;br /&gt;
    226 1 1 Full-Life&lt;br /&gt;
    227 1 1 Meteor&lt;br /&gt;
    228 1 1 Holy&lt;br /&gt;
    229 1 1 Flare&lt;br /&gt;
    230 1 1 Aura&lt;br /&gt;
    231 1 1 Ultima&lt;br /&gt;
    232 1 1 Triple&lt;br /&gt;
    233 1 1 Full-Life&lt;br /&gt;
    234 1 1 Meteor&lt;br /&gt;
    235 1 1 Triple&lt;br /&gt;
    236 1 1 Flare&lt;br /&gt;
    237 1 1 Aura&lt;br /&gt;
    238 1 1 Ultima&lt;br /&gt;
    239 1 1 Triple&lt;br /&gt;
    240 1 1 Full-Life&lt;br /&gt;
    241 1 1 Meteor&lt;br /&gt;
    242 1 1 Holy&lt;br /&gt;
    243 1 1 Flare&lt;br /&gt;
    244 1 1 Aura&lt;br /&gt;
    245 1 1 Ultima&lt;br /&gt;
    246 0 1 Blizzard&lt;br /&gt;
    247 0 1 Cure&lt;br /&gt;
    248 1 1 Dispel&lt;br /&gt;
    249 1 1 Confuse&lt;br /&gt;
    250 0 0 Meteor&lt;br /&gt;
    251 0 0 Double&lt;br /&gt;
    252 0 0 Aura&lt;br /&gt;
    253 0 0 Holy&lt;br /&gt;
    254 0 0 Flare&lt;br /&gt;
    255 0 0 Ultima&lt;br /&gt;
    256 1 1 Scan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Halfer:&lt;br /&gt;
X = rowBlockAmount, which is 4 times segment amount so 4 * 32 = 128 or 0x80. The last bit tells which row of the two we are on, first or second. The range of top row is from 0x00 - 0x7F and second row's 0x80 - 0xFF.&lt;br /&gt;
&lt;br /&gt;
Y is incremented whenever X goes over 0xFF.&lt;br /&gt;
&lt;br /&gt;
=== Section 36-37: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 37. (like sections 8, 10 and 12)&lt;br /&gt;
&lt;br /&gt;
=== Section 38: World map textures archive ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). This is one of the larger sections in file. THIS section is responsible for 1/2 world map textures (Those are really used in-game). There is 36 textures inside as of original release. Also, sea, beach and special effects texture is present. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (144 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 39: Textures - roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for train track textures, road textures, bridge train track texture (the one that gets through FH). &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (52 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 40: One world map texture/NULL ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to only one .TIM texture. This is the first texture that is in [[FF8/WorldMap_texl|texl.obj]] or wmsetxx.obj/Section 38. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Various (16384 originally)&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|-&lt;br /&gt;
| After Texture&lt;br /&gt;
| Next offset-(header+TIM texture)&lt;br /&gt;
| NULL data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 41: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 42: Vehicle and object textures ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for vehicles, world map objects textures (Balamb mobile, Galbadia mobile, Balamb halo ring, cactuar statue, lunatic pandora...)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (132 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 43: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 44: Music related  ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 45-48: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;/div&gt;</summary>
		<author><name>Myst6re</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5624</id>
		<title>FF8/WorldMap wmsetxx</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5624"/>
		<updated>2020-01-07T21:58:24Z</updated>

		<summary type="html">&lt;p&gt;Myst6re: /* Section 33-34: UNKNOWN */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Info==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj (where xx may refer to gr,us,it,fr,sp) is a multi-data world map file containing many core functions and 3D objects. This file contains almost everything: sounds, scripts, dialogs, texts, textures, models- all contained in one file. Main differences between en/it/gr/sp/fr are localized dialogs, so next sections have different offsets. Offsets before this are all the same. [[FF8/WorldMap_wmset|Wmset.obj]] is probably never used in-game and is leftover. Dialogs in lang-en/wmset.obj are in english, but the file is different from wmsetus.obj.&lt;br /&gt;
&lt;br /&gt;
==General structure==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj is made from 48 sections. File starts with header, that has 48*4 bytes. Every offset is 4 bytes long. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section 1&lt;br /&gt;
|-&lt;br /&gt;
| SectNmbr * 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section SectNmbr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The last section is offset 188. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Section 1: World map encounter data supplier ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| FileSize (this+4)&lt;br /&gt;
|-&lt;br /&gt;
| 4 + (entryID * 4)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| EncounterIdSupplierDataProvider_Entry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''EncounterIdSupplierDataProvider_Entry''':&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Byte&lt;br /&gt;
| regionID&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Byte&lt;br /&gt;
| groundID&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Byte&lt;br /&gt;
| ESI*&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Byte&lt;br /&gt;
| unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ESI is the name of the register that holds the third byte parameter of section1. It is used later to determine the encounter. When the character makes a step on worldmap, the game loops through whole section1 data and tests:&lt;br /&gt;
&lt;br /&gt;
if the character is walking on groundID and regionID, if yes, then ESI is our multiplier to section4 containing encounters. Example entry:&lt;br /&gt;
&lt;br /&gt;
00 06 00 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 0 and walks on ground with ID 6 (as far as I remember it's Balamb Plains or forest) then get encounters from section4 that start at 0*8; Other example:&lt;br /&gt;
&lt;br /&gt;
04 1B 24 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 4 and walks on ground with ID 0x1B, then get encounters from section4 that starts at 0x24*8 = 288&lt;br /&gt;
&lt;br /&gt;
That way the engine can play encounter based on place you are, because if you're walking on Balamb beach, then engine should play encounter with beach, not snow plains. That's why if you change the for one map portion you can totally erase encounters in this region, because in example region 4 that may be Centra regions does not contain any BalambPlains, so there is no entry in section1 and therefore the engine finds the region encounters, but doesn't find the encounter entries for BalambPlainsGround in Centra ruins (this is totally an example).&lt;br /&gt;
&lt;br /&gt;
=== Section 2: World map Regions ===&lt;br /&gt;
&lt;br /&gt;
Nothing much to write here.&lt;br /&gt;
32x24 world map. Just open it via hexEditor.&lt;br /&gt;
It's just bitmap (you can even convert bytes to image and mini worldmap will show)&lt;br /&gt;
Every single byte is regionID used for example in section1 for encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 3: World Map Encounters Rates ===&lt;br /&gt;
&lt;br /&gt;
One byte per encounter group in section 4. Maybe Rates, if 0, battle is disabled (railways/roads).&lt;br /&gt;
&lt;br /&gt;
=== Section 4: World Map Encounters ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| section1.ESI * 16&lt;br /&gt;
| 16 bytes&lt;br /&gt;
| 2 * 8 bytes of encounters from scene.out&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It's as simple as that:&lt;br /&gt;
Squall makes step on worldmap, game gets Squall position and tests it with section2 containing region, then loops through section1 and tests groundID and regionID to find ESI multiplier, if random number generates battle, then game gets to section4 using ESI determined earlier with Squall step on world map and plays randomly one of the eight encounters (because one ESI/encounterEntry is 16 bytes, where first four words are the most common, other 2 medium and last 2 rarest)&lt;br /&gt;
&lt;br /&gt;
=== Section 5: UNUSED Encounter Rates (after Lunar Cry) ===&lt;br /&gt;
Unused in-game&lt;br /&gt;
&lt;br /&gt;
One byte (always 0x08 here) per encounter group in section 6. Analog to section 3, but for Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 6: World Map Encounters (after Lunar Cry) ===&lt;br /&gt;
&lt;br /&gt;
Same format as Section 4, but only with Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 7-8: roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
Related with Section 39. Maybe scripts in section 8. (like sections 10, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
Script format (ScriptsCount must be guessed):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| List of script positions, not always sorted (ended with 0x00000000)&lt;br /&gt;
|-&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| Varies + 4&lt;br /&gt;
| Scripts data (ended with 0x00000000)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In script data you have 4-bytes opcodes, the first byte is the identifier, and the last two bytes are the parameter (the second byte is always 0xFF).&lt;br /&gt;
Scripts always start with 0x01 opcode, and finish with 0x16 opcode. There is always one 0x04 opcode inside.&lt;br /&gt;
For now most is unknown, I only understood that 0x2B opcode refer to scene ID in its parameter (you can find UFO, Koyo-K and Lac Obel battles in Section 32).&lt;br /&gt;
&lt;br /&gt;
=== Section 9: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 10-11: UNKNOWN (Related to Squall model) ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 10. (like sections 8, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 12-13: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 12. (like sections 8, 10 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 14: Side quests texts/tialogs ===&lt;br /&gt;
&lt;br /&gt;
This section provides dialogs on world map used in side quests.&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 …+-1 Airstation5 … 7  Get off…YesNo5 + 7  Get off…YesNo5 - 7  Get off…YesNo”Bound for 5 4 7“Pay 4111 Gil to rideDon't ride”&lt;br /&gt;
 Bound for 5 3 7“Pay 4111 Gil to rideDon't ride”Bound for 5 ! 7“Pay 4111 Gil to rideDon't ride7 ”You don't have enough money“&lt;br /&gt;
 Selphie ”C'mon?  To the 5Missile Base7?“ n Soldier”Give it up“ n Soldier”I'm busy“ n Soldier”There's no way you're getting &lt;br /&gt;
 through?“ n Soldier”This is our duty“ n Soldier”Just like always“ n Soldier”How 'bout a date…“Found a draw point?But no one &lt;br /&gt;
 can drawFound a draw point?Nothing thereFound a draw point? foundCan't carry anymoreYou do not have DrawWho will draw…Don't &lt;br /&gt;
 draw  stocked 1+-=*&amp;amp;??()·.71Out of/  …?3  7remaining …YesNo#‘2 How to drive 7          4!Back  7!Forward          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 Garden Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 How to ride a Chocobo 7 6!Get off Run with directional button 1!Change POV2&lt;br /&gt;
  Spaceship Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on:off Directional button to go up:down:steer 1!&lt;br /&gt;
 Change POV)This place looksfamiliar·It looks abandonedand run=down”Huh?…“Nida”The gauge is going berserk?…“)Shouldn't be getting&lt;br /&gt;
  off·This must be Obel LakeThrow a rockTry hummingIt's Obel LakeThrow a rockTry hummingA black shadow rose to the surfaceThrow&lt;br /&gt;
  a rockTry humming againThe black shadow disappearedThe rock sank .The rock skipped once . .The rock skipped twice . . .The &lt;br /&gt;
 rock skipped 4 times . . . .The rock skipped 5 times . . . . .The rock skipped 6 times . . . . . .The rock skipped 7 times . &lt;br /&gt;
 . . . . .The rock skippedmany many timesBlack Shadow”Hello human  What a lovely tune“A black shadow rose to the surface”Hello?“)&lt;br /&gt;
 There's something large there·”Thanks for speaking to me again?“”Umm“”Can you do me a favor…“)What is it·)I don't want to hear &lt;br /&gt;
 it·”It's my friend Mr Monkey Can you find him for me…“”Please“”“”Mr Monkey should be in a forest somewhere Keep walking around &lt;br /&gt;
 and I'm sure you'll find him“”Oh yeah do you know what…“”Oh yeah“”What a beautiful day“”I wonder what it means…“”Mysterious &lt;br /&gt;
 writing on the rock“”Mr Monkey had a rock like this I think“”Take a break at the railroad bridge“”Take some time off at Eldbeak&lt;br /&gt;
  Peninsula“”I bet it's a wonderful place“Relayed the whereabouts of Mr Monkey”Thank you?“There's the monkey?Throw a rockSing”&lt;br /&gt;
 You suck?“The monkey disappeared into the forestThe monkey told you off and disappeared into the forest”Ahhh?  Darn it? &lt;br /&gt;
 Y=You're just a big loser?  I'm able to skip the rock as many times as I want? So there? Ha=Ha? Loser? Dork? Idiot? Your mom &lt;br /&gt;
 wears combat boots?“”OUCH? D=Darn it? You're gonna pay for that?“The monkey threw a rock at you and ran?Upon inspecting the &lt;br /&gt;
 rockit looks man=made andhas some carving on itYou found the monkey”You big dork???“Almost?The monkey ran awayWhat's this?…You&lt;br /&gt;
  found a piece of rock by your footIt looks man=made andhas some carving on itBut it was just a rockA bird is warming an egg&lt;br /&gt;
 Check it outLeave it aloneIt seems that the birdwent to go look for foodYou found a piece of rock thereNothing there1  &lt;br /&gt;
 S T S L R M 1  U R H A E O 1  R E A I D R 1  E A S N P D 1  S T S L R M 71  U R H A E O 71  R E A I D R 71  E A S N P D 7”&lt;br /&gt;
 At the beach in 2 something special washes ashore at times“”You'll find something on an island east of 4 too“”There's also &lt;br /&gt;
 something on top of a mountain with a lake and cavern“”Back in the day south of here there used to be a small but beautiful &lt;br /&gt;
 village surrounded by deep forests Everyone lived a happy life there“There is a stone pillarIf you look closelythere's something&lt;br /&gt;
  written on it”TRETIMEASUREAT MINOFFDEISLE“)…·Found 9?Found L?Found ?Found 1?That sound disappeared into the lakeThere are many&lt;br /&gt;
  multicoloredrocks with faces all over the placeThe black=faced rock tells you sternly”The treasure is probably in the direction&lt;br /&gt;
  of the North Star“The white=faced rock tells you coldly”It's east“The white=faced rock tells you coldly”It's west“The white=&lt;br /&gt;
 faced rock tells you coldly”It's south“The white=faced rock tells you coldly”It's north“The red=faced rock tells you angrily”&lt;br /&gt;
 The blue one's a liar?“The red=faced rock tells you angrily”The treasure's to the east?“The red=faced rock tells you angrily”&lt;br /&gt;
 The treasure's to the west?“The red=faced rock tells you angrily”The treasure's to the south?“The red=faced rock tells you angrily&lt;br /&gt;
 ”The treasure's to the north?“The red=faced rock tells you angrily”The treasure's not here?“The blue=faced rock whispers”&lt;br /&gt;
 I don't know where the treasure is“The blue=faced rock whispers”People call us ‘The Liar Rocks'“The blue=faced rock whispers”&lt;br /&gt;
 Some of us just repeat the same thing“The blue=faced rock whispers”Some of us just talk nonsense“The blue=faced whispers”&lt;br /&gt;
 Some of us just say the opposite of what we mean“This place just has rubble lying among the grassAbsolutely nothing)&lt;br /&gt;
 Is thispart of something…·)Seems like the same rock     I picked up before·)This must be all of them·”This must be all the rocks““&lt;br /&gt;
 If he's not around perhaps he took a train towards Dollet…“)I remember now This is Edea's house I get the feeling there's something&lt;br /&gt;
 nearby Something hugenearby·&lt;br /&gt;
&lt;br /&gt;
=== Section 15: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 16: World map objects data ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to Model structure (below)&lt;br /&gt;
|-&lt;br /&gt;
| Various&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| Models (see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Researched by: Vehek (http://forums.qhimm.com/index.php?topic=13799.msg193791#msg193791)&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u16 triangle_count;&lt;br /&gt;
 u16 quad_count;&lt;br /&gt;
 u16 texture_page;&lt;br /&gt;
 u16 vertex_count;&lt;br /&gt;
 triangle triangleData[triangle_count];&lt;br /&gt;
 quad quadData[quad_count];&lt;br /&gt;
 vertex verticeData[vertex_count];&lt;br /&gt;
 } model&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[3];&lt;br /&gt;
 u8 semitransp; //Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 } triangle&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[4];&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u8 texcoords4[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 u8 semitransp;//Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 unknown&lt;br /&gt;
 } quad&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 s16 coordinates[3];&lt;br /&gt;
 u16 unknown;&lt;br /&gt;
 }vertex&lt;br /&gt;
&lt;br /&gt;
=== Section 17-19: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 20: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Bunch of AKAO frames headers packed&lt;br /&gt;
&lt;br /&gt;
=== Section 21: AKAO ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO header&lt;br /&gt;
&lt;br /&gt;
=== Section 22-28: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 29: World map &amp;quot;water block&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Section 29 is a duplicate segment from &amp;quot;full&amp;quot; water block (not segment!) used in world map (wmx.obj).&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Whenever landing or entering ragnarok, the engine does not load segments from wmx.obj until the transition is done.&amp;lt;/s&amp;gt; Whenever transforming viewport at certain speed, the engine can't keep up with loading the new segments/blocks. The areas that are not loaded but should be rendered in the same time are filled with this block. This can be seen when the camera view is set so that it rotates during ragnarok entering/exiting transition or placing character to different area.&lt;br /&gt;
&lt;br /&gt;
=== Section 30: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 31: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 32: Text- Location names ===&lt;br /&gt;
&lt;br /&gt;
This section provides location names (probably for Ragnarok landing?)&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 ?2344 Forest  Garden  Garden: Station!9Missile Base7WinhillEdea's House%:&lt;br /&gt;
 51 Seaside Station1 City1: AirstationLunatic Pandora Laboratory=1&lt;br /&gt;
 Sorceress MemorialTears' Point1 Seaside Station=Tears' PointTears' &lt;br /&gt;
 PointLunatic Pandora Laboratory1:Airstation1 Sorceress Memorial&lt;br /&gt;
&lt;br /&gt;
=== Section 33-34: Light related ===&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 35: World Map draw points ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x2C&lt;br /&gt;
| UNUSED&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C + (thisEntryID * 4)&lt;br /&gt;
| DWORD&lt;br /&gt;
| DrawPointVariable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''DrawPointVariable''':&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| WORD&lt;br /&gt;
| World block X&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| WORD&lt;br /&gt;
| World block Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Magic contained in world map draw point: (ID is: section35 magic entry+0x80 [add 1 to be correct with list below])&lt;br /&gt;
    129 0 1 Cure&lt;br /&gt;
    130 0 1 Esuna&lt;br /&gt;
    131 0 1 Thunder&lt;br /&gt;
    132 0 1 Fira&lt;br /&gt;
    133 0 1 Thundara&lt;br /&gt;
    134 0 1 Blizzara&lt;br /&gt;
    135 0 1 Blizzard&lt;br /&gt;
    136 0 1 Fire&lt;br /&gt;
    137 0 1 Cure&lt;br /&gt;
    138 0 1 Water&lt;br /&gt;
    139 0 1 Cura&lt;br /&gt;
    140 0 1 Esuna&lt;br /&gt;
    141 0 1 Scan&lt;br /&gt;
    142 0 1 Shell&lt;br /&gt;
    143 0 1 Haste&lt;br /&gt;
    144 0 1 Aero&lt;br /&gt;
    145 0 1 Bio&lt;br /&gt;
    146 0 1 Life&lt;br /&gt;
    147 0 1 Demi&lt;br /&gt;
    148 0 1 Protect &lt;br /&gt;
    149 0 1 Holy &lt;br /&gt;
    150 0 1 Thundaga&lt;br /&gt;
    151 0 1 Stop&lt;br /&gt;
    152 0 1 Firaga&lt;br /&gt;
    153 0 1 Regen&lt;br /&gt;
    154 0 1 Blizzaga&lt;br /&gt;
    155 0 1 Confuse&lt;br /&gt;
    156 0 1 Flare&lt;br /&gt;
    157 0 1 Dispel&lt;br /&gt;
    158 0 1 Slow&lt;br /&gt;
    159 0 1 Quake&lt;br /&gt;
    160 0 1 Curaga&lt;br /&gt;
    161 0 1 Tornado&lt;br /&gt;
    162 0 0 Full-Life&lt;br /&gt;
    163 0 1 Reflect&lt;br /&gt;
    164 0 0 Aura&lt;br /&gt;
    165 0 0 Quake&lt;br /&gt;
    166 0 1 Double&lt;br /&gt;
    167 0 1 Break&lt;br /&gt;
    168 0 0 Meteor&lt;br /&gt;
    169 0 0 Ultima&lt;br /&gt;
    170 0 0 Triple&lt;br /&gt;
    171 0 1 Confuse&lt;br /&gt;
    172 0 1 Blind&lt;br /&gt;
    173 1 1 Quake&lt;br /&gt;
    174 0 1 Sleep&lt;br /&gt;
    175 0 1 Silence&lt;br /&gt;
    176 1 1 Flare&lt;br /&gt;
    177 0 1 Death&lt;br /&gt;
    178 0 1 Drain&lt;br /&gt;
    179 1 1 Pain&lt;br /&gt;
    180 0 1 Berserk&lt;br /&gt;
    181 0 1 Float&lt;br /&gt;
    182 0 1 Zombie&lt;br /&gt;
    183 0 1 Meltdown&lt;br /&gt;
    184 1 0 Ultima&lt;br /&gt;
    185 1 1 Tornado&lt;br /&gt;
    186 1 1 Quake&lt;br /&gt;
    187 1 1 Meteor&lt;br /&gt;
    188 1 1 Holy&lt;br /&gt;
    189 1 1 Flare&lt;br /&gt;
    190 1 1 Aura&lt;br /&gt;
    191 1 1 Ultima&lt;br /&gt;
    192 1 1 Triple&lt;br /&gt;
    193 1 1 Full-Life&lt;br /&gt;
    194 1 1 Tornado&lt;br /&gt;
    195 1 1 Quake&lt;br /&gt;
    196 1 1 Meteor&lt;br /&gt;
    197 1 1 Holy&lt;br /&gt;
    198 1 1 Flare&lt;br /&gt;
    199 1 1 Aura&lt;br /&gt;
    200 1 1 Ultima&lt;br /&gt;
    201 1 1 Triple&lt;br /&gt;
    202 1 1 Full-Life&lt;br /&gt;
    203 1 1 Tornado&lt;br /&gt;
    204 1 1 Quake&lt;br /&gt;
    205 1 1 Meteor&lt;br /&gt;
    206 1 1 Holy&lt;br /&gt;
    207 1 1 Flare&lt;br /&gt;
    208 1 1 Aura&lt;br /&gt;
    209 1 1 Ultima&lt;br /&gt;
    210 1 1 Triple&lt;br /&gt;
    211 1 1 Full-Life&lt;br /&gt;
    212 1 1 Ultima&lt;br /&gt;
    213 1 1 Meteor&lt;br /&gt;
    214 1 1 Holy&lt;br /&gt;
    215 1 1 Flare&lt;br /&gt;
    216 1 1 Aura&lt;br /&gt;
    217 1 1 Ultima&lt;br /&gt;
    218 1 1 Triple&lt;br /&gt;
    219 1 1 Full-Life&lt;br /&gt;
    220 1 1 Meteor&lt;br /&gt;
    221 1 1 Holy&lt;br /&gt;
    222 1 1 Triple&lt;br /&gt;
    223 1 1 Aura&lt;br /&gt;
    224 1 1 Ultima&lt;br /&gt;
    225 1 1 Triple&lt;br /&gt;
    226 1 1 Full-Life&lt;br /&gt;
    227 1 1 Meteor&lt;br /&gt;
    228 1 1 Holy&lt;br /&gt;
    229 1 1 Flare&lt;br /&gt;
    230 1 1 Aura&lt;br /&gt;
    231 1 1 Ultima&lt;br /&gt;
    232 1 1 Triple&lt;br /&gt;
    233 1 1 Full-Life&lt;br /&gt;
    234 1 1 Meteor&lt;br /&gt;
    235 1 1 Triple&lt;br /&gt;
    236 1 1 Flare&lt;br /&gt;
    237 1 1 Aura&lt;br /&gt;
    238 1 1 Ultima&lt;br /&gt;
    239 1 1 Triple&lt;br /&gt;
    240 1 1 Full-Life&lt;br /&gt;
    241 1 1 Meteor&lt;br /&gt;
    242 1 1 Holy&lt;br /&gt;
    243 1 1 Flare&lt;br /&gt;
    244 1 1 Aura&lt;br /&gt;
    245 1 1 Ultima&lt;br /&gt;
    246 0 1 Blizzard&lt;br /&gt;
    247 0 1 Cure&lt;br /&gt;
    248 1 1 Dispel&lt;br /&gt;
    249 1 1 Confuse&lt;br /&gt;
    250 0 0 Meteor&lt;br /&gt;
    251 0 0 Double&lt;br /&gt;
    252 0 0 Aura&lt;br /&gt;
    253 0 0 Holy&lt;br /&gt;
    254 0 0 Flare&lt;br /&gt;
    255 0 0 Ultima&lt;br /&gt;
    256 1 1 Scan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Halfer:&lt;br /&gt;
X = rowBlockAmount, which is 4 times segment amount so 4 * 32 = 128 or 0x80. The last bit tells which row of the two we are on, first or second. The range of top row is from 0x00 - 0x7F and second row's 0x80 - 0xFF.&lt;br /&gt;
&lt;br /&gt;
Y is incremented whenever X goes over 0xFF.&lt;br /&gt;
&lt;br /&gt;
=== Section 36-37: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 37. (like sections 8, 10 and 12)&lt;br /&gt;
&lt;br /&gt;
=== Section 38: World map textures archive ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). This is one of the larger sections in file. THIS section is responsible for 1/2 world map textures (Those are really used in-game). There is 36 textures inside as of original release. Also, sea, beach and special effects texture is present. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (144 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 39: Textures - roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for train track textures, road textures, bridge train track texture (the one that gets through FH). &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (52 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 40: One world map texture/NULL ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to only one .TIM texture. This is the first texture that is in [[FF8/WorldMap_texl|texl.obj]] or wmsetxx.obj/Section 38. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Various (16384 originally)&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|-&lt;br /&gt;
| After Texture&lt;br /&gt;
| Next offset-(header+TIM texture)&lt;br /&gt;
| NULL data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 41: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 42: Vehicle and object textures ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for vehicles, world map objects textures (Balamb mobile, Galbadia mobile, Balamb halo ring, cactuar statue, lunatic pandora...)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (132 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 43: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 44: Music related  ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 45-48: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;/div&gt;</summary>
		<author><name>Myst6re</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5623</id>
		<title>FF8/WorldMap wmsetxx</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5623"/>
		<updated>2020-01-07T11:50:20Z</updated>

		<summary type="html">&lt;p&gt;Myst6re: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Info==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj (where xx may refer to gr,us,it,fr,sp) is a multi-data world map file containing many core functions and 3D objects. This file contains almost everything: sounds, scripts, dialogs, texts, textures, models- all contained in one file. Main differences between en/it/gr/sp/fr are localized dialogs, so next sections have different offsets. Offsets before this are all the same. [[FF8/WorldMap_wmset|Wmset.obj]] is probably never used in-game and is leftover. Dialogs in lang-en/wmset.obj are in english, but the file is different from wmsetus.obj.&lt;br /&gt;
&lt;br /&gt;
==General structure==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj is made from 48 sections. File starts with header, that has 48*4 bytes. Every offset is 4 bytes long. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section 1&lt;br /&gt;
|-&lt;br /&gt;
| SectNmbr * 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section SectNmbr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The last section is offset 188. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Section 1: World map encounter data supplier ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| FileSize (this+4)&lt;br /&gt;
|-&lt;br /&gt;
| 4 + (entryID * 4)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| EncounterIdSupplierDataProvider_Entry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''EncounterIdSupplierDataProvider_Entry''':&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Byte&lt;br /&gt;
| regionID&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Byte&lt;br /&gt;
| groundID&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Byte&lt;br /&gt;
| ESI*&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Byte&lt;br /&gt;
| unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ESI is the name of the register that holds the third byte parameter of section1. It is used later to determine the encounter. When the character makes a step on worldmap, the game loops through whole section1 data and tests:&lt;br /&gt;
&lt;br /&gt;
if the character is walking on groundID and regionID, if yes, then ESI is our multiplier to section4 containing encounters. Example entry:&lt;br /&gt;
&lt;br /&gt;
00 06 00 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 0 and walks on ground with ID 6 (as far as I remember it's Balamb Plains or forest) then get encounters from section4 that start at 0*8; Other example:&lt;br /&gt;
&lt;br /&gt;
04 1B 24 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 4 and walks on ground with ID 0x1B, then get encounters from section4 that starts at 0x24*8 = 288&lt;br /&gt;
&lt;br /&gt;
That way the engine can play encounter based on place you are, because if you're walking on Balamb beach, then engine should play encounter with beach, not snow plains. That's why if you change the for one map portion you can totally erase encounters in this region, because in example region 4 that may be Centra regions does not contain any BalambPlains, so there is no entry in section1 and therefore the engine finds the region encounters, but doesn't find the encounter entries for BalambPlainsGround in Centra ruins (this is totally an example).&lt;br /&gt;
&lt;br /&gt;
=== Section 2: World map Regions ===&lt;br /&gt;
&lt;br /&gt;
Nothing much to write here.&lt;br /&gt;
32x24 world map. Just open it via hexEditor.&lt;br /&gt;
It's just bitmap (you can even convert bytes to image and mini worldmap will show)&lt;br /&gt;
Every single byte is regionID used for example in section1 for encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 3: World Map Encounters Rates ===&lt;br /&gt;
&lt;br /&gt;
One byte per encounter group in section 4. Maybe Rates, if 0, battle is disabled (railways/roads).&lt;br /&gt;
&lt;br /&gt;
=== Section 4: World Map Encounters ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| section1.ESI * 16&lt;br /&gt;
| 16 bytes&lt;br /&gt;
| 2 * 8 bytes of encounters from scene.out&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It's as simple as that:&lt;br /&gt;
Squall makes step on worldmap, game gets Squall position and tests it with section2 containing region, then loops through section1 and tests groundID and regionID to find ESI multiplier, if random number generates battle, then game gets to section4 using ESI determined earlier with Squall step on world map and plays randomly one of the eight encounters (because one ESI/encounterEntry is 16 bytes, where first four words are the most common, other 2 medium and last 2 rarest)&lt;br /&gt;
&lt;br /&gt;
=== Section 5: UNUSED Encounter Rates (after Lunar Cry) ===&lt;br /&gt;
Unused in-game&lt;br /&gt;
&lt;br /&gt;
One byte (always 0x08 here) per encounter group in section 6. Analog to section 3, but for Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 6: World Map Encounters (after Lunar Cry) ===&lt;br /&gt;
&lt;br /&gt;
Same format as Section 4, but only with Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 7-8: roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
Related with Section 39. Maybe scripts in section 8. (like sections 10, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
Script format (ScriptsCount must be guessed):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| List of script positions, not always sorted (ended with 0x00000000)&lt;br /&gt;
|-&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| Varies + 4&lt;br /&gt;
| Scripts data (ended with 0x00000000)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In script data you have 4-bytes opcodes, the first byte is the identifier, and the last two bytes are the parameter (the second byte is always 0xFF).&lt;br /&gt;
Scripts always start with 0x01 opcode, and finish with 0x16 opcode. There is always one 0x04 opcode inside.&lt;br /&gt;
For now most is unknown, I only understood that 0x2B opcode refer to scene ID in its parameter (you can find UFO, Koyo-K and Lac Obel battles in Section 32).&lt;br /&gt;
&lt;br /&gt;
=== Section 9: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 10-11: UNKNOWN (Related to Squall model) ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 10. (like sections 8, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 12-13: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 12. (like sections 8, 10 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 14: Side quests texts/tialogs ===&lt;br /&gt;
&lt;br /&gt;
This section provides dialogs on world map used in side quests.&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 …+-1 Airstation5 … 7  Get off…YesNo5 + 7  Get off…YesNo5 - 7  Get off…YesNo”Bound for 5 4 7“Pay 4111 Gil to rideDon't ride”&lt;br /&gt;
 Bound for 5 3 7“Pay 4111 Gil to rideDon't ride”Bound for 5 ! 7“Pay 4111 Gil to rideDon't ride7 ”You don't have enough money“&lt;br /&gt;
 Selphie ”C'mon?  To the 5Missile Base7?“ n Soldier”Give it up“ n Soldier”I'm busy“ n Soldier”There's no way you're getting &lt;br /&gt;
 through?“ n Soldier”This is our duty“ n Soldier”Just like always“ n Soldier”How 'bout a date…“Found a draw point?But no one &lt;br /&gt;
 can drawFound a draw point?Nothing thereFound a draw point? foundCan't carry anymoreYou do not have DrawWho will draw…Don't &lt;br /&gt;
 draw  stocked 1+-=*&amp;amp;??()·.71Out of/  …?3  7remaining …YesNo#‘2 How to drive 7          4!Back  7!Forward          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 Garden Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 How to ride a Chocobo 7 6!Get off Run with directional button 1!Change POV2&lt;br /&gt;
  Spaceship Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on:off Directional button to go up:down:steer 1!&lt;br /&gt;
 Change POV)This place looksfamiliar·It looks abandonedand run=down”Huh?…“Nida”The gauge is going berserk?…“)Shouldn't be getting&lt;br /&gt;
  off·This must be Obel LakeThrow a rockTry hummingIt's Obel LakeThrow a rockTry hummingA black shadow rose to the surfaceThrow&lt;br /&gt;
  a rockTry humming againThe black shadow disappearedThe rock sank .The rock skipped once . .The rock skipped twice . . .The &lt;br /&gt;
 rock skipped 4 times . . . .The rock skipped 5 times . . . . .The rock skipped 6 times . . . . . .The rock skipped 7 times . &lt;br /&gt;
 . . . . .The rock skippedmany many timesBlack Shadow”Hello human  What a lovely tune“A black shadow rose to the surface”Hello?“)&lt;br /&gt;
 There's something large there·”Thanks for speaking to me again?“”Umm“”Can you do me a favor…“)What is it·)I don't want to hear &lt;br /&gt;
 it·”It's my friend Mr Monkey Can you find him for me…“”Please“”“”Mr Monkey should be in a forest somewhere Keep walking around &lt;br /&gt;
 and I'm sure you'll find him“”Oh yeah do you know what…“”Oh yeah“”What a beautiful day“”I wonder what it means…“”Mysterious &lt;br /&gt;
 writing on the rock“”Mr Monkey had a rock like this I think“”Take a break at the railroad bridge“”Take some time off at Eldbeak&lt;br /&gt;
  Peninsula“”I bet it's a wonderful place“Relayed the whereabouts of Mr Monkey”Thank you?“There's the monkey?Throw a rockSing”&lt;br /&gt;
 You suck?“The monkey disappeared into the forestThe monkey told you off and disappeared into the forest”Ahhh?  Darn it? &lt;br /&gt;
 Y=You're just a big loser?  I'm able to skip the rock as many times as I want? So there? Ha=Ha? Loser? Dork? Idiot? Your mom &lt;br /&gt;
 wears combat boots?“”OUCH? D=Darn it? You're gonna pay for that?“The monkey threw a rock at you and ran?Upon inspecting the &lt;br /&gt;
 rockit looks man=made andhas some carving on itYou found the monkey”You big dork???“Almost?The monkey ran awayWhat's this?…You&lt;br /&gt;
  found a piece of rock by your footIt looks man=made andhas some carving on itBut it was just a rockA bird is warming an egg&lt;br /&gt;
 Check it outLeave it aloneIt seems that the birdwent to go look for foodYou found a piece of rock thereNothing there1  &lt;br /&gt;
 S T S L R M 1  U R H A E O 1  R E A I D R 1  E A S N P D 1  S T S L R M 71  U R H A E O 71  R E A I D R 71  E A S N P D 7”&lt;br /&gt;
 At the beach in 2 something special washes ashore at times“”You'll find something on an island east of 4 too“”There's also &lt;br /&gt;
 something on top of a mountain with a lake and cavern“”Back in the day south of here there used to be a small but beautiful &lt;br /&gt;
 village surrounded by deep forests Everyone lived a happy life there“There is a stone pillarIf you look closelythere's something&lt;br /&gt;
  written on it”TRETIMEASUREAT MINOFFDEISLE“)…·Found 9?Found L?Found ?Found 1?That sound disappeared into the lakeThere are many&lt;br /&gt;
  multicoloredrocks with faces all over the placeThe black=faced rock tells you sternly”The treasure is probably in the direction&lt;br /&gt;
  of the North Star“The white=faced rock tells you coldly”It's east“The white=faced rock tells you coldly”It's west“The white=&lt;br /&gt;
 faced rock tells you coldly”It's south“The white=faced rock tells you coldly”It's north“The red=faced rock tells you angrily”&lt;br /&gt;
 The blue one's a liar?“The red=faced rock tells you angrily”The treasure's to the east?“The red=faced rock tells you angrily”&lt;br /&gt;
 The treasure's to the west?“The red=faced rock tells you angrily”The treasure's to the south?“The red=faced rock tells you angrily&lt;br /&gt;
 ”The treasure's to the north?“The red=faced rock tells you angrily”The treasure's not here?“The blue=faced rock whispers”&lt;br /&gt;
 I don't know where the treasure is“The blue=faced rock whispers”People call us ‘The Liar Rocks'“The blue=faced rock whispers”&lt;br /&gt;
 Some of us just repeat the same thing“The blue=faced rock whispers”Some of us just talk nonsense“The blue=faced whispers”&lt;br /&gt;
 Some of us just say the opposite of what we mean“This place just has rubble lying among the grassAbsolutely nothing)&lt;br /&gt;
 Is thispart of something…·)Seems like the same rock     I picked up before·)This must be all of them·”This must be all the rocks““&lt;br /&gt;
 If he's not around perhaps he took a train towards Dollet…“)I remember now This is Edea's house I get the feeling there's something&lt;br /&gt;
 nearby Something hugenearby·&lt;br /&gt;
&lt;br /&gt;
=== Section 15: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 16: World map objects data ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to Model structure (below)&lt;br /&gt;
|-&lt;br /&gt;
| Various&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| Models (see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Researched by: Vehek (http://forums.qhimm.com/index.php?topic=13799.msg193791#msg193791)&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u16 triangle_count;&lt;br /&gt;
 u16 quad_count;&lt;br /&gt;
 u16 texture_page;&lt;br /&gt;
 u16 vertex_count;&lt;br /&gt;
 triangle triangleData[triangle_count];&lt;br /&gt;
 quad quadData[quad_count];&lt;br /&gt;
 vertex verticeData[vertex_count];&lt;br /&gt;
 } model&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[3];&lt;br /&gt;
 u8 semitransp; //Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 } triangle&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[4];&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u8 texcoords4[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 u8 semitransp;//Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 unknown&lt;br /&gt;
 } quad&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 s16 coordinates[3];&lt;br /&gt;
 u16 unknown;&lt;br /&gt;
 }vertex&lt;br /&gt;
&lt;br /&gt;
=== Section 17-19: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 20: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Bunch of AKAO frames headers packed&lt;br /&gt;
&lt;br /&gt;
=== Section 21: AKAO ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO header&lt;br /&gt;
&lt;br /&gt;
=== Section 22-28: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 29: World map &amp;quot;water block&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Section 29 is a duplicate segment from &amp;quot;full&amp;quot; water block (not segment!) used in world map (wmx.obj).&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Whenever landing or entering ragnarok, the engine does not load segments from wmx.obj until the transition is done.&amp;lt;/s&amp;gt; Whenever transforming viewport at certain speed, the engine can't keep up with loading the new segments/blocks. The areas that are not loaded but should be rendered in the same time are filled with this block. This can be seen when the camera view is set so that it rotates during ragnarok entering/exiting transition or placing character to different area.&lt;br /&gt;
&lt;br /&gt;
=== Section 30: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 31: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 32: Text- Location names ===&lt;br /&gt;
&lt;br /&gt;
This section provides location names (probably for Ragnarok landing?)&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 ?2344 Forest  Garden  Garden: Station!9Missile Base7WinhillEdea's House%:&lt;br /&gt;
 51 Seaside Station1 City1: AirstationLunatic Pandora Laboratory=1&lt;br /&gt;
 Sorceress MemorialTears' Point1 Seaside Station=Tears' PointTears' &lt;br /&gt;
 PointLunatic Pandora Laboratory1:Airstation1 Sorceress Memorial&lt;br /&gt;
&lt;br /&gt;
=== Section 33-34: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 35: World Map draw points ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x2C&lt;br /&gt;
| UNUSED&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C + (thisEntryID * 4)&lt;br /&gt;
| DWORD&lt;br /&gt;
| DrawPointVariable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''DrawPointVariable''':&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| WORD&lt;br /&gt;
| World block X&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| WORD&lt;br /&gt;
| World block Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Magic contained in world map draw point: (ID is: section35 magic entry+0x80 [add 1 to be correct with list below])&lt;br /&gt;
    129 0 1 Cure&lt;br /&gt;
    130 0 1 Esuna&lt;br /&gt;
    131 0 1 Thunder&lt;br /&gt;
    132 0 1 Fira&lt;br /&gt;
    133 0 1 Thundara&lt;br /&gt;
    134 0 1 Blizzara&lt;br /&gt;
    135 0 1 Blizzard&lt;br /&gt;
    136 0 1 Fire&lt;br /&gt;
    137 0 1 Cure&lt;br /&gt;
    138 0 1 Water&lt;br /&gt;
    139 0 1 Cura&lt;br /&gt;
    140 0 1 Esuna&lt;br /&gt;
    141 0 1 Scan&lt;br /&gt;
    142 0 1 Shell&lt;br /&gt;
    143 0 1 Haste&lt;br /&gt;
    144 0 1 Aero&lt;br /&gt;
    145 0 1 Bio&lt;br /&gt;
    146 0 1 Life&lt;br /&gt;
    147 0 1 Demi&lt;br /&gt;
    148 0 1 Protect &lt;br /&gt;
    149 0 1 Holy &lt;br /&gt;
    150 0 1 Thundaga&lt;br /&gt;
    151 0 1 Stop&lt;br /&gt;
    152 0 1 Firaga&lt;br /&gt;
    153 0 1 Regen&lt;br /&gt;
    154 0 1 Blizzaga&lt;br /&gt;
    155 0 1 Confuse&lt;br /&gt;
    156 0 1 Flare&lt;br /&gt;
    157 0 1 Dispel&lt;br /&gt;
    158 0 1 Slow&lt;br /&gt;
    159 0 1 Quake&lt;br /&gt;
    160 0 1 Curaga&lt;br /&gt;
    161 0 1 Tornado&lt;br /&gt;
    162 0 0 Full-Life&lt;br /&gt;
    163 0 1 Reflect&lt;br /&gt;
    164 0 0 Aura&lt;br /&gt;
    165 0 0 Quake&lt;br /&gt;
    166 0 1 Double&lt;br /&gt;
    167 0 1 Break&lt;br /&gt;
    168 0 0 Meteor&lt;br /&gt;
    169 0 0 Ultima&lt;br /&gt;
    170 0 0 Triple&lt;br /&gt;
    171 0 1 Confuse&lt;br /&gt;
    172 0 1 Blind&lt;br /&gt;
    173 1 1 Quake&lt;br /&gt;
    174 0 1 Sleep&lt;br /&gt;
    175 0 1 Silence&lt;br /&gt;
    176 1 1 Flare&lt;br /&gt;
    177 0 1 Death&lt;br /&gt;
    178 0 1 Drain&lt;br /&gt;
    179 1 1 Pain&lt;br /&gt;
    180 0 1 Berserk&lt;br /&gt;
    181 0 1 Float&lt;br /&gt;
    182 0 1 Zombie&lt;br /&gt;
    183 0 1 Meltdown&lt;br /&gt;
    184 1 0 Ultima&lt;br /&gt;
    185 1 1 Tornado&lt;br /&gt;
    186 1 1 Quake&lt;br /&gt;
    187 1 1 Meteor&lt;br /&gt;
    188 1 1 Holy&lt;br /&gt;
    189 1 1 Flare&lt;br /&gt;
    190 1 1 Aura&lt;br /&gt;
    191 1 1 Ultima&lt;br /&gt;
    192 1 1 Triple&lt;br /&gt;
    193 1 1 Full-Life&lt;br /&gt;
    194 1 1 Tornado&lt;br /&gt;
    195 1 1 Quake&lt;br /&gt;
    196 1 1 Meteor&lt;br /&gt;
    197 1 1 Holy&lt;br /&gt;
    198 1 1 Flare&lt;br /&gt;
    199 1 1 Aura&lt;br /&gt;
    200 1 1 Ultima&lt;br /&gt;
    201 1 1 Triple&lt;br /&gt;
    202 1 1 Full-Life&lt;br /&gt;
    203 1 1 Tornado&lt;br /&gt;
    204 1 1 Quake&lt;br /&gt;
    205 1 1 Meteor&lt;br /&gt;
    206 1 1 Holy&lt;br /&gt;
    207 1 1 Flare&lt;br /&gt;
    208 1 1 Aura&lt;br /&gt;
    209 1 1 Ultima&lt;br /&gt;
    210 1 1 Triple&lt;br /&gt;
    211 1 1 Full-Life&lt;br /&gt;
    212 1 1 Ultima&lt;br /&gt;
    213 1 1 Meteor&lt;br /&gt;
    214 1 1 Holy&lt;br /&gt;
    215 1 1 Flare&lt;br /&gt;
    216 1 1 Aura&lt;br /&gt;
    217 1 1 Ultima&lt;br /&gt;
    218 1 1 Triple&lt;br /&gt;
    219 1 1 Full-Life&lt;br /&gt;
    220 1 1 Meteor&lt;br /&gt;
    221 1 1 Holy&lt;br /&gt;
    222 1 1 Triple&lt;br /&gt;
    223 1 1 Aura&lt;br /&gt;
    224 1 1 Ultima&lt;br /&gt;
    225 1 1 Triple&lt;br /&gt;
    226 1 1 Full-Life&lt;br /&gt;
    227 1 1 Meteor&lt;br /&gt;
    228 1 1 Holy&lt;br /&gt;
    229 1 1 Flare&lt;br /&gt;
    230 1 1 Aura&lt;br /&gt;
    231 1 1 Ultima&lt;br /&gt;
    232 1 1 Triple&lt;br /&gt;
    233 1 1 Full-Life&lt;br /&gt;
    234 1 1 Meteor&lt;br /&gt;
    235 1 1 Triple&lt;br /&gt;
    236 1 1 Flare&lt;br /&gt;
    237 1 1 Aura&lt;br /&gt;
    238 1 1 Ultima&lt;br /&gt;
    239 1 1 Triple&lt;br /&gt;
    240 1 1 Full-Life&lt;br /&gt;
    241 1 1 Meteor&lt;br /&gt;
    242 1 1 Holy&lt;br /&gt;
    243 1 1 Flare&lt;br /&gt;
    244 1 1 Aura&lt;br /&gt;
    245 1 1 Ultima&lt;br /&gt;
    246 0 1 Blizzard&lt;br /&gt;
    247 0 1 Cure&lt;br /&gt;
    248 1 1 Dispel&lt;br /&gt;
    249 1 1 Confuse&lt;br /&gt;
    250 0 0 Meteor&lt;br /&gt;
    251 0 0 Double&lt;br /&gt;
    252 0 0 Aura&lt;br /&gt;
    253 0 0 Holy&lt;br /&gt;
    254 0 0 Flare&lt;br /&gt;
    255 0 0 Ultima&lt;br /&gt;
    256 1 1 Scan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Halfer:&lt;br /&gt;
X = rowBlockAmount, which is 4 times segment amount so 4 * 32 = 128 or 0x80. The last bit tells which row of the two we are on, first or second. The range of top row is from 0x00 - 0x7F and second row's 0x80 - 0xFF.&lt;br /&gt;
&lt;br /&gt;
Y is incremented whenever X goes over 0xFF.&lt;br /&gt;
&lt;br /&gt;
=== Section 36-37: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 37. (like sections 8, 10 and 12)&lt;br /&gt;
&lt;br /&gt;
=== Section 38: World map textures archive ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). This is one of the larger sections in file. THIS section is responsible for 1/2 world map textures (Those are really used in-game). There is 36 textures inside as of original release. Also, sea, beach and special effects texture is present. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (144 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 39: Textures - roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for train track textures, road textures, bridge train track texture (the one that gets through FH). &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (52 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 40: One world map texture/NULL ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to only one .TIM texture. This is the first texture that is in [[FF8/WorldMap_texl|texl.obj]] or wmsetxx.obj/Section 38. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Various (16384 originally)&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|-&lt;br /&gt;
| After Texture&lt;br /&gt;
| Next offset-(header+TIM texture)&lt;br /&gt;
| NULL data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 41: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 42: Vehicle and object textures ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for vehicles, world map objects textures (Balamb mobile, Galbadia mobile, Balamb halo ring, cactuar statue, lunatic pandora...)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (132 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 43: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 44: Music related  ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 45-48: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;/div&gt;</summary>
		<author><name>Myst6re</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5622</id>
		<title>FF8/WorldMap wmsetxx</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5622"/>
		<updated>2020-01-07T11:16:48Z</updated>

		<summary type="html">&lt;p&gt;Myst6re: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Info==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj (where xx may refer to gr,us,it,fr,sp) is a multi-data world map file containing many core functions and 3D objects. This file contains almost everything: sounds, scripts, dialogs, texts, textures, models- all contained in one file. Main differences between en/it/gr/sp/fr are localized dialogs, so next sections have different offsets. Offsets before this are all the same. [[FF8/WorldMap_wmset|Wmset.obj]] is probably never used in-game and is leftover. Dialogs in lang-en/wmset.obj are in english, but the file is different from wmsetus.obj.&lt;br /&gt;
&lt;br /&gt;
==General structure==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj is made from 48 sections. File starts with header, that has 48*4 bytes. Every offset is 4 bytes long. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section 1&lt;br /&gt;
|-&lt;br /&gt;
| SectNmbr * 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section SectNmbr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The last section is offset 188. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Section 1: World map encounter data supplier ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| FileSize (this+4)&lt;br /&gt;
|-&lt;br /&gt;
| 4 + (entryID * 4)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| EncounterIdSupplierDataProvider_Entry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''EncounterIdSupplierDataProvider_Entry''':&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Byte&lt;br /&gt;
| regionID&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Byte&lt;br /&gt;
| groundID&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Byte&lt;br /&gt;
| ESI*&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Byte&lt;br /&gt;
| unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ESI is the name of the register that holds the third byte parameter of section1. It is used later to determine the encounter. When the character makes a step on worldmap, the game loops through whole section1 data and tests:&lt;br /&gt;
&lt;br /&gt;
if the character is walking on groundID and regionID, if yes, then ESI is our multiplier to section4 containing encounters. Example entry:&lt;br /&gt;
&lt;br /&gt;
00 06 00 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 0 and walks on ground with ID 6 (as far as I remember it's Balamb Plains or forest) then get encounters from section4 that start at 0*8; Other example:&lt;br /&gt;
&lt;br /&gt;
04 1B 24 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 4 and walks on ground with ID 0x1B, then get encounters from section4 that starts at 0x24*8 = 288&lt;br /&gt;
&lt;br /&gt;
That way the engine can play encounter based on place you are, because if you're walking on Balamb beach, then engine should play encounter with beach, not snow plains. That's why if you change the for one map portion you can totally erase encounters in this region, because in example region 4 that may be Centra regions does not contain any BalambPlains, so there is no entry in section1 and therefore the engine finds the region encounters, but doesn't find the encounter entries for BalambPlainsGround in Centra ruins (this is totally an example).&lt;br /&gt;
&lt;br /&gt;
=== Section 2: World map Regions ===&lt;br /&gt;
&lt;br /&gt;
Nothing much to write here.&lt;br /&gt;
32x24 world map. Just open it via hexEditor.&lt;br /&gt;
It's just bitmap (you can even convert bytes to image and mini worldmap will show)&lt;br /&gt;
Every single byte is regionID used for example in section1 for encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 3: World Map Encounters unknown ===&lt;br /&gt;
&lt;br /&gt;
One byte per encounter group in section 4. Unknown for now.&lt;br /&gt;
&lt;br /&gt;
=== Section 4: World Map Encounters ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| section1.ESI * 16&lt;br /&gt;
| 16 bytes&lt;br /&gt;
| 2 * 8 bytes of encounters from scene.out&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It's as simple as that:&lt;br /&gt;
Squall makes step on worldmap, game gets Squall position and tests it with section2 containing region, then loops through section1 and tests groundID and regionID to find ESI multiplier, if random number generates battle, then game gets to section4 using ESI determined earlier with Squall step on world map and plays randomly one of the eight encounters (because one ESI/encounterEntry is 16 bytes, where first four words are the most common, other 2 medium and last 2 rarest)&lt;br /&gt;
&lt;br /&gt;
=== Section 5: UNUSED ===&lt;br /&gt;
Unused in-game&lt;br /&gt;
&lt;br /&gt;
One byte (always 0x08 here) per encounter group in section 6. Unknown for now. Analog to section 3, but for Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 6: World Map Encounters (after Lunar Cry) ===&lt;br /&gt;
&lt;br /&gt;
Same format as Section 4, but only with Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 7-8: roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
Related with Section 39. Maybe scripts in section 8. (like sections 10, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
Script format (ScriptsCount must be guessed):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| List of script positions, not always sorted (ended with 0x00000000)&lt;br /&gt;
|-&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| Varies + 4&lt;br /&gt;
| Scripts data (ended with 0x00000000)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In script data you have 4-bytes opcodes, the first byte is the identifier, and the last two bytes are the parameter (the second byte is always 0xFF).&lt;br /&gt;
Scripts always start with 0x01 opcode, and finish with 0x16 opcode. There is always one 0x04 opcode inside.&lt;br /&gt;
For now most is unknown, I only understood that 0x2B opcode refer to scene ID in its parameter (you can find UFO, Koyo-K and Lac Obel battles in Section 32).&lt;br /&gt;
&lt;br /&gt;
=== Section 9: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 10-11: UNKNOWN (Related to Squall model) ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 10. (like sections 8, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 12-13: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 12. (like sections 8, 10 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 14: Side quests texts/tialogs ===&lt;br /&gt;
&lt;br /&gt;
This section provides dialogs on world map used in side quests.&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 …+-1 Airstation5 … 7  Get off…YesNo5 + 7  Get off…YesNo5 - 7  Get off…YesNo”Bound for 5 4 7“Pay 4111 Gil to rideDon't ride”&lt;br /&gt;
 Bound for 5 3 7“Pay 4111 Gil to rideDon't ride”Bound for 5 ! 7“Pay 4111 Gil to rideDon't ride7 ”You don't have enough money“&lt;br /&gt;
 Selphie ”C'mon?  To the 5Missile Base7?“ n Soldier”Give it up“ n Soldier”I'm busy“ n Soldier”There's no way you're getting &lt;br /&gt;
 through?“ n Soldier”This is our duty“ n Soldier”Just like always“ n Soldier”How 'bout a date…“Found a draw point?But no one &lt;br /&gt;
 can drawFound a draw point?Nothing thereFound a draw point? foundCan't carry anymoreYou do not have DrawWho will draw…Don't &lt;br /&gt;
 draw  stocked 1+-=*&amp;amp;??()·.71Out of/  …?3  7remaining …YesNo#‘2 How to drive 7          4!Back  7!Forward          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 Garden Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 How to ride a Chocobo 7 6!Get off Run with directional button 1!Change POV2&lt;br /&gt;
  Spaceship Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on:off Directional button to go up:down:steer 1!&lt;br /&gt;
 Change POV)This place looksfamiliar·It looks abandonedand run=down”Huh?…“Nida”The gauge is going berserk?…“)Shouldn't be getting&lt;br /&gt;
  off·This must be Obel LakeThrow a rockTry hummingIt's Obel LakeThrow a rockTry hummingA black shadow rose to the surfaceThrow&lt;br /&gt;
  a rockTry humming againThe black shadow disappearedThe rock sank .The rock skipped once . .The rock skipped twice . . .The &lt;br /&gt;
 rock skipped 4 times . . . .The rock skipped 5 times . . . . .The rock skipped 6 times . . . . . .The rock skipped 7 times . &lt;br /&gt;
 . . . . .The rock skippedmany many timesBlack Shadow”Hello human  What a lovely tune“A black shadow rose to the surface”Hello?“)&lt;br /&gt;
 There's something large there·”Thanks for speaking to me again?“”Umm“”Can you do me a favor…“)What is it·)I don't want to hear &lt;br /&gt;
 it·”It's my friend Mr Monkey Can you find him for me…“”Please“”“”Mr Monkey should be in a forest somewhere Keep walking around &lt;br /&gt;
 and I'm sure you'll find him“”Oh yeah do you know what…“”Oh yeah“”What a beautiful day“”I wonder what it means…“”Mysterious &lt;br /&gt;
 writing on the rock“”Mr Monkey had a rock like this I think“”Take a break at the railroad bridge“”Take some time off at Eldbeak&lt;br /&gt;
  Peninsula“”I bet it's a wonderful place“Relayed the whereabouts of Mr Monkey”Thank you?“There's the monkey?Throw a rockSing”&lt;br /&gt;
 You suck?“The monkey disappeared into the forestThe monkey told you off and disappeared into the forest”Ahhh?  Darn it? &lt;br /&gt;
 Y=You're just a big loser?  I'm able to skip the rock as many times as I want? So there? Ha=Ha? Loser? Dork? Idiot? Your mom &lt;br /&gt;
 wears combat boots?“”OUCH? D=Darn it? You're gonna pay for that?“The monkey threw a rock at you and ran?Upon inspecting the &lt;br /&gt;
 rockit looks man=made andhas some carving on itYou found the monkey”You big dork???“Almost?The monkey ran awayWhat's this?…You&lt;br /&gt;
  found a piece of rock by your footIt looks man=made andhas some carving on itBut it was just a rockA bird is warming an egg&lt;br /&gt;
 Check it outLeave it aloneIt seems that the birdwent to go look for foodYou found a piece of rock thereNothing there1  &lt;br /&gt;
 S T S L R M 1  U R H A E O 1  R E A I D R 1  E A S N P D 1  S T S L R M 71  U R H A E O 71  R E A I D R 71  E A S N P D 7”&lt;br /&gt;
 At the beach in 2 something special washes ashore at times“”You'll find something on an island east of 4 too“”There's also &lt;br /&gt;
 something on top of a mountain with a lake and cavern“”Back in the day south of here there used to be a small but beautiful &lt;br /&gt;
 village surrounded by deep forests Everyone lived a happy life there“There is a stone pillarIf you look closelythere's something&lt;br /&gt;
  written on it”TRETIMEASUREAT MINOFFDEISLE“)…·Found 9?Found L?Found ?Found 1?That sound disappeared into the lakeThere are many&lt;br /&gt;
  multicoloredrocks with faces all over the placeThe black=faced rock tells you sternly”The treasure is probably in the direction&lt;br /&gt;
  of the North Star“The white=faced rock tells you coldly”It's east“The white=faced rock tells you coldly”It's west“The white=&lt;br /&gt;
 faced rock tells you coldly”It's south“The white=faced rock tells you coldly”It's north“The red=faced rock tells you angrily”&lt;br /&gt;
 The blue one's a liar?“The red=faced rock tells you angrily”The treasure's to the east?“The red=faced rock tells you angrily”&lt;br /&gt;
 The treasure's to the west?“The red=faced rock tells you angrily”The treasure's to the south?“The red=faced rock tells you angrily&lt;br /&gt;
 ”The treasure's to the north?“The red=faced rock tells you angrily”The treasure's not here?“The blue=faced rock whispers”&lt;br /&gt;
 I don't know where the treasure is“The blue=faced rock whispers”People call us ‘The Liar Rocks'“The blue=faced rock whispers”&lt;br /&gt;
 Some of us just repeat the same thing“The blue=faced rock whispers”Some of us just talk nonsense“The blue=faced whispers”&lt;br /&gt;
 Some of us just say the opposite of what we mean“This place just has rubble lying among the grassAbsolutely nothing)&lt;br /&gt;
 Is thispart of something…·)Seems like the same rock     I picked up before·)This must be all of them·”This must be all the rocks““&lt;br /&gt;
 If he's not around perhaps he took a train towards Dollet…“)I remember now This is Edea's house I get the feeling there's something&lt;br /&gt;
 nearby Something hugenearby·&lt;br /&gt;
&lt;br /&gt;
=== Section 15: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 16: World map objects data ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to Model structure (below)&lt;br /&gt;
|-&lt;br /&gt;
| Various&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| Models (see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Researched by: Vehek (http://forums.qhimm.com/index.php?topic=13799.msg193791#msg193791)&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u16 triangle_count;&lt;br /&gt;
 u16 quad_count;&lt;br /&gt;
 u16 texture_page;&lt;br /&gt;
 u16 vertex_count;&lt;br /&gt;
 triangle triangleData[triangle_count];&lt;br /&gt;
 quad quadData[quad_count];&lt;br /&gt;
 vertex verticeData[vertex_count];&lt;br /&gt;
 } model&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[3];&lt;br /&gt;
 u8 semitransp; //Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 } triangle&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[4];&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u8 texcoords4[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 u8 semitransp;//Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 unknown&lt;br /&gt;
 } quad&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 s16 coordinates[3];&lt;br /&gt;
 u16 unknown;&lt;br /&gt;
 }vertex&lt;br /&gt;
&lt;br /&gt;
=== Section 17-19: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 20: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Bunch of AKAO frames headers packed&lt;br /&gt;
&lt;br /&gt;
=== Section 21: AKAO ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO header&lt;br /&gt;
&lt;br /&gt;
=== Section 22-28: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 29: World map &amp;quot;water block&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Section 29 is a duplicate segment from &amp;quot;full&amp;quot; water block (not segment!) used in world map (wmx.obj).&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Whenever landing or entering ragnarok, the engine does not load segments from wmx.obj until the transition is done.&amp;lt;/s&amp;gt; Whenever transforming viewport at certain speed, the engine can't keep up with loading the new segments/blocks. The areas that are not loaded but should be rendered in the same time are filled with this block. This can be seen when the camera view is set so that it rotates during ragnarok entering/exiting transition or placing character to different area.&lt;br /&gt;
&lt;br /&gt;
=== Section 30: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 31: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 32: Text- Location names ===&lt;br /&gt;
&lt;br /&gt;
This section provides location names (probably for Ragnarok landing?)&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 ?2344 Forest  Garden  Garden: Station!9Missile Base7WinhillEdea's House%:&lt;br /&gt;
 51 Seaside Station1 City1: AirstationLunatic Pandora Laboratory=1&lt;br /&gt;
 Sorceress MemorialTears' Point1 Seaside Station=Tears' PointTears' &lt;br /&gt;
 PointLunatic Pandora Laboratory1:Airstation1 Sorceress Memorial&lt;br /&gt;
&lt;br /&gt;
=== Section 33-34: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 35: World Map draw points ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x2C&lt;br /&gt;
| UNUSED&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C + (thisEntryID * 4)&lt;br /&gt;
| DWORD&lt;br /&gt;
| DrawPointVariable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''DrawPointVariable''':&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| WORD&lt;br /&gt;
| World block X&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| WORD&lt;br /&gt;
| World block Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Magic contained in world map draw point: (ID is: section35 magic entry+0x80 [add 1 to be correct with list below])&lt;br /&gt;
    129 0 1 Cure&lt;br /&gt;
    130 0 1 Esuna&lt;br /&gt;
    131 0 1 Thunder&lt;br /&gt;
    132 0 1 Fira&lt;br /&gt;
    133 0 1 Thundara&lt;br /&gt;
    134 0 1 Blizzara&lt;br /&gt;
    135 0 1 Blizzard&lt;br /&gt;
    136 0 1 Fire&lt;br /&gt;
    137 0 1 Cure&lt;br /&gt;
    138 0 1 Water&lt;br /&gt;
    139 0 1 Cura&lt;br /&gt;
    140 0 1 Esuna&lt;br /&gt;
    141 0 1 Scan&lt;br /&gt;
    142 0 1 Shell&lt;br /&gt;
    143 0 1 Haste&lt;br /&gt;
    144 0 1 Aero&lt;br /&gt;
    145 0 1 Bio&lt;br /&gt;
    146 0 1 Life&lt;br /&gt;
    147 0 1 Demi&lt;br /&gt;
    148 0 1 Protect &lt;br /&gt;
    149 0 1 Holy &lt;br /&gt;
    150 0 1 Thundaga&lt;br /&gt;
    151 0 1 Stop&lt;br /&gt;
    152 0 1 Firaga&lt;br /&gt;
    153 0 1 Regen&lt;br /&gt;
    154 0 1 Blizzaga&lt;br /&gt;
    155 0 1 Confuse&lt;br /&gt;
    156 0 1 Flare&lt;br /&gt;
    157 0 1 Dispel&lt;br /&gt;
    158 0 1 Slow&lt;br /&gt;
    159 0 1 Quake&lt;br /&gt;
    160 0 1 Curaga&lt;br /&gt;
    161 0 1 Tornado&lt;br /&gt;
    162 0 0 Full-Life&lt;br /&gt;
    163 0 1 Reflect&lt;br /&gt;
    164 0 0 Aura&lt;br /&gt;
    165 0 0 Quake&lt;br /&gt;
    166 0 1 Double&lt;br /&gt;
    167 0 1 Break&lt;br /&gt;
    168 0 0 Meteor&lt;br /&gt;
    169 0 0 Ultima&lt;br /&gt;
    170 0 0 Triple&lt;br /&gt;
    171 0 1 Confuse&lt;br /&gt;
    172 0 1 Blind&lt;br /&gt;
    173 1 1 Quake&lt;br /&gt;
    174 0 1 Sleep&lt;br /&gt;
    175 0 1 Silence&lt;br /&gt;
    176 1 1 Flare&lt;br /&gt;
    177 0 1 Death&lt;br /&gt;
    178 0 1 Drain&lt;br /&gt;
    179 1 1 Pain&lt;br /&gt;
    180 0 1 Berserk&lt;br /&gt;
    181 0 1 Float&lt;br /&gt;
    182 0 1 Zombie&lt;br /&gt;
    183 0 1 Meltdown&lt;br /&gt;
    184 1 0 Ultima&lt;br /&gt;
    185 1 1 Tornado&lt;br /&gt;
    186 1 1 Quake&lt;br /&gt;
    187 1 1 Meteor&lt;br /&gt;
    188 1 1 Holy&lt;br /&gt;
    189 1 1 Flare&lt;br /&gt;
    190 1 1 Aura&lt;br /&gt;
    191 1 1 Ultima&lt;br /&gt;
    192 1 1 Triple&lt;br /&gt;
    193 1 1 Full-Life&lt;br /&gt;
    194 1 1 Tornado&lt;br /&gt;
    195 1 1 Quake&lt;br /&gt;
    196 1 1 Meteor&lt;br /&gt;
    197 1 1 Holy&lt;br /&gt;
    198 1 1 Flare&lt;br /&gt;
    199 1 1 Aura&lt;br /&gt;
    200 1 1 Ultima&lt;br /&gt;
    201 1 1 Triple&lt;br /&gt;
    202 1 1 Full-Life&lt;br /&gt;
    203 1 1 Tornado&lt;br /&gt;
    204 1 1 Quake&lt;br /&gt;
    205 1 1 Meteor&lt;br /&gt;
    206 1 1 Holy&lt;br /&gt;
    207 1 1 Flare&lt;br /&gt;
    208 1 1 Aura&lt;br /&gt;
    209 1 1 Ultima&lt;br /&gt;
    210 1 1 Triple&lt;br /&gt;
    211 1 1 Full-Life&lt;br /&gt;
    212 1 1 Ultima&lt;br /&gt;
    213 1 1 Meteor&lt;br /&gt;
    214 1 1 Holy&lt;br /&gt;
    215 1 1 Flare&lt;br /&gt;
    216 1 1 Aura&lt;br /&gt;
    217 1 1 Ultima&lt;br /&gt;
    218 1 1 Triple&lt;br /&gt;
    219 1 1 Full-Life&lt;br /&gt;
    220 1 1 Meteor&lt;br /&gt;
    221 1 1 Holy&lt;br /&gt;
    222 1 1 Triple&lt;br /&gt;
    223 1 1 Aura&lt;br /&gt;
    224 1 1 Ultima&lt;br /&gt;
    225 1 1 Triple&lt;br /&gt;
    226 1 1 Full-Life&lt;br /&gt;
    227 1 1 Meteor&lt;br /&gt;
    228 1 1 Holy&lt;br /&gt;
    229 1 1 Flare&lt;br /&gt;
    230 1 1 Aura&lt;br /&gt;
    231 1 1 Ultima&lt;br /&gt;
    232 1 1 Triple&lt;br /&gt;
    233 1 1 Full-Life&lt;br /&gt;
    234 1 1 Meteor&lt;br /&gt;
    235 1 1 Triple&lt;br /&gt;
    236 1 1 Flare&lt;br /&gt;
    237 1 1 Aura&lt;br /&gt;
    238 1 1 Ultima&lt;br /&gt;
    239 1 1 Triple&lt;br /&gt;
    240 1 1 Full-Life&lt;br /&gt;
    241 1 1 Meteor&lt;br /&gt;
    242 1 1 Holy&lt;br /&gt;
    243 1 1 Flare&lt;br /&gt;
    244 1 1 Aura&lt;br /&gt;
    245 1 1 Ultima&lt;br /&gt;
    246 0 1 Blizzard&lt;br /&gt;
    247 0 1 Cure&lt;br /&gt;
    248 1 1 Dispel&lt;br /&gt;
    249 1 1 Confuse&lt;br /&gt;
    250 0 0 Meteor&lt;br /&gt;
    251 0 0 Double&lt;br /&gt;
    252 0 0 Aura&lt;br /&gt;
    253 0 0 Holy&lt;br /&gt;
    254 0 0 Flare&lt;br /&gt;
    255 0 0 Ultima&lt;br /&gt;
    256 1 1 Scan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Halfer:&lt;br /&gt;
X = rowBlockAmount, which is 4 times segment amount so 4 * 32 = 128 or 0x80. The last bit tells which row of the two we are on, first or second. The range of top row is from 0x00 - 0x7F and second row's 0x80 - 0xFF.&lt;br /&gt;
&lt;br /&gt;
Y is incremented whenever X goes over 0xFF.&lt;br /&gt;
&lt;br /&gt;
=== Section 36-37: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 37. (like sections 8, 10 and 12)&lt;br /&gt;
&lt;br /&gt;
=== Section 38: World map textures archive ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). This is one of the larger sections in file. THIS section is responsible for 1/2 world map textures (Those are really used in-game). There is 36 textures inside as of original release. Also, sea, beach and special effects texture is present. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (144 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 39: Textures - roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for train track textures, road textures, bridge train track texture (the one that gets through FH). &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (52 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 40: One world map texture/NULL ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to only one .TIM texture. This is the first texture that is in [[FF8/WorldMap_texl|texl.obj]] or wmsetxx.obj/Section 38. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Various (16384 originally)&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|-&lt;br /&gt;
| After Texture&lt;br /&gt;
| Next offset-(header+TIM texture)&lt;br /&gt;
| NULL data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 41: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 42: Vehicle and object textures ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for vehicles, world map objects textures (Balamb mobile, Galbadia mobile, Balamb halo ring, cactuar statue, lunatic pandora...)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (132 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 43: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 44: Music related  ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 45-48: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;/div&gt;</summary>
		<author><name>Myst6re</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5621</id>
		<title>FF8/WorldMap wmsetxx</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5621"/>
		<updated>2020-01-07T11:15:12Z</updated>

		<summary type="html">&lt;p&gt;Myst6re: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Info==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj (where xx may refer to gr,us,it,fr,sp) is a multi-data world map file containing many core functions and 3D objects. This file contains almost everything: sounds, scripts, dialogs, texts, textures, models- all contained in one file. Main differences between en/it/gr/sp/fr are localized dialogs, so next sections have different offsets. Offsets before this are all the same. [[FF8/WorldMap_wmset|Wmset.obj]] is probably never used in-game and is leftover. Dialogs in lang-en/wmset.obj are in english, but the file is different from wmsetus.obj.&lt;br /&gt;
&lt;br /&gt;
==General structure==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj is made from 48 sections. File starts with header, that has 48*4 bytes. Every offset is 4 bytes long. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section 1&lt;br /&gt;
|-&lt;br /&gt;
| SectNmbr * 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section SectNmbr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The last section is offset 188. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Section 1: World map encounter data supplier ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| FileSize (this+4)&lt;br /&gt;
|-&lt;br /&gt;
| 4 + (entryID * 4)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| EncounterIdSupplierDataProvider_Entry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''EncounterIdSupplierDataProvider_Entry''':&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Byte&lt;br /&gt;
| regionID&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Byte&lt;br /&gt;
| groundID&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Byte&lt;br /&gt;
| ESI*&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Byte&lt;br /&gt;
| unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ESI is the name of the register that holds the third byte parameter of section1. It is used later to determine the encounter. When the character makes a step on worldmap, the game loops through whole section1 data and tests:&lt;br /&gt;
&lt;br /&gt;
if the character is walking on groundID and regionID, if yes, then ESI is our multiplier to section4 containing encounters. Example entry:&lt;br /&gt;
&lt;br /&gt;
00 06 00 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 0 and walks on ground with ID 6 (as far as I remember it's Balamb Plains or forest) then get encounters from section4 that start at 0*8; Other example:&lt;br /&gt;
&lt;br /&gt;
04 1B 24 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 4 and walks on ground with ID 0x1B, then get encounters from section4 that starts at 0x24*8 = 288&lt;br /&gt;
&lt;br /&gt;
That way the engine can play encounter based on place you are, because if you're walking on Balamb beach, then engine should play encounter with beach, not snow plains. That's why if you change the for one map portion you can totally erase encounters in this region, because in example region 4 that may be Centra regions does not contain any BalambPlains, so there is no entry in section1 and therefore the engine finds the region encounters, but doesn't find the encounter entries for BalambPlainsGround in Centra ruins (this is totally an example).&lt;br /&gt;
&lt;br /&gt;
=== Section 2: World map Regions ===&lt;br /&gt;
&lt;br /&gt;
Nothing much to write here.&lt;br /&gt;
32x24 world map. Just open it via hexEditor.&lt;br /&gt;
It's just bitmap (you can even convert bytes to image and mini worldmap will show)&lt;br /&gt;
Every single byte is regionID used for example in section1 for encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 3: World Map Encounters unknown ===&lt;br /&gt;
&lt;br /&gt;
One byte per encounter group in section 4. Unknown for now.&lt;br /&gt;
&lt;br /&gt;
=== Section 4: World Map Encounters ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| section1.ESI * 8&lt;br /&gt;
| 8 bytes&lt;br /&gt;
| 2 * 4 bytes of encounters from scene.out&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It's as simple as that:&lt;br /&gt;
Squall makes step on worldmap, game gets Squall position and tests it with section2 containing region, then loops through section1 and tests groundID and regionID to find ESI multiplier, if random number generates battle, then game gets to section4 using ESI determined earlier with Squall step on world map and plays randomly one of the eight encounters (because one ESI/encounterEntry is 8 bytes, where first four are the most common, other 2 medium and last 2 rarest)&lt;br /&gt;
&lt;br /&gt;
=== Section 5: UNUSED ===&lt;br /&gt;
Unused in-game&lt;br /&gt;
&lt;br /&gt;
One byte (always 0x08 here) per encounter group in section 6. Unknown for now. Analog to section 3, but for Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 6: World Map Encounters (after Lunar Cry) ===&lt;br /&gt;
&lt;br /&gt;
Same format as Section 4, but only with Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 7-8: roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
Related with Section 39. Maybe scripts in section 8. (like sections 10, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
Script format (ScriptsCount must be guessed):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| List of script positions, not always sorted (ended with 0x00000000)&lt;br /&gt;
|-&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| Varies + 4&lt;br /&gt;
| Scripts data (ended with 0x00000000)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In script data you have 4-bytes opcodes, the first byte is the identifier, and the last two bytes are the parameter (the second byte is always 0xFF).&lt;br /&gt;
Scripts always start with 0x01 opcode, and finish with 0x16 opcode. There is always one 0x04 opcode inside.&lt;br /&gt;
For now most is unknown, I only understood that 0x2B opcode refer to scene ID in its parameter (you can find UFO, Koyo-K and Lac Obel battles in Section 32).&lt;br /&gt;
&lt;br /&gt;
=== Section 9: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 10-11: UNKNOWN (Related to Squall model) ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 10. (like sections 8, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 12-13: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 12. (like sections 8, 10 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 14: Side quests texts/tialogs ===&lt;br /&gt;
&lt;br /&gt;
This section provides dialogs on world map used in side quests.&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 …+-1 Airstation5 … 7  Get off…YesNo5 + 7  Get off…YesNo5 - 7  Get off…YesNo”Bound for 5 4 7“Pay 4111 Gil to rideDon't ride”&lt;br /&gt;
 Bound for 5 3 7“Pay 4111 Gil to rideDon't ride”Bound for 5 ! 7“Pay 4111 Gil to rideDon't ride7 ”You don't have enough money“&lt;br /&gt;
 Selphie ”C'mon?  To the 5Missile Base7?“ n Soldier”Give it up“ n Soldier”I'm busy“ n Soldier”There's no way you're getting &lt;br /&gt;
 through?“ n Soldier”This is our duty“ n Soldier”Just like always“ n Soldier”How 'bout a date…“Found a draw point?But no one &lt;br /&gt;
 can drawFound a draw point?Nothing thereFound a draw point? foundCan't carry anymoreYou do not have DrawWho will draw…Don't &lt;br /&gt;
 draw  stocked 1+-=*&amp;amp;??()·.71Out of/  …?3  7remaining …YesNo#‘2 How to drive 7          4!Back  7!Forward          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 Garden Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 How to ride a Chocobo 7 6!Get off Run with directional button 1!Change POV2&lt;br /&gt;
  Spaceship Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on:off Directional button to go up:down:steer 1!&lt;br /&gt;
 Change POV)This place looksfamiliar·It looks abandonedand run=down”Huh?…“Nida”The gauge is going berserk?…“)Shouldn't be getting&lt;br /&gt;
  off·This must be Obel LakeThrow a rockTry hummingIt's Obel LakeThrow a rockTry hummingA black shadow rose to the surfaceThrow&lt;br /&gt;
  a rockTry humming againThe black shadow disappearedThe rock sank .The rock skipped once . .The rock skipped twice . . .The &lt;br /&gt;
 rock skipped 4 times . . . .The rock skipped 5 times . . . . .The rock skipped 6 times . . . . . .The rock skipped 7 times . &lt;br /&gt;
 . . . . .The rock skippedmany many timesBlack Shadow”Hello human  What a lovely tune“A black shadow rose to the surface”Hello?“)&lt;br /&gt;
 There's something large there·”Thanks for speaking to me again?“”Umm“”Can you do me a favor…“)What is it·)I don't want to hear &lt;br /&gt;
 it·”It's my friend Mr Monkey Can you find him for me…“”Please“”“”Mr Monkey should be in a forest somewhere Keep walking around &lt;br /&gt;
 and I'm sure you'll find him“”Oh yeah do you know what…“”Oh yeah“”What a beautiful day“”I wonder what it means…“”Mysterious &lt;br /&gt;
 writing on the rock“”Mr Monkey had a rock like this I think“”Take a break at the railroad bridge“”Take some time off at Eldbeak&lt;br /&gt;
  Peninsula“”I bet it's a wonderful place“Relayed the whereabouts of Mr Monkey”Thank you?“There's the monkey?Throw a rockSing”&lt;br /&gt;
 You suck?“The monkey disappeared into the forestThe monkey told you off and disappeared into the forest”Ahhh?  Darn it? &lt;br /&gt;
 Y=You're just a big loser?  I'm able to skip the rock as many times as I want? So there? Ha=Ha? Loser? Dork? Idiot? Your mom &lt;br /&gt;
 wears combat boots?“”OUCH? D=Darn it? You're gonna pay for that?“The monkey threw a rock at you and ran?Upon inspecting the &lt;br /&gt;
 rockit looks man=made andhas some carving on itYou found the monkey”You big dork???“Almost?The monkey ran awayWhat's this?…You&lt;br /&gt;
  found a piece of rock by your footIt looks man=made andhas some carving on itBut it was just a rockA bird is warming an egg&lt;br /&gt;
 Check it outLeave it aloneIt seems that the birdwent to go look for foodYou found a piece of rock thereNothing there1  &lt;br /&gt;
 S T S L R M 1  U R H A E O 1  R E A I D R 1  E A S N P D 1  S T S L R M 71  U R H A E O 71  R E A I D R 71  E A S N P D 7”&lt;br /&gt;
 At the beach in 2 something special washes ashore at times“”You'll find something on an island east of 4 too“”There's also &lt;br /&gt;
 something on top of a mountain with a lake and cavern“”Back in the day south of here there used to be a small but beautiful &lt;br /&gt;
 village surrounded by deep forests Everyone lived a happy life there“There is a stone pillarIf you look closelythere's something&lt;br /&gt;
  written on it”TRETIMEASUREAT MINOFFDEISLE“)…·Found 9?Found L?Found ?Found 1?That sound disappeared into the lakeThere are many&lt;br /&gt;
  multicoloredrocks with faces all over the placeThe black=faced rock tells you sternly”The treasure is probably in the direction&lt;br /&gt;
  of the North Star“The white=faced rock tells you coldly”It's east“The white=faced rock tells you coldly”It's west“The white=&lt;br /&gt;
 faced rock tells you coldly”It's south“The white=faced rock tells you coldly”It's north“The red=faced rock tells you angrily”&lt;br /&gt;
 The blue one's a liar?“The red=faced rock tells you angrily”The treasure's to the east?“The red=faced rock tells you angrily”&lt;br /&gt;
 The treasure's to the west?“The red=faced rock tells you angrily”The treasure's to the south?“The red=faced rock tells you angrily&lt;br /&gt;
 ”The treasure's to the north?“The red=faced rock tells you angrily”The treasure's not here?“The blue=faced rock whispers”&lt;br /&gt;
 I don't know where the treasure is“The blue=faced rock whispers”People call us ‘The Liar Rocks'“The blue=faced rock whispers”&lt;br /&gt;
 Some of us just repeat the same thing“The blue=faced rock whispers”Some of us just talk nonsense“The blue=faced whispers”&lt;br /&gt;
 Some of us just say the opposite of what we mean“This place just has rubble lying among the grassAbsolutely nothing)&lt;br /&gt;
 Is thispart of something…·)Seems like the same rock     I picked up before·)This must be all of them·”This must be all the rocks““&lt;br /&gt;
 If he's not around perhaps he took a train towards Dollet…“)I remember now This is Edea's house I get the feeling there's something&lt;br /&gt;
 nearby Something hugenearby·&lt;br /&gt;
&lt;br /&gt;
=== Section 15: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 16: World map objects data ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to Model structure (below)&lt;br /&gt;
|-&lt;br /&gt;
| Various&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| Models (see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Researched by: Vehek (http://forums.qhimm.com/index.php?topic=13799.msg193791#msg193791)&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u16 triangle_count;&lt;br /&gt;
 u16 quad_count;&lt;br /&gt;
 u16 texture_page;&lt;br /&gt;
 u16 vertex_count;&lt;br /&gt;
 triangle triangleData[triangle_count];&lt;br /&gt;
 quad quadData[quad_count];&lt;br /&gt;
 vertex verticeData[vertex_count];&lt;br /&gt;
 } model&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[3];&lt;br /&gt;
 u8 semitransp; //Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 } triangle&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[4];&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u8 texcoords4[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 u8 semitransp;//Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 unknown&lt;br /&gt;
 } quad&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 s16 coordinates[3];&lt;br /&gt;
 u16 unknown;&lt;br /&gt;
 }vertex&lt;br /&gt;
&lt;br /&gt;
=== Section 17-19: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 20: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Bunch of AKAO frames headers packed&lt;br /&gt;
&lt;br /&gt;
=== Section 21: AKAO ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO header&lt;br /&gt;
&lt;br /&gt;
=== Section 22-28: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 29: World map &amp;quot;water block&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Section 29 is a duplicate segment from &amp;quot;full&amp;quot; water block (not segment!) used in world map (wmx.obj).&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Whenever landing or entering ragnarok, the engine does not load segments from wmx.obj until the transition is done.&amp;lt;/s&amp;gt; Whenever transforming viewport at certain speed, the engine can't keep up with loading the new segments/blocks. The areas that are not loaded but should be rendered in the same time are filled with this block. This can be seen when the camera view is set so that it rotates during ragnarok entering/exiting transition or placing character to different area.&lt;br /&gt;
&lt;br /&gt;
=== Section 30: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 31: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 32: Text- Location names ===&lt;br /&gt;
&lt;br /&gt;
This section provides location names (probably for Ragnarok landing?)&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 ?2344 Forest  Garden  Garden: Station!9Missile Base7WinhillEdea's House%:&lt;br /&gt;
 51 Seaside Station1 City1: AirstationLunatic Pandora Laboratory=1&lt;br /&gt;
 Sorceress MemorialTears' Point1 Seaside Station=Tears' PointTears' &lt;br /&gt;
 PointLunatic Pandora Laboratory1:Airstation1 Sorceress Memorial&lt;br /&gt;
&lt;br /&gt;
=== Section 33-34: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 35: World Map draw points ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x2C&lt;br /&gt;
| UNUSED&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C + (thisEntryID * 4)&lt;br /&gt;
| DWORD&lt;br /&gt;
| DrawPointVariable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''DrawPointVariable''':&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| WORD&lt;br /&gt;
| World block X&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| WORD&lt;br /&gt;
| World block Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Magic contained in world map draw point: (ID is: section35 magic entry+0x80 [add 1 to be correct with list below])&lt;br /&gt;
    129 0 1 Cure&lt;br /&gt;
    130 0 1 Esuna&lt;br /&gt;
    131 0 1 Thunder&lt;br /&gt;
    132 0 1 Fira&lt;br /&gt;
    133 0 1 Thundara&lt;br /&gt;
    134 0 1 Blizzara&lt;br /&gt;
    135 0 1 Blizzard&lt;br /&gt;
    136 0 1 Fire&lt;br /&gt;
    137 0 1 Cure&lt;br /&gt;
    138 0 1 Water&lt;br /&gt;
    139 0 1 Cura&lt;br /&gt;
    140 0 1 Esuna&lt;br /&gt;
    141 0 1 Scan&lt;br /&gt;
    142 0 1 Shell&lt;br /&gt;
    143 0 1 Haste&lt;br /&gt;
    144 0 1 Aero&lt;br /&gt;
    145 0 1 Bio&lt;br /&gt;
    146 0 1 Life&lt;br /&gt;
    147 0 1 Demi&lt;br /&gt;
    148 0 1 Protect &lt;br /&gt;
    149 0 1 Holy &lt;br /&gt;
    150 0 1 Thundaga&lt;br /&gt;
    151 0 1 Stop&lt;br /&gt;
    152 0 1 Firaga&lt;br /&gt;
    153 0 1 Regen&lt;br /&gt;
    154 0 1 Blizzaga&lt;br /&gt;
    155 0 1 Confuse&lt;br /&gt;
    156 0 1 Flare&lt;br /&gt;
    157 0 1 Dispel&lt;br /&gt;
    158 0 1 Slow&lt;br /&gt;
    159 0 1 Quake&lt;br /&gt;
    160 0 1 Curaga&lt;br /&gt;
    161 0 1 Tornado&lt;br /&gt;
    162 0 0 Full-Life&lt;br /&gt;
    163 0 1 Reflect&lt;br /&gt;
    164 0 0 Aura&lt;br /&gt;
    165 0 0 Quake&lt;br /&gt;
    166 0 1 Double&lt;br /&gt;
    167 0 1 Break&lt;br /&gt;
    168 0 0 Meteor&lt;br /&gt;
    169 0 0 Ultima&lt;br /&gt;
    170 0 0 Triple&lt;br /&gt;
    171 0 1 Confuse&lt;br /&gt;
    172 0 1 Blind&lt;br /&gt;
    173 1 1 Quake&lt;br /&gt;
    174 0 1 Sleep&lt;br /&gt;
    175 0 1 Silence&lt;br /&gt;
    176 1 1 Flare&lt;br /&gt;
    177 0 1 Death&lt;br /&gt;
    178 0 1 Drain&lt;br /&gt;
    179 1 1 Pain&lt;br /&gt;
    180 0 1 Berserk&lt;br /&gt;
    181 0 1 Float&lt;br /&gt;
    182 0 1 Zombie&lt;br /&gt;
    183 0 1 Meltdown&lt;br /&gt;
    184 1 0 Ultima&lt;br /&gt;
    185 1 1 Tornado&lt;br /&gt;
    186 1 1 Quake&lt;br /&gt;
    187 1 1 Meteor&lt;br /&gt;
    188 1 1 Holy&lt;br /&gt;
    189 1 1 Flare&lt;br /&gt;
    190 1 1 Aura&lt;br /&gt;
    191 1 1 Ultima&lt;br /&gt;
    192 1 1 Triple&lt;br /&gt;
    193 1 1 Full-Life&lt;br /&gt;
    194 1 1 Tornado&lt;br /&gt;
    195 1 1 Quake&lt;br /&gt;
    196 1 1 Meteor&lt;br /&gt;
    197 1 1 Holy&lt;br /&gt;
    198 1 1 Flare&lt;br /&gt;
    199 1 1 Aura&lt;br /&gt;
    200 1 1 Ultima&lt;br /&gt;
    201 1 1 Triple&lt;br /&gt;
    202 1 1 Full-Life&lt;br /&gt;
    203 1 1 Tornado&lt;br /&gt;
    204 1 1 Quake&lt;br /&gt;
    205 1 1 Meteor&lt;br /&gt;
    206 1 1 Holy&lt;br /&gt;
    207 1 1 Flare&lt;br /&gt;
    208 1 1 Aura&lt;br /&gt;
    209 1 1 Ultima&lt;br /&gt;
    210 1 1 Triple&lt;br /&gt;
    211 1 1 Full-Life&lt;br /&gt;
    212 1 1 Ultima&lt;br /&gt;
    213 1 1 Meteor&lt;br /&gt;
    214 1 1 Holy&lt;br /&gt;
    215 1 1 Flare&lt;br /&gt;
    216 1 1 Aura&lt;br /&gt;
    217 1 1 Ultima&lt;br /&gt;
    218 1 1 Triple&lt;br /&gt;
    219 1 1 Full-Life&lt;br /&gt;
    220 1 1 Meteor&lt;br /&gt;
    221 1 1 Holy&lt;br /&gt;
    222 1 1 Triple&lt;br /&gt;
    223 1 1 Aura&lt;br /&gt;
    224 1 1 Ultima&lt;br /&gt;
    225 1 1 Triple&lt;br /&gt;
    226 1 1 Full-Life&lt;br /&gt;
    227 1 1 Meteor&lt;br /&gt;
    228 1 1 Holy&lt;br /&gt;
    229 1 1 Flare&lt;br /&gt;
    230 1 1 Aura&lt;br /&gt;
    231 1 1 Ultima&lt;br /&gt;
    232 1 1 Triple&lt;br /&gt;
    233 1 1 Full-Life&lt;br /&gt;
    234 1 1 Meteor&lt;br /&gt;
    235 1 1 Triple&lt;br /&gt;
    236 1 1 Flare&lt;br /&gt;
    237 1 1 Aura&lt;br /&gt;
    238 1 1 Ultima&lt;br /&gt;
    239 1 1 Triple&lt;br /&gt;
    240 1 1 Full-Life&lt;br /&gt;
    241 1 1 Meteor&lt;br /&gt;
    242 1 1 Holy&lt;br /&gt;
    243 1 1 Flare&lt;br /&gt;
    244 1 1 Aura&lt;br /&gt;
    245 1 1 Ultima&lt;br /&gt;
    246 0 1 Blizzard&lt;br /&gt;
    247 0 1 Cure&lt;br /&gt;
    248 1 1 Dispel&lt;br /&gt;
    249 1 1 Confuse&lt;br /&gt;
    250 0 0 Meteor&lt;br /&gt;
    251 0 0 Double&lt;br /&gt;
    252 0 0 Aura&lt;br /&gt;
    253 0 0 Holy&lt;br /&gt;
    254 0 0 Flare&lt;br /&gt;
    255 0 0 Ultima&lt;br /&gt;
    256 1 1 Scan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Halfer:&lt;br /&gt;
X = rowBlockAmount, which is 4 times segment amount so 4 * 32 = 128 or 0x80. The last bit tells which row of the two we are on, first or second. The range of top row is from 0x00 - 0x7F and second row's 0x80 - 0xFF.&lt;br /&gt;
&lt;br /&gt;
Y is incremented whenever X goes over 0xFF.&lt;br /&gt;
&lt;br /&gt;
=== Section 36-37: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 37. (like sections 8, 10 and 12)&lt;br /&gt;
&lt;br /&gt;
=== Section 38: World map textures archive ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). This is one of the larger sections in file. THIS section is responsible for 1/2 world map textures (Those are really used in-game). There is 36 textures inside as of original release. Also, sea, beach and special effects texture is present. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (144 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 39: Textures - roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for train track textures, road textures, bridge train track texture (the one that gets through FH). &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (52 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 40: One world map texture/NULL ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to only one .TIM texture. This is the first texture that is in [[FF8/WorldMap_texl|texl.obj]] or wmsetxx.obj/Section 38. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Various (16384 originally)&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|-&lt;br /&gt;
| After Texture&lt;br /&gt;
| Next offset-(header+TIM texture)&lt;br /&gt;
| NULL data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 41: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 42: Vehicle and object textures ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for vehicles, world map objects textures (Balamb mobile, Galbadia mobile, Balamb halo ring, cactuar statue, lunatic pandora...)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (132 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 43: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 44: Music related  ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 45-48: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;/div&gt;</summary>
		<author><name>Myst6re</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF8/BattleStructure&amp;diff=5613</id>
		<title>FF8/BattleStructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF8/BattleStructure&amp;diff=5613"/>
		<updated>2020-01-05T22:30:32Z</updated>

		<summary type="html">&lt;p&gt;Myst6re: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By JeMaCheHi&lt;br /&gt;
&lt;br /&gt;
Scene.out contains enemy placement data and flags for each of the game's battle encounters.&lt;br /&gt;
&lt;br /&gt;
See the corresponding thread: http://forums.qhimm.com/index.php?topic=15816.0&lt;br /&gt;
&lt;br /&gt;
==File Structure==&lt;br /&gt;
Scene.out contains no header. It is a raw list of 1024 encounters. Each encounter block consists of 128 bytes and has the following structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | 0x00&lt;br /&gt;
| 1&lt;br /&gt;
| Battle scenario. The value here corresponds to the number in the a0stg???.x files (into battle.fs file). You have to convert it to hex&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | 0x01&lt;br /&gt;
| 1&lt;br /&gt;
| Refers to some battle aspects and it works like 8 binary switches (see below)&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | 0x02&lt;br /&gt;
| 1&lt;br /&gt;
| Still don't know, but I suspect that it has something to do with camera movement. If you set it to 0xFF camera will always be fixed&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | 0x03&lt;br /&gt;
| 1&lt;br /&gt;
| unkonwn&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | 0x04&lt;br /&gt;
| 1&lt;br /&gt;
| Visible enemies. Shows an enemy for each bit in the byte. (see below for &amp;quot;enemy switches&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | 0x05&lt;br /&gt;
| 1&lt;br /&gt;
| Loaded enemies. Show the enemies that are been actually fought. Loaded enemies will attack you.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | 0x06&lt;br /&gt;
| 1&lt;br /&gt;
| Targetable enemies. Show the enemies which will apear in the target window. Careful with this, if you put untargetable enemies battle will never end. (see &amp;quot;enemy switches&amp;quot; too)&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | 0x07&lt;br /&gt;
| 1&lt;br /&gt;
| Number of enemies. Also works like eight binary switches. See below&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | 0x08&lt;br /&gt;
| 48&lt;br /&gt;
| Enemy coordinates. Its a set of 6x8 bytes which describes each enemy's coordinate in (x,y,z) format. So, first 6 bytes would be enemy 1's coords, next 6 enemy 2's ones, and so on.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | 0x38&lt;br /&gt;
| 8&lt;br /&gt;
| Enemies. Each byte represents an enemy. To know what enemy you're working with, you can check the c0m???.dat files in battle.fs. You just have to convert it to hex and add 0x10. Be careful, if you put numbers under 0x10 as enemies, battle will crush.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | 0x40&lt;br /&gt;
| 16&lt;br /&gt;
| unknown&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | 0x50&lt;br /&gt;
| 16&lt;br /&gt;
| Still under research, but this is usually the same as the previous field's value.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | 0x60&lt;br /&gt;
| 16&lt;br /&gt;
| unknown&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | 0x70&lt;br /&gt;
| 8&lt;br /&gt;
| unknown&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | 0x78&lt;br /&gt;
| 8&lt;br /&gt;
| Enemy level. Each enemy level is 1 byte. Numbers from 1 to 100 are fixed levels. From 101 to 199 are max levels fixed (min level remains 1). When 255, it is disabled (standard behaviour). And 215 (Deep Sea), 210 (Deep Sea), 251 (Final Bosses), 252 (Ultimecia Castle), 254 (Scripted battles)... Still don't know...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
Each 128block can have up to 8 enemies, but if more than 4 are shown at the same time, the game will crash. This could seem stupid, but it's not. If you think about some battles, like the final battle (where we have 8 enemies), all the monsters are present, but only one or two are shown at any given time. The rest appear through scripting.&lt;br /&gt;
&lt;br /&gt;
Some byte fields are just 8 switches. Here's what I've found:&lt;br /&gt;
&lt;br /&gt;
In 0x01:&lt;br /&gt;
{{:FF8/Field/Script/Opcodes/069 BATTLE}}&lt;br /&gt;
&lt;br /&gt;
In 0x04, 0x05, 0x06, and 0x07&lt;br /&gt;
:+128: 1st enemy relative&lt;br /&gt;
:+64: 2nd enemy relative&lt;br /&gt;
:+32: 3rd enemy relative&lt;br /&gt;
:+16: 4th enemy relative&lt;br /&gt;
:+8: 5th enemy relative&lt;br /&gt;
:+4: 6th enemy relative&lt;br /&gt;
:+2: 7th enemy relative&lt;br /&gt;
:+1: 8th enemy relative&lt;br /&gt;
&lt;br /&gt;
An important note: If you put an enemy that &amp;quot;summons&amp;quot; another one (Ultimecia summoning Griever, Sphinxara summoning jelleye...) it will summon the enemy from certain slot. This means that if you put that enemy in another battle, it will still summon that slot, because (I think) that summoning is scripted in its AI (in c9m???.dat)&lt;/div&gt;</summary>
		<author><name>Myst6re</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5612</id>
		<title>FF8/WorldMap wmsetxx</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5612"/>
		<updated>2020-01-05T22:21:34Z</updated>

		<summary type="html">&lt;p&gt;Myst6re: /* Section 6: World Map Encounters (after Lunar Cry) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Info==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj (where xx may refer to gr,us,it,fr,sp) is a multi-data world map file containing many core functions and 3D objects. This file contains almost everything: sounds, scripts, dialogs, texts, textures, models- all contained in one file. Main differences between en/it/gr/sp/fr are localized dialogs, so next sections have different offsets. Offsets before this are all the same. [[FF8/WorldMap_wmset|Wmset.obj]] is probably never used in-game and is leftover. Dialogs in lang-en/wmset.obj are in english, but the file is different from wmsetus.obj.&lt;br /&gt;
&lt;br /&gt;
==General structure==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj is made from 48 sections. File starts with header, that has 48*4 bytes. Every offset is 4 bytes long. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section 1&lt;br /&gt;
|-&lt;br /&gt;
| SectNmbr * 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section SectNmbr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The last section is offset 188. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Section 1: World map encounter data supplier ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| FileSize (this+4)&lt;br /&gt;
|-&lt;br /&gt;
| 4 + (entryID * 4)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| EncounterIdSupplierDataProvider_Entry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''EncounterIdSupplierDataProvider_Entry''':&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Byte&lt;br /&gt;
| regionID&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Byte&lt;br /&gt;
| groundID&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Byte&lt;br /&gt;
| ESI*&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Byte&lt;br /&gt;
| unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ESI is the name of the register that holds the third byte parameter of section1. It is used later to determine the encounter. When the character makes a step on worldmap, the game loops through whole section1 data and tests:&lt;br /&gt;
&lt;br /&gt;
if the character is walking on groundID and regionID, if yes, then ESI is our multiplier to section4 containing encounters. Example entry:&lt;br /&gt;
&lt;br /&gt;
00 06 00 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 0 and walks on ground with ID 6 (as far as I remember it's Balamb Plains or forest) then get encounters from section4 that start at 0*8; Other example:&lt;br /&gt;
&lt;br /&gt;
04 1B 24 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 4 and walks on ground with ID 0x1B, then get encounters from section4 that starts at 0x24*8 = 288&lt;br /&gt;
&lt;br /&gt;
That way the engine can play encounter based on place you are, because if you're walking on Balamb beach, then engine should play encounter with beach, not snow plains. That's why if you change the for one map portion you can totally erase encounters in this region, because in example region 4 that may be Centra regions does not contain any BalambPlains, so there is no entry in section1 and therefore the engine finds the region encounters, but doesn't find the encounter entries for BalambPlainsGround in Centra ruins (this is totally an example).&lt;br /&gt;
&lt;br /&gt;
=== Section 2: World map Regions ===&lt;br /&gt;
&lt;br /&gt;
Nothing much to write here.&lt;br /&gt;
32x24 world map. Just open it via hexEditor.&lt;br /&gt;
It's just bitmap (you can even convert bytes to image and mini worldmap will show)&lt;br /&gt;
Every single byte is regionID used for example in section1 for encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 3: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 4: World Map Encounters ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| section1.ESI * 8&lt;br /&gt;
| 8 bytes&lt;br /&gt;
| 2 * 4 bytes of encounters from scene.out&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It's as simple as that:&lt;br /&gt;
Squall makes step on worldmap, game gets Squall position and tests it with section2 containing region, then loops through section1 and tests groundID and regionID to find ESI multiplier, if random number generates battle, then game gets to section4 using ESI determined earlier with Squall step on world map and plays randomly one of the eight encounters (because one ESI/encounterEntry is 8 bytes, where first four are the most common, other 2 medium and last 2 rarest)&lt;br /&gt;
&lt;br /&gt;
=== Section 5: UNUSED ===&lt;br /&gt;
Unused in-game&lt;br /&gt;
&lt;br /&gt;
=== Section 6: World Map Encounters (after Lunar Cry) ===&lt;br /&gt;
&lt;br /&gt;
Same format as Section 4, but only with Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 7-8: roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
Related with Section 39. Maybe scripts in section 8. (like sections 10, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
Script format (ScriptsCount must be guessed):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| List of script positions, not always sorted (ended with 0x00000000)&lt;br /&gt;
|-&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| Varies + 4&lt;br /&gt;
| Scripts data (ended with 0x00000000)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In script data you have 4-bytes opcodes, the first byte is the identifier, and the last two bytes are the parameter (the second byte is always 0xFF).&lt;br /&gt;
Scripts always start with 0x01 opcode, and finish with 0x16 opcode. There is always one 0x04 opcode inside.&lt;br /&gt;
For now most is unknown, I only understood that 0x2B opcode refer to scene ID in its parameter (you can find UFO, Koyo-K and Lac Obel battles in Section 32).&lt;br /&gt;
&lt;br /&gt;
=== Section 9: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 10-11: UNKNOWN (Related to Squall model) ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 10. (like sections 8, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 12-13: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 12. (like sections 8, 10 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 14: Side quests texts/tialogs ===&lt;br /&gt;
&lt;br /&gt;
This section provides dialogs on world map used in side quests.&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 …+-1 Airstation5 … 7  Get off…YesNo5 + 7  Get off…YesNo5 - 7  Get off…YesNo”Bound for 5 4 7“Pay 4111 Gil to rideDon't ride”&lt;br /&gt;
 Bound for 5 3 7“Pay 4111 Gil to rideDon't ride”Bound for 5 ! 7“Pay 4111 Gil to rideDon't ride7 ”You don't have enough money“&lt;br /&gt;
 Selphie ”C'mon?  To the 5Missile Base7?“ n Soldier”Give it up“ n Soldier”I'm busy“ n Soldier”There's no way you're getting &lt;br /&gt;
 through?“ n Soldier”This is our duty“ n Soldier”Just like always“ n Soldier”How 'bout a date…“Found a draw point?But no one &lt;br /&gt;
 can drawFound a draw point?Nothing thereFound a draw point? foundCan't carry anymoreYou do not have DrawWho will draw…Don't &lt;br /&gt;
 draw  stocked 1+-=*&amp;amp;??()·.71Out of/  …?3  7remaining …YesNo#‘2 How to drive 7          4!Back  7!Forward          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 Garden Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 How to ride a Chocobo 7 6!Get off Run with directional button 1!Change POV2&lt;br /&gt;
  Spaceship Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on:off Directional button to go up:down:steer 1!&lt;br /&gt;
 Change POV)This place looksfamiliar·It looks abandonedand run=down”Huh?…“Nida”The gauge is going berserk?…“)Shouldn't be getting&lt;br /&gt;
  off·This must be Obel LakeThrow a rockTry hummingIt's Obel LakeThrow a rockTry hummingA black shadow rose to the surfaceThrow&lt;br /&gt;
  a rockTry humming againThe black shadow disappearedThe rock sank .The rock skipped once . .The rock skipped twice . . .The &lt;br /&gt;
 rock skipped 4 times . . . .The rock skipped 5 times . . . . .The rock skipped 6 times . . . . . .The rock skipped 7 times . &lt;br /&gt;
 . . . . .The rock skippedmany many timesBlack Shadow”Hello human  What a lovely tune“A black shadow rose to the surface”Hello?“)&lt;br /&gt;
 There's something large there·”Thanks for speaking to me again?“”Umm“”Can you do me a favor…“)What is it·)I don't want to hear &lt;br /&gt;
 it·”It's my friend Mr Monkey Can you find him for me…“”Please“”“”Mr Monkey should be in a forest somewhere Keep walking around &lt;br /&gt;
 and I'm sure you'll find him“”Oh yeah do you know what…“”Oh yeah“”What a beautiful day“”I wonder what it means…“”Mysterious &lt;br /&gt;
 writing on the rock“”Mr Monkey had a rock like this I think“”Take a break at the railroad bridge“”Take some time off at Eldbeak&lt;br /&gt;
  Peninsula“”I bet it's a wonderful place“Relayed the whereabouts of Mr Monkey”Thank you?“There's the monkey?Throw a rockSing”&lt;br /&gt;
 You suck?“The monkey disappeared into the forestThe monkey told you off and disappeared into the forest”Ahhh?  Darn it? &lt;br /&gt;
 Y=You're just a big loser?  I'm able to skip the rock as many times as I want? So there? Ha=Ha? Loser? Dork? Idiot? Your mom &lt;br /&gt;
 wears combat boots?“”OUCH? D=Darn it? You're gonna pay for that?“The monkey threw a rock at you and ran?Upon inspecting the &lt;br /&gt;
 rockit looks man=made andhas some carving on itYou found the monkey”You big dork???“Almost?The monkey ran awayWhat's this?…You&lt;br /&gt;
  found a piece of rock by your footIt looks man=made andhas some carving on itBut it was just a rockA bird is warming an egg&lt;br /&gt;
 Check it outLeave it aloneIt seems that the birdwent to go look for foodYou found a piece of rock thereNothing there1  &lt;br /&gt;
 S T S L R M 1  U R H A E O 1  R E A I D R 1  E A S N P D 1  S T S L R M 71  U R H A E O 71  R E A I D R 71  E A S N P D 7”&lt;br /&gt;
 At the beach in 2 something special washes ashore at times“”You'll find something on an island east of 4 too“”There's also &lt;br /&gt;
 something on top of a mountain with a lake and cavern“”Back in the day south of here there used to be a small but beautiful &lt;br /&gt;
 village surrounded by deep forests Everyone lived a happy life there“There is a stone pillarIf you look closelythere's something&lt;br /&gt;
  written on it”TRETIMEASUREAT MINOFFDEISLE“)…·Found 9?Found L?Found ?Found 1?That sound disappeared into the lakeThere are many&lt;br /&gt;
  multicoloredrocks with faces all over the placeThe black=faced rock tells you sternly”The treasure is probably in the direction&lt;br /&gt;
  of the North Star“The white=faced rock tells you coldly”It's east“The white=faced rock tells you coldly”It's west“The white=&lt;br /&gt;
 faced rock tells you coldly”It's south“The white=faced rock tells you coldly”It's north“The red=faced rock tells you angrily”&lt;br /&gt;
 The blue one's a liar?“The red=faced rock tells you angrily”The treasure's to the east?“The red=faced rock tells you angrily”&lt;br /&gt;
 The treasure's to the west?“The red=faced rock tells you angrily”The treasure's to the south?“The red=faced rock tells you angrily&lt;br /&gt;
 ”The treasure's to the north?“The red=faced rock tells you angrily”The treasure's not here?“The blue=faced rock whispers”&lt;br /&gt;
 I don't know where the treasure is“The blue=faced rock whispers”People call us ‘The Liar Rocks'“The blue=faced rock whispers”&lt;br /&gt;
 Some of us just repeat the same thing“The blue=faced rock whispers”Some of us just talk nonsense“The blue=faced whispers”&lt;br /&gt;
 Some of us just say the opposite of what we mean“This place just has rubble lying among the grassAbsolutely nothing)&lt;br /&gt;
 Is thispart of something…·)Seems like the same rock     I picked up before·)This must be all of them·”This must be all the rocks““&lt;br /&gt;
 If he's not around perhaps he took a train towards Dollet…“)I remember now This is Edea's house I get the feeling there's something&lt;br /&gt;
 nearby Something hugenearby·&lt;br /&gt;
&lt;br /&gt;
=== Section 15: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 16: World map objects data ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to Model structure (below)&lt;br /&gt;
|-&lt;br /&gt;
| Various&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| Models (see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Researched by: Vehek (http://forums.qhimm.com/index.php?topic=13799.msg193791#msg193791)&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u16 triangle_count;&lt;br /&gt;
 u16 quad_count;&lt;br /&gt;
 u16 texture_page;&lt;br /&gt;
 u16 vertex_count;&lt;br /&gt;
 triangle triangleData[triangle_count];&lt;br /&gt;
 quad quadData[quad_count];&lt;br /&gt;
 vertex verticeData[vertex_count];&lt;br /&gt;
 } model&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[3];&lt;br /&gt;
 u8 semitransp; //Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 } triangle&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[4];&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u8 texcoords4[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 u8 semitransp;//Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 unknown&lt;br /&gt;
 } quad&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 s16 coordinates[3];&lt;br /&gt;
 u16 unknown;&lt;br /&gt;
 }vertex&lt;br /&gt;
&lt;br /&gt;
=== Section 17-19: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 20: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Bunch of AKAO frames headers packed&lt;br /&gt;
&lt;br /&gt;
=== Section 21: AKAO ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO header&lt;br /&gt;
&lt;br /&gt;
=== Section 22-28: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 29: World map &amp;quot;water block&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Section 29 is a duplicate segment from &amp;quot;full&amp;quot; water block (not segment!) used in world map (wmx.obj).&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Whenever landing or entering ragnarok, the engine does not load segments from wmx.obj until the transition is done.&amp;lt;/s&amp;gt; Whenever transforming viewport at certain speed, the engine can't keep up with loading the new segments/blocks. The areas that are not loaded but should be rendered in the same time are filled with this block. This can be seen when the camera view is set so that it rotates during ragnarok entering/exiting transition or placing character to different area.&lt;br /&gt;
&lt;br /&gt;
=== Section 30: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 31: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 32: Text- Location names ===&lt;br /&gt;
&lt;br /&gt;
This section provides location names (probably for Ragnarok landing?)&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 ?2344 Forest  Garden  Garden: Station!9Missile Base7WinhillEdea's House%:&lt;br /&gt;
 51 Seaside Station1 City1: AirstationLunatic Pandora Laboratory=1&lt;br /&gt;
 Sorceress MemorialTears' Point1 Seaside Station=Tears' PointTears' &lt;br /&gt;
 PointLunatic Pandora Laboratory1:Airstation1 Sorceress Memorial&lt;br /&gt;
&lt;br /&gt;
=== Section 33-34: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 35: World Map draw points ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x2C&lt;br /&gt;
| UNUSED&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C + (thisEntryID * 4)&lt;br /&gt;
| DWORD&lt;br /&gt;
| DrawPointVariable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''DrawPointVariable''':&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| WORD&lt;br /&gt;
| World block X&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| WORD&lt;br /&gt;
| World block Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Magic contained in world map draw point: (ID is: section35 magic entry+0x80 [add 1 to be correct with list below])&lt;br /&gt;
    129 0 1 Cure&lt;br /&gt;
    130 0 1 Esuna&lt;br /&gt;
    131 0 1 Thunder&lt;br /&gt;
    132 0 1 Fira&lt;br /&gt;
    133 0 1 Thundara&lt;br /&gt;
    134 0 1 Blizzara&lt;br /&gt;
    135 0 1 Blizzard&lt;br /&gt;
    136 0 1 Fire&lt;br /&gt;
    137 0 1 Cure&lt;br /&gt;
    138 0 1 Water&lt;br /&gt;
    139 0 1 Cura&lt;br /&gt;
    140 0 1 Esuna&lt;br /&gt;
    141 0 1 Scan&lt;br /&gt;
    142 0 1 Shell&lt;br /&gt;
    143 0 1 Haste&lt;br /&gt;
    144 0 1 Aero&lt;br /&gt;
    145 0 1 Bio&lt;br /&gt;
    146 0 1 Life&lt;br /&gt;
    147 0 1 Demi&lt;br /&gt;
    148 0 1 Protect &lt;br /&gt;
    149 0 1 Holy &lt;br /&gt;
    150 0 1 Thundaga&lt;br /&gt;
    151 0 1 Stop&lt;br /&gt;
    152 0 1 Firaga&lt;br /&gt;
    153 0 1 Regen&lt;br /&gt;
    154 0 1 Blizzaga&lt;br /&gt;
    155 0 1 Confuse&lt;br /&gt;
    156 0 1 Flare&lt;br /&gt;
    157 0 1 Dispel&lt;br /&gt;
    158 0 1 Slow&lt;br /&gt;
    159 0 1 Quake&lt;br /&gt;
    160 0 1 Curaga&lt;br /&gt;
    161 0 1 Tornado&lt;br /&gt;
    162 0 0 Full-Life&lt;br /&gt;
    163 0 1 Reflect&lt;br /&gt;
    164 0 0 Aura&lt;br /&gt;
    165 0 0 Quake&lt;br /&gt;
    166 0 1 Double&lt;br /&gt;
    167 0 1 Break&lt;br /&gt;
    168 0 0 Meteor&lt;br /&gt;
    169 0 0 Ultima&lt;br /&gt;
    170 0 0 Triple&lt;br /&gt;
    171 0 1 Confuse&lt;br /&gt;
    172 0 1 Blind&lt;br /&gt;
    173 1 1 Quake&lt;br /&gt;
    174 0 1 Sleep&lt;br /&gt;
    175 0 1 Silence&lt;br /&gt;
    176 1 1 Flare&lt;br /&gt;
    177 0 1 Death&lt;br /&gt;
    178 0 1 Drain&lt;br /&gt;
    179 1 1 Pain&lt;br /&gt;
    180 0 1 Berserk&lt;br /&gt;
    181 0 1 Float&lt;br /&gt;
    182 0 1 Zombie&lt;br /&gt;
    183 0 1 Meltdown&lt;br /&gt;
    184 1 0 Ultima&lt;br /&gt;
    185 1 1 Tornado&lt;br /&gt;
    186 1 1 Quake&lt;br /&gt;
    187 1 1 Meteor&lt;br /&gt;
    188 1 1 Holy&lt;br /&gt;
    189 1 1 Flare&lt;br /&gt;
    190 1 1 Aura&lt;br /&gt;
    191 1 1 Ultima&lt;br /&gt;
    192 1 1 Triple&lt;br /&gt;
    193 1 1 Full-Life&lt;br /&gt;
    194 1 1 Tornado&lt;br /&gt;
    195 1 1 Quake&lt;br /&gt;
    196 1 1 Meteor&lt;br /&gt;
    197 1 1 Holy&lt;br /&gt;
    198 1 1 Flare&lt;br /&gt;
    199 1 1 Aura&lt;br /&gt;
    200 1 1 Ultima&lt;br /&gt;
    201 1 1 Triple&lt;br /&gt;
    202 1 1 Full-Life&lt;br /&gt;
    203 1 1 Tornado&lt;br /&gt;
    204 1 1 Quake&lt;br /&gt;
    205 1 1 Meteor&lt;br /&gt;
    206 1 1 Holy&lt;br /&gt;
    207 1 1 Flare&lt;br /&gt;
    208 1 1 Aura&lt;br /&gt;
    209 1 1 Ultima&lt;br /&gt;
    210 1 1 Triple&lt;br /&gt;
    211 1 1 Full-Life&lt;br /&gt;
    212 1 1 Ultima&lt;br /&gt;
    213 1 1 Meteor&lt;br /&gt;
    214 1 1 Holy&lt;br /&gt;
    215 1 1 Flare&lt;br /&gt;
    216 1 1 Aura&lt;br /&gt;
    217 1 1 Ultima&lt;br /&gt;
    218 1 1 Triple&lt;br /&gt;
    219 1 1 Full-Life&lt;br /&gt;
    220 1 1 Meteor&lt;br /&gt;
    221 1 1 Holy&lt;br /&gt;
    222 1 1 Triple&lt;br /&gt;
    223 1 1 Aura&lt;br /&gt;
    224 1 1 Ultima&lt;br /&gt;
    225 1 1 Triple&lt;br /&gt;
    226 1 1 Full-Life&lt;br /&gt;
    227 1 1 Meteor&lt;br /&gt;
    228 1 1 Holy&lt;br /&gt;
    229 1 1 Flare&lt;br /&gt;
    230 1 1 Aura&lt;br /&gt;
    231 1 1 Ultima&lt;br /&gt;
    232 1 1 Triple&lt;br /&gt;
    233 1 1 Full-Life&lt;br /&gt;
    234 1 1 Meteor&lt;br /&gt;
    235 1 1 Triple&lt;br /&gt;
    236 1 1 Flare&lt;br /&gt;
    237 1 1 Aura&lt;br /&gt;
    238 1 1 Ultima&lt;br /&gt;
    239 1 1 Triple&lt;br /&gt;
    240 1 1 Full-Life&lt;br /&gt;
    241 1 1 Meteor&lt;br /&gt;
    242 1 1 Holy&lt;br /&gt;
    243 1 1 Flare&lt;br /&gt;
    244 1 1 Aura&lt;br /&gt;
    245 1 1 Ultima&lt;br /&gt;
    246 0 1 Blizzard&lt;br /&gt;
    247 0 1 Cure&lt;br /&gt;
    248 1 1 Dispel&lt;br /&gt;
    249 1 1 Confuse&lt;br /&gt;
    250 0 0 Meteor&lt;br /&gt;
    251 0 0 Double&lt;br /&gt;
    252 0 0 Aura&lt;br /&gt;
    253 0 0 Holy&lt;br /&gt;
    254 0 0 Flare&lt;br /&gt;
    255 0 0 Ultima&lt;br /&gt;
    256 1 1 Scan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Halfer:&lt;br /&gt;
X = rowBlockAmount, which is 4 times segment amount so 4 * 32 = 128 or 0x80. The last bit tells which row of the two we are on, first or second. The range of top row is from 0x00 - 0x7F and second row's 0x80 - 0xFF.&lt;br /&gt;
&lt;br /&gt;
Y is incremented whenever X goes over 0xFF.&lt;br /&gt;
&lt;br /&gt;
=== Section 36-37: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 37. (like sections 8, 10 and 12)&lt;br /&gt;
&lt;br /&gt;
=== Section 38: World map textures archive ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). This is one of the larger sections in file. THIS section is responsible for 1/2 world map textures (Those are really used in-game). There is 36 textures inside as of original release. Also, sea, beach and special effects texture is present. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (144 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 39: Textures - roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for train track textures, road textures, bridge train track texture (the one that gets through FH). &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (52 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 40: One world map texture/NULL ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to only one .TIM texture. This is the first texture that is in [[FF8/WorldMap_texl|texl.obj]] or wmsetxx.obj/Section 38. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Various (16384 originally)&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|-&lt;br /&gt;
| After Texture&lt;br /&gt;
| Next offset-(header+TIM texture)&lt;br /&gt;
| NULL data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 41: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 42: Vehicle and object textures ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for vehicles, world map objects textures (Balamb mobile, Galbadia mobile, Balamb halo ring, cactuar statue, lunatic pandora...)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (132 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 43: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 44: Music related  ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 45-48: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;/div&gt;</summary>
		<author><name>Myst6re</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5611</id>
		<title>FF8/WorldMap wmsetxx</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5611"/>
		<updated>2020-01-05T22:21:17Z</updated>

		<summary type="html">&lt;p&gt;Myst6re: /* Section 7-8: roads, train track, bridge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Info==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj (where xx may refer to gr,us,it,fr,sp) is a multi-data world map file containing many core functions and 3D objects. This file contains almost everything: sounds, scripts, dialogs, texts, textures, models- all contained in one file. Main differences between en/it/gr/sp/fr are localized dialogs, so next sections have different offsets. Offsets before this are all the same. [[FF8/WorldMap_wmset|Wmset.obj]] is probably never used in-game and is leftover. Dialogs in lang-en/wmset.obj are in english, but the file is different from wmsetus.obj.&lt;br /&gt;
&lt;br /&gt;
==General structure==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj is made from 48 sections. File starts with header, that has 48*4 bytes. Every offset is 4 bytes long. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section 1&lt;br /&gt;
|-&lt;br /&gt;
| SectNmbr * 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section SectNmbr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The last section is offset 188. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Section 1: World map encounter data supplier ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| FileSize (this+4)&lt;br /&gt;
|-&lt;br /&gt;
| 4 + (entryID * 4)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| EncounterIdSupplierDataProvider_Entry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''EncounterIdSupplierDataProvider_Entry''':&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Byte&lt;br /&gt;
| regionID&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Byte&lt;br /&gt;
| groundID&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Byte&lt;br /&gt;
| ESI*&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Byte&lt;br /&gt;
| unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ESI is the name of the register that holds the third byte parameter of section1. It is used later to determine the encounter. When the character makes a step on worldmap, the game loops through whole section1 data and tests:&lt;br /&gt;
&lt;br /&gt;
if the character is walking on groundID and regionID, if yes, then ESI is our multiplier to section4 containing encounters. Example entry:&lt;br /&gt;
&lt;br /&gt;
00 06 00 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 0 and walks on ground with ID 6 (as far as I remember it's Balamb Plains or forest) then get encounters from section4 that start at 0*8; Other example:&lt;br /&gt;
&lt;br /&gt;
04 1B 24 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 4 and walks on ground with ID 0x1B, then get encounters from section4 that starts at 0x24*8 = 288&lt;br /&gt;
&lt;br /&gt;
That way the engine can play encounter based on place you are, because if you're walking on Balamb beach, then engine should play encounter with beach, not snow plains. That's why if you change the for one map portion you can totally erase encounters in this region, because in example region 4 that may be Centra regions does not contain any BalambPlains, so there is no entry in section1 and therefore the engine finds the region encounters, but doesn't find the encounter entries for BalambPlainsGround in Centra ruins (this is totally an example).&lt;br /&gt;
&lt;br /&gt;
=== Section 2: World map Regions ===&lt;br /&gt;
&lt;br /&gt;
Nothing much to write here.&lt;br /&gt;
32x24 world map. Just open it via hexEditor.&lt;br /&gt;
It's just bitmap (you can even convert bytes to image and mini worldmap will show)&lt;br /&gt;
Every single byte is regionID used for example in section1 for encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 3: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 4: World Map Encounters ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| section1.ESI * 8&lt;br /&gt;
| 8 bytes&lt;br /&gt;
| 2 * 4 bytes of encounters from scene.out&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It's as simple as that:&lt;br /&gt;
Squall makes step on worldmap, game gets Squall position and tests it with section2 containing region, then loops through section1 and tests groundID and regionID to find ESI multiplier, if random number generates battle, then game gets to section4 using ESI determined earlier with Squall step on world map and plays randomly one of the eight encounters (because one ESI/encounterEntry is 8 bytes, where first four are the most common, other 2 medium and last 2 rarest)&lt;br /&gt;
&lt;br /&gt;
=== Section 5: UNUSED ===&lt;br /&gt;
Unused in-game&lt;br /&gt;
&lt;br /&gt;
=== Section 6: World Map Encounters (after Lunar Cry) ===&lt;br /&gt;
&lt;br /&gt;
Same as Section 4, but patched with Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 7-8: roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
Related with Section 39. Maybe scripts in section 8. (like sections 10, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
Script format (ScriptsCount must be guessed):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| List of script positions, not always sorted (ended with 0x00000000)&lt;br /&gt;
|-&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| Varies + 4&lt;br /&gt;
| Scripts data (ended with 0x00000000)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In script data you have 4-bytes opcodes, the first byte is the identifier, and the last two bytes are the parameter (the second byte is always 0xFF).&lt;br /&gt;
Scripts always start with 0x01 opcode, and finish with 0x16 opcode. There is always one 0x04 opcode inside.&lt;br /&gt;
For now most is unknown, I only understood that 0x2B opcode refer to scene ID in its parameter (you can find UFO, Koyo-K and Lac Obel battles in Section 32).&lt;br /&gt;
&lt;br /&gt;
=== Section 9: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 10-11: UNKNOWN (Related to Squall model) ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 10. (like sections 8, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 12-13: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 12. (like sections 8, 10 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 14: Side quests texts/tialogs ===&lt;br /&gt;
&lt;br /&gt;
This section provides dialogs on world map used in side quests.&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 …+-1 Airstation5 … 7  Get off…YesNo5 + 7  Get off…YesNo5 - 7  Get off…YesNo”Bound for 5 4 7“Pay 4111 Gil to rideDon't ride”&lt;br /&gt;
 Bound for 5 3 7“Pay 4111 Gil to rideDon't ride”Bound for 5 ! 7“Pay 4111 Gil to rideDon't ride7 ”You don't have enough money“&lt;br /&gt;
 Selphie ”C'mon?  To the 5Missile Base7?“ n Soldier”Give it up“ n Soldier”I'm busy“ n Soldier”There's no way you're getting &lt;br /&gt;
 through?“ n Soldier”This is our duty“ n Soldier”Just like always“ n Soldier”How 'bout a date…“Found a draw point?But no one &lt;br /&gt;
 can drawFound a draw point?Nothing thereFound a draw point? foundCan't carry anymoreYou do not have DrawWho will draw…Don't &lt;br /&gt;
 draw  stocked 1+-=*&amp;amp;??()·.71Out of/  …?3  7remaining …YesNo#‘2 How to drive 7          4!Back  7!Forward          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 Garden Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 How to ride a Chocobo 7 6!Get off Run with directional button 1!Change POV2&lt;br /&gt;
  Spaceship Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on:off Directional button to go up:down:steer 1!&lt;br /&gt;
 Change POV)This place looksfamiliar·It looks abandonedand run=down”Huh?…“Nida”The gauge is going berserk?…“)Shouldn't be getting&lt;br /&gt;
  off·This must be Obel LakeThrow a rockTry hummingIt's Obel LakeThrow a rockTry hummingA black shadow rose to the surfaceThrow&lt;br /&gt;
  a rockTry humming againThe black shadow disappearedThe rock sank .The rock skipped once . .The rock skipped twice . . .The &lt;br /&gt;
 rock skipped 4 times . . . .The rock skipped 5 times . . . . .The rock skipped 6 times . . . . . .The rock skipped 7 times . &lt;br /&gt;
 . . . . .The rock skippedmany many timesBlack Shadow”Hello human  What a lovely tune“A black shadow rose to the surface”Hello?“)&lt;br /&gt;
 There's something large there·”Thanks for speaking to me again?“”Umm“”Can you do me a favor…“)What is it·)I don't want to hear &lt;br /&gt;
 it·”It's my friend Mr Monkey Can you find him for me…“”Please“”“”Mr Monkey should be in a forest somewhere Keep walking around &lt;br /&gt;
 and I'm sure you'll find him“”Oh yeah do you know what…“”Oh yeah“”What a beautiful day“”I wonder what it means…“”Mysterious &lt;br /&gt;
 writing on the rock“”Mr Monkey had a rock like this I think“”Take a break at the railroad bridge“”Take some time off at Eldbeak&lt;br /&gt;
  Peninsula“”I bet it's a wonderful place“Relayed the whereabouts of Mr Monkey”Thank you?“There's the monkey?Throw a rockSing”&lt;br /&gt;
 You suck?“The monkey disappeared into the forestThe monkey told you off and disappeared into the forest”Ahhh?  Darn it? &lt;br /&gt;
 Y=You're just a big loser?  I'm able to skip the rock as many times as I want? So there? Ha=Ha? Loser? Dork? Idiot? Your mom &lt;br /&gt;
 wears combat boots?“”OUCH? D=Darn it? You're gonna pay for that?“The monkey threw a rock at you and ran?Upon inspecting the &lt;br /&gt;
 rockit looks man=made andhas some carving on itYou found the monkey”You big dork???“Almost?The monkey ran awayWhat's this?…You&lt;br /&gt;
  found a piece of rock by your footIt looks man=made andhas some carving on itBut it was just a rockA bird is warming an egg&lt;br /&gt;
 Check it outLeave it aloneIt seems that the birdwent to go look for foodYou found a piece of rock thereNothing there1  &lt;br /&gt;
 S T S L R M 1  U R H A E O 1  R E A I D R 1  E A S N P D 1  S T S L R M 71  U R H A E O 71  R E A I D R 71  E A S N P D 7”&lt;br /&gt;
 At the beach in 2 something special washes ashore at times“”You'll find something on an island east of 4 too“”There's also &lt;br /&gt;
 something on top of a mountain with a lake and cavern“”Back in the day south of here there used to be a small but beautiful &lt;br /&gt;
 village surrounded by deep forests Everyone lived a happy life there“There is a stone pillarIf you look closelythere's something&lt;br /&gt;
  written on it”TRETIMEASUREAT MINOFFDEISLE“)…·Found 9?Found L?Found ?Found 1?That sound disappeared into the lakeThere are many&lt;br /&gt;
  multicoloredrocks with faces all over the placeThe black=faced rock tells you sternly”The treasure is probably in the direction&lt;br /&gt;
  of the North Star“The white=faced rock tells you coldly”It's east“The white=faced rock tells you coldly”It's west“The white=&lt;br /&gt;
 faced rock tells you coldly”It's south“The white=faced rock tells you coldly”It's north“The red=faced rock tells you angrily”&lt;br /&gt;
 The blue one's a liar?“The red=faced rock tells you angrily”The treasure's to the east?“The red=faced rock tells you angrily”&lt;br /&gt;
 The treasure's to the west?“The red=faced rock tells you angrily”The treasure's to the south?“The red=faced rock tells you angrily&lt;br /&gt;
 ”The treasure's to the north?“The red=faced rock tells you angrily”The treasure's not here?“The blue=faced rock whispers”&lt;br /&gt;
 I don't know where the treasure is“The blue=faced rock whispers”People call us ‘The Liar Rocks'“The blue=faced rock whispers”&lt;br /&gt;
 Some of us just repeat the same thing“The blue=faced rock whispers”Some of us just talk nonsense“The blue=faced whispers”&lt;br /&gt;
 Some of us just say the opposite of what we mean“This place just has rubble lying among the grassAbsolutely nothing)&lt;br /&gt;
 Is thispart of something…·)Seems like the same rock     I picked up before·)This must be all of them·”This must be all the rocks““&lt;br /&gt;
 If he's not around perhaps he took a train towards Dollet…“)I remember now This is Edea's house I get the feeling there's something&lt;br /&gt;
 nearby Something hugenearby·&lt;br /&gt;
&lt;br /&gt;
=== Section 15: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 16: World map objects data ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to Model structure (below)&lt;br /&gt;
|-&lt;br /&gt;
| Various&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| Models (see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Researched by: Vehek (http://forums.qhimm.com/index.php?topic=13799.msg193791#msg193791)&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u16 triangle_count;&lt;br /&gt;
 u16 quad_count;&lt;br /&gt;
 u16 texture_page;&lt;br /&gt;
 u16 vertex_count;&lt;br /&gt;
 triangle triangleData[triangle_count];&lt;br /&gt;
 quad quadData[quad_count];&lt;br /&gt;
 vertex verticeData[vertex_count];&lt;br /&gt;
 } model&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[3];&lt;br /&gt;
 u8 semitransp; //Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 } triangle&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[4];&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u8 texcoords4[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 u8 semitransp;//Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 unknown&lt;br /&gt;
 } quad&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 s16 coordinates[3];&lt;br /&gt;
 u16 unknown;&lt;br /&gt;
 }vertex&lt;br /&gt;
&lt;br /&gt;
=== Section 17-19: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 20: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Bunch of AKAO frames headers packed&lt;br /&gt;
&lt;br /&gt;
=== Section 21: AKAO ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO header&lt;br /&gt;
&lt;br /&gt;
=== Section 22-28: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 29: World map &amp;quot;water block&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Section 29 is a duplicate segment from &amp;quot;full&amp;quot; water block (not segment!) used in world map (wmx.obj).&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Whenever landing or entering ragnarok, the engine does not load segments from wmx.obj until the transition is done.&amp;lt;/s&amp;gt; Whenever transforming viewport at certain speed, the engine can't keep up with loading the new segments/blocks. The areas that are not loaded but should be rendered in the same time are filled with this block. This can be seen when the camera view is set so that it rotates during ragnarok entering/exiting transition or placing character to different area.&lt;br /&gt;
&lt;br /&gt;
=== Section 30: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 31: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 32: Text- Location names ===&lt;br /&gt;
&lt;br /&gt;
This section provides location names (probably for Ragnarok landing?)&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 ?2344 Forest  Garden  Garden: Station!9Missile Base7WinhillEdea's House%:&lt;br /&gt;
 51 Seaside Station1 City1: AirstationLunatic Pandora Laboratory=1&lt;br /&gt;
 Sorceress MemorialTears' Point1 Seaside Station=Tears' PointTears' &lt;br /&gt;
 PointLunatic Pandora Laboratory1:Airstation1 Sorceress Memorial&lt;br /&gt;
&lt;br /&gt;
=== Section 33-34: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 35: World Map draw points ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x2C&lt;br /&gt;
| UNUSED&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C + (thisEntryID * 4)&lt;br /&gt;
| DWORD&lt;br /&gt;
| DrawPointVariable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''DrawPointVariable''':&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| WORD&lt;br /&gt;
| World block X&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| WORD&lt;br /&gt;
| World block Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Magic contained in world map draw point: (ID is: section35 magic entry+0x80 [add 1 to be correct with list below])&lt;br /&gt;
    129 0 1 Cure&lt;br /&gt;
    130 0 1 Esuna&lt;br /&gt;
    131 0 1 Thunder&lt;br /&gt;
    132 0 1 Fira&lt;br /&gt;
    133 0 1 Thundara&lt;br /&gt;
    134 0 1 Blizzara&lt;br /&gt;
    135 0 1 Blizzard&lt;br /&gt;
    136 0 1 Fire&lt;br /&gt;
    137 0 1 Cure&lt;br /&gt;
    138 0 1 Water&lt;br /&gt;
    139 0 1 Cura&lt;br /&gt;
    140 0 1 Esuna&lt;br /&gt;
    141 0 1 Scan&lt;br /&gt;
    142 0 1 Shell&lt;br /&gt;
    143 0 1 Haste&lt;br /&gt;
    144 0 1 Aero&lt;br /&gt;
    145 0 1 Bio&lt;br /&gt;
    146 0 1 Life&lt;br /&gt;
    147 0 1 Demi&lt;br /&gt;
    148 0 1 Protect &lt;br /&gt;
    149 0 1 Holy &lt;br /&gt;
    150 0 1 Thundaga&lt;br /&gt;
    151 0 1 Stop&lt;br /&gt;
    152 0 1 Firaga&lt;br /&gt;
    153 0 1 Regen&lt;br /&gt;
    154 0 1 Blizzaga&lt;br /&gt;
    155 0 1 Confuse&lt;br /&gt;
    156 0 1 Flare&lt;br /&gt;
    157 0 1 Dispel&lt;br /&gt;
    158 0 1 Slow&lt;br /&gt;
    159 0 1 Quake&lt;br /&gt;
    160 0 1 Curaga&lt;br /&gt;
    161 0 1 Tornado&lt;br /&gt;
    162 0 0 Full-Life&lt;br /&gt;
    163 0 1 Reflect&lt;br /&gt;
    164 0 0 Aura&lt;br /&gt;
    165 0 0 Quake&lt;br /&gt;
    166 0 1 Double&lt;br /&gt;
    167 0 1 Break&lt;br /&gt;
    168 0 0 Meteor&lt;br /&gt;
    169 0 0 Ultima&lt;br /&gt;
    170 0 0 Triple&lt;br /&gt;
    171 0 1 Confuse&lt;br /&gt;
    172 0 1 Blind&lt;br /&gt;
    173 1 1 Quake&lt;br /&gt;
    174 0 1 Sleep&lt;br /&gt;
    175 0 1 Silence&lt;br /&gt;
    176 1 1 Flare&lt;br /&gt;
    177 0 1 Death&lt;br /&gt;
    178 0 1 Drain&lt;br /&gt;
    179 1 1 Pain&lt;br /&gt;
    180 0 1 Berserk&lt;br /&gt;
    181 0 1 Float&lt;br /&gt;
    182 0 1 Zombie&lt;br /&gt;
    183 0 1 Meltdown&lt;br /&gt;
    184 1 0 Ultima&lt;br /&gt;
    185 1 1 Tornado&lt;br /&gt;
    186 1 1 Quake&lt;br /&gt;
    187 1 1 Meteor&lt;br /&gt;
    188 1 1 Holy&lt;br /&gt;
    189 1 1 Flare&lt;br /&gt;
    190 1 1 Aura&lt;br /&gt;
    191 1 1 Ultima&lt;br /&gt;
    192 1 1 Triple&lt;br /&gt;
    193 1 1 Full-Life&lt;br /&gt;
    194 1 1 Tornado&lt;br /&gt;
    195 1 1 Quake&lt;br /&gt;
    196 1 1 Meteor&lt;br /&gt;
    197 1 1 Holy&lt;br /&gt;
    198 1 1 Flare&lt;br /&gt;
    199 1 1 Aura&lt;br /&gt;
    200 1 1 Ultima&lt;br /&gt;
    201 1 1 Triple&lt;br /&gt;
    202 1 1 Full-Life&lt;br /&gt;
    203 1 1 Tornado&lt;br /&gt;
    204 1 1 Quake&lt;br /&gt;
    205 1 1 Meteor&lt;br /&gt;
    206 1 1 Holy&lt;br /&gt;
    207 1 1 Flare&lt;br /&gt;
    208 1 1 Aura&lt;br /&gt;
    209 1 1 Ultima&lt;br /&gt;
    210 1 1 Triple&lt;br /&gt;
    211 1 1 Full-Life&lt;br /&gt;
    212 1 1 Ultima&lt;br /&gt;
    213 1 1 Meteor&lt;br /&gt;
    214 1 1 Holy&lt;br /&gt;
    215 1 1 Flare&lt;br /&gt;
    216 1 1 Aura&lt;br /&gt;
    217 1 1 Ultima&lt;br /&gt;
    218 1 1 Triple&lt;br /&gt;
    219 1 1 Full-Life&lt;br /&gt;
    220 1 1 Meteor&lt;br /&gt;
    221 1 1 Holy&lt;br /&gt;
    222 1 1 Triple&lt;br /&gt;
    223 1 1 Aura&lt;br /&gt;
    224 1 1 Ultima&lt;br /&gt;
    225 1 1 Triple&lt;br /&gt;
    226 1 1 Full-Life&lt;br /&gt;
    227 1 1 Meteor&lt;br /&gt;
    228 1 1 Holy&lt;br /&gt;
    229 1 1 Flare&lt;br /&gt;
    230 1 1 Aura&lt;br /&gt;
    231 1 1 Ultima&lt;br /&gt;
    232 1 1 Triple&lt;br /&gt;
    233 1 1 Full-Life&lt;br /&gt;
    234 1 1 Meteor&lt;br /&gt;
    235 1 1 Triple&lt;br /&gt;
    236 1 1 Flare&lt;br /&gt;
    237 1 1 Aura&lt;br /&gt;
    238 1 1 Ultima&lt;br /&gt;
    239 1 1 Triple&lt;br /&gt;
    240 1 1 Full-Life&lt;br /&gt;
    241 1 1 Meteor&lt;br /&gt;
    242 1 1 Holy&lt;br /&gt;
    243 1 1 Flare&lt;br /&gt;
    244 1 1 Aura&lt;br /&gt;
    245 1 1 Ultima&lt;br /&gt;
    246 0 1 Blizzard&lt;br /&gt;
    247 0 1 Cure&lt;br /&gt;
    248 1 1 Dispel&lt;br /&gt;
    249 1 1 Confuse&lt;br /&gt;
    250 0 0 Meteor&lt;br /&gt;
    251 0 0 Double&lt;br /&gt;
    252 0 0 Aura&lt;br /&gt;
    253 0 0 Holy&lt;br /&gt;
    254 0 0 Flare&lt;br /&gt;
    255 0 0 Ultima&lt;br /&gt;
    256 1 1 Scan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Halfer:&lt;br /&gt;
X = rowBlockAmount, which is 4 times segment amount so 4 * 32 = 128 or 0x80. The last bit tells which row of the two we are on, first or second. The range of top row is from 0x00 - 0x7F and second row's 0x80 - 0xFF.&lt;br /&gt;
&lt;br /&gt;
Y is incremented whenever X goes over 0xFF.&lt;br /&gt;
&lt;br /&gt;
=== Section 36-37: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 37. (like sections 8, 10 and 12)&lt;br /&gt;
&lt;br /&gt;
=== Section 38: World map textures archive ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). This is one of the larger sections in file. THIS section is responsible for 1/2 world map textures (Those are really used in-game). There is 36 textures inside as of original release. Also, sea, beach and special effects texture is present. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (144 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 39: Textures - roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for train track textures, road textures, bridge train track texture (the one that gets through FH). &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (52 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 40: One world map texture/NULL ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to only one .TIM texture. This is the first texture that is in [[FF8/WorldMap_texl|texl.obj]] or wmsetxx.obj/Section 38. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Various (16384 originally)&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|-&lt;br /&gt;
| After Texture&lt;br /&gt;
| Next offset-(header+TIM texture)&lt;br /&gt;
| NULL data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 41: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 42: Vehicle and object textures ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for vehicles, world map objects textures (Balamb mobile, Galbadia mobile, Balamb halo ring, cactuar statue, lunatic pandora...)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (132 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 43: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 44: Music related  ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 45-48: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;/div&gt;</summary>
		<author><name>Myst6re</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5610</id>
		<title>FF8/WorldMap wmsetxx</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5610"/>
		<updated>2020-01-05T22:17:29Z</updated>

		<summary type="html">&lt;p&gt;Myst6re: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Info==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj (where xx may refer to gr,us,it,fr,sp) is a multi-data world map file containing many core functions and 3D objects. This file contains almost everything: sounds, scripts, dialogs, texts, textures, models- all contained in one file. Main differences between en/it/gr/sp/fr are localized dialogs, so next sections have different offsets. Offsets before this are all the same. [[FF8/WorldMap_wmset|Wmset.obj]] is probably never used in-game and is leftover. Dialogs in lang-en/wmset.obj are in english, but the file is different from wmsetus.obj.&lt;br /&gt;
&lt;br /&gt;
==General structure==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj is made from 48 sections. File starts with header, that has 48*4 bytes. Every offset is 4 bytes long. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section 1&lt;br /&gt;
|-&lt;br /&gt;
| SectNmbr * 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section SectNmbr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The last section is offset 188. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Section 1: World map encounter data supplier ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| FileSize (this+4)&lt;br /&gt;
|-&lt;br /&gt;
| 4 + (entryID * 4)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| EncounterIdSupplierDataProvider_Entry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''EncounterIdSupplierDataProvider_Entry''':&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Byte&lt;br /&gt;
| regionID&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Byte&lt;br /&gt;
| groundID&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Byte&lt;br /&gt;
| ESI*&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Byte&lt;br /&gt;
| unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ESI is the name of the register that holds the third byte parameter of section1. It is used later to determine the encounter. When the character makes a step on worldmap, the game loops through whole section1 data and tests:&lt;br /&gt;
&lt;br /&gt;
if the character is walking on groundID and regionID, if yes, then ESI is our multiplier to section4 containing encounters. Example entry:&lt;br /&gt;
&lt;br /&gt;
00 06 00 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 0 and walks on ground with ID 6 (as far as I remember it's Balamb Plains or forest) then get encounters from section4 that start at 0*8; Other example:&lt;br /&gt;
&lt;br /&gt;
04 1B 24 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 4 and walks on ground with ID 0x1B, then get encounters from section4 that starts at 0x24*8 = 288&lt;br /&gt;
&lt;br /&gt;
That way the engine can play encounter based on place you are, because if you're walking on Balamb beach, then engine should play encounter with beach, not snow plains. That's why if you change the for one map portion you can totally erase encounters in this region, because in example region 4 that may be Centra regions does not contain any BalambPlains, so there is no entry in section1 and therefore the engine finds the region encounters, but doesn't find the encounter entries for BalambPlainsGround in Centra ruins (this is totally an example).&lt;br /&gt;
&lt;br /&gt;
=== Section 2: World map Regions ===&lt;br /&gt;
&lt;br /&gt;
Nothing much to write here.&lt;br /&gt;
32x24 world map. Just open it via hexEditor.&lt;br /&gt;
It's just bitmap (you can even convert bytes to image and mini worldmap will show)&lt;br /&gt;
Every single byte is regionID used for example in section1 for encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 3: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 4: World Map Encounters ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| section1.ESI * 8&lt;br /&gt;
| 8 bytes&lt;br /&gt;
| 2 * 4 bytes of encounters from scene.out&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It's as simple as that:&lt;br /&gt;
Squall makes step on worldmap, game gets Squall position and tests it with section2 containing region, then loops through section1 and tests groundID and regionID to find ESI multiplier, if random number generates battle, then game gets to section4 using ESI determined earlier with Squall step on world map and plays randomly one of the eight encounters (because one ESI/encounterEntry is 8 bytes, where first four are the most common, other 2 medium and last 2 rarest)&lt;br /&gt;
&lt;br /&gt;
=== Section 5: UNUSED ===&lt;br /&gt;
Unused in-game&lt;br /&gt;
&lt;br /&gt;
=== Section 6: World Map Encounters (after Lunar Cry) ===&lt;br /&gt;
&lt;br /&gt;
Same as Section 4, but patched with Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 7-8: roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
Related with Section 39. Maybe scripts in section 8. (like sections 10, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
Script format (ScriptsCount must be guessed):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| List of script positions, not always sorted (ended with 0x00000000)&lt;br /&gt;
|-&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| Varies + 4&lt;br /&gt;
| Scripts data (ended with 0x00000000)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In script data you have 4-bytes opcodes, the first byte is the identifier, and the last two bytes are the parameter (the second by is always 0xFF).&lt;br /&gt;
Scripts always start with 0x01 opcode, and finish with 0x16 opcode. There is always one 0x04 opcode inside.&lt;br /&gt;
For now most is unknown, I only understood that 0x2B opcode refer to scene ID in its parameter (you can find UFO, Koyo-K and Lac Obel battles in Section 32).&lt;br /&gt;
&lt;br /&gt;
=== Section 9: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 10-11: UNKNOWN (Related to Squall model) ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 10. (like sections 8, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 12-13: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 12. (like sections 8, 10 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 14: Side quests texts/tialogs ===&lt;br /&gt;
&lt;br /&gt;
This section provides dialogs on world map used in side quests.&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 …+-1 Airstation5 … 7  Get off…YesNo5 + 7  Get off…YesNo5 - 7  Get off…YesNo”Bound for 5 4 7“Pay 4111 Gil to rideDon't ride”&lt;br /&gt;
 Bound for 5 3 7“Pay 4111 Gil to rideDon't ride”Bound for 5 ! 7“Pay 4111 Gil to rideDon't ride7 ”You don't have enough money“&lt;br /&gt;
 Selphie ”C'mon?  To the 5Missile Base7?“ n Soldier”Give it up“ n Soldier”I'm busy“ n Soldier”There's no way you're getting &lt;br /&gt;
 through?“ n Soldier”This is our duty“ n Soldier”Just like always“ n Soldier”How 'bout a date…“Found a draw point?But no one &lt;br /&gt;
 can drawFound a draw point?Nothing thereFound a draw point? foundCan't carry anymoreYou do not have DrawWho will draw…Don't &lt;br /&gt;
 draw  stocked 1+-=*&amp;amp;??()·.71Out of/  …?3  7remaining …YesNo#‘2 How to drive 7          4!Back  7!Forward          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 Garden Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 How to ride a Chocobo 7 6!Get off Run with directional button 1!Change POV2&lt;br /&gt;
  Spaceship Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on:off Directional button to go up:down:steer 1!&lt;br /&gt;
 Change POV)This place looksfamiliar·It looks abandonedand run=down”Huh?…“Nida”The gauge is going berserk?…“)Shouldn't be getting&lt;br /&gt;
  off·This must be Obel LakeThrow a rockTry hummingIt's Obel LakeThrow a rockTry hummingA black shadow rose to the surfaceThrow&lt;br /&gt;
  a rockTry humming againThe black shadow disappearedThe rock sank .The rock skipped once . .The rock skipped twice . . .The &lt;br /&gt;
 rock skipped 4 times . . . .The rock skipped 5 times . . . . .The rock skipped 6 times . . . . . .The rock skipped 7 times . &lt;br /&gt;
 . . . . .The rock skippedmany many timesBlack Shadow”Hello human  What a lovely tune“A black shadow rose to the surface”Hello?“)&lt;br /&gt;
 There's something large there·”Thanks for speaking to me again?“”Umm“”Can you do me a favor…“)What is it·)I don't want to hear &lt;br /&gt;
 it·”It's my friend Mr Monkey Can you find him for me…“”Please“”“”Mr Monkey should be in a forest somewhere Keep walking around &lt;br /&gt;
 and I'm sure you'll find him“”Oh yeah do you know what…“”Oh yeah“”What a beautiful day“”I wonder what it means…“”Mysterious &lt;br /&gt;
 writing on the rock“”Mr Monkey had a rock like this I think“”Take a break at the railroad bridge“”Take some time off at Eldbeak&lt;br /&gt;
  Peninsula“”I bet it's a wonderful place“Relayed the whereabouts of Mr Monkey”Thank you?“There's the monkey?Throw a rockSing”&lt;br /&gt;
 You suck?“The monkey disappeared into the forestThe monkey told you off and disappeared into the forest”Ahhh?  Darn it? &lt;br /&gt;
 Y=You're just a big loser?  I'm able to skip the rock as many times as I want? So there? Ha=Ha? Loser? Dork? Idiot? Your mom &lt;br /&gt;
 wears combat boots?“”OUCH? D=Darn it? You're gonna pay for that?“The monkey threw a rock at you and ran?Upon inspecting the &lt;br /&gt;
 rockit looks man=made andhas some carving on itYou found the monkey”You big dork???“Almost?The monkey ran awayWhat's this?…You&lt;br /&gt;
  found a piece of rock by your footIt looks man=made andhas some carving on itBut it was just a rockA bird is warming an egg&lt;br /&gt;
 Check it outLeave it aloneIt seems that the birdwent to go look for foodYou found a piece of rock thereNothing there1  &lt;br /&gt;
 S T S L R M 1  U R H A E O 1  R E A I D R 1  E A S N P D 1  S T S L R M 71  U R H A E O 71  R E A I D R 71  E A S N P D 7”&lt;br /&gt;
 At the beach in 2 something special washes ashore at times“”You'll find something on an island east of 4 too“”There's also &lt;br /&gt;
 something on top of a mountain with a lake and cavern“”Back in the day south of here there used to be a small but beautiful &lt;br /&gt;
 village surrounded by deep forests Everyone lived a happy life there“There is a stone pillarIf you look closelythere's something&lt;br /&gt;
  written on it”TRETIMEASUREAT MINOFFDEISLE“)…·Found 9?Found L?Found ?Found 1?That sound disappeared into the lakeThere are many&lt;br /&gt;
  multicoloredrocks with faces all over the placeThe black=faced rock tells you sternly”The treasure is probably in the direction&lt;br /&gt;
  of the North Star“The white=faced rock tells you coldly”It's east“The white=faced rock tells you coldly”It's west“The white=&lt;br /&gt;
 faced rock tells you coldly”It's south“The white=faced rock tells you coldly”It's north“The red=faced rock tells you angrily”&lt;br /&gt;
 The blue one's a liar?“The red=faced rock tells you angrily”The treasure's to the east?“The red=faced rock tells you angrily”&lt;br /&gt;
 The treasure's to the west?“The red=faced rock tells you angrily”The treasure's to the south?“The red=faced rock tells you angrily&lt;br /&gt;
 ”The treasure's to the north?“The red=faced rock tells you angrily”The treasure's not here?“The blue=faced rock whispers”&lt;br /&gt;
 I don't know where the treasure is“The blue=faced rock whispers”People call us ‘The Liar Rocks'“The blue=faced rock whispers”&lt;br /&gt;
 Some of us just repeat the same thing“The blue=faced rock whispers”Some of us just talk nonsense“The blue=faced whispers”&lt;br /&gt;
 Some of us just say the opposite of what we mean“This place just has rubble lying among the grassAbsolutely nothing)&lt;br /&gt;
 Is thispart of something…·)Seems like the same rock     I picked up before·)This must be all of them·”This must be all the rocks““&lt;br /&gt;
 If he's not around perhaps he took a train towards Dollet…“)I remember now This is Edea's house I get the feeling there's something&lt;br /&gt;
 nearby Something hugenearby·&lt;br /&gt;
&lt;br /&gt;
=== Section 15: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 16: World map objects data ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to Model structure (below)&lt;br /&gt;
|-&lt;br /&gt;
| Various&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| Models (see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Researched by: Vehek (http://forums.qhimm.com/index.php?topic=13799.msg193791#msg193791)&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u16 triangle_count;&lt;br /&gt;
 u16 quad_count;&lt;br /&gt;
 u16 texture_page;&lt;br /&gt;
 u16 vertex_count;&lt;br /&gt;
 triangle triangleData[triangle_count];&lt;br /&gt;
 quad quadData[quad_count];&lt;br /&gt;
 vertex verticeData[vertex_count];&lt;br /&gt;
 } model&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[3];&lt;br /&gt;
 u8 semitransp; //Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 } triangle&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[4];&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u8 texcoords4[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 u8 semitransp;//Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 unknown&lt;br /&gt;
 } quad&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 s16 coordinates[3];&lt;br /&gt;
 u16 unknown;&lt;br /&gt;
 }vertex&lt;br /&gt;
&lt;br /&gt;
=== Section 17-19: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 20: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Bunch of AKAO frames headers packed&lt;br /&gt;
&lt;br /&gt;
=== Section 21: AKAO ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO header&lt;br /&gt;
&lt;br /&gt;
=== Section 22-28: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 29: World map &amp;quot;water block&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Section 29 is a duplicate segment from &amp;quot;full&amp;quot; water block (not segment!) used in world map (wmx.obj).&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Whenever landing or entering ragnarok, the engine does not load segments from wmx.obj until the transition is done.&amp;lt;/s&amp;gt; Whenever transforming viewport at certain speed, the engine can't keep up with loading the new segments/blocks. The areas that are not loaded but should be rendered in the same time are filled with this block. This can be seen when the camera view is set so that it rotates during ragnarok entering/exiting transition or placing character to different area.&lt;br /&gt;
&lt;br /&gt;
=== Section 30: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 31: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 32: Text- Location names ===&lt;br /&gt;
&lt;br /&gt;
This section provides location names (probably for Ragnarok landing?)&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 ?2344 Forest  Garden  Garden: Station!9Missile Base7WinhillEdea's House%:&lt;br /&gt;
 51 Seaside Station1 City1: AirstationLunatic Pandora Laboratory=1&lt;br /&gt;
 Sorceress MemorialTears' Point1 Seaside Station=Tears' PointTears' &lt;br /&gt;
 PointLunatic Pandora Laboratory1:Airstation1 Sorceress Memorial&lt;br /&gt;
&lt;br /&gt;
=== Section 33-34: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 35: World Map draw points ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x2C&lt;br /&gt;
| UNUSED&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C + (thisEntryID * 4)&lt;br /&gt;
| DWORD&lt;br /&gt;
| DrawPointVariable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''DrawPointVariable''':&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| WORD&lt;br /&gt;
| World block X&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| WORD&lt;br /&gt;
| World block Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Magic contained in world map draw point: (ID is: section35 magic entry+0x80 [add 1 to be correct with list below])&lt;br /&gt;
    129 0 1 Cure&lt;br /&gt;
    130 0 1 Esuna&lt;br /&gt;
    131 0 1 Thunder&lt;br /&gt;
    132 0 1 Fira&lt;br /&gt;
    133 0 1 Thundara&lt;br /&gt;
    134 0 1 Blizzara&lt;br /&gt;
    135 0 1 Blizzard&lt;br /&gt;
    136 0 1 Fire&lt;br /&gt;
    137 0 1 Cure&lt;br /&gt;
    138 0 1 Water&lt;br /&gt;
    139 0 1 Cura&lt;br /&gt;
    140 0 1 Esuna&lt;br /&gt;
    141 0 1 Scan&lt;br /&gt;
    142 0 1 Shell&lt;br /&gt;
    143 0 1 Haste&lt;br /&gt;
    144 0 1 Aero&lt;br /&gt;
    145 0 1 Bio&lt;br /&gt;
    146 0 1 Life&lt;br /&gt;
    147 0 1 Demi&lt;br /&gt;
    148 0 1 Protect &lt;br /&gt;
    149 0 1 Holy &lt;br /&gt;
    150 0 1 Thundaga&lt;br /&gt;
    151 0 1 Stop&lt;br /&gt;
    152 0 1 Firaga&lt;br /&gt;
    153 0 1 Regen&lt;br /&gt;
    154 0 1 Blizzaga&lt;br /&gt;
    155 0 1 Confuse&lt;br /&gt;
    156 0 1 Flare&lt;br /&gt;
    157 0 1 Dispel&lt;br /&gt;
    158 0 1 Slow&lt;br /&gt;
    159 0 1 Quake&lt;br /&gt;
    160 0 1 Curaga&lt;br /&gt;
    161 0 1 Tornado&lt;br /&gt;
    162 0 0 Full-Life&lt;br /&gt;
    163 0 1 Reflect&lt;br /&gt;
    164 0 0 Aura&lt;br /&gt;
    165 0 0 Quake&lt;br /&gt;
    166 0 1 Double&lt;br /&gt;
    167 0 1 Break&lt;br /&gt;
    168 0 0 Meteor&lt;br /&gt;
    169 0 0 Ultima&lt;br /&gt;
    170 0 0 Triple&lt;br /&gt;
    171 0 1 Confuse&lt;br /&gt;
    172 0 1 Blind&lt;br /&gt;
    173 1 1 Quake&lt;br /&gt;
    174 0 1 Sleep&lt;br /&gt;
    175 0 1 Silence&lt;br /&gt;
    176 1 1 Flare&lt;br /&gt;
    177 0 1 Death&lt;br /&gt;
    178 0 1 Drain&lt;br /&gt;
    179 1 1 Pain&lt;br /&gt;
    180 0 1 Berserk&lt;br /&gt;
    181 0 1 Float&lt;br /&gt;
    182 0 1 Zombie&lt;br /&gt;
    183 0 1 Meltdown&lt;br /&gt;
    184 1 0 Ultima&lt;br /&gt;
    185 1 1 Tornado&lt;br /&gt;
    186 1 1 Quake&lt;br /&gt;
    187 1 1 Meteor&lt;br /&gt;
    188 1 1 Holy&lt;br /&gt;
    189 1 1 Flare&lt;br /&gt;
    190 1 1 Aura&lt;br /&gt;
    191 1 1 Ultima&lt;br /&gt;
    192 1 1 Triple&lt;br /&gt;
    193 1 1 Full-Life&lt;br /&gt;
    194 1 1 Tornado&lt;br /&gt;
    195 1 1 Quake&lt;br /&gt;
    196 1 1 Meteor&lt;br /&gt;
    197 1 1 Holy&lt;br /&gt;
    198 1 1 Flare&lt;br /&gt;
    199 1 1 Aura&lt;br /&gt;
    200 1 1 Ultima&lt;br /&gt;
    201 1 1 Triple&lt;br /&gt;
    202 1 1 Full-Life&lt;br /&gt;
    203 1 1 Tornado&lt;br /&gt;
    204 1 1 Quake&lt;br /&gt;
    205 1 1 Meteor&lt;br /&gt;
    206 1 1 Holy&lt;br /&gt;
    207 1 1 Flare&lt;br /&gt;
    208 1 1 Aura&lt;br /&gt;
    209 1 1 Ultima&lt;br /&gt;
    210 1 1 Triple&lt;br /&gt;
    211 1 1 Full-Life&lt;br /&gt;
    212 1 1 Ultima&lt;br /&gt;
    213 1 1 Meteor&lt;br /&gt;
    214 1 1 Holy&lt;br /&gt;
    215 1 1 Flare&lt;br /&gt;
    216 1 1 Aura&lt;br /&gt;
    217 1 1 Ultima&lt;br /&gt;
    218 1 1 Triple&lt;br /&gt;
    219 1 1 Full-Life&lt;br /&gt;
    220 1 1 Meteor&lt;br /&gt;
    221 1 1 Holy&lt;br /&gt;
    222 1 1 Triple&lt;br /&gt;
    223 1 1 Aura&lt;br /&gt;
    224 1 1 Ultima&lt;br /&gt;
    225 1 1 Triple&lt;br /&gt;
    226 1 1 Full-Life&lt;br /&gt;
    227 1 1 Meteor&lt;br /&gt;
    228 1 1 Holy&lt;br /&gt;
    229 1 1 Flare&lt;br /&gt;
    230 1 1 Aura&lt;br /&gt;
    231 1 1 Ultima&lt;br /&gt;
    232 1 1 Triple&lt;br /&gt;
    233 1 1 Full-Life&lt;br /&gt;
    234 1 1 Meteor&lt;br /&gt;
    235 1 1 Triple&lt;br /&gt;
    236 1 1 Flare&lt;br /&gt;
    237 1 1 Aura&lt;br /&gt;
    238 1 1 Ultima&lt;br /&gt;
    239 1 1 Triple&lt;br /&gt;
    240 1 1 Full-Life&lt;br /&gt;
    241 1 1 Meteor&lt;br /&gt;
    242 1 1 Holy&lt;br /&gt;
    243 1 1 Flare&lt;br /&gt;
    244 1 1 Aura&lt;br /&gt;
    245 1 1 Ultima&lt;br /&gt;
    246 0 1 Blizzard&lt;br /&gt;
    247 0 1 Cure&lt;br /&gt;
    248 1 1 Dispel&lt;br /&gt;
    249 1 1 Confuse&lt;br /&gt;
    250 0 0 Meteor&lt;br /&gt;
    251 0 0 Double&lt;br /&gt;
    252 0 0 Aura&lt;br /&gt;
    253 0 0 Holy&lt;br /&gt;
    254 0 0 Flare&lt;br /&gt;
    255 0 0 Ultima&lt;br /&gt;
    256 1 1 Scan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Halfer:&lt;br /&gt;
X = rowBlockAmount, which is 4 times segment amount so 4 * 32 = 128 or 0x80. The last bit tells which row of the two we are on, first or second. The range of top row is from 0x00 - 0x7F and second row's 0x80 - 0xFF.&lt;br /&gt;
&lt;br /&gt;
Y is incremented whenever X goes over 0xFF.&lt;br /&gt;
&lt;br /&gt;
=== Section 36-37: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 37. (like sections 8, 10 and 12)&lt;br /&gt;
&lt;br /&gt;
=== Section 38: World map textures archive ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). This is one of the larger sections in file. THIS section is responsible for 1/2 world map textures (Those are really used in-game). There is 36 textures inside as of original release. Also, sea, beach and special effects texture is present. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (144 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 39: Textures - roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for train track textures, road textures, bridge train track texture (the one that gets through FH). &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (52 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 40: One world map texture/NULL ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to only one .TIM texture. This is the first texture that is in [[FF8/WorldMap_texl|texl.obj]] or wmsetxx.obj/Section 38. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Various (16384 originally)&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|-&lt;br /&gt;
| After Texture&lt;br /&gt;
| Next offset-(header+TIM texture)&lt;br /&gt;
| NULL data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 41: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 42: Vehicle and object textures ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for vehicles, world map objects textures (Balamb mobile, Galbadia mobile, Balamb halo ring, cactuar statue, lunatic pandora...)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (132 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 43: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 44: Music related  ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;br /&gt;
&lt;br /&gt;
=== Section 45-48: Sound/music related ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;/div&gt;</summary>
		<author><name>Myst6re</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5609</id>
		<title>FF8/WorldMap wmsetxx</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF8/WorldMap_wmsetxx&amp;diff=5609"/>
		<updated>2020-01-05T22:11:13Z</updated>

		<summary type="html">&lt;p&gt;Myst6re: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Info==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj (where xx may refer to gr,us,it,fr,sp) is a multi-data world map file containing many core functions and 3D objects. This file contains almost everything: sounds, scripts, dialogs, texts, textures, models- all contained in one file. Main differences between en/it/gr/sp/fr are localized dialogs, so next sections have different offsets. Offsets before this are all the same. [[FF8/WorldMap_wmset|Wmset.obj]] is probably never used in-game and is leftover. Dialogs in lang-en/wmset.obj are in english, but the file is different from wmsetus.obj.&lt;br /&gt;
&lt;br /&gt;
==General structure==&lt;br /&gt;
&lt;br /&gt;
WMSETxx.obj is made from 48 sections. File starts with header, that has 48*4 bytes. Every offset is 4 bytes long. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section 1&lt;br /&gt;
|-&lt;br /&gt;
| SectNmbr * 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Section SectNmbr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The last section is offset 188. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Section 1: World map encounter data supplier ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| FileSize (this+4)&lt;br /&gt;
|-&lt;br /&gt;
| 4 + (entryID * 4)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| EncounterIdSupplierDataProvider_Entry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''EncounterIdSupplierDataProvider_Entry''':&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Byte&lt;br /&gt;
| regionID&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Byte&lt;br /&gt;
| groundID&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Byte&lt;br /&gt;
| ESI*&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Byte&lt;br /&gt;
| unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ESI is the name of the register that holds the third byte parameter of section1. It is used later to determine the encounter. When the character makes a step on worldmap, the game loops through whole section1 data and tests:&lt;br /&gt;
&lt;br /&gt;
if the character is walking on groundID and regionID, if yes, then ESI is our multiplier to section4 containing encounters. Example entry:&lt;br /&gt;
&lt;br /&gt;
00 06 00 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 0 and walks on ground with ID 6 (as far as I remember it's Balamb Plains or forest) then get encounters from section4 that start at 0*8; Other example:&lt;br /&gt;
&lt;br /&gt;
04 1B 24 00:&lt;br /&gt;
&lt;br /&gt;
If Squall is in region = 4 and walks on ground with ID 0x1B, then get encounters from section4 that starts at 0x24*8 = 288&lt;br /&gt;
&lt;br /&gt;
That way the engine can play encounter based on place you are, because if you're walking on Balamb beach, then engine should play encounter with beach, not snow plains. That's why if you change the for one map portion you can totally erase encounters in this region, because in example region 4 that may be Centra regions does not contain any BalambPlains, so there is no entry in section1 and therefore the engine finds the region encounters, but doesn't find the encounter entries for BalambPlainsGround in Centra ruins (this is totally an example).&lt;br /&gt;
&lt;br /&gt;
=== Section 2: World map Regions ===&lt;br /&gt;
&lt;br /&gt;
Nothing much to write here.&lt;br /&gt;
32x24 world map. Just open it via hexEditor.&lt;br /&gt;
It's just bitmap (you can even convert bytes to image and mini worldmap will show)&lt;br /&gt;
Every single byte is regionID used for example in section1 for encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 3: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 4: World Map Encounters ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| section1.ESI * 8&lt;br /&gt;
| 8 bytes&lt;br /&gt;
| 2 * 4 bytes of encounters from scene.out&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It's as simple as that:&lt;br /&gt;
Squall makes step on worldmap, game gets Squall position and tests it with section2 containing region, then loops through section1 and tests groundID and regionID to find ESI multiplier, if random number generates battle, then game gets to section4 using ESI determined earlier with Squall step on world map and plays randomly one of the eight encounters (because one ESI/encounterEntry is 8 bytes, where first four are the most common, other 2 medium and last 2 rarest)&lt;br /&gt;
&lt;br /&gt;
=== Section 5: UNUSED ===&lt;br /&gt;
Unused in-game&lt;br /&gt;
&lt;br /&gt;
=== Section 6: World Map Encounters (after Lunar Cry) ===&lt;br /&gt;
&lt;br /&gt;
Same as Section 4, but patched with Lunar Cry encounters.&lt;br /&gt;
&lt;br /&gt;
=== Section 7-8: roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
Related with Section 39. Maybe scripts in section 8. (like sections 10, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
Script format (ScriptsCount must be guessed):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| List of script positions, not always sorted (ended with 0x00000000)&lt;br /&gt;
|-&lt;br /&gt;
| 4 * ScriptsCount + 4&lt;br /&gt;
| Varies + 4&lt;br /&gt;
| Scripts data (ended with 0x00000000)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In script data you have 4-bytes opcodes, the first byte is the identifier, and the last two bytes are the parameter (the second by is always 0xFF).&lt;br /&gt;
Scripts always start with 0x01 opcode, and finish with 0x16 opcode. There is always one 0x04 opcode inside.&lt;br /&gt;
For now most is unknown, I only understood that 0x2B opcode refer to scene ID in its parameter (you can find UFO, Koyo-K and Lac Obel battles in Section 32).&lt;br /&gt;
&lt;br /&gt;
=== Section 9: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 10-11: UNKNOWN (Related to Squall model) ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 10. (like sections 8, 12 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 12-13: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 12. (like sections 8, 10 and 32)&lt;br /&gt;
&lt;br /&gt;
=== Section 14: Side quests texts/tialogs ===&lt;br /&gt;
&lt;br /&gt;
This section provides dialogs on world map used in side quests.&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 …+-1 Airstation5 … 7  Get off…YesNo5 + 7  Get off…YesNo5 - 7  Get off…YesNo”Bound for 5 4 7“Pay 4111 Gil to rideDon't ride”&lt;br /&gt;
 Bound for 5 3 7“Pay 4111 Gil to rideDon't ride”Bound for 5 ! 7“Pay 4111 Gil to rideDon't ride7 ”You don't have enough money“&lt;br /&gt;
 Selphie ”C'mon?  To the 5Missile Base7?“ n Soldier”Give it up“ n Soldier”I'm busy“ n Soldier”There's no way you're getting &lt;br /&gt;
 through?“ n Soldier”This is our duty“ n Soldier”Just like always“ n Soldier”How 'bout a date…“Found a draw point?But no one &lt;br /&gt;
 can drawFound a draw point?Nothing thereFound a draw point? foundCan't carry anymoreYou do not have DrawWho will draw…Don't &lt;br /&gt;
 draw  stocked 1+-=*&amp;amp;??()·.71Out of/  …?3  7remaining …YesNo#‘2 How to drive 7          4!Back  7!Forward          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 Garden Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on&lt;br /&gt;
 :off Steer with directional button 1!Change POV2 How to ride a Chocobo 7 6!Get off Run with directional button 1!Change POV2&lt;br /&gt;
  Spaceship Controls 7          4!Back  7!Forward  5!To cockpit          6!Get on:off Directional button to go up:down:steer 1!&lt;br /&gt;
 Change POV)This place looksfamiliar·It looks abandonedand run=down”Huh?…“Nida”The gauge is going berserk?…“)Shouldn't be getting&lt;br /&gt;
  off·This must be Obel LakeThrow a rockTry hummingIt's Obel LakeThrow a rockTry hummingA black shadow rose to the surfaceThrow&lt;br /&gt;
  a rockTry humming againThe black shadow disappearedThe rock sank .The rock skipped once . .The rock skipped twice . . .The &lt;br /&gt;
 rock skipped 4 times . . . .The rock skipped 5 times . . . . .The rock skipped 6 times . . . . . .The rock skipped 7 times . &lt;br /&gt;
 . . . . .The rock skippedmany many timesBlack Shadow”Hello human  What a lovely tune“A black shadow rose to the surface”Hello?“)&lt;br /&gt;
 There's something large there·”Thanks for speaking to me again?“”Umm“”Can you do me a favor…“)What is it·)I don't want to hear &lt;br /&gt;
 it·”It's my friend Mr Monkey Can you find him for me…“”Please“”“”Mr Monkey should be in a forest somewhere Keep walking around &lt;br /&gt;
 and I'm sure you'll find him“”Oh yeah do you know what…“”Oh yeah“”What a beautiful day“”I wonder what it means…“”Mysterious &lt;br /&gt;
 writing on the rock“”Mr Monkey had a rock like this I think“”Take a break at the railroad bridge“”Take some time off at Eldbeak&lt;br /&gt;
  Peninsula“”I bet it's a wonderful place“Relayed the whereabouts of Mr Monkey”Thank you?“There's the monkey?Throw a rockSing”&lt;br /&gt;
 You suck?“The monkey disappeared into the forestThe monkey told you off and disappeared into the forest”Ahhh?  Darn it? &lt;br /&gt;
 Y=You're just a big loser?  I'm able to skip the rock as many times as I want? So there? Ha=Ha? Loser? Dork? Idiot? Your mom &lt;br /&gt;
 wears combat boots?“”OUCH? D=Darn it? You're gonna pay for that?“The monkey threw a rock at you and ran?Upon inspecting the &lt;br /&gt;
 rockit looks man=made andhas some carving on itYou found the monkey”You big dork???“Almost?The monkey ran awayWhat's this?…You&lt;br /&gt;
  found a piece of rock by your footIt looks man=made andhas some carving on itBut it was just a rockA bird is warming an egg&lt;br /&gt;
 Check it outLeave it aloneIt seems that the birdwent to go look for foodYou found a piece of rock thereNothing there1  &lt;br /&gt;
 S T S L R M 1  U R H A E O 1  R E A I D R 1  E A S N P D 1  S T S L R M 71  U R H A E O 71  R E A I D R 71  E A S N P D 7”&lt;br /&gt;
 At the beach in 2 something special washes ashore at times“”You'll find something on an island east of 4 too“”There's also &lt;br /&gt;
 something on top of a mountain with a lake and cavern“”Back in the day south of here there used to be a small but beautiful &lt;br /&gt;
 village surrounded by deep forests Everyone lived a happy life there“There is a stone pillarIf you look closelythere's something&lt;br /&gt;
  written on it”TRETIMEASUREAT MINOFFDEISLE“)…·Found 9?Found L?Found ?Found 1?That sound disappeared into the lakeThere are many&lt;br /&gt;
  multicoloredrocks with faces all over the placeThe black=faced rock tells you sternly”The treasure is probably in the direction&lt;br /&gt;
  of the North Star“The white=faced rock tells you coldly”It's east“The white=faced rock tells you coldly”It's west“The white=&lt;br /&gt;
 faced rock tells you coldly”It's south“The white=faced rock tells you coldly”It's north“The red=faced rock tells you angrily”&lt;br /&gt;
 The blue one's a liar?“The red=faced rock tells you angrily”The treasure's to the east?“The red=faced rock tells you angrily”&lt;br /&gt;
 The treasure's to the west?“The red=faced rock tells you angrily”The treasure's to the south?“The red=faced rock tells you angrily&lt;br /&gt;
 ”The treasure's to the north?“The red=faced rock tells you angrily”The treasure's not here?“The blue=faced rock whispers”&lt;br /&gt;
 I don't know where the treasure is“The blue=faced rock whispers”People call us ‘The Liar Rocks'“The blue=faced rock whispers”&lt;br /&gt;
 Some of us just repeat the same thing“The blue=faced rock whispers”Some of us just talk nonsense“The blue=faced whispers”&lt;br /&gt;
 Some of us just say the opposite of what we mean“This place just has rubble lying among the grassAbsolutely nothing)&lt;br /&gt;
 Is thispart of something…·)Seems like the same rock     I picked up before·)This must be all of them·”This must be all the rocks““&lt;br /&gt;
 If he's not around perhaps he took a train towards Dollet…“)I remember now This is Edea's house I get the feeling there's something&lt;br /&gt;
 nearby Something hugenearby·&lt;br /&gt;
&lt;br /&gt;
=== Section 15: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 16: World map objects data ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to Model structure (below)&lt;br /&gt;
|-&lt;br /&gt;
| Various&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| Models (see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Researched by: Vehek (http://forums.qhimm.com/index.php?topic=13799.msg193791#msg193791)&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u16 triangle_count;&lt;br /&gt;
 u16 quad_count;&lt;br /&gt;
 u16 texture_page;&lt;br /&gt;
 u16 vertex_count;&lt;br /&gt;
 triangle triangleData[triangle_count];&lt;br /&gt;
 quad quadData[quad_count];&lt;br /&gt;
 vertex verticeData[vertex_count];&lt;br /&gt;
 } model&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[3];&lt;br /&gt;
 u8 semitransp; //Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 } triangle&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 u8 vertexIndices[4];&lt;br /&gt;
 u8 texcoords1[2];&lt;br /&gt;
 u8 texcoords2[2];&lt;br /&gt;
 u8 texcoords3[2];&lt;br /&gt;
 u8 texcoords4[2];&lt;br /&gt;
 u16 CLUT_ID;&lt;br /&gt;
 u8 semitransp;//Sets semitransparency if bit 0x01 is set&lt;br /&gt;
 u8 unknown&lt;br /&gt;
 } quad&lt;br /&gt;
&lt;br /&gt;
 struct&lt;br /&gt;
 {&lt;br /&gt;
 s16 coordinates[3];&lt;br /&gt;
 u16 unknown;&lt;br /&gt;
 }vertex&lt;br /&gt;
&lt;br /&gt;
=== Section 17-19: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 20: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Bunch of AKAO frames headers packed&lt;br /&gt;
&lt;br /&gt;
=== Section 21: AKAO ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO header&lt;br /&gt;
&lt;br /&gt;
=== Section 22-28: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 29: World map &amp;quot;water block&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Section 29 is a duplicate segment from &amp;quot;full&amp;quot; water block (not segment!) used in world map (wmx.obj).&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Whenever landing or entering ragnarok, the engine does not load segments from wmx.obj until the transition is done.&amp;lt;/s&amp;gt; Whenever transforming viewport at certain speed, the engine can't keep up with loading the new segments/blocks. The areas that are not loaded but should be rendered in the same time are filled with this block. This can be seen when the camera view is set so that it rotates during ragnarok entering/exiting transition or placing character to different area.&lt;br /&gt;
&lt;br /&gt;
=== Section 30: NULL ===&lt;br /&gt;
&lt;br /&gt;
4 Bytes NULL&lt;br /&gt;
&lt;br /&gt;
=== Section 31: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 32: Text- Location names ===&lt;br /&gt;
&lt;br /&gt;
This section provides location names (probably for Ragnarok landing?)&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to dialog/text portions. &lt;br /&gt;
&lt;br /&gt;
Dumped data from wmsetus.obj:&lt;br /&gt;
 ?2344 Forest  Garden  Garden: Station!9Missile Base7WinhillEdea's House%:&lt;br /&gt;
 51 Seaside Station1 City1: AirstationLunatic Pandora Laboratory=1&lt;br /&gt;
 Sorceress MemorialTears' Point1 Seaside Station=Tears' PointTears' &lt;br /&gt;
 PointLunatic Pandora Laboratory1:Airstation1 Sorceress Memorial&lt;br /&gt;
&lt;br /&gt;
=== Section 33-34: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 35: World Map draw points ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| 0x2C&lt;br /&gt;
| UNUSED&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C + (thisEntryID * 4)&lt;br /&gt;
| DWORD&lt;br /&gt;
| DrawPointVariable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''DrawPointVariable''':&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| WORD&lt;br /&gt;
| World block X&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| WORD&lt;br /&gt;
| World block Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Magic contained in world map draw point: (ID is: section35 magic entry+0x80 [add 1 to be correct with list below])&lt;br /&gt;
    129 0 1 Cure&lt;br /&gt;
    130 0 1 Esuna&lt;br /&gt;
    131 0 1 Thunder&lt;br /&gt;
    132 0 1 Fira&lt;br /&gt;
    133 0 1 Thundara&lt;br /&gt;
    134 0 1 Blizzara&lt;br /&gt;
    135 0 1 Blizzard&lt;br /&gt;
    136 0 1 Fire&lt;br /&gt;
    137 0 1 Cure&lt;br /&gt;
    138 0 1 Water&lt;br /&gt;
    139 0 1 Cura&lt;br /&gt;
    140 0 1 Esuna&lt;br /&gt;
    141 0 1 Scan&lt;br /&gt;
    142 0 1 Shell&lt;br /&gt;
    143 0 1 Haste&lt;br /&gt;
    144 0 1 Aero&lt;br /&gt;
    145 0 1 Bio&lt;br /&gt;
    146 0 1 Life&lt;br /&gt;
    147 0 1 Demi&lt;br /&gt;
    148 0 1 Protect &lt;br /&gt;
    149 0 1 Holy &lt;br /&gt;
    150 0 1 Thundaga&lt;br /&gt;
    151 0 1 Stop&lt;br /&gt;
    152 0 1 Firaga&lt;br /&gt;
    153 0 1 Regen&lt;br /&gt;
    154 0 1 Blizzaga&lt;br /&gt;
    155 0 1 Confuse&lt;br /&gt;
    156 0 1 Flare&lt;br /&gt;
    157 0 1 Dispel&lt;br /&gt;
    158 0 1 Slow&lt;br /&gt;
    159 0 1 Quake&lt;br /&gt;
    160 0 1 Curaga&lt;br /&gt;
    161 0 1 Tornado&lt;br /&gt;
    162 0 0 Full-Life&lt;br /&gt;
    163 0 1 Reflect&lt;br /&gt;
    164 0 0 Aura&lt;br /&gt;
    165 0 0 Quake&lt;br /&gt;
    166 0 1 Double&lt;br /&gt;
    167 0 1 Break&lt;br /&gt;
    168 0 0 Meteor&lt;br /&gt;
    169 0 0 Ultima&lt;br /&gt;
    170 0 0 Triple&lt;br /&gt;
    171 0 1 Confuse&lt;br /&gt;
    172 0 1 Blind&lt;br /&gt;
    173 1 1 Quake&lt;br /&gt;
    174 0 1 Sleep&lt;br /&gt;
    175 0 1 Silence&lt;br /&gt;
    176 1 1 Flare&lt;br /&gt;
    177 0 1 Death&lt;br /&gt;
    178 0 1 Drain&lt;br /&gt;
    179 1 1 Pain&lt;br /&gt;
    180 0 1 Berserk&lt;br /&gt;
    181 0 1 Float&lt;br /&gt;
    182 0 1 Zombie&lt;br /&gt;
    183 0 1 Meltdown&lt;br /&gt;
    184 1 0 Ultima&lt;br /&gt;
    185 1 1 Tornado&lt;br /&gt;
    186 1 1 Quake&lt;br /&gt;
    187 1 1 Meteor&lt;br /&gt;
    188 1 1 Holy&lt;br /&gt;
    189 1 1 Flare&lt;br /&gt;
    190 1 1 Aura&lt;br /&gt;
    191 1 1 Ultima&lt;br /&gt;
    192 1 1 Triple&lt;br /&gt;
    193 1 1 Full-Life&lt;br /&gt;
    194 1 1 Tornado&lt;br /&gt;
    195 1 1 Quake&lt;br /&gt;
    196 1 1 Meteor&lt;br /&gt;
    197 1 1 Holy&lt;br /&gt;
    198 1 1 Flare&lt;br /&gt;
    199 1 1 Aura&lt;br /&gt;
    200 1 1 Ultima&lt;br /&gt;
    201 1 1 Triple&lt;br /&gt;
    202 1 1 Full-Life&lt;br /&gt;
    203 1 1 Tornado&lt;br /&gt;
    204 1 1 Quake&lt;br /&gt;
    205 1 1 Meteor&lt;br /&gt;
    206 1 1 Holy&lt;br /&gt;
    207 1 1 Flare&lt;br /&gt;
    208 1 1 Aura&lt;br /&gt;
    209 1 1 Ultima&lt;br /&gt;
    210 1 1 Triple&lt;br /&gt;
    211 1 1 Full-Life&lt;br /&gt;
    212 1 1 Ultima&lt;br /&gt;
    213 1 1 Meteor&lt;br /&gt;
    214 1 1 Holy&lt;br /&gt;
    215 1 1 Flare&lt;br /&gt;
    216 1 1 Aura&lt;br /&gt;
    217 1 1 Ultima&lt;br /&gt;
    218 1 1 Triple&lt;br /&gt;
    219 1 1 Full-Life&lt;br /&gt;
    220 1 1 Meteor&lt;br /&gt;
    221 1 1 Holy&lt;br /&gt;
    222 1 1 Triple&lt;br /&gt;
    223 1 1 Aura&lt;br /&gt;
    224 1 1 Ultima&lt;br /&gt;
    225 1 1 Triple&lt;br /&gt;
    226 1 1 Full-Life&lt;br /&gt;
    227 1 1 Meteor&lt;br /&gt;
    228 1 1 Holy&lt;br /&gt;
    229 1 1 Flare&lt;br /&gt;
    230 1 1 Aura&lt;br /&gt;
    231 1 1 Ultima&lt;br /&gt;
    232 1 1 Triple&lt;br /&gt;
    233 1 1 Full-Life&lt;br /&gt;
    234 1 1 Meteor&lt;br /&gt;
    235 1 1 Triple&lt;br /&gt;
    236 1 1 Flare&lt;br /&gt;
    237 1 1 Aura&lt;br /&gt;
    238 1 1 Ultima&lt;br /&gt;
    239 1 1 Triple&lt;br /&gt;
    240 1 1 Full-Life&lt;br /&gt;
    241 1 1 Meteor&lt;br /&gt;
    242 1 1 Holy&lt;br /&gt;
    243 1 1 Flare&lt;br /&gt;
    244 1 1 Aura&lt;br /&gt;
    245 1 1 Ultima&lt;br /&gt;
    246 0 1 Blizzard&lt;br /&gt;
    247 0 1 Cure&lt;br /&gt;
    248 1 1 Dispel&lt;br /&gt;
    249 1 1 Confuse&lt;br /&gt;
    250 0 0 Meteor&lt;br /&gt;
    251 0 0 Double&lt;br /&gt;
    252 0 0 Aura&lt;br /&gt;
    253 0 0 Holy&lt;br /&gt;
    254 0 0 Flare&lt;br /&gt;
    255 0 0 Ultima&lt;br /&gt;
    256 1 1 Scan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Halfer:&lt;br /&gt;
X = rowBlockAmount, which is 4 times segment amount so 4 * 32 = 128 or 0x80. The last bit tells which row of the two we are on, first or second. The range of top row is from 0x00 - 0x7F and second row's 0x80 - 0xFF.&lt;br /&gt;
&lt;br /&gt;
Y is incremented whenever X goes over 0xFF.&lt;br /&gt;
&lt;br /&gt;
=== Section 36-37: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
Maybe scripts in section 37. (like sections 8, 10 and 12)&lt;br /&gt;
&lt;br /&gt;
=== Section 38: World map textures archive ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). This is one of the larger sections in file. THIS section is responsible for 1/2 world map textures (Those are really used in-game). There is 36 textures inside as of original release. Also, sea, beach and special effects texture is present. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (144 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 39: Textures - roads, train track, bridge ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for train track textures, road textures, bridge train track texture (the one that gets through FH). &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (52 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 40: One world map texture/NULL ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to only one .TIM texture. This is the first texture that is in [[FF8/WorldMap_texl|texl.obj]] or wmsetxx.obj/Section 38. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Various (16384 originally)&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|-&lt;br /&gt;
| After Texture&lt;br /&gt;
| Next offset-(header+TIM texture)&lt;br /&gt;
| NULL data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 41: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 42: Vehicle and object textures ===&lt;br /&gt;
&lt;br /&gt;
This section starts with header pointing to '''relative''' offsets to .TIM textures. When engine reads offset as 0 (00 00 00 00) then ends reading offsets (so 0 is end of offset list). THIS section is responsible for vehicles, world map objects textures (Balamb mobile, Galbadia mobile, Balamb halo ring, cactuar statue, lunatic pandora...)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| Relative offset to texture&lt;br /&gt;
|-&lt;br /&gt;
| Various (132 originally)&lt;br /&gt;
| 4 bytes&lt;br /&gt;
| '00 00 00 00' - offset list end&lt;br /&gt;
|-&lt;br /&gt;
| Offset pointed by header&lt;br /&gt;
| Various&lt;br /&gt;
| .TIM texture (10 00 00 00    08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Section 43: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
=== Section 44: UNKNOWN, music related ===&lt;br /&gt;
&lt;br /&gt;
=== Section 45-47: UNKNOWN ===&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
=== Section 48: AKAO frame ===&lt;br /&gt;
&lt;br /&gt;
Starts with AKAO&lt;/div&gt;</summary>
		<author><name>Myst6re</name></author>
		
	</entry>
</feed>