Author Topic: [FF7PC-98/Steam] FFNx - Next generation driver with native Steam support!  (Read 1735 times)

TrueOdin

  • Moderator
  • *
  • Posts: 10
  • Karma: 5
    • View Profile
FFNx
Next generation driver for Final Fantasy VII and Final Fantasy VIII ( with native Steam 2013 release support! )


Project URL: https://github.com/julianxhokaxhiu/FFNx

Discord Support: https://discord.gg/N6M6pKS

Download URLs: (What is the difference?)

What is FFNx?
FFNx was born from the ashes of Aali driver, with an intention to refresh the Rendering engine and the possibility to extend modding capabilities to original Steam copies without the need of a Game Converter.
Today FFNx not only can offer that also much more. Feel free to read the list below!

What does FFNx offer?
FFNx attempts to be the great living legacy from Aali, by improving memory usage, many gameplay improvements as well as texture rendering, by introducing Triple-A technologies being used across notorious games like The Elder Scrolls V: Skyrim.

Full Multilanguage support!
Do you speak English?
Sprechen Sie deutsch?
Parles-tu Français?
¿Hablas español?
Parli Italiano?
...we got you covered! You can now enjoy all the features you'll read below across ALL RELEASED languages and editions for both FF7 and FF8!

New Rendering engine!
The rendering pipeline has been rewritten from scratch through a well known library that acts as a cross-platform rendering engine named bgfx ( currently used by Minecraft as well ), which allows us to make use of not only OpenGL, but also DirectX 11, DirectX 12 and Vulkan!
On top of this the driver will use up to 16x Anisotropic filtering ( provided your GPU provides this capability ) and up to 16x Anti-aliasing filtering, totally customizable by you.

New Texture format support: welcome DDS!
If you've never heard of it, feel free to read this awesome resource which will introduce you to the topic. If you've heard of it, then I'm pretty sure you'll be as happy as I am. I'm really proud to announce a FULL support for DDS/BCx texture support. This will bring PNG-like visual quality in-game with MUCH LOWER memory consumption, and MUCH better performance. They will load as fast as in-game textures, although they may be in UHD resolution. Enjoy a super-fast gameplay experience in 4K.

New Music engine!
FFNx does also bring a completely refreshed music engine, developed by myst6re, which will allow you not only reproduce the current music mods you're used to, but also completely new one like PSF music files, through a fully fledged Winamp plugin support ( In/Out ). If you want to explore more, feel free to checkout:

New Movie engine!
Movie rendering has also been improved through the update of the FFMpeg stack. You can now reproduce in-game videos using the most up-to-date codecs available in the market ( like MKV with H.265 compression or VP9 ). The rendering stack does also support HDR rendering, allowing you to enjoy a complete and refreshed new experience like never before.

Full compatibility with 7th Heaven 2.x!
Modding support is a top priority, this is why FFNx shines as well on top of this aspect too. Providing Out-of-the-Box support for 7th Heaven 2.x you can enjoy all of these new features today in your current setup. Just make sure you follow the provided installation instructions and you're good to go. If you're interested for an "Ultimate Modding ExperienceTM" using 7th Heaven 2.x and FFNx, feel free to checkout this awesome guide written by OatBran.

Full blown vanilla modding support!
If you're looking instead for a vanilla experience, and you like mod the game your own way, you are covered as well. FFNx does provide a series of features to expand the game beyond infinity and over:
  • Direct Path: this will allow you to override ANY file contained inside the LGP files
  • Override Path: this will allow you to override ANY file contained in the data/ directory
  • Mod Path: this will allow you to override ANY texture in game ( only for FF7...yet! )
  • Hext Path: this will alllow you to load ANY hext patch on top of your game. No external tools or DLLs required!
  • Flexible Movie options: No more AVI! Customize the movie extension up to your preference, in accordance to what you want to play in-game!
  • Flexible Music options: No more OGG! Customize the music extensions up to your preference, in accordance to what you wan to play in-game!

Up to 4GB of RAM!
When using the Aali driver with a lot of mods on top, you most probably suffered some crashes. This will not happen anymore with FFNx.
The driver will use some internal checks to make sure your game never crashes, even if it goes out of memory. This will allow you to save the game at that point, if something goes wrong, unload the problematic Mod and continue your gameplay to where you left.
Not satisfied with this option? We neither :) FFNx will allow you to use up to 3.5GB of RAM space for Mods, by using the 4GB Patch on your ff7.exe file. Remember that this feature works ONLY on Windows 64bit.

DPI Aware!
Got a 4K monitor with Upscaling? No worries, FFNx will handle that easily. No more tinkering with your upscaling settings in order to play the game correctly. Just run and enjoy!

Only for FF7:

New Input engine!
Feeling tired that the game does not support your D-Pad? Please no more! FFNx comes with full XInput support. Plug your controller, start the game and have fun. All the inputs are mapped for you and handled natively, like the original PSX NTSC layout.
Just make sure you use the native input layout: remember to delete ANY ff7input.cfg file present next to your ff7.exe file.

Vertical field centering!
Thanks to the awesome work being done by DLPB, in conjuction with Satsuki, you can now enjoy field centering Out of the box! No more special patches required.

Fullscreen battles!
If you want to play your game in vanilla mode, you can enjoy fullscreen battles without any external mod. Thanks for the great work of Chrysalis in conjuction with Satsuki, you can now enjoy this Out of the Box!

Vertical centering for Hand cursor in Menu!
Feeling hurt that in the PC port the hand was a bit off vertically next to the text? Please no more. Thanks for the great work of Chrysalis you can now enjoy this Out of the Box!

No more stopped Movies on lost focus!
How annoying was that? It happened to me personally a lot of times. Now we got you covered. EVERY movie in-game will not continue to play no matter what. Switch window, reply to a friend, and come back ready to continue playing. Play the game YOUR way.

No more muted Music on lost focus!
Do you enjoy listening to the OST while doing something else at your PC but you were very annoyed by the fact the music was going mute? Please no more. Thanks to the new Music engine developed by myst6re this is a thing of the past. Play the game YOUR way!

Only for FF8:

New Music engine!
You can now override in-game music through the various Packs the community have released. Feel free to checkout http://forums.qhimm.com/index.php?topic=19968.msg278128#msg278128

...and much more to come!
This is just the beginning of our adventure. FFnx aims to do even more great things, but the good news is that the code is FULLY OPENSOURCE, and you can contribute to it if you're willing to. Feel free to look at the Open Issues!

Thank you!
There's a HUGE list of people to be grateful to for their amazing work. Starting from Aali who made this possible, without his code release FFNx would have never been a reality, but also to A LOT of other people here on Qhimm. Feel free to checkout this list: https://github.com/julianxhokaxhiu/FFNx#credits

From the deep of my heart, THANK YOU!
« Last Edit: 2020-05-22 12:29:33 by TrueOdin »

TrueOdin

  • Moderator
  • *
  • Posts: 10
  • Karma: 5
    • View Profile
FAQ

My battles are slow after 1.7 release. What should I do?
TL-DR; If you're using the 60fps Mod for battles you may want to disable it.

Battles in FF7 are coded internally in 15 FPS, which means that all character animation frames are draw in 15 frames, and you actually miss 45 ones in a whole round of 60 fps. Long story short, this creates some unwilling effects not thought by the engine that may bring other severe issues in the game. The mods that claim to introduce 60 FPS in Battles were patching an internal "flag" in the game to allow that happening, although it was always wrong. The Engine has no knowledge on how to draw it at 60 FPS, because the models, animations and spell effects are not coded for that.

If you're interested in real 60 FPS battles, you may want to check out the SisterRay project instead. It will take some time though until it's done, but when it will, you will be able to have full REAL 60 FPS in battle, with no side effects. Until then you may want to live with the fact that the game needs 15 FPS for good reasons.

Issues that you may encounter on FFNx can be fixed sometimes with external tools
Sometimes in the game you may face some weird behaviors that are not directly related to FFNx. You can easily verify them by running the game using the native Direct3D renderer. Although we can't fix them directly in the driver code, YOU CAN fix them through the usage of external tools!

Feel free to check https://github.com/julianxhokaxhiu/FFNx/issues?q=label%3Aexternal-fix+is%3Aclosed as a database of already known solved issues.

Please DO CHECK this list before approaching us on Discord. Thank you!
« Last Edit: 2020-05-22 12:32:50 by TrueOdin »

OatBran

  • Fast newbie
  • *
  • Posts: 39
  • Karma: 9
  • moop all day skeent all night
    • View Profile
    • Discord
Finally this has its own thread here!  ;D

This is truly an amazing piece of free software made by someone with so much passion and respect for this community. Thanks for all you do Odin you are a true legend

(thanks for the shout out and link to the guide in the op too Odin  :-D )

