READ THE RULES: Click here

Follow us on Facebook: https://www.facebook.com/xentax/ :)

[Request] Dirge Of Cerberus Final Fantasy VII models

Post questions about game models here, or help out others!
User avatar
Seyren
advanced
Posts: 58
Joined: Sat Oct 30, 2010 1:39 pm
Has thanked: 18 times
Been thanked: 9 times

Re: [Request] Dirge Of Cerberus Final Fantasy VII models

Post by Seyren » Sat Jul 26, 2014 2:22 am

This is probably my favorite game ever, so if i ever get an idea how the file format or the Ps2 does the stuff i will probably work on it after i finish my first file format importing.

Cloud452
veteran
Posts: 86
Joined: Sat Oct 23, 2010 2:50 pm
Has thanked: 1 time

Re: [Request] Dirge Of Cerberus Final Fantasy VII models

Post by Cloud452 » Sun Dec 14, 2014 2:17 am

Seyren wrote:This is probably my favorite game ever, so if i ever get an idea how the file format or the Ps2 does the stuff i will probably work on it after i finish my first file format importing.
That's good to hear. After all these years, I'm surprised we've not gotten much further.

User avatar
Trishty
advanced
Posts: 63
Joined: Mon Jul 05, 2010 2:37 pm
Has thanked: 7 times
Been thanked: 16 times
Contact:

Re: [Request] Dirge Of Cerberus Final Fantasy VII models

Post by Trishty » Sun Dec 14, 2014 11:35 am

Hi! This is my Vincent, I created from scratch based on watching the ripped model.
Ripped model is not T-pose, so I have to take a lot of time to complete him. If someone still knows how to use cheat engine to make the T-pose please let me know, thank you very much!

Image

User avatar
Mirrorman95
ultra-veteran
ultra-veteran
Posts: 349
Joined: Tue Jul 20, 2010 2:08 am
Has thanked: 14 times
Been thanked: 23 times

Re: [Request] Dirge Of Cerberus Final Fantasy VII models

Post by Mirrorman95 » Sun Dec 14, 2014 2:25 pm

Back on page 8 of this topic, The Dude posted a MaxScript that can extract the skeletons of Dirge of Cerberus model files. According to page 7, those files can be extracted from the game disc using aluigi's FF13 BMS script. The headers p000, p005, and p200 were determined to belong to Vincent's models, so if you extract the game and isolate any of those within the .rfd files, you can run them through The Dude's MaxScript and get a skeleton of Vincent. You can then align your model to that skeleton and obtain a T-pose.

By the way, I really like the Vincent model! It's looks as amazing as your Death Penalty model. I wonder if you're planning to remake the whole Limit Forms sweep.
BBSFM and KH2FM+ saves are compatible with KH2.5. viewtopic.php?t=13424

User avatar
Trishty
advanced
Posts: 63
Joined: Mon Jul 05, 2010 2:37 pm
Has thanked: 7 times
Been thanked: 16 times
Contact:

Re: [Request] Dirge Of Cerberus Final Fantasy VII models

Post by Trishty » Sun Dec 14, 2014 3:22 pm

Actually I'm talking about this T-pose
viewtopic.php?p=52272#p52272

Ripped model cannot be used because it mess up and backface culling, but I can redraw a new model based on watching it so if have a T-pose ripped model that would be more easy for me to draw ^v^

User avatar
LUBDAR
veteran
Posts: 95
Joined: Wed Jun 08, 2011 7:14 am
Has thanked: 18 times
Been thanked: 9 times
Contact:

Re: [Request] Dirge Of Cerberus Final Fantasy VII models

Post by LUBDAR » Sun Dec 14, 2014 3:56 pm

Whoa!! This is as amazing as it was surprising!!!

truston
ultra-n00b
Posts: 6
Joined: Mon Dec 15, 2014 10:42 am
Been thanked: 1 time

Re: [Request] Dirge Of Cerberus Final Fantasy VII models

Post by truston » Mon Dec 21, 2015 7:35 am

hello!
since people can rip models from DCFF7, I wonder if anyone can rip all FMV videos from DCFF7 (US)? I love the FMV, and I created a new request topic, to ask for FMV extractor for this game.
link: viewtopic.php?f=36&t=13706

anyone has a way to do this?
============================
thank u everyone! merry christmas!

sqand
ultra-n00b
Posts: 2
Joined: Sun Jun 19, 2016 12:08 am
Has thanked: 1 time

Re: [Request] Dirge Of Cerberus Final Fantasy VII models

Post by sqand » Mon Jun 20, 2016 6:23 pm

Wow, I picked this game to play with because I had it lying around, I had no idea it had such a history! I do have one question that I hope someone can help with...

As falconcool mentioned, aluigi's BMS script for FFXIII had enough info to get the data out of filelist.bin/kel.dat, but with a twist: only some of the files had names in filelist.bin. One of the files extracted was "file.txt", which has records like this:

Code: Select all

sLKwOyK_CXM@aX_2xjGINT:100320:data/event/scene/ev0001/sound/se_0001.at2
g1Mil5b6ypnehnRXD0QGm7:47136:data/event/scene/ev0001/sound/se_0002.at2
ouUIzREgdp9a3g5Xpcwo57:10272:data/event/scene/ev0740/sound/70803yf.at2
FsNXix9xhPBKZnfk_jDok7:232:data/event/scene/ev2000/string.bin
wpwZwb7mKFyCJTCn2olXbA:4024:data/event/scene/ev2000/scr000.class
So field 2 seems to be the file's size in bytes, since the numbers there match up with the extracted files, and the third field is obviously the filename/path, but I haven't yet figured out the first field. They're all 22 characters long, so they must be a base64 encoded 128-bit hash. I tried just MD5ing the data, but that's not it. Has anyone seen something like this before?

