Comments (12)
Your assumption is correct. The original data files are not supported and compatibility was broken by original developers even before the sources were released under GPL. While it is possible to add support for the original data files later, my current priority is to make the game playable all the way to the end and improve the less-than-perfect English translation.
I can clean up and upload my Python scripts for extracting data from the original game files. But in order to merge the original German translation into this repository, we'll need permission from @vslavik, the rest of the original development team and possibly also the German distributor. Otherwise someone will have to make a new German translation from scratch.
from signus.
I guess the scripts to extract the game data would be really helpful - that way one could just generate the files oneself independent of the license situation. (The German distributor has gone out of business a long time ago, so it may be difficult to find the current license holder...)
from signus.
We do not hold the rights for German localization, they were entirely with the distributor.
from signus.
In that case, data conversion script is the only thing we can add to this repo. @laenion I need you to look into the texts.dat file and tell me two things:
- What's the character encoding?
- There's an index of asset names at the end of each DAT file and the names have one-letter prefix (e.g. cwpnam9 in Czech version - the "c" is the prefix). Which prefix is used in the German version?
from signus.
Sure!
What's the character encoding?
The texts.dat file is a bit strange, as the first paragraph seems to be in Czech, but I haven't found any encoding which would decode it correctly - so I assume that the paragraph is unused and its encoding was broken during the translation process.
All the other paragraphs are in German, which will correctly decode with ISO 8859-1
(or any other Latin-* encoding).
There's an index of asset names at the end of each DAT file and the names have one-letter prefix (e.g. cwpnam9 in Czech version - the "c" is the prefix). Which prefix is used in the German version?
Only a few files seem to have a prefix, but for those that do it's e
(e.g. eunam54).
from signus.
The Czech paragraph is most likely encoded in KEYBCS2. I've pushed the extraction scripts to the tools
directory. Run extract_langdata.py
on anims.dat, graphics.dat, screens.dat, sounds16.dat and texts.dat. It'll create a directory tree in the current working directory with the root named lang
. Then you'll need to do some manual fixes:
- convert *.wav in
lang/speech/
to Ogg Vorbis - edit all Makefile.am files in the directory tree and change the
en
segment in installation paths tode
- possibly also manually pick the correct language version in
lang/graphics/bitmaps
and delete the prefix character from filenames (check whetherextrect_langdata.py
tells you to do that or not) - move the
lang
directory tosignus-data/data/
and rename it tode
- register the new directory in
configure.ac
andsignus-data/data/Makefile.am
Note that the main menu bitmaps and a few text files were copied from the English sources. That's because the files were either missing in the original data or they were not usable for technical reasons (main menu button layout is different in the GPL version).
from signus.
Also, all assets in texts.dat should have a prefix. If make
starts complaining about missing textfiles, send me the output of extract.py texts.dat
. That'll list all the assets in the dat file.
from signus.
Thanks a lot for the commit and the detailed instructions, I have a working German version now (except for the main menu of course).
Just a few notes:
- udes55.txt doesn't seem to exist in the German version, so I deleted it from Makefile.am
- I also had to change the installation paths to de in the Makefile.am files in the de directory.
- Some mission briefings contain one or more 'þ' characters in the beginning. Again I wasn't able to find any encoding which would map that into a reasonable character. In the end I just used
sed -i 's/þ//g' *.txt
to remove them... (Something seems to be wrong with the encoding anyway, as 'Ä' appears both in the text, but is also used for the box around the error messages where it should be a '─' character.)
from signus.
Yes, you can safely delete the 'þ' characters, they were non-printable in the original fonts. The same codepoint (0xFE) was assigned to a filled square character in KEYBCS2, probably some sort of editor marker.
You can ignore the err*.txt files, they seem to be left over from early DOS version of the game and they're not used anywhere AFAICT. I'll probably delete them from this repo later.
Fixed udes55.txt in the extraction script. Just to be safe, it's better to copy the missing file from the English translation.
from signus.
I had to add a new text file wpnnm12.txt
because two different weapons were incorrectly assigned the same name. When you update to the latest version, don't forget to copy the file to your German data directory and register it in Makefile.am
. Otherwise the game might crash in mission 8 or later.
Apart from that, did you find any other issues with the extracted German data or can I close this ticket?
from signus.
I haven't really played the game any further so far, but these were all problems I've found so far. If I should find anything else in the future then I'll just open a new ticket. Thanks a lot for all your work!
from signus.
Thanks, closing.
from signus.
Related Issues (13)
- Replace ini parser with boost. HOT 1
- Windows port
- Instructions are wrong
- Cannot compile the data HOT 3
- QoL Improvements HOT 5
- libpng to deps HOT 2
- Game crahed in 7th mission (segfault) HOT 4
- Portable version HOT 6
- AddressSanitizer: nested bug in the same thread, aborting. HOT 4
- Crash when edit settings in mission HOT 3
- Crash when click Ukončit kolo button HOT 23
- Upgrade to LibSDL2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from signus.