Petari README

The project's README from github.com/SMGCommunity/Petari. As one markdown file: README.md.

Petari Build Status Progress Linking Discord Badge

A visual

A work-in-progress decompilation of Super Mario Galaxy 1.

This repository does not contain any game assets or assembly whatsoever. An existing copy of the game is required.

This project is not meant to be an effort to create a PC Port. Join the the Discord server to learn more and ask about our work-in-progress PC port "AstroCore".

Regarding AI usage

A lot of dicussion and accusations have been made claiming we used AI/LLMs to accelerate the decompilation process. We did not.

Although AI was allowed for tasks that did not directly affect progress, such as variable naming, code cleanup, and documentation, it never ended up playing a role in this project. The fast progress acceleration of the project was a result of new collaborators, a ton of motivation, and great community efforts. It was not a result of AI usage or any other kind of automated decompilation work.

If you don't trust this statement enough, read the source code yourself and form your own conclusions.

Below are our AI usage guidelines:

[!NOTE] AI may be used for code cleanup, formatting, documentation, and naming assistance. AI-generated decompilation work is not allowed. Pull requests containing obvious AI-generated decompilation output or other AI slop will be rejected. Contributors should be able to explain and justify any decompilation work they submit. This also applies to all tool-generated code. We want to keep this project as human as possible.

Supported versions:

Dependencies

Windows

On Windows, it's highly recommended to use native tooling. WSL or msys2 are not required.
When running under WSL, objdiff is unable to get filesystem notifications for automatic rebuilds.

macOS

wibo, a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used.

Linux

wibo, a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used.

Building

Diffing

Once the initial build succeeds, an objdiff.json should exist in the project root.

Download the latest release from encounter/objdiff. Under project settings, set Project directory. The configuration should be loaded automatically.

Select an object from the left sidebar to begin diffing. Changes to the project will rebuild automatically: changes to source files, headers, configure.py, splits.txt or symbols.txt.

Credits

Big thanks to the doldecomp team for their efforts on bte, tp for JSystem, and ogws, where this repository has sourced code and headers from.

Petari (SMGCommunity/Petari)

Searching Database…

1.3K ·GitHub
这是什么?这是一个开源、进行中的 Super Mario Galaxy 1 反编译项目,通过将编译后的二进制与代码进行匹配,重建游戏最初的 C++ 源代码。
这是可玩的 PC 移植版吗?不是,它纯粹是重建源代码的反编译工程;团队明确表示并不打算制作 PC 移植版,不过在他们的 Discord 上有讨论一个单独的相关 WIP 移植项目 “AstroCore”。
这个怎么构建?克隆仓库,用 Dolphin 模拟器把你自己的游戏副本转储到 orig/RMGK01(严格来说只需要 sys/main.dol),然后运行 configure 脚本并用 ninja 构建。
构建前需要安装哪些工具?在 Windows 上需要安装 Python 并把 ninja 加入 PATH;在 macOS 和 Linux 上只需安装 ninja,工具链所需的 wibo 32 位 Windows 二进制封装器会自动下载。
使用这个需要拥有这款游戏吗?需要,仓库本身不含任何游戏素材或汇编代码,所以你必须提供合法转储的游戏副本;目前官方只支持韩版 RMGK01 Rev 0。
团队用 AI 来加速反编译了吗?没有。AI 只被允许用于变量命名、代码清理和文档等非反编译任务;包含 AI 生成反编译成果的 pull request 会被拒绝。
怎么对照原始二进制检查进度?下载 objdiff,把它指向项目根目录生成的 objdiff.json,然后在侧边栏选择一个目标文件,把重建的代码与原始代码进行比对,源码变化时还会自动重新构建。
部分共享代码来自哪里?项目的代码和头文件取自其他反编译工程,包括为 JSystem 使用的 doldecomp 的 bte 和 tp 项目,以及 ogws。
Size
92.6 MB
Stars
1.3K
Updated
CommitOct 17
Age
7y
Commits · 90 Days