[PS3] Sword Art Online: Lost Song (*.2dc)

Textures, recreate headers, conversions, algorithms and parsing of image files
tomatofarmer
Posts: 4
Joined: Mon Jun 20, 2016 7:24 pm

[PS3] Sword Art Online: Lost Song (*.2dc)

Post by tomatofarmer »

Hi everyone,

There's a file format in Sword Art Online Lost Song that contains a dds texture that I'm unfamilar with. Has anyone heard or made a converter for the 2dc format? (it may have been called something else before this game was released)

Attached is a small sample. Based on the filename it *should* be the small sprite of Yui that sits on Kirito's shoulder from time to time in the game. Can someone take a quick look and identify it?

Thanks much!

Tom
Acewell
Posts: 706
Joined: Fri Aug 08, 2014 1:06 am

Re: [PS3] Sword Art Online: Lost Song (*.2dc)

Post by Acewell »

looks like an archive with a bunch of common dds textures each with proper header. :D
you can use this bms script to split them into separate files and then open them with any capable dds viewer

Code: Select all

findloc OFFSET binary "\x44\x44\x53\x20"
do
    goto OFFSET
    get DUMMY long
    findloc NEXT_OFFSET binary "\x44\x44\x53\x20" 0 ""
    if NEXT_OFFSET == ""
        get SIZE asize
    else
        math SIZE = NEXT_OFFSET
    endif
    math SIZE -= OFFSET
    log "" OFFSET SIZE
    math OFFSET = NEXT_OFFSET
while NEXT_OFFSET != ""

you might want to convert them to tga or something to remove any trailing junk data left from the split
or you can leave them as original dds and remove the junk by hand
tomatofarmer
Posts: 4
Joined: Mon Jun 20, 2016 7:24 pm

Re: [PS3] Sword Art Online: Lost Song (*.2dc)

Post by tomatofarmer »

Acewell wrote:looks like an archive with a bunch of common dds textures each with proper header. :D
you can use this bms script to split them into separate files and then open them with any capable dds viewer


Thank you - that worked perfectly. If anyone else wants it here's a batch script using Acewell's bms to help automate things. (quickbms.exe should be in the the same folder)

Thank again - Tom

Code: Select all

@echo off
set CURRENT_DIRECTORY=%cd%
set BATCH_DIRECTORY=%~dp0

REM --------------------------------------------------------------------
set BMS_EXE=quickbms.exe
set BMS_SCRIPT=2dc-to-dds.bms
set TEMP_FOLDER=converted
REM --------------------------------------------------------------------

set PATH_BMS_SCRIPT=%~dp0%BMS_SCRIPT%
set PATH_TEMP_FOLDER=%~dp0%TEMP_FOLDER%
echo.
echo.
if not exist "%PATH_TEMP_FOLDER%" mkdir "%PATH_TEMP_FOLDER%"
for %%f in (*.2dc) do (
   echo [%%f]
   if not exist "%BATCH_DIRECTORY%%%~nf-2dc" mkdir "%BATCH_DIRECTORY%%%~nf-2dc"
   %BMS_EXE% "%PATH_BMS_SCRIPT%" "%BATCH_DIRECTORY%%%f" "%BATCH_DIRECTORY%%%~nf-2dc"
   move "%BATCH_DIRECTORY%%%f" "%PATH_TEMP_FOLDER%"
)
pause