Chrono Cross Video Format Notes
Little exploration has been done as yet, but the format is similar to the Playstation-standard STR format. http://www.romhacking.net/docs/455/ purports to document the format in its section 3.4, but it may be incorrect—however, it is likely that the format is again similar to those used in the PSX Final Fantasy games. If the Modern!Schala end-credits sequence is in fact different from the other movies, it's likely due to it including sampled, rather than sequenced, audio (it's unlikely that they could have gotten such clear vocals from a sequenced track).
Video files start with a magic byte sequence of 60 01 00 00 00 00 02 00 01 00 (CD 1) or 60 01 00 01 00 00 02 00 01 00 (CD 2).
There is a tool called ExtractVid in the old Terminus toolset which may give a clearer indication of what's going on, but no one appears to have bothered to dissect it yet and see how it works. Also, a non-Cross-specific program called PSXTulz may be able to play back the video.
Thanks to saiferoth
Hi, I need some help on how to either replace the .STR file for the opening movie for disc 1.
Unfortunately because of the way the data is encoded on the disc, I can only use jpsxdec to see the contents, because the PurpleCatTools only extracts the boot.dat and 0000.executable.psx from the bin/cue. Farthest I've gotten is ripping the video using jpsxdec w/ audio as an uncompressed AVI, editing the video, and exporting with the same # of frames, resolution, 15fps, 44100 khz audio bitrate, etc. as an uncompressed AVI format, and then converting the output with STR Conv. Once converted, I made sure it was atleast the same filesize or less and its re-inserted back at the same index where I ripped the video from, but no dice, just a black screen after the Squaresoft logo.
After looking at the jpsxdec documentation on .str files, as usual, Chrono Cross stores the video/audio differently in the sectors compared to other games. Reopening the modified bin, I can playback the .str I inserted, but I can see that because the audio starts at 290202 and the video starts at 290204, there seems to be a broken 0:01 second video/audio file that is just black before and after the insert. Inserting again on a new image at 290202, 290204, etc. didnt work either.
I imagine theres even more tedium involved that has to do with making sure the header bytes are the same as well as having to inject the video, not just at the same sector, but ensure the audio and video are starting at the same bytes so the game can call it. I looked into TOC Changer but again, the bin/cue files are not able to be ripped using PurpleCat.
After scouring the internet for STR/XA conversion tools and studying the byte structure from the Playstation 1 STR Format guide, m35 of jpsxdec was able to add audio replacement for Squaresoft titles which combined with the replaceframes option was able to let me replace the full video.
https://github.com/m35/jpsxdec (also see Utilities (PSX)
- Try to use replaceaudio with an uncompressed wav/aiff file to find out what the sample sector size is in the error message. Once you have that, use Audacity to cut the length exactly by sample size, then export as uncompressed aiff file with signed 16-bit with sample rate being 44100hz (or whatever the original audio is at). Premiere can export as uncompressed wav as well but I couldnt figure out how to get the exact length as the original file
- For video, excel is great at generating the XML and then just use Premiere or your favorite video editing software and export the final result as PNG sequences with the same resolution.