DuckStation 高清纹理包实操教程:从 dump 到回灌,PS1 老游戏画质翻新一次跑通

模拟器教程 2026-10-27 7 0

给 PS1 老游戏换上玩家自制的高清纹理包,画面提升比单纯拉分辨率更明显——贴图细节是真的变清晰了,而不是简单放大。安装模拟器、配置 BIOS 和跑通游戏的部分,站内之前那篇 DuckStation 模拟器教程:从 BIOS 到运行游戏已经写得足够细,本篇不再重复,只聚焦纹理包这一件事。整套流程可以概括成一个闭环:先把游戏里的原始纹理 dump 出来,再放大重制成高清版,最后回灌进模拟器生效。下面按步骤走一遍。

弄懂机制:textures 目录与游戏 ID 命名

DuckStation 游戏列表与串号显示

DuckStation 的纹理替换系统是按游戏序列号组织的。打开菜单栏「工具」→「打开数据目录」,找到里面的 textures 文件夹——这就是所有纹理包的家。每个游戏的包都要以单独文件夹的形式放进来,文件夹名必须是对应游戏的序列号,例如 SCUS-94491。ID 文件夹下面再挂两个子目录:dumps 放模拟器抓出来的原始纹理,replacements 放你准备替换上去的高清图。

这里有个新手最容易踩的坑:同一款游戏在不同地区的 ID 不一样。以《龙骑士传说》为例,美版是 SCUS-94491,欧版则是 SCES-03043。你手里的镜像是什么区,文件夹就得叫什么名字;网上下载的纹理包大多按美版 ID 打包,玩欧版就把文件夹名改成欧版 ID。另外不少打包作者会在文件夹名后面挂 _HQ、_MQ、_LQ 这类清晰度后缀,放进 textures 前记得删干净,只留纯 ID。

还有一条铁律:包内纹理图的文件名一个字符都不能改。DuckStation 靠文件名里的哈希值匹配游戏运行时用到的纹理,改名等于把收件地址撕了,替换图永远送不到。支持的格式为 PNG、JPG、WebP 三种。

第一步:开启纹理转储,把原始素材抓出来

地砖纹理替换前后对比条

想给手头游戏自制纹理包,或者想确认手里的包能不能吃上,起点都是 dump。进「设置」→「图形」,找到纹理替换选项区(新版集中在独立的 Texture Replacements 分组,部分版本在「高级」或 Hacks 页里),先把纹理缓存开起来,再勾选「转储纹理」。

设置好后启动游戏,像平时一样玩:进标题画面、跑几张地图、打开菜单、触发一场战斗。PS1 的纹理是边运行边往显存里上传的,你走到哪里,抓取就跟到哪里,跑得越勤收获得越全。觉得差不多就正常退出游戏,去 textures 目录下对应 ID 的 dumps 子目录看收成——会看到一堆名字形如 texupload-P4-9a3f 开头的长串文件,中间还夹着尺寸和偏移数字。这串编码是纹理数据与调色板的哈希值,不用看懂,也别动它。

有的游戏 dump 出来的图很碎,甚至混着乱码块,属于正常现象,纹理替换系统对游戏并非百分之百兼容。好在每款游戏的纹理目录下会自动生成一个 config.yaml,dump 异常时可以按需调整:页转储模式能绕开写入追踪的兼容问题,代价是重复图变多;《合金装备》这类游戏需要开调色板缩减,《最终幻想 8》需要把显存拷贝转为写入处理,《GT 赛车》则要放宽写入分割上限。具体开关只能试出来,每改一轮就重新 dump 一遍。

第二步:放大重制,把 dump 图变成高清替换图

主机端系统设置菜单界面

从 dumps 里挑出想翻新的图,复制到同一 ID 下的 replacements 目录——注意是复制不是剪切,原始 dump 留着做对照。接下来是放大环节:把低分辨率原图放大到 2 倍或 4 倍,保持长宽比不变,用整数倍最稳妥。手头有 AI 放大工具可以直接批量跑,追求还原度的手工重绘党也可以逐张修,格式随意,PNG 通用性最好。

实际用下来,建议先挑标题画面、主角贴图、常用界面这几类出场率最高的纹理做,效果一眼可辨、成就感来得也快,再慢慢铺开到场景贴图。全部做完后,正确的包结构应当是 textures/游戏ID/replacements/ 下一排命名原封未动的放大图。

