Skip to content

Releases: BezelMedia/Bezel

Bezel v0.3.7

Choose a tag to compare

@BezelMedia BezelMedia released this 18 Aug 21:35

The One Stage (Windows)

Playing a game no longer means looking at your desktop around it. Bezel's own window
becomes the whole screen and RetroArch sits inside it — no wallpaper, no taskbar, no
second window floating over the top. The game is set into the scene with the picture
carved to fit beside Bezelie rather than letterboxed into dead space.

Turn it on in Settings → Bezelie → RetroArch games → Fullscreen stage. There's a
second option under it to have Bezelie stand on the stage herself, in the same window
as the game, instead of running in her own overlay strip. Both are off by default, and
the panel now tells you when the stage can't be used and why.

Bezelie plays, and gets better at it

She reads the game's memory instead of squinting at pixels — position, lives, laps,
health — so she knows where she is, what's moving, and which way is forward. She
recognises the route through a level and remembers it between sessions, reacts inside
a single frame, and works out when a game is lying to her about whether she's even
playing.

She also practises on her own and reviews what happened afterwards, so her profile for
each of your games improves over time.

Karaoke

She sings on the beat rather than near it, dances in time, and can hand you the mic for
a duet. Lyrics are readable again, her solos are her own, and she gives the stage back
cleanly when the song ends.

Translation & the script tool

The per-glyph reader now works without an API key. Building a font table for a ROM
no longer needs a paid vision model — the character recogniser runs locally, downloading
once on first use.

Fixes

  • Save states now tell the truth. A save that couldn't be written reported success
    and cleared the slot list — most visibly if your saves live on a cloud or network
    folder that wasn't mounted. Failures are now reported, and the slot index is written
    atomically so an interrupted save can no longer strand your earlier states.
  • Screen recordings report a failed write instead of saying "Recording saved". The
    partial file is kept, since it's often still playable.
  • Switching games credits the game you were playing — its playtime, its speedrun run
    and Bezelie's session review were all being discarded when you launched something else
    without quitting first.
  • Audio CD playback could reach a state where Stop and the transport controls
    insisted no disc was playing while it kept playing.
  • The music queue no longer stops dead when a track's file has moved or its drive
    is unplugged — it skips to the next song.
  • The taskbar no longer shows through during external play.
  • Bezelie recovers from a lost GPU context by rebuilding just her avatar, so she comes
    back in a moment instead of reloading the whole app.
  • macOS: the HDR option no longer forces a video driver the bundled RetroArch build
    can't use, which prevented games from opening at all.
  • "Copy error" works from a controller.

Bezelie's AI features (commentary, conversation, her play brains) need a Premium plan;
everything else here is part of the app.

Bezel v0.3.6

Choose a tag to compare

@BezelMedia BezelMedia released this 10 Aug 02:46

This one is almost entirely about Bezelie — how she moves, and what her face actually tells you.

She moves like someone is there

A ground-up pass on how her model is driven. Most of what made her read as a puppet turned out to be defects rather than missing features, and they are fixed:

  • She looks where you actually are. Every gaze she made was previously at maximum deflection — a cursor an inch from her nose turned her head as hard as one at the far edge of the screen. Gaze is now proportional to where you are, and when she turns to face you she genuinely faces you.
  • Her head stops leaning. She had a habit of settling with her head turned or tilted and staying there. She now rests near centre with a gentle drift.
  • She breathes properly — about sixteen times a minute, with a real inhale and a longer exhale, instead of a slow three-times-slower pulse.
  • Blinking is human. Roughly fourteen a minute, closing about twice as fast as it reopens, with the occasional double blink, and blinks now cluster when her gaze shifts.
  • She shifts her weight, breathes into her chest, and her jaw moves when she speaks — her lips used to part on a jaw that never moved.
  • Gestures ease instead of snapping between poses, and she has a head-and-body vocabulary she simply did not have before: nods, a double nod, a head shake, a questioning tilt, a recoil, a sigh, leaning in.

Her expressions mean something

Her face had eight emotion tags and four of them barely showed anything — one of them was rendering the wrong feeling entirely, and an angry line came out with a smile on it.

  • Thirteen composed expressions replace the old set, built from the character's own artwork: happy, excited, sad, angry, surprised, smug, blush, wink, embarrassed, dread, deadpan, thinking and sleepy.
  • Expressions arrive rather than snapping on at full strength, and a face no longer gets stuck — switching or clearing an emotion leaves nothing behind.
  • She can blink while making a face, which she could not do before.
  • New range she never had: the light going out of her eyes, going pale, and a proper flustered look.

