Next generation modding platform for Final Fantasy VII and Final Fantasy VIII (with native Steam 2013 release support)
FFNx is a continuing evolution of the FF7_OpenGL driver, made by Aali.
FFNx today in a nutshell:
- Uses an easy, drag-n-drop installation experience, see How to Install
 - Comes built-in with 7th Heaven v2.3 and higher
 - Supports the newest video and audio codecs (WEBM, H.265, Ogg, etc.)
 - Drastically enhances the gameplay experience compared to the vanilla experience
 - Provides four stable rendering backends:
- DirectX 11 (default)
 - DirectX 12
 - Vulkan
 - OpenGL
 
 
FFNx is developed by a core team, currently composed of:
- Julian Xhokaxhiu (TrueOdin, 🇪🇸 Spain)
 - Tang-Tang Zhou (vertex2995, 🇮🇹 Italy)
 - Jérôme Arzel (myst6re, 🇫🇷 France)
 - CosmosXIII (Cosmos, 🇯🇵 Japan)
 
We are always open for contributions via PRs, and in case you want to join the core team, feel free to approach us on Discord and we will evaluate on a case-by-case basis.
- /LARGEADDRESSAWARE support. Up to 3.5GB of RAM available for mods (this requires the 4GB Patch in your ff7.exe).
 - High DPI support
 - HDR support
 - Up to 16x anisotropic support
 - Up to 16x antialiasing support
 - 5.1/7.1 audio output support
 - Steam support; no game converter required
 - Steam savegame preservation (you no longer lose saves created while FFNx is active)
 - XInput controller support (Xbox 360 and compatible) with D-Pad working out-of-the-box
 - Native speedhack support
 - External music loading to replace original MIDIs
 - The game continues to run within an inactive window
 
