大小、分辨率和屏幕比例
这个为什么放在第一条,因为这是设备的物理特性,是在购买或者购买之前就需要了解的,你买到手之后除非你自己动手另外换一块,否则是无法变更的。
分辨率(resolution),又称解析度、解像度,泛指量测或显示系统对细节的分辨能力,决定了位图图像细节的精细程度,通常用作图像、视频或显示设备中所显示的细节和清晰度的度量。在显示器领域,分辨率通常指屏幕水平和垂直方向有多少像素点。
举例来说 640×480 分辨率显示器意味着这个显示器有 640 个水平像素和 480 个垂直像素。一般来说,分辨率越高越好——这将使屏幕看起来更清晰、更干净,因为它的像素密度(ppi)增加。480p 显示器ppi很低(3.5寸屏的PPI只有228),需要额外的技巧来平衡像素和改善整体图像。就个人而言,如果我用的是 1080p 或更高分辨率的屏幕,我通常不太关心使用着色器或其他技巧调整图像,因为 ppi 太高了,根本不会注意到像素平衡问题。比如 5寸 1080p 面板的 ppi 为 440,几乎是 3.5寸 480p 显示器像素密度的两倍。
我们也来看看常见的游戏设备的分辨率和屏幕比例
掌机:
GB/GBC 160*144 10:9
Lync 160*102 80:51
Game Gear 160*144 10:9
Supervision 160*160 1:1
NGP/NGPC 160*152 20:19
WS/WSC 224*144 14:9
GBA 240*160 3:2
NDS 256*192 4:3
PSP 480*272 30:17
主机:
Atari 2600 160*192 5:6
Atari 7800 320*240 4:3
NES 256*240 16:15
SNES 256*224 8:7
MD 320*224 10:7
SEGA 32X 320*240 4:3
NEOGEO 320*224 10:7
SS 320*224 10:7
PS1 320*240 4:3
N64 640*480 4:3
PS2 640*480 4:3
DC 640*480 4:3
NGC 640*480 4:3
屏幕的比例将取决于其水平和垂直像素的比,也即是纵横比。640×480 显示器的比例为 4:3。这也是大多数家用游戏机、复古系统的常见比例,因为当时大多数电视都是 4:3。也有例外,比如各种掌机:GB/GBC 为 10:9,GBA 为 3:2。在 PS2 时代之后,比例为 16:9 的电视开始流行,到现在,16:9已成为家用游戏机系统的标准电视比例。
通常在模拟器中,我们会保持画面比例,对于GBA,使用 3:2 的比例,这样会导致顶部和底部出现黑条。对于GB/GBC,坚持其原始(较窄的)10:9 比例,在左侧和右侧会有黑条。在SNES的情况下,虽然经常以4:3的比例显示图像,但有些游戏最初设计时是用8:7的比例。
整数缩放
整数缩放是指将原始像素图像缩放到屏幕分辨率支持的最接近的整数比例(本贴中我们默认屏幕大小为 640×480,这也是大部分开源复古掌机的屏幕分辨率)。这是通过简单的乘法完成的。
让我们以GBA为例。最初的 GBA 分辨率为 240×160,纵横比为 3:2。这意味着2倍整数分辨率为 480×320,3 倍整数分辨率为 720×480。由于整数缩放只会放大到下一个整数,因此有时会导致显示器上的图像没有放大,反而变小了。在 640×480 分辨率下,意味着我们只能使用 2 倍整数缩放 (480×320),因为屏幕上的 640 个水平像素不足以容纳3倍整数缩放所需的720个水平像素。所以480p下的整数缩放是 2倍图像,你可以看下图 — 它在 3.5寸屏幕上的大小只有2.5寸。
在我看来,2.5寸的2倍整数缩放太小了,无法在3.5寸屏上玩的舒心,因为它会导致所有上下左右都有粗粗的黑边。因此,在大多数情况下,大家都会用非整数缩放来放大图像以填满屏幕,即使这会导致像素不均匀。对于480p显示器上的 GBA 游戏来说,非整数缩放会让画面变成 2.7 倍(可以看上面的图),即3.4寸的尺寸。虽然屏幕顶部和底部仍然会有一些黑边,但这是意料之中的,因为GBA的 3:2 比例比我们使用的 4:3 面板更宽。
要启用或禁用整数缩放,你可以在 RetroArch 设置 > 视频>缩放 > 整数缩放 里开关。
请记住,非整数缩放可能会带来一些像素平衡问题,这意味着游戏图像中的方形像素可能会失真或不均匀。
让我们以 SNES 上的 洛克人X 为例。
整数缩放(非全屏)
非整数缩放(全屏)
第一张图片是整数缩放的,你可以看到它非常接近全屏,所以上下左右的黑边都很少。这将提供比全屏小一点的清晰平衡的图像。但是如果你想要全屏体验,非整数缩放将是 2.1 倍缩放。问题是这种非整数刻度会呈现扭曲的像素,你可以在上图里左侧的血条中清楚地看到。本该在血条上有均匀的颗粒,但由于非整数缩放产生的自然像素不平衡,产生了小间隙。
对于许多用户来说,可能根本不在乎这些,他们宁愿全屏游戏,也不担心洛克人血条上的裂痕。
但在本贴中,我们将讨论如何使用一些技巧来,在全屏游戏和平衡像素之间寻找一个平衡点,以及其他一些更漂亮的效果。
一些比较完美适配640*480 4:3屏的主机
Neo Geo:320×224(在 480p 面板上有 2 倍整数刻度,顶部和底部有小黑条)
世嘉 Genesis/CD:320×224(在 480p 面板上有 2 倍整数刻度,顶部和底部有小黑条)
世嘉土星:320×224(在 480p 面板上有 2 倍整数刻度,顶部和底部有小黑条)
世嘉 32X: 320×240(480p 面板上的 2 倍整数刻度)
索尼 PlayStation:320×240(480p 面板上的 2 倍整数刻度)
任天堂 64:320×240(480p 面板上的 2 倍整数刻度)
世嘉 Dreamcast:640×480(480p 面板上的 1 倍整数刻度)
总之,整数缩放是在复古手持屏幕上提供漂亮、清晰图像的最快方法——像素将完美平衡,但有时会以屏幕上较小的图像为代价。非整数缩放可能会增加图像的大小,但可能会有不均匀的像素,具体取决于原本的屏幕比例。
调色、颜色校正和帧插入混合
在我们深入讨论将屏幕效果应用于游戏图像的方法之前,每个模拟器的核心设置中都有一些其他的选项。这些效果可以独立于着色器和滤镜使用,但有时在与它们结合使用时会导致冲突。一般来说,我建议将这些作为调整屏幕图像的“第一步”,而无需跳转到着色器、滤镜和遮罩。
原始GB使用着色来模仿那些旧手持设备上的屏幕。就其本身而言,GB图像只是灰度;我们记得的彩色只是当时的 LCD 面板技术(DMG、Pocket、Light 等)。
RetroArch 的主要 Game Boy 核心 Gambat 为 Game Boy 提供了许多着色(也称为调色板)选项,因此你可以根据自己的心情调整图像。要启用这些,请启动游戏,进入 RetroArch 快捷菜单,然后进入核心选项。将 GB Colorization (GB 着色) 设置为 Internal (内部调色板),然后在 Internal Palette (内部调色板) 下尝试一些选项,直到找到最适合你的选项。满意后,你可以退出菜单,它应该会自动保存你的选择以用于所有未来的GB游戏。你还可以通过快捷菜单进行更具体的保存(例如基于每个游戏> 核心选项>管理核心选项菜单)。
无调色
DMG调色
SGB-1A调色
注:以上图着色器均为LCD3x
我们会在后面讨论一些遮罩整合包,会使用自己的自定义调色板来真正锁定颜色配置文件。要加载自定义调色板,应将调色板命名为 “default.pal” 并放置在RetroArch的BIOS文件夹中名为 “palettes” 的文件夹中。大多数自定义操作系统选项都有自己的 BIOS 文件夹,因此你只需将 palettes/default.pal 文件放在那里,然后在 RetroArch Quick Menu > Core Options > GB Colorization,将其设置为自定义,它将自动应用你在 BIOS 文件夹中找到的自定义调色板。请注意,由于 RetroArch 中此设置的限制,一次只能有一个自定义调色板。
如果你想更深入的研究,也可以使用一些工具来制作自己的自定义GB调色板。
本贴的工具、滤镜、着色器、遮罩等等后面会统一放一个链接,这里就先略过了
色彩校正是大多数 GBC/GBA 模拟器内核中的另一个选项,它可以降低 LCD 屏幕的饱和度,以更好地表示它们在原始硬件上显示的颜色。虽然不是 100% 准确的表示形式,但可能会给你提供更接近你记忆中的效果。
无色彩校正
“快速”色彩校正
“准确”色彩校正
这些颜色校正选项将取决于你使用的模拟器核心,但通常可以在 RetroArch Quick Menu > Core Options 部分中找到它们。Gambatte 有两个选项(快速和准确),它们将为每个游戏提供不同的效果。一旦你对调整感到满意,就可以退出菜单,它应该会自动保存,而且为所有使用该核心的游戏生效。你还可以通过快速菜单进行更具体的保存(例如基于每个游戏> 核心选项>管理核心选项菜单)。
无色彩校正
有色彩校正
而mGBA的核心的色彩校正就只有开关,具体可以见上图
最后,帧插入混合提供了轻微的 LCD 重影效果,类似在原本的掌机上体验到的效果。
在 Gambatte(适用于 Game Boy 和 Game Boy Color)中,你可以在 RetroArch 快捷菜单中找到> Core Options >帧间混合选项的选项,有三个选项: 简单、准确和快速。对于 mGBA (Game Boy Advance),你可以在 RetroArch 快捷菜单中找到>核心选项>视频>帧间混合,有四个选项:简单、智能、准确和快速。
这些效果还可以帮助减少现代的屏幕的快速响应时间(尤其是 GBA 游戏)导致的闪烁。在大多数情况下,无论着色器/滤镜/遮罩如何,都可以使用此设置,有时可以用于特定组合以获得更逼真的效果。
准确 帧插入混合
简单 帧插入混合
关闭 帧插入混合
滤镜
滤镜是会占用大量 CPU 资源的屏幕效果,当图像在屏幕上显示时,这些效果会应用于图像。有许多可用的自定义滤镜,RetroArch 上的默认滤镜非常棒。但是,因为它们需要占用CPU资源才能使用,而我们大部分模拟器性能的主要就看CPU,所以它可能会产生巨大的性能负担。甚至可能导致某些模拟器无法运行。
RetroArch 中有两种主要类型的滤镜可用。第一个称为双线性滤镜,可以在 Settings > Video > Scaling 菜单中激活它。这是一个轻量级的滤镜,通常可以随时使用,不会增加任何性能负担。此滤镜将柔化硬像素边缘,但也会平衡像素,因此它适用于非整数缩放。就其本身而言,我不太喜欢这个滤镜,因为即使它使图像变得平滑,也使游戏看起来有点太模糊和没有焦点。下面是一个示例:
无滤镜
双线性滤镜
双线性滤镜还可以与其他滤镜结合使用,以改进效果。我最喜欢的技巧之一是同时应用双线性滤镜和 Normal2x 滤镜;后者可以在 Settings > Video > Video Filter 找到,当组合使用时,它将平衡像素并锐化图像,在使用非整数缩放时,它为我们提供了非常接近“两全其美”的情况。
此外,还有其他滤镜可以单独使用来提供复古效果。我最喜欢的一些比如“Blargg”滤镜,这是一种将类似电视的效果应用于显示器的简单方法。但是这些滤镜会产生很大性能负担,不一定所有的开源机都能用。
双线性 + Normal2x
Blargg NTSC SNES S-Video 滤镜
滤镜通常不能与着色器混合使用,因为着色器也会有屏幕效果(后面再详细讨论它们)。
如果你喜欢某个滤镜,可以通过创建 OVERRIDE 来保存它。这可以在 Quick Menu > Overrides > Save Game/Core/Content Directory Override(保存游戏/核心/内容目录覆盖)中找到。游戏覆盖将仅保存该游戏的设置,核心覆盖将特定于该模拟器核心(如 Snes9x),内容目录覆盖将保存该文件夹(如 SNES)中的每个 ROM,而不管核心是什么。
着色器
着色器很像滤镜,但区别是着色器是靠GPU而不是CPU运行。这就比滤镜好用太多,因为大多数模拟器是依赖CPU的处理能力,而并未使用GPU的处理能力,所以我们可以使用许多着色器,而不会对性能造成重大影响。
在 RetroArch 中,你通常会发现两种类型的着色器:GLSL 着色器和 SLANG 着色器。GLSL 着色器可用于支持 OpenGL 的设备,并且是低功耗复古掌机最常见的着色器。SLANG 着色器更新、功能更丰富,并且与 Vulkan、Direct3D、OpenGL 和其他渲染器兼容。这些着色器通常不适用于便宜的复古掌机,但可以在安卓掌机和WIN掌机上应用。
如果你自己在 Android 设备或 Windows 上安装 RetroArch,那么更新着色器通常是一个好主意。可以通过转到 RetroArch 的主菜单> Online Updater > Update (GLSL/SLANG) 着色器来执行此操作。只需要运行一次,后面除非你想要更新,否则可以不用再运行。
着色器使用 PRESET 保存在 RetroArch 中。加载游戏后,进入 RetroArch Quick Menu 并导航到 Shaders 部分。在那里,你可以加载各种着色器预设以找到你喜欢的预设。请注意,加载着色器后,在菜单底部附近,可以选择调整着色器参数。对结果满意后,可以选择 Save Preset(保存预设)>Save Game/Core/Content Directory Preset(保存游戏/核心/内容目录预设)。
未使用着色器
使用了Pixellate
注:Pixellate 是一种插值着色器,可以保持非常清晰的图像的同时平衡像素
启动游戏后,这些着色器都可以在各自的文件夹中找到:转到 RetroArch 快捷菜单> Shaders > Load Preset > GLSL 或 SLANG >(插值、掌机或 CRT):
插值着色器(Interpolation shaders)通常会像使用双线性过滤器一样平衡像素,但整体图像输出更清晰。如果你想要大部分均匀的像素和相对清晰的图像,而没有使用滤镜带来的 CPU 负担,那么这些着色器非常出色。这些着色器还可以与遮罩结合使用,以提供平衡的像素、锐利的边缘以及遮罩提供的任何效果(如边框或 LCD 网格)。一些常见的插值着色器包括 Pixellate、Bandlimit-Pixel 和 Sharp-Bilinear-2x-Prescale;这些将使图像变得平滑,同时保持相对清晰。
一些常用的着色器推荐
/pixel-art-scaling/pixel_aa (最锐利)
/pixel-art-scaling/pixel_aa_fast (适用于3326等低功率设备)
/interpolation/bandlimit-pixel (清晰但要求略高)
/interpolation/pixellat
/interpolation/sharp-bilinear-2x-prescale
未使用着色器
使用了Pixellate
还记得我们前面说的吗?如果你觉得看不出区别,请看洛克人的血条
掌机着色器(Handheld shaders)可以模拟原始掌机设备的屏幕,也可以提供更通用的结果,如 LCD 网格效果。此文件夹中有一些重型着色器,尤其是那些模拟特定掌机屏幕的着色器,因此它们可能不太适合你的掌机,因为它们会对性能产生负面影响。适用于 GB/GBC/GBA 等系统的常见着色器是 LCD3x,它是轻量级的,并提供简单的 LCD 网格效果。
网格着色器将使屏幕上的图像变暗。你可以调整面板上的亮度,也可以通过 RetroArch 快捷菜单调整着色器的设置,>着色器>着色器参数。对于许多着色器,都可以在此处调整 Brighten Scanlines 或 Brighten LCD 值,直到找到与你的面板和品味相匹配的设置。
下面看看实际应用
LCD3x着色器搭配DMG调色
gameboy着色器
gameboy-color-dot-matrix 着色器
authentic-gbc 着色器(整数缩放)
CRT 着色器只需一个设置即可提供出色的视觉体验。通常最适合与模拟的家用机一起使用,因为它们通常提供扫描线效果、轻微的图像柔化以及在 CRT 电视上播放时产生的自然光晕。有些甚至会包括自然曲率来模仿旧电视!
但请记住,CRT 着色器通常需要整数缩放才能正确显示扫描线和其他效果 — 某些着色器(如 CRT-Consumer(SLANG) 着色器)通常使用非整数缩放时看起来不错。但一些真正令人印象深刻的 CRT 着色器(如 CRT-Consumer)需要强大的性能,因此它们仅限于性能强的 4:3 掌机,比如 沙雕2S 或 RG405M。
一些常用的CRT着色器推荐
/crt/crt-1tap (性能影响不大)
/crt/crt-blurPi (性能影响不大, 支持非整数缩放)
/crt/zfast-crt-geo-svideo (性能影响大)
/crt/consumer (性能影响严重)
CRT-1TAP着色器(整数缩放)
CRT-1TAP着色器(非整数缩放)
crt-consumer (SLANG)着色器(整数缩放)
crt-consumer (SLANG)着色器(非整数缩放)
最后一点:着色器可以组合使用。它们可以彼此堆叠在一起,就像使用附加了 CRT 或扫描线着色器的泛光着色器一样。此外,在 shaders (着色器) 菜单中,有一个名为 Shader Parameters (着色器参数) 的选项 — 这将允许你调整着色器以更好地适应你的心情。
无闪烁着色器(Shimmerless shaders)
许多插值着色器都会受到一种称为“闪烁(shimmering)”的效果的影响,即当屏幕滚动时,图像会有轻微的摆动效果。由于屏幕小,这在大多数复古掌机上很难看到。有一个着色器可以最大限度地减少这个问题,但默认情况下它不会与 RetroArch 一起安装。如果需要的话你必须手动安装此着色器(请注意,它已经预装在一些自定义操作系统选项上,例如 muOS 和 GammaOS)。
无着色器
非整数缩放、锐化-无闪烁着色器
静态的好像看不出来区别
Sharp Bilinear 2x Prescale 着色器
Sharp Shimmerless 着色器
看树,第一张的树会有闪烁,第二张没有
通常情况下,自己下载的着色器会有shaders_glsl 和 shaders_slang 两个文件夹
对于低功率开源掌机,使用GLSL,对于安卓掌机和win掌机使用 SLANG。
对于周割的 RG*XX 官方固件 (GLSL):着色器位置在 SD 卡的 Linux 分区 (/mnt/vendor/deep/retro/shaders) 内,不易访问。你可以手动将它们放在 microSD 卡上,然后使用库存操作系统上预装的文件管理器应用程序将它们移动。对于最简单的方法,我建议将着色器放在 SD 卡的主 Windows(“NO NAME”)分区上名为“anbernic”的文件夹中(创建一个名为“shaders”的子文件夹并将它们放在那里)。然后在选择着色器时导航到该位置,该位置为 /mnt/sdcard/anbernic/shaders/
Android(SLANG 或 GLSL):shaders 文件夹位于内部 Android 文件系统中,根据你的文件管理应用程序和 Android 版本,可能难以访问。为了方便起见,我建议将着色器存储在 Android 的用户空间部分,该部分易于访问和写入。此位置是 (internal storage)/RetroArch,可以创建一个 shaders 文件夹并将着色器放入其中。由于 Android 通常可以使用 SLANG 或 GLSL 着色器,因此我建议将两者添加到该文件夹中并试用,看看哪个最适合。如果使用的是 Android 的 GammaOS 版本,它将预装锐利的无闪烁着色器。
WIN掌机很简单,你随便找个文件夹放就是了,就不多说了。
将它安装在设备上后,打开一个游戏,然后选择 RA 快捷菜单 > 着色器 > 加载预设 并导航到其位置。我通常只使用标准的锐化无闪烁着色器,但你们可以尝试使用 bgr/rgb(以及用于垂直游戏的 vgbr/vrgb),它支持每个颜色配置文件的亚像素渲染。
遮罩
你可以应用于设备屏幕叠加层的最后一个主要效果。虽然这些可以对你的游戏图像进行各种更改,但我觉得它们应该是视为补充其余效果的“纹理”。一些常见的遮罩都是给屏幕提供边框以掩盖屏幕上的各种黑边,或者提供可以放置在着色器或滤镜效果顶部的扫描线/网格效果。
RetroArch 带有一些预装的遮罩,但它们是有限的,并且主要集中在 16:9 纵横比设备上。在 Android 和 iOS 上,默认情况下将打开触摸屏控制器遮罩。
与着色器一样,自定义遮罩存储在不同的位置,具体取决于你使用的操作系统。
周割 RG*XX 官方固件:遮罩位于microSD 卡的 anbernic/bezels 文件夹中。
Android:overlays 文件夹位于内部 Android 文件系统中,根据你的文件管理应用程序和 Android 版本,可能难以访问。为了方便起见,我建议将你把遮罩存储在 Android 的用户空间部分,这样很容易访问和写入。此位置是 (internal storage)/RetroArch,你可以创建一个 overlays 文件夹并将遮罩文件放入其中。
无遮罩无着色器
GBC mugwomp93 遮罩 (0.70 透明度)
要设置遮罩,请打开一个游戏,然后选择 RA Quick Menu(RA 快捷菜单>屏幕遮罩>显示遮罩>开启。然后,在 Overlay Preset 下,导航到要应用的遮罩。选择后,你可以调整一些参数,例如其不透明度(有些参数设计为在不透明度 0.70 下使用,其他参数最高为 1.00)。
由于 RetroArch 中的大多数默认遮罩都是在 16:9 比例的情况下创建的,因此社区用户和开发人员已经制作了一些专门用于 4:3 480p 显示器的包。有些已经预装在某些操作系统上,例如 muOS。有些设备的官方出厂系统就已经添加了对应的遮罩,具体是哪些我这里就不细说了。
链接: https://pan.baidu.com/s/17mP7ih0pNXKYew9Zf9FNUg
此处隐藏内容请回复后再查看。
所有着色器、滤镜、遮罩合集
后面接着讲具体的搭配和用法,先把下载放出来,其中RetroArch文件夹里的内容和通过RetroArch在线更新的内容是一样的,如果在你自己的设备上RetroArch可以在线更新的,可以不用下载这个文件夹下的内容,直接更新即可
除了这个文件夹,其他都是第三方的
(未完待续)