## About
[](https://discord.gg/juRjsHgXuV)
This is a work-in-progress decompilation project of Final Fantasy VIII (PS1, USA `SLUS_008.92`).
## Progress
A more detailed progress report is available on [decomp.dev](https://decomp.dev/roengstrom/ff8-decomp)
| Total Progress |
|
| Binary |
Functions |
Code |
| Main Executable |
 |
 |
| menumain.ovl |
 |
 |
| menucfg.ovl |
 |
 |
| menupty.ovl |
 |
 |
| menusts.ovl |
 |
 |
| menuabl.ovl |
 |
 |
| menushop.ovl |
 |
 |
| menuext.ovl |
 |
 |
| menuitem.ovl |
 |
 |
| menumgc.ovl |
 |
 |
| menugf.ovl |
 |
 |
| menujnc2.ovl |
 |
 |
| menusav.ovl |
 |
 |
| menucrd.ovl |
 |
 |
| menututo.ovl |
 |
 |
| menutmag.ovl |
 |
 |
| menutips.ovl |
 |
 |
| menutest.ovl |
 |
 |
| field_init.bin |
 |
 |
| intro.bin |
 |
 |
| field.bin |
 |
 |
| tripletriad.bin |
 |
 |
| battle_render.bin |
 |
 |
| battle.bin |
 |
 |
| world.bin |
 |
 |
## Development
Any help is greatly appreciated! Before opening a pull request, please read the
[contribution guidelines](CONTRIBUTING.md).
Below are some basic steps to get started and building the project.
The following distributions have been tested:
| Distro | Can build? |
|:------------:|:----------:|
| Debian 12 | ✅ |
| Ubuntu-22.04 | ✅ |
| Ubuntu-24.04 | ✅ |
| Ubuntu-26.04 | ❌ |
1. **Prerequisites**. This "guide" is for devs using debian/ubuntu on Windows using **WSL 2**
```bash
sudo apt update
sudo apt install git make cpp gcc-mipsel-linux-gnu binutils-mipsel-linux-gnu binutils-mips-linux-gnu python3 python3-venv
```
2. **Clone the repo with submodules**:
```bash
git clone --recursive https://github.com/roengstrom/ff8-decomp.git
cd ff8-decomp
```
3. **Provide your own disc image** — You need a BIN file of FF8 Disc 1 (USA, SLUS-00892). Once extracted from the disk, place it inside the "rom" folder.
4. **Run the setup**:
```bash
make setup
```
running this command creates a Python venv, install dependencies (such as splat), extract the bin disc and verify its SHA1, then extracts `SLUS_008.92`, all executables and overlays.
At the end it will run a full rebuild by doing
```bash
make full
```
This runs `clean`, `split` (runs splat on the executable + overlays),
`build-assets` (converts binary assets to C source), and `verify`
(assembles, links, and checks that each output matches the original SHA1).
At the end of the command, you should see a list of overlays all with the State `Match`.
For incremental work, the individual targets are also available:
```bash
make split # re-run splat
make build-assets # regenerate asset C source
make verify # build and compare SHA1s
make verify EFFECTS=all # ... including all 343 battle effect overlays
```
6. **objdiff GUI** (optional). To diff against the original in
[objdiff](https://github.com/encounter/objdiff):
```bash
make expected # builds the target objects, on a verified tree
```
then open the repository in objdiff. Re-run after `make split`.
## References
This project stands on the shoulders of giants. A lot of work has already been put into figuring out the inner workings of FF8 which I have liberally used when starting with this project. A shoutout to the decomp community as well, this project wouldn't be possible without all the work that has been put in and the tools that have developed.
- [deling](https://github.com/myst6re/deling)
- [hyne](https://github.com/myst6re/hyne)
- [FF8UltimateEditor](https://github.com/HobbitDur/FF8UltimateEditor)
- [OpenVIII](https://github.com/MaKiPL/OpenVIII-monogame)
- [FF8 Modding Wiki](https://hobbitdur.github.io/FF8ModdingWiki/)
- [Qhimm Wiki](https://qhimm-modding.fandom.com/wiki/FF8)
- [maspsx](https://github.com/mkst/maspsx)
- [splat](https://github.com/ethteck/splat)
- [decomp.me](https://decomp.me/)
## License
This project does not contain any game assets or copyrighted material. It is a clean-room decompilation for educational and preservation purposes. You must provide your own copy of the game to build.