"A dynamic link library (DLL) initialization routine failed" error showing up only on VX games

so I recently got a new computer with windows 11 and VX games don’t work on it, I know that windows 11 causes some similar problems with VXAce games and I know the solution to those but that doesn’t work for VX games

so far I’ve tried:

  • changing the compatibility/emulation settings under preferences
  • setting my computer to max performance
  • putting the rtp and dll files everywhere I think the program could access
  • running in admin
  • changing my locale just in case

Is the new machine an ARM one, a Snapdragon laptop or similar? I ask because the x86 emulation layer on those throws this exact message on some older games, and if that’s what’s going on then no compatibility setting is going to get around it.

If it’s a normal x86 machine, the one thing I don’t see on your list is Exploit Protection. From what I’ve read the RGSS dll that VX uses expects to load at a fixed address, so if Force randomization for images (Mandatory ASLR) is switched on it gets moved and fails to initialize, which could explain an error at this stage rather than a missing file error. You can override it per game in Windows Security → App & browser control → Exploit protection settings → Program settings, add the game’s Game.exe, and set that one entry to off. Worth a look at the system settings tab too in case something turned it on globally.

Does it hit every VX game you have or just the one, and are these Steam releases or standalone downloads?

yeah it’s a snapdragon one

oh well thanks for the info

There might be one more option though. mkxp-z is an open source replacement for Game.exe that reimplements RGSS, and it covers RGSS2, so VX games are in scope. It never loads the original RGSS dll at all, so whatever the emulation layer is choking on in that old binary stops being part of it.

You drop mkxp-z.exe into the game folder and rename it to Game.exe.
https://github.com/mkxp-z/mkxp-z

Worth saying the Windows builds are x86_64, so it’d still be running through emulation, just a modern binary instead of a 2007 era one. I haven’t seen anyone confirm this on a Snapdragon specifically, so I can’t promise it. Games that lean on Win32 API calls in their scripts can also break under it, which might make it game by game.

I can now confirm it works