scummvm/devtools
Kaloyan Chehlarski 6d5a3e3063 DEVTOOLS: Add nancy5 patches to create_nancy
Added a patch for a softlock between day 2 and 3, as well
as one at the very end of day 3. Added a patch for a buggy
scene that won't work properly without subtitles. Both of
these patches are supposed to be distributed by HeR, but
the file on their website does not actually contain them;
thus, they're both homebrew.
2023-11-09 22:18:11 +02:00
..
create_access
create_achievements ACHIEVEMENTS: Generated description files 2023-07-13 15:50:59 +02:00
create_bladerunner DEVTOOLS: BLADERUNNER: Fix formatting for README 2023-06-07 12:38:38 +03:00
create_cryo
create_cryomni3d DEVTOOLS: Fix Redundant Declaration in Cryomni3d Datafile Tool 2022-03-07 09:15:04 +00:00
create_drascula
create_encoding DEVTOOLS: Add econding table for cp936 2023-02-28 02:29:51 +01:00
create_engine CREATE_ENGINE: Remove duplicate files from new events style 2023-06-09 19:55:14 -07:00
create_freescape FREESCAPE: added indicators for cpc release of dark 2023-09-10 08:31:49 +02:00
create_glk DEVTOOLS: GLK: Fix GCC Compiler Warning From Symbol Conflict 2022-08-27 21:22:04 +01:00
create_hugo
create_kyradat KYRA: (EOB II/ZH) - fix party transfer dialog 2023-08-17 18:03:54 +02:00
create_lure DEVTOOLS: Correct spelling mistake 2022-10-27 15:56:05 +02:00
create_macgui GRAPHICS: MACGUI: Add no-border scrollbar, Win95 Border Refactored 2023-08-03 09:49:20 +02:00
create_macventure
create_mm MM: MM1: Add missing strings 2023-11-05 17:38:25 -10:00
create_mortdat JANITORIAL: DEVTOOLS: Note Spelling Mistakes 2022-11-15 22:52:43 +02:00
create_myst3
create_nancy DEVTOOLS: Add nancy5 patches to create_nancy 2023-11-09 22:18:11 +02:00
create_neverhood DEVTOOLS: Fix Redundant Declaration in Neverhood Datafile Tool 2022-03-07 09:15:04 +00:00
create_pink
create_prince@4e2acb737c
create_project CREATE_PROJECT: Explicitly add /opt/local/lib to support MacPorts 2023-11-05 22:12:55 +01:00
create_supernova SUPERNOVA: Correct spelling mistakes 2022-11-01 17:09:25 +02:00
create_teenagent DEVTOOLS: Correct spelling mistke 2022-10-27 15:56:05 +02:00
create_titanic JANITORIAL: Fix various "an" typos in comments 2023-03-16 14:47:28 +01:00
create_tony
create_toon
create_translations DEVTOOLS: Fix memory leak in create_translations 2023-11-02 09:26:13 -07:00
create_ultima ULTIMA: Split Ultima 8 resources into a separate archive 2023-08-28 21:51:17 +02:00
create_ultima8 ULTIMA: Split Ultima 8 resources into a separate archive 2023-08-28 21:51:17 +02:00
extract_mort
packaging DEVTOOLS: Generate updated _pb2.py using protoc 3.19 2023-09-14 08:23:48 +02:00
qtable
sci SCI: add typing to scifx_to_cpp script 2022-07-24 12:01:27 +03:00
skycpt DEVTOOLS: Fix Endian Check In sky.cpt Generation Tool 2023-02-13 01:51:08 +00:00
tasmrecover
agi-palex.py
construct-pred-dict.pl
convbdf.cpp
create_japanesemacfonts.sh DEVTOOLS: Make create_japanesemacfonts portable using 7-zip and xar-unpacker 2022-07-15 22:34:09 +02:00
credits.pl CREDITS: add Libretro 2023-04-02 05:27:32 +02:00
director-generate-xobj-stub.py DIRECTOR: XOBJ: Add stub for ManiacBg 2023-07-19 10:52:01 +02:00
dist-scummvm.sh DEVTOOLS: Use more portable sha256 utility 2023-07-14 23:34:01 +02:00
docker.sh
dumper-companion.py DUMPER-COMPANION: JANITORIAL: Remove unneeded indent 2023-10-27 01:19:43 +02:00
extract-words-tok.pl
gdb_pretty_printers.py DEVTOOLS: Add license and usage to gdb pretty printers 2023-09-13 10:39:43 +02:00
generate-android-i18n-strings.py I18N: Add script to generate translated strings.xml and fake cpp 2023-05-14 22:40:50 +02:00
generate-metainfo.py I18N: Fix AppData international generation. 2023-06-01 20:39:17 +02:00
gog_gameid.py
make_class.py DEVTOOLS: Improve documentation for make_class.py 2022-08-14 11:00:03 +10:00
make-fonts-archive.py DEVTOOLS: Add script to archive gui/themes/fonts 2023-02-12 17:59:08 +01:00
make-scumm-fontdata.cpp
make-www-archive.py
md5table.cpp DEVTOOLS: Make C++ the default mode for md5table 2022-07-14 07:44:58 +02:00
module.mk DEVTOOLS: Add script to archive gui/themes/fonts 2023-02-12 17:59:08 +01:00
README I18N: Add script to generate translated strings.xml and fake cpp 2023-05-14 22:40:50 +02:00
release-checks.sh ULTIMA: Split Ultima 8 resources into a separate archive 2023-08-28 21:51:17 +02:00
scumm-md5.txt SCUMM: Add settings entry for Mac Loom 2023-09-06 06:44:58 +02:00
steam_gameid.py
themeparser.py
update-version.pl BACKENDS: Remove old iPhone backend 2023-05-31 19:31:19 +01:00
xar-unpacker.py DEVTOOLS: Make create_japanesemacfonts portable using 7-zip and xar-unpacker 2022-07-15 22:34:09 +02:00

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.