-Ric-

  • Insane poster
  • *
  • Posts: 312
  • Karma: -4
  • .
    • View Profile
Well here's something that might make me put aside the PS4 and Switch versions and actually have interest in the steam version again.

Thanks for all the work!

Aali

  • No life
  • *
  • Posts: 1198
  • Karma: 117
    • View Profile
Cool! Glad to see this is coming along :)

TrueOdin

  • Moderator
  • *
  • Posts: 10
  • Karma: 5
    • View Profile
Cool! Glad to see this is coming along :)

This is truly unexpected, I'm super happy to see you around! If you want to I'll be super happy to have a chance talking to you. There are a TON of questions I'd have ( but not only me ).

In case you hop on Discord, PLEASE remember to say Hi!

Thank you again for all the great work you've done. That's truly amazing achievement. I hope FFNx will be your living legacy!

Zera

  • Newbie
  • *
  • Posts: 4
  • Karma: 1
    • View Profile
This sounds exciting. I'll be looking forward to texture replacing support for FFVIII. This doesn't look like it has the world map quality reducing bug, so it would be a much better alternative to native Steam with Tonberry.


Salk

  • Freak
  • *
  • Posts: 511
  • Karma: 14
    • View Profile
Congratulations and thanks for creating FFNx!

TrueOdin

  • Moderator
  • *
  • Posts: 10
  • Karma: 5
    • View Profile
To everyone writing here, THANK YOU from the deep of my heart. For using this software, for contributing on it and for making it better and better with your issues :)

Feel free to report anything that may not work on Discord! I'll be happy to support directly as much as I can.

DLPB

  • No life
  • *
  • Posts: 10610
  • Karma: 241
  • The ascension of the ordinary man
    • View Profile
I haven't checked your source in last week, so forgive me if you've already plugged this one -  some FMVs are full 1280 * 960 AR  as opposed to 1280 * 896.

My code works as follows to make sure centring is turned off for those ones >

Code: [Select]
// draw a full_screen quad, respect aspect ratio of source image
void gl_draw_movie_quad_common(int movie_width, int movie_height)
{
float x1 = 0.0f;
float x2 = (float)width;
float y1;
float AR = (float)movie_height / (float)movie_width;
   
    if (Centred_Field && AR != 0.75f ) // DLPB
y1 = 16.0f;
else
y1 = 0.0f;

float y2 = y1 + min( (float)width * ( (float)movie_height ) / (float)movie_width, (float)height);


0.75 is safe for floating point in these cases.

Congrats on the release.
« Last Edit: 2020-05-18 17:23:01 by DLPB »

TrueOdin

  • Moderator
  • *
  • Posts: 10
  • Karma: 5
    • View Profile
I haven't checked your source in last week, so forgive me if you've already plugged this one -  some FMVs are full 1280 * 960 AR  as opposed to 1280 * 896.

My code works as follows to make sure centring is turned off for those ones >

Code: [Select]
// draw a full_screen quad, respect aspect ratio of source image
void gl_draw_movie_quad_common(int movie_width, int movie_height)
{
float x1 = 0.0f;
float x2 = (float)width;
float y1;
float AR = (float)movie_height / (float)movie_width;
   
    if (Centred_Field && AR != 0.75f ) // DLPB
y1 = 16.0f;
else
y1 = 0.0f;

float y2 = y1 + min( (float)width * ( (float)movie_height ) / (float)movie_width, (float)height);


0.75 is safe for floating point in these cases.

Congrats on the release.

Hey there!

Thank you very much for the tip. Actually that was implemented a while ago, you may want to checkout the latest master branch :D Guess you missed a lot of things then!

Feel free to see https://github.com/julianxhokaxhiu/FFNx/blob/master/src/gl/gl.cpp#L48

Let me know if you need any help in case :)

Cheers!

DLPB

  • No life
  • *
  • Posts: 10610
  • Karma: 241
  • The ascension of the ordinary man
    • View Profile
Ah, good stuff.   In that case, there's nothing I can really add to this.

Clearly the texture loading issues and memory problems and unloading issues have also been resolved.  I'll need to devote a lot of time to merging this with The Reunion. Did you also manage to stop delays happening with texture loading?  [I really should play your latest build - just a tad busy]

If you need what I have on 60fps battles, I'll supply you it.  At this point, I think you may be the only one who can resolve the graphical issues that remain - NFITC1 is still needed for camera side - but I am more than happy to transfer 60fps battles to this DLL and away from ddraw.dll as a good will gesture.  If I merge Reunion with this, I'll remove it from my own dll.  If not, I'll just have my own version and work with you adding it to this. 

Both modes work well but if we collaborate on this we may finally get the remaining bugs ironed out. 

TrueOdin

  • Moderator
  • *
  • Posts: 10
  • Karma: 5
    • View Profile
Ah, good stuff.   In that case, there's nothing I can really add to this.

Clearly the texture loading issues and memory problems and unloading issues have also been resolved.  I'll need to devote a lot of time to merging this with The Reunion. Did you also manage to stop delays happening with texture loading?  [I really should play your latest build - just a tad busy]

If you need what I have on 60fps battles, I'll supply you it.  At this point, I think you may be the only one who can resolve the graphical issues that remain - NFITC1 is still needed for camera side - but I am more than happy to transfer 60fps battles to this DLL and away from ddraw.dll as a good will gesture.  If I merge Reunion with this, I'll remove it from my own dll.  If not, I'll just have my own version and work with you adding it to this. 

Both modes work well but if we collaborate on this we may finally get the remaining bugs ironed out.

Texture loading delays were caused by too big PNG textures. If you switch to DDS they will work like native ( usually Instant in most environments ) but upscaled in 4K :) You can ask Satsuki about this, he is kind the expert of this topic now.

