Skip to content

Repository files navigation

Final Fantasy VIII Decompilation Project

About

Markdown Logo

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

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! Below are some basic steps to get started and building the project.

  1. Clone the repo with submodules:

    git clone --recursive https://github.com/roengstrom/ff8-decomp.git
    cd ff8-decomp
    • Note: If you are using Windows, you must use WSL 2 to build the project.

      The following distributions have been tested for building the project:

      Distro Can build?
      Ubuntu-22.04
      Ubuntu-24.04
      Ubuntu-26.04

      On a fresh installation, run the following commands to install the packages required to build the project:

      sudo apt update
      sudo apt install python3-venv make build-essential binutils-mipsel-linux-gnu
  2. Create a Python venv and install splat:

    python3 -m venv .venv
    .venv/bin/pip install -e "tools/splat[mips]"
  3. Provide your own disc image — You need a BIN/CUE of FF8 Disc 1 (USA, SLUS-00892).

  4. Extract game data from the disc:

    python3 tools/extract.py /path/to/ff8-disc1.bin

    This verifies the disc SHA1, then extracts SLUS_008.92, all executables and overlays.

  5. Full build:

    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).

    For incremental work, the individual targets are also available:

    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:

    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.

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.

About

Work-in-progress Final Fantasy VIII decompilation project for the PS1

Resources

Stars

36 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages