Jump to content

[Zeebo] Crash Bandicoot Nitro Kart 3D ( .vfs files )


Recommended Posts

Posted (edited)
10 hours ago, Rabatini said:

In QuickBMS reimport mode, yes!, The game does not accept reimport 2 or 3 provided by QuickBMS because, for larger files, QuickBMS puts them at the end of the file and redirects to them, which the game does not accept. The solution that might work is to create a tool that unpacks and packs the files, recalculating all pointers.

Example of What Happens with QuickBMS

Original:

File number 10 = offset 0x00, size = 16 bytes

File number 11 = offset 0x10, size = 16 bytes

File number 12 = offset 0x20, size = 16 bytes

File number 13 = offset 0x30, size = 16 bytes

File number 666 (last file) = offset 0x400, size = until the end of the file

QuickBMS Reimport 2:

File number 10 = offset 0x00, size = 16 bytes

File number 11 = offset 0x10, size = 18 bytes (the file that was edited and is now larger)

File number 12 = offset 0x410, size = 16 bytes

File number 13 = offset 0x30, size = 16 bytes

File number 666 (last file) = offset 0x400, size = 16 bytes

The Correct Sequence Should Be:

File number 10 = offset 0x00, size = 16 bytes

File number 11 = offset 0x10, size = 18 bytes (the file that was edited and is now larger)

File number 12 = offset 0x22, size = 16 bytes

File number 13 = offset 0x32, size = 16 bytes

File number 666 (last file) = offset 0x402, size = until the end of the file

All pointers need to point sequentially.

Got It, but still, thank you very much for all the help.

It's a shame that I won't be able to change the sound effects or music, but I've already managed to modify some textures just to test and see what will happen using your script.

 

cRASHTESTE.jpg.43244494f89c16ce9c668323c79e46a1.jpg

 

I'm just a little confused on how I reimport compressed files, I confess that I don't understand this part very well.

For example, Crash's texture is 0000016d.dat (using the script that does not decompress the files) / 0000016d.png (using the script that decompresses and separates the files), how should I proceed here?

Edited by moonsarito1
Link to comment
Share on other sites

I wrote a VSF UNPACK/PACK program and a new decompressor/compressor for zlib. Now, it accepts large files and there's no need to use QuickBMS anymore.

The .vfs file can now be larger than the original. I did a test, and it worked with the image below, maybe you can put music and soundeffects as well,

If the .py file doesn't work, you must install tkinter via pip.

image.png.9e923ccda04cec7b37c2c5b013ee8956.png

VFS_PackUnpack_Tool.py zlib_DeCompressor.py

Edited by Rabatini
Link to comment
Share on other sites

9 hours ago, Rabatini said:

I wrote a VSF UNPACK/PACK program and a new decompressor/compressor for zlib. Now, it accepts large files and there's no need to use QuickBMS anymore.

The .vfs file can now be larger than the original. I did a test, and it worked with the image below, maybe you can put music and soundeffects as well,

If the .py file doesn't work, you must install tkinter via pip.

image.png.9e923ccda04cec7b37c2c5b013ee8956.png

VFS_PackUnpack_Tool.py 6.94 kB · 2 downloads zlib_DeCompressor.py 7.27 kB · 2 downloads

Thank you so much, really, I can't tell you how grateful I am, I've already started making some texture mods thanks to you.

image.png.4824918fb11fcc8ce9afd1c556636113.png

Texturing.jpg.eb011700a09681dfe00f17423e15a5d4.jpg

NeoCortex.jpg.6edea1e86b57e62ae58dd7ebf82861a2.jpg

Yoyo.jpg.ea3499d3e3c2c624d17d9fee1bb0eed9.jpg

