A decompilation of Pikmin brought to you by fans of the series.
Go to file
2024-01-01 11:35:29 -05:00
.github/workflows update workflow 2024-01-01 10:55:13 -05:00
.vscode vscode configuration 2022-11-02 20:58:54 -04:00
asm Year of the Pikmin 2024-01-01 10:16:15 -05:00
include update jaudio flags 2024-01-01 11:32:42 -05:00
sha1 Initial commit 2021-09-27 20:13:41 -04:00
src update jaudio flags 2024-01-01 11:32:42 -05:00
tools update workflow 2024-01-01 10:55:13 -05:00
.clang-format Update .clang-format 2024-01-01 11:35:29 -05:00
.gitattributes Update .gitattributes 2022-01-27 22:30:53 -05:00
.gitignore update jaudio flags 2024-01-01 11:32:42 -05:00
configure.py update jaudio flags 2024-01-01 11:32:42 -05:00
format-files.py clang-format 2022-01-21 16:54:21 -05:00
include_link.mk Year of the Pikmin 2024-01-01 10:16:15 -05:00
ldscript.lcf split .ctors and .dtors 2023-03-10 18:57:36 -05:00
LICENSE.MD Create LICENSE.MD 2022-01-21 21:33:16 -05:00
Makefile Year of the Pikmin 2024-01-01 10:16:15 -05:00
obj_files.mk Year of the Pikmin 2024-01-01 10:16:15 -05:00
README.MD Update README.MD 2023-10-11 21:06:26 -04:00

Pikmin 1

Pikmin 1 (USA Revision 1) disassembly/decompilation to C++/C

- INFORMATION! -

The ROM this repository builds can be shifted! Meaning you are able to now
add and remove code as you see fit, for modding or research purposes.

- DISCLAIMER -

Shiftability is tentative and not fully verified. Use at your own discretion.

It builds the following DOL: pikmin.usa.1.dol: sha1: 02204260B7EFE8742D34572E58BA3DFECD92E4E9

Building

Required Tools

Instructions

  • WINDOWS ONLY STEP:

    • Launch msys2 (provided by devkitPro) and run the following commands:
    pacman -S msys2-keyring
    pacman -S git python
    
  • OPTIONAL:

    • Obtain a clean DOL of Pikmin 1 USA 1.01 and place it in the base working directory and rename it to baserom.dol.
  1. Download GC_WII_COMPILERS.zip from (https://files.decomp.dev/compilers_20230715.zip) and extract it to tools/mwcc_compiler/.
  2. Run the make command.

Project Organisation

  • For each namespace that types and functions are contained within, create a folder. E.g. the structure Game::GameSystem will go in include/Game/GameSystem.h.
  • The exception is only when adding extra folders becomes useless, for example having to add multiple folders that are empty, you can instead opt for creating a header file with the namespace's definitions inside.