Related to the 60FPS mod I'll be happy to merge what you did, of course giving you credit for that! If you're fine with it, once we implement that too, you could ideally use the releases I do just out of the box!

Related to "NFITC1 is still needed for camera side" I don't really get where or what the issue is, but I'll be happy to talk about it. If there's something to be fixed, I'm totally into :)

Let me know how you want to take it up from this point.

Cheers!

Zara9

  • Freak
  • *
  • Posts: 547
  • Karma: -4
    • View Profile
is anyone else having slow down problem by using this FFNX program on the ff7 pc steam version at all

Zara9

  • Freak
  • *
  • Posts: 547
  • Karma: -4
    • View Profile
why does this plugin does not want to work for me at all

cencen36760

  • Fast newbie
  • *
  • Posts: 10
  • Karma: 0
    • View Profile
Many years I was waiting.
Thank you. Thank you. And thank you. (I am Japanese)
« Last Edit: 2020-05-21 03:03:50 by cencen36760 »

Salk

  • Freak
  • *
  • Posts: 511
  • Karma: 14
    • View Profile
Hello TrueOdin! (Ciao)

I was wondering if FFNx could do something about the one issue that is spoiling the transition from the original backgrounds to the upscaled ones. Apparently due to engine limitations, background animations do not work anymore (http://forums.qhimm.com/index.php?topic=19204.msg278333#msg278333).

Thanks again for all the hard work!

Zara9

  • Freak
  • *
  • Posts: 547
  • Karma: -4
    • View Profile
I love this ff7 game alot

its my childhood game of all time and i really like this plugin alot also

and i am just wondering why it goes slow for me and wondering how you guys fix it yourself

satsuki

  • Insane poster
  • *
  • Posts: 496
  • Karma: 70
    • View Profile
    • My softs (french only)
Hello TrueOdin! (Ciao)

I was wondering if FFNx could do something about the one issue that is spoiling the transition from the original backgrounds to the upscaled ones. Apparently due to engine limitations, background animations do not work anymore (http://forums.qhimm.com/index.php?topic=19204.msg278333#msg278333).

Thanks again for all the hard work!
Not ATM but one day it will (i hope) and it'll probably need some files to be done from scratch.... i'll adapt my mods then ^^

Zara9

  • Freak
  • *
  • Posts: 547
  • Karma: -4
    • View Profile
keep up the great work on this mod
« Last Edit: 2020-05-21 11:06:12 by Zara9 »

TrueOdin

  • Moderator
  • *
  • Posts: 10
  • Karma: 5
    • View Profile
I love this ff7 game alot

its my childhood game of all time and i really like this plugin alot also

and i am just wondering why it goes slow for me and wondering how you guys fix it yourself

Hi Zara9,

Feel free to approach me on Discord and I'll be happy to check your configuration. Another used had the same issue with an AMD RX 590 and all we had to do in the end was update the driver to the latest AND a factory reset in the AMD Control Panel. Personally I always suggest to start with the default FFNx.cfg file and then try tweaking until you find your perfect spot :)

Let me know and thanks for using FFNx.

Cheers!