EDuke32 Changelog Archivio non ufficiale

Build 8229

19 ottobre 2019 · 95 commit di 1 autore · SVN

Build per mese 318 build

  1. gen

  2. feb

  3. mar

  4. apr

  5. mag

  6. giu

  7. lug

  8. ago

  9. set

  10. ott

  11. nov

  12. dic

File di log originale · 20191019-8229.txt
------------------------------------------------------------------------
r8229 | terminx | 2019-10-19 17:18:16 -0700 (Sat, 19 Oct 2019) | 1 line

I thought this would work but I'm stupid :D
------------------------------------------------------------------------
r8228 | terminx | 2019-10-19 16:49:02 -0700 (Sat, 19 Oct 2019) | 1 line

Tweak the priority classes set by win_priorityclass
------------------------------------------------------------------------
r8227 | terminx | 2019-10-19 16:48:59 -0700 (Sat, 19 Oct 2019) | 1 line

Fix issue causing maps to sometimes fail to load
------------------------------------------------------------------------
r8226 | terminx | 2019-10-19 16:48:55 -0700 (Sat, 19 Oct 2019) | 1 line

Band-aid fix an issue with the tile packer preventing MSVC builds from working
------------------------------------------------------------------------
r8225 | terminx | 2019-10-19 16:48:51 -0700 (Sat, 19 Oct 2019) | 1 line

Prefer uint32_t over unsigned int
------------------------------------------------------------------------
r8224 | terminx | 2019-10-19 16:48:44 -0700 (Sat, 19 Oct 2019) | 1 line

The constening
------------------------------------------------------------------------
r8223 | terminx | 2019-10-19 16:48:40 -0700 (Sat, 19 Oct 2019) | 1 line

Add mus_adlibstereo cvar to enable and disable AdLib stereo mode
------------------------------------------------------------------------
r8222 | terminx | 2019-10-19 16:48:35 -0700 (Sat, 19 Oct 2019) | 1 line

Add a cvar array for audiolib
------------------------------------------------------------------------
r8221 | terminx | 2019-10-19 16:48:31 -0700 (Sat, 19 Oct 2019) | 1 line

Further small midi cleanup changes--nothing functional
------------------------------------------------------------------------
r8220 | terminx | 2019-10-19 16:48:26 -0700 (Sat, 19 Oct 2019) | 1 line

Further AdLib cleanup... leaving this in a separate commit in case I fucked something up
------------------------------------------------------------------------
r8219 | terminx | 2019-10-19 16:48:20 -0700 (Sat, 19 Oct 2019) | 1 line

Further audiolib work... I think this is almost done!
------------------------------------------------------------------------
r8218 | terminx | 2019-10-19 16:48:08 -0700 (Sat, 19 Oct 2019) | 1 line

More audiolib work
------------------------------------------------------------------------
r8217 | terminx | 2019-10-19 16:47:59 -0700 (Sat, 19 Oct 2019) | 3 lines

Sort lists of things in the makefile

I'm not gonna lie, I got some kind of weird OCD pleasure out of this.
------------------------------------------------------------------------
r8216 | terminx | 2019-10-19 16:47:54 -0700 (Sat, 19 Oct 2019) | 3 lines

Audiolib rework WIP

This attempts to rectify the differences between versions of JFAudiolib created after we forked the code, and the extra features contained in Nuke.YKT's fork of our version.
------------------------------------------------------------------------
r8215 | terminx | 2019-10-19 16:47:42 -0700 (Sat, 19 Oct 2019) | 3 lines

New files for audiolib

This is in a separate commit just to make the changes to existing files easier to go through.
------------------------------------------------------------------------
r8214 | terminx | 2019-10-19 16:47:29 -0700 (Sat, 19 Oct 2019) | 3 lines

Use SDL audiolib driver on Windows

This shitcans the SDL_mixer requirement but leaves platforms other than Windows without built-in MIDI playback capability until Nuke.YKT's OPL3 emulator is merged. This also reworks sdlmusic.cpp into music_external.cpp, including an untested port of the code to Windows.
------------------------------------------------------------------------
r8213 | terminx | 2019-10-19 16:47:19 -0700 (Sat, 19 Oct 2019) | 1 line

Misc audiolib cleanups
------------------------------------------------------------------------
r8212 | terminx | 2019-10-19 16:47:12 -0700 (Sat, 19 Oct 2019) | 1 line

