emulator: Amiberry type: standalone + libretro core_classification: official_port source: "https://github.com/BlitterStudio/amiberry" upstream: "https://github.com/tonioni/WinUAE" profiled_date: "2026-03-26" source_commit: "648aeeab6ee1148b6d0176b8f49f6f6e12150cbe" core_version: "v8.1.2" display_name: "Commodore - Amiga (Amiberry)" cores: [amiberry] systems: - commodore-amiga - commodore-cd32 - commodore-cdtv notes: | Amiberry is an Amiga emulator based on WinUAE, available as both standalone and libretro core. No built-in kickstart: requires a real Kickstart ROM or external AROS replacement files (aros-ext.bin + aros-rom.bin). Libretro core option "amiberry_kickstart" overrides ROM selection: auto, kick.rom, kick13.rom, kick20.rom, kick31.rom, kick205.rom, kick40068.A1200, kick40068.A4000, cd32.rom, cdtv.rom. "auto" selects per model. ref: libretro/libretro.cpp:687,754-773 Libretro Kickstart directory detection (in order): save_dir/Kickstarts, save_dir/whdboot/save-data/Kickstarts, system_dir/Kickstarts, system_dir/whdboot/save-data/Kickstarts, system_dir/amiberry/whdboot/save-data/Kickstarts, system_dir/save-data/Kickstarts, else system_dir. system_dir stays first in the ROM multipath, the detected directory follows it. ref: libretro/libretro.cpp:4390-4428 Standalone ROM path: configurable via amiberry.conf "rom_path" setting. Batocera sets this to /userdata/bios/amiga/. Fallback search order: {home_dir}/roms/kick.rom, {home_dir}/kick.rom, ../shared/rom/kick.rom, ../System/rom/kick.rom, then ROM database guess. ref: src/memory.cpp:2106-2148 ROM identification uses SHA1 against the WinUAE ROM database but does not reject unknown ROMs. Cloanto encrypted ROMs supported with rom.key. ref: src/rommgr.cpp:121-1109,1742-1815 Munt MT-32/CM-32L emulation compiled in (WITH_MIDIEMU). ROMs loaded from mt32-roms/ subdirectory of the ROM path. Split ROM pairs supported (e.g. pcm_mt32_l.rom + pcm_mt32_h.rom). ref: src/midiemu.cpp:82-165 Keyboard MCU emulation (keyboard_mode setting) loads MCU ROMs via ROM database scanning. Three MCU types supported: 6570-036 (A500/A600/A1000), 68HC05 (A1200), D8039HLC (A2000). ref: src/kbmcu/keyboard_mcu_6500_1.cpp:385, src/kbmcu/keyboard_mcu_6805.cpp:544, src/kbmcu/keyboard_mcu_d8039hlc.cpp:235 WHDLoad autoboot reads the whdboot/ directory: boot-data.zip (or a boot-data directory), WHDLoad or JST, AmiQuit, and game-data/whdload_db.json with game-data/whdload_db.xml as fallback. These ship with the standalone build but must be obtained separately for the libretro core. ref: src/osdep/amiberry_whdbooter.cpp:1563-1565,1714-1733,1776-1785 files: # --- Kickstart ROMs --- # Libretro: find_kickstart_in_system_dir() with per-model candidate lists # Standalone: get_kickstart_filehandle() with ROM database + config # ref: libretro/libretro.cpp:1785-1848, src/memory.cpp:2106-2148 - name: kick13.rom system: commodore-amiga required: true size: 262144 note: "A500 Kickstart v1.3 rev 34.005, default for A500 model" source_ref: "libretro/libretro.cpp:1799 (candidates_a500)" - name: kick12.rom system: commodore-amiga required: false size: 262144 note: "A500 Kickstart v1.2 rev 33.180, for A500OG model" source_ref: "libretro/libretro.cpp:1798 (candidates_a500og)" - name: kick20.rom system: commodore-amiga required: false size: 524288 aliases: [kick204.rom] note: "A500+ Kickstart v2.04 rev 37.175" source_ref: "libretro/libretro.cpp:1800 (candidates_a500p)" - name: kick205.rom system: commodore-amiga required: false size: 524288 note: "A600 Kickstart v2.05 rev 37.350, also used for WHDLoad" source_ref: "libretro/libretro.cpp:1801 (candidates_a600)" - name: kick31.rom system: commodore-amiga required: false size: 524288 note: "Kickstart v3.1 (generic), first candidate for A1200 and A4000" source_ref: "libretro/libretro.cpp:1802-1803 (candidate arrays)" - name: kick40068.A1200 system: commodore-amiga required: false size: 524288 note: "A1200 Kickstart v3.1 rev 40.68, fallback after kick31.rom" source_ref: "libretro/libretro.cpp:767 (option label), libretro/libretro.cpp:1802 (candidates_a1200)" - name: kick40068.A4000 system: commodore-amiga required: false size: 524288 note: "A4000 Kickstart v3.1 rev 40.68, fallback after kick31.rom" source_ref: "libretro/libretro.cpp:768 (option label), libretro/libretro.cpp:1803 (candidates_a4000)" - name: kick.rom system: commodore-amiga required: false note: "Generic name, any Kickstart ROM. Last resort fallback for all models." source_ref: "libretro/libretro.cpp:1792-1797 (candidates_generic)" # --- CD32 ROMs --- - name: cd32.rom system: commodore-cd32 required: false size: 524288 aliases: [amiga-os-310-cd32.rom, kick40060.CD32] note: "CD32 Kickstart v3.1 rev 40.60" source_ref: "libretro/libretro.cpp:1804 (candidates_cd32)" - name: cd32ext.rom system: commodore-cd32 required: false size: 524288 aliases: [amiga-ext-310-cd32.rom, "CD32 Extended.ROM"] note: "CD32 extended ROM rev 40.60. Not needed if using a combined 1MB ROM." source_ref: "libretro/libretro.cpp:1862 (candidates_cd32 in find_ext_rom_in_system_dir)" # --- CDTV ROMs --- - name: cdtv.rom system: commodore-cdtv required: false aliases: [kick34005.CDTV] note: "CDTV extended ROM v1.00, used as kickstart candidate" source_ref: "libretro/libretro.cpp:1805 (candidates_cdtv)" - name: cdtvext.rom system: commodore-cdtv required: false aliases: ["CDTV Extended.ROM"] note: "CDTV extended ROM file" source_ref: "libretro/libretro.cpp:1864 (candidates_cdtv in find_ext_rom_in_system_dir)" # --- AROS replacement ROMs --- # ref: src/memory.cpp:1925-1946 find_kickstart_replacement_directory, # src/memory.cpp:1949-2030 load_kickstart_replacement # Both files must sit together in one of the configured ROM directories: # the search accepts a directory only when it holds both of them. - name: aros-ext.bin system: commodore-amiga required: false hle_fallback: true note: > AROS extended ROM replacement, used when no Kickstart ROM is found. Looked up in the configured ROM directories, and only in a directory that also holds aros-rom.bin. source_ref: "src/memory.cpp:1933 (paired existence check), src/memory.cpp:1958-1959 (load)" - name: aros-rom.bin system: commodore-amiga required: false hle_fallback: true note: > AROS main ROM replacement, used with aros-ext.bin as Kickstart fallback. Looked up in the configured ROM directories, and only in a directory that also holds aros-ext.bin. source_ref: "src/memory.cpp:1934 (paired existence check), src/memory.cpp:1987-1988 (load)" # --- Cloanto key --- - name: rom.key system: commodore-amiga required: false note: "Decryption key for Cloanto Amiga Forever encrypted ROMs" source_ref: "src/rommgr.cpp:1444-1525" # --- Keyboard MCU ROMs --- # Loaded when keyboard_mode is set to MCU emulation. # Found via ROM database scanning (SHA1/CRC32 identification). # ref: src/kbmcu/keyboard_mcu_*.cpp - name: "6570-036.rom" system: commodore-amiga required: false size: 2048 note: "6500-1/6570-036 keyboard MCU ROM for A500/A600/A1000 models" source_ref: "src/kbmcu/keyboard_mcu_6500_1.cpp:385-408, src/rommgr.cpp:136-137" - name: "68HC05.rom" system: commodore-amiga required: false size: 8192 note: "68HC05 keyboard MCU ROM for A1200" source_ref: "src/kbmcu/keyboard_mcu_6805.cpp:544-567, src/rommgr.cpp:138-139" - name: "D8039HLC.rom" system: commodore-amiga required: false size: 2048 note: "D8039HLC keyboard MCU ROM for A2000" source_ref: "src/kbmcu/keyboard_mcu_d8039hlc.cpp:235-258, src/rommgr.cpp:140-141" # --- Munt MT-32/CM-32L MIDI ROMs --- # Located in mt32-roms/ subdirectory of the ROM path. # Code appends .rom extension and tries uppercase .ROM as fallback. # Split ROM pairs (e.g. pcm_mt32_l.rom + pcm_mt32_h.rom) also supported. # ref: src/midiemu.cpp:82-117 load_rom, src/midiemu.cpp:127-165 midi_emu_add_roms - name: mt32-roms/mt32_control.rom system: commodore-amiga required: false aliases: - mt32-roms/ctrl_mt32.rom - mt32-roms/ctrl_mt32_1_07.rom - mt32-roms/ctrl_mt32_1_06.rom - mt32-roms/ctrl_mt32_1_05.rom - mt32-roms/ctrl_mt32_1_04.rom - mt32-roms/ctrl_mt32_bluer.rom - mt32-roms/ctrl_mt32_2_04.rom - mt32-roms/ctrl_mt32_2_07.rom - mt32-roms/ctrl_mt32_2_06.rom - mt32-roms/ctrl_mt32_2_03.rom note: "Roland MT-32 control ROM for Munt MIDI emulation" source_ref: "src/midiemu.cpp:38-62, src/midiemu.cpp:159-164" - name: mt32-roms/pcm_mt32.rom system: commodore-amiga required: false aliases: [mt32-roms/mt32_pcm.rom] note: "Roland MT-32 PCM ROM for Munt MIDI emulation" source_ref: "src/midiemu.cpp:140-148" - name: mt32-roms/cm32l_control.rom system: commodore-amiga required: false aliases: - mt32-roms/ctrl_cm32l.rom - mt32-roms/ctrl_cm32ln_1_00.rom - mt32-roms/ctrl_cm32l_1_02.rom - mt32-roms/ctrl_cm32l_1_00.rom note: "Roland CM-32L control ROM for Munt MIDI emulation" source_ref: "src/midiemu.cpp:25-37, src/midiemu.cpp:159-164" - name: mt32-roms/pcm_cm32l.rom system: commodore-amiga required: false aliases: [mt32-roms/cm32l_pcm.rom] note: "Roland CM-32L PCM ROM for Munt MIDI emulation" source_ref: "src/midiemu.cpp:149-158"