scummvm/devtools/README
Ankush Dutt 74dff32dd9 I18N: Add script to generate translated strings.xml and fake cpp
- Add a python script (generate-android-i18n-strings.py)
 that generates the translated android strings.xml as per:
 https://developer.android.com/guide/topics/resources/providing-resources#AlternativeResources
 It considers the dists/android/res/values/strings.xml file as
 a base template to generate those translated strings.xml files.

- The python script also generates a fake cpp with strings from
 dists/android/res/values/strings.xml. These strings will be picked
 up by gettext to make it translatable. If there is any change in the
 original strings.xml file, we won't have to worry about the changes
 in cpp file.

- Add documentation for the generate-android-i18n-strings.py script
2023-05-14 22:40:50 +02:00

244 lines
8.1 KiB
Plaintext

This directory contains various tools which aid the ScummVM developers
in their work. They are not intended for the general audience, and are
only sparsely, if at all, documented. Use at your own risk. You have
been warned :-).
agi-palex.py (buddha)
------------
Tool for extracting palettes from Amiga AGI games' executables.
construct-pred-dict.pl, extract-words-tok.pl (sev)
--------------------------------------------
Tools related to predictive input for AGI engine.
convbdf
-------
Tool which converts BDF fonts (BDF = Bitmap Distribution Format) to
C++ source. That source, after being slightly tweaked, can be used to
replace or add fonts for the ScummVM GUI.
There is also a ttf2bdf tool which allows you to convert TrueType
fonts to BDF.
Hint from SumthinWicked: If you use ttf2bdf, it'll convert all glyphs
to bitmaps, but ScummVM only needs some of them. So you may want to
do your conversion like this:
ttf2bdf -p SIZE -l "32_160" -o FONT.bdf FONT.ttf
where SIZE is replaced by the desired font height.
create_japanesemacfonts.sh
_____________________________________________________
Script for extracting fonts from Classic Japanese MacOS images
freely available from apple.com (used in Director, MacVenture,
SCUMM and WAGE engines).
create_cryo
-----------
Creates cryo.dat file which contains a lot of hardcoded tables used
by the Cryo engine.
create_drascula (sev)
---------------
Stores a lot of hardcoded data of Drascula in a data file, based on
the game's original source code. This includes the game's character
map, item locations, several hardcoded arrays used in animations,
room script logic, talk sequence logic and all of the game's texts
(mostly the dialog subtitles) in English, Spanish, German, French
and Italian. This tool is used to create the drascula.dat file.
create_encodings (phcoder)
--------------
Transforms CJK tables from Unicode consortium format to the format
used by ScummVM.
create_hugo (Strangerke)
-----------
Creates hugo.dat file which contains all kinds of static data contained
in original game executable.
create_kyradat (LordHoto, athrxx)
--------------
Extracts various static data from the original game executables.
This includes room tables in kyra1, various hardcoded language
strings in both kyra1 and kyra2, script data for the sequence
players of kyra1 and kyra2 and other static data. This tool is used
to create the kyra.dat file.
create_lure (dreammaster)
-----------
Extracts various static data from each of the different language
versions of the game executables. This includes character
animations, game scripts, and other static data. This tool creates
the lure.dat file.
create_mort (Strangerke)
-----------
Gathers several information found in the original DOS executable:
- Font data
- French, German and fan-made English translation
create_nancy (fracturehill)
-----------
Creates nancy.dat file containing various constants, game logic
and strings originally embedded in the games' executables.
create_project (LordHoto, Littleboy)
--------------
Creates project files for Visual Studio 2008, 2010, 2012, 2013, 2015,
Xcode and Code::Blocks out of the configure / Makefile based build system.
It also offers a way to enable or disable certain engines and the use
of external libraries similar to configure. Run the tool without
any arguments for further help.
create_supernova (criezy)
----------------
Creates supernova.dat files which contains static data contained in the
original executable as well as translations into additional languages.
create_toon (Strangerke)
-----------
This tool creates toon.dat, which contains all the game's texts
hardcoded in original game executable. This includes English, French,
German, Russian and Spanish texts.
create_translations (criezy)
-------------------
Creates the translations.dat file from po files given as arguments.
The generated files is used by ScummVM to propose a translated GUI.
credits.pl
----------
This perl script contains credits to the many people who helped with
ScummVM, and it is used to create the credits lists that occur in
various places, including the AUTHORS file, the about dialog, and our
web site.
dist-scummvm.sh
---------------
This shell script is used to create source release archives for
ScummVM releases. After tagging a branch for release, you can invoke
it like this:
./dist-scummvm.sh scummvm 0.7.1
Note #1: This creates .zip, .tar.bz2 and .tar.gz archives in /tmp by
default. To do that it performs a "cvs export" in /tmp first. If you
want to use another location, you can specify it as the thirds param
to the script.
Note #2: This assumes that our naming conventions for release tags
are being followed. I.e. the tag must be named "release-0-7-1" in
the above example. You can, however, specify an alternate tag as the
fourth parameter.
Note #3: Since SF.net anon CVS tends to lag behind developer CVS, if
you just tagged CVS, anon CVS may not yet have this. So if you are
in a hurry, modify the cvsroot in the script to use your dev CVS
account.
docker.sh
---------
This shell script is used to simplify building with the Docker images
used by the buildbot. It can invoked like this:
./devtools/docker.sh toolchain/mxe
This will fetch the MXE toolchain from the Docker Hub if it hasn't
already and launch a shell that can be used to build ScummVM for
Windows.
dumper_companion.py
___________________
Tool for dumping HFS/HFS+ volumes and game files with non-ASCII
characters in names, as well as extracting fonts from Classic
MacOS images freely available from apple.com (used in Director,
MacVenture, SCUMM and WAGE engines). Full documentation can be found at:
https://docs.scummvm.org/en/latest/use_scummvm/mac_game_files.html
generate-android-i18n-strings.py
--------------------------------
This script generates translated strings.xml files
in dists/android/res/values-<qualifier> directory as per the specs:
https://developer.android.com/guide/topics/resources/providing-resources#AlternativeResources
It considers the dists/android/res/values/strings.xml file as a base template to generate
those translated files.
Additionally, this script generates a fake cpp file (dists/android.strings.xml.cpp) with strings
from dists/android/res/values/strings.xml wrapped inside _() to be picked up by
gettext for weblate translations. You can run it like this:
cd devtools && python3 generate-android-i18n-strings.py
gog_gameid.py, steam_gameid.py
______________________________
Tools for obtaining gameids from GOG and Steam used when preparing the
Achievements lists.
make_class.py
-------------------
Tool that adds all the boilerplate for a new C++ class inside an engine.
Examples:
make_class.py scumm . LeChuck
This will make a new class `LeChuck` under scumm engine root (engines/scumm/).
Creates boilerplate class Scumm::LeChuck, in le_chuck.cpp and le_chuck.h
(files are lower-cased, upper-case letters from class name get '_' added).
Adds corresponding .o file to module.mk list.
make_class.py -n BladeRunner bladerunner ui Scores
This will make a new class BladeRunner::Scores in the engines/bladerunner/ui/
directory.
make-scumm-fontdata (eriktorbjorn)
-------------------
Tool that generates compressed font data used in SCUMM: To get rid of
a few kilobytes of hard-coded font data, we only store how the
French, German, Italian and Spanish fonts differ from the English one.
make-www-archive.py
___________________
Tool for creating wwwroot.zip used by the Local Server cloud feature.
md5table
--------
Used to convert scumm-md5.txt into a SCUMM header file, or
alternatively PHP code for our website.
qtable (cyx)
-------
This tool generates the "queen.tbl" file.
skycpt (lavosspawn)
-------
This tool generates the "SKY.CPT" file.