Add snd_tryformats cvar to disable automatic loading of .ogg and .flac versions of sound and music
------------------------------------------------------------------------
r8211 | terminx | 2019-10-19 16:47:08 -0700 (Sat, 19 Oct 2019) | 3 lines

With MinGW GCC, you get a different __cpuid() depending on whether or not you include cpuid.h. That is strange.

This fixes sysReadCPUID() to work on more than just Windows.
------------------------------------------------------------------------
r8210 | terminx | 2019-10-19 16:47:04 -0700 (Sat, 19 Oct 2019) | 1 line

Add -Wno-deprecated-declarations to the warnings for GCC 9 and up
------------------------------------------------------------------------
r8209 | terminx | 2019-10-19 16:47:01 -0700 (Sat, 19 Oct 2019) | 1 line

Remove Android.mk
------------------------------------------------------------------------
r8208 | terminx | 2019-10-19 16:46:58 -0700 (Sat, 19 Oct 2019) | 1 line

Fix tiny header issue
------------------------------------------------------------------------
r8207 | terminx | 2019-10-19 16:46:54 -0700 (Sat, 19 Oct 2019) | 1 line

Don't try videoSetGameMode() if there aren't any valid modes
------------------------------------------------------------------------
r8206 | terminx | 2019-10-19 16:46:50 -0700 (Sat, 19 Oct 2019) | 1 line

Patch from Nuke.YKT to fix polygon leakage issue with NPOT skies in Polymost
------------------------------------------------------------------------
r8205 | terminx | 2019-10-19 16:46:46 -0700 (Sat, 19 Oct 2019) | 1 line

Bump default cache1d size to 128MB in the editor and add support for the cachesize def token
------------------------------------------------------------------------
r8204 | terminx | 2019-10-19 16:46:41 -0700 (Sat, 19 Oct 2019) | 3 lines

cache1d rework

This turns cache1d into a reusable class that can be used to implement multiple caches for different types of data. Also adds a "cacheinfo" console command that prints out some statistics about the cache.
------------------------------------------------------------------------
r8203 | terminx | 2019-10-19 16:46:34 -0700 (Sat, 19 Oct 2019) | 1 line

Move DEBUG_ALLOCACHE_AS_MALLOC crap to the bottom of cache1d.cpp instead of having preprocessor garbage in every function
------------------------------------------------------------------------
r8202 | terminx | 2019-10-19 16:46:30 -0700 (Sat, 19 Oct 2019) | 3 lines

This seems like it should be allocated permanently (value 255) instead of merely marked as locked (value 200)

There doesn't seem to be any functionality implemented to re-load voxels if they're removed from the cache, and blocks marked as locked can still be pushed out of the cache if the cache is full and a large allocation won't fit anywhere else.
------------------------------------------------------------------------
r8201 | terminx | 2019-10-19 16:46:26 -0700 (Sat, 19 Oct 2019) | 3 lines

Better cache1d enums plus some general cache1d maintenance

Renamed variables, added usage of said enums, etc.
------------------------------------------------------------------------
r8200 | terminx | 2019-10-19 16:46:17 -0700 (Sat, 19 Oct 2019) | 1 line

Speed up G_ReadGLFrame() by just grabbing a chunk of memory from cache1d instead of doing a huge malloc()
------------------------------------------------------------------------
r8199 | terminx | 2019-10-19 16:46:12 -0700 (Sat, 19 Oct 2019) | 3 lines

Separate the filesystem portion of cache1d.cpp and move it into vfs.cpp

Yes, the engine tools (kextract, etc) still compile.
------------------------------------------------------------------------
r8198 | terminx | 2019-10-19 16:46:04 -0700 (Sat, 19 Oct 2019) | 1 line

Fix misplaced files in VS solution filters
------------------------------------------------------------------------
r8197 | terminx | 2019-10-19 16:46:00 -0700 (Sat, 19 Oct 2019) | 3 lines

audiolib: pull memory for vorbis_data struct from cache1d

This gets rid of one calloc() and free() per vorbis voice playback, and most of the time allows reuse of the block from cache1d across multiple uses of the VoiceNode.
------------------------------------------------------------------------
r8196 | terminx | 2019-10-19 16:45:56 -0700 (Sat, 19 Oct 2019) | 1 line

Add CACHE1D_ENTRY_FREE and CACHE1D_ENTRY_PERMANENT enums
------------------------------------------------------------------------
r8195 | terminx | 2019-10-19 16:45:49 -0700 (Sat, 19 Oct 2019) | 3 lines

Wait to run G_MoveLoop() until a frame has just been rendered

This should give G_MoveLoop() a better chance to not run past the time when another frame is to be drawn.
------------------------------------------------------------------------
r8194 | terminx | 2019-10-19 16:45:45 -0700 (Sat, 19 Oct 2019) | 1 line

Silence a warning
------------------------------------------------------------------------
r8193 | terminx | 2019-10-19 16:45:41 -0700 (Sat, 19 Oct 2019) | 1 line

Replace usages of deprecated LZ4_decompress_fast() API with LZ4_decompress_safe() as recommended by current LZ4 documentation
------------------------------------------------------------------------
r8192 | terminx | 2019-10-19 16:45:36 -0700 (Sat, 19 Oct 2019) | 1 line

Add #pragma once to debugbreak.h and remove it from separate inclusion in a couple of translation units as we're including it directly in compat.h now
------------------------------------------------------------------------
r8191 | terminx | 2019-10-19 16:45:31 -0700 (Sat, 19 Oct 2019) | 3 lines

Add fatal_exit(), a slightly different method of terminating the process upon error

On Windows, this writes an event to the system event log for later retrieval.
------------------------------------------------------------------------
r8190 | terminx | 2019-10-19 16:45:24 -0700 (Sat, 19 Oct 2019) | 1 line

Use EXIT_FAILURE and EXIT_SUCCESS from stdlib.h when calling exit()
------------------------------------------------------------------------
r8189 | terminx | 2019-10-19 16:45:18 -0700 (Sat, 19 Oct 2019) | 1 line

Use zpl_virtual_memory_page_size() to implement our Bgetpagesize()
------------------------------------------------------------------------
r8188 | terminx | 2019-10-19 16:45:14 -0700 (Sat, 19 Oct 2019) | 1 line

Make Bgetsysmemsize() return size_t
------------------------------------------------------------------------
r8187 | terminx | 2019-10-19 16:45:10 -0700 (Sat, 19 Oct 2019) | 1 line

Use zpl_vm (backed by VirtualAlloc or mmap) for larger memory chunks
------------------------------------------------------------------------
r8186 | terminx | 2019-10-19 16:45:06 -0700 (Sat, 19 Oct 2019) | 1 line

Update LZ4 to e8baeca51ef2003d6c9ec21c32f1563fef1065b9
------------------------------------------------------------------------
r8185 | terminx | 2019-10-19 16:45:01 -0700 (Sat, 19 Oct 2019) | 1 line

Update xxHash to 1ea98d6a38300f7224869de856a876a2050cdf78
------------------------------------------------------------------------
r8184 | terminx | 2019-10-19 16:44:57 -0700 (Sat, 19 Oct 2019) | 1 line

Add const to dest parameter of MV_Reverb()
------------------------------------------------------------------------
r8183 | terminx | 2019-10-19 16:44:53 -0700 (Sat, 19 Oct 2019) | 3 lines

Use templates for audiolib mixing functions

Patch from NY00123.
------------------------------------------------------------------------
r8182 | terminx | 2019-10-19 16:44:48 -0700 (Sat, 19 Oct 2019) | 3 lines

This lets sys_timer mode 4 (rdtsc) work on ARM

...probably
------------------------------------------------------------------------
r8181 | terminx | 2019-10-19 16:44:45 -0700 (Sat, 19 Oct 2019) | 1 line

Fix issue with crouch toggle and jetpack
------------------------------------------------------------------------
r8180 | terminx | 2019-10-19 16:44:41 -0700 (Sat, 19 Oct 2019) | 1 line

Explicitly yield audio data fill thread when work is finished
------------------------------------------------------------------------
r8179 | terminx | 2019-10-19 16:44:36 -0700 (Sat, 19 Oct 2019) | 5 lines

Add portions of the ZPL library, a public domain collection of useful helper functions and structures

See https://github.com/zpl-c/zpl

I'm not including all of it, but I have plans for some of what is there.
------------------------------------------------------------------------
r8178 | terminx | 2019-10-19 16:44:30 -0700 (Sat, 19 Oct 2019) | 3 lines

Remove limit of MAXCACHEOBJECTS in favor of dynamic allocation/expansion of the cache index

