Next generation modding platform for Final Fantasy VII and Final Fantasy VIII ( with native Steam 2013 release support! )
FFNx is an attempt to move forward what you were used to know as FF7_OpenGL driver, made by Aali.
FFNx today in a nutshell:
- An easy drag-n-drop installation experience, see How to Install
- It comes by default if you use 7th 2.3 or higher version
- It supports the newest video and audio codecs ( WEBM, H.265, Ogg, etc.)
- It enhances the gameplay experience drastically compared to the vanilla experience
- It supports 4 stable (+ 1 experimental) rendering Backends:
- OpenGL
- DirectX 9 ( Experimental: Not Recommended )
- DirectX 11 ( default )
- DirectX 12
- Vulkan
- /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 will no more loose saves created with FFNx! )
- XInput controller support (Xbox 360 and compatible ones) with D-Pad working out-of-the-box!
- Native speedhack support!
- External music to replace MIDIs support!
- The game will continue to run when not in focus in Window mode
- 60 FPS!
- eStore support! No Game converter required.
- Vertical centering for Fields and Movies
- Fullscreen Battle scenes
- Menu cursor on the middle of words vertical alignment
- Movies will continue to play if the window game loses focus ( in window mode )
- Movies volume will respect 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 will now apply in real-time, instead of you requiring to close and re-open the game.
- Support for animated textures ( like Aerith waterfall, light fading, etc. )
- Support for soft-reset while you're playing, like on the PSX!
- Support for battle toggle ( enable/disable at your own pleasure )
- Voice acting! One of the first mods to make use of this will be Echo-S when it will be released!
- 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! You can now unlock them while playing with 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!
- Voice acting!
- Maki's patch for Worldmap included
- Enable the VRAM debug window while playing in order to see how the engine uploads textures
- Game rendering inspection through RenderDoc!
- DDS Texture support up to BC7 format, with PNG Texture 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 it, FFNx is made with:
- C++ code base
- Latest MSVC available on Visual Studio 2022 Community Edition
- vcpkg ( as dependency manager )
- CMake ( as make files )
- BGFX ( as backend renderer )
- BIMG ( for custom textures )
- FFMpeg with H/W Accelleration support
- VGMStream using FFMpeg as backend (with loop support!)
- tomlplusplus ( for the configuration management )
- StackWalker ( for stack traces in the log file )
- pugixml ( for the Steam XML manifest )
- md5 ( for the Steam XML manifest )
- libpng ( for a better and faster PNG texture support )
- imgui ( to better debug the in-game engine )
- xxhash ( to extract an hash from palette game textures data known as animated textures )
- SoLoud ( as the audio engine used to playback audio, music or voice files )
- openpsf ( as the MINIPSF emulation engine to playback PSX/PS2 music files )
- Steamworks SDK ( used to support Steam achievements for the Steam edition of games )
- mimalloc ( mimalloc is 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 build you can find the output in this path: .build/bin
Please note:
FFNx will now use vcpkg as a package manager to resolve dependencies. Failing to follow these steps will fail your builds.
- Clone the vcpkg project in the root folder of your
C:
drive (git clone https://github.com/Microsoft/vcpkg.git
) - Go inside the
C:\vcpkg
folder and double clickbootstrap-vcpkg.bat
- Open a
cmd
window inC:\vcpkg
and run the following command:vcpkg integrate install
Please note:
By default Visual Studio will pick the x86-Release build configuration, but you can choose any other profile available.
- Download the the latest Visual Studio Community installer
- Run the installer and import this .vsconfig file in the installer to pick the required components to build this project
- Make sure you select the English Language pack in the language list before clicking Install
- Once installed, open this repository as a folder in Visual Studio 2022 and click the build button
- 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 build profile in the status bar
CMake: [Release]
( or one of the aforementioned profiles ) - Click the button on the status bar
Build
- 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
I'm sure I forgot many others through the route. 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, and you can get a copy of the license here: COPYING.txt
If you paid for it, remember to ask for a refund to the person who sold you a copy. Make also sure you get a copy of the source code if you got it as a binary only.
If the person who gave you a copy will refuse to give you the source code, report it here: https://www.gnu.org/licenses/gpl-violation.html
All rights belong to their respective owners.