Users browsing this thread: 7 Guest(s)
Tales of the Abyss files
#1
Hello all; I started poking around in the next project I was going to do, and I got a little absorbed in it. lol

Tales of the Abyss .slz file.

I know it's some kind of image.  I had it up in TileGGD and almost got something, but unfortunately I don't know enough on how to use it yet to get more than just some vague blob that might be a face.

Also, there may be other files I need help with along the way, so I'm going to use this for general help with this game.
Reply
Thanked by: Marco Red
#2
Can you take a screenshot or tell me which settings you used in TiledGGD? It looks compressed to me.

EDIT: It might also help to know if this is from the PS2 or 3DS version.
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Reply
Thanked by: Marco Red
#3
Oops, sorry; it's from the PS2 version.

Might be compressed? When I slapped it into my hex editor, there was no file header at all that I could see. (Pic coming in a sec.)

[Image: BBqEoAQ.png]

I think you're right on it being compressed. Before I was zoomed in trying to make out the blobs here and there, so I didn't see the junk at the top; probably other data up there.

Not sure what to do now.
Reply
Thanked by:
#4
Yeah, even that looks compressed. Those blobs most likely just coincidentally exist.

Unfortunately, any investigation into SLZ compression leads me to a file format which has a "SLZ" magic ID. This file looks very similar and I've tried modifying it a bit (like adding the SLZ) and feeding it into an existing decompressor, but unfortunately it doesn't quite seem to be working. Any output I do manage to get doesn't give many fruitful results.

Not sure where to go from here. Here's a thread about the compression for anyone interested.
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Reply
Thanked by:
#5
The only other thing I've found is apparently TriAce used .SLZ compression in the Star Ocean games. I've tried using the .BMS script and other programs made for it, but it doesn't seem to work. One of the programs is on Romhacking.
Reply
Thanked by:
#6
Okay, ixnay the .SLV for now, since I'm not so sure they're image files anymore.

This TXD file contains a .TM2 file, which I already know is viewable with Noesis.  How can I extract that file?
Reply
Thanked by:
#7
I can see filenames, but unfortunately no .tm2 headers so the files are likely compressed. That's all I can make out, sorry.
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Reply
Thanked by:
#8
I'm really starting to think that any of the images that have been made available from this game weren't actually ripped, but were screenshot from an emulator. This format is seriously messed up. I still have no idea where the heck the skit faces are at, and I'm almost afraid to try and look at them when I do find them.

At any rate, Struggle was able to give me a hand last night. He had a way to access the TIM2s in the .TXD files, but it presented another problem. I'll use this TIM2 frame that I pulled from a TIM2 batch as an example. If you load this up in Noesis, you'll be able to see that one of the images on this file -- the item bag -- shows up just fine with the palette. Everything else, however, is a complete and utter mess, and I'm not sure how to get them to show right. There seems there might be different palettes, but it's... not showing? I'm not sure where to go with this one.
Reply
Thanked by:
#9
It does indeed have multiple palettes, one for each icon in fact. Rainbow (a rather good TIM2 viewer) reads in the number of palettes but doesn't seem to store it or allow you to switch them.

I made a GFXtract script to handle these particular files:

Code:
idstring TIM2
get VERSION short
get TNUM short
goto 8 cur

for i = 0 < TNUM
   get SEGSIZE long
   get PALLEN long
   get LENGTH long
   get HEADLEN short
   get PALNUM short
   math PALNUM /= 0x10
   get FORMAT byte
   get MIPNUM byte
   get CLUT byte
   get BPP byte
   
   if BPP == 1
       set BPP 16
   elif BPP == 2
       set BPP 24
   elif BPP == 3
       set BPP 32
   elif BPP == 4
       set BPP 4
   elif BPP == 5
       set BPP 8
   else
       print "Invalid bit depth!"
       exit
   endif
   
   get WIDTH short
   get HEIGHT short
   goto 0x18 cur
   
   savepos OFFSET
   set PALOFF OFFSET
   math PALOFF += LENGTH
   
   for j = 0 < PALNUM
       get NAME basename
       string NAME += _pal
       string NAME += j
       goto OFFSET
       
       setformat BPP RGBA 1 32 PALOFF
       read IMG WIDTH HEIGHT
       savepng IMG NAME
       
       math PALOFF += 0x40
   next j