Somewhat based on a patch from Doom64hunter.
------------------------------------------------------------------------
r8177 | terminx | 2019-10-19 16:44:26 -0700 (Sat, 19 Oct 2019) | 1 line

Make the lock ptr the first member of the cactype struct as it's the most accessed
------------------------------------------------------------------------
r8176 | terminx | 2019-10-19 16:44:22 -0700 (Sat, 19 Oct 2019) | 1 line

These changes are on top of the enet.h from the previous commit and are what I needed to build under MSYS2 without warnings or errors
------------------------------------------------------------------------
r8175 | terminx | 2019-10-19 16:44:15 -0700 (Sat, 19 Oct 2019) | 1 line

Swap out our old deprecated version of ENet for a single-file header-based fork, including features like IPv6 support
------------------------------------------------------------------------
r8174 | terminx | 2019-10-19 16:44:03 -0700 (Sat, 19 Oct 2019) | 7 lines

Significant reworks to everything in winbits.cpp

Important cvars after this commit:

sys_timer
win_systemtimermode
win_priorityclass
------------------------------------------------------------------------
r8173 | terminx | 2019-10-19 16:43:55 -0700 (Sat, 19 Oct 2019) | 1 line

Add missing header to VS project
------------------------------------------------------------------------
r8172 | terminx | 2019-10-19 16:43:51 -0700 (Sat, 19 Oct 2019) | 1 line

Add cvar to control ntdll.dll timer voodoo
------------------------------------------------------------------------
r8171 | terminx | 2019-10-19 16:43:46 -0700 (Sat, 19 Oct 2019) | 1 line

Implement sys_timer cvar with several different choices of timers to control frame pacing
------------------------------------------------------------------------
r8170 | terminx | 2019-10-19 16:43:38 -0700 (Sat, 19 Oct 2019) | 1 line

This is useless
------------------------------------------------------------------------
r8169 | terminx | 2019-10-19 16:43:35 -0700 (Sat, 19 Oct 2019) | 1 line

Rename timerUpdate() and timerGetRate() to timerUpdateClock() and timerGetClockRate(), because they both only apply to totalclock
------------------------------------------------------------------------
r8168 | terminx | 2019-10-19 16:43:30 -0700 (Sat, 19 Oct 2019) | 1 line

Use nanosleep instead of usleep
------------------------------------------------------------------------
r8167 | terminx | 2019-10-19 16:43:26 -0700 (Sat, 19 Oct 2019) | 1 line

Patch from Doom64hunter to address a couple of issues with per-map art
------------------------------------------------------------------------
r8166 | terminx | 2019-10-19 16:43:22 -0700 (Sat, 19 Oct 2019) | 1 line

Renderer sprite sorting patch from Nuke.YKT
------------------------------------------------------------------------
r8165 | terminx | 2019-10-19 16:43:18 -0700 (Sat, 19 Oct 2019) | 1 line

Explicitly implement timerGetTicksU64() with chrono::high_resolution_timer and use chrono::steady_clock for regular timerGetHiTicks() and totalclock
------------------------------------------------------------------------
r8164 | terminx | 2019-10-19 16:43:15 -0700 (Sat, 19 Oct 2019) | 3 lines

Recalculate frame limiter delay every time a frame is drawn

This is an attempt to work around issues that arise when timerGetTicksU64() isn't monotonic. Timing situations like that shouldn't happen, but some systems have pretty messed up configurations.
------------------------------------------------------------------------
r8163 | terminx | 2019-10-19 16:43:11 -0700 (Sat, 19 Oct 2019) | 1 line

Let's try something different for r_swapcomplete
------------------------------------------------------------------------
r8162 | terminx | 2019-10-19 16:43:07 -0700 (Sat, 19 Oct 2019) | 1 line

Remove obsolete win_uninit() function
------------------------------------------------------------------------
r8161 | terminx | 2019-10-19 16:43:02 -0700 (Sat, 19 Oct 2019) | 1 line

Disable SDL's built-in signal handler
------------------------------------------------------------------------
r8160 | terminx | 2019-10-19 16:42:59 -0700 (Sat, 19 Oct 2019) | 1 line

Call debug_break() from attach_debugger_here() in builds with DEBUGGINGAIDS enabled
------------------------------------------------------------------------
r8159 | terminx | 2019-10-19 16:42:55 -0700 (Sat, 19 Oct 2019) | 1 line

