给 PS1 老游戏换上玩家自制的高清纹理包,画面提升比单纯拉分辨率更明显——贴图细节是真的变清晰了,而不是简单放大。安装模拟器、配置 BIOS 和跑通游戏的部分,站内之前那篇 DuckStation 模拟器教程:从 BIOS 到运行游戏已经写得足够细,本篇不再重复,只聚焦纹理包这一件事。整套流程可以概括成一个闭环:先把游戏里的原始纹理 dump 出来,再放大重制成高清版,最后回灌进模拟器生效。下面按步骤走一遍。
弄懂机制:textures 目录与游戏 ID 命名
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 与异步加载怎么选
图放进去了还不算完,回模拟器把开关拨到位:关掉「转储纹理」,勾选「启用纹理替换」,新版选项名写作 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 镜像的,不妨挑一款最爱先试试水。



