EDuke32 Changelog Unofficial archive

What changed in EDuke32, build by build

2,117 builds · 8,866 commits · 25 authors · October 2009 – August 2026

Commits per year

Select a year to see its builds
SVN era · r1519 – r8798 Git era · voidpoint.io, from april 2020
Filters · 1 active

Showing 1,043 builds · 2,174 commits

Export CSV
Display options
Commit details:

August 2012 9 builds · 21 commits

July 2012 11 builds · 20 commits

Build 2850

29 Jul 2012 · 1 commit · 1 author SVN
Open build
  • on x86 GCC asm builds, fix crash with floor sprites of (x or y) size 2.

    Helixhorned r2850 29 Jul, 05:46 FixEngine
    Show details

    The idiv instruction also signals an FPE when the resulting *signed* quotient overflows, so we simply use div instead.

Build 2824

9 Jul 2012 · 4 commits · 1 author SVN
Open build
  • simplify some code while I'm at it (equivalence tranformations only)

    Helixhorned r2823 9 Jul, 12:00 Engine
  • bring the ypanning correction for non-pow2 walls closer to Pmost's, pt2

    Helixhorned r2822 9 Jul, 12:00 Engine
    Show details

    This changes a constant inside the panning calculation from 256 to 255 (making e.g. panning 255 and 0 the same in the "San Andreas fault" sign in E1L5) and uses the correct reference wall for the "do panning correction?" conditional. Now, the problematic walls should look the same as in Polymost.

  • bring the ypanning correction for non-pow2 walls closer to Pmost's, pt1

    Helixhorned r2821 9 Jul, 12:00 Engine
    Show details

    This makes the corrections conditional on where they appear in (under-, over-, white or mask wall).

Open the build to see all 4 commits

Build 2820

8 Jul 2012 · 8 commits · 1 author SVN
Open build
  • General

    a.m32: add some commented out example code for the screenshot functionality.

    Helixhorned r2820 8 Jul, 14:49 Engine
  • draw walls with non-pow2 ysizes in the old fashion for the time being.

    Helixhorned r2819 8 Jul, 14:47 FixEngine
    Show details

    I'm willing to make this one concession to correctness in the name of backward- compatibility. I think that one reason why this has never cause a crash is that tiles in BUILD are allocated in Ken's big allocache buffer, so oob accesses were dampened by that (though they hit uninitialized data).

  • if printext256's <col> arg is negative, use editorcolors[-<col>].

    Helixhorned r2816 8 Jul, 14:47 EngineCON
    Show details

    The editor colors are the ones listed on page 9 of the Mapster32 built-in help.

  • factor out y panning coefficient calculation code.

    Helixhorned r2815 8 Jul, 14:47 Engine
  • General

    Add ART loader for the LuaJIT BUILD struct loader module, 2 more examples.

    Helixhorned r2814 8 Jul, 14:47 Engine
    Show details

    The map iterator now has init/finish capability, making it possible to write scripts that aggregate data over multiple map files. One such example calculates some statistics, the other loads art metadata and looks for red walls with non-pow2 ysize tiles.

Open the build to see all 8 commits

Build 2811

6 Jul 2012 · 2 commits · 1 author SVN
Open build
  • factor out wall y panning coefficient calculation.

    Helixhorned r2811 6 Jul, 08:36 FixEngine
    Show details

    Non-pow2 wall/mask drawing in classic introduced cases where walls are drawn "incorrectly" because they were constructed with the old behavior in mind. Polymer appears to "correct" for it partially, but doesn't cover all cases. Specifically, now we have: - E1L1 first inside secret room (5000, 50000): Polymer draws like Duke 1.5, classic now draws with an offset. - E3L2 near the vault (-20000, 25000): both classic and Polymer draw with offsets compared to Duke 1.5, but they're different! This means that more research is needed into what makes these two cases diverge, even though both have the same root cause. !!! Also, mappers should abstain from using non-power-of two textures on walls until this issue is resolved in a satisfactory fashion !!!

  • fix glitches where stuff would be drawn transiently on sect change.

    Helixhorned r2810 6 Jul, 08:36 FixEngine
    Show details

    This was introduced with r2771, which fixed e.g. AMC TC city_si's mirrors, but instructed the base drawrooms inside yax_drawrooms to not correct the passed sectnum. Therefore, stuff would get drawn wrongly when passing sector boundaries, like from the platform to the rails in trueror1.map.

Build 2809

6 Jul 2012 · 1 commit · 1 author SVN
Open build
  • fix drawing mirrors, introduced by nonpow2-ysize wall/mask drawing.

    Helixhorned r2809 6 Jul, 07:16 FixEngine
    Show details

    Some more drawing glitches remain.

Build 2808

