emulator: XRoar type: standalone source: "https://www.6809.org.uk/git/xroar.git" upstream: "https://www.6809.org.uk/xroar/" profiled_date: "2026-03-26" core_version: "1.10" display_name: "Dragon / CoCo / MC-10 (XRoar)" cores: - xroar systems: - dragon32 - dragon64 - coco - coco3 - mc10 notes: | XRoar by Ciaran Anscomb emulates Dragon 32/64, Tandy CoCo 1/2/3, MC-10, Alice, and clones (MX-1600, CP-400, Dragon 200-E, Deluxe CoCo). ROM files are searched in a configurable rompath directory with automatic extension appending (.rom, .ROM, .dgn, .DGN). Batocera sets rompath to /userdata/bios/xroar/. The romlist mechanism defines fallback filenames per ROM slot. Each machine type has a default romlist that tries filenames in priority order. CRC32 is computed for loaded ROMs and matched against known-good values for breakpoint and feature detection, but mismatches do not prevent loading. Machine selection: Batocera maps system names to default machines via xroarGenerator.py (mc10 -> mc10, dragon64 -> dragon64, others -> coco2bus). files: # ---- Dragon 32 ---- - name: "d32.rom" system: dragon32 description: "Dragon 32 BASIC ROM" required: true size: 16384 crc32: "e3879310" validation: [crc32] aliases: [dragon32, d32rom, "Dragon Data Ltd - Dragon 32 - IC17"] source_ref: "xroar.c:643 (romlist d32), dragon.c:792,798-803,820-821 (load + CRC)" note: "Combined 16K ROM. Loaded into a single 16384-byte rombank slot." # ---- Dragon 64 ---- - name: "d64_1.rom" system: dragon64 description: "Dragon 64 32K mode BASIC ROM" required: true size: 16384 crc32: "84f68bf9" validation: [crc32] aliases: [d64rom1, dragrom, "Dragon Data Ltd - Dragon 64 - IC17", "Dragon Data Ltd - TANO IC18", "Eurohard S.A. - Dragon 200 IC18"] source_ref: "xroar.c:641 (romlist d64_1), xroar.c:647 (romlist dragon64), dragon64.c:138-141,155-157 (load + CRC)" note: "IC17 ROM. Required for the machine to start." - name: "d64_2.rom" system: dragon64 description: "Dragon 64 64K mode BASIC ROM" required: false size: 16384 crc32: "17893a42" validation: [crc32] aliases: [d64rom2, "Dragon Data Ltd - Dragon 64 - IC18", "Dragon Data Ltd - TANO IC17", "Eurohard S.A. - Dragon 200 IC17"] source_ref: "xroar.c:642 (romlist d64_2), xroar.c:648 (romlist dragon64_alt), dragon64.c:146-152,160-162 (load + CRC)" note: "IC18 ROM. 64K mode alternate BASIC. Machine starts without it (32K mode only)." # ---- Dragon 200-E ---- - name: "d200e_1.rom" system: dragon64 description: "Dragon 200-E BASIC IC18 (Spanish)" required: true size: 16384 crc32: "95af0a0a" validation: [crc32] aliases: [d200e_rom1, ic18_v1.4e.ic34] source_ref: "xroar.c:644 (romlist d200e_1), xroar.c:650 (romlist dragon200e), xroar.c:735 (crclist)" note: "Required for Dragon 200-E. Falls back to d64_1 then generic dragon if not found." - name: "d200e_2.rom" system: dragon64 description: "Dragon 200-E BASIC IC17 (Spanish)" required: false size: 16384 aliases: [d200e_rom2, ic17_v1.4e.ic37] source_ref: "xroar.c:645 (romlist d200e_2), xroar.c:651 (romlist dragon200e_alt)" note: "64K mode alternate. Falls back to d64_2 if not found." - name: "d200e_26.rom" system: dragon64 description: "Dragon 200-E external character generator ROM" required: false size: 4096 aliases: [rom26.ic1] source_ref: "xroar.c:652 (romlist dragon200e_charset), dragon.c:523-539 (ext_charset load)" note: "Spanish character set. Loaded into a 4096-byte rombank. Machine works without it (uses standard charset)." # ---- Dragon Professional (Alpha) ---- - name: "alpha-boot-v1.0.rom" system: dragon64 description: "Dragon Professional (Alpha) boot ROM v1.0" required: true crc32: "d6172b56" validation: [crc32] aliases: [alpha_bt_10, "Dragon Data Ltd - Dragon Alpha Boot v1.0 150584"] source_ref: "xroar.c:654 (romlist dragonpro_boot), xroar.c:741 (crclist), dragonpro.c:231-234 (load)" note: "Required for Dragon Professional machine. Loaded as extbas_rom (boot ROM)." - name: "alpha-basic.rom" system: dragon64 description: "Dragon Professional (Alpha) BASIC ROM" required: true aliases: [alpha_ba, "Dragon Data Ltd - Dragon Alpga Basic"] source_ref: "xroar.c:655 (romlist dragonpro_basic), dragonpro.c:240-243 (load)" note: "Loaded as altbas_rom. Falls back to d64_1 if not found." # ---- Tandy CoCo (Colour BASIC) ---- - name: "bas13.rom" system: coco description: "Tandy CoCo Colour BASIC 1.3" required: true size: 8192 crc32: "d8f4d15e" validation: [crc32] source_ref: "xroar.c:657 (romlist coco), xroar.c:747 (crclist bas13), dragon.c:807-812,824-826 (load + CRC)" note: "Default Colour BASIC. First tried in the @coco romlist. 8K ROM loaded into slot 1 of a 2-slot rombank." - name: "bas12.rom" system: coco description: "Tandy CoCo Colour BASIC 1.2" required: false size: 8192 crc32: "54368805" validation: [crc32] aliases: ["Color Basic v1.2 (1982)(Tandy)"] source_ref: "xroar.c:657 (romlist coco), xroar.c:746 (crclist bas12)" note: "Alternative to bas13. Second in fallback order." - name: "bas11.rom" system: coco description: "Tandy CoCo Colour BASIC 1.1" required: false size: 8192 crc32: "6270955a" validation: [crc32] source_ref: "xroar.c:657 (romlist coco), xroar.c:745 (crclist bas11)" note: "Used by CoCo 1E. Third in fallback order." - name: "bas10.rom" system: coco description: "Tandy CoCo Colour BASIC 1.0" required: false size: 8192 crc32: "00b50aaa" validation: [crc32] source_ref: "xroar.c:657 (romlist coco), xroar.c:744 (crclist bas10)" note: "Earliest version. Used by original CoCo 1. Last in fallback order." # ---- Tandy CoCo (Extended Colour BASIC) ---- - name: "extbas11.rom" system: coco description: "Tandy CoCo Extended Colour BASIC 1.1" required: true size: 8192 crc32: "a82a6254" validation: [crc32] source_ref: "xroar.c:658 (romlist coco_ext), xroar.c:752 (crclist extbas11), dragon.c:798-803,828-829 (load + CRC)" note: "Default Extended BASIC. 8K ROM loaded into slot 0 of a 2-slot rombank." - name: "extbas10.rom" system: coco description: "Tandy CoCo Extended Colour BASIC 1.0" required: false size: 8192 crc32: "e031d076" validation: [crc32] source_ref: "xroar.c:658 (romlist coco_ext), xroar.c:751 (crclist extbas10)" note: "Earlier version. Second in fallback order." # ---- Tandy CoCo 3 ---- - name: "coco3.rom" system: coco3 description: "CoCo 3 Super Extended Colour BASIC (NTSC)" required: true size: 32768 crc32: "b4c88d6c" validation: [crc32] source_ref: "xroar.c:688 (romlist coco3), xroar.c:762 (crclist coco3), coco3.c:254-256,512-526 (load + CRC)" note: "32K combined ROM. Single required ROM for CoCo 3 NTSC." - name: "coco3p.rom" system: coco3 description: "CoCo 3 Super Extended Colour BASIC (PAL)" required: true size: 32768 source_ref: "xroar.c:689 (romlist coco3p), xroar.c:505,514 (machine config), coco3.c:254-256" note: "PAL variant of the CoCo 3 ROM. Required for PAL CoCo 3 machines." # ---- Tandy MC-10 ---- - name: "mc10.rom" system: mc10 description: "Tandy MC-10 Microcolour BASIC" required: true size: 8192 crc32: "11fda97e" validation: [crc32] source_ref: "xroar.c:695 (romlist mc10), xroar.c:767 (crclist mc10), mc10.c:157-158,397-407 (load + CRC)" note: "Single required ROM for MC-10." - name: "alice.rom" system: mc10 description: "Matra & Hachette Alice Microcolour BASIC" required: true size: 8192 crc32: "f876abe9" validation: [crc32] source_ref: "xroar.c:697 (romlist alice), xroar.c:769 (crclist alice), mc10.c:157-158" note: "French Alice variant. Required for Alice machine. MC-10 compatible." # ---- Deluxe CoCo (prototype) ---- - name: "deluxe.rom" system: coco description: "Tandy Deluxe CoCo Advanced BASIC (bank 0)" required: true crc32: "1cce231e" validation: [crc32] aliases: [adv070_u24] source_ref: "xroar.c:673 (romlist deluxecoco), xroar.c:757 (crclist), deluxecoco.c:191-194 (load)" note: "Primary ROM for the Deluxe CoCo prototype. Loaded as extbas_rom." - name: "adv071_u24.rom" system: coco description: "Tandy Deluxe CoCo ROM bank 1" required: false source_ref: "xroar.c:675 (romlist deluxecoco1), deluxecoco.c:201-204 (load)" - name: "adv072_u24.rom" system: coco description: "Tandy Deluxe CoCo ROM bank 2" required: false source_ref: "xroar.c:676 (romlist deluxecoco2), deluxecoco.c:208-211 (load)" - name: "adv073-2_u24.rom" system: coco description: "Tandy Deluxe CoCo ROM bank 3" required: false aliases: [adv073_u24] source_ref: "xroar.c:677 (romlist deluxecoco3), deluxecoco.c:215-218 (load)" # ---- Dynacom MX-1600 (Brazilian clone) ---- - name: "mx1600bas.rom" system: coco description: "Dynacom MX-1600 Colour BASIC" required: true crc32: "d918156e" validation: [crc32] aliases: [mx1600bas_zephyr] source_ref: "xroar.c:679 (romlist mx1600), xroar.c:748 (crclist mx1600)" note: "Required for MX-1600. Zephyr-patched variant (CRC32 d11b1c96) is an alias." - name: "mx1600extbas.rom" system: coco description: "Dynacom MX-1600 Extended Colour BASIC" required: true crc32: "322a3d58" validation: [crc32] source_ref: "xroar.c:680 (romlist mx1600ext), xroar.c:753 (crclist mx1600ext)" # ---- Prologica CP-400 (Brazilian clone) ---- - name: "cp400bas.rom" system: coco description: "Prologica CP-400 Colour BASIC" required: true crc32: "0b2903d4" validation: [crc32] source_ref: "xroar.c:682 (romlist cp400), xroar.c:749 (crclist cp400)" - name: "cp400ext.rom" system: coco description: "Prologica CP-400 Extended Colour BASIC" required: true crc32: "114accbc" validation: [crc32] source_ref: "xroar.c:683 (romlist cp400ext), xroar.c:754 (crclist cp400ext)" # ---- DOS cartridge ROMs (all optional) ---- - name: "disk11.rom" system: coco description: "Tandy RS-DOS 1.1 (CoCo floppy disk controller)" required: false source_ref: "xroar.c:708 (romlist rsdos), rsdos.c:176 (default @rsdos)" note: "Primary CoCo disk controller ROM. disk10.rom (RS-DOS 1.0) is an earlier version used as fallback." - name: "hdbdw3bck.rom" system: coco description: "RS-DOS with Becker port (DriveWire)" required: false source_ref: "xroar.c:718 (romlist rsdos_becker), xroar.c:572-574 (cart becker)" note: "For CoCo with Becker port hardware. Enables DriveWire connectivity." - name: "ddos12a.rom" system: dragon64 description: "DragonDOS 1.2a (Dragon floppy disk controller)" required: false source_ref: "xroar.c:702 (romlist dragondos), dragondos.c:173 (default @dragondos_compat)" note: "Latest DragonDOS version. Fallback chain tries DOSPlus -> SuperDOS -> DragonDOS -> Cumana. Older versions: ddos12, ddos40, ddos15, ddos10." - name: "dplus49b.rom" system: dragon64 description: "DOSPlus 4.9b (Dragon compatible DOS)" required: false source_ref: "xroar.c:703 (romlist dosplus)" note: "First tried in DragonDOS-compatible cartridge. Enhanced Dragon DOS. Older version: dplus48 (alias: dosplus-4.8, DOSPLUS)." - name: "sdose6.rom" system: dragon64 description: "SuperDOS E6 (Dragon compatible DOS)" required: false aliases: ["PNP - SuperDOS E6"] source_ref: "xroar.c:704 (romlist superdos)" note: "Latest SuperDOS. Older versions: sdose5, sdose4." - name: "cdos20.rom" system: dragon64 description: "Cumana DOS 2.0 (Dragon compatible DOS)" required: false aliases: [CDOS20, "CumanaDOSv2.0"] source_ref: "xroar.c:705 (romlist cumana)" - name: "delta2.rom" system: dragon64 description: "Delta System 2 (Premier Microsystems disk controller)" required: false aliases: ["Premier Micros - DeltaDOS"] source_ref: "xroar.c:711 (romlist delta), deltados.c:160 (default @delta)" note: "Latest Delta version. Older versions: delta1a, delta19, delta, deltados." - name: "cp450dsk.rom" system: coco description: "Prologica CP-450 DOS cartridge" required: false source_ref: "xroar.c:709 (romlist cp450)" note: "Falls back to RS-DOS if not found." # ---- Other cartridge ROMs (all optional) ---- - name: "orch90.rom" system: coco description: "Orchestra-90 CC sound cartridge ROM" required: false source_ref: "orch90.c:122 (default rom = orch90)" note: "Sound synthesis cartridge. Loaded directly (no romlist fallback)." - name: "mcx128.rom" system: mc10 description: "MCX128 memory expansion BASIC ROM" required: false aliases: [MCX_Basic_21] source_ref: "xroar.c:724 (romlist mcx128), mcx128.c:208 (default @mcx128)" note: "128K memory expansion for MC-10. Adds enhanced BASIC." - name: "mcx128a.rom" system: mc10 description: "MCX128 memory expansion BASIC ROM (AZERTY)" required: false aliases: [MCX_Basic_21_AZERTY] source_ref: "xroar.c:725 (romlist mcx128_azerty), xroar.c:632-633 (cart mcx128a)" note: "AZERTY keyboard variant for Alice. Same MCX128 hardware." - name: "yados.rom" system: coco description: "YADOS (Glenside IDE interface ROM)" required: false source_ref: "xroar.c:690 (romlist glenside_ide), idecart.c:204 (default @glenside_ide)" note: "IDE hard disk interface. Fallback: hdblba.rom (alternative IDE ROM)." - name: "sdbdos.rom" system: dragon64 description: "SDBDOS (MOOH memory cartridge ROM)" required: false source_ref: "mooh.c:254 (default rom = sdbdos)" note: "SD card boot DOS for MOOH cartridge. Loaded directly." - name: "dragonfly-2.3.rom" system: dragon64 description: "Ikon Ultra Drive Dragonfly ROM 2.3" required: false unsourceable: "not yet dumped, only v1.3 publicly available, XRoar support is experimental (#ifdef WANT_EXPERIMENTAL)" source_ref: "xroar.c:715 (romlist ikon), ikon.c:151 (default @ikon)" note: "Experimental. Ikon Ultra Drive storage interface. Older version: dragonfly-1.3."