Tools update (#5454)

* Bump ZAPDTR & OTRExporter.
Changes to use o2r by default
Changes to the new player animation format

# Conflicts:
#	OTRExporter
#	ZAPDTR
#	soh/soh/OTRGlobals.cpp
#	soh/src/code/z_skelanime.c

* Fix actions

* Format

* Cherry pick ZAPDTR

* Update exporter

* Move configs to port

* Remove copy

* Remove more XML copies

* Remove extractor directory from actions builds.

* Fix OTRExporter for linux

* FIx ZAPD volatile

* Format

* Fix extractor?

* Fix linux

* Fix

* Remove appimage stuff

* Screnity now

* Remove ZAPD from install paths

* Remove soh.sh.in

* Fix linux

* Cleanups and use a thread for message box
This commit is contained in:
louist103
2025-06-24 01:29:40 +00:00
committed by GitHub
parent 64f9e433da
commit 040e0e1921
37 changed files with 10096 additions and 498 deletions

View File

@@ -894,33 +894,15 @@ void AnimationContext_SetLoadFrame(PlayState* play, LinkAnimationHeader* animati
if (ResourceMgr_OTRSigCheck(animation) != 0)
animation = ResourceMgr_LoadAnimByName(animation);
LinkAnimationHeader* linkAnimHeader = SEGMENTED_TO_VIRTUAL(animation);
Vec3s* ram = frameTable;
osCreateMesgQueue(&entry->data.load.msgQueue, &entry->data.load.msg, 1);
char animPath[2048];
snprintf(animPath, sizeof(animPath), "misc/link_animetion/gPlayerAnimData_%06X",
(((uintptr_t)linkAnimHeader->segment - 0x07000000)));
// printf("Streaming %s, seg = %08X\n", animPath, linkAnimHeader->segment);
s16* animData = ResourceMgr_LoadPlayerAnimByName(animPath);
s16* animData = animation->segment;
// SOH [Port] sometimes a HESS can set a negative frame value from a negative playback speed. When converted to
// a signed value this will cause a crash due to copying way much data.
if (frame < 0) {
frame = 0;
}
memcpy(ram, (uintptr_t)animData + (((sizeof(Vec3s) * limbCount + 2) * frame)), sizeof(Vec3s) * limbCount + 2);
/*u32* ramPtr = (u32*)ram;
for (int i = 0; i < 1024; i++)
{
ramPtr[i] = i * 7;
}*/
// DmaMgr_SendRequest2(&entry->data.load.req, ram,
// LINK_ANIMATION_OFFSET(linkAnimHeader->segment, ((sizeof(Vec3s) * limbCount + 2) * frame)),
// sizeof(Vec3s) * limbCount + 2, 0, &entry->data.load.msgQueue, NULL, __FILE__,
//__LINE__);
}
}