Jump to content

[PS2] Criterion Games BLACK (Aug 16, 2005 prototype) .DB .BIN


Recommended Posts

Posted

Hello, I have recently been trying to rip both models and textures of character models in BLACK by criterion games.
Textures I have acquired already through the burnout Noesis plugin, since both the .DB and .BIN are compatible for texture access.
The retail models themselves are easy enough to rip through the xbox version, (followed steps from an old thread for ripping BLACK models).

The prototype however, is PS2 only, which looking back at the old thread appears to be much more difficult to rip from.
From what I understand, the .DB and .BIN files store both texture and model data.

AFAIK Character models+textures in the CHARDATA.DB files, the other .BIN files level data.

Looking for matching texture names after exporting from Noesis in the CHARDATA.DB from LEVEL_04 with a hex editor appears to lead in the right direction, but I have had no success with trying to get model data with hex2obj when looking around these areas (These two individual entries could be one for the texture and one for the model, just guessing though).

image.thumb.png.93f1cd956695a23e58f03bc264c0d933.png

 image.png.f52eec40ea1680d19d7188e8ae066553.png

Help would be much appreciated to those interested, I am still pretty new to this, samples are attached.

 

Prototype and Noesis plugin here, if anybody wants to dig around.

https://hiddenpalace.org/Black_(Aug_16,_2005_prototype)

(IF YOU WANT TO RUN THE PROTOTYPE THROUGH PCSX2, EXTRACT ALL DATA FROM THE .IMG AND RUN IT THROUGH CDGENPS2, IT WILL CRASH ON STARTUP OTHERWISE!)

https://github.com/EdnessP/scripts/blob/main/burnout/fmt_Burnout3LRD.py

 

Video that showcases gameplay including some of the models:

BLACKprototypesamples.zip

  • Engineers
Posted

Nice find... But og xbox version is best to rip because you don't need to deal with autogenerated faces. Typical for PS2 games.

But static meshes are bit pain because they somehow compressed/obfuscated texture names. 

So I must rip that scene with NinjaRipper and then assign textures by the look.

Posted

I can confirm, most character models from the xbox version with CXBX can be ripped with Ninjaripper in local space pretty well, only had minor problems with props like helmets in the past.

This one is ripped with Ninjaripper 2.0.5:

image.thumb.png.1e4064e1e4b6da75ed9c2085c7916e16.png

  • Engineers
Posted (edited)
23 hours ago, daintysam31 said:

but I have had no success with trying to get model data with hex2obj when looking around these areas

For PS2, level_00, chardata.db it's a matter of assembling sub meshes (and maybe a better face creation algo):

 

PS2_Chardata-db.png

Edited by shak-otay
  • Thanks 1
  • Engineers
Posted

I must admit I am pretty interested in prototype models as well but autogenerated faces are no go for me.

I will try to write BMS to at least unpack bin/db files.

  • Engineers
Posted (edited)
1 hour ago, h3x3r said:

but autogenerated faces are no go for me.

Hmm, you know there's some hero here who got the trick for PS2? I couldn't get over myself to make use of his dll but it's my firm decision to tackle this and I'll tell the result as soon as I get it working for me. (If it works there's several dozens of PS2 projects I'd need to correct and I fear the amount of work, somehow.:classic_blink:)

(It's my bet that it has to do with changing the face winding and I'd like to find it out by myself instead of using other people's dll.)

Edited by shak-otay
  • Like 1
  • Engineers
Posted (edited)

As per i am a good for nothing in 3d model issues., i can´t tell if te unpack works, but studying DB, i can see 2 types of TOC.

Attached the py script, if someone wants to take a look.

just drop the files DB or bins in .py or double click in .py

black_ps2_unpack.py

Edited by Rabatini
  • Engineers
Posted

I found a model, I used that script to split the file(LEVEL_00/CHARDATA.DB). Then in unpacked folder "CHARDATA.DB_unpacked" I went to "segment_03_0007c600" folder and inside I used the file "key_53b10f70a0da0000_off_000d4c00.bin", I renamed that .bin to DB again because .bin is very generic. And I made a script using the old function to create faces from Allen and the byte seach by Durik.
I noticed that buffers have a tag(like almost all PS2 games):
verts buffer Tag: 05 03 01 00 01 00 80(then 1 byte vert count and 1 byte unk)
buffer: 3 shorts XYZ, 1 short flag
 uvs buffer Tag: 05 03 01 00 01 01 80(count and unk and then buffer 2 shorts XY)

normals buffer Tag: 05 03 01 00 01 02 80(count and unk and then buffer 3 bytes XYZ)
UVs were tiny so I scaled that using "rapi.rpgSetUVScaleBias((8.0, 8.0, 8.0), None)", You can use other value if you want but I used 8.0. 

black.PNG

  • Engineers
Posted

I don't know if there are more models in that unpacked folder, you need to check that so examine each file there. Just remember that characters use shorts in vertices buffer, I think I saw other file with floats but maybe that file is not a character or maybe it is but with floats, I really don't know, lol. Here is the script if you want to test it:

fmt_black_ps2_prototype_DB.py

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...