Skip to content

About

A mod for FFVIII Remastered that enables full 360° analog movement, based on FFNx’s Analog 360° patch.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Repository files navigation

FF8R-Analog360

A mod for FFVIII Remastered that enables full 360° analog movement, based on FFNx’s Analog 360° patch.

Build Release

Context

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.

Video

Field Movements World Map Movement
Video.Analog.Move.Field.mp4
Video.Analog.Move.World.Map.mp4

The fix

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.

How to build

cmake -B build -A Win32
cmake --build build --config Release

Installation

  1. Download xinput9_1_0.dll from the latest release.
  2. 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.

Compatibility

  • 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

Controllers supported

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.

Roadmap

  • 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

Contributors

Quentin MOREL:

GitHub contributors

Credits

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

Documentation

  • FFVIII Demastered — another FFVIII Remastered mod, useful reference
  • Ghidra — reverse engineering tool used to analyse FFVIII_EFIGS.dll and FFVIII_JP.dll
  • x64dbg (x32dbg) — debugger used to inspect the game at runtime

License

This project is licensed under the GNU General Public License v3.0 — see LICENSE.

About

A mod for FFVIII Remastered that enables full 360° analog movement, based on FFNx’s Analog 360° patch.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages