[FF8] world map and objects (world.fs)

  • Thread starter Thread starter Halfer
  • Start date Start date
Status
Not open for further replies.
Halfer, could you upload a flat walkable ground you posted in first screenshot here? Working with smaller data is always better. Thanks.

And ya. Just tested, and setting zoom under 300 and flew from bridge to Esthar. Crashed. Weird.

I attached Visual Studio debugger to FF8. At first time the game gone crazy, the bridge just dissapeared (no rail texture, just black) and I just teleported to Balamb (Sic!). However, my party was empty (no visible characters), but still I managed to get out of town and just appeared as Squall in front of Balamb on world map. My ragnarok of course was flying in sky in last position... Weird.
Second time I finally ran to exception.

Code: [Select]
Code:
First-chance exception at 0x00545F36 in FF8_EN.exe: 0xC0000005: Access violation reading location 0x36382834.
I now have memory locations I can investigate.

0x00545F36 is MOV opcode.
NOP'ing freezes game.
 
Last edited:
http://pastebin.com/GZVNkcL5

Here you go, one block, remember that there are 16 blocks in one section. I guess this was what you meant? The texture section (last 4 bytes of each triangle) has been changed to "88 88 88 88", makes it look like in the very first post and is landable and walkable. Hopefully you can insert the values as in text. At least HxD editor can do this.

Yeah the crash was pretty odd. It seemed like the memory couldn't keep up with the data or something like that.
 
Last edited:
I finally made it! I tricked engine to think I am ragnarok, so I can walk on everything I want (sea, mountains). I've been hunting this for days!

Here, in FF8_EN.EXE (Steam) ASM opcode:
FF8_EN.exe+13E370 - mov ebx,[FF8_EN.exe+1C409E0]   (0x0053E370)

Halfer, your memory theory is correct. Game just can't keep up so much memory (because the variables are static) and overwrites some core data that is in fact pointer and orders engine to read memory at ~0x7... (but it's unallocated, so it's null, and access violation exception is fired)

Also this:
0x020409E0 in memory tracks your current vehicle status. Here's the list:
#HEX!
Code: [Select]
Code:
00 - Squall on feet20 - invisible low fuel car30 - Balamb Garden31 - *Crash*32 - Ragnarok
Some variables makes Squall go maximally undermap, that's because vehicle doesn't exist on worldmap. For example if you rent a car, then some variable instead of digging you up to the ground just warps you to this car. Unfortunately, I lost "Blue sky car" from Balamb variable. Also warping should work on whole map (Vehicle is warping to your location). You can place Balamb next to ragnarok in seconds.
 
Code: [Select]
Code:
00 - Squall on feet20 - invisible low fuel car30 - Balamb Garden31 - *Crash*32 - Ragnarok
Good job maki!

The list isn't supposed to contain something for chocobo as well, isn't? (maybe 31 is that or there is something missing)

I wonder what happen when you're not driving the vehicles .. (happen whith garden car , boat during dollet mission and trains)..

Actually driving the trains or the assault boat would be damn cool XD
 
Ye, it warps you to actually available on map cars and vehicles. There must be variables for chocobo, cars, trains, even boat or "vessel" as they call it in-game. I'll try to find them, gather in one place, make a documentation and save. :)

@UPDATE - Aaaand, You we're right! 31 is for chocobo! Also 10 is for train, but it's completely uncontrollable and problematic.
22 for blue sky car
I could memory hack to swap models. (Just like I did with world map chunks)
Saves does not contain defiinition for Chocobo. Unfortunately.


Today's video:

I'm driving train and flying with Lunatic Pandora. :D
 
Last edited:
Great job! :D

That blue sky car is probably the model for the thing that is blocking access to towns in disc 4 :P
 
I created a tool that converts the world map geometry into known Wavefront .obj format. It's available for download in the Tools section.
 
Wow! First post and releases full tool for world map conversion. You are good. :3
Thank you!
 
I've done some progress with my texture exporting using Blue's program as a base:

188b4f7d8a2356369f9f89a5ac1ed1a0.jpg


Texture coordinates should be correct right now.
I still need to figure out the process of changing texture page and CLUT info on the fly while exporting. It may or may not take a while, but after that I'll release an updated exporter ;).

EDIT: Some eye candy without CLUT info:

c9d3d172bc94ed1327566bfc2752c9ec.png

4eec5ddaaa9eb775b34e2324fe232d0d.jpg


The program now automatically switches texture pages, however water textures don't still work because they are presented a bit differently due to their animation data, but i'm gonna add it too (without animation of course). aaand they are done.