next i

This doesn't handle all TIM2 files, but I'm going off of the assumption that all of the files from this game are similar (in terms of their format and version). Unfortunately there's no way to tell how to separate the icons (and besides GFXtract doesn't have that functionality yet) so what it'll do is output the same image multiple times but with different palettes. You'll have to cut out the individual icons manually, I'm afraid.

By the way, just out of curiosity may I ask how the TXD files were handled?
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Reply
Thanked by:
#10
I got "invalid command "setformat" or arguments -1 at line 47".

Struggle found a program called "PS2TXDViewer". It can view anything in these packs that's 4 and 8bits, but 32bits gives out an error.


EDIT: Sorry, I was just about to get off break. Here is the TXD Viewer. It's... not that great, as it'll only convert to .bmp, .jpeg, or .tda. I'd much rather something that can extract the TIM2 file.
Reply
Thanked by:
#11
Are you using the latest version of GFXtract? It works perfectly for me, plus I have no idea why that error would come up. If it still happens can you take a screenshot of the window when the error occurs?

Also I was hoping for some source code on that program, but unfortunately I can't find any anywhere. It's such a strange format so I'm not sure how to extract it myself.
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Reply
Thanked by:
#12
Welp, I'm apparently an idiot and incapable of reading while I'm at work. I was using it as a .BMS script. :\

Yes, it works, and it works very well. Thank you.

Hm... TXD files are used in other games. Is there any way to just... steal the header from those files and try and put them together like that? Would that help in making a .BMS script to extract the TIM2 file from it?
Reply
Thanked by: puggsoy
#13
Code:
# For use with QuickBMS, by aluigi of zenhax: http://aluigi.altervista.org/quickbms.htm
# Written by ThatTrueStruggle
# Most of the info in this script can be found here: http://www.gtamodding.com,
# and from using Steve-M's Renderware Analyze

# Generic Renderware Header
get CHUNKID long
get SECTIONSZ long
get VERSION long
# Generic Renderware Header

goto 0x18
get TXCOUNT short # Get texture count
get CONSOLEDESCRIPTOR short # Get console id

for i = 0 < TXCOUNT
    # Get the header again
    get CHUNKID long
    get SECTIONSZ long
    get VERSION long
    # Generic Renderware Header
    
    savepos OFFSET # Save our position for later
    getdstring DUMMY 0x23 # Skip header info
    get NAME string # Get File Name
    log NAME OFFSET SECTIONSZ # Save to File using info gained earlier
    goto OFFSET # Go back to he saved offset
    goto SECTIONSZ 0 SEEK_CUR # Go to the next file, repeat
next i

This should work on the TXD archives. However it extracts extra header info that may interfere with Puggsoy's script working. Not sure. I gave explanations in the script itself. Also I can say that the stuff extracted from the file are not TM2 files; The files after the first one are just palettes I think :/
Reply
Thanked by: puggsoy
#14
It extracted extra header info that interfered with everything; even Noesis couldn't read it after I extracted it.
Reply
Thanked by:
#15
The files aren't even TIM2, not the standard format anyway. They're weird Renderware versions. This repository (src/txdread.cpp in particular) has info on the format. I tried converting one of the images into a TIM2 but unfortunately they're swizzled with specific widths and heights so can't be viewed with my script or other TIM2 viewers.

I think the only option here is to make a custom program that converts it itself. Luckily this code isn't super hard to understand, most of it is straightforward as far as I can tell. I might try and get something working tonight.
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Reply
Thanked by: Skyla Doragono


Forum Jump: