This includes all the collision stuff needed to spawn `target`,
decompiles the sparticle code and adds some of the PC hacks needed for
merc to run (it doesn't work quite right and looks bad, likely due to a
combination of code copied from Jak 2 and the time of day hacks).
There are a bunch of temporary hacks (see commits) in place to prevent
the game from crashing quite as much, but it is still extremely prone to
doing so due to lots of missing functions/potentially bad decomp.
---------
Co-authored-by: water <awaterford111445@gmail.com>
* Use sleepthread in RPC loop
* Keep a pointer to current IOP thread
* Implement IOP thread scheduling based on priority
And implement DelayThread as an actual delay.
* Run IOP flat out
* Use information from scheduler in wait_run_iop
* Lock sif mutex in set_rpc_queue
* always use kernel dispatch with wait_run
* Loop in dispatch until no thread is ready
* Use timestamp for next wakeup
instead of duration
* Wrap IOP thread entrypoints for safety
Libco threads are not supposed to return from their entrypoint
* Use a queue for IOP thread wakeups from EE thread
* IopThreadRecord -> IopThread
* add libco
* Use cooperative threading for IOP threads
* Ugly solution for overlord start
Needs to run in a thread
* Clean out thread shutdown logic
* Update comments
* fix IOP getting stuck on music load
* fix regression? and clang
* fix a decomp
* fix another regression
* another
* fix "all actors"
* another regression!
* fix a couple macros in ref tests
* `default-menu` cleanup
* add `find-instance-by-name` func
* improve debugger slightly hopefully
* fix IOP PLAY buffer overrun bug
* fix `default-menu` more
* automatically convert ints in static pairs to/from bintegers
* fix test
* clang
* fix a few more lambdas
* update refs
* add custom menu cuz cool
* oopsie! also make `default-level` and `halfpipe` go away
* add camera teleport menu
* update types in debug menu