publish blog posts
This commit is contained in:
parent
7989c3c6d1
commit
ea296db1db
5 changed files with 49 additions and 29 deletions
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
title: "Astra & Novus Status Update: December 2023"
|
title: "Astra & Novus Status Update: December 2023"
|
||||||
date: 2023-12-29
|
date: 2023-12-30
|
||||||
draft: true
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- Open Source
|
- Open Source
|
||||||
- FFXIV
|
- FFXIV
|
||||||
|
@ -11,48 +11,61 @@ series:
|
||||||
- Astra & Novus Status Update
|
- Astra & Novus Status Update
|
||||||
---
|
---
|
||||||
|
|
||||||
I achieved two huge goals this month, which conclude a year (+ a few months) of development on both Astra & Novus.
|
I achieved two huge goals this month, which conclude a year (and a few months) of development on both [Astra](https://xiv.zone/astra) & [Novus](https://xiv.zone/novus). This also includes a few things I did in November, but it wasn't much so it didn't deserve it's own post.
|
||||||
|
|
||||||
# Astra
|
# Astra
|
||||||
|
|
||||||
I did more boring code cleanup work in preparation for a new stable release next year, but I also did some really important work:
|
I did more boring code cleanup work in preparation for a new stable release next year, and I also sat down and pumped out a proper Steam Deck version:
|
||||||
|
|
||||||
<video of it working on the steam deck>
|
{{< tube "https://tube.ryne.moe/videos/embed/1c13620c-2cfd-4d81-be4a-8429ed184c1b" >}}
|
||||||
|
|
||||||
This is all contained within the Flatpak! Unlike the previous, janky Flatpak versions you may have used before this doesn't punch a gigantic hole in the sandbox to run host Wine. The overall setup has improved now, in the final release you should be able to this on the Steam Deck:
|
This is all contained within a [Flatpak](https://flatpak.org)! Unlike the previous and janky versions you may have used before this doesn't punch a gigantic hole in the sandbox to run Wine. The overall setup has improved now, in the final release you should be able to this on the Steam Deck:
|
||||||
|
|
||||||
1. Download Astra from Discover.
|
1. Download Astra from [Discover](https://apps.kde.org/discover/).
|
||||||
2. Launch it once to install the compatibility tool for Steam.
|
2. Open it once to install the compatibility tool for Steam.
|
||||||
3. Use FFXIV in Game Mode to launch the game.
|
3. Launch FFXIV in Game Mode to launch and patch the game.
|
||||||
|
|
||||||
There's a bit more work to be done, like the patcher needs to be more resistant to network drops (which is easy to do, put your computer to sleep!) The general experience is working now though, which I'm really happy with. It also enables me to use Astra on my Deck 😀
|
There's a bit more work to be done, but the general experience is working now which I'm really happy about. For example, the patcher needs to be more resistant to network drops and users possibly putting it into sleep mode.
|
||||||
|
|
||||||
Another change is how Wine is installed and managed. For the longest time I've been putting off automatic Wine mangement (ala Bottles, XIVCore, etc) because I thought it has a huge can of worms. Actually the opposite is true, the support for this was incredibly easy to write and has numerous benefits (like a more secure Flatpak.) It's still possible to use your system Wine of course, but the built-in one is now the default!
|
For the longest time I've been putting off automatic Wine mangement (ala [Bottles](https://usebottles.com/), [XIVLauncher.Core](https://github.com/goatcorp/XIVLauncher.Core), etc) because I thought it would be too much work. It turns out the opposite is true, it was incredibly easy to support and has numerous benefits such as the Flatpak being more secure. It's still possible to use your system Wine of course, but the built-in one is now the default!
|
||||||
|
|
||||||
## Steamwrap
|
## Steamwrap
|
||||||
|
|
||||||
Astra needs to use Steamworks for some current and future functionality. For example, to set the correct Steam app ID and [eventually to grab the login ticket for Steam account users](https://todo.sr.ht/~redstrate/astra/1). However this is problematic, because you _can't_ easily redistribute the Steamworks SDK![^1] If I were to build the Flatpak on Flathub CI in the future, it would be almost impossible to because I couldn't point it towards a SDK installation...
|
Astra needs to use [Steamworks](https://partner.steamgames.com/doc/sdk) for some current and future functionality. For example, to set the correct Steam app ID[^1] and [eventually to grab the login ticket for Steam account users](https://todo.sr.ht/~redstrate/astra/1). However this is problematic, because you _can't_ easily redistribute the Steamworks SDK[^2]! If I were to build the Flatpak on Flathub CI in the future, it would be almost impossible to because I couldn't point it towards a SDK installation...
|
||||||
|
|
||||||
{{< stoot "mastodon.art" "111610316310852487" >}}
|
{{< stoot "mastodon.art" "111610316310852487" >}}
|
||||||
|
|
||||||
So I asked on Mastodon about a possible solution to my condumdrum, and @NotNite pointed me to [SteamShim](https://github.com/icculus/steamshim):
|
So I asked on Mastodon about a possible solution to my condumdrum, and [@NotNite](https://notnite.com/) pointed me to [SteamShim](https://github.com/icculus/steamshim):
|
||||||
|
|
||||||
{{< stoot "coolmathgam.es" "111610324997249357" >}}
|
{{< stoot "coolmathgam.es" "111610324997249357" >}}
|
||||||
|
|
||||||
This is genius, it's basically pushing all of the parts that connect to the proprietary Steamworks bits to a separate process. That process can also start from another executable that could be compiled separately, which is what I did for [Steamwrap](https://git.sr.ht/~redstrate/steamwrap). It's basic at the moment and doesn't have IPC yet, but can be expanded in the future. A binary is served on the Astra distribution server and downloaded while making the Flatpak.
|
This is genius, it's basically pushing all of the parts that connect to the proprietary Steamworks bits to a separate process. That process can also start from another executable that could be compiled separately, which is what I did to create [Steamwrap](https://git.sr.ht/~redstrate/steamwrap). It's basic at the moment and doesn't have IPC yet, but can be expanded in the future.
|
||||||
|
|
||||||
|
So my plan is to build binaries for Linux (ones that are compatible with the Steam Linux Runtime, of course) and upload them to the Astra distribution server. I want to do that during the build process, hopefully.
|
||||||
|
|
||||||
# Novus
|
# Novus
|
||||||
|
|
||||||
Working glTF import/export is here! After a year of development, Novus can possibly replace TexTools for certain model replacement tasks:
|
Working glTF import/export is here! After a year of development, Novus can possibly replace [TexTools](https://github.com/TexTools/FFXIV_TexTools_UI) for certain model tasks, completely native on Linux:
|
||||||
|
|
||||||
Yes, it even reloads Penumbra when you import models... neat! The rest of the changes the past two months have been related to more model import/export improvements too. By the way if you're wondering, it is _possible_ to import TexTools-exported FBX but there's some weird geometry artifacts and I'm not sure why.
|
{{< tube "https://tube.ryne.moe/videos/embed/d59aa248-7e29-4543-ae9c-797bd11c8628" >}}
|
||||||
|
|
||||||
# Physis
|
Yes, it even reloads [Penumbra](https://github.com/xivdev/Penumbra) when you import models... neat! The import/export is almost done, save for a few very weird bugs when loading some vertex data. I've been hammering out fixes though, and I'm confident I can get it to a "good enough" state. Big thanks to [Xande](https://github.com/xivdev/Xande), [Lumina](https://github.com/NotAdam/Lumina), [xivModdingFramework](https://github.com/TexTools/xivModdingFramework) and the rest of the FFXIV modding community for their open source implementations I could reference!
|
||||||
|
|
||||||
As expected, most of the changes to Physis have been miscellaneous and numerous model importing/exporting fixes. I also have improved SHPK reading support that I still need to push, maybe early next year.
|
If you're curious about the implementation, the source code for importing is [here](https://git.sr.ht/~redstrate/novus/tree/main/item/parts/mdl/mdlimport.cpp) and exporting is [here](https://git.sr.ht/~redstrate/novus/tree/main/item/parts/mdl/mdlexport.cpp). The model I/O is part of the [Physis source tree](https://git.sr.ht/~redstrate/physis/tree/main/item/src/model.rs).
|
||||||
|
|
||||||
# 2024 Goals
|
# 2024 Goals
|
||||||
|
|
||||||
|
As I said on Mastodon, now that model import/export is working I want to work towards my next "big goal" for 2024:
|
||||||
|
|
||||||
{{< stoot "mastodon.art" "111604695264870943" >}}
|
{{< stoot "mastodon.art" "111604695264870943" >}}
|
||||||
|
|
||||||
[^1]: You're not supposed to, because it requires you to explicitly agree to a Steamworks Developer agreement. There's no public downloads for the SDK either, of course. This doesn't stop Valve from intentionally/unintentionally [shipping parts of the SDK in Proton, I guess](https://github.com/ValveSoftware/Proton/tree/proton_8.0/lsteamclient).
|
Of course I can avoid lots of pain by "recreating" the shaders, but that sounds too easy! I'm really excited to start digging into this, even if I don't complete it I still want to learn.
|
||||||
|
|
||||||
|
See you in the next status update!
|
||||||
|
|
||||||
|
[^1]: This might not be needed, but I'm still doing it anyway. I think it's because Game Mode already thinks the game we launched *is* FFXIV, regardless of what program is actually launched. This is a different situation compared to XIVLauncher.Core, which launches FFXIV separately.
|
||||||
|
|
||||||
|
[^2]: You're not supposed to, because it requires you to explicitly agree to a Steamworks Developer agreement. There's no public downloads for the SDK either, of course. This doesn't stop Valve from intentionally/unintentionally [shipping parts of the SDK in Proton, I guess](https://github.com/ValveSoftware/Proton/tree/proton_8.0/lsteamclient).
|
||||||
|
|
||||||
|
{{< series-nav "ffxiv-oct2023" >}}
|
||||||
|
|
||||||
|
|
|
@ -120,3 +120,6 @@ I overhauled [the documentation site](https://docs.xiv.zone) again, this time wi
|
||||||
{{< add "bugfix" >}} Fixed the [libcotp CMake, which was causing troubles when integrated into Astra](https://github.com/paolostivanin/libcotp/pull/49). Now we can use upstream instead of my fork! {{< release "2.0.2" >}}
|
{{< add "bugfix" >}} Fixed the [libcotp CMake, which was causing troubles when integrated into Astra](https://github.com/paolostivanin/libcotp/pull/49). Now we can use upstream instead of my fork! {{< release "2.0.2" >}}
|
||||||
|
|
||||||
I also have begun [reverse engineering the current Square Enix login system](https://git.sr.ht/~redstrate/kawari) which is currently used for testing Astra without hammering the official servers. Do note that I don't plan on extending the project much further than that.
|
I also have begun [reverse engineering the current Square Enix login system](https://git.sr.ht/~redstrate/kawari) which is currently used for testing Astra without hammering the official servers. Do note that I don't plan on extending the project much further than that.
|
||||||
|
|
||||||
|
{{< series-nav "ffxiv-sept2023" "ffxiv-dec2023" >}}
|
||||||
|
|
||||||
|
|
|
@ -83,3 +83,5 @@ I recently had some trouble attempting to decompile the DX11 DXBC shader bytecod
|
||||||
{{< stoot "mastodon.art" "111110339774483271" >}}
|
{{< stoot "mastodon.art" "111110339774483271" >}}
|
||||||
|
|
||||||
So I took the time to splice together a new library called [dxbc](https://git.sr.ht/~redstrate/dxbc) (yes, I know very creative name!) It's the DXBC decompiler used in DXVK, usable in library form. I plan on integrating this with Novus soon, so it can load the shader files from the game.
|
So I took the time to splice together a new library called [dxbc](https://git.sr.ht/~redstrate/dxbc) (yes, I know very creative name!) It's the DXBC decompiler used in DXVK, usable in library form. I plan on integrating this with Novus soon, so it can load the shader files from the game.
|
||||||
|
|
||||||
|
{{< series-nav "" "ffxiv-oct2023" >}}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
title: "My work in KDE for December 2023"
|
title: "My work in KDE for December 2023"
|
||||||
date: 2023-12-30
|
date: 2023-12-30
|
||||||
draft: true
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- Linux
|
- Linux
|
||||||
- Open Source
|
- Open Source
|
||||||
|
@ -12,7 +12,7 @@ series:
|
||||||
- My Work in KDE
|
- My Work in KDE
|
||||||
---
|
---
|
||||||
|
|
||||||
This is a lighter month due to holidays (and also I'm trying not to burn out), but I tried to fit in a bit of KDE anyway. I's all bugfixes anyway because of the feature freeze!
|
This is a lighter month due to holidays (and also I'm trying not to burn out), but I tried to fit in a bit of KDE anyway. It's all bugfixes anyway because of the feature freeze!
|
||||||
|
|
||||||
Not mentioned is a bunch of really boring busywork like unbreaking the stable branches of Gear applications due to the CI format changing.
|
Not mentioned is a bunch of really boring busywork like unbreaking the stable branches of Gear applications due to the CI format changing.
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
---
|
---
|
||||||
title: "Thank you!"
|
title: "2023 Wrap-up"
|
||||||
date: "2023-12-31"
|
date: "2023-12-30"
|
||||||
draft: true
|
draft: false
|
||||||
---
|
---
|
||||||
|
|
||||||
I think this has been a pretty productive year for me. I wrote 38 blog posts, created 40 artworks, and over 500 merge requests!
|
I think this has been a pretty productive year for me. I wrote 38 blog posts, created 40 artworks, and over 500 merge/pull requests!
|
||||||
|
|
||||||
A large chunk of my free time has been contributed towards [KDE](https://kde.org) or the surrounding community, which has been an incredible learning experience. Thank you to everyone who has tolerated me, while I make my stupid mistakes (and I will be owing a lot of beers) 😅 I was extremely fortunate to visit Akademy this year[^1], which I'm hoping to do next year! I hope my presence has been a net positive one, and I don't plan on slowing down anytime soon.
|
I hate describing my own achievements, but I felt like I really did a lot this year. I have noticed a drastic improvement in my artwork, my programming and my mood. I finally traveled outside of my country, and met some nice people! There's probably some other accomplishments I forgot, but I think you get the point.
|
||||||
|
|
||||||
I felt like I've grown a lot as a person this year too, thanks
|
And a large chunk of my free time has been contributed towards [KDE](https://kde.org) and the surrounding community, which has been an incredible learning experience. Thank you to everyone who has tolerated me, while I make stupid mistakes. (I foresee owing a lot of beers 😅) I was extremely fortunate to visit Akademy this year[^1], which I'm hoping to do next year too! I hope my presence has been a positive one, and I don't plan on slowing down anytime soon.
|
||||||
|
|
||||||
So... thank you for reading! Danke! ありがとう! See you next year.
|
Thank you from the bottom of my heart to the people who helped me along (you know who you are!) Thank you to the people who enjoy the software I maintain and the artwork I create. So... thank you for reading! Danke! ありがとう!
|
||||||
|
|
||||||
[^1]: Maybe by Akademy 2024 I'll finally be done sitting on my 2023 post...
|
See you next year.
|
||||||
|
|
||||||
|
[^1]: Maybe by Akademy 2024 I'll finally be done writing my 2023 post...
|
||||||
|
|
Loading…
Add table
Reference in a new issue