EDuke32 issueshttps://voidpoint.io/terminx/eduke32/-/issues2023-05-21T15:03:03-07:00https://voidpoint.io/terminx/eduke32/-/issues/261Allow vertical mouse sensitivity to be zero2023-05-21T15:03:03-07:00Ricardo GarciaAllow vertical mouse sensitivity to be zeroThis is the first issue I open on this project, so first off let me thank you for your work on EDuke32 all these years. It's my preferred port to play Duke Nukem 3D by far.
I like to play the game using a mix of classic and modern game ...This is the first issue I open on this project, so first off let me thank you for your work on EDuke32 all these years. It's my preferred port to play Duke Nukem 3D by far.
I like to play the game using a mix of classic and modern game controls, which means I like to use the keyboard to strafe and run and the mouse to look around horizontally. However, I generally dislike vertical mouse movement to interfere with player movement or aiming by default. My solution so far has been to configure vertical mouse sensitivity to a minimum or changing the config file manually to set it to zero. Allowing it to be set to zero from the game menu would be simpler and better for my use case.
MR incoming.https://voidpoint.io/terminx/eduke32/-/issues/260VoidSW: Angle of remote cars affects the player's sprite angle as seen in cha...2023-05-21T15:02:33-07:00Mitchell RichtersVoidSW: Angle of remote cars affects the player's sprite angle as seen in chase cam.![VoidSW_2022-12-29_15-16-28](/uploads/fa8b547760fd3758d5048804bf6fd482/VoidSW_2022-12-29_15-16-28.mp4)![VoidSW_2022-12-29_15-16-28](/uploads/fa8b547760fd3758d5048804bf6fd482/VoidSW_2022-12-29_15-16-28.mp4)https://voidpoint.io/terminx/eduke32/-/issues/259VoidSW: Polymost render issues with RC cars in $bullet when against walls at ...2023-05-21T15:02:16-07:00Mitchell RichtersVoidSW: Polymost render issues with RC cars in $bullet when against walls at certain anglesSomething I noticed in a semi-recent build of VoidSW from ~September.
![image](/uploads/cb9946795bc0c751e1f86dddb8d0b824/image.png)Something I noticed in a semi-recent build of VoidSW from ~September.
![image](/uploads/cb9946795bc0c751e1f86dddb8d0b824/image.png)https://voidpoint.io/terminx/eduke32/-/issues/258Rotatesprite Interpolation breaks with > 120 FPS2022-12-25T18:55:41-08:00Jordon MossRotatesprite Interpolation breaks with > 120 FPSWith Vsync off, and r_maxfps set to a high value over 120, rotatesprite interpolation breaks and becomes very jerky.
To reproduce this, compare r_maxfps 120, to r_maxfps 280 or higher. The interpolation becomes a lot less smooth. Someth...With Vsync off, and r_maxfps set to a high value over 120, rotatesprite interpolation breaks and becomes very jerky.
To reproduce this, compare r_maxfps 120, to r_maxfps 280 or higher. The interpolation becomes a lot less smooth. Something seems to mess up the timing. With uncapped framerate, and if you manage to get something absurdly high, like 1000fps, it's like interpolation isn't there at all, like it was locked back at 30fps. This is easier to notice at higher resolutions and refresh rates.
Could this be a floating point precision error, or perhaps an issue with totalclock only having a 120hz resolution?https://voidpoint.io/terminx/eduke32/-/issues/257Fail to build on Raspberry Pi42023-05-21T15:01:55-07:00Ee ceFail to build on Raspberry Pi4i thought i would try to build voidsw on my Pi4, running buster/10
for the most part it does work, but then it fails with this error
```
In file included from source/mimalloc/include/mimalloc-types.h:13,
from source/mim...i thought i would try to build voidsw on my Pi4, running buster/10
for the most part it does work, but then it fails with this error
```
In file included from source/mimalloc/include/mimalloc-types.h:13,
from source/mimalloc/include/mimalloc-internal.h:11,
from source/mimalloc/src/random.c:12:
source/mimalloc/src/random.c: In function ‘bool os_random_buf(void*, size_t)’:
source/mimalloc/include/mimalloc-atomic.h:54:104: error: no matching function for call to ‘atomic_store_explicit(std::atomic<unsigned int>*, long unsigned int, std::memory_order)’
#define mi_atomic_store_release(p,x) mi_atomic(store_explicit)(p,x,mi_memory_order(release))
^
^~~~~~~~~~~~~~~~~~~~~~~
Failed building obj/mimalloc/random.o from source/mimalloc/src/random.c!
make: *** [GNUmakefile:864: obj/mimalloc/random.o] Error 1
```
this was somewhat familiar to me from when i built nbood, but when i looked at what i would change, it was already done.
so now i have no idea what to do
or if this will even work on a Pi4
any pointers would be helpful, or just telling me it just wont workhttps://voidpoint.io/terminx/eduke32/-/issues/256Classic - Music does not play on title screen when using '-nologo' parameter2023-05-21T15:01:19-07:00DrUm78Classic - Music does not play on title screen when using '-nologo' parameter- Platform: Windows 11
- Build: eduke32_win32_20221018-10164-810e1c13f
Description
When using '-nologo' command, music does not play on the title screen as it seems to be initialized during the logo sequence in the normal scenario, whic...- Platform: Windows 11
- Build: eduke32_win32_20221018-10164-810e1c13f
Description
When using '-nologo' command, music does not play on the title screen as it seems to be initialized during the logo sequence in the normal scenario, which seems a bit strange here. Same occurs when going back from a game to the title screen.
Workaround
The only way to enable music is to disable/enable it in the menu but you will have to repeat this step each time you reach the title screen.
Steps to reproduce
1. Launch EDuke32 with '-nologo' parameter and music on
2. Notice that you do not hear any music on the title screen
3. Launch a game then go back to the title screen
4. Still no music
5. Enter sound menu and disable/enable music
6. It now playshttps://voidpoint.io/terminx/eduke32/-/issues/255Classic - Graphic corruption with the pipebomb asset and red lighting2022-10-27T02:50:39-07:00DrUm78Classic - Graphic corruption with the pipebomb asset and red lighting- Platform: Windows 11
- Build: eduke32_win32_20221018-10164-810e1c13f
When in a zone with some red lighting, the pipebomb asset is corrupt. That does not seem to happen with other lighting. It's been like this in classic engine for yea...- Platform: Windows 11
- Build: eduke32_win32_20221018-10164-810e1c13f
When in a zone with some red lighting, the pipebomb asset is corrupt. That does not seem to happen with other lighting. It's been like this in classic engine for years (was already present in EDuke32 built with 20100727 code).
Steps to reproduce
1. Equip a pipebomb
2. Reach a zone with some red lighting (in front of the end of stage button in Hollywood Holocaust or in the elevator at the beginning of Red light District for instance).
3. Notice that the asset is corrupt
![pipebomb_corrupt](/uploads/cf6333694131d067acd4c255c64bbca3/pipebomb_corrupt.png)https://voidpoint.io/terminx/eduke32/-/issues/254OSX HighSierra + PlayOnMac 4.3.3 + Wine 5.1 = Sound issue2023-05-21T15:01:00-07:00Juan PCOSX HighSierra + PlayOnMac 4.3.3 + Wine 5.1 = Sound issueOSX Native version has issues with Network and Polymost.
decided to try Windows version on OSX using PlayOnMac 4.3.3 + Wine 5.1
Polymost work ok "has small blinking texture issues", Network seem to work ok.
https://wiki.eduke32.com/wik...OSX Native version has issues with Network and Polymost.
decided to try Windows version on OSX using PlayOnMac 4.3.3 + Wine 5.1
Polymost work ok "has small blinking texture issues", Network seem to work ok.
https://wiki.eduke32.com/wiki/Multiplayer - https://forums.duke4.net/topic/11826-netduke32-enhanced-duke3d-netplay/ - https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/releases/
BUT...
There is always a problem....
Sound Problem in some interfaces, Not all, pcie & usb, internal speaker works ok.
No wav samples are played, but music works.
SampleRate is detected as Custom, 22khz, 441, 48k does Not work.
but when i test sound in Wine Configure, works ok.
problem maybe related to Not support all formats available, like for example:
Float32LSB
i´ve seen similar problem in DosBox also...
sound works ok in OSX SnowLeopard 10.6.8, OSX Mavericks 10.9.5,
but becomes Broken in OSX HighSierra 10.13.6
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SupportedAudioFormats/
https://freedesktop.org/software/pulseaudio/doxygen/sample.html
OSX HighSierra is important for many reasons,
.3 is the last that supports TB2 eGPU
.4 is the first that supports TB3 eGPU
.6 is the last that supports 32 & 64-Bit drivers.
etc...
different formats can be tested with:
http://audio.rightmark.org/download.shtmlhttps://voidpoint.io/terminx/eduke32/-/issues/253OSX HighSierra 10.13.6 Polymost issues2023-05-21T15:00:47-07:00Juan PCOSX HighSierra 10.13.6 Polymost issuesOSX compiled version from here:
http://dukeworld.duke4.net/eduke32/mac/ - https://wiki.eduke32.com/wiki/Download_EDuke32
sound works ok, but...
has issues with Polymost,
Cinema floor texture does Not appear,
floating in empty space.
bu...OSX compiled version from here:
http://dukeworld.duke4.net/eduke32/mac/ - https://wiki.eduke32.com/wiki/Download_EDuke32
sound works ok, but...
has issues with Polymost,
Cinema floor texture does Not appear,
floating in empty space.
but walks ok.
P.D.
what is this voidpoint.io ?
there is No gitlab.com/terminx/eduke32/-/issues ?https://voidpoint.io/terminx/eduke32/-/issues/252XMP sound clipping2023-09-01T14:48:58-07:00NY00123XMP sound clippingIt was reproduced using the AWOL track themex2.xm (used upon completing the game).
The impacting EDuke32 commit was 38bb54b75b843c654cea3779362861349ba29862.
[themex2_prefix_from_eduke32.flac](/uploads/92288cfc4bab22a2b2866657fac97e36/t...It was reproduced using the AWOL track themex2.xm (used upon completing the game).
The impacting EDuke32 commit was 38bb54b75b843c654cea3779362861349ba29862.
[themex2_prefix_from_eduke32.flac](/uploads/92288cfc4bab22a2b2866657fac97e36/themex2_prefix_from_eduke32.flac)
[themex2_prefix_from_xmp.flac](/uploads/010249e41c9fd2e8bdc201b3ff5bd9a7/themex2_prefix_from_xmp.flac)https://voidpoint.io/terminx/eduke32/-/issues/251Auto Aim logic error in P_PreFireHitscan2023-05-21T14:59:52-07:00Michelle SleeperAuto Aim logic error in P_PreFireHitscanThere's a logic error in P_PreFireHitscan in player.cpp where the player's auto aim setting is not checked at the right time, causing it to essentially do nothing when shooting the pistol (specifically shooting SHOTSPARK1) and GROWSPARK....There's a logic error in P_PreFireHitscan in player.cpp where the player's auto aim setting is not checked at the right time, causing it to essentially do nothing when shooting the pistol (specifically shooting SHOTSPARK1) and GROWSPARK.
https://www.youtube.com/watch?v=NQCYrQJwX4o
You can see this behavior on display in this test, running the current version as of this post, r10118. You can see I have auto aim fully disabled, but the pistol and Expander both still use it. I didn't capture it in this video but other hitscan weapons (shotgun, ripper) do not behave in this way.
In A_ShootHardcoded, the 3 bullet weapons are fired using this line. This only affects the pistol because the pistol is defined as "SHOTSPARK1", causing the 2nd to last condition to always return 0 for the shotgun and ripper:
` P_PreFireHitscan(spriteNum, playerNum, projecTile, &startPos, &Zvel, &shootAng,
projecTile == SHOTSPARK1__STATIC && !WW2GI, 1);`
And the Expander is fired using this line:
` P_PreFireHitscan(spriteNum, playerNum, projecTile, &startPos, &Zvel, &shootAng, 1, 1);`
Note that custom projectiles are fired when checking for the appropriate auto aim flags, and are also susceptible to this behavior:
` P_PreFireHitscan(spriteNum, playerNum, projecTile, startPos, &zvel, &shootAng,
pProj->workslike & PROJECTILE_ACCURATE_AUTOAIM, !(pProj->workslike & PROJECTILE_ACCURATE));`
The bullet weapon bug could be fixed checking for the other 2 tiles, some thing like:
` P_PreFireHitscan(spriteNum, playerNum, projecTile, &startPos, &Zvel, &shootAng,
(projecTile == SHOTSPARK1__STATIC || projecTile == SHOTGUN__STATIC || projecTile == CHAINGUN__STATIC) && !WW2GI, 1);`
But the real problem is up in P_PreFireHitscan, paraphrased here for readability:
```
static void P_PreFireHitscan(int spriteNum, int playerNum, int projecTile, vec3_t *srcVect, int32_t *zvel, int *shootAng,
int accurateAim, int doSpread)
[. . .]
if (accurateAim)
{
if (!pPlayer->auto_aim)
{
[. . .]
}
if (aimSprite == -1)
goto notarget;
}
else
{
if (aimSprite == -1) // no target
{
notarget:
*zvel = fix16_to_int(F16(100)-pPlayer->q16horiz-pPlayer->q16horizoff)<<5;
}
Proj_MaybeAddSpread(doSpread, zvel, shootAng, zRange, angRange);
}
```
If accurateAim is 1, the code enters the if statement to perform auto aim. But because the player's auto aim setting is 0 (fully disabled), the auto aim code is skipped, but so is the later code where the weapon spread is applied using Proj_MaybeAddSpread.
The simplest solution should be something like modifying this line:
```
if (aimSprite == -1 || !pPlayer->auto_aim)
goto notarget;
```https://voidpoint.io/terminx/eduke32/-/issues/250Engine: Localization DEF token should use abstract, unique keys as first inpu...2022-07-29T14:11:35-07:00Dino Bollingerdino.bollinger@gmail.comEngine: Localization DEF token should use abstract, unique keys as first input, instead of exact English stringsThis is a problem of how the strings are currently defined within the engine, and would require a far-reaching refactoring to clean up.
It is a minor issue and shouldn't cause any problems right now, but the potential for trouble exists...This is a problem of how the strings are currently defined within the engine, and would require a far-reaching refactoring to clean up.
It is a minor issue and shouldn't cause any problems right now, but the potential for trouble exists.
Namely, strings visible to the player are currently inlined directly inside the source code, like such:
```
source/duke3d/src/menus.cpp:435:static MenuEntry_t ME_GAMESETUP_SAVESETUP = MAKE_MENUENTRY( "Save setup", &MF_Redfont, &MEF_BigOptionsRt, &MEO_GAMESETUP_SAVESETUP, Link );
source/duke3d/src/menus.cpp:1526:static MenuMenu_t M_SAVESETUP = MAKE_MENUMENU( "Save Setup", &MMF_BigOptions, MEL_SAVESETUP );
```
This is an example of an ambiguous string that may cause problems when translated.
In the location where this string is used, "Save Setup" refers to the menu where the settings for savegames can be set up.
However, assume we have another menu, where the final entry of a range of gameplay settings that reads "Save Setup", where selecting it applies the selected settings.
In this case, the string carries the meaning of "Save the selected setup" but holds the exact same characters.
Now assume an outside observer wants to translate this string to German. He will define the following DEF code:
```
localization "de"
{
str "Save Setup" "Einstellungen Speichern"
}
```
The problem is that in German, the two meanings cannot be expressed using the same string. If you wish to translate the "Save Setup" menu, you would write something akin to "Speicher-Einstellungen". But if you wish to translate "save current setup", you would write "Einstellungen Speichern" as above. No matter the quality of the translation, you would not be able to translate both instances of the string appropriately.
There are of course other problems:
* Each time the English string is changed in the source code, translations for that string no longer apply.
* There is code duplication that could be simplified if the same string is required in different locations, as is the case in the first grep result.
To fix this, the strings inside the code should be replaced by a string representing a unique key (preferably with a leading character like "__") that is used in combination with an external mapping, which assigns each unique key to the actual visible string to be seen by the player. This would then be loaded into the localization system, and used for the "en" locale.https://voidpoint.io/terminx/eduke32/-/issues/249Engine: findfrompath(fn, where) returns 0 when fn is an empty string2022-09-29T21:33:21-07:00Dino Bollingerdino.bollinger@gmail.comEngine: findfrompath(fn, where) returns 0 when fn is an empty stringThis issue concerns the function `findfrompath(fn,where)` in `source/build/src/vfs.cpp`, line 280.
If we pass an empty string as filename, the function should return a non-zero value, since the empty string does not exist as a file insi...This issue concerns the function `findfrompath(fn,where)` in `source/build/src/vfs.cpp`, line 280.
If we pass an empty string as filename, the function should return a non-zero value, since the empty string does not exist as a file inside the folder. However, due to a bug, it will return 0 instead.
This code causes the problem:
```C
char *pfn = (char *)Xmalloc(allocsiz);
strcpy(pfn, "./");
strcat(pfn, ffn);
if (buildvfs_exists(pfn))
{
*where = pfn;
Xfree(ffn);
return 0;
}
```
`ffn` is hereby a copy of `fn`. `ffn` contains an empty string, and the code hence stores the path `"./"` inside `pfn`.
Of course, this is the current directory, which always exists, hence the function will return 0. There needs to be a special case here that makes the function return -1 if the input `fn` is empty.
A concrete instance where this leads to a bug is with RTS file checking in Duke3D. If the RTS filename is empty, i.e. undefined, then the function will return true, and the game will attempt to read the base directory as the RTS file, and produce a strange error in the console.Dino Bollingerdino.bollinger@gmail.comDino Bollingerdino.bollinger@gmail.comhttps://voidpoint.io/terminx/eduke32/-/issues/248fatal: unable to access 'https://voidpoint.io/terminx/eduke32.git/': server c...2023-05-21T14:22:27-07:00Todor Tanevskifatal: unable to access 'https://voidpoint.io/terminx/eduke32.git/': server certificate verification failed. CAfile: none CRLfile: none
Hello!
I noticed (while trying to rebuild from scratch on my new machine the eduke32 binary) that I cannot clone the repo:
```
[toshko@picard repos]$ git clone https://voidpoint.io/terminx/eduke32.git
Cloning into 'eduke32'...
fatal: ...
Hello!
I noticed (while trying to rebuild from scratch on my new machine the eduke32 binary) that I cannot clone the repo:
```
[toshko@picard repos]$ git clone https://voidpoint.io/terminx/eduke32.git
Cloning into 'eduke32'...
fatal: unable to access 'https://voidpoint.io/terminx/eduke32.git/': server certificate verification failed. CAfile: none CRLfile: none
```
I tried creating my gitlab user on voidpoint and adding my public SSH key to it, no dice. Yet again the same issue.
Is this intentional, or am I missing something?
Best Regards & Thanks for all the good work!https://voidpoint.io/terminx/eduke32/-/issues/247VoidSW: Widescreen Status Bar/Menu graphic support2023-05-21T14:12:43-07:00OpenRiftVoidSW: Widescreen Status Bar/Menu graphic supportThis is an issue that most other Build ports seem to address or support in some form, except for VoidSW. While VoidSW has support for the widescreen first-person weapon sprites, the same cannot be said for supporting widescreen status ba...This is an issue that most other Build ports seem to address or support in some form, except for VoidSW. While VoidSW has support for the widescreen first-person weapon sprites, the same cannot be said for supporting widescreen status bars and menu graphics. It would be nice to have support for these for a cleaner experience on modern displays.https://voidpoint.io/terminx/eduke32/-/issues/246Ion Fury: weapons.con triggers assertion in debug executables2022-07-07T12:45:09-07:00LeoDIon Fury: weapons.con triggers assertion in debug executablesAs of fury.grp v1.1, weapons.con triggers an assertion introduced in r9643-95466d90c (master branch). The "case P_DANCINGQUEEN" section seems to be the cause.
Replace by weapons.con v1.02 (in 1.1 or 2.0 or hotfix) and it's OK.
z1a5.map...As of fury.grp v1.1, weapons.con triggers an assertion introduced in r9643-95466d90c (master branch). The "case P_DANCINGQUEEN" section seems to be the cause.
Replace by weapons.con v1.02 (in 1.1 or 2.0 or hotfix) and it's OK.
z1a5.map with proper starting point attached: it happens after a couple of seconds when the drones show up. No assertion without drones (-mx killonspawn.con).
[z1a5-test.7z](/uploads/46da3270463d12ab25455149eb8426aa/z1a5-test.7z)
[weapons-1.02.con](/uploads/1c3bf18bcac51f4b3d3deee2aac1539d/weapons-1.02.con)
[killonspawn.con](/uploads/6d8a58323b4e3a4012faa1ad43c7bed8/killonspawn.con)
![assert-r9643-95466d90c-master](/uploads/5a6e7dfefad499211b2e676628438544/assert-r9643-95466d90c-master.jpg)
[fury-1.1-r9643-95466d90c-master.log](/uploads/7cc13fbdefd621cf1b278244fc89fe11/fury-1.1-r9643-95466d90c-master.log)
![assert-r10040-9c9518fdf-master](/uploads/94092ccd44cdabb9f4a5bee8d9198018/assert-r10040-9c9518fdf-master.jpg)
[fury-2.0-r10040-9c9518fdf-master.log](/uploads/82f4d9503a8a7abbb68e106dd37ba773/fury-2.0-r10040-9c9518fdf-master.log)https://voidpoint.io/terminx/eduke32/-/issues/245Mapster32: "forcesetup = 0" cfg file entry is ignored2023-05-21T14:12:23-07:00LeoDMapster32: "forcesetup = 0" cfg file entry is ignoredAs of r9621-55fa2a5c2 : "editor: startup window checkbox for -usecwd"As of r9621-55fa2a5c2 : "editor: startup window checkbox for -usecwd"https://voidpoint.io/terminx/eduke32/-/issues/244Engine: Starting the game on Polymer, then switching to Polymost will prevent...2023-05-21T14:11:39-07:00Dino Bollingerdino.bollinger@gmail.comEngine: Starting the game on Polymer, then switching to Polymost will prevent voxels from loading and being converted to 3d modelsEasily tested with Ion Fury and regular eduke32 builds.
Start the game in Polymer, then switch to Polymost. Enter the first map and look at the armor shards.Easily tested with Ion Fury and regular eduke32 builds.
Start the game in Polymer, then switch to Polymost. Enter the first map and look at the armor shards.https://voidpoint.io/terminx/eduke32/-/issues/243TROR visual glitch - 1 sided walls2023-05-21T14:08:51-07:00Micky CTROR visual glitch - 1 sided walls[tror_test.map](/uploads/359f831d0edf61b2f0c0078d0bd1bf6e/tror_test.map)
I've provided a test map with 3 cases:
1. A house with no windows that looks fine in polymost.
2. A house with windows but 1-sided walls, which one would think wou...[tror_test.map](/uploads/359f831d0edf61b2f0c0078d0bd1bf6e/tror_test.map)
I've provided a test map with 3 cases:
1. A house with no windows that looks fine in polymost.
2. A house with windows but 1-sided walls, which one would think would work the same way as case 1, but has some glitches.
3. A house with windows you can see through both directions, which has worse glitches.
Could the TROR algorithm be tweaked so that at least case 2 is glitch-free like case 1?https://voidpoint.io/terminx/eduke32/-/issues/242tilefromtexture's "texture" subtoken generates pointless duplicates as indexe...2022-04-22T03:05:10-07:00Jordon Mosstilefromtexture's "texture" subtoken generates pointless duplicates as indexed hightiles in software.Tilefromtexture will pointlessly generate an indexed hightile for the "texture" subtoken. This subtoken is for generating an indexed base tile, and a true-color hightile from the same image, for 32-bit rendering modes.Tilefromtexture will pointlessly generate an indexed hightile for the "texture" subtoken. This subtoken is for generating an indexed base tile, and a true-color hightile from the same image, for 32-bit rendering modes.