第三步:回灌生效,Preload 与异步加载怎么选

DuckStation 图形与映射设置界面

图放进去了还不算完,回模拟器把开关拨到位:关掉「转储纹理」,勾选「启用纹理替换」,新版选项名写作 VRAM Write Replacement,两代叫法指的是同一件事。部分版本这两个开关在「设置」→「高级」→ Hacks 页里,找不到就翻一翻。

接着是两个直接影响体验的加载选项。Preload Texture Replacements(预载纹理替换)会在启动游戏时把整个包一次性读进内存,运行全程零等待,代价是开机多等一阵——启动画面会出现小鸭子 logo 和 preloading textures 字样,包越大读得越久。异步加载则是边玩边读,进游戏快,但第一次遇到新纹理的瞬间可能闪一下原图。对普通用户来说,包不大就开 Preload,省心;包上了几百兆或机器较老,就换异步。个别游戏还需要额外打开 Use Old MDEC Routines 这类兼容开关,包不生效时可以一并试上。

渲染器与内部分辨率的配合

纹理包负责素材本身清晰,画面整体是否细腻还得看渲染设置。渲染 API 首选 Vulkan,性能与兼容性最均衡;老显卡出现花屏或闪退,再退回 OpenGL 或 Direct3D 11。社区里有个经验值得记一笔:个别整合分支在 OpenGL 下替换图显示更稳,遇到配置明明正确却不上图的诡异情况,先切个渲染器再排查。

内部分辨率倍数与纹理包是叠加关系而非互替:倍数决定几何与渲染输出的像素密度,纹理包决定贴图的信息量,两头都到位画面才真正跨代。1080p 屏幕从 4 倍或 5 倍起步,高配机器可以上 6 倍到 8 倍。纹理过滤别开太狠,xBR 这类强过滤会把辛苦替换的高清图再糊一层,用双边过滤或最近邻就够了。PGXP 几何修正建议全程打开,能消掉 PS1 标志性的多边形抖动,与高清纹理是绝配。

常见问题与踩坑

  • 换了包完全没反应?九成是文件夹名和游戏 ID 对不上——区版本不同 ID 就不同,先核对镜像序列号;也可能是解压时多套了一层目录,正确结构是 textures/游戏ID/replacements/图片,而不是 textures/游戏ID/游戏ID/replacements。
  • 启动时卡在小鸭子 logo 很久?那是 Preload 在读大包,读完就一路流畅;嫌开机慢就关 Preload 改异步加载,二者取其一。
  • 部分纹理还是马赛克?两种可能:对应场景没跑到,dump 里压根没有这张图;或者这款游戏对替换的兼容性本来就差,只能靠 config.yaml 调参慢慢磨。
  • dump 出的图混着大块废区域怎么办?进阶做法是把图像裁干净,同时把文件名里对应的尺寸字段改掉,两边必须同步改,只动一边必然失配。

以上评论仅代表网友个人观点,不代表官方立场。

总结

整个流程回头看并不复杂:开 dump 跑图、复制到 replacements 放大、开替换回灌,难点全在细节——ID 要对、文件名不能动、兼容参数要试。纹理替换系统对 PS1 游戏的覆盖面目前仍有限,能吃上包的经典作品是少数,但对普通用户来说,哪怕只给标题画面和主角贴图换上高清版,老树发新芽的观感提升也足够值回折腾。手里还留着 PS1 镜像的,不妨挑一款最爱先试试水。

相关文章

Husk 3.0 上手实测:iPhone 跑 PS4 与安卓游戏,从 JIT 授权到第一款游戏跑通
Delta 2.0 大版本上手:折叠屏秒变双屏 DS,世嘉 MD 与全成就挑战一起来了
PS5 模拟器登上 Xbox Series X:能启动游戏,离能玩还很远
Dolphin 2609a 安卓版上线:NetPlay 联机终于进手机,设置搜索与 Wii 平衡板支持同步到达
Husk 1.1 更新:iPhone 不越狱直接跑安卓 APK,转换层秒开 + QEMU 全系统模拟双模式实操
PS5SX2 v2.01/2.02 支持 PS2 实体光盘:越狱 PS5 塞盘即玩,数字版主机可外接光驱