# Conker's Bad Fur Day Decompilation for Nintendo 64 (N64)
A work-in-progress matching decompilation of *Conker's Bad Fur Day* for
Nintendo 64 (N64), with asset extraction tools, model-preview generation,
and documented asset-format research.
The North American (US) release is the active target; Europe/PAL remains a
future goal and does not currently gate progress.
## Project progress
[](https://decomp.dev/DevOldSchool/conkers-bfd-decomp/us?category=all)
[](https://decomp.dev/DevOldSchool/conkers-bfd-decomp/us?category=all)
The badges show native objdiff matching from the latest published US report.
**US Code** covers tracked CPU code, including SDK code; **US Data** covers
tracked data and stored assets. Both exclude EU/PAL. Public results can lag local
work until a verified report is published. `./conker progress` shows the code
metric from your local `./conker objdiff report`, plus source-unit and function
counts. See [progress reports](docs/progress.md).
The repository contains no ROMs or extracted game assets. Read
[LEGAL.md](LEGAL.md) before contributing.
## Quick start
Local builds use Docker for the pinned IDO-compatible toolchain on Linux,
Intel macOS and Apple Silicon. Managed Linux executors can use the supported
[cloud setup](docs/cloud-matching.md). `./conker` runs the image natively on
amd64 and arm64 hosts (Apple Silicon, ARM Linux, Windows on ARM); both build the
same ROMs. Set `CONKER_PLATFORM=linux/amd64` or `linux/arm64` to override.
```sh
git clone https://github.com/DevOldSchool/conkers-bfd-decomp.git
cd conkers-bfd-decomp
./conker doctor
```
Copy your owned US ROM into the ignored `roms/` directory, then validate and
record it for local builds:
```sh
cp /path/to/your-us-rom.z64 roms/baserom.us.z64
./conker setup --us roms/baserom.us.z64
./conker build
```
The normal function workflow starts with:
```sh
./conker next --ready
# Replace the selected GLOBAL_ASM pragma with the emitted C starter.
./conker finish
```
Before making a contribution, read [CONTRIBUTING.md](CONTRIBUTING.md). The
[decompilation workflow](docs/decompilation-workflow.md) explains candidate
selection, focused diffs, source-unit registration, integration, and batch
verification in detail.
## Project areas
| Area | Start here |
| --- | --- |
| Function matching and source integration | [Contributing](CONTRIBUTING.md) and [decompilation workflow](docs/decompilation-workflow.md) |
| Current progress | [US objdiff report](https://decomp.dev/DevOldSchool/conkers-bfd-decomp/us?category=all) ยท [Local reports](docs/progress.md) |
| Clean-room baseline and ROM profiles | [Bootstrap guide](docs/bootstrap.md) |
| Asset extraction and format research | [RZIP and asset extraction](docs/rzip-assets.md) |
| Model previews and scoped material evidence | [Model appearance extraction](docs/model-appearance.md) |
| Future asset editing and ROM insertion | [Asset editing](docs/asset-editing.md) |
| Remaining asset research | [Asset roadmap](docs/asset-roadmap.md) |
| Nintendo 64 library reconstruction | [Library track](docs/library-track.md) |
| Debug and ECTS research inputs | [Beta evidence](docs/beta-evidence.md) |
| Runtime investigation | [Runtime tracing](docs/runtime-tracing.md) |
| CI and protected ROM verification | [Continuous integration](docs/ci.md) |
The [documentation index](docs/README.md) provides a complete map of the
project guides and explains which files are generated or evidence-only.
## Active target
Contributor commands default to the US profile. A function counts as matched
only after its US focused diff reports `CURRENT (0)`. A source unit counts as
complete only after every member matches and the unit is integrated into the
byte-identical build. EU/PAL configuration and research are retained for future
activation but do not affect the active completion percentage.
Generated assembly, extracted assets, and build products stay ignored. The
canonical inventories are maintained through `./conker`; contributors should
not edit their JSON files manually.
## Credits
Thanks to the authors and maintainers of:
- **Compilation and assembly:** [IDO static recompilation](https://github.com/decompals/ido-static-recomp),
[asm-processor](https://github.com/simonlindholm/asm-processor), and
[armips](https://github.com/Kingcom/armips)
- **Decompilation and matching:** [splat](https://github.com/ethteck/splat),
[spimdisasm](https://github.com/Decompollaborate/spimdisasm),
[m2c](https://github.com/matt-kempster/m2c),
[asm-differ](https://github.com/simonlindholm/asm-differ),
[decomp-permuter](https://github.com/simonlindholm/decomp-permuter),
and [objdiff](https://github.com/encounter/objdiff)
- **Reused work:** [ultralib](https://github.com/decompals/ultralib),
[Rare-modified library sources](lib/libultrare/README.md), and
[RSP sources](src/rsp/README.md), with detailed attribution in their existing notices