fix: repin hatari on the rewritten main branch

libretro/hatari rewrote main on 2026-11-04: it is now hatari/hatari
c453b85f with 23 port commits on top, and the old pin 50929946 survives
only as the tip of main-old. Every citation is read again at 25f488b1 and
c453b85f. The libretro build now reads files through
src/retro/file_retro.c, with no .gz or archive unpacking, and a missing
tos.img clears bUseTos in retro_init instead of a have_bios gate in
retro_run, so the core runs the built-in test stub.
This commit is contained in:
Abdessamad Derraz committed 2026-11-05 12:29:20 +01:00
1 parent d5e5146819
commit 059d7e5007
1 file changed
+56 -55
+56 -55
View File
@@ -4,9 +4,9 @@ core_classification: official_port
source: "https://github.com/libretro/hatari" source: "https://github.com/libretro/hatari"
upstream: "https://github.com/hatari/hatari" upstream: "https://github.com/hatari/hatari"
logo: "https://raw.githubusercontent.com/hatari/hatari/main/share/icons/hicolor/scalable/apps/hatari.svg" logo: "https://raw.githubusercontent.com/hatari/hatari/main/share/icons/hicolor/scalable/apps/hatari.svg"
profiled_date: "2026-10-21" profiled_date: "2026-11-05"
source_commit: "50929946d196f431906932420c55e1b3593dacc5" source_commit: "25f488b1667ed064a25c30eb3f06b40bc877c495"
upstream_commit: "23bc3060ebf0da348cc842e358c102ba88002b56" upstream_commit: "c453b85f811fc11bed10e19e5e48fe95377e5a23"
core_version: "2.6.1-devel" core_version: "2.6.1-devel"
version_basis: version_basis:
kind: file kind: file
@@ -38,39 +38,36 @@ data_root:
note: "~/.hatari is used instead when it exists and ~/.config/hatari does not. Holds hatari.cfg, hatari.nvram and auto.sav. The default tos.img is read from ../share/hatari beside the bin directory." note: "~/.hatari is used instead when it exists and ~/.config/hatari does not. Holds hatari.cfg, hatari.nvram and auto.sav. The default tos.img is read from ../share/hatari beside the bin directory."
notes: | notes: |
The main branch of libretro/hatari is the upstream Hatari tree with its The main branch of libretro/hatari is the upstream Hatari tree at
experimental libretro target in src/retro, which upstream added in c453b85f, whose libretro target in src/retro carries the VFS, disk
January 2026, plus the port commits that follow their merge base, control, core options and hard disk loading, with 23 port commits on top:
51ed9991: VFS, disk control, core options, hard disk loading, the the libretro CI, static builds, the virtual keyboard, drive LEDs, the
virtual keyboard, drive LEDs and the floppy drive sound. It builds as floppy drive sound and the RetroArch reset. It builds as hatari_libretro
hatari_libretro (.gitlab-ci-libretro.yml:10-11, src/CMakeLists.txt:371-404), (.gitlab-ci-libretro.yml:10-11, src/CMakeLists.txt:331-341,
reports library_name hatari and the HATARI_VERSION string 2.6.1-devel src/CMakeLists.txt:455-475), reports library_name hatari and the
(src/retro/main_retro.c:223-224, src/includes/version.h:8). The .info HATARI_VERSION string 2.6.1-devel (src/retro/main_retro.c:243-244,
src/includes/version.h:8). The .info
shipped in the tree declares no firmware shipped in the tree declares no firmware
(share/libretro/info/libretro-hatari.info). The (share/libretro/info/libretro-hatari.info). The
hatari_libretro.info in libretro-core-info took that file's metadata on 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, 2026-09-16 and keeps a tos.img firmware entry with the TOS 1.02 US MD5,
which this code never checks. which this code never checks.
retro_init builds <system>/tos.img, records whether it exists and passes retro_init builds <system>/tos.img and passes it as --tos when it exists
it as --tos (src/retro/main_retro.c:160-211). It first reads floppy.raw (src/retro/main_retro.c:174-231). It first reads floppy.raw from the
from the system directory as the floppy drive sample system directory as the floppy drive sample (src/retro/main_retro.c:202,
(src/retro/main_retro.c:185, src/retro/floppy_sound.c:146-186). When src/retro/floppy_sound.c:146-186). When tos.img is absent a frontend
tos.img is absent a frontend message is shown and retro_run only message is shown, bUseTos is cleared and Main_Init runs without --tos
refreshes the framebuffer (src/retro/main_retro.c:190-193, (src/retro/main_retro.c:207-222), so TOS_InitImage installs the built-in
src/retro/main_retro.c:286-299). The test stub of faketosData.c instead of reading a ROM (src/tos.c:43,
name is fixed by that check: the .rom and .tos fallbacks of File_Read src/tos.c:1112-1131, src/tos.c:1151-1162). The name is fixed by that
(src/tos.c:60-66, src/file.c:312-353, src/file.c:544-583) are never check: the .rom and .tos fallbacks of File_Read (src/tos.c:60-66,
reached under a frontend. A missing --tos file fails option parsing src/retro/file_retro.c:64-88, src/filename.c:175-214) are never reached
(src/options.c:1026-1079, src/options.c:1937-1945), but Main_ErrorExit only under a frontend. Without a system directory Main_Init runs with no
raises the quit flag in this build (src/retro/main_retro.c:529-541), so --tos, and the TOS path falls back to tos.img in the Hatari data
Main_Init carries on with bUseTos cleared and TOS_InitImage installs the directory derived from the executable location
built-in test stub of faketosData.c instead of reading a ROM (src/configuration.c:810-812, src/paths.c:305-356,
(src/tos.c:43, src/tos.c:1112-1131, src/tos.c:1151-1162). Without a CMakeLists.txt:413-425). TOS_LoadImage strips the 256-byte (34-byte
system directory Main_Init runs with no --tos, the TOS path falls back to
tos.img in the Hatari data directory derived from the executable location
(src/configuration.c:810-812, src/paths.c:305-356, CMakeLists.txt:422-434)
and have_bios is never set. TOS_LoadImage strips the 256-byte (34-byte
for 4.92) loader of a RAM TOS, detects EmuTOS by ETOS at offset 0x2c, for 4.92) loader of a RAM TOS, detects EmuTOS by ETOS at offset 0x2c,
refuses images below 0x40 bytes, above 1 MB, with a version outside refuses images below 0x40 bytes, above 1 MB, with a version outside
0x100-0x6FF or a load address other than 0xE00000 or 0xFC0000, and 0x100-0x6FF or a load address other than 0xE00000 or 0xFC0000, and
@@ -82,63 +79,67 @@ notes: |
defaults to SYM_AUTOLOAD_DEBUGGER (src/configuration.c:621, defaults to SYM_AUTOLOAD_DEBUGGER (src/configuration.c:621,
src/includes/configuration.h:29-31), every TOS load also reads a src/includes/configuration.h:29-31), every TOS load also reads a
<tos>.sym symbol table when one exists (src/tos.c:1094, <tos>.sym symbol table when one exists (src/tos.c:1094,
src/debug/symbols.c:1095-1113, src/debug/symbols.c:1002-1020, src/debug/symbols.c:1099-1117, src/debug/symbols.c:1002-1024,
src/debug/symbols.c:372-407). src/debug/symbols.c:372-407).
The Hatari home directory is the RetroArch save directory The Hatari home directory is the RetroArch save directory
(src/paths.c:236-250). Configuration is read from <CONFDIR>/hatari.cfg, (src/paths.c:236-250). Configuration is read from <CONFDIR>/hatari.cfg,
/etc on Unix and the current directory on Windows, then from hatari.cfg /etc on Unix and the current directory on Windows, then from hatari.cfg
in that home directory, before the --tos argument is applied in that home directory, before the --tos argument is applied
(src/main.c:260-282, src/main.c:319-322, src/configuration.c:862-867, (src/main.c:256-278, src/main.c:315-318, src/configuration.c:862-867,
src/configuration.c:1061-1071, CMakeLists.txt:444-461). The boot core src/configuration.c:1061-1071, CMakeLists.txt:435-452). The boot core
options are applied right after the command line, so the machine, DSP, 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 CPU, FPU, memory and hatari_patch_tos keys of hatari.cfg are overwritten
by them (src/main.c:328-330, src/retro/options.c:817-882). Every other by them (src/main.c:324, src/retro/main_retro.c:519-522,
src/retro/options.c:817-882). Every other
section is honoured: the cartridge image (src/configuration.c:487-493), section is honoured: the cartridge image (src/configuration.c:487-493),
floppy images, GEMDOS directories and ACSI, SCSI and IDE images floppy images, GEMDOS directories and ACSI, SCSI and IDE images
(src/configuration.c:362-364, src/configuration.c:375-483), MIDI, printer, (src/configuration.c:362-364, src/configuration.c:375-483), MIDI, printer,
RS232 and SCC host endpoints (src/configuration.c:509-543), all disabled RS232 and SCC host endpoints (src/configuration.c:509-543), all disabled
by default (src/configuration.c:736-761) and opened by Midi_Host_Open, by default (src/configuration.c:736-761) and opened by Midi_Host_Open,
Printer_TransferByteTo, RS232_OpenCOMPort and SCC_Init_Channel when Printer_TransferByteTo, RS232_OpenCOMPort and SCC_Init_Channel when
enabled (src/midi.c:342-367, src/printer.c:42-65, src/printer.c:89-106, enabled (src/midi.c:340-365, src/printer.c:42-65, src/printer.c:89-106,
src/rs232.c:175-246, src/scc.c:439-500). szMappingFileName is parsed src/rs232.c:175-246, src/scc.c:439-500). szMappingFileName is parsed
(src/configuration.c:256) but the port's Keymap_LoadRemapFile is empty (src/configuration.c:256) but the port's Keymap_LoadRemapFile is empty
(src/retro/keymap.c:222-224). Only the SDL build reads a keymap file (src/retro/keymap.c:222-224). Only the SDL build reads a keymap file
(src/sdl/keymap.c:701). The autosave snapshot is restored by (src/sdl/keymap.c:701). The autosave snapshot is restored by
M68000_Start (src/m68000.c:332-348), which the port never calls. TT and M68000_Start (src/m68000.c:332-348), which the port never calls. TT and
Falcon NVRAM is hatari.nvram in the home directory, read at NvRam_Init Falcon NVRAM is hatari.nvram in the home directory, read at NvRam_Init
and written at exit (src/falcon/nvram.c:282-294, and written at exit (src/falcon/nvram.c:480-492,
src/falcon/nvram.c:334-337). src/falcon/nvram.c:535-538).
Content is a floppy image, an .m3u list parsed relative to its own 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 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 IDE master, a .vhd image put on ACSI 0 or a .gem marker naming a GEMDOS
directory (src/retro/main_retro.c:420-478, src/retro/harddisk.c:32-129). directory (src/retro/main_retro.c:427-485, src/retro/harddisk.c:32-129).
With a .gem, <system>/hatari/BOOT.ST is inserted into drive A when it 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 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, 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 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 the same directory (src/floppies/stx.c:807-827). Savestates pass through
hatari_savestate.tmp in the system directory hatari_savestate.tmp in the system directory
(src/retro/main_retro.c:44, src/retro/main_retro.c:343-410). IPF support (src/retro/main_retro.c:43, src/retro/main_retro.c:350-417). IPF support
is compiled in from rsn8887/capsimg when ENABLE_STATIC_CAPSIMAGE is on is compiled in from rsn8887/capsimg when ENABLE_STATIC_CAPSIMAGE is on
(cmake/BuildDependencies.cmake:93-126). The Windows jobs build with it (cmake/BuildDependencies.cmake:93-126). The Windows jobs build with it
since September 2026 (.gitlab-ci-libretro.yml:101, since September 2026 (.gitlab-ci-libretro.yml:101,
.gitlab-ci-libretro.yml:109) and the static Vita, Wii, Wii U and Switch .gitlab-ci-libretro.yml:109) and the static Vita, Wii, Wii U and Switch
jobs turn it off (.gitlab-ci-libretro.yml:193, .gitlab-ci-libretro.yml:202, jobs turn it off (.gitlab-ci-libretro.yml:193, .gitlab-ci-libretro.yml:202,
.gitlab-ci-libretro.yml:210, .gitlab-ci-libretro.yml:218). .gitlab-ci-libretro.yml:210, .gitlab-ci-libretro.yml:218).
File access goes through the libretro VFS when the frontend provides it File access goes through src/retro/file_retro.c, which reads and writes
(src/retro/vfs.c:17-48, src/file.c:253-302, src/file.c:479-492), and a through the libretro VFS when the frontend provides it and through the C
device-prefixed path such as ux0:/ counts as absolute (src/file.c:152-164). library otherwise, with no .gz or archive unpacking
(src/retro/file_retro.c:29-88, src/retro/vfs.c:18-49), and a
device-prefixed path such as ux0:/ counts as absolute
(src/filename.c:122-134).
The standalone program is the SDL build of the upstream tree. Its default The standalone program is the SDL build of the upstream tree. Its default
TOS image is tos.img in the data directory (src/configuration.c:810-812), TOS image is tos.img in the data directory (src/configuration.c:810-812),
which is the directory of the executable on Windows, ../Resources in the which is the directory of the executable on Windows, ../Resources in the
macOS bundle and ../share/hatari beside the bin directory elsewhere macOS bundle and ../share/hatari beside the bin directory elsewhere
(src/paths.c:316-330, CMakeLists.txt:383-394). --tos and the (src/paths.c:316-330, CMakeLists.txt:370-381). --tos and the
szTosImageFileName key replace it. When no image loads, Main_InitSubsystems szTosImageFileName key replace it. When no image loads, Main_InitSubsystems
opens the settings dialog to pick one and exits with Failed to load TOS opens the settings dialog to pick one and exits with Failed to load TOS
image if none is chosen (src/main.c:191-201). Nothing is compiled in as a image if none is chosen (src/main.c:187-197). Nothing is compiled in as a
fallback. The install rule copies a src/tos.img into the data directory fallback. The install rule copies a src/tos.img into the data directory
when one is present at build time, the source tree carries none, and the when one is present at build time, the source tree carries none, and the
release checklist puts the latest EmuTOS 1024k image in the binary release checklist puts the latest EmuTOS 1024k image in the binary
@@ -146,17 +147,17 @@ notes: |
~/.config/hatari, Library/Application Support/Hatari or ~/.config/hatari, Library/Application Support/Hatari or
AppData\Local\Hatari under the user's home (src/paths.c:24-29, AppData\Local\Hatari under the user's home (src/paths.c:24-29,
src/paths.c:201-274). hatari.cfg is read from <CONFDIR> and then from that src/paths.c:201-274). hatari.cfg is read from <CONFDIR> and then from that
home directory, or from the file -c names (src/main.c:256-278, home directory, or from the file -c names (src/main.c:252-274,
src/configuration.c:862-867, src/options.c:1283-1289). hatari.nvram and src/configuration.c:862-867, src/options.c:1283-1289). hatari.nvram and
auto.sav, restored only when bAutoSave is on, are kept there auto.sav, restored only when bAutoSave is on, are kept there
(src/configuration.c:727-733). The window icon is hatari-icon.bmp in the (src/configuration.c:727-733). The window icon is hatari-icon.bmp in the
data directory (src/sdl/screen.c:711-720). data directory (src/sdl/screen.c:715-724).
--lilo boots a Linux kernel instead of TOS, vmlinuz and initrd in the data --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). directory by default (src/configuration.c:816-824, src/options.c:2309-2323).
IPF images are decoded by the built-in reader unless the capsimage 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 library is found at build time, which then reads them, and RAW and CTR
images need that library (src/CMakeLists.txt:70-74, images need that library (src/CMakeLists.txt:70-74,
CMakeLists.txt:185-188). CMakeLists.txt:166-169).
files: files:
- name: "tos.img" - name: "tos.img"
@@ -166,7 +167,7 @@ files:
min_size: 64 min_size: 64
max_size: 1048576 max_size: 1048576
validation: [size] validation: [size]
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" source_ref: "source src/retro/main_retro.c:174-231, 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/tos.c:1151-1162, source src/retro/file_retro.c:64-88, upstream src/configuration.c:810-812, upstream src/paths.c:316-330, upstream CMakeLists.txt:370-381, upstream src/main.c:187-197, upstream src/reset.c:66-68, upstream src/file.c:131-164, upstream src/filename.c:161-200, upstream src/CMakeLists.txt:90, upstream src/CMakeLists.txt:433-440"
note: > note: >
Any TOS 1.00 to 4.04, TOS 0.00, a RAM TOS or EmuTOS. The file must 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 carry this exact name in the libretro build: retro_init only enables
@@ -177,7 +178,7 @@ files:
stand in for the default, and a .gz or archive is unpacked first. The stand in for the default, and a .gz or archive is unpacked first. The
program exits when no image loads and none is picked in the settings program exits when no image loads and none is picked in the settings
dialog (src/options.c:1937-1940, src/configuration.c:489, dialog (src/options.c:1937-1940, src/configuration.c:489,
src/tos.c:983, src/main.c:191-201). src/tos.c:983, src/main.c:187-197).
- name: "tos.sym" - name: "tos.sym"
path: "tos.sym" path: "tos.sym"
@@ -185,7 +186,7 @@ files:
required: false required: false
storage: user_provided 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" 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:186-198" source_ref: "source src/tos.c:1094, source src/debug/symbols.c:1099-1117, source src/debug/symbols.c:1002-1024, 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:203-213"
note: > note: >
The name is the TOS image path with its last three characters 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 replaced by sym, and the image path is always tos.img here: retro_init
@@ -209,7 +210,7 @@ files:
validation: [size] validation: [size]
storage: user_provided 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" 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" source_ref: "source src/retro/floppy_sound.c:146-186, source src/retro/floppy_sound.c:130-143, source src/retro/main_retro.c:202, source src/retro/statusbar.c:129-130, source src/retro/options.c:369-383, source src/retro/options.c:914-916"
note: > note: >
Read whole at retro_init when its size is between 4 bytes and 16 MB, 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 and resampled to the core's audio rate. Otherwise the built-in
@@ -239,7 +240,7 @@ files:
description: "Boot floppy inserted with GEMDOS hard disk folders" description: "Boot floppy inserted with GEMDOS hard disk folders"
required: false required: false
mode: libretro mode: libretro
source_ref: "source src/retro/harddisk.c:78-129, source src/retro/main_retro.c:442-446" source_ref: "source src/retro/harddisk.c:78-129, source src/retro/main_retro.c:449-453"
note: "Inserted into drive A when the content is a .gem file." note: "Inserted into drive A when the content is a .gem file."
- name: "hatari.cfg" - name: "hatari.cfg"
@@ -249,7 +250,7 @@ files:
required: false required: false
storage: user_provided storage: user_provided
unsourceable: "user settings in Hatari's INI format, with no canonical contents" unsourceable: "user settings in Hatari's INI format, with no canonical contents"
source_ref: "upstream src/main.c:260-282, source src/main.c:319-322, source src/main.c:328-330, source src/configuration.c:862-867, source src/configuration.c:1061-1071, upstream src/paths.c:236-250, source CMakeLists.txt:444-461, upstream src/options.c:1283-1289, upstream src/paths.c:24-29" source_ref: "upstream src/main.c:256-278, source src/main.c:315-318, source src/main.c:324, source src/retro/main_retro.c:519-522, source src/configuration.c:862-867, source src/configuration.c:1061-1071, source src/paths.c:236-250, source CMakeLists.txt:435-452, upstream src/options.c:1283-1289, upstream src/paths.c:24-29"
note: > note: >
Read from <CONFDIR>/hatari.cfg and then from hatari.cfg in the Read from <CONFDIR>/hatari.cfg and then from hatari.cfg in the
RetroArch save directory, before the --tos argument and the boot RetroArch save directory, before the --tos argument and the boot
@@ -267,7 +268,7 @@ files:
validation: [size] validation: [size]
storage: user_provided storage: user_provided
unsourceable: "machine state the emulator writes itself at exit, with no canonical contents" unsourceable: "machine state the emulator writes itself at exit, with no canonical contents"
source_ref: "source src/falcon/nvram.c:96-97, source src/falcon/nvram.c:116-141, source src/falcon/nvram.c:148-171, source src/falcon/nvram.c:282-294, source src/falcon/nvram.c:334-337, upstream src/paths.c:236-250, source src/main.c:208, upstream src/paths.c:24-29" source_ref: "source src/falcon/nvram.c:163-164, source src/falcon/nvram.c:230-255, source src/falcon/nvram.c:263-286, source src/falcon/nvram.c:480-492, source src/falcon/nvram.c:535-538, source src/paths.c:236-250, source src/main.c:204, upstream src/paths.c:24-29"
note: > note: >
Read from the RetroArch save directory at NvRam_Init, and from the Read from the RetroArch save directory at NvRam_Init, and from the
Hatari home directory in the standalone program. A short read keeps Hatari home directory in the standalone program. A short read keeps
@@ -298,7 +299,7 @@ files:
sha1: 48be1de23a980bca15a8ed3cb92917340e43bbee sha1: 48be1de23a980bca15a8ed3cb92917340e43bbee
sha256: 0e083a340ad2e522de94e5121565a4730f99d6ee3638c74f5a2c3be579529155 sha256: 0e083a340ad2e522de94e5121565a4730f99d6ee3638c74f5a2c3be579529155
crc32: 1639262c crc32: 1639262c
source_ref: "upstream src/sdl/screen.c:711-720, upstream src/CMakeLists.txt:391-394" source_ref: "upstream src/sdl/screen.c:715-724, upstream src/CMakeLists.txt:433-436"
note: > note: >
Loaded with SDL_LoadBMP from the data directory when the window is Loaded with SDL_LoadBMP from the data directory when the window is
created. Without it the window keeps the default icon. Installed created. Without it the window keeps the default icon. Installed