She listens back

  • While you are talking she now behaves like a listener — small nods, a raised brow when you emphasise something, and she looks at you (without pulling her gaze off a mouse you are actively moving).
  • She looks away while thinking and back to you as she answers, and takes a breath before she speaks.
  • Her head moves with her own speech: beats on stressed syllables, brows on emphasis, and — the part that matters most — she goes still between phrases.
  • Her mouth actually forms different vowel shapes instead of being one hole that changes size.

She has moods

Emotions used to vanish the moment they timed out. Now what she feels lingers: a mood builds from the faces she makes and fades over a few minutes, quietly colouring her resting expression, how much she moves, her breathing, and how readily she meets your eyes.

Playing games

  • She can practise on her own. Off by default — turn it on in Settings → Bezelie and she will pick a game and play it while you are away, within quiet hours and a time budget you set, and she stops the moment you come back.
  • She drives noticeably better: she steers toward the racing line ahead of her instead of at it, and recovers more reliably after going off track.
  • Her concept-forming works without an API key. Previously the part of her that turns experience into ideas she can name was effectively paid-tier only; it now runs for everyone.

Fixes

  • Her animation no longer runs at a different speed depending on your monitor's refresh rate.
  • Chest and secondary motion now respond to how she moves, rather than being wired to parameters that did not exist.
  • Reaction animations that were silently doing nothing now play.

Bezel v0.3.5

Choose a tag to compare

@BezelMedia BezelMedia released this 01 Aug 16:05

Quick Resume

Close a game, come back, and press ⏵ Resume — you're back at the exact frame you left, like a console waking up. The button only appears when there's actually something to return to, and it tells you how long ago that moment was.

▶ Play stays right beside it for a fresh start, so nothing is taken away.

RetroArch games only. Save-state reliability varies by core, and it's skipped entirely under RetroAchievements hardcore, where save states are disabled.

Your PlayStation memory cards, the way the console showed them

Open a PS1 game's Details and there's the real card: every save with its own animated icon, its title, and how many blocks it takes. The icons are the actual ones stored on the card, animating exactly as they did in 1997.

You can export a save to share or archive it, import one you've downloaded, back up the whole card, or delete a save you're done with.

Two rules the manager will not break: it never writes while a game is running (RetroArch rewrites the card on exit and would undo it), and it always keeps a dated backup beside the card first. Deleted saves stay listed and marked recoverable, because that's the truth of the format — the console hides them, but the data is there until something overwrites it.

Cheats

One download brings libretro's cheat collection — thousands of games across 44 systems. Open any game's Details, tick what you want, hit Apply, and they're on at the next launch.

Matching finds your game even when your dump is named differently from the collection's, and falls back to the game's title so romhacks still find their base game.

If RetroAchievements hardcore is on, the panel says plainly that RetroArch turns achievements off while cheats are active. Core support for cheats varies; if one does nothing, that's the core.

Every theme is alive now

Themes used to be colour schemes. Now each one has a wallpaper that quietly moves and chrome that opens onto it instead of sitting in opaque bands over a flat background.

  • Bezelie's Room — her den: aurora, washi tape, falling stars
  • Console — sleek and cyan, with faint ABXY glyphs drifting behind the shelf and a selection that gently breathes
  • Night Drive (new) — synthwave at 2am: magenta and cyan, CRT scanlines, and a neon grid rolling toward you under the games
  • Midnight (new) — true black for OLED screens, with embers rising through it
  • Bezel Amber and Bezel Classic — a hearth glowing beneath the shelf, each tinted by its own accent

Picking a theme is different too: Settings → Appearance now shows a real screenshot of Bezel wearing each one, so you can see what you're choosing before you choose it. The Community tab uses the same previews.

Light mode stays clean and still on every theme — the wallpapers are for dark mode.

Search that finds what you meant

Typing ff7 now finds Final Fantasy VII. smk finds Super Mario Kart. chorno trigger finds Chrono Trigger. sup mar brings up the Super Mario games.

Results are ordered by how well they match, so the game you meant is first. Everything that matched before still matches — this only adds ways to find things, and it's careful about it: searching mario won't start showing you Wario.

Fixes

  • Album art no longer stays a blank placeholder after you identify, rip or scan an album — it used to need leaving the Music tab and coming back.
  • A personal best in the last fraction of a minute displayed as 0:60.0 instead of 1:00.0.
  • In Details, content could scroll visibly through the buttons at the bottom in every dark theme.
  • The last row of games could never be scrolled clear of the floating dock on themes that use one.
  • Bezelie's wrong-way sense was reading the wrong kart when she practices alone — it was checking a rival's memory instead of her own, which made every practice lap she completed get graded as if she'd driven it backwards, and stood down her ability to turn herself around. She now reads her own.
  • Bezelie now learns which of her own senses to trust. She keeps a record per sense and shrinks her confidence where that sense has been wrong before, so what surprises her is a genuine discovery rather than her own routine noise.

Bezel v0.3.4

Choose a tag to compare

@BezelMedia BezelMedia released this 27 Jul 19:30

macOS: this build installs

0.3.3 and 0.3.2 were rejected by Gatekeeper on Apple Silicon — macOS threw them straight in the trash, and the usual xattr workaround no longer helped. The signature really was invalid: the app was signed from the outside in, which leaves the nested helpers and frameworks unsigned.

Bezel is now signed inside-out — every nested binary first, the outer app last — and the build itself verifies the result with codesign --verify --deep --strict and fails if it doesn't hold. If the dmg exists, its signature passed.

It is still ad-hoc signed rather than notarised, so on first launch use right-click → Open (or System Settings → Privacy & Security → Open Anyway). After that it opens normally.

Speedrun timer with automatic splits

Turn it on for any game in its Details panel and a timer appears in the corner when you launch. It splits by itself when you reach a new stage — no configuration, no manual split hotkey.

It works because Bezel already reads live game memory and already knows each game's stage and position fields, which is exactly the part that takes hours to set up in other timers. Splits show green when you're ahead of your best and red when you're behind, and your golds are kept per split, so a good first stage still counts even if the run dies later.

Times are casual-PB grade (about a tenth of a second), not leaderboard grade — the timer says so in its own footer. RetroArch games only.

Play with a friend, without the dump roulette

Netplay's real failure has never been the connection — it's that both sides need the same core on the same ROM, and when they don't you get a desync a minute in instead of an error.

Bezel knows exactly which dump you have, so the friend code carries that identity. Host, hit "Make code", send the string. When your friend pastes it, Bezel checks it against their shelf before anything launches and tells them plainly: you're good, or you both have the game but not the same dump (naming every copy they own, so they check the right file), or they don't have it at all.

It does not solve NAT — there's no relay or lobby. The host still needs to be reachable: same network, port-forwarded, or something like Tailscale. That's said in the panel too, rather than left for you to discover after three failed joins.

Soundtrack radio

Your music library now has stations built from what's actually in it — by composer and by era. Pick one and it fills the queue on shuffle. There is deliberately no "music from games you own" station: nothing in the tracks links them to a game, and guessing by title would be wrong more often than right.

Coming from LaunchBox or EmulationStation

Point Bezel at your existing setup and it adopts your favourites, playlists and titles.

It never copies, moves or touches a ROM. Re-scanning ROMs is cheap; rebuilding years of curation isn't. It reports what it found first ("412 matched, 38 favourites, 21 you don't have") and only writes when you confirm, and running it twice won't undo the first run.

Steam Deck

The on-screen keyboard no longer pops up over text boxes and hijacks controller navigation.

Bezelie

  • She says "43 seconds" instead of "43 second" — and gets other spoken numbers right.
  • Her stammer lands properly, so tsundere lines sound the way they read.
  • Starting a game no longer queues up a pile of sentences she then has to work through.
  • She stops burning attention on thoughts she can't voice, so what she does say arrives when it's relevant.

Fixes

  • Album art no longer stays a blank placeholder after you identify, rip or scan an album. It used to need leaving the Music tab and coming back.
  • A personal best in the last fraction of a minute displayed as 0:60.0 instead of 1:00.0.

Bezel v0.3.3

Choose a tag to compare

@BezelMedia BezelMedia released this 26 Jul 01:41

Bezelie grew up a lot in this one. She plays better, and for the first time she remembers what she was starting to want.