My plan is to keep the character design as close to Crash Bandicoot 4. (I redesigned Yoyo Panda in this case alone, but I'm thinking about re-doing it to make it in a style more similar to Crash Team Racing Nitro Fueled)

Your VFS PackUnpack worked perfectly (I noticed that the file names are different than when I used the previous script with QuickBMS which made me lose the location of some files, but it still worked perfectly)

But unfortunately I didn't have any luck using the zlib DeCompressor for the audio files, I tried using it with some files (the ones I believe to be audio) but it didn't work, It worked with the texture files though, but I haven't tested its repack function yet.

 

 

 

 

 

Link to comment
Share on other sites

3 hours ago, moonsarito1 said:

Thank you so much, really, I can't tell you how grateful I am, I've already started making some texture mods thanks to you.

image.png.4824918fb11fcc8ce9afd1c556636113.png

Texturing.jpg.eb011700a09681dfe00f17423e15a5d4.jpg

NeoCortex.jpg.6edea1e86b57e62ae58dd7ebf82861a2.jpg

Yoyo.jpg.ea3499d3e3c2c624d17d9fee1bb0eed9.jpg

My plan is to keep the character design as close to Crash Bandicoot 4. (I redesigned Yoyo Panda in this case alone, but I'm thinking about re-doing it to make it in a style more similar to Crash Team Racing Nitro Fueled)

Your VFS PackUnpack worked perfectly (I noticed that the file names are different than when I used the previous script with QuickBMS which made me lose the location of some files, but it still worked perfectly)

But unfortunately I didn't have any luck using the zlib DeCompressor for the audio files, I tried using it with some files (the ones I believe to be audio) but it didn't work, It worked with the texture files though, but I haven't tested its repack function yet.

 

 

 

 

 

Send the audio files, i will take a look.
you have to rename the .riff to .wav, did you do that?

  • Like 1
Link to comment
Share on other sites

On 7/26/2024 at 7:13 AM, Rabatini said:

Send the audio files, i will take a look.
you have to rename the .riff to .wav, did you do that?

Sure, I believe that these three here are the files referring to the songs (they have more or less the same file size as the music file when I used the script you sent to extract the files with decompression, that's how I'm identifying the compressed files and I was able to extract the Crash texture):

image.png.431f50a548f377640d8c1440c8e2ca54.png

https://www.mediafire.com/file/itw2mqa3q3o0pk7/music_file_on_datavfs.zip/file

When I tried to extract any of these three that I believe are songs it gave me exactly the same error.

But both compress and decompress worked perfectly with files related to texture images. (as I said before, I even started editing the Crash texture which was one of the files that was compressed "ee898141.PLZP" I had no problems with it)

On 7/26/2024 at 4:49 PM, Durik256 said:

I made a plugin for Noesis for *.vfs unpacking (recursive unpacking, or first level (if you specify the extract_ORIG flag to True inside the plugin)). (inclusive of .zlib; .plzp; .lang; .vfs)

arc_zlib_plzp_lang_vfs.py

and plugin for *.vram (static), dont support level mesh

fmt_vram.py

-1.png.0a8b34e98f31250f5f7116258c28c8ec.png

Woah, let me get this straight, so now I can work with the game's 3D models too?

It would be amazing if I could change some of the models, I'm trying my best to improve the textures, but some characters like Ripper Roo are almost beyond salvation as they are so different from the original games.

Link to comment
Share on other sites

5 hours ago, moonsarito1 said:

Sure, I believe that these three here are the files referring to the songs (they have more or less the same file size as the music file when I used the script you sent to extract the files with decompression, that's how I'm identifying the compressed files and I was able to extract the Crash texture):

image.png.431f50a548f377640d8c1440c8e2ca54.png

https://www.mediafire.com/file/itw2mqa3q3o0pk7/music_file_on_datavfs.zip/file

When I tried to extract any of these three that I believe are songs it gave me exactly the same error.

But both compress and decompress worked perfectly with files related to texture images. (as I said before, I even started editing the Crash texture which was one of the files that was compressed "ee898141.PLZP" I had no problems with it)

Woah, let me get this straight, so now I can work with the game's 3D models too?

It would be amazing if I could change some of the models, I'm trying my best to improve the textures, but some characters like Ripper Roo are almost beyond salvation as they are so different from the original games.

zlib_DeCompressor.pyHere the DeCompressor update, now works with every file

Edited by Rabatini
  • Like 1
Link to comment
Share on other sites

13 hours ago, Rabatini said:

zlib_DeCompressor.pyHere the DeCompressor update, now works with every file

Thank you very much, I managed to extract the files.

I managed to modify some sound effects (they were .RIFF and then I changed them to .wav to identify them, then I changed them and changed them to .RIFF again, I compressed them and put them in the game and it worked), but for some reason I couldn't make them work with the songs.

I extracted some of them and saw them in .ID3 (I changed it to .mp3 to identify which song it was and then changed it and put it to .ID3 again to compress it and put it in the game similar to how I did with the sound effects), but for some reason, the game simply goes silent with just the sound effects.

I don't know if it's because the songs were much heavier or if it's some kind of incompatibility but I found it strange that the sound effects worked.

Link to comment
Share on other sites

10 hours ago, moonsarito1 said:

Thank you very much, I managed to extract the files.

I managed to modify some sound effects (they were .RIFF and then I changed them to .wav to identify them, then I changed them and changed them to .RIFF again, I compressed them and put them in the game and it worked), but for some reason I couldn't make them work with the songs.

I extracted some of them and saw them in .ID3 (I changed it to .mp3 to identify which song it was and then changed it and put it to .ID3 again to compress it and put it in the game similar to how I did with the sound effects), but for some reason, the game simply goes silent with just the sound effects.

I don't know if it's because the songs were much heavier or if it's some kind of incompatibility but I found it strange that the sound effects worked.

MP3 is kind of complicated because of the compression. Maybe the game only accepts certain bitrates, like 192kbps, and it might not accept higher bitrates like 256kbps.

 

  • Like 1
Link to comment
Share on other sites

17 hours ago, Rabatini said:

MP3 is kind of complicated because of the compression. Maybe the game only accepts certain bitrates, like 192kbps, and it might not accept higher bitrates like 256kbps.

 

I'll try it with different bitrates and post the result, but thank you very much for all the help so far.

Link to comment
Share on other sites

1 hour ago, PeteThePlayer said:

I want to look for the race track models/layouts of CBNK2 (iOS) actually but I cannot work out how to use the tools linked in this thread. Maybe someone can help me locate them?

I've uploaded the VFS file of the game here: https://www.mediafire.com/file/v6lrp9mtn4tivq2/data.vfs/file

Thanks in advance!!

The tool, works with your file.

unpack the .vfs file, and descompresse the plzp file with descompressor.

  • Like 1
Link to comment
Share on other sites

3 hours ago, PeteThePlayer said:

I want to look for the race track models/layouts of CBNK2 (iOS)

use my plugin for Noesis arc_zlib_plzp_lang_vfs.py (which I mentioned earlier)

it recursively unpacks all files, at the output you will get *.png, *.wav, *.pm3, *.vram, *.text, *.pvr and e.t.c

You can also find a link to the plugin for 3D models *.vram above in the same topic.

(*.pvr can open in PVRTexTool)

Edited by Durik256
  • Like 1
Link to comment
Share on other sites

6 hours ago, PeteThePlayer said:

I want to look for the race track models/layouts of CBNK2 (iOS) actually but I cannot work out how to use the tools linked in this thread. Maybe someone can help me locate them?

I've uploaded the VFS file of the game here: https://www.mediafire.com/file/v6lrp9mtn4tivq2/data.vfs/file

Thanks in advance!!

You made me curious if it's possible to port the lap tracks or 3D models from Crash Nitro Kart 2 to Zeebo's Crash Nitro Kart 1 and vice versa since apparently both were developed by the same company and use the same engine. (I'm very curious about how Zeebo will handle it since the Nitro Kart 2 models seem to have a much larger amount of polygons)

I intend to test this further but I'm currently a little short on time due to some problems at college (I even paused for a moment on the mod I was doing), but I can confirm that the scripts that Rabatini and Durik256 did work perfectly with the data.vfs you sent.

I wonder if it would work with other Polarbit games for the Zeebo that have a "data.vfs" as well like Ranging Thunder 2, Armageddon Squadron and Reckless Racing.

Link to comment
Share on other sites

Forgive my ignorance, I understand very little right about now and my brain is very slow sometimes so I may require you to dumb it down for me some more.

 

On 8/5/2024 at 8:25 PM, Rabatini said:

The tool, works with your file.

unpack the .vfs file, and descompresse the plzp file with descompressor.

But what's the actual program I need to use? The DeCompressor file is just a Python script and I don't really understand how to use it to decompress the VFS file.

 

On 8/5/2024 at 11:13 PM, Durik256 said:

use my plugin for Noesis arc_zlib_plzp_lang_vfs.py (which I mentioned earlier)

it recursively unpacks all files, at the output you will get *.png, *.wav, *.pm3, *.vram, *.text, *.pvr and e.t.c

You can also find a link to the plugin for 3D models *.vram above in the same topic.

(*.pvr can open in PVRTexTool)

I downloaded the file and put it in Noesis > plugins > python. Hope that's right. Noesis does detect the VFS file and if I open it, I have the option to export it but nothing happens when I do. I'm assuming it needs to be decompressed before this step?

 

On 8/6/2024 at 2:19 AM, moonsarito1 said:

You made me curious if it's possible to port the lap tracks or 3D models from Crash Nitro Kart 2 to Zeebo's Crash Nitro Kart 1 and vice versa since apparently both were developed by the same company and use the same engine. (I'm very curious about how Zeebo will handle it since the Nitro Kart 2 models seem to have a much larger amount of polygons)

I intend to test this further but I'm currently a little short on time due to some problems at college (I even paused for a moment on the mod I was doing), but I can confirm that the scripts that Rabatini and Durik256 did work perfectly with the data.vfs you sent.

I wonder if it would work with other Polarbit games for the Zeebo that have a "data.vfs" as well like Ranging Thunder 2, Armageddon Squadron and Reckless Racing.

Would quite trippy if you could play CBNK2 tracks in CBNK3D and vice versa. Very cool idea though!

Link to comment
Share on other sites

Quote

But what's the actual program I need to use? The DeCompressor file is just a Python script and I don't really understand how to use it to decompress the VFS file.

 

You have to install python and it libraries.

Find some doc in the google, about that.
them the .py should work.

  • Like 1
Link to comment
Share on other sites

5 hours ago, Rabatini said:

You have to install python and it libraries.

Find some doc in the google, about that.
them the .py should work.

am I doing something wrong? I just get an error message when selecting the file

fxhmdjcxfkd.png.ff784a815a65ffe1085b86e6307648a7.png

 

1 hour ago, Durik256 said:

 

yes you did the right thing. everything should work. I made a short video

6dHKfGg.gif

 

Not much more luck here either. Any help?

hjgfdkgfd.png.020553383e9a16d7ef853bb16ddd9eb6.png

Link to comment
Share on other sites

Quote

am I doing something wrong? I just get an error message when selecting the file

there is 2 tool, you need to use the  one that unpack the files from VSF. and uses the another one in the files unpacked.

but if you just need to extract images for fun, not with the reimport intettion, you can uses the friend noesis script in this topic.

Edited by Rabatini
  • Like 1
Link to comment
Share on other sites

I would just stick to the Noesis plugin then but clearly there's still something wrong there. Maybe I did something wrong when installing the plugin (no idea what I'd be doing wrong when all I need to do is drag the file into the correct folder). Let me know if somebody knows a fix or what the problem could be.

Alternatively I'd just accept a folder with all the extracted files too. That'd be enough for me if I got access to all the files haha

Link to comment
Share on other sites

6 hours ago, PeteThePlayer said:

I would just stick to the Noesis plugin then but clearly there's still something wrong there. Maybe I did something wrong when installing the plugin (no idea what I'd be doing wrong when all I need to do is drag the file into the correct folder). Let me know if somebody knows a fix or what the problem could be.

Alternatively I'd just accept a folder with all the extracted files too. That'd be enough for me if I got access to all the files haha

You're clearly doing something wrong, since you got an 'os' module missing error, but this is the standard library that is included in Python, (in core321.zip in Noesis), which is imported into its queue in inc_noesis.py

As soon as possible, try downloading the latest version of Noesis from the official website, and without deleting anything from its directories, add the plugin to the Python folder.

 

6 hours ago, PeteThePlayer said:

all the extracted files

also converted all pvr to png >> out.zip

 

*(update plugin, added extention *.xml, *.PSND)

Link to comment
Share on other sites

17 hours ago, Durik256 said:

You're clearly doing something wrong, since you got an 'os' module missing error, but this is the standard library that is included in Python, (in core321.zip in Noesis), which is imported into its queue in inc_noesis.py

As soon as possible, try downloading the latest version of Noesis from the official website, and without deleting anything from its directories, add the plugin to the Python folder.

 

also converted all pvr to png >> out.zip

 

*(update plugin, added extention *.xml, *.PSND)

Thanks for all that! I don't get the error on the newest version of Noesis any more. It finally worked but I can only view png files now. Am I still missing something for viewing models?

Just to be clear, the plugin is in Noesis > plugins > python and NOT in optional plugins > python

Is there any extra step I need to do with the plugin? I'm not familiar with Noesis at all so I may be missing something obvious.

Link to comment
Share on other sites

Thank you, I've finally got it to work for me too!

 

Already found some interesting unused things in there.

Does anybody have a clue which files hold the track layouts? They don't seem to be VRAM models at least. I've found PNG files for each track that look like overhead views but there's no way that those are the actual track layouts since a PNG is just two-dimensional, right?

And another thing: is there a way to enable the textures when viewing models?

  • Like 1
Link to comment
Share on other sites

On 7/31/2024 at 1:40 AM, moonsarito1 said:

I'll try it with different bitrates and post the result, but thank you very much for all the help so far.

If the tools works, you should mark as solution, for more people can see it in future!

best regards.

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...