Namco PSX archives (*.BNS)
-
- Posts: 367
- Joined: Fri Mar 10, 2017 7:23 am
Namco PSX archives (*.BNS)
This format is used on Soul Edge (Soul Blade in US and Europe) and Tekken
The archives didn't have a table of contents at the header, instead some strings that usually identifies which games using the archive.
And looks like the TOC was stored on the game's executable
Here's the example (Examples from Soul Edge)
If needed I can upload the game executables too.
The archives didn't have a table of contents at the header, instead some strings that usually identifies which games using the archive.
And looks like the TOC was stored on the game's executable
Here's the example (Examples from Soul Edge)
If needed I can upload the game executables too.
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
Re: Namco PSX archives (*.BNS)
Yeah no TOC for me too, let's try with the exe
-
- Posts: 367
- Joined: Fri Mar 10, 2017 7:23 am
Re: Namco PSX archives (*.BNS)
okay exe uploaded
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
Re: Namco PSX archives (*.BNS)
It's just a waste of time for various reasons.
Anyway I wrote a script to dump something but don't ask me what are these files:
http://aluigi.org/bms/soul_edge_bns.bms
Anyway I wrote a script to dump something but don't ask me what are these files:
http://aluigi.org/bms/soul_edge_bns.bms
-
- Posts: 367
- Joined: Fri Mar 10, 2017 7:23 am
Re: Namco PSX archives (*.BNS)
I decided to bump this thread again
And, aluigi please try these files from Tekken 2 instead.
https://mega.nz/#!759Gma5K!zLo0idUOTRha ... 9T1-6mnTu4
at offset 0x41B8E in the executables (SLUS_002.13) there's filenames and their directories but I don't know where the offsets are.
Maybe this could help you pinpoint the archives structure more easily.
And, aluigi please try these files from Tekken 2 instead.
https://mega.nz/#!759Gma5K!zLo0idUOTRha ... 9T1-6mnTu4
at offset 0x41B8E in the executables (SLUS_002.13) there's filenames and their directories but I don't know where the offsets are.
Maybe this could help you pinpoint the archives structure more easily.
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
-
- Posts: 367
- Joined: Fri Mar 10, 2017 7:23 am
Re: Namco PSX archives (*.BNS)
I just tried the script and it seems it just extracting the segments of the executables only, but the archives wasn't accessed at all.
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
Re: Namco PSX archives (*.BNS)
The "log" operation is performed on the file you open, so BNS.
-
- Posts: 367
- Joined: Fri Mar 10, 2017 7:23 am
Re: Namco PSX archives (*.BNS)
Okay since I still couldn't get it right, I tried to wrote it myself.
However, the filename indexes are bit messy (Not to mention that the filenames also randomly assigned so getting which one with correct size and offset is quite tricky)
Also, how I found the file info addresses is because apparently someone already wrote the extractor long ago
However, I'm still looking for a way to extract Soul Edge's BNS archive because that extractor is incompatible with Soul Edge ones.
However, the filename indexes are bit messy (Not to mention that the filenames also randomly assigned so getting which one with correct size and offset is quite tricky)
Also, how I found the file info addresses is because apparently someone already wrote the extractor long ago
Code: Select all
open FDSE "SLUS_002.13" 0
open FDSE "TEKKEN2.BNS" 1
goto 0x960
for i = 0 < INFO
get DUMMY long
get offset long
math offset * 0x800
get SIZE long
putarray 0 i OFFSET
putarray 1 i SIZE
if OFFSET == 0x00000000
break
endif
next i
goto 0x4A716
for i = 0 < NAMES
get NAMES string
putarray 2 i NAMES
padding 0x3
savepos NAMES
if NAMES == 0x0004f476
break
endif
next i
for i = 0 < FILES
getarray OFFSET 0 i
getarray SIZE 1 i
getarray NAMES 2 i
log NAMES OFFSET SIZE 1
next i
However, I'm still looking for a way to extract Soul Edge's BNS archive because that extractor is incompatible with Soul Edge ones.
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
Re: Namco PSX archives (*.BNS)
The variables INFO and FILES are not set.
The names are less than the available files, that one is not a table with the filenames so what you get is wrong.
If it's not possible to get the correct filenames the only solution is using sequential names with guessed extensions.
The names are less than the available files, that one is not a table with the filenames so what you get is wrong.
If it's not possible to get the correct filenames the only solution is using sequential names with guessed extensions.
-
- Posts: 367
- Joined: Fri Mar 10, 2017 7:23 am
Re: Namco PSX archives (*.BNS)
Okay, some update regarding Soul Edge's BNS....
Apparently, the TOC lacks the information of which archives is accessed (There's two another archives besides SOULOVL.BNS, named SOUL.BNS and SOULSYS.BNS), so the only way to guess it was subtract it by 0x10 from the each starting offsets and checks if the hex values of the subtracted offsets are equals to 0x10 zeroes for the each archives (after each offsets there's lot of 0x10 zeroes).
But it created problems for the very first offsets (0x800). As you can see, after the ASCII header of the each BNS ("Legend of Evil Sword...."), there's a lot of zeroes too before the 0x800. Also, since the 0x800 (0x01) listed three times with different sizes, here's the size info i gathered from the TOC (also helped by trying to match it with the each archives using HxD)
0x1a3e8 (107496) = SOULOVL.BNS
0x18404 (99332) = SOULSYS.BNS
0x24F0 (9456) = SOUL.BNS
About the another two files I mention, here's the link
https://mega.nz/#!qkdXmAAR!SYrinFHzx2tl ... vvHSZM-KQs
Apparently, the TOC lacks the information of which archives is accessed (There's two another archives besides SOULOVL.BNS, named SOUL.BNS and SOULSYS.BNS), so the only way to guess it was subtract it by 0x10 from the each starting offsets and checks if the hex values of the subtracted offsets are equals to 0x10 zeroes for the each archives (after each offsets there's lot of 0x10 zeroes).
But it created problems for the very first offsets (0x800). As you can see, after the ASCII header of the each BNS ("Legend of Evil Sword...."), there's a lot of zeroes too before the 0x800. Also, since the 0x800 (0x01) listed three times with different sizes, here's the size info i gathered from the TOC (also helped by trying to match it with the each archives using HxD)
0x1a3e8 (107496) = SOULOVL.BNS
0x18404 (99332) = SOULSYS.BNS
0x24F0 (9456) = SOUL.BNS
About the another two files I mention, here's the link
https://mega.nz/#!qkdXmAAR!SYrinFHzx2tl ... vvHSZM-KQs