Pixel Art upscaled 2x, unfiltered?

● ARCHIVED · READ-ONLY
Started by ChromaRay 5 posts View original ↗
  1. Hello,

    I understand that the max you can resize the game window to is 640x480, however i'm wondering if it's possible to have the engine render sprites and tiles 2x their normal size? Unfiltered/Pixel Perfect would be great too.

    For example, the stock VX Ace actor size is 32x32, but have them displayed as 64x64 despite still being 32x32 images.

    I've tried searching everywhere for a possible script but nothing related to it is coming up. I would like to think i'm not wording it properly and that there's hope for there being a way, but if not, oh well.

    I've also figured that if it's not possible then maybe I could just (before exporting and importing into the engine) double the size of my sprites and tiles, but I imagine that may result in more space being taken up.

    Cheers.
  2. I think you can use this snippet of code

    Graphics.resize_screen(640 , 480)between main and materials. I think it works.
  3. The line

    Graphics.resize_screen(640 , 480)...will make your game have a native (logical, inner) resolution of 640x480, which is the maximum for an RMVX/A game (at least by normal means, I dare say).

    Now, on 2x, multiply that same screen size: 1280x960. In order to make the 2x, by using RGSS3's Graphic natural scaling (made up name by me <3), you need to resize the window, let's say, "manually". This code works, by the way.

    class Resolution  @getSystemMetrics = Win32API.new('user32', 'GetSystemMetrics', 'I', 'I')  @moveWindow = Win32API.new('user32','MoveWindow',['l','i','i','i','i','l'],'l')  @findWindowEx = Win32API.new('user32','FindWindowEx',['l','l','p','p'],'i')  @window_rect  = Win32API.new('user32', 'GetWindowRect', %w(l p), 'i')   def self.resize(width,height,noMove=false)    window = @findWindowEx.call(0,0,"RGSS Player",0)    screenwidth = @getSystemMetrics.call(0)    screenheight = @getSystemMetrics.call(1)    r = get_coord(window) if noMove==true    x = noMove==false ? (screenwidth - width) / 2 : r[0]    y = noMove==false ? (screenheight - height) / 2 : r[1]    @moveWindow.call(window,x,y,width,height,1)  end  def self.get_coord(hwnd)    rect = [0, 0, 0, 0].pack('l4')    @window_rect.call(hwnd, rect)    #raise rect.unpack('l4').to_s    x, y = rect.unpack('l4')[0..1]    return [x,y]  endend
    (Don't give me credit for the snippet).

    After importing that code, you can use

    Resolution.resize(1280,960)for a 2x unfiltered upscaling. Like, just after the previous line.
  4. I highly recommend fullscreen ++

    http://forums.rpgmakerweb.com/index.php?/topic/14081-fullscreen/

    F5 gives you full screen

    F6 changes the "aspect ratio", basically in windowed mode, it scales the window to
    fit the screen without covering the windows task bar.

    I love it as it *seems* to have better performance than using the F1/alt-enter method of changing to full screen.

    I have my base resolution set to 640X416 using yanfly engine which actually bumps the number of
    tiles shown by just a couple, and use fullscreen++ to get an almost widescreen view of my game.

    Plus - free for commercial use.
  5. While there are some options to resize the existing actors to 64x64 ingame, I suggest exporting their files, resize them in GIMP or Photoshop and then reimport them.


    The engine can handle sprites of any size, only the map grid is limited to 32x32. And because of this it looks better if you rescale outside the game.