beta 0.2
Pre-release
Pre-release
beta 0.2
Emulation
- A cache-maintenance call no longer kills the thread that makes it.
sys_icache_invalidatetouches memory to do its work, so a null pointer takes
the caller down with a segfault at address 0. One of the two calls in the SPU
recompiler's dispatch path sits on the common exit, where the patch-point
pointer is legitimately null because nothing was rewritten. It was killing all
five SPURS kernels one after another, which left the game's twelve PPU threads
waiting on them forever. From the outside it looked exactly like a hang: no
error, CPU at 16 %, millions of idle sleeps. Fixed at the call site, and
psx3ios_jit_flushnow refuses an invalid address and records it instead of
dying. - The graphics layer is back to a state that draws. A merge from another
ARM64 port had left 28 files of the RSX and Vulkan code changed, among them the
swapchain, the image-layout transitions and the pipeline compiler. The result
was a game that ran perfectly and displayed nothing — broken geometry or a
black screen — which is a hard symptom to read, because the emulator looks
healthy: it compiles shaders, counts frames and uses CPU. Two additions that
had no business in an iOS app went with it: an Android Vulkan loader and a
profiler's GPU timer. - x18 is always reserved on Apple hardware. It is the platform register and
the system may overwrite it at any moment, but LLVM only infers that from the
target triple, and ours deliberately sayslinuxso that its runtime linker
emits ELF and builds the branch islands a 266 MiB code arena needs. It is now
reserved in the backend itself, where no chain of options can leave it open,
and every launch records whether it took effect.
Settings
- Your settings now win over the recommended database. Turning something off
for a game was being silently undone at boot: the emulator applies its
recommended per-game configuration after everything else, so the database
overwrote the user's own choice with no indication anywhere. The recommended
values still fill in what you have not touched, but the keys you set for that
game are removed from them before they are applied, and the log says how many
were dropped. - The recommended database can be switched off entirely, and ships off, so a
game starts with your settings and nothing else
Setup
- The guided setup finishes the job. Everything under Settings → JIT can now
be completed without leaving it: enabling JIT, choosing the StikDebug script,
and turning on the launch handoff, alongside firmware and the memory
entitlements — seven steps instead of five. Each action button shows the real
state rather than an instruction, so "JIT enabled" and a script's filename tell
you there is nothing left to do on that page. - Installing firmware no longer closes the setup screen. It used to dismiss
itself so the library could do the work, which dropped the user out halfway
through configuration with the distinct impression they had broken something.
The file picker is now presented over the guide and the install runs inside it,
spinner and all, returning to the same card with the button reading
"Firmware installed".
Interface
- The background colour can be changed, in Settings → Theme. It tints the
gradient, the waves and the specks without touching the theme itself: the two
are separate on purpose, since wanting a different colour is not a reason to
be given a different layout. Six to choose from, all dark enough to keep what
sits on top readable. - Everything decorative stops while a game runs. The waves and the specks
kept animating behind a game that covered them completely — GPU and battery
taken from the emulation to draw something nobody can see. They now suspend
when a game starts and resume when you leave it, and coming back from the
background does not restart them while a game is still running. The game's
music stops at the same point, when the compilation screen gives way. - Only the selected cover lights up. Every cover in the row was getting the
blue edge and the halo, which meant none of them stood out: twenty highlighted
covers are twenty ordinary covers, and the one actually selected was lost among
them. The chosen one now takes the lit edge, the glow and full size while the
rest step back a little, dimmer and slightly smaller. Contrast only works if
something gives way. - The background moves the way it should. The waves used to bounce back and
forth, which reads as a pendulum rather than a current. Each one is now drawn
two screens