Graphics Enhancement Guide

From FFXI Wiki



Introduction

This guide was created by User:Sitara, and will give you an overview of most common tools and tweaks available to enhance the FPS and visual quality of your game. This is especially useful if you're playing on a more recent notebook featuring switchable (Hybrid) Graphics or just any recent PC build really.

I will go over basic settings tweaks the game client supports out of the box as well as tools to circumvent the DirectX8 lock-down, enhance your FPS as well as using HD texture mods.

This guide contains a lot of dry technical topics - if you want a quick start and discover the rest later head to Quick Start

disclaimer: parts of this guides structure and the Vanilla sections introduction were re-used from Make FFXI Great Again

A note on paths used

If this guide talks about your Game Directory this means one of three places:

For installs Pre-2019 FFXI installer update

If you're using Vanilla FFXI without Ashita or Windower
C:\Program Files\FINAL FANTASY XI\ (32bit Windows)
C:\Program Files (x86)\FINAL FANTASY XI\ (64bit Windows)
If you're using Ashita or Windower on Retail
C:\Program Files\PlayOnlineViewer\ (32bit Windows)
C:\Program Files (x86)\PlayOnlineViewer\ (64bit Windows)


For installs Post-2019 FFXI installer update

If you're using Vanilla FFXI without Ashita or Windower (2019+ installed directory structure)
C:\Program Files\PlayOnline\SquareEnix\FINAL FANTASY XI\ (32bit Windows)
C:\Program Files (x86)\PlayOnline\SquareEnix\FINAL FANTASY XI\ (64bit Windows)
If you're using Ashita or Windower on Retail (2019+ installed directory structure)
C:\Program Files\PlayOnline\SquareEnix\PlayOnlineViewer\ (32bit Windows)
C:\Program Files (x86)\PlayOnline\SquareEnix\PlayOnlineViewer\ (64bit Windows)


If you're playing on a private server with Ashita
<Ashita dir>\ffxi-bootmod\ (Ashita v3)
<Ashita dir>\bootloader\ (Ashita v4)


This distinction is important as both of the common launchers require certain files to be placed next to pol.exe to work.

Vanilla

Plain FFXI a.k.a. Vanilla is very CPU bound due to being developed for the PS2 first then ported to the PC. You can have a 1080TI and will only see 5%~ GPU usage while you new core I7 will see 90%+ usage on one core. That's right FFXI is so old all it can only utilise one CPU core.

This situation got worse with the advent of Hybrid Graphics in modern PCs and Notebooks e.g. a dedicated ATI/nVidia/Tegra GPU as well as integrated graphics on your CPU (Intel IGP/GMA/HDGraphics etc. as well as ATI APUs). On systems with this configuration Windows will force any application and game that uses DirectX8 or lower to run exclusively on the integrated graphics.

As of Windows8 things got worse for old DirectX8 games since DX8 is no longer hardware accelerated even on Desktop GPUs because it doesn't conform to Micrsofts current driver model for hardware acceleration anymore (and ofc. wont ever be updated to do so).

For FFXI this results in slow and very inconsistent rendering that can range anywhere between 10-30 FPS. If you care more about silent fans than smooth graphics the game is still playable that way - but honestly, who does?

In-Game Settings

As the name suggests, this section lists all the settings that can be done using the vanilla FFXI client.

For most of these settings Windower and Ashita provide finer control.

Mip-Maps

Mip-Maps are a method to reduce Anti Aliasing for textures at a distance. For each normal sized texture a number of smaller versions are pre-generated and stored in VRAM to be used if an object reaches a certain viewer distance. These smaller textures reduce the sampling overhead and result in a smoother look for objects far away.

pros conts
Check.gif smoother textures at distance Eks.gif needs more VRAM
Check.gif reduces strain on the GPU

Vanilla FFXI

Mip-Maps can be enabled in the vanilla FFXI client by opening FFXI-Install\ToolsEU\FINAL FANTASTY CONFIG.exe and checking Enable Mip Mapping.

(If you're using the US client use the ToolsUS directory instead)

Windower

Windower allows for a finer control over the level of Mip-Maps:

  • select your game profile
  • click edit button to open the configuration screen
  • under Game use the Mip Mapping slider to select the desired level of Mip-Mapping
  • click back button

If your GPU can take it, move the slider to at least half way between None and High.

Ashita

Ashita allows for a finer control over the level of Mip-Maps:

  • select your game profile
  • click edit button to open the configuration screen
  • select game section
  • in the Mip Mapping dropdown select the desired level of Mip-Mapping
  • click save button

If your GPU can take it, use a setting of 3 or higher.

Bump-Maps

Bump-Mapping is a technique that adds more details to objects without the need for more complexity in the models. Bump-Maps are also referred to as "height maps" because essentially that's what they do - they provide information about dents and bumps on a surface and allow the graphics card to provide a more realistic representation of an object that way.

Bump-Maps can be enabled in the vanilla FFXI client by opening FFXI-Install\ToolsEU\FINAL FANTASY CONFIG.exe and checking Enable Bump Mapping on the Effects tab.

(If you're using the US client use the ToolsUS directory instead)

Texture Compression

TODO

Super Sampling

Super Sampling is a form Anti Aliasing - e.g. removing jagged edges and steps from a picture. In Super Sampling this is achieved by rendering every frame at a much higher resolution than the final output and then scaling it back down to be shown on screen. This has the side effect of slightly blurring the image but does a nice job in removing jagged edges.

FFXI's support for Super Sampling is not "the real thing" but rather based on different background and window resolutions and comes at a decent to high performance impact, so please consider if it's worth the gain in image quality and if your hardware can really take it.

pros cons
Check.gif smoother image Eks.gif needs a lot more VRAM
Check.gif should work on any GPU Eks.gif computationally intensive

Vanilla FFXI

- not supported -

Windower

Windower has a dedicated toggle to enable Super Sampling:

  • select your game profile
  • click edit button to open the configuration screen
  • under Game set the Super Sampling toggle to On.
  • click back button

Ashita

Ashita allows to manually specify the resolution used for Super Sampling:

  • select your game profile
  • click edit button to open the configuration screen
  • select window section
  • in the Background Size input boxes enter "2048" x "2048" or "4096" x "4096"
  • click save button


Note: Background Size needs to be higher than your Window Size but can't exceed 4096x4096.

Note: Background Size is recommended to be a square, power of 2 resolution (1024, 2048, 4096, ...)


FPS Enhancements

In this section contains the major points to enhance your FPS outside of the settings the game client provides. This includes means to get around the DirectX8 performance issues as well as modifying the FPS divisor to change the max FPS allowed.

DirectX8 Proxies

So what's a DirectX proxy?

In short it's a means to make FFXI use a newer version of DirectX even if it naively only supports DX8. All available proxies make use of how Windows loads shared libraries (DLLs) to "pretend" to be the real DirectX8 libraries. Once loaded however they will translate everything to a newer DirectX API. The result is that FFXI is now transparently using a newer DirectX version and Windows will allow it to make use of the full capabilities of your (dedicated) graphics card.

Why would I use one?

Fair question with two very simple answers: If you read this today then you're likely to run Windows8, Windows10 or whatever is the out there currently. None of these actually support DirectX8 with hardware acceleration and basically emulating the whole thing mainly on your CPU. The second argument is if you're a user of switchable / hybrid graphics and have more than one GPU in your system (Notebook users mostly); in order to be able to force XI to run on your dedicated GPU you will have to run on it on DirectX9 or newer.

Currently there is three are at least three viable proxies around and I will go over them one by one.

Which proxy you pick is up to you, they all work equally well for getting FFXI to use DirectX9 or newer.

Proxy Overview
Project Purpose target DirectX API Configuration Maintained
dgVoodoo2 translation for DirectX and Glide for old Games DX12 GUI + .ini Check.gif (closed source)
atom0s dx8to9 1:1 DirectX translation with FFXI specific tweaks DX9 .ini file Check.gif (closed source)
ReShade d3d8to9 1:1 DirectX translation to allow to use ReShade DX9 none Check.gif (open source on GitHub)

dgVoodoo2

dgVoodoo2 is probably the most popular project and well known project. It was created as a graphics wrapper for legacy games and supports DirectX 1-8, Direct3D 8.1 as well as games using Glide (2.11, 2.45, 3.1 and 3.1 Napalm). It comes with a GUI settings application and allows to configure almost all parameters that will be reported to the application you're going to run with it.

pros cons
Check.gif extremely flexible Eks.gif configuration can be overwhelming
Check.gif allows the use of the most recent DirectX 12 API Eks.gif it does a lot more than you probably ever need
Check.gif provides support to alt-tab out of native fullscreen even in FFXI Eks.gif not tailored to FFXI


Installation

  • download the latest release from dgVoodoo2 (currently dgVoodoo v2.79.1)
  • unpack the archive to a directory of your liking
  • copy the D3D8.dll from the MS/ subdirectory to your Game Directory
  • if your on a 64bit Windows:
    • download the D3DCompiler_47
    • unpack D3DComplier_47.zip and copy the d3dcompiler_47.dll to C:\Windows\SysWOW64
    • don't overwrite the dll if it already exists
  • if your on a 32bit Windows:
    • download the D3DCompiler_43
    • unpack D3DComplier_43.zip and copy the d3dcompiler_43.dll to C:\Windows\system32
    • don't overwrite the dll if it already exists


Configuration

  • navigate to the folder that you extracted dgvoodoo to
  • right click dgVoodooCpl.exe and select run as administrator
  • under Config folder / Running instance
    • click Add and chose your Game Directory
  • under General
    • chose Windowed under Appearance
    • uncheck Capture Mouse
    • [optional] pick your graphics card in Adapter(s) to use / enable (don't do this if you're on a Notebook)
  • under DirectX
    • set VRAM to at least 1024 (512 if you want to multibox)[1]
    • uncheck dgVoodoo Watermark
    • check fast video memory access[2]
    • [optional steps instead of using Super Sampling, requires dgVoodoo2 2.54 or better]:
      • pick Force anisotropic 4x or higher for Filtering in the texture section
      • pick 4x or higher in the Antialiasing (MSAA) section
      • make sure you disable Super Sampling
  • finally click Apply

atom0s dx8to9

This proxy was originally created to work hand in hand with the Ashita launcher but was later deemed stable and now works with Vanilla and Windower too. It's a plain translation from DirectX8 to DirectX9 and includes the option to tweak different parameters as well as includes a few FFXI specific workarounds.

It's author atom0s states it as mostly a personal project, suited for use by everyone but untested on AMD hardware[1].

pros cons
Check.gif tailored for use with FFXI Eks.gif configuration requires meddling with an .ini-File
Check.gif includes FFXI specific tweaks Eks.gif DirectX translation is limited to DirectX9
Check.gif the configuration file is well documented Eks.gif not tested on AMD graphics


Installation

  • download the latest release from the Ashita forums (currently v1.1.0.0)
  • extract the 7z archive
  • copy d3d8.dll and d3d8.ini to your Game Directory


Configuration

Most of the available options are well documented but should only be tinkered with if you know what you're doing. For the basic configuration:

  • open d3d8.ini
  • find the section named [Use_Direct3D8Proxy]
  • cange the first setting to read enabled = 1


ReShade d3d8to9

This proxy is part of the ReShade project and as basic as it gets. It's a plain translation from DX8 to DX9 with the sole purpose of enabling the use of ReShade with older games. As a side-effect though it also works for what we're trying to achieve even if you don't plan to use ReShade.

pros cons
Check.gif actively maintained and open source Eks.gif DirectX translation is limited to DirectX9
Check.gif no configuration needed Eks.gif not tailored to FFXI


Installation

  • download the latest release from the project's GitHub
  • copy the d3d8.dll into your Game Directory


Configuration

There's none, really - just copy the .dll and you're good to go.

FPS divisor

The framerate divisor (or FPS divisor) controls the max framerate the game is allowed to use. As a result of the cross platform history of FFXI the default is 30fps on all platforms and the only way to get around that is by using a launcher like Windower or Ashita.

This guide won't go over how to setup either of the launchers to your needs but for the most basic setup both are simply download and launch applications.

Changing the FPS divisor in Windower 4

This requires installation of the Config plugin from Windower's Plugins tab. Once installed:

  • head to Windower_path\plugins\settings\ and edit config.xml
  • find the line that reads <FrameRateDivisor>2</FrameRateDivisor>
  • change to the desired FPS divisor
  • save your changes


Changing the FPS divisor in Ashita

  • head to Ashita_path\scrits\ and edit Default.txt[3]
  • add the line /fps N at the end if the file (change N to your desired FPS divisor)
  • save your changes

With Ashita you also have the option of using /fps N from inside the game by typing into the chat log.


Common FPS divisor values
divisor setting max FPS
0 unlimited[4]
1 60
2 30


Drawbacks

Since FFXI was developed to run natively at 30fps using anything above can sometimes have weird side-effects on character and environment animations manifesting as either slow-motion or super fast animations. Neither is harmful but both can be somewhat annoying at times.

Keeping your FPS to a multiple of 30 can help to reduce these issues.

Visual Enhancements

ReShade

DAT Files (ROM Mods for better textures/models)

Over the years the XI player base has developed a large number of ROM Mods to alter the appearance of the game client.
Mods range from simple model swaps to disabling or exchanging visual effects all the way to overhauling the game with HD textures and high quality models.
FFXIAH recently added a dedicated section to make it easy to search and offer ROM Mods - it can be found here: FFXIAH: DAT Modding
There are a lot more resources available online which can be found by a simple search for FFXI DAT mods.

Since FFXI was not designed to support mods in the vanilla client the normal way to install them is to first backup and then replace the ROM files stored in the Games ROM* directories. This comes with a few downsides though as it can break your installation if you mess up your backup. Mods will also have to be reinstalled after Game updates if the respective files were replaced again. Currently there exists two plugins to circumvent this issue by allowing to load Mods from a separate directory these are dats for Ashita and XIPivot for both Ashita and Windower.

Using and managing Mods with XIPivot

XIPivot is an optional plugin for Ashita and Windower v4. It's main goal is to provide an easy an intuitive way to manage and activate Mods in FFXI without touching the original installation.

pros cons
Check.gif no modification of the original game files (you can't break your installation) Eks.gif a little more setup overhead than just "copy, paste & replace"
Check.gif support to enable/disable certain mods on the fly
Check.gif comfortable in-game UI (Ashita only)


XIPivot on Ashita

Installation

The latest version of XIPivot can always be installed from the plugins list in Ashita and will be updated automatically.

  • start Ashita
  • click the plugins button to bring up the plugin list
  • scroll all the way to the bottom and find XIPivot
  • click the install arrow to install XIPivot


Configuration

  • Create a subdirectory inside the DATs/ folder for each overlay you want to use
  • Add /load xipivot as the first line to your Default.txt or respective setup script (before any /wait or other lines)
  • Start FFXI and once logged in type the command /pivot to open the in-game configuration UI
  • Click the plus-button next to each addon you want to enable, in the order you want them to be loaded
  • Once done, close the UI and restart FFXI


Example - XI-View, XI-Vision:

Directory structure:

  [Ashita Install]
  +-- config/
  |    +-- XIPivot.xml
  |
  +-- plugins/
       +-- XIPivot.dll
       +-- DATs/
            +-- README.txt
            +-- XI-View/
            |    +-- ROM/
            |
            +-- XI-Vision/
                 +-- ROM/
                 +-- ROM2/
                 +-- ROM3/
                 +-- ROM4/
                 +-- ROM4/

generated XIPivot.xml:

<?xml version="1.0" encoding="UTF-8"?>
<settings>
    <setting name="overlays">XI-Vision,XI-View</setting>
</settings>

XIPivot defaults to look for your overlays inside the DATs/ directory next to the XIPivot.dll.
If you prefer a different path you can add the key 'root_path' to XIPivot.xml like so:

<?xml version="1.0" encoding="UTF-8"?>
<settings>
    <setting name="root_path">C:/my/awesome/addons</setting>
    <setting name="overlays">XI-Vision,XI-View,FFXI-HD</setting>
</settings>


This instructs to XIPivot to search for overlays inside "C:\my\awesome\addons" instead.
(If you're unsure don't set this parameter and things should just work).


XIPivot on Windower

Installation

  • head over to the Releases page and pick the ZIP that matches your launcher (Windower v4 in this case)
  • unzip the archive
  • copy the XIPivot folder into your Windower's addons folder.


Configuration

  • open the XIPivot folder
  • create a subdirectory inside the data/DATs folder for each overlay you want to use
  • edit data/settings.xml (see settings.sample.xml for a template)
  • add the directory names from the 2nd step for each overlay that should be enabled, separated by ,
  • order matters - overlays will be used in order, with the first hit for a file being used


Example - For XI-View and XI-Vision:

Directory structure:

 [Windower Install]
  +-- addons/
       +-- XIPivot/
            +-- XIPivot.lua
            +-- README.md
            +-- libs/
            |    +-- _XIPivot.dll
            |
            +-- data/
                 +-- DATs/
                 |   +-- README.txt
                 |   +-- XI-View/
                 |   |    +-- ROM/
                 |   |
                 |   +-- XI-Vision/
                 |   |    +-- ROM/
                 |   |    +-- ROM2/
                 |   |    +-- ROM3/
                 |   |    +-- ROM4/
                 |   |    +-- ROM4/
                 +-- settings.xml 


settings.xml:

   <?xml version="1.1" ?>
   <settings>
     <global>
       <overlays>XI-View,XI-Vision</overlays>
     </global>
   </settings>


Windower Limitations

As a result of how Windower loads this addon some DAT files will already be loaded before any redirects can happen.


?? ==Project Mercury==

?? ==Others==

TL;DR Quick start

This section aims at providing a quick-entry that hopefully gives you a stable FPS but won't produce any graphical miracles.

  1. grab the ReShade d3d8to9 proxy
  2. place d3d8.dll into your Game Directory
  3. download Windower 4 and place Windower.exe somewhere you want to keep it
  4. launch Windower.exe
  5. select Default Profile and click the Edit button (small pencil icon in the bottom row)
  6. on the Window tab:
    • Region: Auto-detect
    • Window Mode: Borderless Window
    • Resolution: <your preferred resolution>
  7. on the Game tab:
    • Super Sampling: off
    • Mip Mapping: 3 or 4 (half way between None and High)
  8. Click the back arrow icon at the top to save your settings and return
  9. Click the right arrow icon at the bottom of the Windower window to launch the game

If you're having trouble with performance try to lower Mip Mapping

TL;WR - give me a video

And in case you prefer audio visual content there's a guide on YouTube explaining a lot of what this guide tried to convey:

  1. VRAM can be set to arbitrary values by selecting the text inside the combo box and then typing
  2. This may cause issues with screenshots
  3. This may be different if you set another script in your Ashita config
  4. Only supported for Windower