She plays better

  • Twice the reactions at the wheel. Her driving loop was thinking roughly six times a second — about eleven frames between decisions, which is slower than a corner arrives. She now decides far more often, and the loop reports its own real rate instead of assuming one.
  • She steers by where she actually is, not by a speed value the game reports incorrectly. That single change fixed steering that went soft at speed and a "stuck" alarm that kept interrupting real driving.
  • She stops watching herself. Part of what she was looking at was her own overlay rather than the game.
  • She studies the leaders. The kart that is genuinely getting around the track becomes her teacher, so she can learn a line on a track she has never finished.
  • Better recoveries. Rescues commit to one direction instead of spinning, and she no longer gets pulled out of a recovery she was already completing.
  • Racing rewards every lap, not just finished ones, so a difficult track still teaches her something.
  • Her brain reaches games it never used to: hundreds of titles were falling back to a generic behaviour because their genre never reached her.

She is more herself

  • Her wants survive a restart. Everything she was starting to want was being reset every time Bezel launched. It carries over now.
  • Memory without an API key. She can recall what you have done together using her local memory, so her history is not gated behind a key.
  • She can act on her own — currently limited to putting music on, deliberately, with a capability boundary that decides what she may and may not start by herself.
  • She can hold a thought and bring it up when there is room, instead of losing it because something louder happened first.
  • Karaoke is fixed: her mouth moves in time, audio no longer leaks between songs, and stray stage directions are no longer read aloud.
  • She repeats herself less, and she stops raising her own old jokes as unfinished business.

Fixes

  • Super Mario Kart no longer deadlocks with a live race being treated as a menu.
  • Fixed a case where quitting a game could leave the app hung.
  • Street Fighter II play, character-correct special moves, and her fighting commentary.
  • API keys in Settings are masked.
  • Her voice no longer replays an interrupted line after you cut her off.
  • Emulator staging and disc launching no longer bury her overlay.
  • Per-game session reports at the end of a play session.

Bezel v0.3.2

Choose a tag to compare

@BezelMedia BezelMedia released this 22 Jul 10:48

Bezel v0.3.2

Bezelie stays put — the mid-game crashes are fixed.

Stability

  • Fixed the crashes where Bezelie would vanish during play. The cause was her own overload — bursts of voice lines and mic activity were spiking the GPU and dropping her graphics. She now speaks one line at a time (a flurry of triggers collapses to the latest), and her microphone can no longer be accidentally machine-gunned into a crash.
  • Push-to-talk no longer fires while you're typing in her chat box, and rapid mic taps can't stack up anymore.

Performance

  • Bezelie's companion rig now runs at a capped framerate instead of rendering hundreds of wasteful frames a second. Same look, far lighter on the GPU — smoother for both her and your game.

Voice

  • Cleaner local voice playback (whole-clip), with no overlapping or self-interrupting lines.
  • She reads things more naturally now — times like "1m30" as "one minute thirty", scores like "22/54" spoken properly, and stray stage directions no longer read aloud.

Companion & sharing

  • Downloaded game-soul files (.bzgame) are now inspected before they're applied, so you always see what a shared file contains first.
  • The microphone chat is gated to Premium.

Themes

  • New built-in Bezel Classic theme — the original cool-gray look, in Settings → Appearance.

Fixes

  • Steam Deck Game Mode overlay + stability improvements.
  • Aspect-ratio and head-tilt fixes, plus assorted crash hardening.

Bezel 0.3.1

Choose a tag to compare

@BezelMedia BezelMedia released this 21 Jul 16:12

What's new

