一种基于着色器的RetroArch DS模拟的屏幕缩放方法

三级用户 makimakima 1天前 612

自己学习glsl语言,折腾了两天,实现了这么个玩意儿:

nds scale shader

项目地址 https://github.com/TsukiNoKnight/retroarch_nds_scale_shader

网盘链接: https://pan.baidu.com/s/1rOX-pRf6mtdiXZa9_BsP-w?pwd=cqs4 提取码: cqs4


背景介绍

在 RetroArch 中模拟 Nintendo DS 游戏时,核心仅提供"左右排列"或"混合布局"两种横屏布局选项。与 Drastic 或 MelonDS 等独立模拟器相比——这些模拟器允许自由设置双屏位置和大小——RetroArch 的布局选项过于局限,无法充分利用横屏下的显示空间。

例如,在 2400×1080 的典型安卓手机屏幕上,将两个 256×192 的屏幕分别缩放至 1280×960 (5倍) 和 1024×768 (4倍) 可以完美适配屏幕。同样,在 1920×1080 的典型安卓掌机屏幕上,缩放至 1024×768 (4倍) 和 768×576 (3倍) 也能理想地利用可用空间。这样的配置比双屏等比例缩放更能有效利用屏幕空间。

然而,由于核心向前端提供的是拼接后的完整画面而非两个独立的屏幕缓冲区,RetroArch 本身无法实现双屏独立缩放。为此,我们通过自定义着色器实现了这一功能。此外,由于双屏缩放比例不同,内置的 `lcd3x` 等屏幕着色器无法正常使用,因此本着色器还内置实现了 lcd3x 效果。

有人可能会问:为什么不直接使用独立模拟器?主要原因是,我希望在启动 DS 游戏时能够直接加载上次游玩的即时存档(savestate)。在安卓独立模拟器中,只有 Drastic 支持通过桌面快捷方式实现这一功能——但为整个 DS 游戏库创建快捷方式并不现实。此外,使用 ES-DE 或 Beacon 等前端启动器时,连这种变通方法也无法实现。


使用指南

1. 将本项目文件放入 RetroArch 着色器目录,建议为此创建一个新的子文件夹

2. 在 RetroArch 中进入 **设置 → 视频**,禁用**整数缩放**,将**宽高比**设置为**全屏**

3. 在**快捷菜单 → 独立配置**中选择**保存核心独立配置**

4. 在核心设置(如 melonDS 或其他 DS 核心)中,进入**快捷菜单 → 核心选项 → 屏幕**,将**屏幕布局**设置为**Left/Right**

5. 在**快捷菜单 → 着色器设置**中,加载 `nds_landscape_scale_lcd3x.glslp` 预设文件

6. 根据需要调整以下着色器参数:

   - `screen_left_gap`(左侧边距)

   - `screen_middle_gap`(两个屏幕之间间距)

   - `top_screen_scale`(上屏缩放比例)

   - `bottom_screen_scale`(下屏缩放比例)

   默认参数针对 2400×1080 屏幕进行了优化

7. 通过**快捷菜单 → 着色器设置 → 保存预设**保存着色器配置

特别鸣谢 B站UP主 **脑浆油条** 为本项目提供的技术咨询和支持。


添加本滤镜效果图:

1761748598111.jpg

原始RA整数缩放效果图

1761748598079.jpg


上一篇:如果是辽艺来给柯南配音是不是得管高木叫瓦塔诺?
下一篇:玩了一下忍龙4 ,感觉自己像个残废.
最新回复 (8)
  • 四级用户 is 1天前
    0 2
    感觉很不错!
  • 四级用户 is 1天前
    0 3
    大佬能不能改个上下屏的?有些游戏上下屏看着舒服些
  • 三级用户 makimakima 1天前
    0 4
    is 大佬能不能改个上下屏的?有些游戏上下屏看着舒服些
    竖屏模式不需要这个,用核心提供的默认布局就可以了
  • 四级用户 任弟鱼 16小时前
    0 5
    做的真好。
  • 七级用户 进站劣人 15小时前
    0 6
    大佬太强了!
  • 三级用户 makimakima 14小时前
    1 7
    触控会错位,白折腾了
  • 三级用户 icemould 14小时前
    1 8
    makimakima 触控会错位,白折腾了
    大佬已經很厲害了
  • 四级用户 queen3438 4小时前
    0 9
    谢谢分享!! 
    • 老男人游戏网配套论坛
      10
        立即登录 立即注册
发新帖
本论坛禁止发布SWITCH和PS4相关资源,若有其他侵权内容,请致邮3360342659#qq.com(#替换成@)删除。