Skip to content

beta 0.2

Pre-release
Pre-release

Choose a tag to compare

@xmiguel911x xmiguel911x released this 22 Aug 20:34
· 2 commits to main since this release
6f56d93

beta 0.2

Emulation

  • A cache-maintenance call no longer kills the thread that makes it.
    sys_icache_invalidate touches 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_flush now 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 says linux so 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