chore: merge amiberry and hatari re-profile

# Conflicts:
#	README.md
#	emulators/amiberry.yml
#	install/batocera.json
#	install/emudeck.json
#	install/lakka.json
#	install/recalbox.json
#	install/retroarch.json
#	install/retrobat.json
#	install/retrodeck.json
#	install/rocknix.json
This commit is contained in:
Abdessamad Derraz committed 2026-10-21 06:21:30 +02:00
commit 85a44d9bf7
22 files changed
+670 -938

No files matched your search

+68 -62
View File
@@ -3,9 +3,9 @@ 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"
profiled_date: "2026-10-21"
source_commit: "2de3bf82280be045ea81dd0c55407061dfdbaa3e"
core_version: "v8.4.2"
display_name: "Commodore - Amiga (Amiberry)"
cores: [amiberry]
systems:
@@ -21,7 +21,7 @@ notes: |
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
ref: libretro/libretro.cpp:694,761-780
Libretro Kickstart directory detection (in order): save_dir/Kickstarts,
save_dir/whdboot/save-data/Kickstarts, system_dir/Kickstarts,
@@ -29,7 +29,7 @@ notes: |
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
ref: libretro/libretro.cpp:4529-4567
Standalone ROM path: configurable via amiberry.conf "rom_path" setting.
kickstart_rom_file and kickstart_ext_rom_file are opened as given, with
@@ -58,27 +58,27 @@ notes: |
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
ref: src/osdep/amiberry_whdbooter.cpp:1652-1654,1804-1823,1866-1875
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
# ref: libretro/libretro.cpp:1792-1855, 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: "source libretro/libretro.cpp:1799 (candidates_a500)"
source_ref: "source libretro/libretro.cpp:1806 (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: "source libretro/libretro.cpp:1798 (candidates_a500og)"
source_ref: "source libretro/libretro.cpp:1805 (candidates_a500og)"
- name: kick20.rom
system: commodore-amiga
@@ -86,41 +86,41 @@ files:
size: 524288
aliases: [kick204.rom]
note: "A500+ Kickstart v2.04 rev 37.175"
source_ref: "source libretro/libretro.cpp:1800 (candidates_a500p)"
source_ref: "source libretro/libretro.cpp:1807 (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: "source libretro/libretro.cpp:1801 (candidates_a600)"
source_ref: "source libretro/libretro.cpp:1808 (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: "source libretro/libretro.cpp:1802-1803 (candidate arrays)"
source_ref: "source libretro/libretro.cpp:1809-1810 (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: "source libretro/libretro.cpp:767 (option label), source libretro/libretro.cpp:1802 (candidates_a1200)"
source_ref: "source libretro/libretro.cpp:774 (option label), source libretro/libretro.cpp:1809 (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: "source libretro/libretro.cpp:768 (option label), source libretro/libretro.cpp:1803 (candidates_a4000)"
source_ref: "source libretro/libretro.cpp:775 (option label), source libretro/libretro.cpp:1810 (candidates_a4000)"
- name: kick.rom
system: commodore-amiga
required: false
note: "Generic name, any Kickstart ROM. Last resort fallback for all models."
source_ref: "source libretro/libretro.cpp:1792-1797 (candidates_generic)"
source_ref: "source libretro/libretro.cpp:1799-1804 (candidates_generic)"
# --- CD32 ROMs ---
@@ -130,7 +130,7 @@ files:
size: 524288
aliases: [amiga-os-310-cd32.rom, kick40060.CD32]
note: "CD32 Kickstart v3.1 rev 40.60"
source_ref: "source libretro/libretro.cpp:1804 (candidates_cd32)"
source_ref: "source libretro/libretro.cpp:1811 (candidates_cd32)"
- name: cd32ext.rom
system: commodore-cd32
@@ -138,7 +138,7 @@ files:
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: "source libretro/libretro.cpp:1862 (candidates_cd32 in find_ext_rom_in_system_dir)"
source_ref: "source libretro/libretro.cpp:1869 (candidates_cd32 in find_ext_rom_in_system_dir)"
# --- CDTV ROMs ---
@@ -147,22 +147,22 @@ files:
required: false
aliases: [kick34005.CDTV]
note: "CDTV extended ROM v1.00, used as kickstart candidate"
source_ref: "source libretro/libretro.cpp:1805 (candidates_cdtv)"
source_ref: "source libretro/libretro.cpp:1812 (candidates_cdtv)"
- name: cdtvext.rom
system: commodore-cdtv
required: false
aliases: ["CDTV Extended.ROM"]
note: "CDTV extended ROM file"
source_ref: "source libretro/libretro.cpp:1864 (candidates_cdtv in find_ext_rom_in_system_dir)"
source_ref: "source libretro/libretro.cpp:1871 (candidates_cdtv in find_ext_rom_in_system_dir)"
# --- Kickstart ROMs found by the standalone ROM scan ---
# The scan opens every file under the ROM path whose extension is rom, bin,
# a1000, a500, a600, a1200, a3000, a4000, cdtv, cd32 or roz and names it by
# the ROM database. A model then takes the first ROM id on its list that
# the scan found.
# ref: src/osdep/amiberry_gui.cpp:217-240, src/osdep/amiberry_gui.cpp:274-296,
# src/osdep/amiberry_gui.cpp:420-455, src/rommgr.cpp:3172-3241
# ref: src/osdep/amiberry_gui.cpp:219-242, src/osdep/amiberry_gui.cpp:276-298,
# src/osdep/amiberry_gui.cpp:422-457, src/rommgr.cpp:3175-3244
- name: amiga-os-310.rom
mode: standalone
@@ -175,7 +175,7 @@ files:
note: >
Identified as KS ROM v3.1 (A4000)(Cloanto), ROM id 31, whatever the file
is called. The A4000 model takes id 16 first and id 31 after it.
source_ref: "source src/rommgr.cpp:203-204, source src/cfgfile.cpp:9588-9593, source src/cfgfile.cpp:9646"
source_ref: "source src/rommgr.cpp:203-204, source src/cfgfile.cpp:9749-9754, source src/cfgfile.cpp:9807"
# --- AROS replacement ROMs ---
# ref: src/memory.cpp:1925-1946 find_kickstart_replacement_directory,
@@ -202,13 +202,13 @@ files:
bundled: true
not_bundled_on: [recalbox, rocknix]
size: 524288
sha1: "e8b274faca7ffa4c064706ba15318885d8645695"
md5: "d2ce6748e8e42222662e14359f68dad5"
sha1: "af84797f89eb906350e82c718dddbf7c96695cc1"
md5: "945c364bb9b5f28a04e1003f8b7a469c"
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. Shipped in roms/ of the 8.1.2 Windows zip and deb. The
Recalbox and ROCKNIX packages leave it out.
holds aros-rom.bin. Shipped in roms/ of the 8.4.2 installs. The Recalbox
and ROCKNIX packages leave it out.
source_ref: "source src/memory.cpp:1933 (paired existence check), source src/memory.cpp:1958-1959 (load)"
- name: aros-rom.bin
@@ -230,13 +230,13 @@ files:
bundled: true
not_bundled_on: [recalbox, rocknix]
size: 524288
sha1: "7a0168bd3eea08b64acfddc5d1cfc0d538e1ac1e"
md5: "48d38fc3fcf2ad7bca5ec5191d02e451"
sha1: "a11d51c995610d9028c8958279e602a37fa76050"
md5: "69179a8479d1ba279c786094ce343386"
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. Shipped in roms/ of the 8.1.2 Windows zip and deb.
The Recalbox and ROCKNIX packages leave it out.
also holds aros-ext.bin. Shipped in roms/ of the 8.4.2 installs. The
Recalbox and ROCKNIX packages leave it out.
source_ref: "source src/memory.cpp:1934 (paired existence check), source src/memory.cpp:1987-1988 (load)"
# --- Cloanto key ---
@@ -330,8 +330,12 @@ files:
# database, and the five RTB files the seed check names.
# Standalone: the Linux, macOS and Windows installs ship the tree, and it is
# copied into the user WHDBoot directory the same way.
# ref: src/osdep/amiberry.cpp:11189-11214, 11510-11544, 11570-11584,
# libretro/libretro.cpp:1452-1468, cmake/linux/install.cmake:196-198
# Both builds then replace game-data/whdload_db.json with the one at the
# first candidate when its "generated" field is later, keeping the old file
# as a backup.
# ref: src/osdep/amiberry.cpp:11801-11826, 12145-12179, 12205-12219,
# src/osdep/amiberry.cpp:12221-12287, 12289-12385,
# libretro/libretro.cpp:1459-1475, cmake/linux/install.cmake:196-198
- name: "WHDLoad"
path: "whdboot/WHDLoad"
@@ -345,7 +349,7 @@ files:
WHDLoad executable linked into C: of the boot drive the booter builds,
unless JST is selected. Part of the set the whdboot seed check requires.
The core zip carries the library alone.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1776-1785, source src/osdep/amiberry.cpp:11510-11544"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1866-1875, source src/osdep/amiberry.cpp:12145-12179"
- name: "JST"
path: "whdboot/JST"
@@ -359,7 +363,7 @@ files:
JST loader linked into C: in place of WHDLoad when the
use_jst_instead_of_whd option is set. Part of the set the whdboot seed
check requires. The core zip carries the library alone.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1776-1779, source src/osdep/amiberry.cpp:11510-11544"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1866-1869, source src/osdep/amiberry.cpp:12145-12179"
- name: "AmiQuit"
path: "whdboot/AmiQuit"
@@ -373,7 +377,7 @@ files:
Quit helper linked into C: and called at the end of the generated startup-
sequence. Part of the set the whdboot seed check requires. The core zip
carries the library alone.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1526, source src/osdep/amiberry_whdbooter.cpp:1785, source src/osdep/amiberry.cpp:11510-11544"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1615, source src/osdep/amiberry_whdbooter.cpp:1875, source src/osdep/amiberry.cpp:12145-12179"
- name: "boot-data.zip"
path: "whdboot/boot-data.zip"
@@ -387,22 +391,23 @@ files:
Boot volume mounted as DH3. A boot-data directory at the same place is
used when the zip is absent. Part of the set the whdboot seed check
requires. The core zip carries the library alone.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1563-1576, source src/osdep/amiberry.cpp:11510-11544"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1652-1665, source src/osdep/amiberry.cpp:12145-12179"
- name: "whdload_db.json"
path: "whdboot/game-data/whdload_db.json"
mode: libretro
system: commodore-amiga
required: false
size: 6680181
sha1: "bcb18c1016cbb1c748d39254e7f94fbf875b1c0b"
md5: "14d797815aa9bbc79fe284b244ea75b1"
size: 6741053
sha1: "6540ae1a35080e3dbeacfba5139e4781eb74ca86"
md5: "51d44cd24e16fbb395b1bfefbaacd375"
note: >
Per-game slave and hardware settings, matched on the archive name.
Per-game slave and hardware settings, matched on the archive SHA1 and
then on its name.
whdload_db.xml in the same folder is read when the JSON is absent. With
neither, the booter scans the archive for a .slave file. Part of the set
the whdboot seed check requires. The core zip carries the library alone.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1714-1733, source src/osdep/amiberry_whdbooter.cpp:1736-1750, source src/osdep/amiberry.cpp:11510-11544"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1804-1823, source src/osdep/amiberry_whdbooter.cpp:1061-1079, source src/osdep/amiberry_whdbooter.cpp:1826-1840, source src/osdep/amiberry.cpp:12145-12179, source src/osdep/amiberry.cpp:12289-12385"
- name: "kick33180.A500.RTB"
path: "whdboot/save-data/Kickstarts/kick33180.A500.RTB"
@@ -418,7 +423,7 @@ files:
beside the image the booter links there. Part of the set the whdboot seed
check requires. The core zip carries the library alone. The repository
ships the same bytes as kick33192.A500.RTB.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1786, source src/osdep/amiberry.cpp:11510-11544"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1876, source src/osdep/amiberry.cpp:12145-12179"
- name: "kick34005.A500.RTB"
path: "whdboot/save-data/Kickstarts/kick34005.A500.RTB"
@@ -432,7 +437,7 @@ files:
WHDLoad relocation table for Kickstart 1.3, read from DEVS:Kickstarts
beside the image the booter links there. Part of the set the whdboot seed
check requires. The core zip carries the library alone.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1786, source src/osdep/amiberry.cpp:11510-11544"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1876, source src/osdep/amiberry.cpp:12145-12179"
- name: "kick40063.A600.RTB"
path: "whdboot/save-data/Kickstarts/kick40063.A600.RTB"
@@ -446,7 +451,7 @@ files:
WHDLoad relocation table for Kickstart 3.1 A600, read from DEVS:Kickstarts
beside the image the booter links there. Part of the set the whdboot seed
check requires. The core zip carries the library alone.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1786, source src/osdep/amiberry.cpp:11510-11544"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1876, source src/osdep/amiberry.cpp:12145-12179"
- name: "kick40068.A1200.RTB"
path: "whdboot/save-data/Kickstarts/kick40068.A1200.RTB"
@@ -460,7 +465,7 @@ files:
WHDLoad relocation table for Kickstart 3.1 A1200, read from
DEVS:Kickstarts beside the image the booter links there. Part of the set
the whdboot seed check requires. The core zip carries the library alone.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1786, source src/osdep/amiberry.cpp:11510-11544"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1876, source src/osdep/amiberry.cpp:12145-12179"
- name: "kick40068.A4000.RTB"
path: "whdboot/save-data/Kickstarts/kick40068.A4000.RTB"
@@ -474,7 +479,7 @@ files:
WHDLoad relocation table for Kickstart 3.1 A4000, read from
DEVS:Kickstarts beside the image the booter links there. Part of the set
the whdboot seed check requires. The core zip carries the library alone.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1786, source src/osdep/amiberry.cpp:11510-11544"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1876, source src/osdep/amiberry.cpp:12145-12179"
- name: "kick31034.A1000.RTB"
path: "whdboot/save-data/Kickstarts/kick31034.A1000.RTB"
@@ -488,7 +493,7 @@ files:
WHDLoad relocation table for the A1000 Kickstart 1.1 image, read from
DEVS:Kickstarts beside the image the booter links there. The core zip
carries the library alone.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-345, source src/osdep/amiberry_whdbooter.cpp:1786"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-345, source src/osdep/amiberry_whdbooter.cpp:1876"
- name: "WHDLoad"
path: "whdboot/WHDLoad"
@@ -502,7 +507,7 @@ files:
note: >
WHDLoad executable linked into C: of the boot drive the booter builds,
unless JST is selected. Ships in whdboot/ of the installed build.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1776-1785"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1866-1875"
- name: "JST"
path: "whdboot/JST"
@@ -517,7 +522,7 @@ files:
JST loader linked into C: in place of WHDLoad when the
use_jst_instead_of_whd option is set. Ships in whdboot/ of the installed
build.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1776-1779"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1866-1869"
- name: "AmiQuit"
path: "whdboot/AmiQuit"
@@ -531,7 +536,7 @@ files:
note: >
Quit helper linked into C: and called at the end of the generated startup-
sequence. Ships in whdboot/ of the installed build.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1526, source src/osdep/amiberry_whdbooter.cpp:1785"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1615, source src/osdep/amiberry_whdbooter.cpp:1875"
- name: "boot-data.zip"
path: "whdboot/boot-data.zip"
@@ -545,7 +550,7 @@ files:
note: >
Boot volume mounted as DH3. A boot-data directory at the same place is
used when the zip is absent. Ships in whdboot/ of the installed build.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1563-1576"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1652-1665"
- name: "whdload_db.json"
path: "whdboot/game-data/whdload_db.json"
@@ -553,15 +558,16 @@ files:
system: commodore-amiga
required: false
bundled: true
size: 6680181
sha1: "bcb18c1016cbb1c748d39254e7f94fbf875b1c0b"
md5: "14d797815aa9bbc79fe284b244ea75b1"
size: 6741053
sha1: "6540ae1a35080e3dbeacfba5139e4781eb74ca86"
md5: "51d44cd24e16fbb395b1bfefbaacd375"
note: >
Per-game slave and hardware settings, matched on the archive name.
Per-game slave and hardware settings, matched on the archive SHA1 and
then on its name.
whdload_db.xml in the same folder is read when the JSON is absent. With
neither, the booter scans the archive for a .slave file. Ships in whdboot/
of the installed build.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1714-1733, source src/osdep/amiberry_whdbooter.cpp:1736-1750"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:1804-1823, source src/osdep/amiberry_whdbooter.cpp:1061-1079, source src/osdep/amiberry_whdbooter.cpp:1826-1840, source src/osdep/amiberry.cpp:12289-12385"
- name: "kick33180.A500.RTB"
path: "whdboot/save-data/Kickstarts/kick33180.A500.RTB"
@@ -578,7 +584,7 @@ files:
beside the image the booter links there. Ships in whdboot/ of the
installed build. The repository ships the same bytes as
kick33192.A500.RTB.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1786"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1876"
- name: "kick34005.A500.RTB"
path: "whdboot/save-data/Kickstarts/kick34005.A500.RTB"
@@ -593,7 +599,7 @@ files:
WHDLoad relocation table for Kickstart 1.3, read from DEVS:Kickstarts
beside the image the booter links there. Ships in whdboot/ of the
installed build.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1786"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1876"
- name: "kick40063.A600.RTB"
path: "whdboot/save-data/Kickstarts/kick40063.A600.RTB"
@@ -608,7 +614,7 @@ files:
WHDLoad relocation table for Kickstart 3.1 A600, read from DEVS:Kickstarts
beside the image the booter links there. Ships in whdboot/ of the
installed build.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1786"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1876"
- name: "kick40068.A1200.RTB"
path: "whdboot/save-data/Kickstarts/kick40068.A1200.RTB"
@@ -623,7 +629,7 @@ files:
WHDLoad relocation table for Kickstart 3.1 A1200, read from
DEVS:Kickstarts beside the image the booter links there. Ships in whdboot/
of the installed build.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1786"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1876"
- name: "kick40068.A4000.RTB"
path: "whdboot/save-data/Kickstarts/kick40068.A4000.RTB"
@@ -638,7 +644,7 @@ files:
WHDLoad relocation table for Kickstart 3.1 A4000, read from
DEVS:Kickstarts beside the image the booter links there. Ships in whdboot/
of the installed build.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1786"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-352, source src/osdep/amiberry_whdbooter.cpp:1876"
- name: "kick31034.A1000.RTB"
path: "whdboot/save-data/Kickstarts/kick31034.A1000.RTB"
@@ -653,4 +659,4 @@ files:
WHDLoad relocation table for the A1000 Kickstart 1.1 image, read from
DEVS:Kickstarts beside the image the booter links there. Ships in whdboot/
of the installed build.
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-345, source src/osdep/amiberry_whdbooter.cpp:1786"
source_ref: "source src/osdep/amiberry_whdbooter.cpp:331-345, source src/osdep/amiberry_whdbooter.cpp:1876"
+50 -26
View File
@@ -4,9 +4,9 @@ core_classification: official_port
source: "https://github.com/libretro/hatari"
upstream: "https://github.com/hatari/hatari"
logo: "https://raw.githubusercontent.com/hatari/hatari/main/share/icons/hicolor/scalable/apps/hatari.svg"
profiled_date: "2026-09-17"
source_commit: "5831f66e05ae19435bd9d8ef1c6f9c93998ff6f4"
upstream_commit: "51ed9991101fdc4623b3b38ec16e5a170cf2dffa"
profiled_date: "2026-10-21"
source_commit: "50929946d196f431906932420c55e1b3593dacc5"
upstream_commit: "90949cfa04acbd48ba28c48430fdb58cd82b9053"
core_version: "2.6.1-devel"
display_name: "Atari - ST/STE/TT/Falcon (Hatari)"
cores:
@@ -20,26 +20,30 @@ systems:
notes: |
The main branch of libretro/hatari is the upstream Hatari tree with its
experimental libretro target in src/retro, which upstream added in
January 2026, plus the port commits that follow the merge base recorded
as upstream_commit: VFS, disk control, core options and hard disk
loading. It builds as hatari_libretro (.gitlab-ci-libretro.yml:10-11,
src/CMakeLists.txt:371-404), reports library_name hatari and the
HATARI_VERSION string 2.6.1-devel (src/retro/main_retro.c:218-219,
src/includes/version.h:8). The .info shipped in the tree declares no
firmware (share/libretro/info/libretro-hatari.info). The
January 2026, plus the port commits that follow their merge base,
51ed9991: VFS, disk control, core options, hard disk loading, the
virtual keyboard, drive LEDs and the floppy drive sound. It builds as
hatari_libretro (.gitlab-ci-libretro.yml:10-11, src/CMakeLists.txt:371-404),
reports library_name hatari and the HATARI_VERSION string 2.6.1-devel
(src/retro/main_retro.c:223-224, src/includes/version.h:8). The .info
shipped in the tree declares no firmware
(share/libretro/info/libretro-hatari.info). The
hatari_libretro.info in libretro-core-info took that file's metadata on
2026-09-16 and keeps a tos.img firmware entry with the TOS 1.02 US MD5,
which this code never checks.
retro_init builds <system>/tos.img, records whether it exists and passes
it as --tos (src/retro/main_retro.c:157-207). When it is absent a
frontend message is shown and retro_run only refreshes the framebuffer
(src/retro/main_retro.c:186-189, src/retro/main_retro.c:250-261). The
it as --tos (src/retro/main_retro.c:160-211). It first reads floppy.raw
from the system directory as the floppy drive sample
(src/retro/main_retro.c:185, src/retro/floppy_sound.c:146-186). When
tos.img is absent a frontend message is shown and retro_run only
refreshes the framebuffer (src/retro/main_retro.c:190-193,
src/retro/main_retro.c:286-299). The
name is fixed by that check: the .rom and .tos fallbacks of File_Read
(src/tos.c:60-66, src/file.c:312-353, src/file.c:544-583) are never
reached under a frontend. A missing --tos file fails option parsing
(src/options.c:1026-1079, src/options.c:1937-1945), but Main_ErrorExit only
raises the quit flag in this build (src/retro/main_retro.c:478-490), so
raises the quit flag in this build (src/retro/main_retro.c:529-541), so
Main_Init carries on with bUseTos cleared and TOS_InitImage installs the
built-in test stub of faketosData.c instead of reading a ROM
(src/tos.c:43, src/tos.c:1112-1131, src/tos.c:1151-1162). Without a
@@ -53,7 +57,7 @@ notes: |
coerces machine type and CPU to the TOS version unless the image is a
512 KB or larger EmuTOS (src/tos.c:976-1097, src/tos.c:838-969). ROM
patches apply when the hatari_patch_tos option is on and the image is
not EmuTOS (src/retro/options.c:250-263, src/retro/options.c:784,
not EmuTOS (src/retro/options.c:252-265, src/retro/options.c:877,
src/tos.c:1220-1222). No TOS is embedded. Because nSymbolsAutoLoad
defaults to SYM_AUTOLOAD_DEBUGGER (src/configuration.c:621,
src/includes/configuration.h:29-31), every TOS load also reads a
@@ -69,7 +73,7 @@ notes: |
src/configuration.c:1061-1071, CMakeLists.txt:444-461). The boot core
options are applied right after the command line, so the machine, DSP,
CPU, FPU, memory and hatari_patch_tos keys of hatari.cfg are overwritten
by them (src/main.c:328-330, src/retro/options.c:724-789). Every other
by them (src/main.c:328-330, src/retro/options.c:817-882). Every other
section is honoured: the cartridge image (src/configuration.c:487-493),
floppy images, GEMDOS directories and ACSI, SCSI and IDE images
(src/configuration.c:362-364, src/configuration.c:375-483), MIDI, printer,
@@ -89,14 +93,14 @@ notes: |
Content is a floppy image, an .m3u list parsed relative to its own
directory (src/retro/disk_control.c:94-182), an .ide image put on the
IDE master, a .vhd image put on ACSI 0 or a .gem marker naming a GEMDOS
directory (src/retro/main_retro.c:369-427, src/retro/harddisk.c:32-129).
directory (src/retro/main_retro.c:420-478, src/retro/harddisk.c:32-129).
With a .gem, <system>/hatari/BOOT.ST is inserted into drive A when it
exists (src/retro/harddisk.c:105-127). A disk whose name ends in A pulls
the sibling ending in B into drive B (src/floppy.c:300-343,
src/floppy.c:385-388), and an STX image reads its .wd1772 overlay from
the same directory (src/floppies/stx.c:807-827). Savestates pass through
hatari_savestate.tmp in the system directory
(src/retro/main_retro.c:41, src/retro/main_retro.c:292-359). IPF support
(src/retro/main_retro.c:44, src/retro/main_retro.c:343-410). IPF support
is compiled in from rsn8887/capsimg when ENABLE_STATIC_CAPSIMAGE is on
(cmake/BuildDependencies.cmake:93-126). The Windows jobs build with it
since September 2026 (.gitlab-ci-libretro.yml:101,
@@ -125,12 +129,14 @@ notes: |
home directory, or from the file -c names (src/main.c:256-278,
src/configuration.c:862-867, src/options.c:1283-1289). hatari.nvram and
auto.sav, restored only when bAutoSave is on, are kept there
(src/falcon/nvram.c:282-294, src/configuration.c:727-733). The window
icon is hatari-icon.bmp in the data directory (src/sdl/screen.c:707-716).
(src/configuration.c:727-733). The window icon is hatari-icon.bmp in the
data directory (src/sdl/screen.c:711-720).
--lilo boots a Linux kernel instead of TOS, vmlinuz and initrd in the data
directory by default (src/configuration.c:816-824, src/options.c:2309-2323).
IPF, RAW and CTR images need the capsimage library found at build time
(CMakeLists.txt:185-188).
IPF images are decoded by the built-in reader unless the capsimage
library is found at build time, which then reads them, and RAW and CTR
images need that library (src/CMakeLists.txt:70-74,
CMakeLists.txt:185-188).
files:
- name: "tos.img"
@@ -140,7 +146,7 @@ files:
min_size: 64
max_size: 1048576
validation: [size]
source_ref: "source src/retro/main_retro.c:157-207, source src/retro/main_retro.c:250-261, source src/options.c:1937-1945, source src/configuration.c:489, source src/tos.c:60-66, source src/tos.c:976-1097, source src/tos.c:838-969, source src/file.c:312-353, upstream src/configuration.c:810-812, upstream src/paths.c:316-330, upstream CMakeLists.txt:383-394, upstream src/main.c:191-201, upstream src/reset.c:66-68, upstream src/file.c:275-308, upstream src/file.c:481-520, upstream src/CMakeLists.txt:74, upstream src/CMakeLists.txt:386-393"
source_ref: "source src/retro/main_retro.c:160-211, source src/retro/main_retro.c:286-299, source src/options.c:1937-1945, source src/configuration.c:489, source src/tos.c:60-66, source src/tos.c:976-1097, source src/tos.c:838-969, source src/file.c:312-353, upstream src/configuration.c:810-812, upstream src/paths.c:316-330, upstream CMakeLists.txt:383-394, upstream src/main.c:191-201, upstream src/reset.c:66-68, upstream src/file.c:275-308, upstream src/file.c:481-520, upstream src/CMakeLists.txt:79, upstream src/CMakeLists.txt:391-398"
note: >
Any TOS 1.00 to 4.04, TOS 0.00, a RAM TOS or EmuTOS. The file must
carry this exact name in the libretro build: retro_init only enables
@@ -159,7 +165,7 @@ files:
required: false
storage: user_provided
unsourceable: "one table per TOS build, valid only beside the image it was linked with: each EmuTOS release archive carries the table of its ROM, etos512k.sym beside etos512k.img, and Atari TOS has none"
source_ref: "source src/tos.c:1094, source src/debug/symbols.c:1095-1113, source src/debug/symbols.c:1002-1020, source src/debug/symbols.c:372-407, source src/configuration.c:621, source src/includes/configuration.h:29-31, source src/retro/main_retro.c:182-194"
source_ref: "source src/tos.c:1094, source src/debug/symbols.c:1095-1113, source src/debug/symbols.c:1002-1020, source src/debug/symbols.c:372-407, source src/configuration.c:621, source src/includes/configuration.h:29-31, source src/retro/main_retro.c:186-198"
note: >
The name is the TOS image path with its last three characters
replaced by sym, and the image path is always tos.img here: retro_init
@@ -172,6 +178,24 @@ files:
tos.img in its data directory. The symbols serve the built-in
debugger.
- name: "floppy.raw"
path: "floppy.raw"
mode: libretro
description: "Floppy drive sample, signed 16-bit little-endian stereo at 44100 Hz, no header"
required: false
has_builtin: true
min_size: 4
max_size: 16777216
validation: [size]
storage: user_provided
unsourceable: "any headerless s16le stereo 44100 Hz sample the user records, with no name or version the code expects beyond the filename"
source_ref: "source src/retro/floppy_sound.c:146-186, source src/retro/floppy_sound.c:130-143, source src/retro/main_retro.c:185, source src/retro/statusbar.c:129-130, source src/retro/options.c:369-383, source src/retro/options.c:914-916"
note: >
Read whole at retro_init when its size is between 4 bytes and 16 MB,
and resampled to the core's audio rate. Otherwise the built-in
synthesised sound plays (src/retro/floppy_sound.c:48-101). Played when
a drive LED comes on while hatari_floppy_sound is enabled, its default.
- name: "cartridge ROM"
path: null
config_key: "szCartridgeImageFileName"
@@ -195,7 +219,7 @@ files:
description: "Boot floppy inserted with GEMDOS hard disk folders"
required: false
mode: libretro
source_ref: "source src/retro/harddisk.c:78-129, source src/retro/main_retro.c:391-395"
source_ref: "source src/retro/harddisk.c:78-129, source src/retro/main_retro.c:442-446"
note: "Inserted into drive A when the content is a .gem file."
- name: "hatari.cfg"
@@ -252,7 +276,7 @@ files:
sha1: 48be1de23a980bca15a8ed3cb92917340e43bbee
sha256: 0e083a340ad2e522de94e5121565a4730f99d6ee3638c74f5a2c3be579529155
crc32: 1639262c
source_ref: "upstream src/sdl/screen.c:707-716, upstream src/CMakeLists.txt:386-389"
source_ref: "upstream src/sdl/screen.c:711-720, upstream src/CMakeLists.txt:391-394"
note: >
Loaded with SDL_LoadBMP from the data directory when the window is
created. Without it the window keeps the default icon. Installed