- 游戏开发
【免费下载链接】DevilutionX
Diablo build for modern operating systems
DevilutionX 是《暗黑破坏神 1》面向现代操作系统的开源重制移植,本指南聚焦其在GKD350h复古掌机上的专用 OpenDingux 版本:从 OPK 安装包的放置、游戏数据文件diabdat.mpq的拷贝路径,到完整的键位映射表、Select/Start 互换与 IPU 缩放失效等已知问题,再到如何从源码自行构建该平台版本。读完本文,你可以在 GKD350h 上完整安装并流畅游玩 Diablo 1,同时理解该移植版在控件与渲染上的底层设计取舍。
平台背景:GKD350h 与 OpenDingux
GKD350h 是一款搭载 MIPS 架构 SoC 的掌上复古游戏机,运行基于 Buildroot 的OpenDingux(GCW0 风格)系统。DevilutionX 为它提供了专用移植目标,与lepus、retrofw、rg99、rg350一同列为 OpenDingux 系列支持平台(见 Packaging/OpenDingux/targets.sh 中的VALID_TARGETS)。对应的构建目标名为gkd350h,其 CMake 平台配置位于 CMake/platforms/gkd350h.cmake。
该平台的移植版本有几个与众不同的技术约束:GKD350h 的 IPU 缩放器(IPU scaler)存在缺陷、方向键在摇杆模式下会被报告为左摇杆、且内核占用了Start + D-Pad组合键,这些约束直接决定了安装包的行为与按键布局,下文将逐一展开。
安装步骤
1. 拷贝 OPK 安装包
从 DevilutionX 的 Release 页面下载devilutionx-gkd350h.opk,将其复制到设备存储的apps目录之一:
- 内置存储:
/media/data/apps - SD 卡:
/media/sdcard/apps/
OPK(Open PacKage)是 OpenDingux 使用的 squashfs 格式打包容器,其中不仅包含主程序devilutionx,还包含default.gcw0.desktop启动描述文件、readme.gcw0.txt手册以及图标资源。打包逻辑见 Packaging/OpenDingux/package-opk.sh:脚本会为rg350/gkd350h目标使用gcw0扩展名,把对应平台的.desktop文件与-manual.txt一并压入 OPK。GKD350h 的桌面描述文件 Packaging/OpenDingux/gkd350h.desktop 声明了Exec=devilutionx、X-OD-Manual=readme.gcw0.txt与X-OD-NeedsDownscaling=true,表明系统会按需对画面进行降采样适配。
2. 放置游戏数据文件diabdat.mpq
你需要从《暗黑破坏神 1》原版光盘或 GOG 安装目录中取得diabdat.mpq,将其拷贝到:
/usr/local/home/.local/share/diasurgical/devilution/diabdat.mpqdiabdat.mpq是暴雪经典的 MPQ 归档格式文件,包含游戏全部关卡、怪物、物品与音频资源。DevilutionX 在启动时会通过GetMPQSearchPaths()(见 Source/engine/assets.cpp)按顺序搜索多个候选路径来定位 MPQ 文件,因此在 OpenDingux 上该路径即为用户数据目录~/.local/share/diasurgical/devilution/。
如果你购买了《地狱火》(Hellfire)扩展包,还可以把以下文件一并拷贝到同一目录以启用扩展内容:
hellfire.mpq hfmonk.mpq hfmusic.mpq hfvoice.mpq此外,若需要中文、日文、韩文等 CJK 文字显示支持,可额外放置fonts.mpq;波兰语与俄语语音包则分别对应pl.mpq与ru.mpq。这些可选资源同样放在上述diasurgical/devilution/目录下。
提示:游戏存档与
diablo.ini配置文件也位于同一目录~/.local/share/diasurgical/devilution/,备份或迁移存档时只需关注该目录。
按键映射与控制方案
GKD350h 版本的手柄映射与常规 OpenDingux 设备(如 RG350)略有不同,完整键位如下表:
| 按键操作 | 功能 |
|---|---|
| 摇杆 / 方向键 | 移动英雄 |
| ○(A) | 攻击附近敌人、与镇民和商人交谈、拾取/放置背包物品、主菜单中确认(OK) |
| ×(B) | 选择法术、菜单中返回 |
| △(Y) | 拾取物品、打开附近的箱子和门、使用背包中的物品 |
| □(X) | 施放法术、主菜单中删除角色 |
| L | 使用腰带中的生命药剂 |
| R | 使用腰带中的法力药剂 |
| Select + ↑ | 游戏菜单 |
| Select + L 或 ← | 角色信息 |
| Select + R 或 → | 背包(物品栏) |
| Select + ↓ | 地图(自动地图) |
| Select + □ | 任务日志 |
| Select + × | 法术书 |
| Start + △○×□ | 快捷施法热键 |
键位映射的底层实现
这份键位表并非游戏内临时配置,而是写死在 CMake 平台配置中的。由于 GKD350h 在摇杆模式下会把方向键(D-Pad)报告为左摇杆,移植版不得不放弃手柄模式,改用**键盘模拟模式(HAS_KBCTRL)**来控制角色,见 CMake/platforms/gkd350h.cmake:
set(HAS_KBCTRL 1) set(DEVILUTIONX_GAMEPAD_TYPE Nintendo) set(KBCTRL_BUTTON_DPAD_LEFT SDLK_LEFT) set(KBCTRL_BUTTON_DPAD_RIGHT SDLK_RIGHT) set(KBCTRL_BUTTON_DPAD_UP SDLK_UP) set(KBCTRL_BUTTON_DPAD_DOWN SDLK_DOWN) set(KBCTRL_BUTTON_B SDLK_LCTRL) set(KBCTRL_BUTTON_A SDLK_LALT) set(KBCTRL_BUTTON_Y SDLK_SPACE) set(KBCTRL_BUTTON_X SDLK_LSHIFT) set(KBCTRL_BUTTON_RIGHTSHOULDER SDLK_BACKSPACE) set(KBCTRL_BUTTON_LEFTSHOULDER SDLK_TAB)物理按键通过 SDL 键盘符号被映射为对应的游戏动作:○映射到SDLK_LCTRL、×映射到SDLK_LALT、△映射到SDLK_SPACE、□映射到SDLK_LSHIFT,肩键 L/R 分别映射到SDLK_TAB与SDLK_BACKSPACE。同时该配置还声明了DEVILUTIONX_GAMEPAD_TYPE Nintendo,使游戏在 UI 与提示上采用任天堂风格的按键命名(○×△□),与上文键位表保持一致。摇杆轴映射为JOY_AXIS_LEFTX=0、JOY_AXIS_LEFTY=1(左摇杆 X/Y 轴),文件底部保留了一组被注释标记为“为将来参考保留”的JOY_*摇杆/按键映射,说明该项目为手柄直连模式预留了扩展空间。
已知问题与使用注意
GKD350h 移植版存在三个官方文档明确列出的已知问题,均源于硬件与内核层面的限制:
Start 与 Select 互换:由于 GKD350h 内核占用了
Start + D-Pad组合键来调节背光,移植版将两键互换。CMake 配置中体现为:# We swap Select and Start because Start + D-Pad is overtaken by the kernel. set(KBCTRL_BUTTON_START SDLK_ESCAPE) # Select set(KBCTRL_BACK_BUTTON SDLK_RETURN) # Start即物理上的Start 键被映射为游戏内的 Select(对应
SDLK_ESCAPE),物理Select 键被映射为游戏内的 Start(对应SDLK_RETURN)。因此上表所写的组合键(如 “Select + ↑ = 游戏菜单”)中的 “Select” 指的是物理按键Start 的实际按压。无鼠标模拟:因为按键互换占用了原本可用的映射空间,本版本没有可用的鼠标模拟键位。这虽然不影响正常游玩,但意味着你**无法拖动自动地图(automap)**进行平移查看。作为对比,RG350 版本通过右摇杆及
Select + 右摇杆按下实现鼠标模拟(见 docs/manual/platforms/rg350.md),而 GKD350h 缺少右摇杆,此功能自然缺失。软件缩放渲染:GKD350h 的 IPU 缩放器当前不可用,因此本版本无法使用 RG350 那样的硬件缩放,只能回退到软件缩放,画面观感上会比 RG350 版本“粗糙”一些。CMake 配置中对应地固定了默认分辨率与色深:
# GKD350h IPU scaler is broken at the moment set(DEFAULT_WIDTH 320) set(DEFAULT_HEIGHT 240) set(SDL1_VIDEO_MODE_BPP 16)即默认以 320×240 分辨率、16 位色深运行,同时整个平台构建强制使用 SDL1(
USE_SDL1=ON)并关闭了零配置组网(DISABLE_ZERO_TIER=ON)与内置资源 MPQ(BUILD_ASSETS_MPQ=OFF),以适配这个资源有限的嵌入式环境。
存档兼容性
本版本的存档与 PC 版《暗黑破坏神 1》以及 DevilutionX 其他平台的存档完全兼容。存档文件保存在~/.local/share/diasurgical/devilution/目录下,这意味着你可以将 PC 或 Steam Deck 等设备上的 DevilutionX 存档拷贝到 GKD350h 继续游玩,反之亦然。需要注意,存档兼容的前提是双方运行的是同一游戏版本(原版 Diablo 1 数据),《地狱火》扩展内容同样遵循此规则。
从源码构建 GKD350h 移植版
如果你希望自行编译该版本,DevilutionX 提供了完整的 OpenDingux 构建流程。构建脚本 Packaging/OpenDingux/build.sh 使用 buildroot 工具链交叉编译,GKD350h 对应的是gkd350h目标(使用tonyjih/RG350_buildroot仓库与rg350_defconfig配置,见脚本中的BUILDROOT_REPOS/BUILDROOT_DEFCONFIGS表)。
基础构建命令如下:
TOOLCHAIN=<path/to/toolchain> Packaging/OpenDingux/build.sh gkd350h- 如果设置了
TOOLCHAIN环境变量,脚本直接使用现成工具链; - 若不设置,脚本会自动下载并编译一个精简的 buildroot 工具链(存放于
$HOME/devilutionx-buildroots/gkd350h),这需要 8 GiB 以上的磁盘空间且耗时较长; - 构建产物为
build-gkd350h/devilutionx-gkd350h.opk,随后脚本调用package_opk将其连同.desktop描述文件、readme.gcw0.txt手册与图标一并打包为最终 OPK。
CMake 配置阶段的关键参数(见cmake_configure()函数):目标平台通过-DTARGET_PLATFORM=gkd350h传入,交叉工具链来自toolchainfile.cmake,同时关闭了单元测试(BUILD_TESTING=OFF)、系统 libsodium/bzip2(改用内置版本)、栈保护(STACK_PROTECTOR=OFF)。构建完成后会使用工具链自带的*-linux-strip对二进制进行瘦身。完整构建说明还可参考 docs/building.md 的 “OpenDingux / RetroFW” 章节,其中也提到了mksquashfs是打包 OPK 的必要依赖。
资源与参考
- 玩家手册:设备上随 OPK 附带的
readme.gcw0.txt(源文件为 Packaging/OpenDingux/gkd350h-manual.txt),内容与本指南安装、键位、已知问题章节一致 - 其他平台手册:docs/manual/platforms/ 目录下还包含 RG350、RG99、RetroFW、Lepus 等同类 OpenDingux 设备的说明
- 构建参考:docs/building.md
- 平台打包脚本:Packaging/OpenDingux/
如需在启动时减轻 squashfs 的内存开销,可以借鉴 RG99 的devilutionx-from-disk.sh方案(Packaging/OpenDingux/devilutionx-from-disk.sh):它先将 OPK 内容解包到磁盘再执行,并通过 MD5 校验避免重复拷贝——该脚本由 build.sh 在rg99目标下自动加入 OPK,GKD350h 用户可自行参考使用。
- 游戏开发
【免费下载链接】DevilutionX
Diablo build for modern operating systems
相关推荐
PSVita掌机玩转暗黑破坏神:DevilutionX移植版终极指南
PSVita掌机玩转暗黑破坏神:DevilutionX移植版终极指南 DevilutionX是一款专为现代操作系统打造的暗黑破坏神(Diablo)开源移植项目,
游戏开发DevilutionX项目安装指南:跨平台暗黑破坏神1复刻版部署教程
DevilutionX项目安装指南:跨平台暗黑破坏神1复刻版部署教程 前言 DevilutionX是经典ARPG游戏《暗黑破坏神1》的开源复刻项目,支持现代操作
游戏开发暗黑破坏神重生:DevilutionX全方位安装与使用指南
暗黑破坏神重生:DevilutionX全方位安装与使用指南 想要在现代操作系统上重温经典暗黑破坏神的魅力吗?DevilutionX正是你需要的解决方案!这款开源
游戏开发
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考