Sky25es Posté(e) le 25 avril Posté(e) le 25 avril Attention, this is mostly directed at gaming rigs, computers in arcade cabinets, etc. I do not recommend touching system files on work computers or computers with sensitive information, unless you know what you are doing! Use it at your own risk! ...and always back up your files and make a restore point. What's this for? Well, AMD's OpenGL drivers (at least on Windows) are well known for being a real mess. For example, games that worked perfectly with drivers 22.5.1 no longer work in later versions (after the mayor opengl driver rewrite), and other games work the other way around. A very clear example is Teknoparrot. Games based on Sega Lindbergh (Linux) use OpenGL. With an AMD card, it's impossible to run all games without any problems on Windows! Some work with the old drivers, while others with the new ones. Examples: Games that need old drivers: - Tokyo Cop (with the new ones, ther'es a massive slowdown) - Too Spicy (With new ones, missing models and textures) - Affterburner Climax (No Elf Loader 2) (With new drivers it crashes from the beginning) Games that need new drivers: - Virtua Tennis 3 (with old ones, players are invisible) and so on... You get the idea. Unfortunately, the solution isn't as simple as simply placing the DLL file in the game's installation folder. In Teknoparrot's case, that doesn't work. So the solution I've found is to have two copies (they're just two dll files) and copy the one that's needed at the time into the drivers folder. By default we will always have the new version in the folder and it will only be changed to the old one for the specific game that needs it. In this case we are going to use AHK, because it is very versatile although it could also be automated with bat files. Instructions: First of all, the library in question is the file "atioglxx.dll" and is located, in my case, in: C:\Windows\System32\DriverStore\FileRepository\u0407052.inf_amd64_84d15514ad17ffa0\B406619\ You have to look in your own directory: C:\Windows\System32\DriverStore\FileRepository\, for a folder that starts wit "u", like mine: u0407052.inf_amd64_84d15514ad17ffa0, but maybe with different numbers. Inside that folder is another one, similar as "B406619", maybe also with other numbers. And inside this folder is "atioglxx.dll" 1. Unzip the attached zip file. 2. Put the "Backup" folder (it contains a an "atioglxx" folder containing 2 "New" and "Old" folders with the new and old atioglxx.dll libraries inside) in the root of your C drive: C:/Backup. Now, the file in the "New" folder is from my own drivers version : Adrenalin 24.9.1. If your opengl drivers are working great with newer games, keep your version (located in the folder mentioned before), replacing the one in the "New" folder. In any case, keep always a copy of your original file just in case! 3. Install "TakeOwnershipPro.exe" (Comes inside the zip) . Right click The "B406619" (in my case) folder and click on the "TakeOwnershipPro" tab. This will give us permission to replace the file in the folder. 4. Make a bat file or download and install "AutoHotkey" and make an AHK script (or just modify and use one of the included in the zip flle) to automate the file replacement process. For convenience you could make and put 2 ahk scripts appart, to manually switch between the old and new driver. I.e: Old.ahk and New.ahk A few examples (remember to change the scripts inside to match your own directories): New.ahk: FileDelete, C:\Windows\System32\DriverStore\FileRepository\u0407052.inf_amd64_84d15514ad17ffa0\B406619\atioglxx.dll FileCopy, C:\Backup\atioglxx\New\atioglxx.dll, C:\Windows\System32\DriverStore\FileRepository\u0407052.inf_amd64_84d15514ad17ffa0\B406619\*.* Old.ahk: FileDelete, C:\Windows\System32\DriverStore\FileRepository\u0407052.inf_amd64_84d15514ad17ffa0\B406619\atioglxx.dll FileCopy, C:\Backup\atioglxx\Old\atioglxx.dll, C:\Windows\System32\DriverStore\FileRepository\u0407052.inf_amd64_84d15514ad17ffa0\B406619\*.* Loader.ahk (To automatically load in this case, the game "Too spicy" with Teknoparrot i.e.). In order to avoid the script not reverting back to the original (new) driver in case the program fails, this script checks every 3 seconds if Budgieloader.exe (Teknoparrot) is still active. If not it closes every other program started with the game (Mamehooker, etc.) and puts back the new atioglxx.dll. In this example it loads, as said, Mamehooker and Demulshooter (for Gun recoil and outputs), Rivatuner (limit fps). It also does the same and if you press the Escape key, to exit the game. #NoEnv SendMode Input Gui -DPIScale FileDelete, C:\Windows\System32\DriverStore\FileRepository\u0407052.inf_amd64_84d15514ad17ffa0\B406619\atioglxx.dll FileCopy, C:\Backup\atioglxx\Old\atioglxx.dll, C:\Windows\System32\DriverStore\FileRepository\u0407052.inf_amd64_84d15514ad17ffa0\B406619\*.* flag := False BlockInput, On sleep 500 run, C:\Mamehooker\mamehook.exe sleep 1500 Run, DemulShooter.exe -target=lindbergh -rom=2spicy -noinput sleep 2000 Run, C:\Teknoparrot\TeknoParrotUi.exe --profile=2Spicy.xml,, min Sleep 1000 BlockInput, Off sleep 1500 SetTimer, checker , 3000 ; check every 3000 ms Return checker: App = BudgieLoader.exe ; Change the name to application you are checking. loop { Process, Exist, % App, if !ErrorLevel { Process, Close, mamehook.exe Run, KillProcess.exe mamehook.exe,, min Process, Close, BudgieLoader.exe Run, KillProcess.exe BudgieLoader.exe,, min Process, Close, TeknoParrotUi.exe Run, KillProcess.exe TeknoParrotUi.exe,, min Process, Close, DemulShooter.exe Run, KillProcess.exe DemulShooter.exe,, min Process, Close, DemulShooter.exe Run, KillProcess.exe DemulShooter.exe,, min sleep 2000 run, KillProcess.exe RTSS.exe,, min FileDelete, C:\Windows\System32\DriverStore\FileRepository\u0407052.inf_amd64_84d15514ad17ffa0\B406619\atioglxx.dll FileCopy, C:\Backup\atioglxx\New\atioglxx.dll, C:\Windows\System32\DriverStore\FileRepository\u0407052.inf_amd64_84d15514ad17ffa0\B406619\*.* ExitApp } else return } *$Esc:: Process, Close, mamehook.exe Run, KillProcess.exe mamehook.exe,, min Process, Close, BudgieLoader.exe Run, KillProcess.exe BudgieLoader.exe,, min Process, Close, TeknoParrotUi.exe Run, KillProcess.exe TeknoParrotUi.exe,, min Process, Close, DemulShooter.exe Run, KillProcess.exe DemulShooter.exe,, min Process, Close, DemulShooter.exe Run, KillProcess.exe DemulShooter.exe,, min sleep 2000 run, KillProcess.exe RTSS.exe,, min FileDelete, C:\Windows\System32\DriverStore\FileRepository\u0407052.inf_amd64_84d15514ad17ffa0\B406619\atioglxx.dll FileCopy, C:\Backup\atioglxx\New\atioglxx.dll, C:\Windows\System32\DriverStore\FileRepository\u0407052.inf_amd64_84d15514ad17ffa0\B406619\*.* ExitApp Btw. Put KillProcess.exe in the same directory as the script... The example files are also inside the attached zip file. If there are any questions, I will gladly answer. AMDOpenglfix.zip 3
Farhan Posté(e) le 25 avril Posté(e) le 25 avril Well, you have started a good point on issues of AMD drivers really appreciate your work 1
ultrabub563 Posté(e) le 26 avril Posté(e) le 26 avril Umm...is this working of Intel as Mario Kart AC GP DX?
Sky25es Posté(e) le 26 avril Auteur Posté(e) le 26 avril Il y a 2 heures, ultrabub563 a dit : Umm...is this working of Intel as Mario Kart AC GP DX? No. It's only for AMD Gpu's. Sorry
bbilford83 Posté(e) le 30 avril Posté(e) le 30 avril Thank you very much for this detailed guidance! I'm trying to fix Tokyo cop's super-slowdown issue but am loading it on wine (on a Steam deck), and I don't have a atioglxx.dll file anywhere in my system32 folder (I don't even have. I do have an opengl32.dll, and tried replacing that with an old version, but it had no effect. Obviously I have little idea what I'm doing, but my file repository has very little in it - no subfolder starting with "u." Any chance you have any ideas?
jcstahl1 Posté(e) le 30 avril Posté(e) le 30 avril 3 hours ago, ultrabub563 said: Umm...is this working on Mario Kart AC GP DX? someone already replied to the first time you asked almost the exact same thing. No.
Sky25es Posté(e) le 2 mai Auteur Posté(e) le 2 mai Let's see, because I think there's a bit of confusion about all this: This is only an OpenGL workaround/fix for PCs running Windows and AMD graphic cards. So: No Nvidia, No Steam Deck, No Linux (on Linux you can run them natively with another emu and OpenGL support is superior), No PS5, No Commodore 64... Le 30/04/2025 à 08:10, bbilford83 a dit : Thank you very much for this detailed guidance! I'm trying to fix Tokyo cop's super-slowdown issue but am loading it on wine (on a Steam deck), and I don't have a atioglxx.dll file anywhere in my system32 folder (I don't even have. I do have an opengl32.dll, and tried replacing that with an old version, but it had no effect. Obviously I have little idea what I'm doing, but my file repository has very little in it - no subfolder starting with "u." Any chance you have any ideas? Ok. In your case I think the slowdown has nothing to do with AMD's OpenGL drivers... Let me try to explain it in an easy way: You are using a pc based handheld with a 2.4-3.5ghz cpu (not bad but not the fastest) and 1.6ghz Gpu, running a Linux based game on a Linux OS but using a Linux to windows wrapper (wine) to run a windows to Linux wrapper (Teknoparrot)... You see? The workload is enormous. An ideal situation in your case would be to find a native Linux based loader if one exist (For Lindbergh there is one, but Gaelco PC I don't know).
bbilford83 Posté(e) le 2 mai Posté(e) le 2 mai Thanks very much for your thoughts, but I do think it is still something to do with the OpenGL slowdown as it is unique to this game. I'm running all kinds of stuff with much greater loads without any slowdown via TP - Aliens Armageddon, Terminator, ID Zero, etc... lots of extremely recent cpu-heavy games are all running beautifully. It's something quirky specific to this game. The Steam Deck does run an AMD processor and the wine/proton loading structure seems to use minimal overhead in general. And the AMD does require various "fixes" in the form of patches/etc. for some other games. Anyway, I know it's a totally different beast with lots of other potential complications, I was just hoping you might know a different .dll that needs to be replaced in my case :).
Sky25es Posté(e) le 3 mai Auteur Posté(e) le 3 mai Il y a 19 heures, bbilford83 a dit : Thanks very much for your thoughts, but I do think it is still something to do with the OpenGL slowdown as it is unique to this game. I'm running all kinds of stuff with much greater loads without any slowdown via TP - Aliens Armageddon, Terminator, ID Zero, etc... lots of extremely recent cpu-heavy games are all running beautifully. It's something quirky specific to this game. The Steam Deck does run an AMD processor and the wine/proton loading structure seems to use minimal overhead in general. And the AMD does require various "fixes" in the form of patches/etc. for some other games. Anyway, I know it's a totally different beast with lots of other potential complications, I was just hoping you might know a different .dll that needs to be replaced in my case :). Sorry to hear that. Hmm. OpenGL drivers on Linux usually run much better than on Windows (thanks to community fixes). Anyway, the atioglxx.dll library is only for Windows. Let's see how we fix this 😉. Ok, if your Steam Deck is powerful enough, try the following: download Mesa for Windows (Mesa3D Windows)(Try the 32 bit version first, if it doesn't work, try the 64bit one). I think the latest version is 21.0.3. Unzip and copy the opengl32.dll file into the ElfLdr2 folder in Teknoparrot. To avoid having to install and remove it every time for other games, if it works for you, I would install a copy of Teknoparrot with that file specifically for that game (and any others that run just as slow) in another folder, this way, you'll have two copies of Teknnoparrot. One normal and one for this game. If you want to save some space, you can delete from the Teknoparrot version for for Tokyo Cop the following files: The entire CefSharp folder inside the libs folder ofScoreSubmission.dll, ScoreSubmission64.dll,TeknoDraw64.dll, and TeknoParrot64.dll from the Teknoparrot folder. Remember: Only in the Teknoparrot folder specifically for Tokyo Cop. Please tell us if it worked for you.
bbilford83 Posté(e) le 4 mai Posté(e) le 4 mai On 5/3/2025 at 7:42 AM, Sky25es said: Sorry to hear that. Hmm. OpenGL drivers on Linux usually run much better than on Windows (thanks to community fixes). Anyway, the atioglxx.dll library is only for Windows. Let's see how we fix this 😉. Ok, if your Steam Deck is powerful enough, try the following: download Mesa for Windows (Mesa3D Windows)(Try the 32 bit version first, if it doesn't work, try the 64bit one). I think the latest version is 21.0.3. Unzip and copy the opengl32.dll file into the ElfLdr2 folder in Teknoparrot. To avoid having to install and remove it every time for other games, if it works for you, I would install a copy of Teknoparrot with that file specifically for that game (and any others that run just as slow) in another folder, this way, you'll have two copies of Teknnoparrot. One normal and one for this game. If you want to save some space, you can delete from the Teknoparrot version for for Tokyo Cop the following files: The entire CefSharp folder inside the libs folder ofScoreSubmission.dll, ScoreSubmission64.dll,TeknoDraw64.dll, and TeknoParrot64.dll from the Teknoparrot folder. Remember: Only in the Teknoparrot folder specifically for Tokyo Cop. Please tell us if it worked for you. Interesting, thank you very much for the advice! We had similar thoughts about not needing to install/remove every time, but I thought I would need to replace something in the C drive from the advice you gave above, which means a different wine prefix - I had set that up, but hadn't thought about creating a separate Teknoparrot install to use a different dll there. An extra TP setup takes up much less room than an extra wine prefix, so that's great. Unfortunately, adding the opengl32.dll file into the ElfLdr2 folder in the separate TP install doesn't affect the slowdown. I tried it with both the 32 bit version of Mesa for Windows and the 64bit one. I also tried putting in the "libs" subfolder of ElfLdr2 in case that was what you meant, but the slowdown was there too. Happy to test out any other ideas you might have, and thanks again for taking the time to respond.
Sky25es Posté(e) le 5 mai Auteur Posté(e) le 5 mai Mesa for Windows should theoretically work, but of course, you need a somewhat powerful machine... Well, other than that, I have no idea what else you could try. I don't have a Steam Deck, so I don't have anywhere to test. I'm sorry 🙁
bbilford83 Posté(e) le 6 mai Posté(e) le 6 mai 14 hours ago, Sky25es said: Mesa for Windows should theoretically work, but of course, you need a somewhat powerful machine... Well, other than that, I have no idea what else you could try. I don't have a Steam Deck, so I don't have anywhere to test. I'm sorry 🙁 Thank you again. I think the problem may be that it is somehow not getting access to the opengl32.dll, that maybe it needs some sort of winedll override command. I am researching, but I think it is a wine issue specifically. I'll post back here if I solve it of course.
MarianoRyu Posté(e) dimanche à 17:53 Posté(e) dimanche à 17:53 I've tried this, but for some reason, now my 2 Spicy game will crash as soon as I try to start it.
Sky25es Posté(e) lundi à 13:19 Auteur Posté(e) lundi à 13:19 Il y a 19 heures, MarianoRyu a dit : I've tried this, but for some reason, now my 2 Spicy game will crash as soon as I try to start it. If you put back your original atioglxx.dll file, it works ?
ducon2016 Posté(e) lundi à 21:09 Posté(e) lundi à 21:09 On 5/5/2025 at 2:41 AM, Sky25es said: Mesa for Windows should theoretically work, but of course, you need a somewhat powerful machine... Well, other than that, I have no idea what else you could try. I don't have a Steam Deck, so I don't have anywhere to test. I'm sorry 🙁 Mesa is hit and miss, it works for some games but not for others and plenty of artefacts at times. The Vulkan or DX12 backends are fairly fast, but not a perfect solution either way. On 4/24/2025 at 5:57 PM, Sky25es said: A very clear example is Teknoparrot. Games based on Sega Lindbergh (Linux) use OpenGL. With an AMD card, it's impossible to run all games without any problems on Windows! Some work with the old drivers, while others with the new ones. You can put opengl dll in the Teknoparrot folder and it should work. It was fixed a while back. Which dll do you put in which folder? I will try to see if there is a way to dynamically load different versions of atioglxx.dll without changing the system files. I am busy this week but will check next week maybe since I have the same issue and did not think previous atioglxx.dll would work better. AMD drivers are garbage, that is why now I only buy Nvidia. But my portable device is AMD, so I have noticed some of the issues you mentioned.
MarianoRyu Posté(e) lundi à 21:19 Posté(e) lundi à 21:19 (modifié) 7 hours ago, Sky25es said: If you put back your original atioglxx.dll file, it works ? Yes, although I get only eyes (no character bodies at all) when trying to start a new game. It might be helpful to know that my GPU is a RX 6800, and my driver is 25.5.1. Modifié lundi à 21:20 par MarianoRyu
Sky25es Posté(e) il y a 1 heure Auteur Posté(e) il y a 1 heure Le 13/05/2025 à 00:19, MarianoRyu a dit : Yes, although I get only eyes (no character bodies at all) when trying to start a new game. It might be helpful to know that my GPU is a RX 6800, and my driver is 25.5.1. It's a bit strange. The only solution in your case would be to download the 22.5.1 drivers for your graphics card and see if it works properly. If it does, copy the atioglxx.dll file from that version, put it appart and reinstall the most up-to-date version again, using this file only for the required games.... Le 13/05/2025 à 00:09, ducon2016 a dit : Mesa is hit and miss, it works for some games but not for others and plenty of artefacts at times. The Vulkan or DX12 backends are fairly fast, but not a perfect solution either way. You can put opengl dll in the Teknoparrot folder and it should work. It was fixed a while back. Which dll do you put in which folder? I will try to see if there is a way to dynamically load different versions of atioglxx.dll without changing the system files. I am busy this week but will check next week maybe since I have the same issue and did not think previous atioglxx.dll would work better. AMD drivers are garbage, that is why now I only buy Nvidia. But my portable device is AMD, so I have noticed some of the issues you mentioned. It's true that Mesa isn't suitable for everything. Some games don't run well, but I've tested Tokyo Cop and it works, at least in my case, although you need a PC with enough power. It would be great to be able to load the atioglxx.dll file on a per-game basis. Even better than my solution. 🙂
Messages recommandés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant