Great work !
Side note, been looking at the files from beta of WOXL : every track folder has an .OUT text file (and a few others) with intriguing infos.
Looking to track for more infos esp. for WO1, currently there seems to be a beta/pre version in the Demo 1 [EU] disc, still need to verify the content.
I already checked and it seems it use a totally different format.
maybe they are internally using the same format as W1/W2097 but, on the CD they have been but put in sort of container (to protect them from editing).
The content of the track files seems to be total binary garbage (no string or things like that) like it has been encrypted/compressed.
Those PBP files all have a header, series of (mostly) sequential numbers ... once we figure out how this work we can proceed to step 2 : extraction ... a rough guess is that these are significantly different than other games
As laid out @Hellfire_WZ's, maybe we should have a dedicated thread for this (modding, RE, whatever) ?
Wo3's files are completely encrypted. It'd take some god-like hacking to get anything out of there without knowing the encryption algorithm.
Never say never, all things have a beginning but if we don't start we have zero chance to succeed
I took a quick look at the format and here are my findings:
Header (in UINT32 units)
- at offset 80 it is the number of entries in the container
- at offset 88 starts the 12 bytes struct of each entry
- 1st value is absolute offset in file
- 2nd value is unknown
- 3rd is the length of the entry
- i've checked on multiple PBP and they fit perfectly with their length
We can already get the individual parts of these PBPs and try to get to next step
IMO these files are certainly compressed but not necessarily encrypted, there used to be some entropy detection software that could help but can't remember the name actually ...
EDIT
Just wrote a tiny unpacker, it swallowed every PBP out of WO3SE from \WIPEOUTC and \WIPEOUT3; there is always between 58 and 60 files in each PBP. With time and patience we'll decipher them
EDIT 2
I don't know where he got these infos from but they're hintful.
EDIT 3
Some progress !
There are VAG files in these containers: (ship thruster sound)
There are also a bunch of files which I suspect are textures since there are many entries in their header have a 0x40 value (64 pixels), not .TIM files though. We should prioritize in searching for files from the official formats in the SDK, if not then it could simply be a form of RLE encoding.
There are also files that looks like polygon data but it's a bit premature IMO :
The left-most pixel rarely changes and could indicate the polygon type as it can be seen in no$psx debugger.
Also many of these files are duplicate, basing myself on studying a group of files from the link posted in edit 2.
2 be continued
EDIT 4
@tigrou
Can you provide your updated WebGL experiment that loads WOXL tracks ? or tell what files you replaced ? thanks!
Last edited by aybe; 25th April 2015 at 03:51 AM.
Woah, that's awesome.
Keep up the good work
@aybe: nice findings. I would suggest as other members that you open a new thread in Wipeout3 section (and edit your answer to remove content).
about W2097/XL WebGL experiments : I have open a new thread for this
@Xpand : if it is not possible to find out format by just looking the binary data the best bet would be to ran the game in a debugger (like NO$PSX) and go step by step to see how data is parsed.
Hard, but not impossible.
Yes there's also a way to dump 3D objects from PS1 emulators through OpenGL or DirectX.
New place for the PBP format
http://www.wipeoutzone.com/forum/sho...BP-file-format
Experiment
see my updated fork which,
- adds WOXL tracks to the menu
- adds Moongoose tiny web server so you don't have to mess with your browser or source files, simply run it and it will open the page on your default browser (Windows-only)
https://github.com/aybe/wipeout
http://www.wipeoutzone.com/forum/sho...174#post243174
no$psx
Sadly I don't know MIPS assembly which would otherwise make the thing relatively easy, basically once you know which address references a file name, you'd simply step through the code and sooner or later would understand how many bytes are read and what's being done with them and so on.
One hope is that no$psx can return a vertex's data, if yes then we'd run few searches on these files to see whether vertex data is here as-is or is encoded.
- - - Updated - - -
Notes for WOXL:
- camera will go berserk at times
- some of the textures are wrong (picked from WO?)
- - - Updated - - -
EDIT 1
actually they might not be out of reach -> more PBP stuff : http://www.wipeoutzone.com/forum/sho...171#post243171
they are encoded using LZ77 (like CMPs)
- - - Updated - - -
EDIT 2
Vertex data is on its way !
http://www.wipeoutzone.com/forum/sho...171#post243171
Last edited by aybe; 25th April 2015 at 05:48 PM.
I'm pretty sure we'll get the WO3 data in the real format but I'll clearly need some help in interpreting them !
- - - Updated - - -
Dominic has just updated and fixed the experiment with WOXL : http://phoboslab.org/wipeout/
I have this bookmarked on Google Chrome, such an interesting way to see how the tracks were designed and the level of detail that the PS1 was capable of and how much effort from SL they put into the game
Aren't these the checkpoints?
Amazing. Though I wonder why some of the track textures look off... hmm...
In either case, this totally made me happy!
no, that's not your web browser,
@all: you are welcome to report an issue at https://github.com/phoboslab/wipeout/issues.
Just released the PBP unpacker, at this page : http://www.wipeoutzone.com/forum/sho...BP-file-format
https://github.com/phoboslab/wipeout/issues/6
Did you also have a look at WipEout 64:
https://github.com/phoboslab/wipeout/issues/4
?