Need help decompressing graphics from NBA Hangtime (PSX)

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
ponlork
Posts: 4
Joined: Fri Apr 22, 2022 1:19 pm

Need help decompressing graphics from NBA Hangtime (PSX)

Post by ponlork »

I'm trying decompress the players head sprites from NBA Hangtime for the PS1, I located exactly where the head graphics are stored but I am unable to decompress it.

There's a file named BIGLUMP.BIN on the disc and at offset D1000 is where the heads start:
Image

I've uploaded all the relevant files here:
https://drive.google.com/drive/folders/ ... sp=sharing

basically it's categorized by Teams in alphabetical order, so the first team is the Atlanta Hawks with Dikembe Mutombo as the first player. And each player data is separated by a message that reads ""Gary Liddon BYC rules the world as caffeine boy".

I found another game that was programmed by Gary Liddon called SpongeBob SquarePants: SuperSponge and the source code is available online: https://github.com/hazelcode/SBSPSS

That game also contains a BIGLUMP.bin file and I thought maybe the two games shared similar tools and formats. At first I thought the heads might be a uncompressed .gfx file and I used a tool from the github called Tga2Gfx.exe but when comparing the hex it don't resemble that.

then I thought it might be compressed and I use the tool lznp.exe, and it did decompress something but I couldn't get it any image to display in TiledGGD.

I've recently released a mod for a similar game called NBA Jam 22 ver1.4, and the heads in that one are uncompressed, while the body sprites use Rob Northen-compression. I believe hangtime uses a similar template for the heads.

here's a example of how the head data look in NBA Jam:
Image

In hangtime, the head order seems the same, at offset D1000 is the backhead, then at D1100 is the upright angle facing away, then at D1260 is the perfect side view angle. I haven't gone down much further but I confirm these are where the heads are stored by blanking the hex with zeros and it corrupted the image. I've also copied the hex portion for the side view angle to the backhead angle and it does swap the image though it came out disjointed.

I also think that each angle is it's own individual sprite that is compressed opposed to it being in a spritesheet like NBA Jam. This allows for players to have long hair and wear top hats and stuff. Anyway, thanks for reading and any help would be appreciated.
rabatini
Posts: 179
Joined: Tue Jan 18, 2022 12:21 am

Re: Need help decompressing graphics from NBA Hangtime (PSX)

Post by rabatini »

Hi,
have to have the hdr file and the bin in same folder.
It will unpack your file, execpted for the last file, because need to do an if treatment, maybe someone can do that for you.
there has a total of 314 files this file and this scrip will extract 313.

Code: Select all

OPEN FDSE "BIGLUMP.HDR"
OPEN FDSE "BIGLUMP.BIN" 1
GET FILE ASIZE 1
GET ENTRIES LONG
FOR RIP = 1 TO ENTRIES
GET OFFSET LONG
GET NULL LONG
GETDSTRING NAME 0X0C
GET NULL LONG
SAVEPOS TEMP
GET SIZE LONG
GOTO TEMP
XMATH SIZE "(SIZE - OFFSET)"

LOG NAME OFFSET SIZE   1

NEXT RIP

ponlork
Posts: 4
Joined: Fri Apr 22, 2022 1:19 pm

Re: Need help decompressing graphics from NBA Hangtime (PSX)

Post by ponlork »

rabatini wrote:Hi,
have to have the hdr file and the bin in same folder.
It will unpack your file, execpted for the last file, because need to do an if treatment, maybe someone can do that for you.
there has a total of 314 files this file and this scrip will extract 313.

Code: Select all

OPEN FDSE "BIGLUMP.HDR"
OPEN FDSE "BIGLUMP.BIN" 1
GET FILE ASIZE 1
GET ENTRIES LONG
FOR RIP = 1 TO ENTRIES
GET OFFSET LONG
GET NULL LONG
GETDSTRING NAME 0X0C
GET NULL LONG
SAVEPOS TEMP
GET SIZE LONG
GOTO TEMP
XMATH SIZE "(SIZE - OFFSET)"

LOG NAME OFFSET SIZE   1

NEXT RIP




Hello, thanks for your help. It split the files out of the BIGLUMP.bin, however it doesn't decompress the graphics. it just saves the portion of code I was inspecting into a HEADGFX.BIN file.

Image

I was wondering if anyone can recognize the compression algorithm this is using?
rabatini
Posts: 179
Joined: Tue Jan 18, 2022 12:21 am

Re: Need help decompressing graphics from NBA Hangtime (PSX)

Post by rabatini »

I was wondering if anyone can recognize the compression algorithm this is using?

Its just unpack.
but now is better to see the files separetely.
ponlork
Posts: 4
Joined: Fri Apr 22, 2022 1:19 pm

Re: Need help decompressing graphics from NBA Hangtime (PSX)

Post by ponlork »

ah yes that'll be very helpful later if i can get the head graphics to display. it'll make it easier to modify the game. I'm going to research other games programmed by Gary, maybe that'll yield to some more clues. I know he worked on Diablo as well
ponlork
Posts: 4
Joined: Fri Apr 22, 2022 1:19 pm

Re: Need help decompressing graphics from NBA Hangtime (PSX)

Post by ponlork »

maybe it's in a compressed .pak file?
https://github.com/hazelcode/SBSPSS/blo ... ls/pak.cpp