OSCancelThread and OSDetachThread stubbed out cuz they're probably both broken
Code cleanup, unnecessary code copied from decomp removed, copy-paste reduced.
Don't immediately detach threads when creating them (what's the point??)
Fix OSJoinThread
THPs are *almost* just a bunch of JPEGs so the TL;DR is BE fixes and replacing the decoding with libjpeg-turbo.
Needs changes to thp.h which should be removed from Aurora, will do that later.
Also audio not implemented yet.
This could cause a crash and was previously fixed by 7d3795f7, but
it's a band-aid solution. This fix addresses the underlying bug that
actually causes the crash.
The workaround remains in place for now because similar bugs related
to NaNs have been encountered, and it's not currently known how many
places in the codebase are affected as well.
This fixes a crash in the first King Bulblin sequence (in Ordon Spring)
as well as in the first cutscene in Renado's sanctuary, and probably
some other sequences too.
This is meant as a band-aid until the upstream fix here is merged:
https://github.com/zeldaret/tp/pull/3136
This fixes intermittent segfaults due to invalid atan table lookups.
For some reason zero-initializing all cXyz objects causes issues, as
does initializing them with INFINITY or -INFINITY. However, at least
one of the possible crashes (in d_a_e_yg's search_ground_1) is
guaranteed to happen whenever a specific uninitialized cXyz contains
a NaN for x or z.
A possible explanation for these crashes not occurring on hardware might
be that the problematic objects happen to be placed at memory locations
that happen to never contain a NaN upon allocation, so the buggy code
was never caught. Further investigation would be needed to determine if
this is what's actually happening, though.