github Utility-Muffin-Research-Kitchen/Leaf v0.12.0
Leaf v0.12.0 - Grid View, Themes, and New Languages

5 hours ago

Leaf v0.12.0 - Grid View, Themes, and New Languages

Leaf v0.12.0 adds Grid View, a new home layout you can dress with themes from Pak Rat,
and speaks French, Mexican Spanish and Japanese. The RetroAchievements account you save
in Leaf now signs in standalone Flycast and DSperate too. 60fps games at 120 Hz run
without judder, Leaf watches over your SD cards and repairs them, and the device does
far less work while it sits at the menu.

Grid View

Grid View shows your systems as a grid of rounded tiles. Its games page has the
list on the left, the cover on the right, the game's details and synopsis under it,
and the system's wordmark at the bottom. Choose it in Settings > Home Screen > Home
Layout
, and pick how many tiles fit on a screen with Grid Size, from 2 x 2 up to
8 x 6. Automatic means 4 x 3 unless your theme asks for its own size.

Rescrape a system to fill in the year, rating, genre, players and synopsis for games
you scraped before this release.

Every bundled system has a wordmark on the games page, tinted to your theme's text
color. To use your own, put a white-on-transparent wordmark.png in Roms/<SYSTEM>/,
or name it wordmark.color.png for a full-color logo Leaf draws as it is. Keep images
at most 1024 pixels on each side.

Themes in Pak Rat

Themes give Grid View its own colors, wallpaper and system tiles, and can bring their
own Cover Flow icons. Leaf ships one called Sample: choose it in Settings > Appearance > Theme. Installing
a Leaf update replaces Themes/Sample, so copy it under a new name before you edit it.
Themes with any other name are never touched.

Open Pak Rat and press Y to switch between Apps and Themes. Each theme shows a
preview, its author and its license. Press A to install one, and Leaf offers to
apply it straight away. Pak Rat keeps the themes it installed up to date, and Y
uninstalls one.

The first community themes are already there: Katong by
AlexL, and VanamoViking US, EU and JP by
TSOLfan. Browse them in the
Theme gallery, and see
Submit a theme to share your own. The
themes guide covers wordmarks, icons shared between
Grid and Cover Flow, licenses and size limits.

Box art can be JPEG

Box art can be .jpg or .jpeg as well as .png, in Images/<SYSTEM>/ or
Roms/<SYSTEM>/Imgs/. If a game has both, PNG wins. Central Scrutinizer's Replace
Art
accepts JPEG too. A cover that can't be decoded shows the system placeholder, and
loads by itself once you replace the file.

French, Mexican Spanish and Japanese

Choose Français, Español (México) or 日本語 in Settings > System >
Language
. Left and Right now browse the list without applying anything. Press
A and confirm, and Leaf switches language in place, without restarting the launcher.

  • Español (México) is 97 percent translated, thanks to Eric394 from our Discord.
  • Français is 96 percent translated, thanks to RobinC from our Discord.
  • 日本語 is new and 62 percent translated, contributed through our Discord. It uses a
    Japanese font, so kanji take their Japanese forms, and Chinese game titles still
    display.
  • 中文 now covers 88 percent of Leaf, thanks to AlexL
    and YinHeng89. AlexL also completed Chinese for
    Central Scrutinizer, Fugazi and Joe's Calibrage, and the standalone Nintendo 64 quick
    menu now follows Leaf's language and comes in Chinese.

Shader names and descriptions, and the volume and brightness banners, follow your
language too. Lines that aren't translated yet stay English. To help finish a language
or add your own, see Translating Leaf.

Settings, rearranged

Every Settings section now fits on one screen. Nothing you set changes, only where you
find it:

  • Home Screen is new, with Home Layout, Grid Size, System Icons,
    Tab Switching, Startup Tab and Home Tabs.
  • Appearance keeps Color Scheme, Colors, Theme, Font, Font Size,
    List Style and Status Bar.
  • Network is now Wi-Fi, beside Bluetooth.
  • Game Art is now Games, and holds Game Performance, Reset RetroArch
    Config
    and Accounts.
  • General is now System: Language, Time Zone, Auto Sleep, Boot
    Splash
    , SD Cards and Services.
  • Controls & Feedback is now Hotkeys & Rumble.

