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 · 2 active

Showing 443 builds · 817 commits

Export CSV
Display options
Commit details:

September 2012 4 builds · 9 commits

Build 2992

2 Sep 2012 · 12 commits · 1 author SVN
Open build
  • General

    Make getangle() a __fastcall function instead of static inline.

    Helixhorned r2991 2 Sep, 07:12 Engine
    Show details

    This trims four 4k pages of code from the release EDuke32 build and one page from Mapster32.

  • General

    In dosetaspect(), bail out calculating radarang2[] instead of failing assertion.

    Helixhorned r2990 2 Sep, 07:10 Engine
    Show details

    When this happens, parallaxmodes other than 0 will be unavailable and silently draw as parallaxmode 0. This usually happens with extremely wide resolutions.

  • General

    Move #include <math.h> from polymer.h to polymer.c.

    Helixhorned r2985 2 Sep, 07:05 Engine
  • General

    Remove some #if 0 blocks that are probably of no interest any more.

    Helixhorned r2981 2 Sep, 07:00 EngineCON
    Show details

    For reference, they are the following: - cache1d.c: suckcache() - build.c: compare_wall_coords() - make switch-invisible heuristic - Mapster32: old sprite search - Mapster32: manual z range - m32script: read/writearray, qgetsysstr - menus.c: savetemp()

Open the build to see all 12 commits

August 2012 8 builds · 20 commits

Build 2971

26 Aug 2012 · 9 commits · 1 author SVN
Open build
  • General

    Quit the game if SE17 (warp elevator) setup fails.

    Helixhorned r2971 26 Aug, 15:17 Engine
    Show details

    The spawn-time SE 17 setup uses nextsectorneighborz() which can fail (return -1) on some circumstances and would cause an OOB sector[] access.

  • General

    engine.c: rewrite nextsectorneighborz() for clarity.

    Helixhorned r2969 26 Aug, 15:15 Engine
  • General

    build.lua map loader: add the option of canonicalizing sprite order.

    Helixhorned r2968 26 Aug, 15:13 Engine
    Show details

    This is mostly for debugging, since currently, Mapster32 restores sprites not in the same order as the original sprite index order. Also, expose this option from map2text.lua and mapdiff.sh.

  • for c&p-ing map portions w/o TROR, fix wrongly resetting wall lotag/extra

    Helixhorned r2965 26 Aug, 15:10 FixEngine
  • for copy-pasting map portions without TROR, fix wrongly resetting xpanning.

    Helixhorned r2963 26 Aug, 15:08 FixEngine
    Show details

    This is really an artifact of overloading the sector fields for different uses. For copy-pasting TROR'd portions, the bug still persists.

Open the build to see all 9 commits

Build 2951

21 Aug 2012 · 1 commit · 1 author SVN
Open build
  • General

    Make a colored REACTOR/REACTOR2 sprite disappear in single player again.

    Helixhorned r2951 21 Aug, 10:40 Engine
    Show details

    Noted by Nukey. See Duke3D 1.5 GAME.C line 4220.

Build 2948

20 Aug 2012 · 11 commits · 1 author SVN
Open build
  • properly reset highlights in undo/redo.

    Helixhorned r2943 20 Aug, 14:27 Engine
  • with highlighted sectors, print rot. angle; Alt + [,]: manual angle.

    Helixhorned r2942 20 Aug, 14:26 Engine
    Show details

    Because rotating sectors "smoothly" by 1 BUILD ang will quickly accumulate roundoff error, this lets the user first do that as a preview and then use the manual angle rotation do carry it out for real.

  • use the rotatepoint code for both smooth and 90-degree sect. rotation.

    Helixhorned r2941 20 Aug, 14:26 Engine
Open the build to see all 11 commits

Build 2915

16 Aug 2012 · 20 commits · 1 author SVN
Open build
  • General

    Factor out Polymost's widescreen bit handling code and use it in classic, too.

    Helixhorned r2911 16 Aug, 14:48 Engine
    Show details

    This means that classic and the GL modes now look the same as far as e.g. hud_bgstretch or HUD weapons are concerned.

  • General

    polymost.c: rewite widescreen bit code, part 2.

    Helixhorned r2910 16 Aug, 14:48 Engine
    Show details

    Use integer math; both args to setaspect are constant.

  • General

    Clean up classic's and Polymost's dorotatesprite functions (triv. changes only)

    Helixhorned r2909 16 Aug, 14:48 Engine
  • General

    polymost.c: rewrite dorotatesprite's widescreen bit handling (256,512,1024).

    Helixhorned r2908 16 Aug, 14:48 Engine
    Show details

    Instead of setting and resetting the [xy]dim globals, use them as locals in a block (shadowing the globals). Also, do some common subexpression elimination for clarity.

  • use updatesector instead of *z.

    Helixhorned r2907 16 Aug, 14:48 Engine
    Show details

    When shrunk, the player position is below the floor for some weird reason. Updatesectorz would set the sector to -1, and the view would not be drawn.

Open the build to see all 20 commits

Build 2877

10 Aug 2012 · 6 commits · 1 author SVN
Open build
  • General

    Text-repl.: hitinfo variables -> hit, hit{sprite,sect,wall} members -> no "hit"

    Helixhorned r2877 10 Aug, 12:12 Engine
    Show details

    This makes the code rather more readable in some places. Unlike the two preceding commits, this one is actually purely textual replacement.

Open the build to see all 6 commits

July 2012 9 builds · 18 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 8 builds · 21 commits