Saturday, June 24, 2006

Duke 3D, re-visited

Duke 3D was used many years ago in neuro science: give people a task in the game and look with NMR, what happens in their brain. As far as I can remember, they used a patched binary of Duke Nukem 3D 1.3, which wrote out the absolute coordinates of the player over the time. The DMO recording format contains only the input actions and is not really helpful here (in my opinion).
Now I got new request from this science area to correct my DMO specs and LMPC, because the DMO text file does not represent the actual actions done. I was never quite sure about the DMO format but the requests from other people centered only around quake games, thus I never really finished the DMO support.
I tried (with partly success) to use the old MS-DOS binary of Duke Nukem 3D 1.3 (shareware) in DOSEMU under Linux (Suse Linux 10.1). In DOSBOX under Linux it did not work at all. I compiled the CVS source from cvs.icculus.org (only one small error to correct). But this gave me Duke Nukem 3D 1.5, where the DMO file format is slightly different.
I updated LMPC to read the new DMO header but the data compression still makes problems. Then I looked at the actual input data and found, that my old DMO description is indeed completely wrong. I updated this part of LMPC too.
The next step is to bring the DOSEMU method to run at last to check, if the new input format is correct. Then I'll copy the new uncompression routines out the published source code and incorporate it in LMPC. In the end LMPC will hopefully be able to understand all variants of DMO. Then is a good time to update the DMO specs and release a new LMPC.
I was a bit injured during the tae kwon do class last monday and can't currently participate. Thus I expect to get all this Duke stuff done fairly quickly.