Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

SSX Tricky - Help with texture modding

Featured Replies

  • Author
  • Localization

NightHawk, posted Thu Jan 31, 2019 2:08 pm (43012)


Hello folks,

i'm currently working on a mod for "SSX Tricky" on the PS2. I've managed to replace the final release board textures with the ones used in the late beta stage. (They can be found in the SSX Tricky Demo released on the "Winter Jampack 2001" Demo-Disc). I just replaced the final games' "TEXPS2.big" file with the one from the demo disc.

However, many boards use placeholder textures (Plain white boards with the text "board1" to "board12" on them.) I'd like to replace those with the ones used in the final game.

My problem:
I can't find a working program to extract the .ssh textures out of the "TEXPS2.big" file. The program "EAGT" only extracts a 0byte sized file with the extension ".lst" and using QuickBMS, I get the following errors:

(Using Big4 script:)
- signature of 3 bytes at offset 0x0000000000000000 doesn't match the one
expected by the script:

this one: "'"
c0 fb 27 ..'

expected: "BIG"
42 49 47 BIG

- 0 files found in 0 seconds
coverage file 0 0% 3 5247378 . offset 0000000000000003

(Using EB script:)
Error: the uncompressed data (-1) is bigger than the allocated buffer (2594305)

Last script line before the error or that produced the error:
227 clog NAME OFFSET ZSIZE SIZE

There's also the program "finalbig". It didn't detect the "TEXPS2.big" file format right away, but asked to "try anyway" and listed the textures. However when I try to extract these, all of them are around 500mb big (wich doesn't make sense to me) and they can't be opened in eagt (Program crashes with "runtime error '9' : subscript out of range"

Here's proof of what I managed so far:
https://www.merqurycity.com/ssx_forum/v ... 69#p333069
  • Author
  • Localization

GHFear, posted Thu Jan 31, 2019 2:14 pm (43013)


Hey :) This should probably be moved to Game Archive, but don't worry about it.
Also, upload one or two of the .big files and post a link here and I can take a look at it.
  • Author
  • Localization

NightHawk, posted Thu Jan 31, 2019 3:16 pm (43014)


Alright, so i'd need the folowing texture files out of the beta "TEXPS2.big" file. (I named it beta-TEXPS2.big):

brodi1_bord.ssh

brodi7_bord.ssh

eddie1_bord.ssh
eddie2_bord.ssh
eddie3_bord.ssh
eddie4_bord.ssh
eddie5_bord.ssh
eddie6_bord.ssh
eddie7_bord.ssh
eddie8_bord.ssh
eddie9_bord.ssh

eddie11_bord.ssh

marisol1_bord.ssh
marisol2_bord.ssh
marisol3_bord.ssh
marisol4_bord.ssh
marisol5_bord.ssh
marisol6_bord.ssh
marisol7_bord.ssh
marisol8_bord.ssh
marisol9_bord.ssh

psymon2_bord.ssh

seeiah1_bord.ssh

jp1_bord.ssh

luther1_bord.ssh
luther2_bord.ssh
luther3_bord.ssh
luther4_bord.ssh
luther5_bord.ssh
luther6_bord.ssh
luther7_bord.ssh

mac1_bord.ssh

moby1_bord.ssh

zoe1_bord.ssh

mmm1_bord.ssh


and have them replace the ones in the final TEXPS2.big (I left it named like that)

Here are the 2 .big files:
https://mega.nz/#!wEtARSZB!WEMhvMg6gvaG ... Dp4VB_Mr4s
  • Author
  • Localization

GHFear, posted Fri Feb 01, 2019 9:34 am (43047)


I made a script for that type of package now.

Code:
endian big
idstring \xC0\xFB
goto 4
get  AMOUNT short

goto 7
get OFFSET0 short
get DUMMY0 byte
get SIZE0 short
get NAME0 string


log NAME0 OFFSET0 SIZE0


for i = 1 < AMOUNT - 1
    goto -1 0 SEEK_CUR
    get OFFSET long
   get DUMMY1 byte
    get SIZE short
    get NAME string
   log NAME OFFSET SIZE
next i


Put that into a .txt file and rename to .bms and run it with QuickBMS and it will export the ssh files from the big file.
  • Author
  • Localization

NightHawk, posted Fri Feb 01, 2019 10:03 am (43048)


- signature of 6 bytes at offset 0x00000000 doesn't match the one
expected by the script:

this one: "'?"
c0 fb 27 96 01 3f ..'..?

expected: "xC0xFB"
78 43 30 78 46 42 xC0xFB

- 0 files found in 0 seconds
coverage file 0 0% 6 5247378 . offset 00000006

:(
  • Author
  • Localization

GHFear, posted Fri Feb 01, 2019 10:08 am (43049)


on what file? a .big file?

Upload the file that doesn't work so I can see why.
  • Author
  • Localization

GHFear, posted Fri Feb 01, 2019 10:18 am (43051)


try this attached script: it's my script and it works for both the files you sent.
Maybe you copy pasted it a little *SPAM* x) weird spaces and such.

bigSSX.zip

  • Author
  • Localization

NightHawk, posted Fri Feb 01, 2019 10:24 am (43052)


Thanks alot. Yes, that script worked :D
  • Author
  • Localization

Acewell, posted Fri Feb 01, 2019 5:05 pm (43071)


this what i got from it, streamlined a bit. :D
Code:
# script for QuickBMS http://aluigi.altervista.org/quickbms.htm

endian big
get FOLDER basename
idstring "\xC0\xFB"
get STR_TBL_SZ short
get FILES short
for i = 0     get OFFSET threebyte
    get SIZE threebyte
    get NAME string
    string NAME p "%s\%s" FOLDER NAME
    log NAME OFFSET SIZE
next i
  • Author
  • Localization

GHFear, posted Sat Feb 02, 2019 5:08 am (43092)


Acewell wrote:
this what i got from it, streamlined a bit. :D
Code:
# script for QuickBMS http://aluigi.altervista.org/quickbms.htm

endian big
get FOLDER basename
idstring "\xC0\xFB"
get STR_TBL_SZ short
get FILES short
for i = 0     get OFFSET threebyte
    get SIZE threebyte
    get NAME string
    string NAME p "%s\%s" FOLDER NAME
    log NAME OFFSET SIZE
next i


I gotta see if that works. I did the same thing and it told me threebytes were invalid or something when I ran the script. x) Thats way cleaner and would work for sizes larger than a Short. ^^
Edit: I have no idea what I did wrong when I tried threebytes, but they worked fine now. I am new to this, so I am still learning :) Thanks, Acewell.
  • Author
  • Localization

NightHawk, posted Sun Mar 07, 2021 5:15 pm (62718)


Alright, some time has passed and I've started to work on this again. I'm fairly happy with the results so far, but theres still a few bugs I want to fix.
For example: for some reason the beta textures have the character "Mac" listed as "Marty" on one of the billboards (Marty was only used as a character in PAL regions).

I managed to extract the textures from the corresponding .big file using the script above. But for some reason I can't re-import any .ssh file back into the .big archive.
It always comes up with the error: "signature of 2 bytes at offset 0x00000000 doesn't match the one
expected by the script"

I've attached both the .big archive and 2 example .ssh textures i'd like to reimport into it. Maybe you guys can help me out with an import script. :?

Here's a WIP of what i've managed to do so far:
https://www.youtube.com/watch?v=cAIZSCTuIHA
  • Author
  • Localization

NightHawk, posted Wed Mar 10, 2021 12:58 pm (62776)


bump
  • Author
  • Localization

ssxmapper, posted Tue Oct 25, 2022 9:49 pm (73979)


What about code in :
https://github.com/GlitcherOG/SSX-Collection-Multitool
https://github.com/SSXModding/bigfile
Have they made tools to re-compress the big file?

I made code to extract the big files and decompress them, as I found quickbms only extracted, did not decompress - which is need for some files. I found that after using quickbms I then needed to run to QFS2FSH.EXE on each file to decompress (the Need for Speed game compression). I guess I build that tool in the past? Or found it somewhere. The code is:
https://sites.google.com/site/2torcs/la ... misc-stuff

But they also talk about how to go the other way, to make an FSH file from a directory of bitmaps using Fshtool, so that may also work for Ssh files:
https://sites.google.com/site/2torcs/la ... o---readme

My code to extract and decompress all the big files (which also correct extracts the ssh files from all big files in SSX and SSX tricky) is here:
https://github.com/SsxMapper/SSXandTrickyMapExtractor
Which also extracts the curved surfaces from the SSX and SSX Tricky maps in a format that can be loaded into blender:
https://youtu.be/d3-8wFibjC4

Be great if someone can write a tool using that code to go the other way and correctly compress and pack the big files.
  • Author
  • Localization

ssxmapper, posted Tue Oct 25, 2022 9:53 pm (73980)


There is also

- QFS2FSH, which expands compressed QFS files into uncompressed FSH files
- FSH2QFS, which does the reverse job of creating compressed QFS files
- FSH2BMP, which converts a FSH file into a directory of Windows bitmaps.
- BMP2FSH, which does the reverse job of reassembling a FSH file.

In https://drive.google.com/drive/folders/ ... _antivirus

I've not tried it (or know if it is safe to use). Source code might be here:
http://www.math.polytechnique.fr/cmat/a ... ex.us.html
under QFS Suite source code
  • Author
  • Localization

GlitcherOG, posted Wed Dec 07, 2022 12:33 pm (74482)


ssxmapper wrote:
What about code in :
https://github.com/GlitcherOG/SSX-Collection-Multitool
https://github.com/SSXModding/bigfile
Have they made tools to re-compress the big file?

Found this thread my accidently googling my github link
To answer anyone who finds this thread, yes the multitool can re-compress the .big files and make custom .ssh texture files
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.