GZDoom 3.3.0 released

News about ZDoom, its child ports, or any closely related projects.
[ZDoom Home] [Documentation (Wiki)] [Official News] [Downloads] [Discord]
[🔎 Google This Site]

Moderator: GZDoom Developers

User avatar
Chris
Posts: 2945
Joined: Thu Jul 17, 2003 12:07 am
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: GZDoom 3.3.0 released

Post by Chris »

Csonicgo wrote:If MAME OPL2 is to be made available to ADLMIDI, it needs to be stated that not all banks will work. DMXOPL is a prime example of a bank that wouldn't work with the OPL2 core at all due to its use of features that the OPL2 simply doesn't have.
Is there some way to tell if a bank relies on OPL3 features? If so, it shouldn't be hard to add a query to the core interface to report of it's OPL3 or OPL2, and exclude OPL3 sound banks from OPL2 cores.
User avatar
Csonicgo
Posts: 1193
Joined: Thu Apr 15, 2004 3:28 pm
Location: Leeds

Re: GZDoom 3.3.0 released

Post by Csonicgo »

Chris wrote:
Csonicgo wrote:If MAME OPL2 is to be made available to ADLMIDI, it needs to be stated that not all banks will work. DMXOPL is a prime example of a bank that wouldn't work with the OPL2 core at all due to its use of features that the OPL2 simply doesn't have.
Is there some way to tell if a bank relies on OPL3 features? If so, it shouldn't be hard to add a query to the core interface to report of it's OPL3 or OPL2, and exclude OPL3 sound banks from OPL2 cores.
The OPL3 really has no way of knowing. All it knows is if its 4-op capable registers are being activated as 4-op, or if its voice registers have numbers in them. But this is OPL emulation, so it's not like we have to look at the chip - we can look at the banks.

If the bank in question uses the additional waveforms the OPL3 offers in any of the instruments, or uses "true" 4-op mode in any of the instruments, it's an OPL3 bank. If the bank uses what ADLMIDI calls "pseudo 4-op", which is just two 2-op registers playing together, the OPL2 will have no problem. So basically it'd be down to scanning the instruments and checking for numbers that exceed the threshold of the OPL2. any instrument that uses waveforms 4-7 should flag the whole bank as OPL3 only. Same with the "4-op" flag, which I do think is available in ADLMIDI, although not all of the source banks from which the cpp files are generated would have that information.
User avatar
Wohlstand
Posts: 73
Joined: Sun Dec 17, 2017 3:22 am
Graphics Processor: nVidia with Vulkan support
Location: Moscow, Russia

Re: GZDoom 3.3.0 released

Post by Wohlstand »

It's not hard to analyze register data for OPL3 data not supported on the OPL2 chip, then, use a special internal table to mark banks are OPL2-only are allowed to work on OPL2 cores. As another example are lots of banks are using 4-oprerator instruments which is a feature of OPL3. OPL3 has some things are not related to 4-operators support:
- Supports left-center-right panning
- Supports 18 channels (OPL2 supports 9 only)
- Has 4 extra waveforms are introduced in OPL3 only.
There are can be used well in two-operator bank formats as well as there are allowing to store that data into same registers. When speaking about four-operators, that requires extra data and a bit different logic to manage chip registers.
Gez
 
 
Posts: 17840
Joined: Fri Jul 06, 2007 3:22 pm

Re: GZDoom 3.3.0 released

Post by Gez »

I believe that stereo panning and 18 channels is possible with dual OPL2 chips. An OPL chip can behave as if it were two OPL2 chips, and in addition it has four more waveforms.

The ZDoom OPL emulator allows full stereo panning (something real OPL never allowed) and pretty much unlimited channels by emulating more chips than any sound card ever had anyway; so only the waveform limitation is really important IMO.
User avatar
Csonicgo
Posts: 1193
Joined: Thu Apr 15, 2004 3:28 pm
Location: Leeds

Re: GZDoom 3.3.0 released

Post by Csonicgo »

Gez wrote:I believe that stereo panning and 18 channels is possible with dual OPL2 chips. An OPL chip can behave as if it were two OPL2 chips, and in addition it has four more waveforms.

The ZDoom OPL emulator allows full stereo panning (something real OPL never allowed) and pretty much unlimited channels by emulating more chips than any sound card ever had anyway; so only the waveform limitation is really important IMO.
You'd still need to check for 4-op mode for completeness. I could make a bank that is true 4-op but never use a single new waveform - which is what FatMan did with his 4-op bank, IIRC.
User avatar
The Ultimate DooMer
Posts: 2109
Joined: Tue Jul 15, 2003 5:29 pm
Location: Industrial Zone

Re: GZDoom 3.3.0 released

Post by The Ultimate DooMer »

Since using this version, I notice that my graphics card continues to work hard even when the game is paused and minimised. I presume it's due to this change from 3.2.4:
OpenGL rendering now continues even when losing focus if not running fullscreen
May I ask why this was implemented? (the reason I use windowed mode is simply because in fullscreen mode the game steals focus and prevents other windows from being used when alt-tabbing to them...an issue which has been around for years)
_mental_
 
 
Posts: 3814
Joined: Sun Aug 07, 2011 4:32 am

Re: GZDoom 3.3.0 released

Post by _mental_ »

The Ultimate DooMer wrote:May I ask why this was implemented? (the reason I use windowed mode is simply because in fullscreen mode the game steals focus and prevents other windows from being used when alt-tabbing to them...an issue which has been around for years)
Can't say anything about this feature but did you try borderless windowed mode?
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49096
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZDoom 3.3.0 released

