TL;DR

  • Super Mario Galaxy 1 디컴파일 프로젝트가 완료됐으며, 게임 복사본이 필요한 소스 코드 저장소로 PC 포트 제작과는 별개임.
  • 저장소에는 게임 에셋이나 어셈블리 코드가 포함되지 않으며, 지원 버전은 한국판 RMGK01 Rev 0임.
  • 프로젝트 진행에 AI/대형 언어 모델(LLM)을 사용하지 않았으며, 이름 지정·코드 정리·문서화에 AI 사용은 허용됐지만 실제로 사용되지는 않음.
  • 빌드에는 Python, Ninja, 게임에서 추출한 sys/main.dol이 필요하며, 플랫폼에 따라 wibo가 자동으로 내려받아 사용됨.
  • 빌드 후 objdiff로 오브젝트를 비교할 수 있으며, 변경된 소스 파일과 설정 파일은 자동으로 다시 빌드됨.

프로젝트 개요

  • Petari는 Super Mario Galaxy 1의 디컴파일 프로젝트임.
  • 저장소에는 게임 에셋이나 어셈블리 코드가 전혀 포함되지 않으며, 별도의 게임 복사본이 필요함.
  • 이 프로젝트는 PC 포트 제작을 목표로 하지 않음. 진행 중인 PC 포트 AstroCore에 관한 정보와 질문은 Discord 서버에서 확인할 수 있음.

AI 사용 관련

  • 디컴파일 과정을 빠르게 진행하는 데 AI나 대형 언어 모델(LLM)을 사용했다는 논의와 의혹이 제기됐으나, 프로젝트에서는 이를 사용하지 않았음.
  • 변수 이름 지정, 코드 정리, 문서화처럼 프로젝트 진행에 직접 영향을 주지 않는 작업에는 AI 사용이 허용됐지만, 실제로 프로젝트에 활용되지는 않았음.
  • 프로젝트의 빠른 진척은 새로운 협력자, 높은 동기, 활발한 커뮤니티 활동에서 비롯됐으며 AI 사용이나 다른 형태의 자동 디컴파일 작업에서 비롯된 것이 아님.
  • 이 설명을 충분히 신뢰하기 어렵다면 소스 코드를 직접 읽고 결론을 내릴 수 있음.
  • AI 사용 지침은 다음과 같음.
  • 코드 정리, 서식 지정, 문서화, 이름 지정 지원에는 AI를 사용할 수 있음.
  • AI가 생성한 디컴파일 작업은 허용되지 않음.
  • AI가 생성한 것으로 명백한 디컴파일 결과물이나 그 밖의 AI 생성 저품질 결과물을 포함한 풀 리퀘스트는 거부됨.
  • 기여자는 제출한 디컴파일 작업을 설명하고 정당화할 수 있어야 하며, 이 규칙은 도구가 생성한 코드에도 적용됨.
  • 프로젝트를 가능한 한 인간 중심으로 유지하는 것이 목표임.

지원 버전

  • RMGK01: 한국판 리비전 0

의존성

Windows

  • Windows에서는 기본 도구 사용을 강력히 권장하며, WSL이나 msys2는 필수가 아님.
  • WSL에서 실행하면 objdiff가 자동 재빌드에 필요한 파일 시스템 알림을 받을 수 없음.
  • Python을 설치하고 %PATH%에 추가해야 하며, Windows Store에서도 설치할 수 있음.
  • Ninja를 내려받아 %PATH%에 추가해야 함. pip install ninja로 빠르게 설치할 수 있음.

macOS

  • brew install ninja로 Ninja를 설치해야 함.
  • 최소 32비트 Windows 바이너리 래퍼인 wibo가 자동으로 내려받아 사용됨.

Linux

  • Ninja를 설치해야 함.
  • 최소 32비트 Windows 바이너리 래퍼인 wibo가 자동으로 내려받아 사용됨.

빌드

  • 저장소는 다음 명령으로 복제함: git clone https://github.com/SMGCommunity/Petari.git
  • Dolphin Emulator를 사용해 게임을 orig/RMGK01에 추출해야 함.
  • 공간을 절약하려면 필요한 파일은 sys/main.dol뿐이며, 나머지 파일은 삭제할 수 있음.
  • python configure.py로 설정함. 한국판 RMGK01이 아닌 버전을 사용하려면 --version으로 지정함.
  • ninja로 빌드함.

디프 비교

  • 최초 빌드가 성공하면 프로젝트 루트에 objdiff.json이 생성됨.
  • encounter/objdiff에서 최신 릴리스를 내려받고, 프로젝트 설정에서 프로젝트 디렉터리를 지정하면 구성이 자동으로 로드됨.
  • 왼쪽 사이드바에서 오브젝트를 선택해 디프 비교를 시작함.
  • 소스 파일, 헤더, configure.py, splits.txt, symbols.txt가 변경되면 프로젝트가 자동으로 다시 빌드됨.

크레딧

  • bte 작업을 수행한 doldecomp 팀, JSystem을 제공한 tp, 그리고 저장소가 코드와 헤더를 가져온 ogws에 감사를 전함.