emulator: x16emu type: standalone source: "https://github.com/X16Community/x16-emulator" upstream: "https://github.com/X16Community/x16-emulator" profiled_date: "2026-10-20" source_commit: "af1024080ced455ea098b007aed43142c99e93da" core_version: "r49" display_name: "Commander X16 (x16emu)" cores: - x16emu systems: - commanderx16 notes: | Standalone emulator for the Commander X16 retro computer by Michael Steil. 65C02/65C816 CPU, VERA video, YM2151+PSG audio, SD card, cartridge support. System ROM built separately from the x16-rom repo (KERNAL + BASIC + DOS, 32 banks x 16 KB = 512 KB). Emulator and ROM versions must match. Batocera configgen (x16emuGenerator.py) passes -rom /userdata/bios/commanderx16/rom.bin. Also sets -ram 2048, -rtc, and scale/quality/widescreen per user config. The pin is the r49 release tag (src/version.h VER "49"). The tree after it carries VER "50" with no emulator or ROM release behind it. files: - name: rom.bin path: commanderx16/rom.bin required: true bundled: true sha1: "eaa7b491d412c735a03952405a1112c079948950" md5: "c3b8d740e5d0260ebc35ff9f28d81cd0" max_size: 524288 description: "Commander X16 system ROM (KERNAL, BASIC, DOS, charset)" source_ref: "src/main.c:602, 626, 1163, src/glue.h:24" note: > Default filename "rom.bin", loaded from executable directory or via -rom flag. ROM_SIZE = NUM_ROM_BANKS(32) * 16384 = 524288 bytes. exit(1) if file not found. Built from x16-rom repo (open source, derived from C64 KERNAL/BASIC). Shipped beside the executable in every release zip. The hashes are those of the rom.bin in the r49 release zips, 262144 bytes: the loader reads up to ROM_SIZE and does not check the length.