Pikmin 2 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.
It builds the following DOL:
pikmin2.usa.dol: sha1: 90d328bf8f190c90472e8c19e7e53c6ad0fe0d1a
- intns
- EpochFlame
- SodiumChlorideLogic
- GibHaltmannKill
- kiwi
- shibboleet
- wowjinxy
- nerduminer
- JHawk
- Minty-Meeo
- Revo
- ShadowLugia
- devkitPro
- gcc
- WINDOWS ONLY STEP:
- Launch msys2(Provided by devkitPro) and run the command
pacman -S gcc
.
- Launch msys2(Provided by devkitPro) and run the command
- Download GC_WII_COMPILERS.zip from (https://cdn.discordapp.com/attachments/727918646525165659/917185027656286218/GC_WII_COMPILERS.zip) and extract the GC folder to tools/mwcc_compiler/.
- This folder should be made by the user.
- Run
make -j
in a command prompt or terminal.- -j Allows make to use multiple threads, speeding up the process.
- OPTIONAL:
- Obtain a clean DOL of Pikmin 2 USA 1.0 and place it in the base working directory and rename it to
baserom.dol
. - To generate a linker map (takes a considerable amount of time), run
make MAPGENFLAG=1 -j
- Obtain a clean DOL of Pikmin 2 USA 1.0 and place it in the base working directory and rename it to
- 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.
- The project is actively formatted using .clang-format, for a consistent code style.
- sysGCU
- sysCommonU
- utilityU
- plugProjectKonoU
- plugProjectOgawaU
- plugProjectKandoU
- plugProjectKandoU/aiConstants.cpp
- plugProjectKandoU/baseHIOparms.cpp
- plugProjectKandoU/gameChallenge2D.cpp
- plugProjectKandoU/gameHighscore.cpp
- plugProjectKandoU/gameIconTexture.cpp
- plugProjectKandoU/gameSoundEvent.cpp
- plugProjectKandoU/interactBattle.cpp
- plugProjectKandoU/kandoLib.cpp
- plugProjectKandoU/objectTypes.cpp
- plugProjectKandoU/pelletCarry.cpp
- plugProjectKandoU/pelletConfig.cpp
- plugProjectKandoU/pikiAnimator.cpp
- plugProjectKandoU/pikiContainer.cpp
- plugProjectKandoU/sweepPrune.cpp
- plugProjectKandoU/vsCoinOtakaraName.cpp
- plugProjectKandoU/vsFifo.cpp
- plugProjectHikinoU
- plugProjectEbisawaU
- plugProjectMorimuraU
- plugProjectMorimuraU/blackManAnimator.cpp
- plugProjectMorimuraU/bombAnimator.cpp
- plugProjectMorimuraU/eggAnimator.cpp
- plugProjectMorimuraU/jigumoAnimator.cpp
- plugProjectMorimuraU/miulinAnimator.cpp
- plugProjectMorimuraU/panModokiAnimator.cpp
- plugProjectMorimuraU/plantsAnimator.cpp
- plugProjectMorimuraU/shijimiChouAnimator.cpp
- plugProjectMorimuraU/tamagoMushiAnimator.cpp
- plugProjectMorimuraU/testBase.cpp
- plugProjectMorimuraU/tyreAnimator.cpp
- plugProjectMorimuraU/umiMushiAnimator.cpp
- plugProjectNishimuraU
- plugProjectNishimuraU/ArmorAnimator.cpp
- plugProjectNishimuraU/BabyAnimator.cpp
- plugProjectNishimuraU/BigFootAnimator.cpp
- plugProjectNishimuraU/BombSaraiAnimator.cpp
- plugProjectNishimuraU/DamagumoAnimator.cpp
- plugProjectNishimuraU/DoorNode.cpp
- plugProjectNishimuraU/ElecBugAnimator.cpp
- plugProjectNishimuraU/ElecHibaAnimator.cpp
- plugProjectNishimuraU/FrogAnimator.cpp
- plugProjectNishimuraU/FuefukiAnimator.cpp
- plugProjectNishimuraU/GasHibaAnimator.cpp
- plugProjectNishimuraU/GateUnit.cpp
- plugProjectNishimuraU/HanachirashiAnimator.cpp
- plugProjectNishimuraU/HibaAnimator.cpp
- plugProjectNishimuraU/HoudaiAnimator.cpp
- plugProjectNishimuraU/ImomushiAnimator.cpp
- plugProjectNishimuraU/ItemUnit.cpp
- plugProjectNishimuraU/KabutoAnimator.cpp
- plugProjectNishimuraU/KoganeAnimator.cpp
- plugProjectNishimuraU/KumaChappyAnimator.cpp
- plugProjectNishimuraU/KumaKochappyAnimator.cpp
- plugProjectNishimuraU/KurageAnimator.cpp
- plugProjectNishimuraU/MapCreator.cpp
- plugProjectNishimuraU/MarAnimator.cpp
- plugProjectNishimuraU/MiniHoudaiAnimator.cpp
- plugProjectNishimuraU/ObjectLayout.cpp
- plugProjectNishimuraU/OniKurageAnimator.cpp
- plugProjectNishimuraU/OtakaraBaseAnimator.cpp
- plugProjectNishimuraU/PomAnimator.cpp
- plugProjectNishimuraU/QueenAnimator.cpp
- plugProjectNishimuraU/QurioneAnimator.cpp
- plugProjectNishimuraU/RandMapChecker.cpp
- plugProjectNishimuraU/RockAnimator.cpp
- plugProjectNishimuraU/RumbleData.cpp
- plugProjectNishimuraU/SaraiAnimator.cpp
- plugProjectNishimuraU/SnakeCrowAnimator.cpp
- plugProjectNishimuraU/SnakeWholeAnimator.cpp
- plugProjectNishimuraU/SokkuriAnimator.cpp
- plugProjectNishimuraU/TadpoleAnimator.cpp
- plugProjectNishimuraU/TankAnimator.cpp
- plugProjectNishimuraU/TobiAnimator.cpp
- plugProjectNishimuraU/UjiaAnimator.cpp
- plugProjectNishimuraU/UjibAnimator.cpp
- plugProjectYamashitaU
- plugProjectYamashitaU/chappyAnimator.cpp
- plugProjectYamashitaU/enemyAnimatorBase.cpp
- plugProjectYamashitaU/enemyInfo.cpp
- plugProjectYamashitaU/enemyInteractActions.cpp
- plugProjectYamashitaU/enemyParmsBase.cpp
- plugProjectYamashitaU/enemyPelletInfo.cpp
- plugProjectYamashitaU/enemyStoenInfo.cpp
- plugProjectYamashitaU/kochappyAnimator.cpp
- plugProjectYamashitaU/pelplantGenerator.cpp
- plugProjectYamashitaU/treasureLightMgr.cpp
- JSystem
- JSystem/data.cpp
- JSystem/J3D/J3DBinaryFormat.cpp
- JSystem/J3D/J3DModelSaver.cpp
- JSystem/J3D/J3DShapeDraw.cpp
- JSystem/J3D/J3DUDL.cpp
- JSystem/J3D/J3DUShadow.cpp
- JSystem/JAD/JADHioNode.cpp
- JSystem/JAS/JASBank.cpp
- JSystem/JAS/JASInstEffect.cpp
- JSystem/JAS/JASWaveBank.cpp
- JSystem/JKR/JKRAramStream.cpp
- JSystem/JKR/JKRDisposer.cpp
- JSystem/JKR/JKRFile.cpp
- JSystem/JMath/random.cpp
- JSystem/JPA/JPAKeyBlock.cpp
- JSystem/JPA/JPATexture.cpp
- JSystem/JSG/JSGActor.cpp
- JSystem/JSG/JSGCamera.cpp
- JSystem/JSG/JSGObject.cpp
- JSystem/JSG/JSGSystem.cpp
- JSystem/JStudio/data/jstudio-data.cpp
- JSystem/JStudio/fvb/data/fvb-data-parse.cpp
- JSystem/JStudio/fvb/data/fvb-data.cpp
- JSystem/JStudio/stb/data/stb-data-parse.cpp
- JSystem/JStudio/stb/data/stb-data.cpp
- JSystem/JSupport/JSUFileStream.cpp
- JSystem/JSupport/JSUInputStream.cpp
- JSystem/JSupport/JSUList.cpp
- JSystem/JSupport/JSUMemoryStream.cpp
- JSystem/JSupport/JSUOutputStream.cpp
- JSystem/JUT/JUTFont.cpp
- JSystem/JUT/JUTFontData_Ascfont_fix12.cpp
- JSystem/JUT/JUTNameTab.cpp
- JSystem/JUT/JUTResFont.cpp
- JSystem/JUT/JUTRomFont.cpp
- sysBootupU
- sysGCU
- sysCommonU
- utilityU
- plugProjectKonoU
- plugProjectOgawaU
- plugProjectKandoU
- plugProjectHikinoU
- plugProjectEbisawaU
- plugProjectMorimuraU
- plugProjectNishimuraU
- plugProjectYamashitaU
- JSystem