Hello, I've been trying to get rid of the full screen by changing it into the stretch mode. ( Basically the F3 hotkey )
I have tried multiple things but I just don't seem to figure it out, how do I force stretch mode without allowing them to change a single thing? ( I am fine with the black borders. )
Forcing fullscreen stretch
● ARCHIVED · READ-ONLY
-
-
It is a function of the monitor and/or graphics card. You can only change how it appears on your own machine, not on those of your players.
-
Thank you for responding, but it's not really what I mean. What I want is when someone attempts fullscreen, it remains the same resolution. ( Including the black borders if necessary )
-
Yes, that is exactly what I mean.
Whether it stretches to fit horizontally AND vertically, in one direction only with black borders, or any other way, is something you set up in your display settings / graphics card, not in the program/game.
You can change how it appears for YOU, but you can't control what other people will see on their monitors with their cards. -
Huh, I see.
I'm not quite sure but I think I've seen projects with the default revolution whenever they try to go fullscreen to prevent blur.
Would there either way be a solution to this, including affecting it for everyone? -
Maybe check Yanfly's plugins? I'm pretty sure he has a resolution plugin that might do something along those lines. And I think one of the plugins shipped with MV now lets you change resolution, but I don't know if it'd go as far as what you're trying to do.
-
Alright, I'll be sure to check those out. Thank you for your help!
-
Not for everyone.Would there either way be a solution to this, including affecting it for everyone?
the blur is caused by mathematical interpolation of the zoom when going fullscreen.
in any 2D-based screen this can only be prevented for a single monitor resolution by making the game have the screen size of that monitor - any other monitor will need to use interpolation, again introducing blur.
Think of it this way as an example:
You have a sequence with the leg of a skeleton on a black background that originally results in a pixel sequence of black-black-white-white-black-black. These are six pixels.
Now assume you have a larger monitor on another computer that needs eight pixels in the same position, because its resolution is greater.
So now you have a pixel sequence like black-black-?-white-white-?-black-black, and the computer needs to guess which color to give the new pixels. If it were to give them white, the leg would suddenly be double the size. If it were to give them black, the skeleton would suddenly have O-formed legs.
Most cases however calculate the color based on its neighbours - a mix of black and white is grey, so the new pixels become grey. And that grey is the blur you're seeing.
So no, you can only remove the blur for a single screen size, if the game screen size is almost like the monitor screen size (small differences are usually not seen). Going to a computer with a larger monitor will then cause blur, and going to a computer with a smaller monitor the game will not even launch. -
Technically this is past the expiration date but the solution is deceptively simple. In case the OP still needs this I'm going to throw procedure to the wind and describe my approach.
First off, in rpg_core.js there is this code block that controls the keyboard function modes:
Code:Graphics._onKeyDown = function(event) { if (!event.ctrlKey && !event.altKey) { switch (event.keyCode) { case 113: // F2 event.preventDefault(); this._switchFPSMeter(); break; case 114: // F3 event.preventDefault(); this._switchStretchMode(); break; case 115: // F4 event.preventDefault(); this._switchFullScreen(); break; } } };
Note that case 114 is the stretch mode - this can be commented out if you don't want manual override.
Code:Graphics._onKeyDown = function(event) { if (!event.ctrlKey && !event.altKey) { switch (event.keyCode) { case 113: // F2 event.preventDefault(); this._switchFPSMeter(); break; case 114: // F3 event.preventDefault(); // this._switchStretchMode(); break; case 115: // F4 event.preventDefault(); this._switchFullScreen(); break; } } };
After that, within the graphics initialize block in the same file you'll want to look for this line:
Code:this._stretchEnabled = this._defaultStretchMode();
Which you'll need to change to:
Code:this._stretchEnabled = true;
Hope that helps!
EDIT: This is also useful if you require something that necessitates a third-party interface (universal app targeting on Windows 10, playing directly from your browser, etc.)
EDIT 2: Prior drafts of this post referenced the stretch enabled property in the wrong context. It should've read this._defaultStretchMode() and has now been fixed.