Files
libretro/emulators/puae.yml
T
Abdessamad Derraz e7aa9e870b fix: state libretro core versions from their code
Each libretro profile records version_basis and core_version is read
there at its pin. snes9x states 1.63 in snes9x.h, nestopia 2.0.0, mgba
0.11.0, vice 3.10, atari800's libretro tree 7.0.0. Cores whose build
takes its version from git carry the nearest tag in describe form
(flycast v2.7-90-ge88b0ce, ppsspp, duckstation, gearcoleco), placeholders
copied from .info files (Git, SVN) are replaced by the code's statement,
and a code that states none is null with kind none.
2026-10-27 19:21:27 +01:00

440 lines
18 KiB
YAML

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: "7387937066b1b693816c3b4e2b7a0c601d41363d"
core_version: "5.3.1"
version_basis:
kind: file
path: "retrodep/sysconfig.h"
pattern: '^#define VERSION "([^"]+)"'
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_<click|spin|spinnd|startup|snatch>_<set>, 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"