Final Fantasy VIII Decompilation Project

## About [![Markdown Logo](https://img.shields.io/discord/1499425449984393438?style=plastic&logo=discord&label=Discord)](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
Code Match   Data Match
Binary Functions Code
Main Executable Functions Code
menumain.ovl Functions Code
menucfg.ovl Functions Code
menupty.ovl Functions Code
menusts.ovl Functions Code
menuabl.ovl Functions Code
menushop.ovl Functions Code
menuext.ovl Functions Code
menuitem.ovl Functions Code
menumgc.ovl Functions Code
menugf.ovl Functions Code
menujnc2.ovl Functions Code
menusav.ovl Functions Code
menucrd.ovl Functions Code
menututo.ovl Functions Code
menutmag.ovl Functions Code
menutips.ovl Functions Code
menutest.ovl Functions Code
field_init.bin Functions Code
intro.bin Functions Code
field.bin Functions Code
tripletriad.bin Functions Code
battle_render.bin Functions Code
battle.bin Functions Code
world.bin Functions Code
## 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.