daintysam31 Posted Monday at 01:52 PM Posted Monday at 01:52 PM 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). 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 h3x3r Posted Monday at 05:52 PM Engineers Posted Monday at 05:52 PM 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.
daintysam31 Posted 22 hours ago Author Posted 22 hours ago 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:
Engineers shak-otay Posted 21 hours ago Engineers Posted 21 hours ago (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): Edited 21 hours ago by shak-otay 1
Engineers h3x3r Posted 19 hours ago Engineers Posted 19 hours ago 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.
daintysam31 Posted 18 hours ago Author Posted 18 hours ago Thank you, I will try to see if I can do some manual assembly from this point on, will post results.
Engineers shak-otay Posted 17 hours ago Engineers Posted 17 hours ago (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.) (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 17 hours ago by shak-otay 1
Engineers Rabatini Posted 13 hours ago Engineers Posted 13 hours ago (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 13 hours ago by Rabatini
Engineers roocker666 Posted 2 hours ago Engineers Posted 2 hours ago 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.
Engineers roocker666 Posted 2 hours ago Engineers Posted 2 hours ago 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 2
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now