Skip to content

Releases: ZDoom/gzdoom

g4.13.1

20 Oct 14:00
689dc61
Compare
Choose a tag to compare

Full Changelog: g4.13.0...g4.13.1

Highlights

  • fixes a couple critical bugs introduced in 4.13.0
  • a couple of QOL improvements

Detailed Notes

  • Fix OpenGL shader to work with Apple's buggy GLSL compiler
  • Resolve compiler warning about deconstructor syntax
  • Added (SPF_)STRETCHPIXELS - for actors, makes rollsprites levelstretched, for particles, puts them back to the original stretch math as before, optional opt-in flag
  • enable console subsystem for Windows with runtime detection - compiling GZDoom as a console app now shows printf's in the terminal that launched it like in Linux and Mac OS.
  • allow getting checksum for current map
  • add null check for canvas
  • fov scales ortho
  • sector damage code reverted due to some critical bugs, feature will be in next release

g4.13.0

12 Oct 06:35
1a699c0
Compare
Choose a tag to compare

Highlights:

  • Added pistol start gameplay option
  • A few ID24 spec implementations, adds support for new Bethesda DOOM + DOOM II re-release and Legacy of Rust
  • Several multiplayer network fixes, especially with prediction
  • some savegame fixes, should now be able to delete them on windows
  • add Extra Parameters to iwad selection box
  • iwad selection box now always shows unless one of the following is true: it is disabled, -iwad is used from command line, or you load in a gameinfo that suggests an iwad
  • add mbf21 and mbf21 (strict) compatibility presets
  • particles and rollsprites are now square
  • ZMusic update, allows selecting a new module player
  • forced-perspective sprite clipping (limited ability for sprites to render under the floor)
  • support for Orthographic projection
  • decoupled animation fixes
  • able to now pass optional parameters in any order