Thanks, and sorry if this thread is one that should have been left in the graveyard.

sqand
ultra-n00b
Posts: 2
Joined: Sun Jun 19, 2016 12:08 am
Has thanked: 1 time

Re: [Request] Dirge Of Cerberus Final Fantasy VII models

Post by sqand » Sun Jun 26, 2016 7:01 pm

revelation wrote:ps2 vif tag are very tricky to handle solely on a visual basis if you do not take all the commands and flags into account.

For instance the "patterns" you are seeing of this form:

Code: Select all

02 01 00 01
04 04 00 01
04 01 00 01
are set cycle commands. The specify how often values are either read or written into memory. As an example:

Code: Select all

02 01 00 01
would cause a value to be written ever other line (of 16 bytes).

Code: Select all

04 01 00 01
would cause a value to be written ever 4 lines. And there are various other combinations.

The command that causes execution of the current set of vif commands after transfer is:

Code: Select all

00 00 00 17
The "patterns"

Code: Select all

## 80 ?? 6*
## C0 ?? 7*
etc, specify an unpack command, where:
## is the address to store the unpacked data that follows, specified in multiples of 16-bytes (qwc, quad word count)

80/C0 is actually a set of flag bits where 0x80 is flg, and 0x40 specifies whether a value should be treated as signed or unsigned

?? is the number of values to unpack

6/7 is the actual unpack command specifier, but the full structure contains a flag specifying whether the unpack is masked or not (which just happens to be in the 1's position which is why the 6 becomes 7 in the full structure)

* is actual a combination of two 2-bit values, vn, and vl (each possible to be 0 - 3)
vn - is the number of components
vl - is the data type of the components
where:

Code: Select all

vn
- 0 is 1-component
- 1 is 2-components
- 2 is 3-components
- 3 is 4 components
vl
- 0 are 32-bit values
- 1 are 16-bit values
- 2 are  8-bit values
- 3 are rgb5a1 values (16-bit)
As an example
6E: the E is actually a combination of 0x0C and 0x2, or 11 10, which is vn = 3, vl = 2. So this means each component has 4 values that are 1-byte each
6C: would then be 0xC and 0x0, 11 00, vn = 3 vl = 0, So each component would be 4 32-bit values.

Using this information you can determine the size of the data that follows the unpack command:
C would be four (4) 32-bit (4-byte) values, or 16-bytes total per complete value. If the number of values specified by ?? is 0x2E (46), then 46 * 16 = 736 (0x2E0) bytes of data.
9 would be three (3) 16-bit (2-byte) values, or 46 * 6 = 266 (0x114) bytes of data.

This can be used to help determine what some data can be, at least initially. In the case of E this could possibly be rgba color values. But not this does not have to be the case, it can be any type of value that can be store in 4 8-bit values.
In the same way C could be any set of four 32-bit values. If they happen to be valid floats, it could possibly be a vertex, but at the same time you could use this same format to store non-float values, or a set of float values that make up a matrix. But again it can be any data that technically fits within the data size computed from the component type and counts.

Masking can also affect the way data is stored. There are a number of storage rules for taking things like this into account, as well as ones that modify how values are manipulated before and after they are read.

After unpacking, the data can look a bit different depending on how the developer chose to store things. Often you can see another complete set of structures which themselves could be interpreted as offsets, counts, etc. in much the same way as the original containing format may have been.

There are a number of games which use these tags, and once understood become a good bit easier to deal with, at least initially.

The values above are a bit of a rough estimate as well, since the actual bits of the structure can possibly cause the commands to look a bit different should those features be used. Actual documentation on the commands would go further into detail on these subjects.

Code: Select all

union VIFtag
{
	struct
	{
		uint16 imm;
		uint8  num;
		uint8  cmd : 7;
		uint8  stl : 1; // interrupt flag
	} commnd;
	struct
	{
		uint8  cl;
		uint8  wl;
		uint8  num;
		uint8  cmd : 7;
		uint8  stl : 1; // interrupt flag
	} stcycl;
	struct
	{
		uint16 adr : 10;
		uint16 pad : 4;
		uint16 usn : 1;
		uint16 flg : 1;
		uint8  num;
		uint8  vl  : 2;
		uint8  vn  : 2;
		uint8  m   : 1;
		uint8  cmd : 2;
		uint8  stl : 1; // interrupt flag
	} unpack;
};
Hope that helps for now.


Did not know where to post this since it can apply for any ps2 format which uses these commands.
Okay, I didn't want to ghost this thread, so a little bit of a (personal) progress report, I finally have read enough to understand what revelation was talking about here. VIF is pretty incredible. What I'm trying to figure out now is: there must be some loading code somewhere that parses the RFD files into its constituent SMDs etc, and then loads the contents of those files into memory, and then DMA transfers them via VIF. So the SMD file must have some standard header data, and then I expect the payload is one or more DMAtags. What I'm trying to figure out now is whether the loading code strips the header data, and if so how much, and what kind of DMA transfer it uses to send the VIF data.

Gzun
ultra-n00b
Posts: 1
Joined: Fri Oct 27, 2017 11:02 pm
Been thanked: 1 time

Re: [Request] Dirge Of Cerberus Final Fantasy VII models

Post by Gzun » Fri Oct 27, 2017 11:05 pm

Hello sorry for revive old thread but has there been more progress on this game? Models look amazing even for PS 2 game.

daemon1
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 1900
Joined: Tue Mar 24, 2015 8:12 pm
Has thanked: 48 times
Been thanked: 1457 times

Re: [Request] Dirge Of Cerberus Final Fantasy VII models

Post by daemon1 » Sun Oct 07, 2018 7:35 pm

This request will be filled soon:

viewtopic.php?f=16&t=18904

ImageImage

Post Reply