G
G
Guest
Hello all!
So about my progress in the ff7 development... Haven't much time to write here about what I am doing/done.
So
I decided to write some classes to play PSX FF7 videos & sound. I used various sources of info about PSX videos and now I know something about it.
In FF7 there is 2 types of movies: ordinary files with STR extension (these can be copied without problems directly from cdrom without any crc errors) & files with MOV extension. Files with MOV extension is actually a interleaved stream with video & audio frames. These sectors are written in CDXA Mode2. I wrote simple dumper to dump this sectors to files. Then I write some demuxing code (used ffmpeg sources
). For audio stream I found some sources that analyzes and plays PSX CDXA audio data and write a simple command line utility to play any channel in XA file through oss interface (for now only linux :evil: ). For video stream I used libbs from psxdev-libs (http://www.psxdev.de). Using demuxer I split video to individual frames and try to decode it with libbs. Here I have bad news. I successfully convert many different videos from various games (tested all games I have at the moment) using only my GNU [heheh] tools EXCEPT ff7 videos. Deeper investigating in ff7 video frame shows me, that there is wierd section of data at the beginning of the video frame:
DE 0D F9 07 00 00 25 02
45 FC 96 F0 51 F8 5B 0D
B2 FB B2 FB 11 00 00 00
F8 00 00 00 62 12 00 00
E7 FF 00 00 BB 03 00 00
Of course this data is different for every frame. After this data begins "normal" frame data. Removing this data from file don't help to decode frame.
I think that problem is in "another" VLC coding method used in FF7 movies. This data may be some VLC table in Huffman Coding, or something else... I am totally confused with this... :|
I tried some windows PSX video players which works perfectly with FF7 (of course this is closed source
). Also tried to debug pcsx emulator - it may be very funny, but I cann't find in pcsx source where VLC decoding is taking place (only mdec decoder functions which already included in libbs). Also tried official Sony's program for converting psx videos (MC32.EXE) - it works for anything except FF7 video - when I try to load FF7 bs-frame I got from my demuxer, MC32.EXE fails with message "Invalid MDEC Mode 0x7f90000" - maybe Square interpret this unknown data manual??
My sources currently are not in SVN - code is dirty, I don't want to add something, that not working yet - if anyone want, I will upload it somewhere. I also wrote some documentation about CDXA PSX video frame data.
I heard about some official Sony's PSX video format documentation - maybe someone can get this for me?
So if anyone have ideas about decoding FF7 video frames, or can help somehow - post here.
So about my progress in the ff7 development... Haven't much time to write here about what I am doing/done.
So
I decided to write some classes to play PSX FF7 videos & sound. I used various sources of info about PSX videos and now I know something about it.
In FF7 there is 2 types of movies: ordinary files with STR extension (these can be copied without problems directly from cdrom without any crc errors) & files with MOV extension. Files with MOV extension is actually a interleaved stream with video & audio frames. These sectors are written in CDXA Mode2. I wrote simple dumper to dump this sectors to files. Then I write some demuxing code (used ffmpeg sources
DE 0D F9 07 00 00 25 02
45 FC 96 F0 51 F8 5B 0D
B2 FB B2 FB 11 00 00 00
F8 00 00 00 62 12 00 00
E7 FF 00 00 BB 03 00 00
Of course this data is different for every frame. After this data begins "normal" frame data. Removing this data from file don't help to decode frame.
I think that problem is in "another" VLC coding method used in FF7 movies. This data may be some VLC table in Huffman Coding, or something else... I am totally confused with this... :|
I tried some windows PSX video players which works perfectly with FF7 (of course this is closed source
My sources currently are not in SVN - code is dirty, I don't want to add something, that not working yet - if anyone want, I will upload it somewhere. I also wrote some documentation about CDXA PSX video frame data.
I heard about some official Sony's PSX video format documentation - maybe someone can get this for me?