And of course the next thing is to take CLUT info into account. I'm still not entirely sure how to make this happen :(. The image should be somehow exported as 128x128 whereas every tile has own  CLUT already corrected.
 
Last edited:
And off course the next thing is to take CLUT info into account. I'm still not entirely sure how to make this happen :(. The image should be somehow exported as 128x128 whereas every tile has own  CLUT already corrected.
Don't worry for that.. I'm not expert about how to automatically do it but get the correct texture for these maps is pretty simple (it just take some time) because the textures are always in a 4x4 grid for the hi-res in textL file or 4x8 grid (for the low res version.. in wmsetus? not sure)

Beside that luckly  the "right color clut position" always follow the same order for these textures... I mean the first clut is always the top-left piec of the grid and so on..

You can see some sample of the "already correct" textures I made some time ago on this ol post of mine:

https://www.ff7catalog.com/posts/168750/

If you need them for testing purpose I can send you the final textures already processed I made  :)

P.S.

this new version of the tool is already avaiable somewhere for download?

I'd like to try it :)
 
Yeah, I'm aware of the positions, thanks to timviewer, but I'm pretty sure that it is possible to do it automatically, though with some work. Well I'll have to look on that later on.

Yeah I'd like to test the processed textures if you could send them somehow to me. I'll release the program probably today after making sure that I haven't made any UV calculation errors so the corrected textures would be nice :).
 
Yeah, I'm aware of the positions, thanks to timviewer, but I'm pretty sure that it is possible to do it automatically, though with some work. Well I'll have to look on that later on.
It's possible for sure but I have no idea about how to write a tool that automatically process tim files..at the time I created a simple script/action sequence in photoshop to make the work faster.

Yeah I'd like to test the processed textures if you could send them somehow to me. I'll release the program probably today after making sure that I haven't made any UV calculation errors so the corrected textures would be nice :).
I'll upload them somewhere in a zip and send you a link as soon as I get back home :)
 
Seems like this will take at least a day still, it is mostly working correctly like this:
f19936a03f92d912f3fd30fbef30209c.jpg


I still do have some problems with galbadia area and some textures for some reason. Have to think about them tomorrow
 
Glad to see this :)

At the moment I just wonder about Balamb Garden Mesh.. I can see only the "hole".. and there is a copy of the same zone but whith the garden in the right place...
so the map has some "interchangable" chunks.. interesting! :D

Can't wait to see the tool complete to place every "alternative" mesh to the right place just to see what changes from one to the other  :P
 
Well you can view them later with textures once I get this fixed :P they are found under the world map.

Can't wait to see the tool complete to place every "alternative" mesh to the right place just to see what changes from one to the other  :P
Haven't really given a thought about this yet but I can see it happening with future updates ;)
 
Haven't really given a thought about this yet but I can see it happening with future updates ;)
Oh.. actually in my head I was going to do it "manually" on 3ds max.. but  of course a function in the tool would be more handy! ;D


Since I still see the untextured version right now I can just guess anyway..

Among these interchangeable zones I can recognize:

-balamb Garden  (before/after lift-off)
-galbadia Garden (before/after lift-off)
-desert prison (inground/exposed)
-missile base (before/after destruction)
-trabia garden (??)
-start of F.H. Bridge (??)
 
Last edited:
I haven't looked at those files, but what about esthar before and after entering the area?
 
So, in future we would do a complete model replacement. Unfortunately, we'd still care about limits like 0x9000h for world map segment or uint16 count of tris. I'll complete wmset.obj tool, and start with more advanced memory hack to do realtime geometry edit.
 
Well actually it is uint8 for triangles, right? But, I don't know,  that's 256 vertices for 1 block which is pretty small area by itself, but I can see what you mean.

It would be a dream come true if we get to the point where we could edit those restraints like memory caps and so on. Thinking about the PSX memory limitations which are present in the PC version also. If those can be bypassed then the true graphic overhaul can start :P.

I haven't looked at those files, but what about esthar before and after entering the area?
Yes the whole esthar continent is a part of interchangeable sections. That Trabia Garden which kaspar01 mentioned is probably a leftover from early builds replaced with the same section. It probably contained the model and textures before the missiles, but that's never seen in the game so dumping that out seems to be logical answer.
 
Last edited:
What about add a check box to make the .mtl file optional (after first export it become useless I guess and I think that choose 2 times for destination is not a good thing)?

Moreover I get an "invalid texture index" error whith some  mesh (not sure but it seems to happen when I export map not starting from 1).

Edit :

my theory about when the texture error happen was wrong.. here some example of export that gave me error:

268-268
328-328
150-151


but for example i don't get error whith 275-276 ... this is weird..
 
Last edited:
Status
Not open for further replies.
Back
Top