Steam Deck

  • Bezelie now appears over your game in Game Mode (composited via gamescope's overlay layer)
  • Text fields no longer pop the on-screen keyboard on nav focus — it opens only when you press A

Stability

  • Fewer GPU-related freezes during heavy cores and streaming; smoother automatic recovery when a graphics context is lost
  • More reliable overlay captions (watchdog + fallback), no duplicate/echoed lines

Bezelie

  • Calmer, less erratic head movement
  • Less chatty during play, and she no longer narrates routine saving
  • Default free-tier voice is now Jenny
  • Tutorial replay no longer skips her voice lines

Bezel v0.3.0 — Meet Bezelie

Choose a tag to compare

@BezelMedia BezelMedia released this 21 Jul 13:03

Bezel v0.3.0 — Meet Bezelie

The big one: Bezel now has a companion. Plus a music suite, a built-in TV, a cozy home, and a season of polish across the whole launcher.

💜 Bezelie — your AI companion

An optional, fully-voiced companion who lives inside Bezel and plays along with you.

  • She watches and reacts — sees your screen in real time and commentates out loud: hyping a clutch play, groaning at a cheap death, clocking the boss that just wrecked you.
  • She talks, and listens — her own built-in voice (free — or bring your own ElevenLabs voice), and you can just hold a button and talk back.
  • A mind that grows — memories, a diary of who she's becoming, moods, opinions, and a bond that deepens the more you play. Her whole self saves to one portable "soul" file that survives a reinstall or moves to a new PC.
  • She can play, too — stuck on a part? She'll take the controller, learn the game, and drive.
  • Make her yours — pick her personality (teasing tsundere, sweet, or write your own), tune her voice, her look, and how chatty she is.
  • Put her On-Air — she doubles as a real VTuber with her own stream stage, chat interaction, and auto-clipped highlights (streaming-safe by design).
  • Optional Premium unlocks her deeper mind; her voice and reactions are free.

🎵 Music suite

  • Bezel captures each game's own soundtrack and plays it as you browse, looping seamlessly — generated free from the games you own.
  • Rip and play audio CDs, with automatic album identification.

📺 A TV, built in

  • Browse and watch YouTube and Twitch right inside Bezel with your controller — ads blocked, video ads auto-skipped.
  • Pin a video or stream and it follows you into the game, floating in the corner while you play.

🏠 Bezelie's Room & themes

  • A cozy home view with a warm greeting and a big "Continue" card, plus a full suite of UI themes.
  • A community hub for one-click themes, channel packs, and bezel frames.

✨ More

  • RetroAchievements — earn achievements as you play, with a built-in dashboard.
  • On-screen translation — a smarter, self-learning table solver for import games.
  • Instant replay & share cards — capture and share your best moments.
  • Collections with smart lists (Unplayed, Recently played, and more).
  • Offline speech recognition that works on all three platforms.
  • Security hardening — your session token is now encrypted at rest.
  • Countless fixes to stability, launching, controllers, and the couch experience.

Windows: download Bezel-0.3.0-Setup.exe. SmartScreen may warn (not code-signed yet) → More info → Run anyway.
Steam Deck / Linux: download Bezel-x86_64.AppImage, mark it executable, run it.
macOS (Apple Silicon): download the .dmg, drag to Applications, right-click → Open the first time (not notarized yet). Experimental.

Bezel ships no games or BIOS — bring your own files.

Bezel v0.2.2

Choose a tag to compare

@BezelMedia BezelMedia released this 10 Jul 01:31

Bezel v0.2.2

New: Console theme (built in)

  • A new Console theme ships in the box — no download needed. Pick it in Settings → Appearance.
  • Bottom icon dock with hand-drawn console icons, a floating top bar, and an oversized box-art wall.
  • Full-width footer banners: the now-playing music bar and the game-info bar are now matched, clean edge-to-edge bars.
  • Full controller navigation for the dock: L1/R1 move between icons, A to enter, B returns home, and entering a section focuses the first tile.
  • Collections launcher in the dock with a pop-up picker and a + New collection button you can name with the on-screen keyboard.

Themes

  • Custom themes can now rearrange the whole UI — icon dock, big-tile home wall, and floating chrome — not just recolor it.
  • Groundwork for wallpaper-backed themes.

Collections & library

  • PC Engine and PC Engine CD are now tracked as separate systems.
  • Better cover-art matching with per-title name overrides (fixes a few mismatched banners).
  • Fixed generated-music matching for some titles.

Platforms

  • Windows, Linux (AppImage), and macOS (Apple Silicon) builds.

Bezel v0.2.1

Choose a tag to compare

@BezelMedia BezelMedia released this 08 Jul 23:13

Bezel 0.2.1 — the Community update. Now on Windows, Linux, and macOS (Apple Silicon).

🧩 New: Community tab

  • Themes — one-click reskins with live previews. Pick a preset or set a custom accent in Settings → Appearance; copy/paste themes as JSON to share.
  • TV channel packs — add curated channels to your TV tab in one click (merged with yours, never replacing them).
  • Bezel frames — downloadable frame art for the in-app player.
  • Bezel Channel — a built-in feed of the latest release notes.

Everything is community-made and hosted on GitHub — no account, nothing uploaded. Make something cool and share it: github.com/BezelMedia/bezel-community

📸 Share my shelf

Generate a shareable image of your collection — game count, hours played, your most-played title, and a wall of your favorite covers. Rendered locally, copy or save with one click (works with a controller too).

🗃️ Collection fixes

  • Cleaned up duplicate owned games from CSV re-imports.
  • Merged No-Intro alternate-title duplicates in the catalog.
  • Fixed wrong box art appearing on some early-console games.

🍎 macOS

The Apple Silicon build now rides the same release and auto-updates. Still experimental — first launch may need a right-click → Open.