Also in Settings:

  • Rumble is now two switches, UI Rumble for the interface and Game Rumble
    for games, with one Strength. If rumble was off, both start off.
  • Time Zone lists 40 places covering every whole-hour offset from UTC-12 to UTC+14,
    plus the half-hour and quarter-hour ones, and daylight saving follows by itself. New
    Zealand is in. Iran is left out on purpose: the device firmware still applies the
    daylight saving Iran abolished in 2022.
  • Color Temperature, in Display & Sound, warms or cools the built-in screen from
    4000 K to 10000 K, games included. Neutral (6500 K) leaves it as it is. With HDMI
    connected, the row reads Panel only. Thanks to
    Thiago Araújo Silva
    (Jawaka #158).
  • On and off settings are switches, sliders sit on their row, and long labels use the
    room the value leaves.
  • In Home Tabs, turning a tab off leaves it where it is. Move tabs with X,
    hidden ones included.
  • The volume and brightness overlay is a small pill in the top left.

One RetroAchievements account for every emulator

Save your account once in Settings > Games > Accounts > RetroAchievements, and
standalone Flycast and DSperate sign in with it too, alongside RetroArch.

  • Change your password or sign out in Leaf and each emulator follows the next time
    it starts.
  • Your password only goes to RetroAchievements itself. The emulators sign in there
    directly and keep a sign-in token, the same way their own login would.
  • If sign-in fails, for example with no Wi-Fi, the emulator says so on screen and
    the game still plays.
  • Your own emulator logins are left alone until you save an account in Leaf.
  • Passwords with quotes or backslashes now reach RetroArch exactly. The one kind
    RetroArch's settings file can't hold, a double quote together with a space, # or a
    non-English letter, is still saved for the standalone emulators, and Leaf says
    Saved - RetroArch can't use this password.

Standalone Flycast moves from v2.6 to v2.7. Your v2.6 save states still load, and
quitting no longer waits on a slow RetroAchievements server. With RAOfflineProxy
0.1.1
from Pak Rat, casual Flycast games now go through it like RetroArch: anything
you unlock offline is sent when you reconnect. Hardcore always plays online, directly.
If RAOfflineProxy is on but not responding, you can Retry or Play directly.

Smooth 120 Hz

At 120 Hz with Black Frame Insertion off, a 60fps game now shows every frame for
exactly two refreshes, so scrolling games no longer judder. 50fps games at 100 Hz get
the same even spacing. A frame has about 8 ms to be ready at 120 Hz instead of 16, so
if a demanding game slows down at 120 Hz, play it at 60.

  • Black Frame Insertion always inserts a black frame. Leaf sets RetroArch's Swap
    Interval
    (Auto) and Dark Frames (1) on every launch, so changing them in
    RetroArch only lasts for that session.
  • Game Performance on Auto runs every game in Performance at 100 or 120 Hz.
    That avoids brief flashes with Black Frame Insertion, but uses more battery on light
    systems. A profile you picked yourself still wins, and 60 Hz is unchanged.

Dreamcast and performance

  • FlyCast Fast UMRK is a new, optional RetroArch core for Dreamcast, Naomi and
    Atomiswave, tuned for this handheld. Press X on a game or system, choose
    Core, then FlyCast Fast UMRK. Standalone Flycast stays the default.
  • Dreamcast, Naomi and Atomiswave games always run in Performance, whichever
    Flycast you use.
  • The in-game menu's Performance page shows the profile actually in use and no
    longer offers Auto, which only ever repeated Balanced or Performance there. A
    choice made there lasts until you quit, and Reset Override hands the game back to
    your usual setting. Thanks to AlexL
    (Jawaka #121).

Your SD cards are safer

When a card hits a file system error, the device turns it read-only. Leaf now notices,
shows an amber SD read-only badge, and offers Repair SD card.

  • Starting a game on a read-only card asks first, and save states are refused so
    you don't lose progress to a save that can't be written.
  • Repair restarts Leaf, checks and repairs the card with a progress screen, and
    shows what was fixed. Plug in the charger, or confirm Repair on battery with 30
    percent or more. Repair works on FAT32 cards.
  • Settings > System > SD Cards lists both cards with repair, check and unmount.
  • Shutdown makes sure your cards are closed. If something is still busy, shutdown
    pauses on a screen that says what it is waiting for and retries by itself. Tap the
    power button to retry now, or hold it for 2 seconds to go ahead anyway. The next boot
    then gives the card a quick check.
  • Low-battery shutdown works. Before, the handheld kept running until the battery
    cut the power with both cards open.
  • Games no longer flash black and return when Leaf's session log can't be written.
    When a launch does fail, every home layout shows a short notice saying why.

Exit to Stock now stops Leaf's audio service on the way out, and the recovery ZIP
puts the stock boot animation back.

A quieter, quicker device

  • At the launcher, Leaf now keeps under 10 percent of one CPU core busy, down from
    about 40. It waits for things to change instead of checking many times a second.
    Breath, Hiccup and Fountain LED effects update 10 times a second, so
    Hiccup's fastest speeds are slightly slower.
  • The speaker turns on just before a sound starts and off when nothing plays.
  • Buttons don't repeat or arrive late while Leaf is busy. One press on Font or
    Font Size moves one step, and Display & Sound no longer lags.
  • Sound comes back after sleep, and if the sound service ever stops, Leaf restarts
    it within a few seconds.
  • Wi-Fi stays on the network you pick, joins iPhone hotspots that refuse the first
    attempt, keeps asking for an address when the network doesn't give one, and stops
    using the previous network's DNS servers after you switch.
  • System Update finds a new release in about a second from this version on. Your
    update from v0.11.0 still uses the slower check. Releases (X) loads the full
    list when you open it, and a stalled check or download stops after 30 seconds with an
    error.

Pak Rat

  • DSperate is a new optional Nintendo DS emulator by
    beebono. Install it and choose it under
    Core for the Nintendo DS system or one game. DraStic stays the default, and
    DSperate keeps its own saves and states.
  • PICO-8 for Leaf runs PICO-8 natively with your own purchased copy: put the
    Raspberry Pi build's pico8_64 and pico8.dat in BIOS/PICO8/. Browse Splore from
    Apps, or choose PICO-8 (native) under Core. FAKE-08 stays the default,
    favorites you mark in Splore join your library, and pressing MENU twice returns to
    Leaf.
  • ScummVM now includes the standalone ScummVM. Choose ScummVM (Standalone) under
    Core for the system or one game.
  • Paks can add a wordmark and a Grid tile for the system they bring, as ScummVM and
    PICO-8 now do. Pressing MENU in an emulator a pak adds asks Return to Leaf?
    first, and those emulators get Leaf's calibrated controls.
  • An app's details page offers Update when one is available, and the bundled apps
    show an author and description.
  • SDLReader 2.5 can draw its menus and file browser in a larger font, set with
    uiFontSize in its config.json, thanks to
    Sebastian Ullrich
    (SDLReader #23).

Fun DraStic

  • Games with Chinese, Japanese or Korean names no longer open to a white screen and
    exit.
  • Saves and save states use the whole ROM name, as DraStic does. The first time you
    start a game whose name is longer than 28 characters, Leaf copies its save states,
    previews and cheat choices to the new name. The old files stay in
    Saves/NDS/states/.

Thanks to YinHeng89 for both fixes
(Fun-Drastic-src #1,
Fun-Drastic-standalone #8).

Other improvements

  • Saturn games you never chose a core for now start in RetroArch, Leaf's default
    Saturn emulator. If you have been playing one in standalone YabaSanshiro, choose it
    again under Core: the two keep separate saves and states.
  • Central Scrutinizer previews images in its file browser, reports a read-only or
    full card clearly, and its uploads to a second SD card no longer fail.
  • File Explorer's keyboard hints now match its buttons: B deletes a character
    and Y cancels.
  • Nintendo 64: with the Ebony theme, the quick menu's selected item is readable
    again, thanks to AlexL.
  • SSH Server no longer deletes a system file when its service stops.
  • The Saturn BIOS picker refuses a folder path that is too long instead of opening a
    truncated one.

Thank you

Thanks to everyone outside the team whose work is in this release:

  • AlexL for Chinese across Leaf and its apps, the in-game
    Performance fix, the Nintendo 64 menu fixes and the Katong theme
  • YinHeng89 for Chinese and the Fun DraStic fixes
  • Thiago Araújo Silva for Color Temperature
  • RobinC and Eric394 from our Discord for French and Mexican Spanish, and the
    Discord member who started Japanese
  • TSOLfan for the VanamoViking themes
  • Sebastian Ullrich for SDLReader's menu font size
  • beebono for DSperate
  • BrenMan99, goooooouwa
    and frieze23, whose reports led to the time zone list,
    the rumble switches, JPEG box art and the Fun DraStic name fix
  • everyone who tested the eight 0.12.0 betas

Installing

Existing Leaf installations can update through Menu > Actions > System Update. If
you used the beta channel, set Update Channel back to Stable when you want
future stable updates. If you have DSperate or RAOfflineProxy, update them in
Pak Rat afterwards.

For a fresh install, extract leaf-mlp1-sd-v0.12.0.zip to the root of a FAT32 or ext4
SD card and boot the handheld with it inserted. Your games, saves, states, and settings
are left in place.

To return to stock, extract leaf-mlp1-recovery-v0.12.0.zip to the card root and boot
once with it inserted.

Everything from Leaf v0.11.0 and earlier releases is included.

Don't miss a new Leaf release

NewReleases is sending notifications on new releases.