redstrate.com/content/blog/ffxiv-april2024/index.md
2024-04-28 12:34:43 -04:00

7.7 KiB

title date draft tags toc series
Astra & Novus Status Update: April 2024 2024-04-28 false
Open Source
FFXIV
Modding
true
Astra & Novus Status Update

Oh me, oh my - there's a lot to talk about! It's been a couple of months, but I made some pretty huge changes.

Moving to GitHub

I made an executive decision to move my FFXIV projects to GitHub, from sourcehut. I did it for two main reasons:

  1. builds.sr.ht does not provide Windows/macOS images, which led to me dropping support for those.
  2. Almost all FFXIV projects exist on GitHub. Being on GitHub reduces the barriers from those coming from other projects.

So now I have moved most (but not all) of the FFXIV related stuff over to my GitHub. I'm still in the process of updating URLs and sunsetting the sr.ht. repositories.

Continuous Integration

For Novus and Astra, (for the first time in a while) Windows builds are available again! Right now you have to download them through GitHub actions - which requires a GitHub account - but I plan on uploading them to xiv.zone as before.

(Note that Physis documentation updating and Flatpak are missing from the GitHub CI at the moment.)

Also as of the time of writing, the Windows version of Astra is not expected to work out of the box.

I have no plans to support macOS, but would not turn down a contribution to add support for it again.

Astra

Switched to the new Dalamud distribution server and made the asset updater more resilient.

Added support for 64-bit only clients.

Bypass the annoying FFXIV website browser check automatically when using the integrated web browser.

Added the latest expansion logo to the login page.

How it looks on the login page

Expose a RenderDoc capture option for easily capturing the game when launching it through Astra. It's located under "Developer Settings":

The new developer setting

Added preliminary support for launching the benchmark. I still have to expose options for the benchmark and stuff.

Added an option to open the user data folder easily from settings.

The new button

Physis

Physis has gained experimental Dawntrail support. It can read stuff like models, materials and shader packages albeit not very well tested. This took a huge load off my back as I was worried Dawntrail was going to completely obliterate my existing code.

An example of Dawntrail clothing from the benchmark

On the topic of Dawntrail, I added support for index2 files which means benchmark data is now properly supported in Physis.

I also added support for basic reading of maps from the game, including terrain and layer files.

I've been busy deepening model support, adding support for more vertex types and some form of shape data reading/writing (but that's not complete yet!)

I also made some fixes for patches failing on recent game versions.

I integrated Jim Kirisame's vulgar words reader for reading .dic files, so those can now be read by Physis!

Some boring refactoring these past few months too, including shrinking the amount of dependencies. Yay!

C# Bindings

I want to announce a new project I started, but not sure how far I'm going with it yet.

Lots of stuff in the FFXIV world uses C#, so it only makes sense that Physis is available for that too. I started PhysisSharp which is a set of bindings of Physis in C#. I still have to write most of it, but I already figured out the hard part: the build process 😄

If you're curious about how the Rust <-> C# library is built, check out the README in the repository.

Novus

Gear Editor

Added item icons to the gear list. This is pretty greedy and can be cached better. Even then, everything still loads surprisingly fast.

How the gear list looks now

Data Explorer

Added support for importing or downloading the path list. The import still takes way too long though.

Showcase of the new menu

Added an actual file type database, including nice type names in the file properties and icons in the sidebar.

Showcase of the new menu

Added a menu item to copy the file path when right-clicking files.

Excel Editor

Added a search bar for searching through available sheets.

Added a function to download or import Godbert definitions easily.

Showcase of the new menu

Model Viewer

Added a way to switch to wireframe mode.

Added a statistics tab to list the level of detail and triangle count.

Map Editor

Added a simple program to view the map files from the game. Still very basic but it does work!

Showing part of a... hill? Or something?

Material Editor

A simple program to view the material's shaders, parameters, etc.

Materials!

Renderer

As I discussed in [the last blog post]({{< ref "ffxiv-dec2023" >}}), a big goal of mine this year was to re-create FFXIV's rendering system and I'm happy to say I was successful! Not all shaders are supported yet, but some gear now render as expected:

A piece of armor rendered like the game

This is rendered with Vulkan and without using any custom shaders1, it's all read from game data. Big thanks to Ouroboros and the people in the FFXIV Discords for helping me along. Oh yeah, and RenderDoc for being a fantastic tool as always.

I'm working on adding support for Dawntrail shaders next, you can follow along here.


See you next time!


  1. Technically there's some, such as the blit from composite to swapchain and the Dear ImGui overlay. ↩︎