Skip to content

Releases

HiFi XI v0.67

Choose a tag to compare

@relliko relliko released this 03 Nov 23:53

HiFi XI 0.67

Since 0.65. Install the whole zip: this hifixi.dll works only with the d3d8.dll that comes with it (an older d3d8.dll is refused and HiFi XI's own drawing stays off until it's replaced).

New

  • Optional texture pack. HiFi XI can draw scenery and characters from a texture pack kept on the graphics card: sharper ground, walls, ships, furniture, gear, NPCs and monsters, while the game's own memory stays as small as without it. The menu shows it only when a pack is on the PC (bootloader\hifixi-pack); without one nothing changes. HiFi XI doesn't come with a pack: make one on your own PC from your own game's files with hifixi-enhanced-textures, or put one you already have in bootloader\hifixi-pack. See the README's Texture pack section for turning it on, off and removing it.
    • Characters switch to the pack's textures at once; scenery, ships and furniture a moment after you enter an area, so zoning is exactly as before.
    • Anything the pack doesn't have is drawn as the game's own; /hifi textures compare shows the game's own again to compare.
    • A pack copied from another PC: if it's damaged, copied only in part or made for another HiFi XI, the menu says what's wrong and the game's own textures are drawn. One made from another version of the game's files still works for every texture the game hasn't changed.
    • When the graphics card is nearly full, the pack holds back first: new textures come without their sharpest level, then characters' pack textures go back to the game's own until there's room again.
    • After a graphics-card stop, the next session starts with the pack paused (/hifi textures on uses it anyway).
    • With FSR upscaling, the pack's textures are sampled for the screen's size rather than the background's, so they stay sharp.
  • Sun and moon fade at the horizon. At 6:00 and 18:00 the game swapped the moon for the sun in about half a second, and whole zones (Giddeus most of all) changed colour at once. The light now fades out and back in over about 20 Vana'diel minutes.
  • Zone textures from XIPivot overlays. HiFi XI's own zone drawing now honours texture overlays installed through XIPivot, with sharper filtering of the ground at a slant.

Fixed

  • Settled snow and wet ground no longer vanish and come back whole after a stutter. A one-second hitch while it snowed made the whole snow layer reappear at once; it now stays as it was through gaps of up to 10 seconds.
  • No grass from the last zone in the new one. World FX is told the zone directly and draws nothing until it has read the new zone's files.
  • GPU objects let go only once the GPU is done with them, behind a fence rather than after a guessed number of frames: zone data, model actors, character meshes and textures, effect uploads.
  • World FX's built-in shaders are compiled in the background at the first start after an update: the world draws without its extras for those seconds instead of the game freezing for them. HiFi XI's other shaders (zone, characters, effects, upscaling) are still compiled once after each update, a pause of about two seconds at that first start.
  • World FX no longer holds its lock while it records its drawing, which removes the shape of the freezes seen with Direct3D's debug layer.