Verbose notes

  • Added pistol start gameplay option
  • StringTable cleanup and improvements
  • Instead of going through a global callback function set the string table's default gender at the start of each frame
  • Exported FTeam getters
  • Added PSpriteTick virtual
  • ZWidgets: disabled SetClientFrame.
  • dynamically import GetDpiForWindow from USER32.dll, else return a default value
  • optimized last commit to not retrieve the function repeatedly if it has already failed.
  • Fixed local copies of items not respecting their Amount value
  • moved the NetworkEntityManager into the backend code.
  • fix lifetime of skyinfo variable in HWWall::SkyPlane.
  • ZDRay specs fix
  • -norun now implies -stdout on Windows as it's useless without it
  • fixed: rollsprites now 'unstretch' properly in regular y-billboarding
  • demote SDL_Wait errors to console printouts
  • shorten sdl_waitevent error message
  • Interpolation fix for network prediction
  • Fixed incorrect automap arrow position in multiplayer
  • Fixes for client network IDs
  • View fixes when predicting
  • Fixed changeskill being unnetworked
  • Player spawn fix in co-op new games
  • Reworked clientside lerping
  • Added ShouldShareItem virtual
  • Add graycheckVal, expose hud_oldscale/hud_scalefactor to the menu
  • added emulation of Final Doom's teleporter z glitch and activate it for Saturnia MAP10
  • fixed bad network ID assignment.
  • Interpolation fix for network prediction
  • fixed: AActor's members must all be native.
  • Fixed "PrivateNetOf" function not checking for the entire B class private network range
  • fix lifetime of skyinfo variable in HWWall::SkyPlane.
  • Fixed prediction not calling virtual Tick function
  • Fixed desync in Heretic
  • Fixed ViewPos not properly backing up when predicting
  • Fixed weapon slots not resetting on unmorph
  • restore old fadestep behavior if SPF_NEGATIVE_FADESTEP is not passed in
  • Added missing checking for LOOKALLAROUND.
  • fixed: for deleting files and folders on Windows we have to call the Unicode variants of these functions.
  • fixed: The savegame's PNG loader must use a caching FileReader to avoid holding a handle to the containing file.
  • strip spaces from language labels.
  • don't abort when parsing the Steam config fails.
  • fixed GL nodes loader for maps loaded from mounted folders.
  • add mbf21 and mbf21 (strict) compatibility presets
  • make particles square
  • always show iwad picker, offer option for forks to hide picker by default.
  • make roll sprites square
  • Ability to add extra args on all platforms similar to how Mac OS always had it
  • fix CheckParmList
  • Fixed unmorphed Actors still ticking
  • don't show secret-flagged linedefs with special color on am_cheat 4 and above
  • Provide a diagnostic message for the two 32-bit related static_asserts
  • partial fix for FString::IsInt()
  • Fix invisibility affect on enemies
  • Added subclassing for use commands
  • Inventory item spawn fixes
  • Network messages will now show usernames instead of just numbers
  • Added ChangeTeam function for teamplay
  • Added missing player retranslation
  • Scriptified the view squatting.
  • Narrow the Launcher check box clickable areas to stop overlap and fix #2558
  • Fix memory leak on TDeletingArray move assignment
  • Rework named arguments
  • restrict new relaxed named arguments to zscript >= 4.13
  • Fix A_SetAnimation
  • Rename SourceRadius to SoftShadowRadius (to match VKDoom)
  • Add X, Y and Z offsets for VOXELDEF. Needed for voxelized weapons which would typically be very large and take up the majority of the 256x256x256 canvas, therefore making precise positioning of the models relative to the screen pretty much impossible without tweakable offsets.
  • Added SPF_(NO)FACECAMERA flagst for specifying camera facing on particles and visual thinkers.
  • Added SPF_ROLLCENTER for particles and visual thinkers.
  • Fixed Pre(Un)Morph being called out of order.
  • Turn on the output limiter
  • add COMPATF2_NOACSARGCHECK to disable ACS function argument count checks
  • add total chaos retro and full maps to compatibility.txt
  • Add missing GC write barrier
  • Misc network fixes
  • handle freeze in decoupled animations
  • Fix directory crash for filenames that appear elsewhere in the path
  • Clean up lightmap stuff in the namedef
  • fixed alignment issue in SBARINFO's DrawString command
  • Fixed subnormal float viewpos values breaking rendering
  • Disable effects on Actors set not to render locally
  • Add SPF_NOMIPMAP to force actor sprites or particles to have no mipmaps. This makes tiny sprites/particles look more crisp and legible in the distance. Mipmapping causes the sprites/particles to have an inconsistent look where they'd sometimes be clearly visible and sometimes less visible depending on camera distance and movement.
  • fix: check if bombsource exists when exploding a projectile with a XF_NOALLIES flag
  • Fix Specular not using Material definition for Glossiness and Level
  • Support the new Doom + Doom II update
  • fix MBF21 A_RadiusDamage crash/broken 'distance' arg
  • Allow XInput joysticks to work while the game is unfocused
  • don't change priority to idle if i_pauseinbackground is false
  • Isometric Mode and Robin (#2618)
  • Export PlayDiveOrSurfaceSounds to ZScript and made it virtual for mods to customize the diving and surfacing sounds
  • mingw64 requires including cstdint
  • Fix preprocessor symbol for Windows
  • Fix libraries on mingw64
  • Fix namespace issue
  • sys/stat.h is required on all platforms
  • Keep legacy_studio_definitions for non mingw64 toolchain
  • Better solution for DwmDefWindowProc on mingw64
  • fix faux pas
  • Fix to use the correct definition of DwmDefWindowProc
  • Fix incorrect return type
  • add doomkex doom2kex tntkex and plutoniakex as valid iwad filenames
  • add xbox filenames too
  • Added GOG path for Doom + Doom II
  • Reverted use of tchar.h which should be considered deprecated.
  • Allow for Basic and Hexen armor replacing
  • Fixed counters not clearing when using shared/local pickups
  • Added itemcls to HasReceived
  • Made itemcls optional
  • Skip bex strings for freedoom if language lump is present (#2682)
  • Stop grabbing mouse when game window doesn't have the focus
  • Smaller aspect ratio screens were getting clipped a bit too much. This is a brute-force if-else solution. Larger aspect ratios (wider screens) were always good.
  • fix A_PlaySound not working for DSDHACKED-defined sounds
  • implement +SQUAREPIXELS flag
  • add SpawnMultiCoopOnly mapinfo flag to spawn only coop spawns in single-player
  • PointToPseudoPitch() was being called even when viewpoint was not allowed out of bounds. And its sqrt was slow even when it was necessary (thanks dpjudas for the speedup code).
  • load id24res if present
  • Add support for fire textures in ANIMDEFS
  • Truecolor sky: Draw opaque black background on transparent texels
  • Render the bottom sky layer always with full opacity in the SW true color renderer.
  • replace naive interpolation logic with more exact logic
  • quick fix for interpolation, TODO better fix
  • rework interpolation to allow for precalculated frames
  • Properly fix double interpolation for IQM models
  • Prevent console from laying open when intro cutscene plays on some systems.
  • Fix bug where down arrow does nothing after clicking the main menu
  • Fix load/save menus not starting scrolled to the selected entry
  • Fix missing serialization for skyspeed1 and skyspeed2
  • Fix billboard facing camera only taking effect when used with XY billboarding
  • Fix incorrect boolean logic for drawBillboardFacingCamera
  • export FFont::GetChar() to ZScript
  • Added GetDecalName()
  • removal of some redundant checks
  • rename 'restart' ccmd to 'debug_restart' since it is in a broken state right now
  • implement SPAC_Walking, mostly useful for teleports or for line crossings that should not happen when the player is falling or flying - update UDMF spec entry
  • Added FloatBobFactor
  • Add another soundfonts search directory for *nix
  • Exported DPrintf
  • Add RADF_CIRCULARTHRUST and matching XF_/RTF_ flags
  • Search more paths in SHARE_DIR (#2610)
  • implement anamorphesis sprite clipping (aka forced-perspective) (#2431)
  • Added SECMF_HURTMONSTERS, SECMF_HARMINAIR and NOSECTORDAMAGE.
  • Added check for hurt floors in P_IsUnderDamage().
  • SetSkin and GetSkinCount added to PlayerInfo class
  • bail out if shape is null in F2DDrawer::AddShape
  • Fix for NoLocalRender not snapshotting between hub levels
  • Removing pre-clipping of Frustum if pitch > 46 degrees and viewpoint is not allowed out of bounds. This is like old behavior.
  • Fixed problem in CheckForShadows().
  • ID24 interlevel lumps implementation
  • make the broken ID24 levelnums work somehow so that Legacy of Rust's intermissions play.
  • Add bIsPuff flag
  • Add damagesource
  • Serialize damagesource, fix bad character in actor.zs
  • Made DamageSource and bIsPuff readonly
  • Fixed MF9_ISPUFF overlapping with MF9_NOSECTORDAMAGE
  • Fix broken if statement in ParseFireTexture
  • add missing 'author' and 'label' UMAPINFO f...
Read more

g4.12.2

28 Apr 13:58
Compare
Choose a tag to compare

GZDoom 4.12.1

21 Apr 14:32
10a8a61
Compare
Choose a tag to compare

GZDoom 4.12.0

21 Apr 08:05
f156abc
Compare
Choose a tag to compare
Read more

GZDoom 4.11.3

26 Oct 20:22
Compare
Choose a tag to compare

GZDoom 4.11.2

25 Oct 17:19
Compare
Choose a tag to compare

GZDoom 4.11.1

11 Oct 18:27
Compare
Choose a tag to compare

GZDoom 4.11.0

25 Sep 18:32
Compare
Choose a tag to compare

Highlights

  • Several new languages: Danish, Norwegian, Swedish and Turkish
  • cleanup of Doom's and Chex Quest's small font to use proper character heights for international support.
  • extended all fonts to be capable of handling all European languages which are in common use.
  • First stage of DSDHacked support. Tested only with crusader.wad for now.
  • The build system was transitioned to optionally use vcpkg, which allows building GZDoom on Windows by running a single batch file.
  • WebP and QOI support for textures.
  • sanitized the light mode selection to make it a first class mapping feature by separating map dependent light mode setup from performance related user preferences for the default setting.
  • Linux: GTK startup now offers all the options of the Windows variant
  • lots of new ZScript features.

Bugfixes

  • screen size settings are now properly saved.
  • fix UMAPINFO boss action clearing.
  • MBF21's BOSS flag now implies NORADIUSDMG.
  • remove memory leak in A_ChangeModel
  • fix OpenGL ES selection on the windows startup dialog

Details

  • Changed the variable type of Crossed3DWater. Seems like there was some kind of oversight. Crossed3DWater is an F3DFloor pointer, not sector_t.
  • Add ZScript constants used by FallAndSink
  • Switch to miniz from zlib
  • fix for Genesis of Descent E1M2, which is impossible to complete on ITYTD/HNTR. I had to decompile the ACS script to figure out what was going on, basically at one point you get locked into a room and have to kill exactly 3 enemies with TID 215 for the door to unlock. One of these is a Baron tagged for only Medium and Hard, in his place is an Imp #1184 that has all the right script setups but is not set to appear on any difficulty. The fix is to simply have this imp appear on Easy.
  • fixed the overlapping sector handler in hw_fakeflat.cpp. This picked the wrong plane as the proper texture cutoff.
  • fixed: The UDMF loader did not adjust the floor/ceiling overlap state after processing UDMF sector plane properties.
  • fixed: EV_DoDonut checked the wrong compatibility variable and missed all map specified flags.
  • Fix gameinfo load from same directory as file containing gameinfo lump
  • validate partner seg index in LoadGLZSegs before using it
  • added compatibility handler for Phocas Island 2 MAP01.
  • fixed doublebind check with automap. For the automap C_DoKey gets called twice, once with the automap bindings and once with the regular bindings and doubleclicks.
  • clear the Dehacked string table after passing it to GStrings. For some reason std::move does not work here so make sure it won't stick around.
  • stop all cutscenes before the ENDOOM screen.
  • fixed: Boom's generalized crushers must stop 8 units above the floor. This required changing the special, so a new one was added to avoid altering Generic_Crusher.
  • Fix a very rare crash with complex Polyobjects
  • add support for not localizing some text functions, and modify menu text fields to use this
  • let Dehacked set the implicit missile flags.
  • fix ammo consumption of powered up Phoenix Rod.
  • add unexplored secret color for overlay automap to the menu
  • made all FileReader implementations 64 bit capable.
  • added a nomirrors compatibility handler and applied it to Conf256's CONF55 map. This is for disabling broken plane reflection setups.
  • When compat_floormove is enabled prevent sector floor from lowering if a thing is stuck in the ceiling (vanilla behavior)
  • fixed M_GetSavegamesPath for Linux.
  • Add Inventory::ModifyBob and Inventory::ModifyBob3D
  • Expose OF_Transient to actors as bNoSaveGame
  • add StartGameDirect function
  • fixed: MBF21's BOSS flag implies NORADIUSDMG.
  • fixed: For Dehacked, A_CPosAttack needs to use a hard coded attack sound. This discrepancy is ancient, so the approach used for the shotgunner does not work here and some hacks are needed to remap the function only for Dehacked.
  • implemented the remaining dynamic structures of dsdhacked
  • dsdhacked: Allow dynamic creation of new actors
  • dsdhacked: allow dynamic creation of new states.
  • add float.equal_epsilon and double.equal_epsilon
  • Allow building gzdoom with Vulkan with either X11 or Wayland WSI integration through CMake options
  • use stb-image for JPEG decoding because the old library provides no advantage over it.
  • Allow disabling colors for NameAllKeys
  • avoid high stack usage in anmtexture.cpp
  • added DSDA's passover/nopassover keys to the MAPINFO parser.
  • use a string pool to store all filenames and in the file system. this avoid lots of small allocations for data that will released in bulk later.
  • use the lump cache directly for FileData. This was the final puzzle piece to allow using memory mapped files in the future.
  • use better hash function in the file system. This is djb2 which is supposedly one of the best string hashing functions around.
  • rewrote dir CCMD using ScanDirectory and avoiding I_ChDir entirely.
  • use ScanDirectory in all places where the findfile API was used.
  • WebP image support
  • added safeguards against very early access to console variables in Cocoa backend
  • Add support for QOI image formats
  • block the centerview CCMD if the player has TOTALLYFROZEN. This is deliberately done this way, instead of placing the check inside PlayerPawn::CheckPitch, because there may be other situations where we don't want to block the centering function (APowerFlight::EndEffect being one such case)
  • replaced zstrformat with stb_sprintf.
  • A_Chase CHF_DONTLOOKALLAROUND
  • Add Weapon::ModifyBobLayer , Weapon::ModifyBobLayer3D and Weapon::ModifyBobPivotLayer3D
  • allow explicit casts between vectors of different underlying types
  • Fixed BlockingLine giving erroneous results
  • add CountSectorTags/CountSectorTags/CountLineIDs/GetLineID
  • Exported reflection functionality. Localized reflection code to a single function. Fixed an error where NOSHIELDREFLECT was being checked on the wrong Actor. Fixed an oversight where MIRRORREFLECT was checking for valid target despite not needing one.
  • Added ShadowAimFactor and ShadowPenaltyFactor. These properties allow to specify how much an actors' aim is degraded when shooting at a shadow actor. And how much the shadow actor itself affects the shooters' aim, respectively.
  • Added MF9_SHADOWAIMVERT. This flag causes the vertical aiming of monsters to also be affected when they aim at shadow actors.
  • Added MF9_SHADOWBLOCK. Actors in the line of fire with this flag trigger the MF_SHADOW aiming penalty. The shooter needs to have MF9_DOSHADOWBLOCK to check for actors with this flag.
  • Added MF9_SHADOWAIM. This flag allows actors with MF6_SEEINVISIBLE to still get an aim penalty by trying to shoot at a shadow actor.
  • Added damage property to earthquakes.
  • Added damage and thrust multipliers to quakes.
  • Added QF_DAMAGEFALLOFF. This flag makes it so that the damage and actor thrusting of earthquakes fades with distance like the screen shake effect does.
  • Added (XF/RADF)_CIRCULAR. This flag makes explosions use a spherical radius, instead of a cubic one. Only took almost 30 years.
  • Added (XF/RADF)_NOALLIES. This flag allows explosions to not harm any actors that are friendly to its' source.
  • Added (XF/RADF)_THRUSTLESS. This flag allows for explosions that do not thrust any of the actors caught in the blast.
  • Allow custom MessageBox menu selector
  • Individual Joystick Enable/Disable Toggles
  • add QualifiedName to VMFunction and allocate these static names from the class data memory arena instead of using FStrings.
  • null pointer type checks in the VM added to avoid crash on bad codegen.
  • Expanded Service's Get functions to pass in name parameter.
  • Added GetName(UI/Data) to Service class.
  • make all legacy light modes except 'Doom' and the software rendering emulation MAPINFO only. A CVAR still exists for testing but its value won't be saved to the config.
  • MAPINFO can not enforce any of the two software light modes, as low end users require the option to change this to the 'performance' setting.
  • changed lightmode menu options: user can only select between "performance', 'software' and 'vanilla'. 'performance' is the old 'Doom' mode which is still needed to speed things up on low end hardware.
  • fix the ammocount parameter in Weapon.CheckAmmo
  • fix UMAPINFO boss action clearing. This did not handle the case where the actions were cleared without adding new ones and also did not clear the MBF21 boss action flags.
  • remove memory leak in A_ChangeModel
  • made some changes to vectors.h so that it can be used without the floating point function replacements.
  • Add Voodoo Zombie Compatflag
  • remove vid_gpuswitch and all its handling; it is only as of now useful in old versions of Windows 7/8/10 which are no longer supported
  • added MaxEffectTics field to Powerup
  • adapted font system to properly handle Turkish. Those i's are really messy, especially when dealing with allcaps or pure lowercase fonts.
  • made D_WriteUserInfoStrings memory safe.
  • Fix TArray allocating 0 bytes in constructor
  • Add dynamic lights to software slope drawer
  • use uniform buffers for dynamic lights everywhere. Branching on SSBO content does not work that well on NVidia so it is better disabled. So far only implemented for OpenGL Vulkan needs more work.
  • Fix Software Slope Rendering for non-1.2 pixel ratios
  • add the flags MINVISIBLE and MVISBLOCKED
  • Extend pseudo-generics system used by maps to dynarrays
  • add RedirectCVAR directive for loading alternate maps based on a Bool CVAR setting
  • Fixes bones when using OpenGL 3.3 (UBO bone data)
  • validate the buffer size in HWViewpointBuffer::Set2D.
  • Fixed a bug where calling an invalid virtual function would cause a crash.
  • Add cvars to sprite shadows progressively according to thing <-> floor distance
  • Added OnEngineInitialize() for static event handlers
  • cleanup of the Doom and Chex Quest small fonts' discritical characters
    ...
Read more

GZDoom 4.10.0

04 Dec 14:58
Compare
Choose a tag to compare
  • Italian language translation is now complete
  • Make the new scaled angle changes at frame rate opt-in behind new flag SPF_SCALEDNOLERP.
  • Set up interpolated camera angle changes to occur at framerate when all conditions in P_NoInterpolation() are met.
  • Make view angles interpolate on a separate flag to the one that forces interpolation for the entire frame.
  • Map<K,V> and MapIterator<K,V> for ZScript
  • Structified A_SpawnParticle/Ex
  • Look up named frames using the Animation ID (if any).
  • Allow Disabling of XY Billboard for Particles
  • Added Method For Getting Portal Group Count
  • Allow Getting Portal Group Offsets
  • Fixed A_Changemodel crash from invalid modeldef names
  • Fix SNDINFO $rolloff always changing global rolloff
  • Fix GC ignoring DynArrays inside fixed Arrays
  • AST debug cleanup
  • fixed: The raw texture caching in the texture manager did not work. This erroneously checked for FrontSkyLayer.
  • Allow assigning IQM frames by animation name plus frame offset.
  • Added animation support for OptionMenus
  • Fix crash if Animation is not explicitly assigned in MODELDEF.
  • internal cleanup of sound code
  • allow SNDINFO to declare sound mappings by using 'sound = soundfle' syntax.
    • process events every frame as well to ensure that menus can run at any framerate
  • Fix incorrect pixelratio handling on rotated models.
  • Added Font and TextureID types to Option and Image Scroller items (List items already have these)
  • Added "Class" instruction for Image Scrollers
  • Added ability for Option items to read in their OptionMenuDescriptor (List and Image Scroller items already have this)
  • Added "ForceList" instruction for Lists so that skill, playerclass, and episode menus don't get overridden
  • Fix checking of wrong variable in String..Float concatenation
  • Clearscoped getters for map data
  • CustomMessageBox
  • fix colormap remapping when colormap entries may have fullbright entries which should not be considered duplicates
  • stop all sound before showing ENDOOM.
  • disabled shortcutting the intermission code if no summary screen is wanted. This also disabled all cutscenes being attached to the completed map.
  • added 'foreach' loop to ZScript.
  • implementation of Quaternion type in ZScript
  • GLES: Added IQM bone support.
  • SendConsoleEvent function for EventHandlers
  • Future-proof particles by resetting them completely when replaced.
  • added PlusZ intrinsic to Vector3 and ToVector intrinsic to numeric values. These just mirror features of the internal vector classes.
  • added LengthSquared and Angle intrinsics for all vector types, also allow calling VectorAngle with a full vector as a single parameter.
  • Add PushSound property and Slide state
  • Added PS_REPLACE flag for A_SpawnParticle(Ex). When used, new particles that spawn when the limit is reached will replace the oldest particle.
  • add Vector4 to ZScript
  • avoid infinite portal recursion.
  • fix uncaught exception that rarely occurred with the intermission screen that would vm-abort out from any attempt to enter a level
  • Exposed LevelLocals' LookupString functionality
  • Improved Slam functionality.
  • Normalize angle in AngleToACS. Fixes GetActorAngle returning negative or large values with no range limit.
  • Enable ANIMDEFS for particles
  • add some more blacklisted cvars to defcvars
  • fixed background setup for intermissions to apply tiling only where intended.
  • removed the unused BaseBlend* variables and the testblend CCMD.
  • added a compile option to fully disable the software renderer. This is mainly for new games which have been designed for hardware rendering.
  • add the following command line parameters:
  • -noextras: disable loading of any extras (lights, brightmaps, widescreen)
  • -nolights: disable loading of lights
  • -nobrightmaps: disable loading of brightmaps
  • -nowidescreen: disable loading of included widescreen assets
  • fixed bad index check in CanWipe. This can be called with index == -1, which should check the first element of the intermission.
  • GC: Have a real finalizer stage for destroying objects instead of mixing them in to the sweep stage.
  • GC: Base GC rate on a running average of the allocation rate instead of basing it on the amount of time taken since the last sweep started.
  • More GC stats for better tweaking.
  • added characters U-0404 and U-0490 for Ukrainian language support.
  • reworked all accented characters of Doom's SmallFont. Also adding a few new ones that were easy to do
  • when converting to a portable install, flag the current session accordingly.
  • changed CalculateBones to receive the bone component data directly instead of the owning actor.
  • fixed FileExists check for -loadgame. This was done before the current savegame path was known so it always errored out.