January 2023
-
General
- Duke3D: Ensure player maintains velocity when going through a portal.
Show details
* The current setup that's been long-standing has the player come to a complete stand-still for one tic while transiting through a portal. * By saving off the velocity difference between the player's pos/opos, we can re-apply that to opos to make the portal transition truly seamless.
August 2020
-
General
ALSA MIDI: Improve implementation as per discussions in terminx/eduke32!16.
Show details
* Don't call ALSADrv_MIDI_ListPorts() from driver_alsa.cpp. There is no need to do this as ALSADrv_MIDI_Init() just connects to the client and port specified and succeeds or fails accordingly. * Remove nullDevice vector from driver_alsa.cpp. Calculate whether returned vector from ALSADrv_MIDI_ListPorts() is null or not within game's menu and handle accordingly. * Remove static declaration of validDevices from driver_alsa.cpp. Vector is of no use inside of driver_alsa.cpp and is only required game-side. * Return declaration of devices found back to ALSADrv_MIDI_ListPorts() and return whether it's empty or not. * Declare alsadevices as an empty non-constant in menus.cpp, then populate from Menu_RefreshSoundProperties() in menus.cpp. This allows us to fill alsadevices with an empty vector if no devices found and allows a user to plug new MIDI devices in and have the game find them without restarting the game.
May 2020
April 2020
-
General
build/src/sdlayer.cpp: Add new CVAR r_glfinish to make 'glFinish()' optional.
Show details
- Issues requiring glFinish() aren't really apparent on Linux, therefore not needed. - Running glFinish() can have an detrimental impact of Polymer users depending on whether they use the HRP or not.
-
General
build/src/sdlayer.cpp: Add new CVAR r_finishbeforeswap.
Show details
- glFinish() after swapping stabilises stuttering issues and has minimum performance impact. - glFinish() before swapping stabilises should be better but sometimes isn't, and is needed for KMT not to tear. Offer as an option.
-
Tie player input to frame rate.
-
Add and use elapsedInputTicks and scaleAdjustmentToInterval
Show details
as one more step before tying input to frame rate.
-
Make all the changes compile with GCC.
-
Make it actually work.
-
Refinements for Q16.16 implementation.
-
Use Q16.16 for angle.
-
Use Q16.16 for horiz.