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:

June 2012 8 builds · 21 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 2718

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

    M32 auto-aligner: calculate panning for non-firstwall-aligned ceilings/floors.

    Helixhorned r2717 1 Jun, 13:09 Engine
    Show details

    Also, print failure messages on some occasions.

  • keep the temp sector on some more occasions that don't delete them.

    Helixhorned r2716 1 Jun, 13:09 Engine
  • Part 1 of ceiling/floor auto-alignment functionality.

    Helixhorned r2715 1 Jun, 13:09 Engine
    Show details

    Usage is from 3D mode only. When a sector (or wall) is committed to the clipboard, it (or the wall's sector) is saved, and is subsequently used when auto-aligning [;-ENTER] another sector's ceiling or floor against the reference one's. This temp. sector is reset on any structurally modifying operation except setting first walls; also, aligning extended ceilings or floors is impossible as they use .*xrepeat internally. The auto-alignment does not change picnums (this can be accomplished with the ['+ENTER] combination), but copies the orientation bits 2^{2..6} to the alignee. Afterwards, if the reference is relative-aligned, it tweaks them, so that every case where the two firstwalls are either parallel or perpendi- cular is handled correctly. It does not yet calculate the panning values.

  • in textured 2D mode, make floor flipping [F] work.

    Helixhorned r2713 1 Jun, 13:09 Engine
  • In textured 2D mode, allow setting floor relativity [R].

    Helixhorned r2712 1 Jun, 13:09 Engine
    Show details

    Also factor out the code (2x) setting the alignment bits for sprites.

Open the build to see all 8 commits

May 2012 8 builds · 14 commits

Build 2710

29 May 2012 · 6 commits · 1 author SVN
Open build
  • General

    Introduce two convenient sprite iteration macros in build.h, add a few uses.

    Helixhorned r2707 29 May, 13:01 Engine
    Show details

    Defines SPRITES_OF(Statnum, Iter) and SPRITES_OF_SECT(Sectnum, Iter) [The first is so that STAT_* can be substituted for Iter and it reads nicely.] Usage should be self-explanatory, but one thing to keep in mind is that the sprites that are iterated over MUST NOT be deleted.

Open the build to see all 6 commits

Build 2701

26 May 2012 · 5 commits · 1 author SVN
Open build
  • General

    engine.c: make horizlookup/horizlookup2 have int32_t elts instead of intptr_t.

    Helixhorned r2701 26 May, 14:58 Engine
  • General

    Disallow high-quality (640x480) tilted screen if MAXYDIM is less than 640.

    Helixhorned r2698 26 May, 14:58 FixEngine
    Show details

    This fixes the crash on Wii when looking sidewards (e.g. when dying), but makes the tilted view look more pixelated. The problem was that an attempt was made to render onto a 640x640 tile for the rotated view, but the base engine arrays were too small for that.

Open the build to see all 5 commits

Build 2646

6 May 2012 · 1 commit · 1 author SVN
Open build
  • General

    Assign light SEs (lotags 49 and 50) to an exclusive status number. EXPERIMENTAL!

    Helixhorned r2646 6 May, 14:01 FixEngineCON
    Show details

    The primary reason for doing this is that handing of moving sectors is significantly simplified. Because moving sectors usually don't move containing SEs/effector-statnum sprites, no special handing code is needed to move light SEs with them. Thus, this commit sets light SEs to a new statnum when they're spawned *from premap*, and a new G_Move*-like function (called G_DoPolymerLights) is added to process every sprite in that status list. This should "fix" light SEs moving together with a variety of moving sectors, but CON programs expecting the old behavior may break, therefore this commit is marked as experimental. Additionally, a problem with the old implementation is identified: it seems like the correct functioning is dependent upon the order of processing between the sector movement effector and the light SE, so this makes it another good reason for the change. (A third one is that all lights can be processed with a per- statnum loop, but CON coders should not do this until the change is considered final).

Build 2645

6 May 2012 · 2 commits · 1 author SVN
Open build
  • General

    A couple of misc. Wii changes.

    Helixhorned r2645 6 May, 13:23 FixEngine
    Show details

    - Make MAXXDIM and MAXYDIM macros be 860 and 490, respectively. tueidj says max. screen size is 848x480, but there are oob access bugs in the classic renderer when running with the maximum possible resolution - don't allocate additional sector/wall storage for Mapster (saves ~16k) - Add ud.config.UseJoystick = 1 in config.c, but make it conditional on Wii - remove one comment I no longer believe true, add one TODO comment

Open the build to see all 2 commits

Build 2643

5 May 2012 · 11 commits · 1 author SVN
Open build
  • General

    Prevent an (unlikely) integer overflow in neartag with huge switch sprites.

    Helixhorned r2641 5 May, 15:24 FixEngine
  • General

    Accumulated trivia, mostly "the usual".

    Helixhorned r2639 5 May, 15:23 Engine
    Show details

    Among other things, comment out very seldomly (or not at all) used sprite member macros: SV, ZV, RX, RY, CX, CY, CD, PL.

  • General

    Add bit 16 to the two main setbrightness() users, add bit 2 to one of them.

    Helixhorned r2637 5 May, 15:22 EngineCON
    Show details

    (I.e. also restore r2232 again.) The first one is the palette restore logic in G_DisplayRest, the second is CON setgamepalette, to which the "don't gltexinvalidateall()" bit is added to mimic the first. Hightile invalidations aren't really useful for anything other than reloading them after a video mode change, IMO. These changes mean that 1) active full screen tints should (almost) always be kept with a basepal change. The only exceptions to this are when tints really have to be cleared, e.g. when changing the player view in co-op play. 2) there should be no performance issues with simultaneously changing basepals while a tint is applied

  • General

    Tweak the conditions under which setbrightness() invalidates GL textures.

    Helixhorned r2636 5 May, 15:22 FixEngineCON
    Show details

    Previously, we checked whether the faded palette has changed (by way of CRC) and invalidated the textures then unless the preserve flags were set. This however could lead to wrongly invalidating them under unfortunate circumstances, e.g. basepal change from CON + tints at the same time before r2620 which reverted r2232. Now, only invalidate them if the corresponding preserve flags are clear AND * the base palette has really changed OR * the palette CRC changed and we were running on software gamma The latter means that performance-killing invalidations may still happen on GL platforms lacking HW gamma (for ATI, it's currently only disabled in 8-bit fullscreen). Also have a new global 'basepalreset' to fake a basepal change for setbrightness(), currently used when changing renderers so that going from Polymer to Polymost and back again will invalidate the Polymer textures on the second change, potentially re-applying a basepal highpal. (Still with me?)

  • General

    On Windows, determine if we're running on a ATI card at startup even in classic.

    Helixhorned r2633 5 May, 15:21 Engine
    Show details

    Previously, I knew no way of querying for graphics adapter vendors/names from anything other than OpenGL. Googling revealed a way to do this with the Windows API.

Open the build to see all 11 commits

April 2012 6 builds · 9 commits

Build 2610

14 Apr 2012 · 1 commit · 1 author SVN
Open build
  • General

    Fix a null pointer access in Polymer mouse picking.

    Helixhorned r2610 14 Apr, 06:04 FixEngine
    Show details

    Specifically, it was in the "determine searchwall when aiming at floor or ceiling" part. Now, if prsectors[]->ceil.plane (or ->floor.plane) is NULL, we set the searchwall to the sector's firstwall and return.

Build 2606

10 Apr 2012 · 3 commits · 1 author SVN
Open build
  • when drawing art sky, temporarily set texcoord s wrapping to clamping.

    Helixhorned r2606 10 Apr, 13:14 FixEngine
    Show details

    This properly fixes the unwanted vertical lines.

  • General

    Mapster/classic: Make Ctrl-P toggle parallax rendering types in 3D mode again.

    Helixhorned r2605 10 Apr, 13:14 Engine
    Show details

    Of course, it's just for the heck of it, since this setting is not saved into MAP files. I kinda like the cylindrical projection...

  • General

    Fix flipping masked walls in Mapster/classic.

    Helixhorned r2604 10 Apr, 13:14 FixEngine
    Show details

    This has been there since searchbottomwall introduction in r1466.

Build 2599

8 Apr 2012 · 2 commits · 1 author SVN
Open build
  • General

    Fix point deletion in Mapster32.

    Helixhorned r2599 8 Apr, 08:52 FixEngine
    Show details

    Previously, it was possible to leave a sector with less than three walls if a point got deleted transitively by a TROR link. Now, a proper check is done for all deletion candidates and a message stating which wall and sector is problematic is printed. Thanks for Diaz for pointing out the brokenness.

Open the build to see all 2 commits