Resolved issue when data ready callback would be called twice or not at all. Made some reads a bit faster, but at the cost of higher IOP memory usage. Changed stream detection to be more fail-proof. This version was a RC, but there is a memory leak that could happen in some games when auto switching between normal and synchronous modes in very tight memory situations, so r10d was created. Fixed handling of large stream buffers. Fixed games that re-register cd interrupt handler (probably by calling cdvdinit again), which caused also readCallback to be cleared - now it's properly re-registered again if needed. Optimized a bit memory usage (it might be enough to make Jak and Daxter: The Precursor Legacy work using "direct off"). Fixed a memory leak triggered when there was not enough memory available to allocate normal buffers, making the whole problem even more serious. Greatly reduced memory fragmentation on buffer reallocation (Tomb Raider games should work now). Packed some loose data into structures, which let compiler make a bit smaller binary (storing struct base address throughout entire function in one register). Changed the way low on memory condition is detected (hooked AllocSysMem). Changed interrupt handler data to be treated as signed (fixes DOA2: Hardcore, maybe other old games).
0 Comments
Leave a Reply. |