New version of SCAT available for download

Ask anything your want about Mega/SegaCD programming.

Moderator: Mask of Destiny

Post Reply
Paul Jensen
Interested
Posts: 32
Joined: Mon Apr 06, 2009 4:17 pm
Location: Hiroshima, Japan

New version of SCAT available for download

Post by Paul Jensen » Sun Jun 21, 2015 6:30 am

I've been working on SCAT off and on over the last several months, and I've just released a new version. The program is now capable of decoding basically every media file from the games produced by Digital Pictures for the Mega CD (32X). Also new in this version is the ability to play back files in real time, without the need to export to AVI first.

In sum, this version of SCAT will let you view just about any video or audio file from any Digital Pictures game. I spent a lot of time developing this program (with the gracious help of TascoDLX), and I even learned 68000 assembly in the process in order to understand and port some of the decode routines, so it's been a bit of a wild ride, but an excellent learning experience.

As a side note, say what you will about FMV games, but after viewing a lot of the media from these games, I realize that the producers were trying to deliver the most interactive experience they could given the technical limitations they had back then. It was a novel experience at the time to have "live" actors talk directly to you. And as much as people bash on FMV games these days, they're not all that different from (wildly successful) modern whack-a-mole games like Five Nights at Freddy's. FMV games definitely don't deserve the kind of hate they get.

Anyway, here's a link to the SourceForge page for SCAT. Enjoy!

SCAT project page

bgvanbur
Interested
Posts: 46
Joined: Fri Jun 22, 2012 11:13 pm

Post by bgvanbur » Mon Jun 22, 2015 2:29 pm

I know there incomplete documents on the SGA format out there already, do you plan on making a document that is more complete? I would love to see some of the ways they compressed the data and such.

Paul Jensen
Interested
Posts: 32
Joined: Mon Apr 06, 2009 4:17 pm
Location: Hiroshima, Japan

Post by Paul Jensen » Sat Jun 27, 2015 9:30 am

bgvanbur wrote:I know there incomplete documents on the SGA format out there already, do you plan on making a document that is more complete? I would love to see some of the ways they compressed the data and such.
Altogether there are 23 types of data chunk that I know of, and SCAT can correctly process 20 of them. Here's a snippet of code from SCAT that gives a description of each chunk type. Types that I fully understand are marked with a bang (!), and those I don't fully understand are marked with a question mark (?):

Code: Select all

Public Enum ChunkType As Byte
    Video81 = &H81              'Macroblock encoded (All Digital Pictures 32X games) [!]
    AudioA1 = &HA1              '8-bit sign/magnitude PCM [!]
    VideoC1 = &HC1              'Raw (Night Trap SCD, Sewer Shark, Corpse Killer SCD) [!]
    VideoC2 = &HC2              'Pattern generator encoded (Corpse Killer SCD, Slam City, Supreme Warrior) [!?]
    VideoC4 = &HC4              'Interframe version of C2 (Slam City) [!?]
    VideoC6 = &HC6              'LZ compressed version of C1 with 8192-byte window size and base 0 copy count (Night Trap SCD, Sewer Shark, Make My Video) [!]
    VideoC7 = &HC7              'Same as C6 but with base 1 copy count (Prize Fighter) [!]
    VideoC8 = &HC8              'Same as C6 but with pixels swapped on even lines for better compression (Sewer Shark, Make My Video) [!]
    VideoC9 = &HC9              'Same as C8 but with base 1 copy count (Double Switch) [!]
    VideoCB = &HCB              'Same as C6 but with 4096-byte window size and base 1 copy count (Prize Fighter, Double Switch "DPLOGO", Corpse Killer 32X) [!]
    VideoCD = &HCD              'Same as C8 but with 4096-byte window size and base 1 copy count (Double Switch) [!]
    VideoD1 = &HD1              'Raw with encoded tile map, and no palette data, used for enemy death animations (Sewer Shark) [!]
    VideoD2 = &HD2              'Same as D1 but with palette data (Slam City, Supreme Warrior) [!]
    VideoD3 = &HD3              'Raw animation frame with palette and pixel offset data (Corpse Killer SCD / 32X, Slam City) [!]
    VideoD4 = &HD4              'LZ compressed version of D3 with 4096-byte window size and base 1 copy count (Corpse Killer SCD / 32X, Slam City) [!]
    VideoD5 = &HD5              'LZ compressed version of D2 with 4096-byte window size and base 1 copy count (Supreme Warrior) [!]
    VideoE7 = &HE7              'Raw/LZ Compressed tri-frame with 4096-byte window size and base 1 copy count (Make My Video series "*BIG.SGA" files) [!]
    VideoE8 = &HE8              'Special compressed keyframe (Ground Zero Texas) [!]
    VideoE9 = &HE9              'Special compressed interframe (Ground Zero Texas) [!]
    ClipHeaderF0 = &HF0         'File header, or possibly a container for other chunks (Slam City) [!?]
    ContainerF1 = &HF1          'Container for other chunks (Slam City) [!]
    TableOfContentsF2 = &HF2    'Table of contents chunks (Slam City, and in other games as *.F2 files) [?]
    ClipFooterFF = &HFF         'Appears after last chunk in a clip (Supreme Warrior) [!?]
End Enum
Up until sometime last year I had been updating the SGA page at multimedia.cx as I added new formats to SCAT, but I went a while without updating it and then forgot my username and password, so it's missing a lot of newer information. I'll get around to updating it as soon as I can.

I've made the source code for SCAT freely available. Looking through the code should give you a pretty good idea of how things work, even though I didn't do the best job of commenting things.

Paul Jensen
Interested
Posts: 32
Joined: Mon Apr 06, 2009 4:17 pm
Location: Hiroshima, Japan

Another update (2015/8/16)

Post by Paul Jensen » Sun Aug 16, 2015 9:03 am

I've uploaded the latest source for SCAT to SoureForge. You can get it here.

This release adds visualizers for file structure as well as clip layout structure. The file structure visualizer allows you to see how chunks are interleaved in each file, and the clip layout visualizer represents the data as a timeline, similar to NLE software such as Final Cut Pro or Adobe Premiere Pro.

Post Reply