This old 3dfx and SiS hardware isn't capable of running our GL renderer and never will be
------------------------------------------------------------------------
r8158 | terminx | 2019-10-19 16:42:51 -0700 (Sat, 19 Oct 2019) | 1 line

Equivalent to jfbuild commit b6a666745cea21c6f8193b046bcdd0636fb7c166
------------------------------------------------------------------------
r8157 | terminx | 2019-10-19 16:42:47 -0700 (Sat, 19 Oct 2019) | 1 line

Simplify SDL subsystem init a little
------------------------------------------------------------------------
r8156 | terminx | 2019-10-19 16:42:44 -0700 (Sat, 19 Oct 2019) | 3 lines

Rename BUILD_xxx debug env vars to EDUKE32_xxx

Add EDUKE32_NO_NVIDIA_THREADED_OPTIMIZATIONS for Linux and EDUKE32_NO_XINPUT for Windows
------------------------------------------------------------------------
r8155 | terminx | 2019-10-19 16:42:39 -0700 (Sat, 19 Oct 2019) | 1 line

Don't send a mouse event when clicking to re-focus the game window
------------------------------------------------------------------------
r8154 | terminx | 2019-10-19 16:42:36 -0700 (Sat, 19 Oct 2019) | 1 line

Fix oversight where the check for whether the loaded version of SDL is new enough was never updated for SDL2
------------------------------------------------------------------------
r8153 | terminx | 2019-10-19 16:42:32 -0700 (Sat, 19 Oct 2019) | 1 line

GLU isn't loaded with SDL, so calling SDL_GetError() here is pretty useless
------------------------------------------------------------------------
r8152 | terminx | 2019-10-19 16:42:28 -0700 (Sat, 19 Oct 2019) | 3 lines

Use aligned allocation for the block gamecontrollerdb.txt is read into

I know, unnecessary.
------------------------------------------------------------------------
r8151 | terminx | 2019-10-19 16:42:24 -0700 (Sat, 19 Oct 2019) | 1 line

SDL_free() is not for pointers to SDL_RWops structures...
------------------------------------------------------------------------
r8150 | terminx | 2019-10-19 16:42:21 -0700 (Sat, 19 Oct 2019) | 1 line

Don't use the SDL joystick API with SDL2, just the updated one for game controllers
------------------------------------------------------------------------
r8149 | terminx | 2019-10-19 16:42:17 -0700 (Sat, 19 Oct 2019) | 1 line

Add optional duration parameter to idle()
------------------------------------------------------------------------
r8148 | terminx | 2019-10-19 16:42:13 -0700 (Sat, 19 Oct 2019) | 1 line

Clamp nextPageDelay in G_FPSLimit() to 0.0 - g_frameDelay
------------------------------------------------------------------------
r8147 | terminx | 2019-10-19 16:42:10 -0700 (Sat, 19 Oct 2019) | 1 line

Increase timer resolution on Windows
------------------------------------------------------------------------
r8146 | terminx | 2019-10-19 16:42:05 -0700 (Sat, 19 Oct 2019) | 3 lines

Remove win_allowtaskswitching()

We weren't ever calling win_allowtaskswitching(0) anywhere, and when I tried it, it did not work. Broken functionality to try and block alt + tab is not necessary.
------------------------------------------------------------------------
r8145 | terminx | 2019-10-19 16:42:01 -0700 (Sat, 19 Oct 2019) | 1 line

Use timeGetTime() to implement timerGetTicks() on Windows
------------------------------------------------------------------------
r8144 | terminx | 2019-10-19 16:41:58 -0700 (Sat, 19 Oct 2019) | 1 line

Remove dead function declarations
------------------------------------------------------------------------
r8143 | terminx | 2019-10-19 16:41:54 -0700 (Sat, 19 Oct 2019) | 1 line

This function declaration was in the wrong header
------------------------------------------------------------------------
r8142 | terminx | 2019-10-19 16:41:50 -0700 (Sat, 19 Oct 2019) | 1 line

Update xxHash to git commit cd0f5c22095c49c35104dca86620322801f14893
------------------------------------------------------------------------
r8141 | terminx | 2019-10-19 16:41:44 -0700 (Sat, 19 Oct 2019) | 1 line

Use timerGetHiTicks() instead of timerGetTicks() for timing in osdfunc_fileinfo()
------------------------------------------------------------------------
r8140 | terminx | 2019-10-19 16:41:40 -0700 (Sat, 19 Oct 2019) | 1 line

