Да что тут думать, лол. На другом форуме я это описывал. Вообще гугл вполне дает хорошие ответы поэтому вопросу, просто нужно немного почитать...
В общем, для Асе есть две возможности увеличения разрешения.
Первый, это тупо взять вот этот скрипт
www.himeworks.com/2013/10/25/unlimited-resolution/
Но, он имеет проблемы. Вроде как что-то там с панорамами, а может и нет, я не помню, давно его пробовал. Но это фигня, основная проблема, это вылеты игры, может так случиться что игра просто повиснет, а после появится сообщение о завершении роботы приложения или как-то так. Я не знаю с чем оно связано, но бывает, хотя если вы игру будете делать на ивентах с минимальным количеством остальных скриптов, то проблем, возможно, и не будет. Скрипт вроде как обновлялся со времен когда я его использовал, может сейчас он работает вполне себе отлично.
Второй, это тот который используется в Eokati, способ более радикальный, это взломанная и переделанная DLL RGSS от Esrever.
Собственно вот сама ДЛЛ
yadi.sk/d/yrhtbzMYS4QzG
Не имеет проблем с вылетами, но 100% имеет проблемы с панорамой, для их устранения нужен фикс.
Фикс -
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# ▼ Plane
# Author: Kread-EX
# Version 1.01
# Release date: 08/01/2013
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#------------------------------------------------------------------------------
# ▼ UPDATES
#------------------------------------------------------------------------------
# # 11/04/2013. Added compatibility with Yanfly's Parallax Lock.
#------------------------------------------------------------------------------
# ▼ TERMS OF USAGE
#------------------------------------------------------------------------------
# # You are free to adapt this work to suit your needs.
# # You can use this work for commercial purposes if you like it.
# #
# # For support:
# # grimoirecastle.wordpress.com
# # rpgmakerweb.com
#------------------------------------------------------------------------------
# ▼ INTRODUCTION
#------------------------------------------------------------------------------
# # Rewrite the Plane class to work with Esrever's hacked DLL. Plug-and-play.
#------------------------------------------------------------------------------
#==============================================================================
# ■ Plane
#==============================================================================
class Plane
#--------------------------------------------------------------------------
# ● Object initialize
#--------------------------------------------------------------------------
def initialize(view = nil)
@viewport = view
@sprite = Sprite.new(@viewport)
end
#--------------------------------------------------------------------------
# ● Free
#--------------------------------------------------------------------------
def dispose
@sprite.dispose
end
#--------------------------------------------------------------------------
# ● Get freed
#--------------------------------------------------------------------------
def disposed?
@sprite.disposed?
end
#--------------------------------------------------------------------------
# ● Get visible
#--------------------------------------------------------------------------
def visible
@sprite.visible
end
#--------------------------------------------------------------------------
# ● Set visible
#--------------------------------------------------------------------------
def visible=(value)
@sprite.visible = value
end
#--------------------------------------------------------------------------
# ● Get zoom x
#--------------------------------------------------------------------------
def zoom_x
@sprite.zoom_x
end
#--------------------------------------------------------------------------
# ● Set zoom x
#--------------------------------------------------------------------------
def zoom_x=(value)
@sprite.zoom_x = value
end
#--------------------------------------------------------------------------
# ● Get zoom y
#--------------------------------------------------------------------------
def zoom_y
@sprite.zoom_y
end
#--------------------------------------------------------------------------
# ● Set zoom y
#--------------------------------------------------------------------------
def zoom_y=(value)
@sprite.zoom_y = value
end
#--------------------------------------------------------------------------
# ● Get opacity
#--------------------------------------------------------------------------
def opacity
@sprite.opacity
end
#--------------------------------------------------------------------------
# ● Set opacity
#--------------------------------------------------------------------------
def opacity=(value)
@sprite.opacity = value
end
#--------------------------------------------------------------------------
# ● Get blend type
#--------------------------------------------------------------------------
def blend_type
@sprite.blend_type
end
#--------------------------------------------------------------------------
# ● Set blend type
#--------------------------------------------------------------------------
def blend_type=(value)
@sprite.blend_type = value
end
#--------------------------------------------------------------------------
# ● Get color
#--------------------------------------------------------------------------
def color
@sprite.color
end
#--------------------------------------------------------------------------
# ● Set color
#--------------------------------------------------------------------------
def color=(value)
@sprite.color = value
end
#--------------------------------------------------------------------------
# ● Get tone
#--------------------------------------------------------------------------
def tone
@sprite.tone
end
#--------------------------------------------------------------------------
# ● Set tone
#--------------------------------------------------------------------------
def tone=(value)
@sprite.tone = value
end
#--------------------------------------------------------------------------
# ● Frame update
#--------------------------------------------------------------------------
def update
@sprite.update
end
#--------------------------------------------------------------------------
# ● Get viewport
#--------------------------------------------------------------------------
def viewport
@viewport
end
#--------------------------------------------------------------------------
# ● Set viewport
#--------------------------------------------------------------------------
def viewport=(value)
@viewport = value
@sprite.viewport = viewport
end
#--------------------------------------------------------------------------
# ● Get bitmap
#--------------------------------------------------------------------------
def bitmap
@sprite.bitmap
end
#--------------------------------------------------------------------------
# ● Set bitmap
#--------------------------------------------------------------------------
def bitmap=(value)
if value.nil?
@sprite.bitmap = value
return
end
bw = @viewport ? @viewport.rect.width : Graphics.width
bh = @viewport ? @viewport.rect.height : Graphics.height
if SceneManager.scene.is_a?(Scene_Map) #&& $game_map.parallax_tile_lock?
bw = $game_map.width * 32
bh = $game_map.height * 32
end
rw = bw.fdiv(value.width).ceil
rh = bh.fdiv(value.height).ceil
new_bmp = Bitmap.new(bw, bh)
0.upto(rw).each do |x|
0.upto(rh).each do |y|
new_bmp.blt(x * value.width, y * value.height, value, value.rect)
end
end
@sprite.bitmap = new_bmp
end
#--------------------------------------------------------------------------
# ● Get ox
#--------------------------------------------------------------------------
def ox
@sprite.ox
end
#--------------------------------------------------------------------------
# ● Set ox
#--------------------------------------------------------------------------
def ox=(nox)
@sprite.ox = nox
end
#--------------------------------------------------------------------------
# ● Get oy
#--------------------------------------------------------------------------
def oy
@sprite.oy
end
#--------------------------------------------------------------------------
# ● Set oy
#--------------------------------------------------------------------------
def oy=(noy)
@sprite.oy = noy
end
#--------------------------------------------------------------------------
# ● Get z
#--------------------------------------------------------------------------
def z
@sprite.z
end
#--------------------------------------------------------------------------
# ● Set z
#--------------------------------------------------------------------------
def z=(z)
@sprite.z = z
end
end
##### PLANE FIX #####
#-------------------------------------------------------------------------------
# FenixFyre's custom Plane, simply drawing a sprite. Needs to do something about
# the y-axis
#-------------------------------------------------------------------------------
class Plane
attr_reader :ox, :oy
alias :th_unlimited_resolution_initialize :initialize
def initialize(viewport = nil)
th_unlimited_resolution_initialize(viewport)
@sprite = Sprite.new(viewport)
@bitmap = nil
@ox = 0
@oy = 0
end
alias :th_unlimited_resolution_dispose :dispose
def dispose
th_unlimited_resolution_dispose
@sprite.dispose if @sprite
@sprite = nil
end
def method_missing(symbol, *args)
@sprite.method(symbol).call(*args)
end
def bitmap=(bitmap)
@bitmap = bitmap
refresh
end
def bitmap
@sprite.bitmap
end
def ox=(ox)
w = @sprite.viewport != nil ? @sprite.viewport.rect.width : Graphics.width
@ox = ox % w
@sprite.ox = @ox
end
def oy=(oy)
h = @sprite.viewport != nil ? @sprite.viewport.rect.height : Graphics.height
@oy = oy % h
@sprite.oy = @oy
end
def refresh
return if @bitmap.nil?
w = @sprite.viewport != nil ? @sprite.viewport.rect.width : Graphics.width
h = @sprite.viewport != nil ? @sprite.viewport.rect.height : Graphics.height
if @sprite.bitmap != nil
@sprite.bitmap.dispose
end
@sprite.bitmap = Bitmap.new(w * 2, h * 2)
max_x = w / @bitmap.width
max_y = h / @bitmap.height
for x in 0..max_x
for y in 0..max_y
@sprite.bitmap.blt(x * @bitmap.width, y * @bitmap.height,
@bitmap, Rect.new(0, 0, @bitmap.width, @bitmap.height))
end
end
for i in 1...4
x = i % 2 * w
y = i / 2 * h
@sprite.bitmap.blt(x, y, @sprite.bitmap, Rect.new(0, 0, w, h))
end
end
end
Этот фикс, своеобразная смесь куска скрипта Unlimited Resolution и фикса от Kraed-EX, выведенная мной. Так как только фикс от Kraed-EX, лечил только показ панорам, но их нельзя было крутить, а в этом варианте проблемы с панорамой отпадают полностью, ну по крайней мере у меня.
Установка всей этой богадельни такова. Закидываем ДЛЛ в папку систем игры и в Game.ini меняем RGSS301 на RGSS300. Потом закидываем фикс в пользовательские скрипты в самом редакторе. Естественно, при каждом сохранении проекта через редактор, Game.ini будет переписывать сам себя и менять RGSS300 обратно на RGSS301(не пытайтесь переименовывать саму ДЛЛ300 в ДЛЛ301, при сохранении она все равно заменится оригинальной ДЛЛ301 из папки мейкера), это лечится установлением флажка "только чтение" в свойствах Game.ini, но при каждом запуске редактора он будет снимать этот флажок, т.е. флажок "только чтение" нужно каждый раз устанавливать уже после запуска редактора. При запуске игры из ехе таких проблем нету, там никто никого не переписывает и не снимает, поэтому достаточно после завершения разработки установить флажок и забыть.
После выбора варианта, чтобы изменить разрешение в игре, где-нибудь в пользовательских скриптах пишите строку Graphics.resize_screen(ширина, высота), лучше выбирать разрешения с соотношением сторон 4:3, тогда игра будет нормально открываться в полноэкранном режиме, в других случаях могут быть черные полосы.
Естественно при изменении разрешения ждите падения фпс, поэтому не удивляйтесь, если вдруг ваша игра начнет тормозить, особенно в полноэкранном режиме.
Конец.