emulator: PUAE (P-UAE) type: libretro core_classification: community_fork cores: [puae, uae] source: "https://github.com/libretro/libretro-uae" upstream: "https://github.com/GnoStiC/PUAE" profiled_date: "2026-03-24" source_commit: "6536174a80d74e6c325aaa5390ff091fac8761d0" core_version: "5.3.1" display_name: "Commodore - Amiga (PUAE)" systems: - commodore-amiga - commodore-amiga-cd32 - commodore-cdtv notes: | PUAE is a port of UAE (Unix Amiga Emulator) to libretro. It emulates the Amiga 500, 500+, 600, 1200, 2000, 4000, CD32, and CDTV. Kickstart ROMs are loaded from the RetroArch system directory. AROS (open-source Kickstart replacement) is available as a built-in fallback when no Kickstart ROM is found. Compatibility is limited compared to real ROMs. The core scans the system directory for files starting with "kick", "amiga-os", or "KS ROM". Each filename is matched against a table of known naming conventions: standard (kick*.A*), Amiga Forever (amiga-os-*.rom), and TOSEC (Kickstart v*.rom). The first valid match is used. Default kickstart per model (automatic selection): A500, A500OG, A2000OG, CDTV -> kick34005.A500 (KS 1.3) A500+ -> kick37175.A500 (KS 2.04) A600 -> kick40063.A600 (KS 3.1) A1200, A1200OG -> kick40068.A1200 (KS 3.1) A2000 -> kick40063.A600 (KS 3.1) A4030, A4040 -> kick40068.A4000 (KS 3.1) CD32, CD32FR -> kick40060.CD32 (KS 3.1) CDTV (ext) -> kick34005.CDTV CD32 (ext) -> kick40060.CD32.ext Extended ROM handling: CD32 and CDTV require an extended ROM in addition to the main kickstart. If the main ROM filesize is <= 512 KB, the extended ROM is loaded separately. Combined ROMs (main + ext in one file) skip the extended ROM search. WHDLoad support copies kick33180.A500, kick34005.A500, kick40063.A600, kick40068.A1200 into saves/WHDLoad/Devs/Kickstarts/ for use by WHDLoad slave files. Also copies rom.key (Amiga Forever decryption) and WHDLoad.key (license) from the system directory. ROM search order (libretro-core.c retro_config_kickstart): 1. Exact filename in system directory 2. Amiga Forever naming (amiga-os-*.rom) 3. TOSEC modified naming (with [!] suffix) 4. TOSEC naming (without [!] suffix) The CAPS library is opened at run time on the first IPF image, from system/capsimg.so (capsimg.dll on Windows), then by its bare name through the loader search path. Android builds look only in the RetroArch cores directories. Without it IPF images are refused with a message and every other format works (sources/src/caps/caps.c:37-41, 71-96, 467-487). Data files are read from system/uae_data/, or system/uae/ when uae_data/ does not exist (libretro/libretro-core.c:746-751). The "Floppy Sound Type" option picks the floppy drive samples embedded in the core (internal, the default) or the external A500 or LOUD set from that folder (libretro/libretro-core.c:1871-1885, libretro/libretro-core.c:4174-4202). Each sample is drive__, with .wav appended when the bare name does not open. When none of the five opens, floppy sound is turned off for that drive (sources/src/driveclick.c:77-104, sources/src/driveclick.c:200-235). The same folder is scanned for files ending in rom, offered as cartridge images by the Cartridge option. Source: libretro/libretro-core.h:140-245, libretro/libretro-core.c:5609-5777, libretro/libretro-core.c:6044-6093 files: # ------------------------------------------------------- # Amiga 1000 # ------------------------------------------------------- - name: "kick31034.A1000" system: commodore-amiga required: false hle_fallback: true size: 262144 # 256 KB note: "Kickstart 1.1 rev 31.34 (1985) NTSC. A1000 only." aliases: - "amiga-os-110-ntsc.rom" - "Kickstart v1.1 rev 31.34 (1985)(Commodore)(A1000)(NTSC).rom" source_ref: "libretro/libretro-core.h:170-174" - name: "kick32034.A1000" system: commodore-amiga required: false hle_fallback: true size: 262144 # 256 KB note: "Kickstart 1.1 rev 32.34 (1986) PAL. A1000 only." aliases: - "amiga-os-110-pal.rom" - "Kickstart v1.1 rev 32.34 (1986)(Commodore)(A1000)(PAL).rom" source_ref: "libretro/libretro-core.h:176-179" # ------------------------------------------------------- # Amiga 500 / 2000 # ------------------------------------------------------- - name: "kick33180.A500" system: commodore-amiga required: false hle_fallback: true size: 262144 # 256 KB note: "Kickstart 1.2 rev 33.180 (1986). A500/A2000. Also used by WHDLoad." aliases: - "amiga-os-120.rom" - "Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A2000)[!].rom" - "Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A1000-A2000).rom" source_ref: "libretro/libretro-core.h:182-185" - name: "kick34005.A500" system: commodore-amiga required: true size: 262144 # 256 KB note: "Kickstart 1.3 rev 34.5 (1987). Default for A500/A2000OG/CDTV models. Also used by WHDLoad." aliases: - "amiga-os-130.rom" - "Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV)[!].rom" - "Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV).rom" source_ref: "libretro/libretro-core.h:187-190" - name: "kick37175.A500" system: commodore-amiga required: false hle_fallback: true size: 262144 # 256 KB note: "Kickstart 2.04 rev 37.175 (1991). Default for A500+ model." aliases: - "amiga-os-204.rom" - "Kickstart v2.04 rev 37.175 (1991)(Commodore)(A500+)[!].rom" - "Kickstart v2.04 rev 37.175 (1991)(Commodore)(A500+).rom" source_ref: "libretro/libretro-core.h:192-195" # ------------------------------------------------------- # Amiga 600 # ------------------------------------------------------- - name: "kick37350.A600" system: commodore-amiga required: false hle_fallback: true size: 262144 # 256 KB note: "Kickstart 2.05 rev 37.350 (1992). A600HD." aliases: - "amiga-os-205-a600.rom" - "Kickstart v2.05 rev 37.350 (1992)(Commodore)(A600HD)[!].rom" source_ref: "libretro/libretro-core.h:198-201" - name: "kick40063.A600" system: commodore-amiga required: false hle_fallback: true size: 524288 # 512 KB note: "Kickstart 3.1 rev 40.63 (1993). Default for A600/A2000 models. Also used by WHDLoad." aliases: - "amiga-os-310-a600.rom" - "Kickstart v3.1 rev 40.63 (1993)(Commodore)(A500-A600-A2000)[!].rom" - "Kickstart v3.1 rev 40.63 (1993)(Commodore)(A500-A600-A2000).rom" source_ref: "libretro/libretro-core.h:203-206" # ------------------------------------------------------- # Amiga 1200 # ------------------------------------------------------- - name: "kick39106.A1200" system: commodore-amiga required: false hle_fallback: true size: 524288 # 512 KB note: "Kickstart 3.0 rev 39.106 (1992). A1200." aliases: - "amiga-os-300-a1200.rom" - "Kickstart v3.0 rev 39.106 (1992)(Commodore)(A1200)[!].rom" source_ref: "libretro/libretro-core.h:209-212" - name: "kick40068.A1200" system: commodore-amiga required: true size: 524288 # 512 KB note: "Kickstart 3.1 rev 40.68 (1993). Default for A1200/A1200OG models. Also used by WHDLoad." aliases: - "amiga-os-310-a1200.rom" - "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200)[!].rom" - "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200).rom" source_ref: "libretro/libretro-core.h:214-217" # ------------------------------------------------------- # Amiga 4000 # ------------------------------------------------------- - name: "kick39106.A4000" system: commodore-amiga required: false hle_fallback: true size: 524288 # 512 KB note: "Kickstart 3.0 rev 39.106 (1992). A4000." aliases: - "amiga-os-300-a4000.rom" - "Kickstart v3.0 rev 39.106 (1992)(Commodore)(A4000)[!].rom" source_ref: "libretro/libretro-core.h:220-223" - name: "kick40068.A4000" system: commodore-amiga required: false hle_fallback: true size: 524288 # 512 KB note: "Kickstart 3.1 rev 40.68 (1993). Default for A4030/A4040 models." aliases: - "amiga-os-310-a4000.rom" - "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A4000).rom" source_ref: "libretro/libretro-core.h:225-228" # ------------------------------------------------------- # Commodore CDTV # ------------------------------------------------------- - name: "kick34005.CDTV" system: commodore-cdtv required: true size: 262144 # 256 KB note: "CDTV Extended ROM v1.0 (1991). Required as extended ROM for CDTV model. Main kickstart is kick34005.A500." aliases: - "amiga-os-130-cdtv-ext.rom" - "CDTV Extended-ROM v1.0 (1991)(Commodore)(CDTV)[!].rom" - "CDTV Extended-ROM v1.0 (1992)(Commodore)(CDTV).rom" source_ref: "libretro/libretro-core.h:231-234" # ------------------------------------------------------- # Amiga CD32 # ------------------------------------------------------- - name: "kick40060.CD32" system: commodore-amiga-cd32 required: true size: 524288 # 512 KB note: "CD32 Kickstart 3.1 rev 40.60 (1993). Main ROM for CD32 and CD32FR models." aliases: - "amiga-os-310-cd32.rom" - "Kickstart v3.1 rev 40.60 (1993)(Commodore)(CD32).rom" source_ref: "libretro/libretro-core.h:236-239" - name: "kick40060.CD32.ext" system: commodore-amiga-cd32 required: true size: 524288 # 512 KB note: "CD32 Extended ROM rev 40.60 (1993). Required when main ROM is <= 512 KB (not combined)." aliases: - "amiga-os-310-cd32-ext.rom" - "CD32 Extended-ROM rev 40.60 (1993)(Commodore)(CD32).rom" source_ref: "libretro/libretro-core.h:241-244" # ------------------------------------------------------- # WHDLoad support files # ------------------------------------------------------- - name: "rom.key" system: commodore-amiga required: false note: "Amiga Forever ROM decryption key. Copied to saves/WHDLoad/Devs/Kickstarts/ for WHDLoad." source_ref: "libretro/libretro-core.c:5963-5978" - name: "WHDLoad.key" system: commodore-amiga required: false unsourceable: "per-user signed registration key, never distributed generically, WHDLoad free since v18.2" note: "WHDLoad license key. Copied to saves/WHDLoad/L/ for registered WHDLoad use." source_ref: "libretro/libretro-core.c:5979-5994" - name: "WHDLoad.prefs" system: commodore-amiga required: false note: "WHDLoad preferences. Copied to saves/WHDLoad/S/ when present." source_ref: "libretro/libretro-core.c:5995-6018" # ------------------------------------------------------- # CAPS library for IPF floppy images # ------------------------------------------------------- - name: "capsimg.so" system: commodore-amiga required: false source_ref: "sources/src/caps/caps.c:37-41, sources/src/caps/caps.c:71-96, sources/src/caps/caps.c:467-487" note: "Linux, macOS and Android builds. Opened on the first IPF image. Android reads it from the RetroArch cores directory only." - name: "capsimg.dll" system: commodore-amiga required: false source_ref: "sources/src/caps/caps.c:37-41, sources/src/caps/caps.c:71-96, sources/src/caps/caps.c:467-487" note: "Windows build. Opened on the first IPF image." # ------------------------------------------------------- # External floppy drive samples (Floppy Sound Type A500 or LOUD) # ------------------------------------------------------- - name: "drive_click_A500.wav" path: "uae_data/drive_click_A500.wav" system: commodore-amiga required: false size: 3313326 sha1: "34f05541606ee8acd033eadbda082b90051253cc" md5: "6c5b44c1a2bcee664129f850bfe4ed8a" crc32: "27324b7d" source_ref: "libretro/libretro-core.c:746-751, libretro/libretro-core.c:4174-4202, sources/src/driveclick.c:77-104, sources/src/driveclick.c:200-235" note: "A500 set, head step. Hashes are those of sources/uae_data/drive_click_A500.wav in the core repository." - name: "drive_spin_A500.wav" path: "uae_data/drive_spin_A500.wav" system: commodore-amiga required: false size: 134294 sha1: "a117647990e2e9debb7ac65a0db429a59bb630f0" md5: "7401f854a75f9ede18769168ab896a2a" crc32: "5f7cb73b" source_ref: "libretro/libretro-core.c:746-751, libretro/libretro-core.c:4174-4202, sources/src/driveclick.c:77-104, sources/src/driveclick.c:200-235" note: "A500 set, motor with a disk. Hashes are those of sources/uae_data/drive_spin_A500.wav in the core repository." - name: "drive_spinnd_A500.wav" path: "uae_data/drive_spinnd_A500.wav" system: commodore-amiga required: false size: 352430 sha1: "786cf1cbd8eabaeb150dabb6b8a1aeca0ed71634" md5: "f9d954879fee8e96baa93d6139077cdb" crc32: "2c673174" source_ref: "libretro/libretro-core.c:746-751, libretro/libretro-core.c:4174-4202, sources/src/driveclick.c:77-104, sources/src/driveclick.c:200-235" note: "A500 set, motor without a disk. Hashes are those of sources/uae_data/drive_spinnd_A500.wav in the core repository." - name: "drive_startup_A500.wav" path: "uae_data/drive_startup_A500.wav" system: commodore-amiga required: false size: 34450 sha1: "db8de831a59a44dc6070166e2005c330a793a48d" md5: "aebeacc7e7bc52ef890785c835bec3d0" crc32: "cb552e00" source_ref: "libretro/libretro-core.c:746-751, libretro/libretro-core.c:4174-4202, sources/src/driveclick.c:77-104, sources/src/driveclick.c:200-235" note: "A500 set, motor start. Hashes are those of sources/uae_data/drive_startup_A500.wav in the core repository." - name: "drive_snatch_A500.wav" path: "uae_data/drive_snatch_A500.wav" system: commodore-amiga required: false size: 34450 sha1: "b8dd63077e12bdeacd3ad70ba41614dc52aa8023" md5: "1a4b2d6254918ff769f26beeede75655" crc32: "4ac3c05e" source_ref: "libretro/libretro-core.c:746-751, libretro/libretro-core.c:4174-4202, sources/src/driveclick.c:77-104, sources/src/driveclick.c:200-235" note: "A500 set, disk insertion. Hashes are those of sources/uae_data/drive_snatch_A500.wav in the core repository." - name: "drive_click_LOUD.wav" path: "uae_data/drive_click_LOUD.wav" system: commodore-amiga required: false size: 3308526 sha1: "fa5df7c9fe3ee70cafbe232ff4f453982c6d1ce2" md5: "b64bee23f356635f67fb08b543df9797" crc32: "59069982" source_ref: "libretro/libretro-core.c:746-751, libretro/libretro-core.c:4174-4202, sources/src/driveclick.c:77-104, sources/src/driveclick.c:200-235" note: "LOUD set, head step. Hashes are those of sources/uae_data/drive_click_LOUD.wav in the core repository." - name: "drive_spin_LOUD.wav" path: "uae_data/drive_spin_LOUD.wav" system: commodore-amiga required: false size: 20216 sha1: "5b1d8c880f8d8fcd9309a7889817611cc27e16e0" md5: "56d8e36a2f04b5e8c5a1f1530cfc886c" crc32: "1969eea0" source_ref: "libretro/libretro-core.c:746-751, libretro/libretro-core.c:4174-4202, sources/src/driveclick.c:77-104, sources/src/driveclick.c:200-235" note: "LOUD set, motor with a disk. Hashes are those of sources/uae_data/drive_spin_LOUD.wav in the core repository." - name: "drive_spinnd_LOUD.wav" path: "uae_data/drive_spinnd_LOUD.wav" system: commodore-amiga required: false size: 241790 sha1: "d1709931cfe05b3bd31b6ef3d9697a22c934549b" md5: "43ab05c6d969cb40805970a5b2352875" crc32: "49e72ce7" source_ref: "libretro/libretro-core.c:746-751, libretro/libretro-core.c:4174-4202, sources/src/driveclick.c:77-104, sources/src/driveclick.c:200-235" note: "LOUD set, motor without a disk. Hashes are those of sources/uae_data/drive_spinnd_LOUD.wav in the core repository." - name: "drive_startup_LOUD.wav" path: "uae_data/drive_startup_LOUD.wav" system: commodore-amiga required: false size: 43492 sha1: "38e63f700ee6a5be71ded6c057267562c00f3e31" md5: "743b4b9f0ca645c4c2a34953b5e01e45" crc32: "d746cc1e" source_ref: "libretro/libretro-core.c:746-751, libretro/libretro-core.c:4174-4202, sources/src/driveclick.c:77-104, sources/src/driveclick.c:200-235" note: "LOUD set, motor start. Hashes are those of sources/uae_data/drive_startup_LOUD.wav in the core repository." - name: "drive_snatch_LOUD.wav" path: "uae_data/drive_snatch_LOUD.wav" system: commodore-amiga required: false size: 39864 sha1: "0417e6e7fee2aebae972ce4d00101a0ce363af32" md5: "40cdf89f35b68cfefd4df5fb0256e02f" crc32: "b015251a" source_ref: "libretro/libretro-core.c:746-751, libretro/libretro-core.c:4174-4202, sources/src/driveclick.c:77-104, sources/src/driveclick.c:200-235" note: "LOUD set, disk insertion. Hashes are those of sources/uae_data/drive_snatch_LOUD.wav in the core repository." model_kickstart_map: A500: {kickstart: "kick34005.A500", ext: null} A500OG: {kickstart: "kick34005.A500", ext: null} A500PLUS: {kickstart: "kick37175.A500", ext: null} A600: {kickstart: "kick40063.A600", ext: null} A1200: {kickstart: "kick40068.A1200", ext: null} A1200OG: {kickstart: "kick40068.A1200", ext: null} A2000: {kickstart: "kick40063.A600", ext: null} A2000OG: {kickstart: "kick34005.A500", ext: null} A4030: {kickstart: "kick40068.A4000", ext: null} A4040: {kickstart: "kick40068.A4000", ext: null} CDTV: {kickstart: "kick34005.A500", ext: "kick34005.CDTV"} CD32: {kickstart: "kick40060.CD32", ext: "kick40060.CD32.ext"} CD32FR: {kickstart: "kick40060.CD32", ext: "kick40060.CD32.ext"} whdload_kickstarts: - "kick33180.A500" # KS 1.2, 256 KB - "kick34005.A500" # KS 1.3, 256 KB - "kick40063.A600" # KS 3.1, 512 KB - "kick40068.A1200" # KS 3.1, 512 KB platform_details: rom_sizes: ROM_SIZE_128: 131072 # 128 KB ROM_SIZE_256: 262144 # 256 KB ROM_SIZE_512: 524288 # 512 KB aros_fallback: true naming_conventions: standard: "kick{rev}.{model}" amiga_forever: "amiga-os-{version}.rom" tosec: "Kickstart v{version} rev {rev} ({year})(Commodore)({model}).rom" scan_prefixes: ["kick", "amiga-os", "KS ROM"] source_ref: "libretro/libretro-core.c:2650-2677"