The focused system's size is spelled out below the list when its name
leaves no room for it. The browser's system folder test is renamed
_os_folder: _system_folder already names the --from refusal.
The Flatpak RetroArch's folder at 000 hid the retroarch.cfg naming ~/Games/bios, and the run offered 6.6 GB to ~/.config/retroarch/system. A closed folder under HOME or above the default now leaves no default: --dest is asked for. Python 3.14's quiet Path.exists() refusals are told from absence by os.stat, and an assumed folder reads as the one a frontend usually reads.
One closed folder under HOME (~/.config/EmuDeck at 000) made the whole
detection return nothing: a RetroArch whose retroarch.cfg was readable
was lost and the run fell back to a folder it does not read. Every
detection probe now goes through _exists, _is_dir or _is_file, which
count a refused place as absent, name the closed folder once, and let
the other probes go on. The decorator stays as the last net.
The refusal is an unsearched event before detect. The interface keeps
the line above the list of setups. At HOME or a drive root A goes into
a visible subfolder, never a card or drive row nor .cache, and with
none it stays on Use this folder and says where it is. A default folder
taken because the platform was not found is no longer called detected.
With no usual folder the browser opened at HOME on Use this folder, and A pressed through the screens installed the BIOS files into ~. At HOME or a drive's root A now opens the first folder. Picking the old card to copy from is unchanged.
HOME kept across su without - made every detection probe raise PermissionError, and the run and the interface ended on a traceback. Detection now finds nothing there, says which folder this user cannot open and how to go on, on the first screen too.
The handheld launcher compared the idle close's line without install.py's RetroBIOS: prefix, and its test fake printed it the same way, so the device still waited 300 s: a test now ties both to TUI_IDLE_WORDS. The interface offered the built-in default folder when the folder found here could not be opened, a folder RetroArch does not read.
A system_directory read from retroarch.cfg under a folder this user cannot open ended the run, and the interface before its first screen, on a traceback. It now gets the refusal --dest gets. On a handheld, an idle close on an error screen shows that error for a few seconds instead of waiting for a button that cannot come.
An idle close exited 0 on every screen, an error one too. It now exits with the error's or the result's code and prints that screen's words after the idle line.
The save-folder line came from the check run only: after Choose systems the result named it for an unticked system, and the Confirm screen left it out for a kept one. The confirm, preview and install runs now carry their own saves event.
Path.exists() raised PermissionError from _missing_dest in line mode and from _choose in the interface. The run now names the folder and exits 1 (error event stage dest), and the interface asks for another folder.
The config was looked up by the BIOS folder exactly as typed: a relative --dest, a link or another case sent save-folder files to a guessed folder and refused --installed-cores.
A closed console answered ModuleNotFoundError from _terminal_gone inside run_tui's except block. The interface paths now run in a test with the POSIX modules gone.
The plan and the result now say how many files go to the save folder and
where, from a new saves event. With --from-pack they say the files come
from the pack, not a download. A stop asked for (Start+Select, SIGHUP)
ends on the plain outcome, without the log's last lines.
install.py > log.txt at a terminal wrote the menu into the file and
waited for an answer nobody saw. A question now needs stdin and stdout on
a terminal, otherwise the run goes on as with --no-input and says so.
A window can still answer tcgetattr while refusing writes. The check now
tries both, as the audit asked, and takes the terminal itself so a stand-in
without a descriptor is never read.
Offline with nothing here to copy, Install was removed, and a folder
short of space or read-only then put Install anyway back: a run that
could only fail every file.
Any EIO was read as the window closing, so a failing SD card ended the
interface with 129 and no error.log. The error now counts as a closed
window only once the terminal itself no longer answers tcgetattr.
A run given --dest, as every interface run is, never read the config
naming libretro_directory, so only installed cores found none where line
mode found them. core_dirs now asks _retroarch_config_for, as the save
directory does, and the advice to drop --dest goes.
RETROBIOS_IDLE_EXIT only counted while the first screen was up. Given
--platform, the check runs and the plan follows without a key, so the
close never came. It now counts from the end of the last run, as long as
no key has been pressed.
A --from folder holding the BIOS folder kept the list's own archive open
after listing its members, and Windows then refused to move it aside or
replace it. The index now notes the places a run writes, closes the
archives among them and opens them only for the read at hand.
Path.exists() lets PermissionError through, so a BIOS subfolder without
search permission stopped --check and installs before any file. The file
is now reported unreadable and the run goes on with the others.
gptokeyb2 owns the pad in muxterm on muOS with PortMaster, and muxterm keeps PgUp and PgDn for its scrollback. The launcher now says so with RETROBIOS_PAD=gptokeyb_muxterm, and the hints name the gptokeyb buttons with no paging key.
A server that took the connection and never answered held line mode
93 s, three waits of 30 s for a first byte. A file list now waits 15 s
per answer and asks a silent server twice. Downloads keep their own
timeout between chunks.
With --offline and no list, the full screen said No connection and
offered a Try again that could never work. It now names offline mode
and the two ways a run gets its list without the network. With a list,
the plan counted downloads the run forbids: it says what this machine
can supply and what needs the internet, and the printed command keeps
--offline.
The size column took half the line and cut every name to eleven
letters: Game Boy, Game Boy Advance and Game Boy Color read alike. A
system row now carries shorter size forms, and the longest one that
leaves the name whole is shown, none when that is what keeps it.
RETROBIOS_IDLE_EXIT=SECONDS: with no key on the first screen for that
long, before any choice, the interface exits 0 with one line. A mapper
that never opens the pad no longer freezes a handheld there.
A damaged member of a data tree's archive (zlib.error, EOFError) ended
the run on a traceback, and a failed write left its .part. --offline
refusing a data tree, or the download after a --from copy failed, lost
its kind, so the advice named the network instead of --offline.