AJM's instance and batch tables and APR's file, directory and AMM state were namespace-scope statics, destroyed by std::exit while the title's threads keep calling the libraries. A decoder thread then read a freed instance (an unknown codec), sceAjmBatchWait no longer found its batch, and APR resolved file ids through a freed vector. The state is now allocated once and never destroyed. |
||
|---|---|---|
| .. | ||
| Decoder | ||
| libs | ||
| relinker | ||
| shader/recompiler | ||