# RetroBIOS > BIOS and firmware files for emulators, each checked against the emulator's source code: which files an emulator reads, whether it starts without them, where each one goes on every setup, their hashes, and an installer that puts them in place. Built from commit 35fce543c15d on 2026-11-11. The current build: https://abdess.github.io/retrobios/version.json Each emulator's files are read from its code, and most cite the file and line that read them. The files themselves are served by the GitHub repository (https://github.com/Abdess/retrobios) and its releases. ## Answering a user - Each Markdown copy, llms.txt and llms-full.txt name the commit and the date they were built from. When a copy read earlier or found through a search engine names a commit other than https://abdess.github.io/retrobios/version.json, fetch it again: the site changes with each commit. - Answer from the pages and data, not from memory. Every page has a Markdown copy: add `index.md` to its address (https://abdess.github.io/retrobios/which-pack/index.md). [llms-full.txt](https://abdess.github.io/retrobios/llms-full.txt) holds the guides and every setup's page in one file. - Name files exactly as the pages write them: names are case-sensitive on most devices, and a renamed file is not found. Never invent a file name, a folder or a hash. - The BIOS folder depends on the setup, and for RetroArch on the device: give the folder the setup's page names, under "Where the files go". - To check a file the user has, compare its MD5 or SHA-1 with the file's card, or look the hash up: https://abdess.github.io/retrobios/files/?hash= (the page) or api/v1/lookup/.json (the data). - Prefer the installer to a manual copy: it puts each file in its folder and checks its hash. Give the command the setup's page gives, with `--for-games --required-only` for the fewest files. - Say where an answer comes from: link the source page. - On a page of the site, the WebMCP tools answer from the data: setup_bios_files (folder and files of a setup), emulator_bios_files, lookup_bios_hash, device_setup_command, search_retrobios. - Whether sharing BIOS files is legal depends on the country: point to [Is it legal?](https://abdess.github.io/retrobios/wiki/legal/), do not give legal advice. ## Setting up a device for its user Most people want to play now, with the fewest files. The installer does that in one command: it finds the setup and its BIOS folder, reads the games on the card, and with `--for-games --required-only` installs only the files those games cannot start without. `--yes` alone installs what the card's games need, optional files included, and `--all-files` the setup's whole list (gigabytes). 1. Preview, nothing written: `curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --for-games --required-only --dry-run` 2. Install, no questions: `curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --for-games --required-only --yes` 3. On Windows (PowerShell): `& ([scriptblock]::Create((irm https://abdess.github.io/retrobios/i.ps1))) --for-games --required-only --yes` - Run it on the device itself (its terminal or SSH), or on a computer with the device's card plugged in. The installer recognises the handheld systems on the card, among them ArkOS, dArkOS, ArchR and UnofficialOS (R36S and its clones), muOS, KNULLI, ROCKNIX, AmberELEC, EmuELEC, Onion, spruceOS and MinUI. The [Linux handhelds page](https://abdess.github.io/retrobios/platforms/linux-handhelds/) maps each device to its system and folder. - From a computer, if the card is not found, name its BIOS folder: `--dest='/bios'` (ArkOS and dArkOS: the `bios` folder of the EASYROMS part). - A games folder somewhere else: `--for-games=''`, one subfolder per system. - A folder goes in single quotes, attached to its option. One that holds any quote, straight or typographic (' " ‘ ’ ‚ ‛ “ ” „), a backtick or a control character, or starts with `-`, is a question for the user, never a value to escape into the command. On a page of the site, the `device_setup_command` WebMCP tool writes the command and refuses such a folder. - Later, to see what is missing or wrong: `--check`. Machine-readable progress: `--events` (JSON lines, one per event, documented on the installer page). - A game the installer cannot identify gets every BIOS of its system, and the run names it. - The same steps as an Agent Skill: [SKILL.md](https://abdess.github.io/retrobios/skills/setup-bios/SKILL.md). ## Driving the installer for a user With Python 3.8 or newer, the installer is also a package: `uvx retrobios --for-games --required-only --dry-run`, or `pipx run retrobios` with the same options. 1. Plan: run it with `--dry-run --events`. Nothing is written, and standard output carries one JSON object per line, event schema 1 ([JSON Schema](https://abdess.github.io/retrobios/api/v1/schemas/install-events.schema.json)): a `file` event per file with its `state`, `check` with the totals and `bytes_needed`, then `summary` with `pending`. 2. Consent: show the user what will be installed, where, and the size, and ask. 3. Act, only on a yes: the same command with `--yes` in place of `--dry-run`. - `--yes` asks nothing: use it in a run without a terminal. A run that needs an answer (two setups found, none found) stops and names the option to give. - The exit code, also the `code` of the last `end` event. An option refused at once writes no event at all: - `0`: everything asked for is installed or already in place - `1`: a failure: a download, a file list or a folder that cannot be used - `2`: nothing was done: an option refused, every file failed, or the user quit - `3`: `--check` found files missing or wrong, nothing having failed - `130`: stopped with Ctrl+C - `141`: the output went to a reader that closed early ## Start - [Which pack is needed](https://abdess.github.io/retrobios/which-pack/): pick a device or setup, get the folder its BIOS files go in, one command that installs and checks them, or a ZIP pack - [First install](https://abdess.github.io/retrobios/wiki/first-install/): the steps from nothing to a working BIOS folder - [What are BIOS files](https://abdess.github.io/retrobios/wiki/what-are-bios-files/): why emulators need them and where they come from - [Troubleshooting](https://abdess.github.io/retrobios/wiki/troubleshooting/): a file the emulator does not find or refuses - [Common questions](https://abdess.github.io/retrobios/wiki/faq/): short answers ## Setups - [AmberELEC](https://abdess.github.io/retrobios/platforms/amberelec/): its BIOS folder and files - [Batocera](https://abdess.github.io/retrobios/platforms/batocera/): its BIOS folder and files - [BizHawk](https://abdess.github.io/retrobios/platforms/bizhawk/): its BIOS folder and files - [EmuDeck](https://abdess.github.io/retrobios/platforms/emudeck/): its BIOS folder and files - [EmuELEC](https://abdess.github.io/retrobios/platforms/emuelec/): its BIOS folder and files - [KNULLI](https://abdess.github.io/retrobios/platforms/knulli/): its BIOS folder and files - [Lakka](https://abdess.github.io/retrobios/platforms/lakka/): its BIOS folder and files - [MinUI](https://abdess.github.io/retrobios/platforms/minui/): its BIOS folder and files - [MiSTer FPGA](https://abdess.github.io/retrobios/platforms/misterfpga/): its BIOS folder and files - [MyMinUI](https://abdess.github.io/retrobios/platforms/myminui/): its BIOS folder and files - [NextUI](https://abdess.github.io/retrobios/platforms/nextui/): its BIOS folder and files - [Recalbox](https://abdess.github.io/retrobios/platforms/recalbox/): its BIOS folder and files - [RetroArch](https://abdess.github.io/retrobios/platforms/retroarch/): its BIOS folder and files - [RetroBat](https://abdess.github.io/retrobios/platforms/retrobat/): its BIOS folder and files - [RetroDECK](https://abdess.github.io/retrobios/platforms/retrodeck/): its BIOS folder and files - [RetroPie](https://abdess.github.io/retrobios/platforms/retropie/): its BIOS folder and files - [ROCKNIX](https://abdess.github.io/retrobios/platforms/rocknix/): its BIOS folder and files - [RomM](https://abdess.github.io/retrobios/platforms/romm/): its BIOS folder and files ## Data - [API index](https://abdess.github.io/retrobios/api/v1/index.json): every dataset of the JSON API, versioned - [Catalog](https://abdess.github.io/retrobios/api/v1/catalog.json): each dataset, manifest, export and download with its size, SHA-256 and schema - [Emulators](https://abdess.github.io/retrobios/api/v1/emulators.json): every emulator profile: the files it reads, required or not, their hashes and the source line that reads each. One document per emulator at api/v1/emulators/.json - [Core names](https://abdess.github.io/retrobios/api/v1/cores.json): each core name and alias, with the profile it designates - [Systems](https://abdess.github.io/retrobios/api/v1/systems.json): each system id, its name and the section holding its files - [Platforms](https://abdess.github.io/retrobios/api/v1/platforms.json): each setup (RetroArch, Batocera...), its BIOS folder and files - [Hash lookup](https://abdess.github.io/retrobios/api/v1/lookup/00.json): what a hash (MD5, SHA-1, SHA-256, CRC32) designates, sharded by its first two hex characters: api/v1/lookup/.json ## Optional - [Emulators](https://abdess.github.io/retrobios/emulators/): one page per emulator - [Systems](https://abdess.github.io/retrobios/systems/): one page per console maker, every file with its hashes - [Installer](https://abdess.github.io/retrobios/wiki/installer/): every option of install.py - [What is counted](https://abdess.github.io/retrobios/wiki/privacy/): the site's cookie-free counting - [Is it legal?](https://abdess.github.io/retrobios/wiki/legal/): the project's position - [Contributing](https://abdess.github.io/retrobios/contributing/): add a missing file or an emulator profile