Paste this into main.js (delete or comment out the block of code you may be using for fullscreen):
Code:
function resizeAndCenter() {
let desiredWidth = 1508;
let desiredHeight = 840;
window.resizeTo(desiredWidth, desiredHeight);
let newLeft = (screen.availWidth - desiredWidth) / 2;
let newTop = (screen.availHeight - desiredHeight) / 2;
window.moveTo(newLeft, newTop);
}
setTimeout(resizeAndCenter, 1000);
This is a simple 2x window size on game launch. It's NOT integer scaled because this game is doing something funky with the resolution or canvas, but it's tremendously close to it. It won't wreck the pixel art the way fullscreen does.
In my opinion the ideal way to play this game is with a clean main.js and then using LosslessScaling to apply integer scale. It will give you the largest size your display can handle for this game without distorting pixels.
This main.js tweak is a close second and doesn't require extra software, so I recommend people give it a go.
The game's native resolution is 745 x 400. I tried using simple math in a function to determine the largest integer factor the player's display can contain but it became clear after testing even with the simplest possible solution ( just doubling it ), that the game does not react well to scaling via any method I could think of. I'm not sure what the source of the dimension offsets is, but I landed on 1508 x 840 which produces a 1490 x 800 window, which is 2x native res. The scaling is imperfect, but since there is no panning in this game those imperfections are close to imperceptible.