marzent / IINACT

A Dalamud plugin to run the FFXIV_ACT_Plugin in an ACT-like enviroment with a heavily modified port of Overlay Plugin
https://www.iinact.com
GNU General Public License v3.0
182 stars 41 forks source link

What does IINACT depend on that needs to change between updates? #27

Closed seivan closed 1 year ago

seivan commented 1 year ago

If IINACT and/or any of its internally used modules maintained by others are updated. How do I add the changes from the Git repo to an IINACT bundled with XIVOnMac?

XIVOnMac doesn't give you an optional to actually install IINACT, but just to "launch" it. So I was wondering if I wanted to try out the master branch here, or my own branch with changes from upstream, how would I go about it?

Related: https://github.com/marzent/IINACT/issues/26#issuecomment-1378562814

marzent commented 1 year ago

This was already partially answered in https://github.com/marzent/IINACT/issues/26, but if you want to try out a different version of IINACT with XOM you can just manually replace the .exe it launches while leaving the version file alone (if there is an update available it will override yours though)

seivan commented 1 year ago

@marzent I see, I also found the update process so it does look like it will update on launch. So launch is both install and launch in one and it always goes for main/master and checks version before, correct?

marzent commented 1 year ago

Correct it will update on launch, however it will grab the latest release which is not necessarily whatever is on main

seivan commented 1 year ago

I see, so the bottleneck now is FFXIV_ACT_Plugin that needs to e.g reverse engineer the binary protocol that changes between Square builds/patches.

Assume for the sake of argument that it gets completed, how would that be added/used by IINACT for a pull request?

How does the OverlayPlugin fit into this? Is it safe to assume remains stable between patches because it's not responsible for decoding the client traffic which falls under FFXIV_ACT_Plugin purvey?

Bonus question: Is it possible to swap out the existing installed FFXIV_ACT_Plugin by an existing IINACT installation, with a different one without having to update IINACT? For faster feedback loop for testing purposes?

marzent commented 1 year ago

IINACT will automatically pull the latest version of the parsing plugin by itself on startup (similar to how ACT does not need an update when its parsing plugin updates)

OverlayPlugin has been interacting more and more with the network log lately (and has always enriched the information it provides via web socket with reading game memory), so it will need frequent updates, although mostly only cactbot uses the additional loglines and extra information it provides, i.e. normal damage parsing works without IINACT updates (sometimes even cactbot if the memory sigs do not change).

The vanilla ACT cactbot is also technically a OverlayPlugin plugin, but with IINACT they are integrated into one project. Upstream OverlayPlugin (https://github.com/OverlayPlugin/OverlayPlugin/issues/90) is also working on this but they are not quite there yet.

Interesting side note: After ngld abandoned OverlayPlugin the IINACT version was created months before the new community ACT one so they did develop a bit independent of each other.

Regarding the bonus question: As mentioned above IINACT can load any FFXIV_ACT_Plugin version, however there is a neat little easter egg if you want to load a beta or something custom; you can just delete all contents of the external_dependencies folder and take the published .zip from Ravahn, rename it to FFXIV_ACT_Plugin.zip and place it inside external_dependencies which will make IINACT pick it up instead. You can double check the FFXIV_ACT_Plugin version in the network log afterwards, there is a log line at the start like: 253|2023-01-11T11:04:53.6655686+01:00|This is IINACT based on FFXIV_ACT_Plugin 2.6.7.1|1cfa46d4ccfeceb4