https://github.com/parappadev/parappa2
PaRappa the Rapper 2 (2001, PS2) decompilation
https://github.com/parappadev/parappa2
decomp decompilation parappa ps2 reverse-engineering
Last synced: 7 months ago
JSON representation
PaRappa the Rapper 2 (2001, PS2) decompilation
- Host: GitHub
- URL: https://github.com/parappadev/parappa2
- Owner: parappadev
- Created: 2023-11-14T18:36:49.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-05-03T19:06:01.000Z (11 months ago)
- Last Synced: 2025-05-19T20:11:45.203Z (10 months ago)
- Topics: decomp, decompilation, parappa, ps2, reverse-engineering
- Language: C
- Homepage:
- Size: 11.1 MB
- Stars: 105
- Watchers: 10
- Forks: 7
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-game-file-format-reversing - parappa2 (decomp) - Matching decompilation of PaRappa the Rapper 2 (PS2). (Game & Studio Tools / NanaOn-Sha)
- awesome-game-decompilations - PaRappa The Rapper 2
README
# PaRappa the Rapper 2 Decompilation




A work-in-progress decompilation of [*PaRappa the Rapper 2*](https://en.wikipedia.org/wiki/PaRappa_the_Rapper_2) (パラッパラッパー2) for the PlayStation 2.
We are currently targeting the July 12th NTSC-J prototype, but we aim to target the final NTSC-J/NTSC/PAL builds in the foreseeable future.
For any questions, we have a home at the [PS1/PS2 Decompilation Discord server](https://discord.gg/VwCPdfbxgm) and the [PaRappa the Rapper Modding Community Discord server](https://discord.gg/xpvVnYd).
### Progress
*For a more detailed view of the progress, please check our [decomp(dot)dev page](https://decomp.dev/parappadev/parappa2).*
#### EE main core
| Folder | Progress | Description
|------------|----------|------------
| `dbug` |  | Debug utilities (VRAM save, debug menus, etc.)
| `os` |  | OS utilities (threading, pad, memory, etc.)
| `iop_mdl` |  | IOP module control routines
| `main` |  | Gameplay code (score logic, loading screen, etc.)
| `menu` |  | Menu code (UI flow, Memory Card saving, etc.)
| `prlib` |  | Game engine (rendering, models/animations, etc.)
| `src` |  | Total percentage
#### IOP modules
| Folder | Progress | Description
|------------|----------|------------
| `wavep2` |  | Music and asset streaming
| `tapctrl` | N/A | Voice and sound effect playback
#### VU1 microcode
| Folder | Progress | Description
|------------|----------|------------
| N/A | N/A | N/A
### Requirements setup
1. `sudo apt install gcc-mipsel-linux-gnu binutils-mips-linux-gnu ninja-build`
2. `sudo apt install python3-pip`
3. `python3 -m pip install -U -r requirements.txt`
*Note: For compiling, you need to add the `i386` architecture. For instructions on that please check out [this guide](https://askubuntu.com/questions/454253/how-to-run-32-bit-app-in-ubuntu-64-bit) if you're on Ubuntu.*
### Setup
1. Create a folder named `iso` in the root of the repo.
2. Extract the following files from the July 12th prototype and place it in said `iso` folder:
- `SCPS_150.17`
- `TAPCTRL.IRX` (found in the `IRX` folder)
- `WAVE2PS2.IRX` (found in the `IRX` folder)
3. `./configure.py` (use `-c` to do a clean split.)
4. `ninja`
To generate/update the progress report:
1. After a successful build, run `./configure.py --objdiff`
2. `./tools/objdiff-cli report generate -p . -o progress/report.json -f json-pretty`
### asm-differ setup
1. After a successful build, create a folder named `expected`
2. Copy the `build` folder inside the `expected` folder.
3. `./tools/diff.py -mwo FUNCTION_NAME`
- Use the `-t` argument to diff functions in IRX modules.
- Possible targets are: `ee`/`wp2cd`/`tapctrl`. Default is `ee`. `tapctrl` target will not work.
- Example: `./tools/diff.py -mwo -t wp2cd FUNCTION_NAME`.
*Note: Every time you add a new symbol, you must do the asm-differ setup again.*