G_HandleAsync() -> gameHandleEvents()
------------------------------------------------------------------------
r8139 | terminx | 2019-10-19 16:41:35 -0700 (Sat, 19 Oct 2019) | 3 lines

Partial timer cleanup

After this revision, the only place timerUpdate() is called is from within handleevents(). S_Cleanup(), MUSIC_Update(), and G_HandleSpecialKeys() are now called from a timer callback set with timerSetCallback(). This more or less deprecates the usage of faketimerhandler() in EDuke32 and Mapster32, but other games still rely on the functionality.
------------------------------------------------------------------------
r8138 | terminx | 2019-10-19 16:41:29 -0700 (Sat, 19 Oct 2019) | 1 line

Reword stupid error message that has probably never even been seen
------------------------------------------------------------------------
r8137 | terminx | 2019-10-19 16:41:26 -0700 (Sat, 19 Oct 2019) | 3 lines

ifdef DEBUGGINGAIDS for this quick exit crap

this is more like regular AIDS than DEBUGGINGAIDS though
------------------------------------------------------------------------
r8136 | terminx | 2019-10-19 16:41:22 -0700 (Sat, 19 Oct 2019) | 1 line

Use tabledivide64() in timerUpdate()
------------------------------------------------------------------------
r8135 | terminx | 2019-10-19 16:41:18 -0700 (Sat, 19 Oct 2019) | 1 line

Ugh, apparently we rely on this for FURY
------------------------------------------------------------------------
See http://svn.eduke32.com/listing.php?repname=eduke32 for more details.

Sort lists of things in the makefile

Richard Gobeille (TerminX) 19 ott 2019, 16:47 UTC−7 r8217

I'm not gonna lie, I got some kind of weird OCD pleasure out of this.

Audiolib rework WIP

Richard Gobeille (TerminX) 19 ott 2019, 16:47 UTC−7 r8216

This attempts to rectify the differences between versions of JFAudiolib created after we forked the code, and the extra features contained in Nuke.YKT's fork of our version.

New files for audiolib

Richard Gobeille (TerminX) 19 ott 2019, 16:47 UTC−7 r8215

This is in a separate commit just to make the changes to existing files easier to go through.

Use SDL audiolib driver on Windows

Richard Gobeille (TerminX) 19 ott 2019, 16:47 UTC−7 r8214

This shitcans the SDL_mixer requirement but leaves platforms other than Windows without built-in MIDI playback capability until Nuke.YKT's OPL3 emulator is merged. This also reworks sdlmusic.cpp into music_external.cpp, including an untested port of the code to Windows.

Fix

With MinGW GCC, you get a different __cpuid() depending on whether or not you include cpuid.h. That is strange.

Richard Gobeille (TerminX) 19 ott 2019, 16:47 UTC−7 r8211

This fixes sysReadCPUID() to work on more than just Windows.

cache1d rework

Richard Gobeille (TerminX) 19 ott 2019, 16:46 UTC−7 r8204

This turns cache1d into a reusable class that can be used to implement multiple caches for different types of data. Also adds a "cacheinfo" console command that prints out some statistics about the cache.

Move DEBUG_ALLOCACHE_AS_MALLOC crap to the bottom of cache1d.cpp instead of having preprocessor garbage in every function

Richard Gobeille (TerminX) 19 ott 2019, 16:46 UTC−7 r8203
Engine

This seems like it should be allocated permanently (value 255) instead of merely marked as locked (value 200)

Richard Gobeille (TerminX) 19 ott 2019, 16:46 UTC−7 r8202

There doesn't seem to be any functionality implemented to re-load voxels if they're removed from the cache, and blocks marked as locked can still be pushed out of the cache if the cache is full and a large allocation won't fit anywhere else.

Better cache1d enums plus some general cache1d maintenance

Richard Gobeille (TerminX) 19 ott 2019, 16:46 UTC−7 r8201

Renamed variables, added usage of said enums, etc.

Speed up G_ReadGLFrame() by just grabbing a chunk of memory from cache1d instead of doing a huge malloc()

Richard Gobeille (TerminX) 19 ott 2019, 16:46 UTC−7 r8200
Engine

Separate the filesystem portion of cache1d.cpp and move it into vfs.cpp

Richard Gobeille (TerminX) 19 ott 2019, 16:46 UTC−7 r8199