Post by Graf Zahl »

Who implemented such a thing without providing a switch?
User avatar
Rachael
Posts: 13621
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: GZDoom 3.3.0 released

Post by Rachael »

I did that. At the time, it seemed to me that GZDoom was still making full use of the GPU even when minimized, so I figured I might as well at least make it update the screen while it is doing that so that it would not be wasted work by the GPU. Probably my mistake for not using actual profiling tools for this, though. AFAIR dpJudas said something to the effect of GZDoom needing a window to draw on, even when minimized, because it would affect some display calculations that were happening regardless of whether it was minimized or not (elsewise it would crash). Also, my GPU temps never went down, even when GZDoom was hiding in my taskbar and supposedly "inactive". The only way to cool the GPU was to quit GZDoom.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49096
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZDoom 3.3.0 released

Post by Graf Zahl »

AFAIK that was the result of a bug that got fixed in the mean time.
User avatar
Hirogen2
Posts: 2033
Joined: Sat Jul 19, 2003 6:15 am
Operating System Version (Optional): Tumbleweed x64
Graphics Processor: Intel with Vulkan/Metal Support
Location: Central Germany

Re: GZDoom 3.3.0 released

Post by Hirogen2 »

Graf Zahl wrote:
  • Import Timidity++ into GZDoom directly
This somehow broke timidity playback under Linux. In 3.2.5, a separate process would be spawn and play the music, in 3.3.0 no such thing happens and it falls back to fluid. Console says:

Code: Select all

GZDoom 3.3.0 -  - SDL version
Compiled on 

M_LoadDefaults: Load system defaults.
W_Init: Init WADfiles.
 adding /usr/share/doom/gzdoom.pk3, 684 lumps
 adding /usr/share/doom/doom2.wad, 2919 lumps
Unknown command "nofullscreen"
I_Init: Setting up machine state.
CPU Vendor ID: GenuineIntel
  Name: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
  Family 6, Model 142, Stepping 10
  Features: SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 HyperThreading
I_InitSound: Initializing OpenAL
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
No protocol specified
  Opened device ALSA Default
  EFX enabled
V_Init: allocate screen.
S_Init: Setting up sound.
ST_Init: Init startup screen.
Checking cmd-line parameters...
S_InitData: Load sound definitions.
G_ParseMapInfo: Load map definitions.
Texman.Init: Init texture manager.
ParseTeamInfo: Load team definitions.
LoadActors: Load actor definitions.
script parsing took 197.17 ms
R_Init: Init Doom refresh subsystem.
DecalLibrary: Load decals.
M_Init: Init menus.
P_Init: Init Playloop state.
ParseSBarInfo: Loading custom status bar definition.
D_CheckNetGame: Checking network game status.
player 1 of 1 (1 nodes)
No protocol specified
No protocol specified
Using video driver x11
GL_VENDOR: Intel Open Source Technology Center
GL_RENDERER: Mesa DRI Intel(R) UHD Graphics 620 (Kabylake GT2) 
GL_VERSION: 4.5 (Core Profile) Mesa 18.0.0-rc5 (Core profile)
GL_SHADING_LANGUAGE_VERSION: 4.50

Max. texture size: 16384
Max. texture units: 32
Max. varying: 128
Max. combined shader storage blocks: 72
Max. vertex shader storage blocks: 12
Resolution: 640 x 480
fluidsynth: warning: Failed to pin the sample data to RAM; swapping is possible.
fluidsynth: warning: No preset found on channel 0 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 1 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 2 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 3 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 4 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 5 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 6 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 7 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 8 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 9 [bank=128 prog=0]
fluidsynth: warning: No preset found on channel 10 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 11 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 12 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 13 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 14 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 15 [bank=0 prog=0]
fluidsynth: warning: Failed to pin the sample data to RAM; swapping is possible.
Unable to create Timidity++ MIDI device. Falling back to FluidSynth
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49096
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZDoom 3.3.0 released

Post by Graf Zahl »

The external process is no longer being supported. You have to make sure that your Timidity sound font settings are ok, otherwise, if it cannot find something it can play with, it will try the next synth in the list. And all your warnings suggest that you also do not have a valid setup for FluidSynth.
User avatar
m8f
 
 
Posts: 1445
Joined: Fri Dec 29, 2017 4:15 am
Preferred Pronouns: He/Him
Operating System Version (Optional): Manjaro Linux
Location: Siberia (UTC+7)

Re: GZDoom 3.3.0 released

Post by m8f »

Hirogen2 wrote: This somehow broke timidity playback under Linux. In 3.2.5, a separate process would be spawn and play the music, in 3.3.0 no such thing happens and it falls back to fluid.
See this topic. The summary: enter this in console:

Code: Select all

timidity_config /opt/gzdoom/gzdoom.sf2
Edit: or

Code: Select all

timidity_config where_your_gzdoom_is_installed/gzdoom.sf2
User avatar
Rachael
Posts: 13621
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: GZDoom 3.3.0 released

Post by Rachael »

GZDoom 3.3.0 post-mortem download stats:
User avatar
De-M-oN
Posts: 203
Joined: Mon May 26, 2008 3:24 pm
Preferred Pronouns: He/Him
Location: Germany

Re: GZDoom 3.3.0 released

Post by De-M-oN »

oh I missed the survey. Sorry.
I'm another user with a GTX1080 card and so a vulkan supporting computer^^

Return to “ZDoom (and related) News”