- 60 FPS
 - eStore support! No game converter required
 - Vertical centering for fields and movies
 - Fullscreen battle scenes
 - Menu cursor vertically aligned on the center of words
 - Movies continue to play while running in an inactive window
 - Movie volume respects global sound volume
 - Steam sound and music volume configuration preservation (configure at your pleasure and on the next run it will be inherited)
 - Configurable background transparency in battle dialogs (by default set to 75%)
 - SFX volume change applies in real-time, instead of requiring a game reload
 - Support for animated textures (like Aerith's waterfall, light fading, etc.)
 - Support for soft-reset while you're playing, just like the PSX
 - Support for battle toggle (enable/disable at your own pleasure)
 - Voice acting! Echo-S was the first mod to take advantage of this!
 - Support for external SFX audio effects
 - Support for external ambient audio effects
 - Support for external movie audio files (allows multiple videos to share the same audio)
 - Support for external movie voice acting (dedicated audio layer only for voice acting on top of movies)
 - Steam achievements can be unlocked while playing within FFNx
 - Real-time light engine - You can now feel the game visually like never before
 - Real-time camera control in battles
 - Analogue controls using the full axis of your left analog stick
 
- Vibration support
 - Analog controls improved support
 - Voice acting! Echo-S was the first mod to take advantage of this!
 - Various graphical patches for worldmap included
 - Enable the VRAM debug window while playing in order to see how the engine uploads textures
 - Support for external SFX audio effects
 - Support for external movie audio files (allows multiple videos to share the same audio)
 - Support for external movie voice acting (dedicated audio layer only for voice acting on top of movies)
 - Support for external music audio with music resume after battle and improved volume transitions
 
- Game rendering inspection through RenderDoc
 - DDS Texture support up to BC7 format, with PNG support as fallback
 - Support for configurable external textures path using mod_path
 - Support for an override layer of the data directory using override_path
 - Support for MINIPSF audio files using the emulated PSX/PS2 AKAO Engine
 - Support for Hext patching files inside of the hext_patching_path
 - Debug in-game engine data through imgui integration
 
For a more in-depth documentation feel free to visit the docs/ folder.
| Vanilla/Steam | 
|---|
![]()  | 
![]()  | 
![]()  | 
If you're curious to know, FFNx makes use of:
- C++ code base
 - Latest MSVC available on Visual Studio 2022 Community Edition
 - vcpkg (dependency manager)
 - CMake (make files)
 - BGFX (backend renderer)
 - BIMG (custom textures)
 - FFMpeg with H/W accelleration support
 - VGMStream using FFMpeg as backend (with loop support!)
 - tomlplusplus (configuration management)
 - StackWalker (log file stack traces)
 - pugixml (Steam XML manifest)
 - md5 (Steam XML manifest)
 - libpng (better and faster PNG texture support)
 - imgui (DevTools in-game interface)
 - imgui_club (imgui Memory Editor Widget)
 - xxhash (fast hash extraction from paletted game texture data, aka animated textures)
 - SoLoud (audio engine used to playback audio, music or voice files)
 - openpsf (MINIPSF emulation engine to playback PSX/PS2 music files)
 - Steamworks SDK (support achievements for the Steam editions of games)
 - mimalloc (a compact general purpose allocator with excellent performance)
 
Available build profiles:
- x86-Release (default, the same used to release artifacts in this Github page)
 - x86-RelWithDebInfo (used while developing to better debug some issues)
 - x86-MinSizeRel
 - x86-Debug (prefer it if you want to use a debugger attached to the game)
 
Once the project is built you can find the output in this path: .build/bin
Please note:
FFNx uses vcpkg as a package manager to resolve dependencies. Failing to follow these steps will result in build errors.
- Clone this repository using the 
--recursiveflag, eg.git clone --recursive https://github.com/julianxhokaxhiu/FFNx.git 
Please note:
This step will speed up your compilation times by avoiding the vcpkg dependencies rebuild.
- Make sure you have NuGet CLI installed.
 - Create a Personal Access token ( classic ) with the 
write:packagespermission. - Open a 
cmdwindow and run the following commands ( replaceYOUR_GITHUB_USERNAMEandYOUR_GITHUB_PATaccordingly ): 
$ nuget sources add -Name github -Source "https://nuget.pkg.github.com/YOUR_GITHUB_USERNAME/index.json" -Username YOUR_GITHUB_USERNAME -Password YOUR_GITHUB_PAT -StorePasswordInClearText
$ nuget setApiKey YOUR_GITHUB_PAT -Source "https://nuget.pkg.github.com/YOUR_GITHUB_USERNAME/index.json"Please note:
By default Visual Studio will pick the x86-Release build configuration, but you can choose any other profile available. FFNx uses vcpkg as a package manager to resolve dependencies. Failing to follow these steps will result in build errors.
- Download the the latest Visual Studio Community installer
 - Run the installer and import this .vsconfig file in the installer to pick the components required to build this project
 - Make sure you select the English Language pack in the language list before clicking Install
 - Go inside the 
vcpkgfolder and double clickbootstrap-vcpkg.bat - Open a 
cmdwindow invcpkgand run the following command:vcpkg integrate install - Once installed, open this repository as a folder in Visual Studio
 - Choose as preset in the status bar the one you desire
 - Click the 
Buildbutton 
- REQUIRED! Follow up the steps to install Visual Studio, which will also install the MSVC toolchain
 - Download and install the latest Visual Studio Code release
 - Install the following extensions:
 - Open this repository as a folder in Visual Studio Code
 - Choose as preset in the status bar the one you desire
 - Click the button on the status bar 
Build 
- REQUIRED! Follow up the steps to install Visual Studio, which will also install the MSVC toolchain
 - REQUIRED! Have Neovim installed with clangd as LSP
 - Install the extension 
Clang Power Toolsin Visual Studio Community - Open the solution 
FFNx.slnunder the.builddirectory with Visual Studio Community (sln file is generated by the build process) - Right-click on FFNx solution (under the Solution Explorer) then click on Clang Power Tools -> Export Compilation Database
 - Copy the 
compile_commands.jsongenerated file into the root of the repository - Open Neovim and enjoy!
 
To build from the terminal (example with RelWithDebInfo):
- For dependency use: 
cmake --preset RelWithDebInfo - For building the project: 
cmake --build --preset RelWithDebInfo 
NOTE: Make sure to use the cmake executable that comes from Visual Studio
(e.g. C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe)
- REQUIRED! Install Python
 - Install cmake-format and make sure the binary is available in your PATH environment variable
 - OPTIONAL! Integrate it in your own IDE (eg. for Visual Studio Code use the relative extension)
 
FFNx offers multiple support channels, pick the one you prefer
- Qhimm Forum: http://forums.qhimm.com/index.php?topic=19970.0
 - Tsunamods Forum: https://forum.tsunamods.com/viewtopic.php?p=41#p41
 
- Qhimm FFNx-FF7 (Final Fantasy VII only): https://discord.gg/N6M6pKS
 - Qhimm FFNx-FF8 (Final Fantasy VIII only): https://discord.gg/u6M7DnY
 - Tsunamods FFNx: https://discord.gg/Urq67Uz (remember to hit the Red Chocobo reaction!)
 
This project could have not been a reality if those people would have not worked on FF7 and FF8 with their deep passion and knowledge. FFNx makes use also of their work, and I will never be enough grateful to those people. The order is purely Alphabetical.
These people are:
- Aali:
- for the original Driver code FFNx is based on.
 
 - Chrysalis:
- for the battle fullscreen hext patch
 - for the menu cursor vertical centering in menu
 
 - CosmosXIII
- for the real-time light engine
 - for the real-time camera control in battles
 - for the analogue controls in FF7
 
 - DLPB:
- for original Hext concept and specification that FFNx implemented as well
 - for the field vertical centering hext patch, which FFNx provides a default patch for
 - for the Soft-Reset original concept
 - for the no battle original concept
 
 - dziugo:
- for the original FMV skip concept
 
 - ficedula:
- for 7h 1.x which FFNx provides support for
 
 - Iros:
- for 7h 1.x which FFNx provides support for
 
 - JWP:
- for imgui integration within FFNx
 
 - Kranmer
- for PHS save everywhere Hext patch
 - for the no battle original concept
 
 - Maki:
- for FF8 UV Hext Patch in the world map, which FFNx provides a default patch for
 - for the help in getting the first iterations of FFNx running on FF8 2000/2013 release
 
 - myst6re:
- for the great tools like Makou Reactor, Deling and many others he did which helped a lot in improving FF8 while working on the code
 - for the great help in the code implementing the MINIPSF emulation layer being present inside FFNx
 - for the heavy testing and lifting of a lot of bugs being catched in FFNx, for FF8
 - for the Steam savegame logic in the manifest.xml for FF8
 - for the real-time SFX volume change for FF7
 
 - quantumpencil and Nax:
- for the original CMake files FFNx has based its work upon
 - for all the help in getting some logics wired up in the game engine and a lot of hex addresses I would never been able to figure out myself
 
 - Satsuki:
- for the heavy testing and lifting of a lot of bugs being catched in FFNx, for FF7
 - for the field vertical centering hext patch, which FFNx provides a default patch for
 - for a lot of hex addresses I would have never been able to figure out myself otherwise
 - for the original Speedhack concept and help in getting it natively into FFNx
 
 - Sebanisu:
- for the help in getting the first iterations of FFNx running on FF8 2000/2013 release
 - for the heavy testing and lifting of a lot of bugs being catched in FFNx, for FF8
 
 - sithlord48:
- for the Steam savegame logic in the manifest.xml for FF7
 
 - TurBoss:
- for 7h 1.x source code release and FFNx enablement
 
 - unab0mb:
- for the official integration of FFNx within 7thHeaven 2.3+
 
 - tangtang95
- for the 60FPS support in FF7
 - for the Steam achievements in FF7
 
 - Lord UrQuan
- for finding new and inventive ways to crash our test builds
 - for general documentation clean-up
 
 - LaZar00
- for the Snowboard TMD structures
 
 - ChthonVII
- for the R&D needed to match modern display gamuts to the original PSX release
 
 
I'm sure I forgot many others. In case you feel you're missing here, feel free to open a PR! I'll be happy to include you because you deserve this.
FFNx is released under GPLv3 license. You can get a copy of the license here: COPYING.TXT
If you paid for FFNx, remember to ask for a refund from the person who sold you a copy. Also make sure you get a copy of the source code (if it was provided as binary only).
If the person who gave you this copy refuses to give you the source code, report it here: https://www.gnu.org/licenses/gpl-violation.html
All rights belong to their respective owners.