6 Jul 2012 · 4 commits · 1 author SVN
Open build
  • General

    Add description for 'remap' to mapster32.cfg, add 'setstartpos' to a.m32.

    Helixhorned r2808 6 Jul, 04:27 Engine
    Show details

    The latter is commented out, since it has to be *compiled* with script_expertmode enabled.

  • hook up non-power-of-two ysize wall/mask drawing in asm builds, too.

    Helixhorned r2807 6 Jul, 04:27 Engine
  • fix drawing of walls and maskwalls with non-pow2 y size tiles.

    Helixhorned r2805 6 Jul, 04:26 FixEngine
    Show details

    Related to that, it looks like out-of-bounds accesses when drawing such walls/ maskwalls or *sprites* are fixed, too. Sprites still show a stray lines on some occasions, but Valgrind doesn't complain then.

Open the build to see all 4 commits

Build 2798

1 Jul 2012 · 9 commits · 2 authors SVN
Open build
  • General

    Make ksqrt take uint32_t, add helper function uint32_t uhypsq(int32_t,int32_t).

    Helixhorned r2791 1 Jul, 15:11 FixEngine
    Show details

    uhypsq calculates the hypotenuse using unsigned multiplication. This is permissible since for arbitrary int32s a and b, the following holds in two's complement arithmetic: (int32_t)((uint32_t)a * b) == (int32_t)((int64_t)a * b) ("Signed and unsigned multiplication is the same on the bit level.") This fixes various overflows where wall lengths for walls of length > 46340 are calculated, but does not rid us of other overflows in the same vein (usually dot products between vectors where one point is a wall vertex and the other a position in a sector).

Open the build to see all 9 commits

June 2012 9 builds · 22 commits

Build 2780

22 Jun 2012 · 1 commit · 1 author SVN
Open build
  • General

    Fix being unable to hit ENTER on VIDEO SETTINS -> RENDERER SETUP with classic.

    Helixhorned r2780 22 Jun, 14:40 FixEngine

Build 2761

13 Jun 2012 · 9 commits · 1 author SVN
Open build
  • General

    Integer Overflow Offensive, First Act: rintersect, hitscan, neartag.

    Helixhorned r2761 13 Jun, 16:13 FixEngine
    Show details

    It's time to replace some int32s with 64-bit ints in core engine functions. The problem is that for example, the dot product is taken between vectors that may be the difference between two arbitrary points in a sector, so even if one sticks to the "no blue walls" rule, that doesn't guarantee freedom from overflows.

  • don't attempt to draw sprite with void tile, preventing div-by-0s later

    Helixhorned r2760 13 Jun, 16:13 Engine
  • draw a wall blue if its squared length exceeds INT_MAX (not UINT_MAX)

    Helixhorned r2759 13 Jun, 16:13 Engine
  • fix a div by zero when drawing tile info for void tile in 3D mode.

    Helixhorned r2757 13 Jun, 16:13 FixEngine
    Show details

    This was exposed by Clang with -ftrapv, which apparently also traps those.

  • General

    a.m32: new state "collect_ceilsky_sectors" collecting parallaxed ceilings.

    Helixhorned r2754 13 Jun, 16:13 Engine
Open the build to see all 9 commits

Build 2745

7 Jun 2012 · 2 commits · 1 author SVN
Open build
  • don't attempt drawing sprites with (cstat&48) == 48 that aren't voxels.

    Helixhorned r2744 7 Jun, 10:37 EngineCON
    Show details

    Bang! One more invalid internals exposure squashed. Maybe one day we'll be able to call EDuke32 "stable"... Actually the offending sprite IS drawn as face sprite with shade 32 and xrepeat and yrepeat 255 for the convenience of the CON coder who will have to debug it.

Open the build to see all 2 commits

Build 2740

5 Jun 2012 · 2 commits · 1 author SVN
Open build
  • General

    engine.c: cleanup / readability tweaks

    Helixhorned r2740 5 Jun, 15:21 Engine
  • General

    TROR/classic: fix a certain class of underdraw glitches.

    Helixhorned r2739 5 Jun, 15:21 FixEngine
    Show details

    Those were happening when wall drawing in an upper/lower layer "closed" too much of the "curtain" (umost/dmost) for subsequent drawing in that portal. Example: looking down the sewer manhole at the beginning of Retaliation will now render without HOM.

Build 2729

3 Jun 2012 · 5 commits · 1 author SVN
Open build
  • General

    The handling for grp, con, and def filenames has been massively cleaned up and factored into common.c. A new header, common_game.h, was created because common.h was placed in build/include (see r2542) and we need a common header for things that strictly should not be in the engine. RTS file names were also improved but some of the patterned changes were already made in r2420, and they were not factored because they are strictly part of the game, not the editor.

    Hendricks266 r2726 3 Jun, 09:09 Engine
    Show details

    NAM and Napalm can now share their con, def, and rts files if the one for their respective game is not present because the con and rts files are identical. Also, decapitalize two string literals missed in r2540.

Open the build to see all 5 commits