Hey,
Any chance you can expand this great program to support the recent game, Dreamfall: The Longest Jouney? It uses PAK files, but I don't know any more than that.
Important information: this site is currently scheduled to go offline indefinitely by end of the year.
Dreamfall
Hey guys. I would also like to make a request for this game. The soundtrack is phenominal and I really want to get ahold of some of the tracks.
It looks to me like the archives are not compressed. I was able to compress one of the files from 16 MB to 3.7 MB. They are in a custom .PAK format, and appear to also include all the event triggers and animation sequences and whatnot.
I wish I knew how to do this, I'd do it myself. I have included the 3MB sample archive for examination.
[Download Here] (sorry for the crappy host.. my usual one is dead)
Would really appreciate if someone could check this one out.
Thanks!!
It looks to me like the archives are not compressed. I was able to compress one of the files from 16 MB to 3.7 MB. They are in a custom .PAK format, and appear to also include all the event triggers and animation sequences and whatnot.
I wish I knew how to do this, I'd do it myself. I have included the 3MB sample archive for examination.
[Download Here] (sorry for the crappy host.. my usual one is dead)
Would really appreciate if someone could check this one out.
Thanks!!
-
- Moderator
- Posts: 411
- Joined: Mon Oct 24, 2005 8:52 am
- Location: Sweden
- Been thanked: 16 times
- Contact:
hi there!
archive contains mostly DDS images
and WAVE files. also some script files, (like vertex shaders and stuff).
Jaeder Naub could be used to rip out data from this archive type.
i dont have the soundtrack archives so i dont know if jaeder naub supports
ripping those yet.
http://wiki.xentax.com/index.php/Jaeder_Naub
be sure to have DDS and RIFF selected as ripping options.
and WAVE files. also some script files, (like vertex shaders and stuff).
Jaeder Naub could be used to rip out data from this archive type.
i dont have the soundtrack archives so i dont know if jaeder naub supports
ripping those yet.
http://wiki.xentax.com/index.php/Jaeder_Naub
be sure to have DDS and RIFF selected as ripping options.
-
- beginner
- Posts: 21
- Joined: Thu Apr 27, 2006 1:51 pm
-
- beginner
- Posts: 21
- Joined: Thu Apr 27, 2006 1:51 pm
I went through the pak files with a hex editor, and it seems the textures are in png format (I see code like "art/npc/casablanca/helena_zhang/textures/helena_tex_casual.png<bh:00>4art/npc/casablanca/helena_zhang/
textures/syringe.png<bh:00>8art/npc/casablanca/helena_zhang/textures/syringe_nml.png<bh:00>3art/npc/
casablanca/watilla/textures/watilla_nml.png<bh:00>3art/npc/casablanca/watilla/textures/watilla_tex.png", however the ripped textures are in dds format. Any idea why? The voice and music all seem to be mp3.
textures/syringe.png<bh:00>8art/npc/casablanca/helena_zhang/textures/syringe_nml.png<bh:00>3art/npc/
casablanca/watilla/textures/watilla_nml.png<bh:00>3art/npc/casablanca/watilla/textures/watilla_tex.png", however the ripped textures are in dds format. Any idea why? The voice and music all seem to be mp3.
-
- beginner
- Posts: 21
- Joined: Thu Apr 27, 2006 1:51 pm
-
- beginner
- Posts: 21
- Joined: Thu Apr 27, 2006 1:51 pm
-
- Moderator
- Posts: 411
- Joined: Mon Oct 24, 2005 8:52 am
- Location: Sweden
- Been thanked: 16 times
- Contact:
uh oh
Oh shit. someone actually tries to use the injector =o
*omfg*, errhh. ill get back to this later today. first of all be sure to
back up the original archive you are trying to inject too.
because, if jaeder naub does ANYTHING wrong it will screw up the whole archive. just 1 byte wrong and the game would be destroyed.
i have myself successfully used the injector on some games just
for testing.
ill try to write a tutorial and put it up later today. im fully aware
of that the injector is kinda shit too use, its not very userfriendly yet,
sorry for that :/
*omfg*, errhh. ill get back to this later today. first of all be sure to
back up the original archive you are trying to inject too.
because, if jaeder naub does ANYTHING wrong it will screw up the whole archive. just 1 byte wrong and the game would be destroyed.
i have myself successfully used the injector on some games just
for testing.
ill try to write a tutorial and put it up later today. im fully aware
of that the injector is kinda shit too use, its not very userfriendly yet,
sorry for that :/
-
- beginner
- Posts: 21
- Joined: Thu Apr 27, 2006 1:51 pm
-
- Moderator
- Posts: 411
- Joined: Mon Oct 24, 2005 8:52 am
- Location: Sweden
- Been thanked: 16 times
- Contact:
hehehhahahahah =D
Hi there !!! =D , i was busy as hell. and went away from my appartment
the last 5 days. but ill try too give a quick explanation.
lets say you rip out a DDS texture from an archive, it would be named
like "dds_ 929_ 128755.dds"
the 929 number would be the offset were in the file it was located,
and the 128755 number would be the detected length of the texture.
now, open up photoshop and manipulate the texture as you want,
and make sure to save it with the same name as the ripped name,
because the injector will use the variables stored in the name
when it was first ripped.
you could however name it too ddx_ 929_ 128755.dds instead
to keep the original.
when you want to replace the texture, (Make sure you have it saved in the exact same format as it was ripped in, like DXT1, DXT3 or DXT5 or else the archive would be fucked up) start up jaeder naub, press file open
and select sourcefile (the DDS texture you want to inject),
now press "injector" and select the destination archive,
after the archive is selected make sure to press "Destination Archive" button in order to open it. you could also press "Reload Source" to be sure the correct offset values have been calculated.
when all this is done, press both check boxes "SafeCheck A" and "SafeCheck B", and then "INJECT".
this should inject your manipulated texture into the archive at the same place and length as it was ripped in. it will not matter if your file is larger or smaller than the ripped file, it will still go for the values stored in the name to prevent corruption of the archive.
if this works i would be glad to hear it, ive tried it on Max Payne 2 without
good results, but i think they have some CRC checking or something, because when i hex the archive after injection everything looks just as it
should.
i can only hope it works =o
maybe i could make an graphical walkthrough if this doesnt help,
just not right now =D
the current version of jaeder saves the DDS length with -128 in bytes, and
is not correct. BUT, it should not affect the injection of the textures anyway. the new version has this fixed but will not be released yet due to
other fixes being made.
the last 5 days. but ill try too give a quick explanation.
lets say you rip out a DDS texture from an archive, it would be named
like "dds_ 929_ 128755.dds"
the 929 number would be the offset were in the file it was located,
and the 128755 number would be the detected length of the texture.
now, open up photoshop and manipulate the texture as you want,
and make sure to save it with the same name as the ripped name,
because the injector will use the variables stored in the name
when it was first ripped.
you could however name it too ddx_ 929_ 128755.dds instead
to keep the original.
when you want to replace the texture, (Make sure you have it saved in the exact same format as it was ripped in, like DXT1, DXT3 or DXT5 or else the archive would be fucked up) start up jaeder naub, press file open
and select sourcefile (the DDS texture you want to inject),
now press "injector" and select the destination archive,
after the archive is selected make sure to press "Destination Archive" button in order to open it. you could also press "Reload Source" to be sure the correct offset values have been calculated.
when all this is done, press both check boxes "SafeCheck A" and "SafeCheck B", and then "INJECT".
this should inject your manipulated texture into the archive at the same place and length as it was ripped in. it will not matter if your file is larger or smaller than the ripped file, it will still go for the values stored in the name to prevent corruption of the archive.
if this works i would be glad to hear it, ive tried it on Max Payne 2 without
good results, but i think they have some CRC checking or something, because when i hex the archive after injection everything looks just as it
should.
i can only hope it works =o
maybe i could make an graphical walkthrough if this doesnt help,
just not right now =D
the current version of jaeder saves the DDS length with -128 in bytes, and
is not correct. BUT, it should not affect the injection of the textures anyway. the new version has this fixed but will not be released yet due to
other fixes being made.
-
- beginner
- Posts: 21
- Joined: Thu Apr 27, 2006 1:51 pm
Thanks! That seemed to work allright, but I'm still having issues. I'll try to work them out myself first, because I think it's something I'm doing, rather than a problem with the program. As a test, I'm trying to change the colour of a purple monkey. The changed texture only appears in certain places on the model, the ones closer to the camera. I think that means it's something to do with mipmapping, so I'm gonna look into it some more. If you have any ideas though, please let me know. Thanks so much for the tut
-
- Moderator
- Posts: 411
- Joined: Mon Oct 24, 2005 8:52 am
- Location: Sweden
- Been thanked: 16 times
- Contact:
Yes!
That certainly has to do with mip maps, you could try
pressing the "Generate Mip Maps" button on the DDS Plugin.
but if you loaded the texture it should have displayed a
dialog with "This texture contains mip maps, do you want to load them?"
, you should press "No" there if you want to generate them later upon saving.
glad atleast the archive wasnt fucked up =D, that meens the injector
has now been tested IRL and seems to work actually.
pressing the "Generate Mip Maps" button on the DDS Plugin.
but if you loaded the texture it should have displayed a
dialog with "This texture contains mip maps, do you want to load them?"
, you should press "No" there if you want to generate them later upon saving.
glad atleast the archive wasnt fucked up =D, that meens the injector
has now been tested IRL and seems to work actually.