BEX allows long string replacements to be continued onto multiple
lines by appending a \ to the end of the line to indicate that the
string continues on the next line. Make use of this syntax to split
some of the really long string replacements and make the DEHACKED
lumps more readable.
Chocolate Doom now has BEX [STRINGS] section support, but it must
be enabled using a magic comment inside the file. Add this comment
to the Freedoom DEHACKED lumps.
This commit applies a new ordering for FreeDM's levels, designed by Protox
and preserving the existing names and music used for the levels.
This Doomworld thread has some more information:
http://www.doomworld.com/vb/freedoom/69435-proposed-map-lineup-for-freedm/
Five of the existing levels were moved as they were judged not to meet
quality standards.
Summary of changes:
DM01 - Renamed to DM01
DM02 - Removed
DM03 - Renamed to DM15
DM04 - Renamed to DM08
DM05 - Renamed to DM27
DM06 - Renamed to DM18
DM07 - Renamed to DM07
DM08 - Renamed to DM10
DM09 - Renamed to DM28
DM10 - Renamed to DM13
DM11 - Removed
DM12 - Renamed to DM14
DM13 - Renamed to DM02
DM14 - Renamed to DM21
DM15 - Renamed to DM29
DM16 - Renamed to DM22
DM17 - Renamed to DM24
DM18 - Renamed to DM03
DM19 - Removed
DM20 - Removed
DM21 - Renamed to DM06
DM22 - Renamed to DM25
DM23 - Renamed to DM12
DM24 - Renamed to DM11
DM25 - Renamed to DM09
DM26 - Removed
DM27 - Renamed to DM17
DM28 - Renamed to DM23
DM29 - Renamed to DM04
DM30 - Renamed to DM30
DM31 - Renamed to DM16
DM32 - Renamed to DM26
DM33 - Renamed to DM05
DM34 - Renamed to DM31
DM35 - Renamed to DM32
This music sounded really horrible with Freedoom's GENMIDI lump, which
was a shame because this is a really beautiful level. So adjust a
couple of the more prominent instruments used for this music track:
* Instrument 104 (Sci-fi):
This instrument was using a frequency multiplier that put it 2
octaves and a 5th above, making it (intentionally, because it's
a "sci-fi" effect?) discordant. Rework this so that it isn't
discordant any more.
* Instrument 51 (SynthStrings #1):
This had a slow attack phase which had the effect of offsetting
the notes slightly, so that they seemed out of sync. Adjust this
and also increase the feedback so that the instrument sounds more
"stringy" (?)
Some of the instruments were using OPL3 waveforms, but GENMIDI is
for OPL2 chips and these are not necessarily supported. Adjust the
instrument settings to only use the original four OPL2 waveforms,
while trying to maintain something resembling the same sound.
This DBIGFONT lump contains the same graphics as the font characters
used to render the menu text graphics. This should give some consistency
in ZDoom-based source ports which use it.
When playing in ZDoom-based ports, a message is shown when the player
dies which depends on the monster that killed them or (in deathmatch)
the weapon they were killed with. Because ZDoom uses obituaries that
mention the Doom weapons and monsters, override so that Freedoom is
internally consistent when playing using these ports.
These are a few very short demos recorded on FreeDM maps that do not
currently have any open bugs. This does not fix#15 but at least the
game won't crash in Vanilla for the time being, until we record some
proper deathmatch demos.
Use new "Phase 2" name and just refer to "episode n" rather than
"Freedoom episode n". Don't refer to "the elite guard" as we don't
have a story or know who they are, and give MAP07/MAP12 names based
on the text. Rewrite C6TEXT entirely to match the current MAP31/MAP32.
Some of these names do not match the sprites that we currently have
in the IWADs. Change to be more fitting names. Remove "hell" or
"undead" references as it's not clear that Freedoom's story has a
hell theme, and use "minigun" instead of "mini-gun".
The main instrument groupings were already pretty good but there
was some room for improvement. The generated configuration sounds
pretty good now, even when using the 256KB config.
This script generates a MIDI file that plays all of the comparison
groups from config.py. This allows instruments to be compared, so
that similar-sounding instruments can be grouped together.
Regroup GUS percussion instruments based on personally having listened
to the samples in the GUS instrument set and identifying similar-
sounding instruments.
The indices of the percussion instruments were all off-by-one. These
should be 128+genmidi number, but were 127+ by mistake. This
considerably improves the percussion in Freedoom when using GUS.
Add FALL3 texture definition needed for TNT compatibility, and add
extra texture definitions so that all the patches required for TNT
compatibility are included in the PNAMES list (and IWAD). Add
symlinks for TNT sky patches that just point to sky patches that we
already have. Fixes#43.
The Plutonia WAD includes some extra textures (and associated patches)
compared to the original doom2.wad. Add these missing textures, with
dummy "Plutonia versions" of textures where they conflict with
existing ones, so that we include all patches needed for compatibility.
Fixes#42.
Now that #1 is fixed, we can be certain that all patches needed for
compatibility are definitely being included in the PNAMES lists. It
therefore isn't necessary to include every patch in the patches/
directory in every WAD.
Extend the build-textures script to generate a text file containing
the list of PNAMES, and include this from the main config file. That
way, each IWAD only gets the patches it explicitly needs.
Some build targets create multiple outputs, which can cause problems
when doing parallel builds. Clean up the build system so that all
subdir invocations come from the top-level Makefile and use $(MAKE).
Also fix the FREEDOOM/FREEDM lumps to really include the version
number by using $(shell ...) syntax.
Stop using deutex's built-in texture builder and generate our own
texture lumps. This is essential for compatibility reasons: the
entries in the texture/pnames lumps must match the order of those
in the original IWADs. Failure to match ordering means that some
well-known WADs (eg. DTWID) would not work with Freedoom.
This fixes#1, and also means that Freedoom can now be built in
parallel using make's '-j' option.
FreeDM has different levels and therefore needs a different BEX
patch to the main project. Update the text generator to generate the
level name graphics for FreeDM based on the new BEX file.
Oops. Boom's dehacked parser requires an empty line to end the [pars]
section, otherwise the entire following section is interpreted as
par time instructions.
This replaces the default text screens with text screens more
relevant to Freedoom's level progression. The Double Impact end
text screen is imported in a modified form, and the episode 1-3
text screens ought to be considered temporary.
This replaces the statically generated colormaps with equivalent
colormap lumps that are generated by the colormap.py script (which now
has parameters to control the generated colormap).
Use the DEHACKED lump as a source of truth for level names, and set
the textgen configuration accordingly. Make the current level names
in the DEHACKED lump upper case so that the current ExMy/MAPxy names
look correct.