Repository navigation
Releases: Zinedinarnaut/Sol
Release list
Sol 0.3.0 — Developer Preview 1
Sol 0.3.0 — Developer Preview 1
This is a source checkpoint for people following SolMetal or building Sol from
the repository. There is no app or DMG attached to this preview. The current
packaged build remains Sol 0.2.1.
SolMetal has a real engine path now
SolMetal can now be selected by Sol Engine and carry a game through native
Metal resource creation, shader translation, drawing, presentation, and clean
shutdown. It owns its Metal buffers, textures, samplers, pipelines, and command
queues directly. SPIR-V is translated to Metal Shading Language through a
pinned copy of SPIRV-Cross.
The renderer also has a versioned ABI, cross-context ownership checks, GPU-side
indexed-quad expansion, crop and aspect handling, screenshot readback, and
diagnostic capture tools. Unsupported graphics work stops with an explicit
error instead of quietly dropping back to Vulkan.
This does not mean SolMetal is ready to replace the existing renderer. It is
still behind SOL_METAL_GAL_BACKEND=1, reports playable: false, and the
normal backend remains Vulkan through MoltenVK.
What was tested
The current M4 test Mac passed:
- the native presentation, resource, compute, raster, shader-cache, teardown,
AddressSanitizer, UndefinedBehaviorSanitizer, leak, and shared-thread gates; - 1,440 out of 1,440 repeated stress cycles across 48 renderer contexts;
- 139 Swift tests;
- 15 out of 15 compatibility scenarios, two embedded-host checks, and 11 out
of 11 visual regression fixtures; and - a five-title local launch matrix in which every title reached presentation
and shut down normally.
That last result is lifecycle evidence, not a compatibility percentage. One of
the heavier titles still renders large dark rectangles in a known scene and is
explicitly recorded as not playable. The other matrix runs do not replace
hands-on playthrough testing.
Experimental direct-mutation batching remains off by default. In the measured
scene it saved only two command buffers and one render pass, while the sampled
working set was roughly 485 MiB higher. There was not enough evidence to make
that tradeoff the default.
Other work in this checkpoint
- A native first-run setup now covers the local profile, optional Apple and
iCloud features, system files, controller setup, and the game library. - Profiles gained custom images and generated pixel avatars, play activity,
captures, Save Vault, game users, and local friends views. - Sol Cloud gained opt-in, account-scoped backup foundations for portable
profile data. Apple services still require a correctly provisioned build,
and friends remain local until a real online provider exists. - Keyboard state handling and repeated engine sessions were tightened to avoid
stuck or delayed input after rapid key changes. - Playtime is checkpointed during a session instead of relying only on a clean
quit.
Still experimental
- SolMetal is not the default and is not ready for general gameplay.
- The known dark-rectangle rendering failure is unresolved.
- DLSM remains disabled in public builds.
- This preview has no packaged app.
The current renderer status and reproduction tools are in the
SolMetal development notes.
Sol 0.2.1 — Developer Preview
Sol 0.2.1 — Developer Preview
This patch is mainly about setup and gameplay reliability. It fixes the
firmware and fresh-install failures reported after 0.2.0, cleans up launcher
rendering regressions, and hardens rapid controller and keyboard input.
Fixed
- A new Sol data directory no longer reports
Config.jsonas missing while the
bundled engine is creating its default configuration. - Firmware ZIPs are unpacked into a private, size-limited staging directory
before LibHac verifies them. This removes the previous large in-memory path
and gives verification the same filesystem shape as an extracted package. - The firmware control now has separate native choices for ZIP/XCI packages and
extracted folders, so Finder actually allows a firmware folder to be chosen. - Empty packages are rejected before installation. Incomplete archives and
production keys that do not match the firmware dump now produce a useful
error instead of exposing a raw filesystem result code. - The home carousel no longer feeds card geometry back into its own layout on
every frame. Native scroll snapping remains, and the card border and playtime
row now fit fully inside the window. - Sol no longer creates a zero-sized Metal drawable during the first launcher
layout pass. - Launch and stop transitions now clamp transient layout sizes, leave macOS in
charge of fullscreen presentation flags, and use a fresh Metal surface for
every emulation session. - Rapid controller movement no longer feeds Sol's launcher observer while a
game is running. Late callbacks are discarded, launcher navigation resumes
from a fresh controller baseline, and repeated or missed keyboard edges can
no longer leave movement held after the key is released. - The game document types now declare Sol as a Viewer, removing the Launch
Services warning in packaged builds.
Firmware and production keys must come from the user's own console and should
be dumped from the same system state. Sol does not download either one.
Still a developer preview
The DMG remains ad-hoc signed and is not notarized. DLSM remains unavailable in
normal public launches while its experimental modes continue developer testing.
Sol 0.2.0 — Developer Preview
Sol 0.2.0 — Developer Preview
This is the first Sol release with a downloadable macOS app. The disk image is
ad-hoc signed and checksum verified, but it is not notarized yet. After dragging
Sol to Applications, macOS may require Open Anyway under System Settings →
Privacy & Security on first launch.
Highlights
- Added a separate native Library with All, Recent, and Unplayed filters.
- Added a Game Detail screen with high-resolution hero art, file information,
playtime, native Play and More controls, and Finder shortcuts. - Fixed clipped carousel cards and constrained adaptive library posters so they
remain inside their grid at every supported window size. - Added a native GitHub update indicator. Sol downloads the DMG and checksum,
verifies SHA-256 locally, then opens the installer; it never silently replaces
the running app. - Added semantic app/build versions and a tag-driven DMG release contract.
- Made artwork matching prefer exact title IDs and exact titles across multiple
candidates before accepting a fuzzy result. - Made playtime crash-resistant with 30-second checkpoints plus pause and stop
saves. The library refreshes as checkpoint events arrive. - Made the game library bookmark-only and retained its security scope for the
entire emulation session. Invalid old grants now request a native folder
reselection instead of probing a protected path at startup. - Moved engine state into Sol's own Application Support folder and replaced
automatic legacy-folder probing with an explicit, non-destructive native
import action. - Added a signed App Sandbox audit build without enabling it for public users
before real-game sandbox validation is complete.
Graphics and engine
- Serialized all DLSM MetalFX presentation work that touches shared textures.
Spatial can no longer submit a second frame while the GPU is reading the
compatibility input from the first frame. - Kept the truthful source layer visible until DLSM completes its first frame,
and restored it after repeated presentation failures instead of flashing a
stale or black output layer. - Rebuilt and validated the managed Sol Engine with checkpointed playtime.
- Confirmed the bundled MoltenVK package is already the current 1.4.2 release;
no dependency downgrade or speculative version change was made. - Public builds still keep DLSM disabled while Spatial and Temporal continue
developer validation.
Build and release work
- Fixed the first DMG contribution's checksum test and NUL-safe nested-bundle
signing traversal, made damaged extensions repairable, and added explicit
Hardened Runtime/JIT entitlements for the public app. - A new release is published only after its DMG, signatures, runtime contents,
and checksum all pass, preventing another source-only release record. - The release gate verifies the app metadata and main executable both retain
the macOS 15 deployment target under the current Xcode toolchain. - CI now builds the managed engine and full Xcode app in addition to Swift tests.
- Added developer, artwork-provider, sandbox, and release documentation.
- Replaced stale README imagery with the real 0.2 Home, Library, and Game Detail
screens and added a clearer source layout.
Known limits
- The DMG is not Developer ID signed or notarized.
- DLSM remains hidden in normal public launches.
- The sandbox entitlement set is an audit target, not the default target.
- Compatibility follows the pinned Sol Engine revision; game-specific upstream
regressions may still exist.
Sol 0.1.1 — Developer Preview
Sol 0.1.1 corrects the first public source preview by including the complete
patched Sol Engine source directly in the repository.
What changed
- Every clone and GitHub source archive now contains the engine core used by
Sol, pinned to upstream commita82350bb774f70fcbd41c9987bf67a3775409963. - Sol's runtime, stability, native-surface, multiplayer, and DLSM changes are
applied in the checked-in source and remain available as reviewable patches. - Builds verify the bundled source instead of cloning an external repository.
- Generated engine artifacts, games, keys, firmware, and signing material
remain excluded.
This remains a source-only developer preview. A notarized application download
will follow when Developer ID distribution signing is available.
Sol 0.1.0 — Developer Preview
Sol 0.1.0 is the first public developer preview of the native macOS frontend
and its packaged Sol Engine integration.
Highlights
- Native AppKit and SwiftUI library, setup, settings, profiles, and session UI
- AppKit-owned game surface presented through Vulkan and MoltenVK
- Bundled, UI-free Sol Engine runtime based on a pinned upstream revision
- Native keyboard and controller assignment with per-player remapping
- Keys, firmware, DLC, title-update, and content-folder management
- Native launch progress, playtime tracking, fullscreen, and session controls
- Experimental DLSM Spatial, Temporal, and frame-generation research code
DLSM status
DLSM remains experimental. It is disabled in normal public-preview launches.
Spatial is currently the strongest development mode; Temporal and frame
generation still need broader GPU-bound testing and latency work.
Installation
This release is source-only. Follow the build instructions in the
README. A precompiled
download will be added only after Sol can be distributed with Developer ID
signing and Apple notarization.
Sol does not include games, keys, firmware, or other console system files.
Known limitations
- This is an early preview, not a compatibility guarantee for every title.
- Apple account and iCloud features require a correctly provisioned local build.
- Temporal reconstruction and frame generation are not ready for normal use.
- Some controller, multiplayer, and repeated-session paths still need wider
hardware testing.