Yes, the engine tools (kextract, etc) still compile.

pull memory for vorbis_data struct from cache1d

Richard Gobeille (TerminX) 19 ott 2019, 16:46 UTC−7 r8197

This gets rid of one calloc() and free() per vorbis voice playback, and most of the time allows reuse of the block from cache1d across multiple uses of the VoiceNode.

Wait to run G_MoveLoop() until a frame has just been rendered

Richard Gobeille (TerminX) 19 ott 2019, 16:45 UTC−7 r8195

This should give G_MoveLoop() a better chance to not run past the time when another frame is to be drawn.

Replace usages of deprecated LZ4_decompress_fast() API with LZ4_decompress_safe() as recommended by current LZ4 documentation

Richard Gobeille (TerminX) 19 ott 2019, 16:45 UTC−7 r8193

Add #pragma once to debugbreak.h and remove it from separate inclusion in a couple of translation units as we're including it directly in compat.h now

Richard Gobeille (TerminX) 19 ott 2019, 16:45 UTC−7 r8192

Add fatal_exit(), a slightly different method of terminating the process upon error

Richard Gobeille (TerminX) 19 ott 2019, 16:45 UTC−7 r8191

On Windows, this writes an event to the system event log for later retrieval.

Remove limit of MAXCACHEOBJECTS in favor of dynamic allocation/expansion of the cache index

Richard Gobeille (TerminX) 19 ott 2019, 16:44 UTC−7 r8178

Somewhat based on a patch from Doom64hunter.

These changes are on top of the enet.h from the previous commit and are what I needed to build under MSYS2 without warnings or errors

Richard Gobeille (TerminX) 19 ott 2019, 16:44 UTC−7 r8176

Swap out our old deprecated version of ENet for a single-file header-based fork, including features like IPv6 support

Richard Gobeille (TerminX) 19 ott 2019, 16:44 UTC−7 r8175

Significant reworks to everything in winbits.cpp

Richard Gobeille (TerminX) 19 ott 2019, 16:44 UTC−7 r8174

Important cvars after this commit: sys_timer win_systemtimermode win_priorityclass

Rename timerUpdate() and timerGetRate() to timerUpdateClock() and timerGetClockRate(), because they both only apply to totalclock

Richard Gobeille (TerminX) 19 ott 2019, 16:43 UTC−7 r8169

Explicitly implement timerGetTicksU64() with chrono::high_resolution_timer and use chrono::steady_clock for regular timerGetHiTicks() and totalclock

Richard Gobeille (TerminX) 19 ott 2019, 16:43 UTC−7 r8165

Recalculate frame limiter delay every time a frame is drawn

Richard Gobeille (TerminX) 19 ott 2019, 16:43 UTC−7 r8164

This is an attempt to work around issues that arise when timerGetTicksU64() isn't monotonic. Timing situations like that shouldn't happen, but some systems have pretty messed up configurations.

Rename BUILD_xxx debug env vars to EDUKE32_xxx

Richard Gobeille (TerminX) 19 ott 2019, 16:42 UTC−7 r8156

Add EDUKE32_NO_NVIDIA_THREADED_OPTIMIZATIONS for Linux and EDUKE32_NO_XINPUT for Windows

Fix

Fix oversight where the check for whether the loaded version of SDL is new enough was never updated for SDL2

Richard Gobeille (TerminX) 19 ott 2019, 16:42 UTC−7 r8154
Fix

Remove win_allowtaskswitching()

Richard Gobeille (TerminX) 19 ott 2019, 16:42 UTC−7 r8146

We weren't ever calling win_allowtaskswitching(0) anywhere, and when I tried it, it did not work. Broken functionality to try and block alt + tab is not necessary.

Engine

Partial timer cleanup

Richard Gobeille (TerminX) 19 ott 2019, 16:41 UTC−7 r8139

After this revision, the only place timerUpdate() is called is from within handleevents(). S_Cleanup(), MUSIC_Update(), and G_HandleSpecialKeys() are now called from a timer callback set with timerSetCallback(). This more or less deprecates the usage of faketimerhandler() in EDuke32 and Mapster32, but other games still rely on the functionality.

ifdef DEBUGGINGAIDS for this quick exit crap

Richard Gobeille (TerminX) 19 ott 2019, 16:41 UTC−7 r8137

this is more like regular AIDS than DEBUGGINGAIDS though