pal1000 / mesa-dist-win

Pre-built Mesa3D drivers for Windows
MIT License
916 stars 80 forks source link

Abashera (2003) OpenGL Game on Windows Issues #115

Closed AlbertHamik closed 2 years ago

AlbertHamik commented 2 years ago

To preface, this game almost works in modern Windows, but for random people (it may be down the GPU drivers and type?) it will render all ingame textures as white making it basically impossible to play. I had tested this game out with the one Mesa3D drivers provided here https://fdossena.com/?p=mesa/index.frag But I understand this is likely a software renderer? Whereas this specific Mesa3D for Windows project does have support for hardware rendering? Anyways the software renderer works but is absolutely slow and choppy.

But when I try using this OpenGL wrapper with the game, I get back just a basic and vague error message saying: image

Which from my basic research tells me this is apparently a VB6 error? This is seemingly a full 3D OpenGL game making use of Visual Basic 6, which from what I know seems absolutely strange. Though, this game itself is rather strange too so match made in heaven I guess.

I would like to figure out why this game won't cooperate with this particular Mesa3D wrapper but behaves just fine with that other software-based one. The game can be retrieved here, it's not too big: https://abashera-revamped.software.informer.com/download/

(excuse the dodgy looking URL; this game is so obscure despite being freeware that the above website was the only place I could find it)

pal1000 commented 2 years ago

You could also try the newer version of the game from 2004 v2.01: Link removed for being unusable.

Software informer seams to only have v1.0.0.1.

Don't expect major performance boost with newer Mesa3D versions even if they work. Only zink and d3d12 drivers support GPU acceleration with Vulkan and D3D12 respectively, but are less reliable than llvmpipe (swrast).

AlbertHamik commented 2 years ago

I'd love to try that download you suggested but it's broken because it only leads back to the long-since-gone developers website. I would at the very least be interested to figure out why the game still does this nonsense with this alternate mesa3D wrapper.

pal1000 commented 2 years ago

Found a snapshot of the official website with functional download thanks to web archive https://web.archive.org/web/20220619191931/http://maxmagnusnorman.com/free_games_programs/abashera_revamped.zip

I'll try running this myself to see if we can do something about that error.

pal1000 commented 2 years ago

I ran this game with both my Mesa build and latest from Federico Dossena and I think there is a regression somewhere in Mesa. You can try the latest point release from every development cycle I published in reversed chronology: 22.1.7, 22.0.3, 21.3.7, 21.2.5, 21.1.6, 21.0.3, 20.3.4, 20.2.3 and finally 20.1.8 (the last Federico Dossena provided as well). Once you identify the cycle you can repeat the process with point releases in that cycle until the exact regression release is found.

I estimate this whole thing to take roughly 1 hour if you don't work at anything else at the same time, otherwise it may even take 3-5 hours.

With more info you can open an issue here.

AlbertHamik commented 2 years ago

Okay so I took the time to briefly test going backwards on what you said to do, and I was getting the same issue. So, I decided to instead test forwards from the earlier releases of the repo and found something interesting. At the point in which opengl32.dll with this version of Mesa3D required the presence of libglapi.dll is when the issue finally appeared, whereas when you originally needed and had opengl32.dll and glaw.dll (x86, and libglapi was not a requirement yet), the game works. That last version being 19.2.7. There must be something going on making this game conflict with libglapi.dll and whatever it does. BTW, this game gives zero helpful error messages, it's just that VB6 related error message for libglapi releases onwards.

One minor thing to note (and someone else had brought this up on SF to me when testing the game with Dxwnd) is that it will report not being able to initialize opengl, but the game will work just fine AND without the rendering bugs (well, the white texture render bug anyways; there's the one bug where big image surface textures will do this diagonal shimmer thing when you get far away, I've seen this rendering bug in other OpenGL games before but don't know the term for it). I mean this is what they reported with Dossena's version, but the same thing happens for me with 19.2.7 and prior with opengl32.dll + glaw.dll; it works, it just makes a brief fuss at launch that it's "not initializing" for some reason.

(Also I'm assuming, speaking as not really an expert of Mesa3D stuff, that 19.2.7 is doing software rendering?)

(Oh yeh also we're all working with the same version of the game regardless of where it has been downloaded thus far; thought I'd just clarify on that now)

qinlili23333 commented 2 years ago

Is there any guide for this game? I can run it on my Intel UHD Graphics, but cannot figure out how to play it.

pal1000 commented 2 years ago

One minor thing to note (and someone else had brought this up on SF to me when testing the game with Dxwnd) is that it will report not being able to initialize opengl, but the game will work just fine

I saw that too with Federico's build.

So you identified that shared glapi library is the culprit. Great work. If so you should stick to Federico build until static glapi becomes viable again. The reason I enabled shared glapi was to get some OpenGL ES support and then in 21.3.0 when galium megadriver was introduced for Windows, static glapi build broke. Thankfully the static glapi build fix has no known downsides for OpenGL ES.

AlbertHamik commented 2 years ago

Well I'm admittedly not interested in pursuing the issue much more for now. I would like to see this game working correctly with hardware accelerated OpenGL eventually, just to see how well it was meant to play. Thanks again for your help there, I'm gonna occasionally check in on updates to glapi functionality but for now I guess software rendering is going to be the best way forward.

Is there any guide for this game? I can run it on my Intel UHD Graphics, but cannot figure out how to play it.

I'm gonna be honest, this game is absolutely confusing to me and also, extra sadly, its obscurity means that there's very little to go on out there for how you're meant to beat each level. In all the time since the game has existed, I think only 3-4 videos have been made that show levels being completed, the majority of them are coincidentally from this year and from some person who managed to get the game working correctly.