A mod for FFVIII Remastered that enables full 360° analog movement, based on FFNx’s Analog 360° patch.
FFVIII Remastered (2019) is a remaster of the PC version with new character models and HD assets.
The Remastered is based on the 2013 PC version, itself a port of the original PlayStation game. The engine still
contains the PlayStation analog movement code, but on PC the function that reads the analog stick always returns -1 ("no
analog controller"), so that code is never used. Instead, the stick is converted into D-pad inputs, which is why
characters can only move in 8 directions, always at full speed.
The Remastered has the same problem, the same code still exists, but it was translated from x86 to C and is now in
FFVIII_EFIGS.dll.
This project is a port of the patch from the 2013 version to the remastered.
| Field Movements | World Map Movement |
|---|---|
Video.Analog.Move.Field.mp4 |
Video.Analog.Move.World.Map.mp4 |
The fix follows the same logic as the 2013 FFNx patch. I hook new functions to the original game analog reading functions for the game engine to handle the analog values.
cmake -B build -A Win32
cmake --build build --config Release- Download
xinput9_1_0.dllfrom the latest release. - Copy it into the game root folder (next to
FFVIII.exe).
Upgrading from 1.x: delete the old dinput8.dll from the game folder.
GOG version: the game folder already contains a xinput9_1_0.dll (GOG.com Input wrapper).
GOG support is planned for 2.1. If you install the mod now, back up the original file first;
replacing it may disable GOG's extra controller support.
- Steam: EN/FR/DE/IT/ES (
FFVIII_EFIGS.dll) and JP (FFVIII_JP.dll) - GOG: works (replaces the GOG.com Input wrapper, see Installation)
- Compatible with MaKiPL's FF8_demaster
The mod reads the analog sticks through XInput (Xbox controllers).
- Xbox controllers: work out of the box.
- PlayStation (PS4/PS5) and other controllers: the game itself still works (buttons, D-pad), but the mod can't read their sticks yet, so you only get the original 8-direction movement.
A temporary solution for PS4 controllers is to use DS4Windows, which emulates an Xbox controller or SteamInput. Native support for PlayStation and other controllers is planned for the next version.
- Create a dll
- Make the game load the real .dll file
- Verify the call sites in FFVIII_EFIGS.dll
- Inject the new analog function for field movements
- Inject the new analog function for world map movements
- Implement the fix for JP version
- Make it compatible with MaKiPL's FF8_demaster
- Check what the GOG custom xinput9_1_0.dll does exaclty (I tested it worked but it may disable some features)
- Fix for the PS4 controllers, the mod isn't working with them
Quentin MOREL:
- @Im-Rises
- https://github.com/Im-Rises
- FFNx by Julian Xhokaxhiu and contributors — this project is a port of FFNx's Analog 360 patch for the 2013 PC version of FINAL FANTASY VIII.
- FFVIII Demastered — another FFVIII Remastered mod, useful reference
- Ghidra — reverse engineering tool used to analyse
FFVIII_EFIGS.dllandFFVIII_JP.dll - x64dbg (x32dbg) — debugger used to inspect the game at runtime
This project is licensed under the GNU General Public License v3.0 — see LICENSE.