Reply 1160 of 3949, by ZellSF
Populous the Beginning is interesting: if you don't force a resolution in dgVoodoo2, it will screw up on resolution switches 😕
Populous the Beginning is interesting: if you don't force a resolution in dgVoodoo2, it will screw up on resolution switches 😕
So, if one ports an old Glide app from 16 bit to 32 bit rendering then the Z-values for grBufferClear must be scaled to 24bit too. In case of w-buffering, the code can be left unchanged.
Thank you for this information. I've updated outbin.7z. Now it works in 32bpp.
Fixes:
— grBufferClear: depth = (bpp==32 ? 0x00FFFFFF : 0x0000FFFF).
— grLfbReadRegion: dst_stride = width * (bpp==32 ? 4 : 2).
— grLfbWriteRegion: src_stride = width * (bpp==32 ? 4 : 2) and src_format = (bpp==32 ? 4 : 0).
Do you know any other Glide API functions where some fixes for 32bpp mode are required? 😀
Also there is one problem with embedded screenshot feature, which uses grLfbReadRegion (by pressing Alt+P during gameplay). For some reason it saves only the first half of the screen, and the second half of the screen is black when any 32bpp mode is used:
Currently, I have a headache, so I'll try to investigate this problem a little bit later.
Best regards, Evgeny
dgVoodoo2's MSAA implementation results in cursor trails in The Longest Journey. Not that it matters since dgVoodoo2 allows you to use ReShade for much more flexible post-processing antialiasing than any alternative.
Nvidia FXAA (best option available when running the game natively, so blurry):
dgVoodoo2 + ReShade + SweetFX (seems like a perfect compromise between blurriness and jaggies with no tweaking of settings):
No AA (very ugly imo):
You need to view in fullscreen to truly appropriate how bad Nvidia FXAA is for this game. Oh and dgVoodoo2 does not work with the GoG build of the game. Wonder what GoG did to break it... Dialog windows are an annoyance (overwrite save, exit game), but I'm guessing that's GDI integration again.
Can't get Kiss to work decently enough at all. I read some posts about it on here, but it didn't help me.
Windows 8.1 x64
I'm currently having fps drops, 'specially when killing and gibbing enemies.
When I start the game it is so slow! It takes minutes to navigate the menues and the cursor's stuttering even worse.
This goes away when I start playing, or for some reason, open the graphics menu.
Also, there's this blue box around the cursor. But only if the cursor is on the left 50% side of the screen.
During cutscenes the picture freezes on the right 50% black bar, both the above and the under.
What I've done myself so far:
I've put the "D3DImm.dll", "DDraw.dll" and "dgVoodooSetup.exe" in the root folder of Kiss. Then I've changed some of the settings in the setup program:
Config folder: c:\games\psycho
General:
API: D3D 11
Adapters: all of them
Full screen output: default
Appearence:
Full screen checked
Scaling: stretched
DirectX:
Videocard: dgVoodoo Virtual 3D Accelerated Card
VRAM: 64MB
Resolution: 1920x1080 (of course)
And in the game it doesn't matter what I choose, dgVoodoo or (in my case) Nvidia Geforce GTX 970.
They both work the same explained above way.
I'm this close to toss my PC out of the window. Someone please help me fix this.
wrote:Do you know any other Glide API functions where some fixes for 32bpp mode are required? 😀
Also there is one problem with embedded screenshot feature, which uses grLfbReadRegion (by pressing Alt+P during gameplay). For some reason it saves only the first half of the screen, and the second half of the screen is black when any 32bpp mode is used:
I think there are no other extra needs for handling 32bpp, except for lfb operations:
- grLfbLock ignores parameter writeMode for read and defaults to FMT_565 in 16bit mode and FMT_8888 in 32 bit mode
- grLfbReadRegion is also reads pixels in FMT_565 and FMT_8888, according to the pixel size mode
Screenshot seems to be a bug in dgVoodoo. My grLfbReadRegion always use 2 byte as pixel size, that explains the left-half-only thing. 😀
I'm not sure if it's a single bug or I just insisted to some policy, like the one, that grLfbReadRegion doesn't have a color format parameter so it's always FMT_565 independently on the buffer mode (16, 32).
Seeing the original Glide3 source, grLfbLock seems to handle bitbpp right, and grLfbReadRegion internally use this function to lock the buffer and read back pixels.
grLfbReadRegion also handles bitpp properly, but, on PowerPC it always treats pixels having 2 byte size..., don't know why.
Unfortunately that Glide source seems to me to be a big mess, as if the base 2.x API were being extended to the new hw features without proper considering. Or, at least, the documentation in the SDK wasn't adjusted to that.
For example, what if one drives Glide3 in 32bit mode but locks a texture buffer which is 16 bit? According to the sources, texture buffer is seen 32bit via grLfbLock to the application because that function only checks the 'global' bitpp set through but the stride is set to a 16bpp one, etc. It even works differently on UMA hw's if I get it right...
wrote:Can't get Kiss to work decently enough at all. I read some posts about it on here, but it didn't help me. Windows 8.1 x64 […]
Can't get Kiss to work decently enough at all. I read some posts about it on here, but it didn't help me.
Windows 8.1 x64I'm currently having fps drops, 'specially when killing and gibbing enemies.
When I start the game it is so slow! It takes minutes to navigate the menues and the cursor's stuttering even worse.
This goes away when I start playing, or for some reason, open the graphics menu.
Also, there's this blue box around the cursor. But only if the cursor is on the left 50% side of the screen.
During cutscenes the picture freezes on the right 50% black bar, both the above and the under.
This all sounds bad. 🙁
What if you run the game natively?
Do you have this problem only with this game or others too?
wrote:This all sounds bad. 🙁
What if you run the game natively?
Do you have this problem only with this game or others too?
If I run it native the framerate is abysmal, no matter if I start a new game or entering the video options menu.
I have this problem with Kiss, and also Blood 2. AvP 2 works great though, with dgVoodoo that is. Otherwise it becomes a native mess in (Windows) 7 and 8.1 as well.
Oh, and compability modes doesn't do much either.
Update 151031: I tried Kiss with dgVoodoo on my Windows 7 laptop, and it worked great. I can run the game at max resolution and it performs smooth as butter.
So I guess Windows 8/8.1 is all to blame. Again. Piece of shit OS.
wrote:If I run it native the framerate is abysmal, no matter if I start a new game or entering the video options menu. I have this pro […]
wrote:This all sounds bad. 🙁
What if you run the game natively?
Do you have this problem only with this game or others too?If I run it native the framerate is abysmal, no matter if I start a new game or entering the video options menu.
I have this problem with Kiss, and also Blood 2. AvP 2 works great though, with dgVoodoo that is. Otherwise it becomes a native mess in (Windows) 7 and 8.1 as well.
Oh, and compability modes doesn't do much either.Update 151031: I tried Kiss with dgVoodoo on my Windows 7 laptop, and it worked great. I can run the game at max resolution and it performs smooth as butter.
So I guess Windows 8/8.1 is all to blame. Again. Piece of shit OS.
wrote:1: Download https://www.microsoft.com/en-us/download/deta … s.aspx?id=30652 2: You only want to install the Application Compati […]
1: Download https://www.microsoft.com/en-us/download/deta … s.aspx?id=30652
2: You only want to install the Application Compatibility Toolkit part.
3: Run "Compatibility Administrator (32-bit)"
4: Expand "Applications" in the left pane, find KISS Psycho Circus The Nightmare Child and select it
5: on the right pane, right click all client.exe and psycho.exe entries and click disable entry.
Quoting myself. It works perfectly under Windows 8.1, like anything else.
wrote:Quoting myself. It works perfectly under Windows 8.1, like anything else.
I did this as well but to no avail. After some major testing on my Windows 7 laptop however, it turns out I can max out Blood 2 and Shogo as well with dgVoodoo. It's time to relive the memories!
Well, still, you're blaming the wrong thing by saying it's Windows 8.1 (as all LithTech games works perfectly under Windows 8.1): there's something wrong specifically with your setup. Can't say I have any idea what though.
I'm gonna try again, because playing on the laptop can be a chore sometime.
One thing that does occur to me: are you using compatibility modes? Win95/Win98 compatibility modes should be avoided in Win8 unless the games actually need them. I know some people automatically think Win95 games should run under Win95 compatibility mode.
wrote:One thing that does occur to me: are you using compatibility modes? Win95/Win98 compatibility modes should be avoided in Win8 unless the games actually need them. I know some people automatically think Win95 games should run under Win95 compatibility mode.
No, I never use them since they haven't helped me in any shape or form before.
As it would happen, King's Quest: Mask of Eternity is, in fact, supported by dgVoodoo2 - but you'd only know that if you only were using dgVoodoo2's DirectX support, and not also using dgVoodoo2 Glide support or using the system-wide nGlide wrapper. That said, my quest to uncover this information has lead to a surprising discovery: if you use dgVoodoo2's DirectX support with Mask of Eternity and force on dynamic lighting in the Options.cs file, the game runs faster that it would on actual hardware. The reason for needing to force dynamic lighting in Direct3D mode is apparently due to the dynamic lighting system running unacceptably slow on authentic Direct3D hardware.
However, there does seem to be an actual issue with Mask of Eternity's Direct3D mode and dgVoodoo2, at least with the GOG.com version, namely that whenever the mouse is positioned over character dialogue captions, the game's graphics noticeably freeze, then jump to wherever they're supposed to be in the current frame.
Not sure what I am doing wrong, but been having severe issues getting this to work at all. For example: GLQuake refuses to run due to requiring my desktop be at 16-bit depth. Otherwise, it wrecks my graphics driver to the point of uninstalling and re-installing them (makes my display Geddan in a very bad way). Here are the specs of my workstation for those interested:
CPU: Core i7 920
6GB DDR3-12800
Seagate 500GB SATA2
ATI Radeon 7870 2GB
Win 10 Pro X64
GPU Driver: AMD Catalyst 15.7.1
[Edit] Huh, turns out the included glide dll files with the wrapper are what screws it up. Forgot if these were files from nGlide or otherwise, but the Glide.dll, Glide2x.dll, and Glide3x.dll files I have are all between 1.3-1.4MB in size (compared to dgVoodoo2's which are 63KB each). Why would (aside from apparently not being able to do 16-bit color in Win10 to start) such small sized files wreak so much havoc for me?
Wish Dege would come back with my problem with Kiss on Windows 8.1.
wrote:The things now is that I secretly planned DX8 support long ago and recently I realised that it's worth better to do the needed internal improvements before any other additional development to avoid 'double bugfixing' later (even if DX8 won't be part of the next version).
Of course I keep testing the wrapper continuously to avoid breaking things but the current state is still not a final one.
Great news!
Is there any chance OpenGL support will be added someday as well? I recently tried to get several old OpenGL games working and realized there are only a few wrappers available and most of them are outdated so the games wouldn't even launch. Even those wrappers that worked showed severe glitches that made playing impossible.
It seems that dgVoodoo sends WM_ACTIVATEAPP(TRUE) message even when game window isn't active. I'm using this message for registering and unregistering of the global hotkey PrtScr for internal game screenshoter. All works fine with other renderers, but when dgVoodoo is used, this global hotkey works even when game window isn't active. Can you see if it is a dgVoodoo bug or some bug in the my code?
For testing: http://veg.by/files/nfs3/outbin.zip
Use this ini-file:
[NFS3]
ThrashDriver=dgvoodoo
NoMovie=1
Language=english
SingleProcAffinity=0
OwnHeapLimitMb=32
DisableWinKey=1
NoErrorReporting=0
[SCREENSHOTER]
Enable=1
Try to press PrintScreen or Win key when game window is not active.
I've seen sent messages using Spy++, and it seems that dgvoodoo forces WM_ACTIVATEAPP(TRUE) when window isn't active in fact.
Best regards, Evgeny
Is dgVoodoo working with SweetFX? If so, could some make me an awesome filter for Shogo?
wrote:Is dgVoodoo working with SweetFX? If so, could some make me an awesome filter for Shogo?
Yes, it's working (normally).
How can I create my own filter? Each option in SweetFX is so difficult to understand