Skip to content
PORTSNATIVE.
HomeCatalog
Web GamesEmulatorsToolsNews
PORTSNATIVE.

A catalog for discovering ports and related projects. We link to official sources and do not host original game files.

ExploreCatalogMy list
InformationAbout usSuggest a portSupportDonationsLegal notice
© 2026 PortsNative
Back to catalog
Final Fantasy VIII
PORTSNATIVE

Final Fantasy VIII

NATIVE PORTMUSIC / RHYTHMWINDOWSALPHA

Final Fantasy VIII

TechnologyDecompilation and reconstruction in C/C++

Available forWindows

View official project

About the project

Final Fantasy VIII es un videojuego de tipo RPG desarrollado por Squaresoft en 1999 para el sistema PlayStation, aunque posteriormente salió una versión para PC. Es la octava entrega de la serie de videojuegos Final Fantasy. Este juego se aleja de la tónica de fantasía mostrada en las entregas anteriores enfocándose en presentar a personajes más realistas y el primero en contar con un tema musical cantado para el juego. El juego costó en total para su realización unos tres mil millones de Yenes en Japón.

2 versions of Final Fantasy VIII

You're viewing: Final Fantasy VIII

Final Fantasy VIIIgithub.com/roengstrom/ff8-decomp
Windows
Current
Final Fantasy VIII Recompiledgithub.com/alexbeavs-ps1-ports/final-fantasy-viii-recomp
Windows
Linux
macOS
›

Official project information

Author's original READMEOpen on GitHub ↗
<p align="center"> <a href="https://github.com/roengstrom/ff8-decomp"> <img src="images/logo.png" alt="Final Fantasy VIII Decompilation Project" width="700"> </a> </p>

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

<table style="border-collapse: collapse; text-align: center;" border="1" cellpadding="8"> <thead> <tr> <th colspan="3">Total Progress</th> </tr> <tr> <th colspan="3"> <a href="https://decomp.dev/roengstrom/ff8-decomp"> <img src="https://decomp.dev/roengstrom/ff8-decomp.svg?mode=shield&label=Code+Match&color=%233828f7&measure=matched_code_percent" alt="Code Match"></a> &nbsp; <a href="https://decomp.dev/roengstrom/ff8-decomp"> <img src="https://decomp.dev/roengstrom/ff8-decomp.svg?mode=shield&label=Data+Match&color=%233828f7&measure=matched_data_percent" alt="Data Match"></a> </th> </tr> <tr> <th style="text-align: center;">Binary</th> <th>Functions</th> <th>Code</th> </tr> </thead> <tbody> <tr> <td align="center">Main Executable</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmain-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmain-code.json" alt="Code"></td> </tr> <tr> <td align="center">menumain.ovl</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenumain-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenumain-code.json" alt="Code"></td> </tr> <tr> <td align="center">menucfg.ovl</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenucfg-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenucfg-code.json" alt="Code"></td> </tr> <tr> <td align="center">menupty.ovl</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenupty-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenupty-code.json" alt="Code"></td> </tr> <tr> <td align="center">menusts.ovl</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenusts-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenusts-code.json" alt="Code"></td> </tr> <tr> <td align="center">menuabl.ovl</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenuabl-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenuabl-code.json" alt="Code"></td> </tr> <tr> <td align="center">menushop.ovl</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenushop-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenushop-code.json" alt="Code"></td> </tr> <tr> <td align="center">menuext.ovl</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenuext-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenuext-code.json" alt="Code"></td> </tr> <tr> <td align="center">menuitem.ovl</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenuitem-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenuitem-code.json" alt="Code"></td> </tr> <tr> <td align="center">menumgc.ovl</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenumgc-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenumgc-code.json" alt="Code"></td> </tr> <tr> <td align="center">menugf.ovl</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenugf-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenugf-code.json" alt="Code"></td> </tr> <tr> <td align="center">menujnc2.ovl</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenujnc2-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenujnc2-code.json" alt="Code"></td> </tr> <tr> <td align="center">menusav.ovl</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenusav-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenusav-code.json" alt="Code"></td> </tr> <tr> <td align="center">menucrd.ovl</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenucrd-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenucrd-code.json" alt="Code"></td> </tr> <tr> <td align="center">menututo.ovl</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenututo-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenututo-code.json" alt="Code"></td> </tr> <tr> <td align="center">menutmag.ovl</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenutmag-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenutmag-code.json" alt="Code"></td> </tr> <tr> <td align="center">menutips.ovl</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenutips-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenutips-code.json" alt="Code"></td> </tr> <tr> <td align="center">menutest.ovl</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenutest-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fmenutest-code.json" alt="Code"></td> </tr> <tr> <td align="center">field_init.bin</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Ffield-init-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Ffield-init-code.json" alt="Code"></td> </tr> <tr> <td align="center">intro.bin</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fintro-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fintro-code.json" alt="Code"></td> </tr> <tr> <td align="center">field.bin</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Ffield-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Ffield-code.json" alt="Code"></td> </tr> <tr> <td align="center">tripletriad.bin</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Ftripletriad-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Ftripletriad-code.json" alt="Code"></td> </tr> <tr> <td align="center">battle_render.bin</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fbattle-render-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fbattle-render-code.json" alt="Code"></td> </tr> <tr> <td align="center">battle.bin</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fbattle-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fbattle-code.json" alt="Code"></td> </tr> <tr> <td align="center">world.bin</td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fworld-functions.json" alt="Functions"></td> <td align="center" valign="middle"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Froengstrom.github.io%2Fff8-decomp%2Fbadges%2Fworld-code.json" alt="Code"></td> </tr> </tbody> </table>

Development

Any help is greatly appreciated! Before opening a pull request, please read the contribution guidelines.

Below are some basic steps to get started and building the project.

The following distributions have been tested:

DistroCan 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

    sudo apt update
    sudo apt install git make cpp gcc-mipsel-linux-gnu binutils-mipsel-linux-gnu binutils-mips-linux-gnu python3 python3-venv cmake g++
    
  2. Clone the repo with submodules:

    git clone --recursive https://github.com/roengstrom/ff8-decomp.git
    cd ff8-decomp
    git submodule update --init --recursive
    
  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:

    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

    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:

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

  • deling
  • hyne
  • FF8UltimateEditor
  • OpenVIII
  • FF8 Modding Wiki
  • Qhimm Wiki
  • maspsx
  • splat
  • 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.

View official project
CALIFICACIÓN
—
Loading votes…
Advertisement

PROJECT FILE

Project type
NATIVE PORT
Genre
Music / Rhythm
Status
alpha
Original platform
—
Technology
Decompilation and reconstruction in C/C++
Version
—
Updated
—

Target platforms 1

Windows
View on GitHub
Advertisement