Skip to content

CraziiEmu v0.31-alpha

Latest

Choose a tag to compare

@github-actions github-actions released this 06 Sep 08:38
· 1 commit to main since this release

"Dead Cells is in-game and playable (with known graphical glitches), and Stray now boots to intro screens."

Full Changelog (Click to expand)

What Changed:

  • GPU Pipeline & MRT Color Attachment Alignment:

    • Eliminated MRT slot compaction in the AGC GPU backend, enforcing strict 1:1 parity between guest render target slots and host Vulkan attachments. Secondary target outputs (such as lighting masks and occlusion silhouettes) no longer slide into Location 0.
    • Moved target write masking to the Vulkan hardware ROP level (colorWriteMask = 0), ensuring disabled targets are cleanly ignored by the GPU without altering render pass layouts.
    • Overhauled vertex parameter mapping with collision-safe linear fallback and programmed input count tracking (SPI_PS_IN_CONTROL), preventing floating or uninitialized attribute reads in pixel shaders.
    • Restructured render pass handling in the presentation backend so consecutive draw calls targeting the same framebuffer remain inside a single active render pass, avoiding costly pipeline flushes and unnecessary layout transitions.
    • Corrected depth buffer lifecycle management (DbRenderControl), retaining depth buffer state across the entire frame rather than erroneously resetting depth per draw call.
    • Resolved texture detiling stride calculations for GFX10/RDNA2 swizzle modes (modes 21, 25, 8, and 20), eliminating block-compressed texture upload rejections.
  • Kernel & Thread Synchronization:

    • Re-architected sceKernelSyncOnAddress futex primitives with an atomic non-parking fast path: when the value at the address no longer matches the expected condition, the thread returns immediately without sleeping.
    • Added microsecond timeout pointer evaluation and zero-duration timeout handling.
    • Enhanced pthread mutex state management with implicit state resolution for static mutexes (0x0 and 0x1), eliminating deadlock errors during early engine initialization.
  • Audio Stream Pacing & Threading:

    • Replaced blocking thread-sleep audio calls with asynchronous kernel event queue signaling, preventing audio waits from locking up GPU command submission queues.
    • Implemented high-resolution lockless timestamp pacing in sceAudioOutOutput to maintain a continuous, smooth 48kHz audio stream without stutter or buffer underruns.
    • Fixed an NID collision between sceAudioOutGetPortTimestamp and libKernel:usleep.
  • UI & Architecture Cleanups:

    • Stripped the embedded logging panel from the main window to eliminate UI thread lag and prevent layout freezes during heavy guest logging.
    • Replaced the legacy detached configuration window with an integrated in-window settings overlay.
    • Completely purged legacy Linux, macOS, and Metal code paths to focus 100% on high-performance Windows x86-64 direct execution.

What's New:

  • PS5 Dashboard Carousel:

    • Restored fluid horizontal game card carousel movements.
    • Added background recursive game library scanning (App0 asset indexing) with cache persistence to detect and display installed titles automatically.
  • Dedicated Standalone Log Window:

    • A brand-new high-performance log viewer window accessible anytime via the F4 hotkey or the settings overlay.
    • Includes real-time keyword search, log-level filtering (Trace, Debug, Info, Warn, Error), one-click clipboard copying, log clearing, and direct export to disk.
  • Hardware Telemetry Overlay (F3):

    • Zero-overhead direct-rasterized Vulkan telemetry overlay displaying real-time FPS, frame times, CPU/GPU clock frequencies, and RAM/VRAM consumption with clean Segoe UI typography and graphs.
  • Watchdog Diagnostics & Hardware State Capture:

    • The 20s stall watchdog now captures the main execution thread's hardware CPU registers (RIP, RSP, RAX, RBX, RCX, RDX, RSI, RDI) via Win32 thread contexts.
    • Automatically disassembles the live x86-64 instruction at the stall location using IcedDecoder and dumps the preceding 128 HLE import calls to pinpoint execution stalls.
  • 3D Resolution Scaling & Viewport Clamping:

    • Added an in-game internal 3D render resolution selector (Native, 720p, 1080p, 1440p, 4K) in the settings menu.
    • Automatic aspect-ratio-preserving viewport clamping and full-screen letterboxing to prevent visual distortion when resizing the window.
  • In-App RenderDoc Capture:

    • Integrated RenderDoc capture support triggered instantly via the F10 hotkey or the UI settings overlay.
  • New HLE Modules & Video Decoders:

    • Integrated hardware/FFmpeg video decoders (videodec2, avplayer, Bink2) for in-game FMV cutscenes.
    • Implemented libScePngDec for hardware decoding of game UI textures and menu sprites.
    • Added sceKernelSyncOnAddressWait32 and sceKernelSyncOnAddressWait64.
    • Implemented PSN Login Dialog, Signin Dialog, and SaveData mount/unmount services.
  • Automated Test Runner Suite:

    • Added over 15 automated test suites covering sync-on-address, virtual memory pools, presentation flip queues, unified sockets, and dialog lifecycles.

Upcoming:

  • Dead Cells Complete Visual Polish:

    • Finalize continuous render pass aggregation across all 2D scenery passes to ensure perfect lighting composite blending, eliminating all remaining sprite silhouette artifacts.
  • Advancing Unreal Engine 4/5 Boot Flow (Stray, etc.):

    • Transition from memory initialization (FMallocBinned2) into concurrent job graph worker execution.
    • Expand cooperative fiber scheduling and worker thread concurrency so multi-threaded task graphs run without starving the main thread.
  • Broader Commercial Game Boot Support:

    • Expand compatibility across major 3D titles (including Grand Theft Auto V, Sonic Superstars, and upcoming Unity/UE titles).
    • Implement remaining AGC compute dispatches, indirect draw commands, and advanced G-buffer surface conversions.