Plants vs. Zombies PlayStation 2 版
摘要
一个粉丝项目将反编译的 Plants vs. Zombies GOTY 版移植到 PlayStation 2 及其他平台,用 SDL 和 OpenGL 替换了遗留的渲染器,以实现跨平台支持。
查看缓存全文
缓存时间: 2026/07/24 17:02
OptiJuegos/pvz-ps2 来源:https://github.com/OptiJuegos/pvz-ps2
re-plants-vs-zombies 分支 (ps2)
我懒得解释所有内容,直接用 “build ps2.bat” 构建即可,它包含了所有依赖 (Windows)!!
在 Linux 上,你需要修改 cmake 配置!!
建议使用包含压缩资源的 main.pak,以避免加载缓慢和崩溃!
基于 headshot2017 分支!!向他致以最高的敬意!
这是 Patoke 的 PVZ GOTY 反编译版本的一个分支,目标如下:
- 用 SDL + OpenGL 替换渲染器
- 将 Windows 代码替换为跨平台代码
- 用 SDL Mixer X (https://github.com/WohlSoft/SDL-Mixer-X) 替换 DirectSound/BASS/FMod
- 本工程使用了一个 SDL Mixer X 的分支,通过 libopenmpt 增加了对 MO3 格式的支持。该分支位于 SexyAppFramework/sound/SDL-Mixer-X 下
- 支持 main.pak
- 优化控制台移植版的内存使用 (部分完成)
- 将游戏移植到以下平台:
| 平台 | 数据路径 | 状态 |
|---|---|---|
| Windows (SDL2) | 与可执行文件相同 | 正常工作 |
| Linux (SDL2) | 与可执行文件相同 | 正常工作 |
| Haiku (SDL2) | 与可执行文件相同 | 部分工作:无音乐 |
| Nintendo Switch | sdmc:/switch/PlantsvsZombies | 在真实硬件和 Citron 上正常工作。Kenji-NX 启动时崩溃。 |
| Nintendo 3DS | sdmc:/3ds/PlantsvsZombies | 开发中,老款 3DS 可能内存不足,新款 3DS 勉强可用。 |
| Nintendo Wii U | 尚未开始,但有计划 |
要玩游戏,你需要拥有 PvZ GOTY 的游戏数据。将 “main.pak” 和 “properties” 文件夹复制到 re-plants-vs-zombies 可执行文件所在的路径(或上述控制台移植版的对应数据路径)。
或者,你也可以使用 PvZ .pak 提取工具,用提取出的数据代替 main.pak,但这取决于你。
原始 README 继续如下:
re-plants-vs-zombies
该项目专注于反编译第一部《植物大战僵尸》的最新功能,并扩展游戏及其引擎。
SexyAppFramework 可追溯到 2005 年,是一个非常古老的游戏引擎,不符合现代 C++ 规范,也不使用现代渲染后端。
本项目旨在通过使用最新的 C++ 标准特性,以及用现代的、跨平台包装 GLFW (https://www.glfw.org/) 替换旧的 DirectDraw 和 Direct3D7 渲染器,同时对 Miya(又名 Kopie)的 PvZ 0.9.9 反编译项目(https://github.com/rspforhp)进行扩展(该项目现已删除),为模组作者和玩家提供最佳 PvZ 体验。
免责声明
本项目不鼓励盗版。
本项目不包含 PopCap 除其开源游戏引擎之外的任何知识产权,仅输出一个反编译的粉丝版 PvZ 可执行文件。
要使用本项目玩游戏,你需要通过购买官方游戏(https://store.steampowered.com/app/3590/Plants_vs_Zombies_GOTY_Edition/)获得原始游戏文件。
路线图
当前重点
- 为基础游戏添加 x64 支持 (部分完成)
- 将旧渲染后端替换为 GLFW (进行中)
- 将所有仅限 Windows 的代码替换为跨平台的 GLFW 对应代码 (进行中)
待完成:获得一个使用 GLFW 的 x64 可运行版本后
- 添加 GOTY 版本的所有功能
- 成就 (部分完成)
- Zombatar
可能的未来功能
- 为游戏创建易于使用的模组 API
- 从文件中解析僵尸
- 从文件中解析植物
- 从文件中解析地图
- 为自定义序列添加脚本支持
安装
Visual Studio Community
打开包含 CMakeSettings.json 的文件夹,等待缓存生成完成,然后构建项目。
其他环境(Sublime、Visual Studio Code、MSYS2 等)
在 CMakeSettings.json 所在的目录下运行以下命令(假设你已安装带 Ninja 的 CMake):
cmake -G Ninja -B cmake-build
cmake --build cmake-build
如果运行这些命令无法成功构建,请创建一个 issue (https://github.com/Patoke/re-plants-vs-zombies/issue) 并详细描述你的问题。
构建完成后,输出的可执行文件应位于 SexyAppFramework 文件夹内的 Debug 或 Release 目录(取决于你的构建目标)。
然后,将该可执行文件复制到原始游戏根目录(或将原始游戏目录的内容复制到前述文件夹中)。
之后,你应该就可以直接打开构建好的可执行文件,享受 re-pvz 了!
贡献
贡献时请遵循以下指南:
SexyAppFramework 编码理念
来自 SexyAppFramework 文档:
该框架与其他许多 API 的不同之处在于,某些类属性不通过访问器方法封装,而是通过公有成员数据直接访问。例如,应用程序窗口标题是通过在创建窗口之前为应用程序对象中的 std::string mTitle 赋值来设置的。我们认为这在很多情况下减少了实现一个类所需的代码。
另外值得注意的是变量前缀法:“m”表示类成员,“the”表示传递给方法或函数的参数,“a”表示局部变量。
贡献者标记
当你需要为其他开发者留下注释时,应使用以下格式:
- 始终包含贡献者名称,例如:
@Contributor- 对于待办事项,包含待办标记,例如:
@Contributor todo- 始终使用冒号表示注释开始处:
@Contributor todo: 出问题了!- 如果某个新函数已被逆向,并且你已在最新版本游戏中找到其地址(或逆向出了某个类成员的偏移量),请按以下方式注明:
@Contributor GOTY: 0xADDRESS
致谢
- @rspforhp (https://www.github.com/octokatherine) 对 PvZ 0.9.9 版本的反编译工作令人惊叹
- @ruslan831 (https://github.com/ruslan831) 存档了 PvZ 0.9.9 的反编译版本 (https://github.com/ruslan831/PlantsVsZombies-decompilation)
- GLFW 团队的出色工作
- PopCap 创造了精彩的《植物大战僵尸》系列(并公开了他们的游戏引擎)
- 所有在过去、现在积极贡献这个神奇项目的贡献者们
相似文章
@op7418: 坏了!这下真能玩了 用 Seedance 2.0 直接把GPT Image 2 生成的 ARPG 《金瓶梅》游戏做成动态的了 UI 交互和两个画面之间的衔接都做了
Seedance 2.0 turns static GPT Image 2 frames into a playable ARPG game based on Jin Ping Mei, adding UI and scene transitions.
Snowboard Kids 2 已实现100%反编译
作者宣布,任天堂64游戏《Snowboard Kids 2》现已完全反编译,意味着所有函数都有了对应的C语言实现,并能够编译回原始汇编代码。该项目耗时近两年,功劳归于N64反编译社区以及AI编程助手(Claude、GLM、Codex)的加速作用。
UnDUNE II
UnDUNE II 是对经典即时战略游戏《沙丘2》的完整降级重制版,使用 PICO-8 从头重建,所有阵营、任务、单位以及原创音乐均被重制。
像1993年那样制作图形
一位开发者详细介绍了如何构建《Catlantean 3D》——一款采用1993年时代图形技术(256色、320x240分辨率、手工制作资产、无人工智能)的第一人称射击游戏,计划在Steam上发布,重点讲解调色板渲染和资产创建。
@Rayko_wang: 现在你可以使用Seedance 2.0和GPT Image 2真正制作一个可玩的游戏了。不再是静态的AI视频,而是真正的游戏...
名为Reelquest的新演示利用Seedance 2.0和GPT Image 2创建了一个完全交互式、可玩的游戏,其中每一帧都根据用户操作由AI生成,无需编码或游戏引擎。