View unanswered posts | View active topics It is currently 28 Mar 2024, 13:57



Reply to topic  [ 3 posts ] 
How to unpack MDK2 data. 
Author Message
Puppy Wuppy
Puppy Wuppy
User avatar

Joined: 15 Feb 2013, 15:56
Posts: 20
Post How to unpack MDK2 data.
Data files are in \data\ directory. They're packed in ZIP files with propretary compression (PKImploding). PKZIP can unpack those.
All files are mounted onto logical file system, in one logical directory. \override\ directory is mounted on top of ZIP files, allowing bioware to release script patches without giving out whole archive with each update.

Code:
\data\base.zip    -- contains most of misc stuff.
  Textures.txt    -- dunno what is this.
  *.bsp           -- looks like compiled level files. At least Quake names level files with this extension.
  *.lua           -- yup, some scipts got into base.zip (usualy something insignificant)
  *.mod           -- models. Including angel.mod, which isn't preloaded in any of levels, meaning that "he" isn't seen in game as a secret or something.
  demo1_5.omn     -- the demo. I have information on how to record them. There was way more demos in DC version.
  stars.sta       -- again, dunno. Maybe that's some kind of echanced (i.e. secret on level 4 with developers in stars) skybox or something.
  *.tex           -- textures, duh...
\data\local.zip   -- Bunch of wav files, with voices. Note that those are raw, and I didn't find proper settings yet. I think I remember settings for DC version.
                  -- Also, note that there is also some other files, like textures. Basicaly, this archive contains material for localization. Files include:
  local.lua       -- This contains one line: chSetLanguage(0)
  tex.lua
  mdk2.str
  jd_mirror00.tex
  jd_mirror01.tex
  loading.tex
  SelGun1L.tex
  SelHth1L.tex
  SelItm1L.tex
                  -- Most are self explanatory. Some translations (khm-khm, Russian from 1C, khm-khm) can add some other files here, because local.zip is loaded after base.zip (or even after scripts.zip).
                  -- Those include:
  dialogfont.lua
  font.lua
  dialogfont.tex
  font.tex
\data\scripts.zip -- duh, I need to explain? *.lua everywhere!
\data\sounds.zip  -- .wav files not intended for localization. Like random noise, etc.


Also, about some other translations. Seems like some pirates (khm-khm, Russian from Fargus, khm-khm) couldn't figure out how to unpack ZIP files (in 7-Zip or WinRar, you will see list of files, but will not be able to unpack them), so they assumed that wav files have headers and blindly translated stuff and put it into \override\. (i.e. they had to find which file corresponds to which dialog in game, by putting file into \override\)
This leads me to two conclusions:
1) Noobs do twice the work.
2) MDK2 can play wav files with headers.

P.S. Sorry for grammarz. Wasn't typing in English for few weeks. Also, I was (and still) sick.
P.P.S. (totaly unrelated) Wooo! Speedruners discovered new glitch in Super Mario World, and new World Record is now under 10 minutes! #sub10hype

_________________
Programming is love. Programming is life. Respect C. Love Java. Enjoy C#. Like C++. Have fun with Lua. Hate Python. Abuse Low-level. Blame Microsoft. Be always off by one. Remember 3 features of OOP: Encapsulation, Inheritance, Polymorphism.


20 Jun 2014, 09:58
Profile
Puppy Wuppy
Puppy Wuppy
User avatar

Joined: 15 Feb 2013, 15:56
Posts: 20
Post Re: How to unpack MDK2 data.
Quick update: you don't really need to install PKZIP to unpack data. There's small portable program called ZIPReader also made by PKZip. It can be found on PKZIP website, but here's link avoiding page that asks for your email: *click*

P.S. technically speaking it's not portable. It actually writes stuff to registry. When you first run it, it asks you if you'd like it to copy it-self to desktop, and if you'd like to associate .zip files with it. I believe that is it.

P.P.S. It will unpack all files from an archive into folder named as archive, and write log file archivename-ZIPReader.log, all inside directory with an archive.
Example:
Archive: C:\data.zip
Unpacked data: C:\data\*
Log file: C:\data-ZIPReader.log
--
And it also supports drag-and-drop, but it shows you annoying dialog box telling you how many files it unpacked after every archive.

_________________
Programming is love. Programming is life. Respect C. Love Java. Enjoy C#. Like C++. Have fun with Lua. Hate Python. Abuse Low-level. Blame Microsoft. Be always off by one. Remember 3 features of OOP: Encapsulation, Inheritance, Polymorphism.


09 Oct 2015, 19:22
Profile
Puppy Wuppy
Puppy Wuppy
User avatar

Joined: 17 Nov 2012, 19:34
Posts: 10
Post Re: How to unpack MDK2 data.
Since the sound effects are headerless and cannot be played back outside the game, I was thinking about different solution. That is recording the gameplay using some software like Fraps

The problem is, I cant get most sound clear - they are heard simultaneously and there are few silent sections in the game.

Is there a console command, that makes the game play sound effects on demand?


24 Jan 2016, 16:03
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 3 posts ] 

Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF.