Tags: ARMSX2/ARMSX3
Tags
Make the auto-save options and save-state import do what they say Auto-save on exit, auto-load on boot and the interval auto-save were ARMSX2 shims returning false that were never ported, so all three toggles persisted and read back while doing nothing -- the interval job woke on schedule to call a function that always failed. They now use a reserved slot above the ten the picker shows, reusing the numbered-slot path rather than growing a second mechanism. Import treated getGamePathSlot as a file path, but it answers with the title id: File(id).exists() was false for every slot, so the first OCCUPIED slot read as free and the destination resolved against the process working directory. It copied the file nowhere useful and reported the slot it had not written. Occupancy now comes from the core and the destination from the real path. Also says how large a state is before the storage bill arrives, and stops the interval description promising a pause when a PS3 save is a stop and a reload.
Split the DMA and blit engine handlers Those two are 7.4 ms a frame in Arkham City, a fifth of it, and the GPU side of the same work is 0.76 ms, so it is host work. Each handler does several unrelated things and nothing separates them: a read barrier that can force a readback, the memory copy the transfer exists to perform, and in the blit engine a software scale through ffmpeg for the cases the GPU path does not take. Scope the three. The scale is scoped inside convert_scale_image rather than at its four call sites in the blit engine, and only the RSX thread is ever reported, so calls from elsewhere cost nothing to cover. Also let a scope be closed early, so a region ending part-way through a function does not need a block introduced purely to place a brace.
Add PPU and SPU cache clearing Two rows under a Compiled Code Cache section on the Performance tab, next to the recompiler settings and separate from the shader cache on the Renderer tab, which holds GPU pipelines rather than recompiled code. The layout is <files>/cache/cache/, with ppu-<hash>-<name> directories for firmware modules at the top level and <TITLEID>/ppu-<hash>-EBOOT.BIN per game. The SPU cache is a spu-*.dat inside those, so the two options are not symmetric and are worded accordingly: clearing SPU removes only those files and leaves booting as fast as it was, while clearing PPU removes the directories outright and necessarily takes the SPU caches with them. Both report how much was freed, and both refuse while a game is loaded, since a running VM holds those files open and is still writing to them.
Fold build instructions into the README BUILDING.md was RPCS3's desktop build guide and had nothing about Android, so it was misleading here. Removed it and put real Android build steps in the README instead. Also dropped the status file, it was working notes and not much use to anyone reading the repo.