Changed

  • HiFi XI hooks nothing of Direct3D 12 any more. Everything it draws goes in at the marks its own d3d8.dll places in the frame: the device and queue, the world's targets and their states, the fog colour and the place for FSR all come from there. Fewer moving parts, and no more following whichever queue submitted last. Started late (without the starter dxgi.dll), HiFi XI now still draws everything, only without GPU crash reports or frame generation.
  • The frame rate's speed-ups are out of the menu. With the zone and characters drawn by HiFi XI the game sends about 115 draws a frame, so batch, dedupe and the Ashita and occlusion speed-ups had nothing left to save; /hifi status still reports them, and anyone who turned one on in 0.65 has it turned off once.
  • Memory and video memory are logged per zone, and HiFi XI's log says what the texture pack is doing at start, per zone, and when something about a pack is wrong.
  • Character textures are decoded in smaller batches, an oversized texture alone, and detail maps made only while Character detail maps is on, so a crowd doesn't spike the game's memory. A model whose texture can't be read is left to the game rather than drawn without it.
  • Slow presents (over 200 ms on the game's thread) are logged step by step, to find the cause of rare stutters.
  • Crash and hang reports also say what the texture streamer was doing.

Every change since 0.65

For the record, the 27 commits since 0.65, then this release's own work:

  • f48a070 The frame rate's speed-ups out of the menu.
  • 8cc6855 Sun and moon faded about the horizon.
  • a4fe822 Settled snow and wet ground kept through a hitch; slow presents logged step by step.
  • 307ff12 Every offline test suite from one runner; the old end-to-end test retired.
  • 6d321d5 The zone told to World FX directly; GPU objects let go behind a fence.
  • 84222e3 Direct3D 12 reference pages for the developers (docs/d3d12).
  • f7bc9ca The d3d8.dll hands over its device, queue and the world's states at every mark (channel 2).
  • 384eaab rtprobe: a research probe of ray tracing from a 64-bit helper (not in the plugin).
  • 1cea43a World FX's core pinned by a test before its rewrite.
  • 735b493 World FX follows no Direct3D 12 stream: the world, its states and the fog come with the marks (channel 3).
  • e4c2f9c World FX records without its lock.
  • a7c032a World FX's built-in shaders compiled off the game's thread.
  • 81ea82a FSR placed by the d3d8.dll's resolve mark (channel 4).
  • 9b04ee8 No Direct3D 12 hooks: everything at the d3d8.dll's marks.
  • 120cb36 Zone textures from XIPivot's overlays, drawn with their own mips.
  • 3d3df70 zone_view: buffers for offline mock-ups (developers' tool only).
  • 8273115 The texture pack's plan.
  • 6de1bcb Texture pack M0: the key is the original texture's own bytes.
  • d8cb795 Texture pack M1: the game's memory measured, the character cache hardened.
  • cc6ff2f Texture pack M2: the pack format, its reader and writer, the pack maker.
  • d0af060, 8818a7d The plan: the first real pack convert recorded.
  • 7e5879d Texture pack M3: the streamer.
  • 32e90fe Texture pack M4: zones and model actors from the pack (0.66).
  • 77e1b65 Texture pack M5: characters from the pack (0.67).
  • 6b9e8ab, d5e592a Merges of the work above.
  • (M6, this release) The pack's log lines, packs copied from another PC made safe and said in the menu, the README's texture pack and uninstall sections, tests for an 8 GB card and the cloth and overlay passes from the pack.

HiFi XI v0.65

Choose a tag to compare

@relliko relliko released this 02 Nov 10:34

Unzip into your Ashita folder. HiFi XI brings its own d3d8.dll: if your launcher puts dgVoodoo in bootloader itself, switch that off (Phoenix's launcher: Settings -> Graphics -> My own wrapper).

Fixes

  • Zoning: after a zone change, World FX now waits until the game has said which zone you're in before it draws grass, water and the sea. It could draw the last zone's for a few seconds in the new one, and on some PCs that stopped the GPU: a dark screen with the music still playing.
  • Frame generation: two freezes are fixed. They happened with frame generation on while Direct3D's debug layer was on as well, and the picture froze until the game was closed.

Frame rate

  • The six speed-ups on the Frame rate tab are now off by default, and no preset turns them on. If your settings had them on, this update turns them off once; you can turn any of them back on there.
  • Batch text and interface quads and Drop repeated device calls now run inside HiFi XI's own d3d8.dll.
  • Hide characters by walls without waiting and SSE character skinning on any CPU are gone. The no-wait visibility tests now answer the characters' test too, and HiFi XI draws the characters itself.

For reports

  • If the GPU stops while World FX is drawing, worldfx-gpu-crash.txt now names the part it stopped in (grass, water, the sea, shadows, the air, and so on).
  • hifixi.log says which frame rate speed-ups are on at start and whenever that changes, and why one was refused.

Known issue

  • Some players' games hang now and then: the picture freezes and the game has to be closed. The reports so far show the GPU stopping while HiFi XI sets up its scenery pass. Updating your graphics driver is worth a try. If it happens to you, please send bootloader\worldfx-gpu-crash.txt and bootloader\hifixi.log.

HiFi XI 0.64

Choose a tag to compare

@relliko relliko released this 02 Nov 07:01

Unzip into your Ashita folder. HiFi XI brings its own d3d8.dll: if your launcher puts dgVoodoo in bootloader itself, switch that off (Phoenix's launcher: Settings -> Graphics -> My own wrapper).

For reports

  • If the GPU stops before HiFi XI has drawn the first piece of scenery in a frame, worldfx-gpu-crash.txt now names the setup step it stopped after (binding the render targets, the zone's textures, the first pipeline).
  • The report now says plainly where the GPU stopped: in the scenery pass's setup, on a draw inside the pass, or outside the pass altogether.

Known issue

  • Some players' games hang now and then: the picture freezes and the game has to be closed. The reports so far show the GPU stopping while HiFi XI sets up its scenery pass, in daylight with no lamps around as well as at night. Updating your graphics driver is worth a try. If it happens to you, please send bootloader\worldfx-gpu-crash.txt and bootloader\hifixi.log.

HiFi XI 0.63

Choose a tag to compare

@relliko relliko released this 02 Nov 02:07

Unzip into your Ashita folder. HiFi XI brings its own d3d8.dll: if your launcher puts dgVoodoo in bootloader itself, switch that off (Phoenix's launcher: Settings -> Graphics -> My own wrapper).

For reports

  • Show what's drawing on screen (Advanced tab, Diagnostics): a few lines at the top left saying how the game is being drawn: Direct3D 8 through HiFi XI's d3d8.dll to Direct3D 12 (or another d3d8.dll), your GPU and driver, which swap chain presents the frames (AMD's for frame generation, or the plain one), whether FSR is drawing, per-pixel scenery, and the sun shadows' state (the setting, whether the zone has open sky, and whether the shadow map is in use). A screenshot with it on answers most "is it even running?" questions.
  • If the GPU stops, worldfx-gpu-crash.txt now names the piece of scenery HiFi XI was drawing when it stopped, its lamps, and every light in that frame.
  • The hang report (hifixi-hang.txt) is written after 4 seconds without a new frame (was 8).

Known issue

  • Some players see the game hang when a lot of light is around (the fishing lightbulb, Jeuno at night) with Light the scenery per pixel on. Turning it off (Game tab) avoids it while it's looked into; if it happens to you with it on, please send bootloader\worldfx-gpu-crash.txt and bootloader\hifixi.log.

HiFi XI 0.62

Choose a tag to compare

@relliko relliko released this 02 Nov 00:32

Unzip into your Ashita folder. HiFi XI brings its own d3d8.dll: if your launcher puts dgVoodoo in bootloader itself, switch that off (Phoenix's launcher: Settings -> Graphics -> My own wrapper).

New

  • Light past white. The world is kept in floating point, so bright sand, snow and sunlit stone roll off softly into white instead of clipping, and bloom takes the brightest light gently. On in every preset (World tab).

Fixed

  • No more "abnormal program termination" when the GPU stops. If Direct3D loses the GPU (a hang or a driver reset), HiFi XI now stops its own drawing, FSR and frame generation, and says so in the chat. Before, AMD's FSR code could take the whole game down a few seconds later.
  • HiFi XI's background loaders (zones, model actors, characters, effect textures, shaders) no longer end the game if one of them runs out of memory: that one item is skipped.
  • With FSR off, frame generation no longer puts AMD's swap chain in at the start (it only ever works on FSR's frames). Turning frame generation off now takes AMD's swap chain out from the next start.

Better reports

  • hifixi.log and d3d8.log keep the previous session as hifixi.previous.log and d3d8.previous.log, so the log from a crash survives starting the game again.
  • If the game shows no frame for 8 seconds, HiFi XI writes bootloader\hifixi-hang.txt: where each of the game's threads is, whether the GPU is still there, and the log's last lines. Please send it along with worldfx-gpu-crash.txt and the logs when reporting a freeze.
  • d3d8.log lists the targets each logged frame draws into, in order, so a GPU crash report can be matched to what the game was drawing.

HiFi XI 0.61

Choose a tag to compare

@relliko relliko released this 01 Nov 09:35

Unzip into your Ashita folder. HiFi XI brings its own d3d8.dll: if your launcher puts dgVoodoo in bootloader itself, switch that off (Phoenix's launcher: Settings -> Graphics -> My own wrapper).

Changed

  • HiFi XI now works only with its own d3d8.dll, which tells it exactly where each of the game's passes begins and ends. Everything it used to work out by watching dgVoodoo's output is gone: the world is found, drawn into and finished at the points the d3d8.dll names, with nothing guessed and nothing to put back afterwards.
  • World FX draws on every frame the world ends in, with no frames skipped (shadows no longer come and go).
  • FSR reads the world's depth where it is instead of copying it every frame.
  • The interface's own renderer filters textures the same way the d3d8.dll does.
  • With another d3d8.dll in bootloader, HiFi XI's own drawing stays off and the game draws as it normally would.

HiFi XI 0.59

Choose a tag to compare

@relliko relliko released this 01 Nov 04:43

Unzip into your Ashita folder. HiFi XI brings its own d3d8.dll: if your launcher puts dgVoodoo in bootloader itself, switch that off (Phoenix's launcher: Settings -> Graphics -> My own wrapper).

New

  • Grass takes its colour from the ground it grows from: the zone's own ground, lit with the zone's light, mapped around you. It's right from the start, even where you haven't looked yet, and characters or names in front of it no longer change it.
  • The game's own sky is kept: its constellations, its moon in its phase, its sun and its lens flares now show while World FX draws the weather. World FX's own invented sun, moon and stars are gone; it paints only the sky's gradient behind them.

Changed

  • Ambient occlusion is off in every preset while it's being redone; its pattern also now turns every frame instead of showing as a fine grid.
  • Surface relief is retired: the zone's real normal maps light the relief now, and the guess from brightness brought out the textures' dithering as grain.
  • Shadows from the whole zone and fog over grass and water are always on, and FSR 3.1 is always used (FSR 2 only where 3.1 can't start): their switches are gone.
  • The grass colour settings (the hue and the two learning rules) are gone with the learning.

HiFi XI v0.58

Choose a tag to compare

@relliko relliko released this 31 Oct 01:33

Unzip into your Ashita folder. HiFi XI brings its own d3d8.dll: if your launcher puts dgVoodoo in bootloader itself, switch that off (Phoenix's launcher: Settings -> Graphics -> My own wrapper).

Fixed

  • Characters drawn sharp again: in 0.57 HiFi XI's own character drawing could stand down, leaving the game's, which FSR smeared and which sometimes vanished.
  • Heat haze and other distortion effects no longer make World FX draw its passes too early in a frame.

Changed

  • FSR sharpening defaults to 0.4 (was 0.8): more brought out the fine dithering in the game's own textures, a grid on skin and cloth. A value you set yourself is kept.

HiFi XI v0.57

Choose a tag to compare

@relliko relliko released this 31 Oct 00:50

Unzip into your Ashita folder. HiFi XI now brings its own d3d8.dll: if your launcher puts dgVoodoo in bootloader itself, switch that off (Phoenix's launcher: Settings -> Graphics -> My own wrapper).

New since v0.54

  • Its own Direct3D 8 translator (bootloader\d3d8.dll) in dgVoodoo's place: the game's drawing goes straight to Direct3D 12 through HiFi XI's own code, which tells HiFi XI where each part of the frame begins and ends instead of HiFi XI guessing. Its shaders ship compiled (bootloader\d3d8-shader-cache\).
  • More of the frame drawn by HiFi XI:
    • spell and ability effects (meshes, sprites, rings, distortions, specular pieces), weapon trails, battle numbers, lens flares, the summons' aura rings and the glow spells cast on the ground;
    • the sky dome, names (sharp at the screen's size after upscaling), and the Mog House layout grid;
    • cloth (outpost banners, Gigas, Treants) and the glows and shimmers over characters (two-hours, songs, warping out);
    • ships, airships, Mog House furniture and garden plants;
    • the interface at the screen's own size after upscaling: off by default while it's new, /hifi ui on.
  • Character detail ([chars] detail, off by default): relief, metal's shine and cavities worked out from each character texture.
  • Sun shadows in open-air zones the server counts as dungeons: Giddeus, Davoi, Beadeaux, Castle Oztroja, the Ghelsbas and outdoor arenas.
  • /hifi status writes its full report to logs\hifixi-status.txt and puts two lines in the chat; /hifi status <word> shows only the lines with that word. HiFi XI's long chat lines are broken up, so they can't upset the chat log.
  • bootloader\d3d8.log notes any frame that took more than a quarter of a second, and where the time went. bootloader\d3d8.ini (optional) [d3d8] AsyncReadback=1 answers the game's own visibility tests from a frame or so before instead of waiting for the GPU.

Fixed

  • Sun shadows no longer come and go with the camera.

HiFi XI v0.54

Choose a tag to compare

@relliko relliko released this 30 Oct 13:10

One Ashita v4 plugin for a faster, better-looking Final Fantasy XI.

New since 0.53:

  • Shadows by the light that was really there. The zone and the characters now tell the shading what each pixel was lit with: how much of it was the sun, and which way the surface faces. Shadows and ambient occlusion fall on their real shape instead of a guess from depth, so slopes, walls and edges seen at a grazing angle shade properly, and a crease in full sun stays lighter than one in the shade.
  • Light from the sky. Ambient light comes from the sky above and bounces up from the ground, instead of being the same from every side. Stone with a normal map and the shiny parts of gear catch a soft highlight from the sun.
  • Softer, longer shadows. Shadows are sharp where they touch and soften the further they fall from what casts them: a post's shadow crisp at its foot, a canopy's soft. A far cascade carries shadows out to 600 yalms, so mountains and cliffs shade the land at low sun.
  • Everything casts. Swaying trees and opening doors cast their shadows as they move, and interiors' second areas cast as well. The nearest lamps cast shadows of the zone around them, from things off screen too.
  • A softer Mog House. The room's lamp glows at a third of a street lamp's strength there: it lights the whole small room already, and at full strength it washed the room out.
  • Faster first start. After an update, the shaders now compile on all your CPU cores at once instead of one after another (once per version; later starts load them from the cache).

Install:

  1. Unzip hifixi-v0.54.zip into your Ashita folder.
  2. Add /load hifixi to scripts\default.txt.
  3. Your dgVoodoo output must be Direct3D 12 (OutputAPI = d3d12_fl11_0).
  4. If ReShade's dxgi.dll is in your bootloader folder, move it out.
  5. If you used hifps or drawcull, leave them out of your boot script: HiFi XI does their work and takes over their settings the first time it starts.
  6. For FSR, set the background resolution to your screen's size (or lower) in your launcher.

What it does:

  • Above 60 fps: game speed tied to real time, a frame cap, and speed-ups. Hidden characters are found from what's drawn instead of waiting on the GPU. It also skips Ashita's per-draw dispatch, uses SSE skinning on any CPU, batches text, and drops repeated device calls. They're on in every preset.
  • Smooth edges and upscaling with AMD FSR 3.1, FSR 2 and FSR 1, and frame generation with AMD FSR 3.
  • Longer view distance:
    • the world, characters and the zone's finer meshes drawn further;
    • the zone's visibility lists ignored, so far terrain doesn't pop in;
    • culling at the camera's own height of view;
    • square pixels.
  • The zone and the characters drawn by HiFi XI, with per-pixel light, sky light, tone mapping, bloom and a colour grade.
  • A richer world, drawn into the game's own frame:
    • grass that bends around characters, wears into paths and is cut by weapon skills;
    • ambient occlusion and surface relief;
    • sun and moon shadows from the zone's and the characters' own meshes, soft by distance, out to the mountains;
    • sun shafts and low fog;
    • water with reflections and ripples, out to the horizon;
    • snow that settles, with depth and footprints;
    • weather of its own, and wet ground;
    • a smooth sky with a sun, stars and a moon in the game's phase;
    • night lamps and glowing things lighting what's around them, the nearest lamps casting shadows.
  • En-spell effects on your weapons while an en-spell is on you.
  • Each zone's data made on your PC from your own game files, in the background, the first time you enter it. Or make every zone's at once from the menu.
  • One menu: /hifi, with presets in a dropdown (Off, Balanced, High, Ultra, and your own) and a tooltip on every setting.

HiFi XI includes AMD FidelityFX Super Resolution 1 and 2, and FSR 3.1's upscaler and frame generation from the AMD FidelityFX SDK (MIT licences; the licence texts are in docs\hifixi\).