Important information: this site is currently scheduled to go offline indefinitely by end of the year.

[Request] Wipeout HD/Fury

Post questions about game models here, or help out others!
josema0890
n00b
Posts: 16
Joined: Sat Oct 17, 2015 8:28 am
Has thanked: 9 times
Been thanked: 8 times

Re: [Request] Wipeout HD/Fury

Post by josema0890 »

shakotay2 wrote: Sun Mar 07, 2021 7:49 am
Correct one is 0xe092:
Good morning again :D

Well, you are damn right, didn't know that i had to continue until the scrambled alphabet stops, proves that i'm dumb :D

With your correction, i got the guns of the ship so that solves the mistery.

Image

Thanks a lot again, have a good day :]

Edit: So far so good i have extracted a couple of meshes, but i'm finding some ones that are a little tricky and they are giving me the model crushed on a plane, or scrambled, and i can't find what is my error, for example:

Start Addr: 1f666 Count: 6335

FVFsize: 28 UV pos: 99
0 255

Start Addr: 227e2 Count: 2945

Image

Found it, now the ship is almost complete :D

Image

Image
josema0890
n00b
Posts: 16
Joined: Sat Oct 17, 2015 8:28 am
Has thanked: 9 times
Been thanked: 8 times

Re: [Request] Wipeout HD/Fury

Post by josema0890 »

Welp, here we are again on the stuck process.

Hi shakotay2 sorry for bothering you so much with this thread bumping, but i need your help again :(
I'm extracting the meshes from the sol_track.rcsmodel I posted earlier and i reached a point where the litE it's too small to continue with the process, so i switched to bigE and now the face indices are coherent but when i try to get the Vertex Blocks (go2) they are clunky and with a weird pattern instead of a good one.

Image

Image

How can i know how to get the correct number to use in FVFsize? (i tried increasing 1 by 1 until from 6 until i reached 255 but i didn't got any result, yes, i know i'm dumb but i had to try :D)

Am I missing some important step?

Thanks again, and sorry for bumping the thread again.

This is so far what i got from the track.rscmodel (98 objects that are speed pads and weapon pads with their position)

Image
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4284
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1146 times
Been thanked: 2242 times

Re: [Request] Wipeout HD/Fury

Post by shakotay2 »

josema0890 wrote: Tue Mar 09, 2021 6:43 amso i switched to bigE and now the face indices are coherent
don't switch the endianness! It usually remains the same for one and the same 3D format.

So it's little endian here, start address of face indices block is 0x1e0743. What changed is the FVFsize, it's 24 here.

(Learn to find patterns in vertex blocks, here from 0092C200 to the next 0092C200 there's an offset of 24 bytes.)
How can i know how to get the correct number to use in FVFsize? (i tried increasing 1 by 1 until from 6 until i reached 255
It's usually modulo 4 for floats (because float vertices consist of 3 floats, i.e. 3x4 bytes), so try 12, 16, 20, 24, 28 and so on.

(When there's additional normals and uv data in an FVF block you have to start from 32, because 12+12+8=32)
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
josema0890
n00b
Posts: 16
Joined: Sat Oct 17, 2015 8:28 am
Has thanked: 9 times
Been thanked: 8 times

Re: [Request] Wipeout HD/Fury

Post by josema0890 »

shakotay2 wrote: Tue Mar 09, 2021 9:06 am
josema0890 wrote: Tue Mar 09, 2021 6:43 amso i switched to bigE and now the face indices are coherent
don't switch the endianness! It usually remains the same for one and the same 3D format.

So it's little endian here, start address of face indices block is 0x1e0743. What changed is the FVFsize, it's 24 here.

(Learn to find patterns in vertex blocks, here from 0092C200 to the next 0092C200 there's an offset of 24 bytes.)
How can i know how to get the correct number to use in FVFsize? (i tried increasing 1 by 1 until from 6 until i reached 255
It's usually modulo 4 for floats (because float vertices consist of 3 floats, i.e. 3x4 bytes), so try 12, 16, 20, 24, 28 and so on.

(When there's additional normals and uv data in an FVF block you have to start from 32, because 12+12+8=32)
Hi Shakotay, thanks for the pointing out on how to get the FVF block size, now i'm going faster and getting more models, and i will try to do the tutorial to writting an obj converter from this tutorial to speed things and not going one by one.

viewtopic.php?p=143182#p143182

EDIT: I found you have a "crash course" too, i will have a look on that, but, for now i have 0 idea from what i read and inspected on the code.

viewtopic.php?f=29&t=12756

I don't know if i can get the UV's from the models, but for now it's a lot of help.

Thanks a lot again, i have no words for the help you gave me earlier. :drunken: :bravo:

Image
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4284
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1146 times
Been thanked: 2242 times

Re: [Request] Wipeout HD/Fury

Post by shakotay2 »

Yeah, this beast of sol_track.rcsmodel has about 2690 sub meshes. Didn't find the word after the signature to define the FVFsize of each.
edit: found the counts, FVFsize still missing

I gathered a bunch of 353 H2O files which need a correction in most cases (they have a number offset of 3000 to get them filtered, so there's not 5684 sub meshes if you thought of that).

Required corrections:
vertex count -1
or FVFsize of 20 or 24 (28 is used as default)
or
vertex address -2

Or a mix of it. :D

example sol_track_3314.h2o, corrected:

0x21DC37 1259
Vb1
24 99
0x21E60F 658
020000
0x0 255

_3337:

0x239FCB 1625
Vb1
20 99
0x23AC7F 670
020000
0x0 255

_3645:

0x2D6A63 3503
Vb1
20 99
0x2D85C3 1494
020000
0x0 255

Have fun!
.
sol_track.rcsmodel_353.zip
(Didn't care for uvs. First the FVFsizes must be clear.)
You do not have the required permissions to view the files attached to this post.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4284
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1146 times
Been thanked: 2242 times

Re: [Request] Wipeout HD/Fury

Post by shakotay2 »

calculated those FVFsizes, got many boxes/squares, a little bit disappointing, lost some hundreds after blender met the first of 2 obj files that had NANs (not-a-number) in them.
.
sol_track.jpg
I've cut the boxes down to their basements (lower part of pic), H2P files for it see my next post.
You do not have the required permissions to view the files attached to this post.
Last edited by shakotay2 on Thu Mar 11, 2021 9:00 pm, edited 2 times in total.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
josema0890
n00b
Posts: 16
Joined: Sat Oct 17, 2015 8:28 am
Has thanked: 9 times
Been thanked: 8 times

Re: [Request] Wipeout HD/Fury

Post by josema0890 »

:woah: You are a beast

The thing i was thinking about the source code of MakeH2O for the WO2048 models, is that, when you check the FVFSize on hex2obj you got an address, and if you go to that address if is correct, usually the value is 00 and in some weird cases 01, if it's wrong usually you got 0X or XX maybe a 00.

Yesterday I started to write a list of FVFSizes that i used while extracting all the models 1 by 1, because i can't understand fully the source code, the ones i used mostly are (20,24,28,40) and some of those "rare ones" if i recall correctly are (10 maybe 14 or 16 and 1 time 80).

The trick i thought that maybe is useful is, using a loop that checks all of the fvf and if the address you got is 00 and the next one is 00 or 01, then do the model (step 3) and if the check it's not correct, try again with another FVFSize (maybe an array with all the known FVFSizes and go for the next one).

For example:

For this submesh/model the FVFSize is 28

Image

But if we put a wrong FVFSize then the next address is pointing to a (vertex?) and not the start of the face indices

Image

I don't know if this way of dealing with the FVFSize it's correct or you have in mind a better one, but that's what i could reach after extracting 746 submeshes by hand and dealing a lot with the model structure.

BTW, send me a paypal address or something, and i will send u the money you need for a pack of beers, you've earned it :drunken:

Thanks a lot, and have a nice week and weekend :D

EDIT: list of models with the fvfsize fuck, i pressed submit instead of preview, i will finish it with a link to an imgur "folder" with the fvf sizes and the correct submesh shown, for now i leave a placeholder

https://imgur.com/a/0NVq0DV

Correct FVFSizes: 20, 24, 28, 40
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4284
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1146 times
Been thanked: 2242 times

Re: [Request] Wipeout HD/Fury

Post by shakotay2 »

josema0890 wrote: Thu Mar 11, 2021 8:39 pm :woah: You are a beast
yeah, sometimes... :D
The thing i was thinking about the source code of MakeH2O for the WO2048 models, is that, when you check the FVFSize on hex2obj you got an address, and if you go to that address if is correct, usually the value is 00 and in some weird cases 01, if it's wrong usually you got 0X or XX maybe a 00.
It can give you the idea but the code was for different wipeout models 5 years ago.
The trick i thought that maybe is useful is, using a loop that checks all of the fvf and if the address you got is 00 and the next one is 00 or 01,
you're going to become a coder! :) But then the order has to be vBlock/FIblock, what we have is FIblock/vBlock, that's how it worked for me, at least. But my first try was similar but led to troubles because as you may have notice, the 0000 before the start of vertex block is not always there.
I don't know if this way of dealing with the FVFSize it's correct
I'm too exhausted to check that, and
or you have in mind a better one,
yeah, it's just subtracting addresses to get the v blocksize then divide it by vertex count -> result= FVFsize. (So you don't need to try out.)
but that's what i could reach after extracting 746 submeshes by hand
I was in the fear you could do that. :D
BTW, send me a paypal address or something, and i will send u the money you need for a pack of beers, you've earned it :drunken:
thanks for the beer! (No other paying required.)
Thanks a lot, and have a nice week and weekend :D
yeah, thx, same for you!

I'll send you the code asap, maybe Saturday (too much to do tomorrow).

H2O files, only sub meshes with a vertex count > 250:
sol_track.rcsmodel_410.zip
(don't expect the numbering to be the same as in the previous zip!)

Keep in mind that the resulting obj files contain the number of the H2O file (they are created from) in their first line where 100.obj is NOT created by 100.h2o (sorry for the confusion (: ).

And don't forget to use hex2obj's SaveAs Mmesh feature.

python script for blender, multiple obj import (change of path to obj required, example D:\\', 'Work\\my_obj_folder'):

Code: Select all

import os
import bpy

# http://blender.stackexchange.com/questions/5064/batch-import-wavefront-obj
# put the location to the folder where the objs are located here in this fashion
# this line will only work on windows ie C:\objects
#path_to_obj_dir = os.path.join('C:\\', 'objects')
path_to_obj_dir = os.path.join('D:\\', 'Work\\your_obj_folder')

# get list of all files in directory
file_list = sorted(os.listdir(path_to_obj_dir))

# get a list of files ending in 'obj'
obj_list = [item for item in file_list if item[-3:] == 'obj']

# loop through the strings in obj_list and add the files to the scene
for item in obj_list:
    path_to_file = os.path.join(path_to_obj_dir, item)
    bpy.ops.import_scene.obj(filepath = path_to_file)
You do not have the required permissions to view the files attached to this post.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
josema0890
n00b
Posts: 16
Joined: Sat Oct 17, 2015 8:28 am
Has thanked: 9 times
Been thanked: 8 times

Re: [Request] Wipeout HD/Fury

Post by josema0890 »

shakotay2 wrote: Thu Mar 11, 2021 9:15 pmyou're going to become a coder! :)
Heh, ty :D
shakotay2 wrote: Thu Mar 11, 2021 9:15 pmI was in the fear you could do that. :D
Well, i'm a little pigheaded :mrgreen:
shakotay2 wrote: Thu Mar 11, 2021 9:15 pmthanks for the beer! (No other paying required.)
But you deserve it after all of that work you did :(
shakotay2 wrote: Thu Mar 11, 2021 9:15 pmI'll send you the code asap, maybe Saturday (too much to do tomorrow).
Don't rush it, take your time and rest a lot, that's more important.
User avatar
zaykho
mega-veteran
mega-veteran
Posts: 217
Joined: Fri Dec 03, 2010 1:20 pm
Location: France
Has thanked: 158 times
Been thanked: 52 times

Re: [Request] Wipeout HD/Fury

Post by zaykho »

I didn't posted here but, that's already months (if not a year ?) that I have reversed those.

Image

Also imported some models on HD/Fury:

Image


^ Video: https://www.youtube.com/watch?v=Zug8HCl7kpc

I want the tool to be fully completed before releasing anything though.
josema0890
n00b
Posts: 16
Joined: Sat Oct 17, 2015 8:28 am
Has thanked: 9 times
Been thanked: 8 times

Re: [Request] Wipeout HD/Fury

Post by josema0890 »

zaykho wrote: Fri Apr 02, 2021 9:36 am I didn't posted here but, that's already months (if not a year ?) that I have reversed those.

https://cdn.discordapp.com/attachments/ ... nknown.png

Also imported some models on HD/Fury:

https://cdn.discordapp.com/attachments/ ... nknown.png


https://www.youtube.com/watch?v=Zug8HCl7kpc

I want the tool to be fully completed before releasing anything though.
Wow that's freaking awesome, lmao :D

Well, i got working my own version of shakotay's makeh2o for WO248 and even WOOC, i need to fine tune it better to automatically find and correct the fvfs (just found a 56 20 for the track park and there are two 24 FVF with different UV values, one with 16 and the other one with 20 ) and the start of the vertex address, so far so good this is the progress i got (i need to find a better gnf script than the one of noesis, it crashes with some textures when trying to export them to tga with transparency and seems it loses some info on the alpha channel) and where the game stores the metallic/roughness map.

The beast that corrects (or tries to correct :D ) the vertex address I coded that I'm sure there is an easier way to already do this and without errors (:

https://i.imgur.com/BQzaWd7.png
Image

https://i.imgur.com/qRK29nu.png
Image

WO2048 Metro Park Track

https://i.imgur.com/uUfH0NF.png
Image
User avatar
zaykho
mega-veteran
mega-veteran
Posts: 217
Joined: Fri Dec 03, 2010 1:20 pm
Location: France
Has thanked: 158 times
Been thanked: 52 times

Re: [Request] Wipeout HD/Fury

Post by zaykho »

josema0890 wrote: Sat Apr 03, 2021 3:39 am
Well, i got working my own version of shakotay's makeh2o for WO248 and even WOOC, i need to fine tune it better to automatically find and correct the fvfs (just found a 56 20 for the track park and there are two 24 FVF with different UV values, one with 16 and the other one with 20 ) and the start of the vertex address, so far so good this is the progress i got (i need to find a better gnf script than the one of noesis, it crashes with some textures when trying to export them to tga with transparency and seems it loses some info on the alpha channel) and where the game stores the metallic/roughness map.

The beast that corrects (or tries to correct :D ) the vertex address I coded that I'm sure there is an easier way to already do this and without errors (:
Very nice !
elfhundert
ultra-n00b
Posts: 1
Joined: Wed May 19, 2021 9:20 pm

Re: [Request] Wipeout HD/Fury

Post by elfhundert »

guys is this thread here dead? I have some real trouble to export models and textures from wipeout HD fury. Somebody active ?
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4284
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1146 times
Been thanked: 2242 times

Re: [Request] Wipeout HD/Fury

Post by shakotay2 »

zaykho wrote: Fri Apr 02, 2021 9:36 amI want the tool to be fully completed before releasing anything though.
Sure, take your time. (But you will never release, will you? :D )

To be serious it's 6 years ago that I released what I had:
.
shakotay2 wrote: Sun Jun 07, 2015 4:50 pm
(Not the best solution but it was a solution.)
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
User avatar
zaykho
mega-veteran
mega-veteran
Posts: 217
Joined: Fri Dec 03, 2010 1:20 pm
Location: France
Has thanked: 158 times
Been thanked: 52 times

Re: [Request] Wipeout HD/Fury

Post by zaykho »

shakotay2 wrote: Wed Jun 02, 2021 4:18 pm
zaykho wrote: Fri Apr 02, 2021 9:36 amI want the tool to be fully completed before releasing anything though.
Sure, take your time. (But you will never release, will you? :D )

To be serious it's 6 years ago that I released what I had:
.
shakotay2 wrote: Sun Jun 07, 2015 4:50 pm
(Not the best solution but it was a solution.)
I will lol :D

The reason is that I make all my tools in Webgl, and I refuse to use anything server sided (so everything is 100% clientside, no nodejs or php), which require some black magic voodoo to stream all those assets correctly.

As it stand right now, I load everything in the RAM (I have 64gb of RAM) and do every modifications right into it, I can't release something like that yet.

Wipeout Omega eat like 40gb of RAM when I read, convert and extract everything, it's even worst for Driveclub........ that's why I need to finish some other tools before releasing it.

Image

^ I also made a mini hex viewer that document all parts of the reverse process, so when it will be released, all the reverse information will be shared too.
Post Reply