Releases: RegionallyFamous/SwanSong-Desktop
Release list
SwanSong 0.9.3 — Keep the Proof Moving
SwanSong 0.9.3 — Keep the Proof Moving
SwanSong 0.9.3 removes two runtime dead ends from long-form translation
verification while keeping game-derived captures, audio, and save data private.
Expected app identity: SwanSong 0.9.3 (21).
This is the current stable release for supported Apple silicon and Intel Macs.
Keep the end of a long route
Deterministic capture plans now retain the final 30 emulated frames of audio
for both Original and Patched during their existing replays. The WAV artifacts
are bound to the same route, ROM, engine, clock, and final frame as the visual
evidence, so a long route does not need to be replayed just to close its audio
check.
Carry an exact save into LOAD and CONTINUE
- SwanSong can seal an authenticated Patched capture into two byte-identical
private clones of the complete cartridge-owned persistence state. - LOAD and CONTINUE consume their own clone in separate clean-power runs, with
persistence staged before the ROM loads and no save-state restore. - Each consumer retains a private final native frame and final audio window.
The returned receipt contains only hashes, counts, booleans, and opaque
identities—never paths, save bytes, screenshots, audio, or game text. - Existing authenticated legacy capture pairs remain accepted for sealing, so
completed evidence does not need an unnecessary replay.
Exact evidence remains exact
Authorized capture graphs now include the two retained WAV roles and bind
their window, format, sample counts, and digests. The expanded public and
commercial pair, report, and graph schemas have new versions so older receipts
cannot be mistaken for the new contract.
These are Developer Tools for translation verification. They do not translate
a game automatically, publish private evidence, or replace whole-game review.
SwanSong remains the sole runtime authority for the resulting routes and
captures.
Install the release
Existing users can choose SwanSong > Check for Updates… on the default
stable channel. A manual install can download
SwanSong-0.9.3-macOS-universal.zip from the GitHub release and verify it
with SHA256SUMS.txt and SwanSong-0.9.3-release.json.
SwanSong requires macOS 14 or newer. It includes no games, translations, save
data, or original system firmware. Use only software and hardware you own or
are authorized to use.
Report release results with the
0.9 release checklist. The
support guide, privacy policy, and
complete changelog contain the deeper boundaries.
SwanSong 0.9.2 — A Safer Pocket Setup
SwanSong 0.9.2 — A Safer Pocket Setup
SwanSong 0.9.2 makes preparing an Analogue Pocket card clearer, more private,
and harder to get wrong.
Expected app identity: SwanSong 0.9.2 (20).
This is the current stable release for supported Apple silicon and Intel Macs.
Know what is on the card
The Analogue Pocket page can now check a selected SD card and explain its
layout, installed SwanSong Core version, WonderSwan game count, legacy folders,
and anything that needs attention. Its copyable support summary deliberately
omits the card name, path, device identifier, game names, and save data.
Install with the right action
- SwanSong now offers the action that fits the card: first install, update,
verify an already-current install, or repair damaged or missing Core files. - Every successful action ends with short, exact next steps for safely
ejecting the card and opening the Core on Pocket. - Automatic downgrades and replacement of a development Core are blocked.
- The selected card is checked again before and after the download so swapping
or changing it cannot bypass those protections.
Find only real Core releases
SwanSong Core releases now have their own strict core-vX.Y.Z namespace.
Other projects published from the same repository—including homebrew—are
ignored instead of appearing as broken Core updates.
The separate FPGA project still owns its licensing, build, and physical Pocket
and Dock qualification. Until it publishes an authorized stable Core release,
SwanSong’s installer remains safely locked.
Install the release
Existing users can choose SwanSong > Check for Updates… on the default
stable channel. A manual install can download
SwanSong-0.9.2-macOS-universal.zip from the GitHub release and verify it
with SHA256SUMS.txt and SwanSong-0.9.2-release.json.
SwanSong requires macOS 14 or newer. It includes no games, translations, or
original system firmware. Use only software and hardware you own or are
authorized to use.
Report release results with the
0.9 release checklist. The
support guide, privacy policy, and
complete changelog contain the deeper boundaries.
SwanSong 0.9.1 — A Better Welcome
SwanSong 0.9.1 — A Better Welcome
SwanSong 0.9.1 makes the first launch clearer, the everyday language
friendlier, and help easier to find.
Expected app identity: SwanSong 0.9.1 (19).
This is the current stable release for supported Apple silicon and Intel Macs.
Start with the good part
New players now meet a short Start Here guide built around three useful
actions: add a game, press Play, and save or rewind whenever they like. It
explains the default keyboard controls, keeps advanced workbenches out of the
way, and can be reopened from the Help menu.
Returning players can open a concise What’s New story from Help. SwanSong
remembers the release story it has already shown, while Safe Mode, direct game
opens, and automated launches remain uninterrupted.
Clearer words throughout the app
- Library, Homebrew, Translation Shelf, Time Ribbon, save-state timeline,
Story Forge, Settings, and recovery screens now use shorter, more helpful
language. - Translation Shelf distinguishes a verified package from trust in the person
or site that supplied it. - Rewind and save-state actions describe what happens to the game and how Undo
protects the current moment. - About, privacy, support, FAQ, and release materials now tell the same
player-first story.
Install the release
Existing users can choose SwanSong > Check for Updates… on the default
stable channel. A manual install can download
SwanSong-0.9.1-macOS-universal.zip from the GitHub release and verify it
with SHA256SUMS.txt and SwanSong-0.9.1-release.json.
SwanSong requires macOS 14 or newer. It includes no games, translations, or
original system firmware. Use only software and hardware you own or are
authorized to use.
Report release results with the
0.9 release checklist. The
support guide, privacy policy, and
complete changelog contain the deeper boundaries.
SwanSong 0.9.0 — Bring the Translation Home
SwanSong 0.9.0 — Bring the Translation Home
SwanSong 0.9 adds Translation Shelf: a local path from a trusted, source-free
fan-translation release to a verified, separately managed game in your
library. It also keeps agent playtesting prompts with the developer tools they
belong beside and refreshes the approved first-party Homebrew artwork.
Expected app identity: SwanSong 0.9.0 (18).
This is the current stable release for supported Apple silicon and Intel Macs.
The short version
- Choose a release-certified
release.jsonpackage and the exact original
game it requires. - SwanSong verifies the manifest, IPS, input revision, finished-game digest,
WonderSwan structure, cartridge checksum, and save/RTC contract. - Patching happens in memory. The selected original is not changed or copied
into the release package. - The translated build receives its own library identity, badge, saves, states,
artwork, favorite, and play history. - An existing exact finished build can be adopted instead of duplicated.
- A missing or changed managed translated copy can be rebuilt from the same
verified package and original without losing its library history.
Trust boundary
Translation Shelf is source-free and network-silent. It does not search for or
download translations, original games, or patches. A local manifest is not a
publisher signature: get the package from a person or site you trust, then
SwanSong protects the byte-for-byte path from that package and exact original
to the managed translated game.
Unsafe paths, links, special files, oversized inputs, unsupported patch
formats, the wrong original revision, a changed IPS, an unexpected output, or
an invalid cartridge checksum all stop installation.
Developer-only playtest prompts
With Show developer tools enabled, Homebrew includes a SwanSong Fun Tester
panel that can copy a structured Codex request for all ten SwanSong Originals
or the selected game. The banner, per-game card, and diagnostic wording remain
hidden in the normal player experience.
Seven approved Homebrew title screens have refreshed native captures, and the
production appcast publisher now requires a maintainer-approved protected
environment before it can use the signing secret.
Install the release
Existing users can choose SwanSong > Check for Updates… on the default
stable channel. A manual install can download
SwanSong-0.9.0-macOS-universal.zip from the GitHub release and verify it
with SHA256SUMS.txt and SwanSong-0.9.0-release.json.
SwanSong requires macOS 14 or newer. It includes no games, translations, or
original system firmware. Use only software and hardware you own or are
authorized to use.
Report release results with the
0.9 release checklist. The
support guide, privacy policy, and
complete changelog contain the deeper boundaries.
SwanSong 0.8.1 — Keep the Shelf Clear
SwanSong 0.8.1 — Keep the Shelf Clear
SwanSong 0.8.1 is a focused interface patch. Internal compatibility confidence
stays available to translators and testers through Developer Tools, while the
everyday library returns to the simple experience of choosing a game and
playing it.
Expected app identity: SwanSong 0.8.1 (17).
The short version
- Library cards no longer show Picture Appeared, Not Tested Yet, or
Needs Attention unless Developer Tools is enabled. - The complete Game Confidence panel, verdict controls, notes, and related
accessibility descriptions follow the same setting. - Play, repair, game details, and save controls remain available to everyone.
- Existing compatibility evidence is preserved when the developer surfaces are
hidden.
A quieter everyday library
Reaching a frame is useful diagnostic evidence, but it is not a promise that a
whole game works. Those labels belong with SwanSong's testing tools, not in the
normal player experience.
With Developer Tools off, game cards and the inspector now focus on the actions
needed to play and manage a library. Turning Developer Tools on restores the
compatibility badges, Game Confidence panel, verdict controls, and notes for
people doing deeper validation.
This is a presentation change only. It does not erase compatibility evidence,
change managed-game health checks, or hide a real repair problem.
The complete 0.8 workshop remains
SwanSong 0.8.1 retains everything introduced in 0.8.0: Translation Surface
Suites, multi-checkpoint clean-boot routes, native-1× review, immutable
certification, faster observed-play authoring, Story Forge quality evidence,
and the visual signed Homebrew Catalog.
Install or update
Existing users can choose SwanSong > Check for Updates…. A manual install
can download SwanSong-0.8.1-macOS-universal.zip from the GitHub Release and
verify it with SHA256SUMS.txt and SwanSong-0.8.1-release.json.
SwanSong requires macOS 14 or newer. It includes no games or original system
firmware. Use only software and hardware you own or are authorized to use.
If anything feels wrong, open Help > SwanSong Support and create a
privacy-safe Support Bundle. The support guide,
privacy policy, and
complete changelog have the deeper details.
SwanSong 0.8.0 — Prove the Whole Game
SwanSong 0.8.0 — Prove the Whole Game
SwanSong 0.8 fills the gap between capturing one correct screen and certifying
an entire translated game. Translation Surface Suites can now drive a matrix of
case-specific viewer ROMs, preserve several named checkpoints per route, queue
every native frame for human review, and produce one immutable final
certificate.
The release also brings Story Forge's Narrative Pulse, live-reader moments,
and Story Proof into the native workspace, while the signed Homebrew Catalog
gets bundled title screens and a much clearer game inspector.
Expected app identity: SwanSong 0.8.0 (16).
The short version
- Run a complete translation-surface manifest instead of orchestrating dozens
of viewer ROMs with external scripts. - Capture several named screens per replay and fail obvious wrong-screen,
zero-delta, stale-route, or protected-region results before review. - Review Original, Patched, blink, and difference frames at exact native 1×
with separate semantic, microcopy, and visual-fit verdicts. - Resume revalidated work and hand off stable paths, digests, coverage, endpoint
results, review decisions, and observed-audio status in one certificate. - Author long observed-play routes in bounded sequences or branch from an exact
clean-boot prefix. - Inspect story structure and delivery without turning automation into a claim
that the writing is good. - Browse the signed Homebrew Catalog with real title screens and a compact,
native Mac inspector.
Certify a complete translation surface
A source-free suite manifest gives every story viewer and UI/runtime family a
stable ID, its case-specific Original and Patched diagnostic ROM digests, an
input plan, ordered named checkpoints, endpoint fingerprints, and expected
change regions. SwanSong rehashes those inputs, selects the requested qualified
ABI, starts each lane from clean boot with empty persistence and a fixed clock,
and records native PNG and audio evidence beside the project.
Several checkpoints can be captured during one deterministic replay. The
runner rejects the wrong endpoint, no visible change, geometry drift, or pixels
changing outside the declared region. A pixel difference remains a review
target—not automatic approval.
Interrupted suites can resume. A case is reused only after its result contract
and generated artifacts pass validation again. The immutable execution report
records coverage and failures without pretending skipped or stale work passed.
Review at the pixels the handheld used
The new review queue keeps stable IDs visible while presenting Original,
Patched, blink, and difference views at exact native 1×. Semantic meaning,
functional microcopy, and visual fit are separate decisions. Condensed text
must receive its own explicit verdict, making technically fitting but
unreadable treatments much harder to overlook.
Final certification rehashes the manifest, ROMs, plans, captures, reviews, and
audio observations. Temporary, staging, partial, and per-case work paths cannot
be published as final evidence.
Build long routes with fewer repetitive steps
Observed play can append a bounded sequence of input holds in one atomic
operation, capture selected named checkpoints, and retain the final native
frame and audio window only after explicit sharing confirmation. A saved route
can also branch from an exact frame prefix by replaying that prefix from clean
boot into a new session.
The final route remains an ordinary deterministic from-boot plan. Faster
authoring does not introduce a hidden save-state dependency.
Story quality stays human
Story Forge can now build a Narrative Pulse view of load-bearing events, open
questions, motif appearances, and long flat stretches. Named real readers can
leave manuscript-bound moments—laughed, moved, confused, paused, bored, or
wanted more—without their reactions being averaged into a score.
Story Proof binds intended turns and consequences to exhaustive SwanSong route,
input, presentation, fade, native-audio, next-state, and ending evidence. The
Story Ribbon makes that delivery readable. It proves that a beat reached the
running ROM; readers and editors still decide whether it works.
A more visual Homebrew shelf
Approved first-party Homebrew Catalog entries now ship with compact title
screens. Selecting a game opens a redesigned inspector with artwork, dynamic
library and system status, full-width actions, structured details, and clear
Release, Source Code, License, and Asset Provenance rows.
The catalog remains network-silent until you ask to browse, refresh, or
download. Every entry and ROM still passes its signed catalog, rights, size,
digest, and content checks before entering the private library.
Install or update
Existing users can choose SwanSong > Check for Updates…. A manual install
can download SwanSong-0.8.0-macOS-universal.zip from the GitHub Release and
verify it with SHA256SUMS.txt and SwanSong-0.8.0-release.json.
SwanSong requires macOS 14 or newer. It includes no games or original system
firmware. Use only software and hardware you own or are authorized to use.
If anything feels wrong, open Help > SwanSong Support and create a
privacy-safe Support Bundle. The support guide,
privacy policy, and complete changelog
have the deeper details.
SwanSong 0.7.2 — Keep the Trail Exact
SwanSong 0.7.2 — Keep the Trail Exact
SwanSong 0.7.2 is a focused Translation Lab reliability update. Authenticated
capture plans can use the exact qualified engine profile they were made for,
and display data moved by General DMA keeps its real cartridge source all the
way through the evidence chain.
Expected app identity: SwanSong 0.7.2 (15).
The short version
- Authorized capture plans work with qualified ABI 9 and ABI 10 profiles.
- A plan still stops if its requested ABI, capability receipt, or loaded engine
does not match. - General DMA reads retain their real initiator, source operand, and cartridge
origin through nested engine callbacks. - A clean-room public fixture keeps that DMA lineage covered in release tests.
- Private game addresses, source bytes, and project details remain local.
Capture with the profile you authorized
Translation Lab capture plans are bound to a signed engine capability profile.
SwanSong now honors the exact ABI selected by that profile, including the ABI
10 consumed-prefetch lane, while retaining the established ABI 9 path.
This does not loosen the boundary. The plan, expected ABI, capability receipt,
profile digest, and loaded engine still have to agree before capture work can
begin. A stale or substituted engine remains a hard failure rather than a
best-effort fallback.
General DMA keeps an honest source trail
When the WonderSwan moves display data through General DMA, nested engine
callbacks can look like ordinary CPU work unless their provenance is isolated.
SwanSong now preserves the surrounding CPU and fetch context while recording
the DMA transfer with its own initiator and exact source operand.
The result is more dependable private evidence for translators: a display
write points back to the cartridge source that actually supplied it instead of
inheriting synthetic callback context.
Covered without shipping game data
The live-engine release lane now includes a tiny clean-room WonderSwan fixture
that performs a General DMA transfer and proves the expected lineage. It
contains no commercial game, firmware, save, screenshot, or private project
artifact.
Detailed addresses, mapper state, executed-read context, and source bytes stay
inside the selected private project. Local automation receives only the
authorized source-free summaries.
Install or update
Existing users can choose SwanSong > Check for Updates…. A manual install
can download SwanSong-0.7.2-macOS-universal.zip from the GitHub Release and
verify it with SHA256SUMS.txt and SwanSong-0.7.2-release.json.
SwanSong requires macOS 14 or newer. It includes no games or original system
firmware. Use only software and hardware you own or are authorized to use.
If anything feels wrong, open Help > SwanSong Support and create a
privacy-safe Support Bundle. The support guide,
privacy policy, and complete changelog
have the deeper details.
SwanSong 0.7.1 — Follow the Evidence
SwanSong 0.7.1 — Translation Lab Finds the Real Source
SwanSong 0.7.1 turns one of Translation Lab’s hardest questions—“where did
these pixels actually come from?”—into a guarded, replayable workflow. Point
at a visible rectangle, choose the part you care about, and SwanSong can follow
the evidence back through the exact captured frame while keeping private game
details inside your project.
Expected app identity: SwanSong 0.7.1 (14).
The short version
- Source probing now runs through SwanSong’s installed, signed helper chain.
- Each probe is tied to the exact project, ROM, plan, frame, rectangle, and
engine that produced it. - CPU and DMA reads keep honest private provenance instead of filling gaps with
guesses. - Capture Intake handles mixed-case names consistently from command to receipt.
- SwanSong’s runtime and local tools are release-checked to stay away from the
login Keychain, so ordinary use does not summon a password dialog.
Select a rectangle. Follow the evidence.
Translation Lab can isolate map, raster, palette, or sprite ownership for a
small native rectangle. It still discovers other display elements that share
the same source, which makes it much easier to change a title, heading, or
menu label without accidentally disturbing something elsewhere.
The detailed lineage stays in the linked private project. Local automation
receives only safe summaries: counts, hashes, geometry, status, and explicit
completeness. Cartridge ranges, mapper state, source bytes, addresses, and
executed-read details never leave through MCP.
Proof tied to the frame you actually captured
Commercial probes no longer depend on coordinates from one game. SwanSong
derives the frame, rectangle, orientation, and selected components from the
authenticated Original capture, then requires the capture, authorization,
plan, ROM, project, engine, runner, and replayed frame to agree.
If the frame is wrong, the probe stops before asking the engine a source
question. If the request is too large, altered, incomplete, or missing its
reader context, it stops without producing a finished evidence closure.
A signed path from helper to evidence
The installed MCP helper can launch only the SwanSongRouteRunner beside it
inside the app. The completed evidence binds that helper, the runner, and the
loaded engine. SwanSong writes the final closure last, reads it back, validates
the completed tree, and returns only the authorized public report.
The release gate exercises this through the actual bundled helper after code
signature verification and before notarization. It covers successful and
blocked lineage, exact size limits, wrong frames, altered inputs and
executables, missing CPU or DMA context, private-field leakage, and final-tree
closure.
No surprise password box
Homebrew Catalog anti-rollback state lives in a locked, owner-only file—not a
login-Keychain item. SwanSong 0.7.1 also adds a release-blocking check that
rejects Keychain item APIs or the retired catalog trust service anywhere in
the shipped runtime. Non-interactive local tools must explicitly disable
SwiftPM Keychain lookup as well.
Install or update
Existing users can choose SwanSong > Check for Updates…. A manual install
can download SwanSong-0.7.1-macOS-universal.zip from the GitHub Release and
verify it with SHA256SUMS.txt and SwanSong-0.7.1-release.json.
SwanSong requires macOS 14 or newer. It includes no games or original system
firmware. Use only software and hardware you own or are authorized to use.
If anything feels wrong, open Help > SwanSong Support and create a
privacy-safe Support Bundle. The support guide,
privacy policy, and complete changelog
have the deeper details.
SwanSong 0.7.0 — Safer Without the Fuss
SwanSong 0.7.0 — Safer Without the Fuss
SwanSong 0.7 is the release where the safety net becomes part of the fun. Games
still open in a click. Translation Lab still follows the evidence. Studio and
Story Forge still turn the Mac into a WonderSwan workshop. Underneath, the
pieces now trust each other much less—and protect your work much more.
Expected app identity: SwanSong 0.7.0 (13).
The short version
- The game engine now runs in its own locked-down service.
- Local automation talks through a private socket and accepts only fresh,
one-use requests from SwanSong's signed helper. - Safe Mode can rescue a launch without touching your library or saves.
- A one-click Support Bundle helps diagnose problems without collecting your
games, saves, screenshots, projects, manuscripts, or private paths. - Privacy & Trust puts every connection and local-control switch in one clear
place. - Releases now include an SPDX software bill of materials, exact source,
checksums, and GitHub artifact attestations.
A tougher player, hidden behind the same Play button
The packaged emulator lives in a sandboxed XPC service with no network access.
SwanSong passes only typed, size-limited messages across that boundary. If a
game, state, persistence file, frame, or reply is malformed or too large, the
request stops there instead of wandering through the rest of the app.
This is deliberately invisible during normal play. Your library, Open IPL,
controllers, Time Ribbon, screenshots, and visual save states work the same
way. The isolation is there for the day something goes wrong.
Local automation that proves who is asking
The live MCP bridge no longer broadcasts through macOS notifications or keeps
a bearer secret. It uses a private owner-only Unix socket. SwanSong checks the
caller's macOS user, signed helper identity, Apple team, protocol version,
message size, timestamp, and one-use nonce before accepting a request.
Developer Tools and local control remain off by default. Turn either off and
the socket disappears immediately. Public tool responses remain intentionally
small and source-free.
Safe Mode and support that respect your privacy
Two interrupted launches trigger a Safe Mode offer. Safe Mode skips restored
projects, controllers, local automation, background update work, and an initial
game, giving you a clean way back into the app without moving or deleting your
library.
The new Support Bundle contains app and Mac versions, relevant settings,
component hashes, and recent source-free diagnostics. It does not include ROMs,
saves, states, screenshots, manuscripts, Translation Lab evidence, private
paths, or account data. You still get to review and choose where the ZIP goes.
Translation Lab follows the source farther
Component-selective rectangle probing can isolate map, raster, palette, or
sprite ownership while still finding every outside consumer that shares a
source range. Private lineage can now retain the executed cartridge-read
context: immediate caller, code and operand location, mapper window and bank,
and resolved cartridge operand.
Those exact ranges, addresses, callers, writers, and consumer coordinates stay
inside the linked private project. MCP sees only geometry, counts, hashes, and
an honest completeness result. Mixed-case capture names are also canonicalized
before authorization, with both unit and real-toolkit end-to-end coverage.
ABI 10 can now carry that verified lineage into a private static-analysis
seed-v2. SwanSong replays the exact frame, seals the consumed-prefetch context,
and stores the fetched cartridge bytes only inside the project for the required
decoder check. Automation receives counts and hashes—not opcodes, addresses, or
source ranges. Exact ABI 9 seed-v1 projects remain supported.
A release you can inspect
Every 0.7 download is Developer ID signed, notarized, stapled, and checked by
Gatekeeper. The release set contains:
- the universal app archive;
- the exact corresponding-source archive;
- a deterministic SPDX 2.3 SBOM;
- a machine-readable manifest; and
- SHA-256 checksums covering the binary, source, and SBOM.
The release pipeline re-downloads and verifies those files before signing the
Sparkle appcast. GitHub then publishes artifact and SBOM attestations. Critical
security releases can reach everyone immediately; ordinary updates can be
rolled out gradually across seven days.
More hardening behind the curtain
SwanSong 0.7 adds CodeQL, dependency review, Dependabot security updates,
pinned GitHub Actions, AddressSanitizer, UndefinedBehaviorSanitizer, and a
coverage-guided engine fuzzer. Translation projects use security-scoped
bookmarks, and Homebrew Catalog anti-rollback trust now lives in a locked,
owner-only file rather than the login Keychain—so it stays monotonic without
asking for your password.
Install or update
Existing users can choose SwanSong > Check for Updates…. Because 0.7
hardens local automation, this release is published as a critical Sparkle
update and bypasses staged rollout. A manual install can download
SwanSong-0.7.0-macOS-universal.zip from the GitHub Release and verify it with
SHA256SUMS.txt and SwanSong-0.7.0-release.json.
SwanSong requires macOS 14 or newer. It includes no games or original system
firmware. Use only software and hardware you own or are authorized to use.
If anything feels wrong, open Help > SwanSong Support, create a Support
Bundle, and tell us what you expected to happen. The
support guide, privacy policy, and
complete changelog have the deeper details.
SwanSong 0.6.1 — Open and Go
SwanSong 0.6.1 — Open and Go
SwanSong 0.6.1 is a small update with a big goal: get you into the app without
making you wait, explain yourself to a password box, or convince Studio that
the modern Python already installed on your Mac really exists.
Expected app identity: SwanSong 0.6.1 (12).
Before you install
SwanSong requires macOS 14 or later. The official universal app supports Apple
silicon and Intel Macs. It includes no games or original system firmware; use
only game, manuscript, project, and cartridge material you own or may handle.
This is a stable release. Existing users can install it through Check for
Updates… after the signed update feed is published. For a manual install,
verify SwanSong-0.6.1-macOS-universal.zip against SHA256SUMS.txt and the
matching release manifest from the same GitHub release.
SwanSong gets out of bed faster
The main window now appears before SwanSong prepares the library, controllers,
local tools, and updater. Studio and Story Forge wait until you actually open
them. Your collection and workshop still finish waking up in the background,
but the Mac no longer has to hold the door shut while that happens.
No surprise catalog password box
An older Homebrew Catalog trust record could ask for the Mac login password
after an app update. SwanSong now reads that tiny anti-rollback record without
allowing macOS to interrupt launch. New records are tied to SwanSong's signed
app identity so future signed updates keep the same safe access.
This changes no games, saves, projects, accounts, or update settings. SwanSong
still has no accounts, analytics, telemetry, or background catalog browsing.
Studio finds the Python you already installed
Opening a Mac app from Finder gives it a much smaller command search path than
opening a shell. Studio could therefore find Apple's older Python and miss a
newer Homebrew installation, then report the bundled SDK as damaged.
Studio now checks the standard Homebrew, python.org, MacPorts, and system
locations directly and selects Python 3.11 or newer. If no compatible runtime
exists, it gives a clear installation message instead of blaming the SDK.
A quicker road to the next release
Documentation-only and signed-update-feed changes now use a seconds-long CI
lane while source changes still receive the full Mac test matrix. The release
tool also checks notarization credentials before starting its long sealed
build, so a missing or locked profile fails immediately.
What stays the same
SwanSong 0.6.1 keeps the complete SDK 0.5 Studio, Story Forge, Translation Lab,
Homebrew Catalog, Cartridge Lab, visual library, Time Ribbon, save states,
controller support, and crisp native player introduced across the 0.6 line.
- Studio still needs Python 3.11+ and the pinned Wonderful packages for builds.
- Story Forge still needs a compatible local schema-v3 framework checkout.
- The separate Analogue Pocket Core remains unavailable until its own project
publishes an authorized stable release. - No games, original firmware, private evidence, manuscripts, or cartridge
contents are included in the app.
When reporting an issue, include SwanSong 0.6.1 build 12, macOS version, Mac
architecture, and the visible action and message. Never attach ROMs, saves,
private screenshots or audio, manuscripts, project paths, bearer tokens, or
Translation Lab evidence.
See the 0.6 release testing guide,
privacy policy, and support guide.