RPG Maker MV Games Graphics Will Freeze, but Sound Keeps Playing: The Problem &a
This is really something EVERY RPG Maker MV dev should do, even if you aren't experiencing the problem yourself!First an explanation. If you don't care and just want to get right to the fix, scroll down.
What's the Problem?
For a long time I had been having a strange type of crash. This crash is not your typical RPG Maker crash where the screen dims and some text pops up. Nor is this like when there is a missing file. This type of crash seems to be a graphical crash. The result would be that the rendered image would be frozen, as in, no more frames are being drawn on screen you're just stuck with a still image. However, the actual logic of the game is still running fine. You can press up/down/left/right, open menus, and even interact with the game (though, you'd have to do it entirely by ear since the graphics are no longer being drawn).
This crash would happen randomly and unpredictably, so it was hard to determine the source.
What Causes this Problem?
It took awhile for me to narrow down the cause, but thanks to another user reporting this problem in this thread it occurred to me that we have something in common: a high refresh rate monitor.
Spoiler: What's the difference between Refresh Rate and FPS?For the uninitiated, there are 2 important factors when it comes to drawing a game's frame for you - the player (or dev) to see: 1) How fast can your graphics hardware render the frame? This would be your frame rate.
2) How fast can your display hardware (computer monitor/screen/TV) show the rendered frame? This would be your refresh rate.
Spoiler: RPG Maker's Render LogicOriginally, RPG Maker had it's engine logic tied to the output frame rate. This means any engine calculation were done whenever the game drew a frame. The problem with this is that frame rate can be variable. Some users hardware might struggle to draw 60 frames per second, and therefore the game would feel slow. On the other hand, some users hardware may run the game faster than 60 frames per second, therefore the game would run faster than intended.
Somewhere during the lifecycle of RPG Maker MV, engine logic was separated from the render logic. So the engine logic will always try to run at 60 frames per second while the rendered frame can run below or above the engine logic, creating more consistency in game play.
The problem is that if someone has both the graphics hardware to output hundreds of frames per second and display hardware to support all of the the rendered frames, the game will run above 60fps.
So the solution is to just limit the frame rate, right? Just use Yanfly's video synch.
Spoiler: Rant about Yanfly FPS SynchNo, that's not going to work.
To start, Yanfly's plugin actually allows returning the engine and renderer logic back to before the update where the logic and renderer were tied together...it's beyond me why anyone would want to do that, but regardless: it's not true v-sync.
(Side note: if you are using Yanfly's video synch plugin, the option it adds to the options menu is misleading and could confuse players - especially players whom are not familiar with RPG Maker plugins. Please rename this option to prevent confusing players. I've renamed it to "Fluid Time Step" because that's exactly how Yanfly refers to it in the description (no idea why they didn't just call the option that to begin with since even they refer to it as that))
How to Fix The Problem:
There are 2 solutions. 1 solution is really more intended for players whom might be playing RPG Maker MV games that have not implemented the engine fix, however, I suppose devs can use this solution just to test it's validity. This solution will only fix the problem on YOUR local machine, so obviously compiling the game and distributing it will not have the fix therefore the problem may persist on other's computers (which is why devs need to implement option 2)
Frame Limiting:
Do this if you're a player
Spoiler: Do this if you are a PLAYERIf the problem is high frame rates, then the solution is to stop rendering so many frames. It's that simple.
Most dedicated graphics hardware should have the ability to limit the output frame rate of specific games. Unfortunately I don't have an AMD or Intel graphics card to give you step by step instructions on how to do this, however, for Nvidia users I will give a step-by-step guide below. For AMD or Intel, try searching your favorite search engine for how to set a frame limiter on your card.
Nvidia Users:
You can turn on frame limiting in your Nvidia Control Panel
To access this, right click on your desktop and select "Nvidia Control Panel"
This will bring up the picture I showed in the start of this section.
Inside the Nvidia Control panel, you will want to navigate to the item "Manage 3D settings" found is the left hand column, below the "3D Settings" tree.
The tab that will be opened after clicking on this will be your global settings. You can change these if you want, but it's better if your don't since these are global, any changes made here will be applied to EVERY game you play.
Instead click the tab that says "Program Settings". This will manage your graphics card settings for individual games (It's also useful to use these settings for other games if a game is performing poorly or you want to make some slight graphical improvements to the game if your hardware can support it)
Now, to quickly add the game to the list of programs, first launch the game. If you are just a player, launch the Game.exe found in the game's folder (or if it is on Steam, just click "play"). Once the game opens, close the game. If you are a dev, open RPG Maker and play test your game. Wait for the play test to open, then close the play test and RPG Maker.
In the "Program Settings" tab, at "1. Select a program to customize:" there is a drop down list of recognized, supported, or previously added programs. Your game is likely not here, so to the right; click "Add" - sometimes it's slow to bring up this dialogue box, so please be patient.
Once the dialogue box opens, there is a list of recently launched .exe files. Since you just launched your game and/or play test, it should be at the top of the list.
For players, your file will be called "Game" or "Game.exe", and for devs, your file is "nwjs"
Select the program, and click "Add Selected Program"
(If it's not in the list of recent programs, you can click the "Browse..." button and navigate to the .exe file)
Once it is added, scroll down the list of options and look for "Max Frame Rate"
Select the option, click on, then set the max FPS to 60
Once any changes have been made inside the Nvidia control panel, it will show an "Apply" or "Cancel" option at the bottom of the control panel. Make sure to click "Apply" to save the changes. Once that is done, you have now limited the maximum frame rate and will stop the renderer from crashing!
One warning about this: I experienced gross frame timing problems with this setting enabled. In short: FPS is just an average number of frames over a span of time, but frame timing is the exact amount of time between each individual frame. So theoretically you could have 1 frame that is drawn super fast, but then the next frame is really slow. The average of the 2 is 60 FPS, but the feeling (and look) of the game might not be very smooth. Some might call this "micro stutters". Your experience may differ, but for me it was borderline unpleasant. Just barely tolerable. This will always vary based on the game and the complexity of it, and your hardware. Hopefully you have a more pleasant experience! Regardless, at least this fix allows you to play the game. You should also consider reaching out to the developer and share this thread with them so that they can implement the fix into the game.
FIX THE ENGINE
Do this if you're an RM dev.
Thanks to @Mac15001900 he rolled this fix into a plugin that also fixes other problems related to high refresh rate monitors, such as reducing CPU utilization when the game is running above 60hz.
You can find his fix here, and I recommend using this over Kido's solution:
MAC_High_Hz_Fixes - Fixes for various problems with >60Hz monitors
Synopsis This is a plugin that, unless you've done something similar yourself, you'd almost certainly benefit from adding to your game, no matter what kind of game it is. Let me explain why.MV games have the tendency to break in various ways when they're played on a monitor with a refresh rate...
forums.rpgmakerweb.com
Before Mac created his "High Hz Fix" plugin, a plugin created by author Kido was the main fix for fixing graphical freezes. This plugin can be found here:
GraphicsRenderFix.js
(click the link above, once it is open press ctrl+s or right click "save as..." to download the plugin)
This plugin was developed by Kido (not me) and only fixes this graphics render problem. This was the old solution, however Mac's solution is more robust.
Technically speaking, it seems itch user and plugin dev Tamschidiscovered this error a few months before I made this post. While I still recommend Mac's solution above anyone else's, here is yet another alternative plugin to the fix:
Freeze Fix by Tamschi
Implement it like any normal plugin - it's just overriding an error in the base core script of RPG Maker.
I should mention, I would have never found this plugin had it not been brought up by Steam user ozwvip found in this Steam discussion thread on the same matter this tutorial is about.
So why should EVERY Dev Implement this fix?
Well, I think I already made the point clear, but if not: This is an error within the engine itself. So just because you yourself don't experience the problem doesn't mean others won't. Wouldn't it just be terrible that you worked so hard on a game for years, you release it, and then suddenly you start receiving negative reviews because the game is having a strange graphical crash? The solution is easy to implement and has very little overhead to it, so there is no reason not to implement it.
Unsure if you face the problem?
User @I_LIKE_BREAD7 shared this simple test for debug purposes to see if the bug persists/affects your hardware (this only works for developers)
Link to his post is here.
Wrap Up:
I've seen in a few places people crediting me for this fix.
To clarify: I did not make this fix.
I simply dug up the source of the problem and found someone who had made a patch for it, and made this patch more accessible and easier to find.
Credit is appreciated, but I didn't make the fix, so make sure to credit the people who actually made the patch.
Does this problem persist in MZ?
According to @caethyril this problem has been patched in MZ.
edit 2024/09/24
Added @Mac15001900 's plugin as a fix for high refresh rate monitors.
Edit 2025/12/08
Added Tamschi's fix, since it seems he discovered this error long before I did (but I didn't find his fix until just now)
Spoiler: banner
本贴来自国际rpgmaker官方论坛作者:TheAM-Dol处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/rpg-maker-mv-games-graphics-will-freeze-but-sound-keeps-playing-the-problem-the-solution.151887/
页:
[1]