Sega Superstars ROFS.CVM

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
lemurboy12
Posts: 265
Joined: Fri Oct 17, 2014 2:57 am

Sega Superstars ROFS.CVM

Post by lemurboy12 »

https://www.dropbox.com/s/uxtm7iac7a3ysgt/ROFS.zip?dl=0

The entire game is compressed into this archive.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Sega Superstars ROFS.CVM

Post by aluigi »

It's the CRI ROFs format:
http://gamehacking.org/wiki/CRI_ROFS

The idea of dumping the file from offset 0x1800 and opening it with 7-zip may work but without filenames.
lemurboy12
Posts: 265
Joined: Fri Oct 17, 2014 2:57 am

Re: Sega Superstars ROFS.CVM

Post by lemurboy12 »

Well I got everything out, but the game itself seems to use .PKG archives.

http://puu.sh/eaKaV.PKG
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Sega Superstars ROFS.CVM

Post by aluigi »

It seems a raw container without index table (where are located information about offset and size of the files).
If you open it with a hex editor you can notice a text file at the beginning followed by many "NSIF" files in sequence, and there are also NOF0 and NEND files that probably are related to NSIF.

It may be possible to extract the NSIF files but I don't think it will solve the problem because they are a custom format.
TGE
Posts: 38
Joined: Sat Dec 20, 2014 5:14 pm

Re: Sega Superstars ROFS.CVM

Post by TGE »

The game appears to use the Sega NN Library engine, which uses chunk formats like GNO, SNO, XNO and such. This game however appears to use a different version than the one used in Sonic games.
The script tries to get the name either from the name tag or from the second chunk. NSOB and NSTL would be models.

Code: Select all

#Sega NN Library Resource Extractor (WIP)
#Script by TGE
get fullsize asize
savepos found 0

for i = 0 < fullsize
   goto found 0 SEEK_SET
   findloc offset string "NSIF" 0 0
   goto offset 0 SEEK_SET
   get tag long 0
   get nsifsize long 0
   goto nsifsize 0 SEEK_CUR
   getdstring chnkname 4 0
   if offset = 0
      math i = fullsize
   endif
   findloc name_off string "NFN0" 0 0
   findloc end string "NEND" 0 0
   math end += 0x10
   if offset != 0
      if end != 0
         math size = end
         math size -= offset
         if name_off != 0
            goto name_off 0 SEEK_SET
            get tag long 0
            get namesize long 0
            math namesize -= 8
            goto 0x8 0 SEEK_CUR
            getdstring name namesize 0
            goto end 0
            savepos found 0
         else
            string name = SegaNNRes
            string name += _
            string name += i
            string name += .
            string name += chnkname
            goto end 0
            savepos found 0
         endif
         log name offset size
      endif
   endif
next i      
Argg
Posts: 6
Joined: Sat Mar 28, 2020 6:00 pm

Re: Sega Superstars ROFS.CVM

Post by Argg »

yeah so I wrote a .DIR (file names and offsets) + .PKG extractor (file archive data) for Sega Superstars and added it to the nn tool which has sno support for Sega Superstars so go ham

(you'll need puyo tools for the textures)

https://github.com/Argx2121/Sega_NN_tools/releases
Image