diff --git a/content/blog/ffxiv-april2024/capture.webp b/content/blog/ffxiv-april2024/capture.webp new file mode 100644 index 0000000..6351026 Binary files /dev/null and b/content/blog/ffxiv-april2024/capture.webp differ diff --git a/content/blog/ffxiv-april2024/dawntrail.webp b/content/blog/ffxiv-april2024/dawntrail.webp new file mode 100644 index 0000000..3df6feb Binary files /dev/null and b/content/blog/ffxiv-april2024/dawntrail.webp differ diff --git a/content/blog/ffxiv-april2024/filelist.webp b/content/blog/ffxiv-april2024/filelist.webp new file mode 100644 index 0000000..64b46c1 Binary files /dev/null and b/content/blog/ffxiv-april2024/filelist.webp differ diff --git a/content/blog/ffxiv-april2024/icons.webp b/content/blog/ffxiv-april2024/icons.webp new file mode 100644 index 0000000..9ef7b62 Binary files /dev/null and b/content/blog/ffxiv-april2024/icons.webp differ diff --git a/content/blog/ffxiv-april2024/import-excel.webp b/content/blog/ffxiv-april2024/import-excel.webp new file mode 100644 index 0000000..0ef510c Binary files /dev/null and b/content/blog/ffxiv-april2024/import-excel.webp differ diff --git a/content/blog/ffxiv-april2024/index.md b/content/blog/ffxiv-april2024/index.md new file mode 100644 index 0000000..95f7d10 --- /dev/null +++ b/content/blog/ffxiv-april2024/index.md @@ -0,0 +1,146 @@ +--- +title: "Astra & Novus Status Update: April 2024" +date: 2024-04-28 +draft: false +tags: +- Open Source +- FFXIV +- Modding +toc: true +series: +- 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](https://mastodon.art/@redstrate/112315184471699059) 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](https://github.com/redstrate?tab=repositories&q=&type=source&language=&sort=). I'm still in the process of updating URLs and sunsetting the sr.ht. repositories. + +## Continuous Integration + +For [Novus](https://github.com/redstrate/Novus) and [Astra](https://github.com/redstrate/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](https://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](https://github.com/redstrate/Astra/commit/51715ca3be52b231cbed1dc791f077fe95529edc). + +Added [support for 64-bit only clients](https://github.com/redstrate/Astra/commit/516c0926a67d86a502d8b99ee02803cd9adf3314). + +Bypass [the annoying FFXIV website browser check](https://github.com/redstrate/Astra/commit/f97204a422fc36f2153c9fa026cc19c20b9b7fc1) automatically when using the integrated web browser. + +Added [the latest expansion logo to the login page](https://github.com/redstrate/Astra/commit/001e20b1b8ca5b3348d0b26b75b8c470e1e037da). + +![How it looks on the login page](logo.webp) + +Expose a [RenderDoc capture option for easily capturing the game](https://github.com/redstrate/Astra/commit/b7c67b3f70fc1195d5afc3aa2d3e316fbc79bd9f) when launching it through Astra. It's located under "Developer Settings": + +![The new developer setting](capture.webp) + +Added [preliminary support for launching the benchmark](https://github.com/redstrate/Astra/commit/49f8aae87736bfed1d1250ff2f24716adf3d1cc2). I still have to expose options for the benchmark and stuff. + +Added [an option to open the user data folder](https://github.com/redstrate/Astra/commit/346f4eae9ec06d6d85b7eae6e668c23df290c700) easily from +settings. + +![The new button](user.webp) + +# 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](dawntrail.webp) + +On the topic of Dawntrail, I [added support for index2 files](https://github.com/redstrate/Physis/commit/4fa77965c12abf2f972b5f2cdd936745d8fe0536) 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](https://github.com/redstrate/Physis/commit/256b3f9305a9bec152080fb3689b62edee7ec5e6). + +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](https://github.com/redstrate/Physis/commit/8e6b0dd6b4b22050096f720730e372e0c443cc08). + +I integrated Jim Kirisame's [vulgar words reader](https://github.com/Lotlab/ffxiv-vulgar-words-reader/) for reading .dic files, so [those can now be read by Physis](https://github.com/redstrate/Physis/commit/5574e75325b0ee6cf0989c11f21e6666861749db)! + +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](https://github.com/redstrate/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](https://github.com/redstrate/Novus/commit/1bddb6f8f0f6c88a5c3bdafdb1797fd053ac7e17). This is pretty greedy and can be cached better. Even then, everything still loads surprisingly fast. + +![How the gear list looks now](icons.webp) + +## Data Explorer + +Added support [for importing or downloading the path list](https://github.com/redstrate/Novus/commit/5d455c4ce085592cd61cc8947fb8a9df507614bc). The import still takes way too long though. + +![Showcase of the new menu](pathlist.webp) + +Added [an actual file type database](https://github.com/redstrate/Novus/commit/9d129163bb40626b32c745d3de6f11ccbfd0bbe7), including nice type names in the file properties and icons in the sidebar. + +![Showcase of the new menu](filelist.webp) + +Added a menu item to [copy the file path when right-clicking files](https://github.com/redstrate/Novus/commit/ce29debf240fc56e81426b8beebf75dc18225682). + +## Excel Editor + +Added a [search bar for searching through available sheets](https://github.com/redstrate/Novus/commit/d58fcf7e984f11b22a4cc9cda8d832577a4e4493). + +Added a function to [download or import Godbert definitions easily](https://github.com/redstrate/Novus/commit/f6c9d13b094d94845ed5e456a86fdfd71665b1da). + +![Showcase of the new menu](import-excel.webp) + +## Model Viewer + +Added a way [to switch to wireframe mode](https://github.com/redstrate/Novus/commit/5c907b63da9d81d872722f51e63e3b24874954e0). + +Added a statistics tab to [list the level of detail and triangle count](https://github.com/redstrate/Novus/commit/26c7fad3a064887b5d3cfe18c5ec2281c5b26eb3). + +## Map Editor + +Added a simple program to [view the map files from the game](https://github.com/redstrate/Novus/commit/c19ff1e132730baa2149e281a9371c8b3da31dc0). Still very basic but it does work! + +![Showing part of a... hill? Or something?](map.webp) + +## Material Editor + +A simple program to [view the material's shaders, parameters, etc](https://github.com/redstrate/Novus/commit/568b8f2eea33d542cf08b441707a90fcac797f92). + +![Materials!](mateditor.webp) + +## 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! + +![A piece of armor rendered like the game](renderer.webp) + +Here's a piece of armor being rendered without any custom shaders[^1], it's all read from game data. Big thanks to [Ouroboros](https://github.com/Shaderlayan/Ouroboros/) and the people in the FFXIV Discords for helping me along. Oh yeah, and [RenderDoc](https://renderdoc.org) for being a fantastic tool as always. + +I'm working on adding support for Dawntrail shaders next, you can follow along [here](https://github.com/redstrate/Novus/issues/6). + +--- + +See you next time! + +[^1]: Technically there's some, such as the blit from composite to swapchain and the Dear ImGui overlay. + + diff --git a/content/blog/ffxiv-april2024/logo.webp b/content/blog/ffxiv-april2024/logo.webp new file mode 100644 index 0000000..555995b Binary files /dev/null and b/content/blog/ffxiv-april2024/logo.webp differ diff --git a/content/blog/ffxiv-april2024/map.webp b/content/blog/ffxiv-april2024/map.webp new file mode 100644 index 0000000..d2ca932 Binary files /dev/null and b/content/blog/ffxiv-april2024/map.webp differ diff --git a/content/blog/ffxiv-april2024/mateditor.webp b/content/blog/ffxiv-april2024/mateditor.webp new file mode 100644 index 0000000..3a1df9b Binary files /dev/null and b/content/blog/ffxiv-april2024/mateditor.webp differ diff --git a/content/blog/ffxiv-april2024/pathlist.webp b/content/blog/ffxiv-april2024/pathlist.webp new file mode 100644 index 0000000..4f243d2 Binary files /dev/null and b/content/blog/ffxiv-april2024/pathlist.webp differ diff --git a/content/blog/ffxiv-april2024/renderer.webp b/content/blog/ffxiv-april2024/renderer.webp new file mode 100644 index 0000000..0295bbf Binary files /dev/null and b/content/blog/ffxiv-april2024/renderer.webp differ diff --git a/content/blog/ffxiv-april2024/user.webp b/content/blog/ffxiv-april2024/user.webp new file mode 100644 index 0000000..a502822 Binary files /dev/null and b/content/blog/ffxiv-april2024/user.webp differ