hatariB - RetroBIOS¶
Technical notes
hatariB carries Hatari 2.6.1 in its hatari/ directory, every change
fenced by LIBRETRO (DEVELOP.md:7-14, DEVELOP.md:44-48), and
builds as hatarib (makefile.libretro:1-3, core/core.c:1134); the
upstream_commit is the v2.6.1 tag the tree was taken from. The core
reads and writes through core_file.c, using the libretro VFS when the
frontend offers version 3 (core/core_file.c:747-790). Hatari's own
directory strings are replaced by
At retro_set_environment the core looks for
The three EmuTOS images are EmuTOS 1.4 built from the hatarib-custom-140 branch of bbbradsmith/emutos, which lets DESKTOP.INF and NEWDESK.INF be loaded, and are compiled in through emutos/bin_to_h.py (DEVELOP.md:10, README.md:305-307).
A cartridge is read with core_read_file_system from the option value (hatari/src/cart.c:40, hatari/src/cart.c:57-100) and disabled with GEMDOS hard disk emulation, extended VDI or OS tracing (hatari/src/cart.c:108-147). A permanent hard disk comes from system/hatarib through hatarib_hardimg and hatarib_hardtype, GEMDOS folder, ACSI, SCSI or IDE (core/core_config.c:186-233, core/core_config.c:1000-1057, core/core_config.c:1151-1162); temporary ones are content with an .acsi, .ahd, .vhd, .scsi, .shd, .ide or .gem extension or lines of an M3U (core/core_disk.c:16-23, core/core_disk.c:676-713, core/core_disk.c:782-785, core/core_config.c:1059-1087). Images open through core_file_open_hard (hatari/src/hdc.c:903, hatari/src/hdc.c:961-963, hatari/src/ide.c:663-666) and GEMDOS folders through core_scandir_hard (hatari/src/gemdos.c:663, hatari/src/gemdos.c:761, hatari/src/gemdos.c:1321); hard disks are write protected by default (hatari/src/configuration.c:918). Floppy content is ST, MSA, DIM, STX, IPF or CTR, also inside a ZIP, ZST or GZ, or an M3U or M3U8 list with #BOOTA, #BOOTB, #AUTO and #RES directives (core/core_disk.c:14-24, core/core_disk.c:202-384, core/core_disk.c:444-559, core/core_disk.c:621-670). Before the original image the core takes a same-named copy from the save directory and, for STX, a .wd1772 overlay there (core/core_disk.c:787-814); modified disks are written back to the save directory (core/core_disk.c:1154-1226, hatari/src/st.c:93, hatari/src/msa.c:417, hatari/src/floppy_stx.c:451). #AUTO and #RES write a virtual INF file to system/hatarib.tmp (hatari/src/inffile.c:761) and, when booting from a GEMDOS C: folder, read the DESKTOP.INF, NEWDESK.INF or EMUDESK.INF found there (hatari/src/inffile.c:598-667). MIDI goes through the libretro MIDI interface (core/core.c:485-545, hatari/src/midi.c:593-700); Midi_Host_Open no longer opens files (hatari/src/midi.c:346-424).
8 files | 0 required, 8 optional | 6 in repo, 2 missing
tos.img optional in repo built-in fallback
Atari TOS ROM image, default when present
- Size: max 1.0 MB
- Validation: size
- Source:
core/core_file.c:791-851,core/core_config.c:68-92,core/core_config.c:1094-1117,core/core_config.c:1306-1321,hatari/src/tos.c:1028-1160 - Platforms: batocera, lakka, recalbox, retroarch, retrobat, retrodeck, retropie, romm
- Any TOS 1.00 to 4.04, TOS 0.00, a RAM TOS or EmuTOS. Further images go in system/hatarib/ with an .img, .rom, .bin or .tos extension and are selected with the hatarib_tos option; without tos.img the built-in EmuTOS 192uk is the default.
etos1024k.img optional in repo embedded
EmuTOS 1.4 1024 KB image, all machine types
- Size: 1.0 MB
- SHA1:
38dc8baf5224... - MD5:
1cb3775c4775... - CRC32:
118b35b4 - SHA256:
757c571b98b9... - Source:
emutos/bin_to_h.py:1-30,hatari/src/tos.c:45-63,hatari/src/tos.c:1038-1046,core/core_config.c:76,core/core_config.c:1096-1116 - Compiled into the core from emutos/etos1024k.img and never opened at run time. Built from the hatarib-custom-140 branch of bbbradsmith/emutos; hashes are of the file in the repository.
etos192uk.img optional in repo embedded
EmuTOS 1.4 192 KB UK image, 50 Hz, default TOS
- Size: 192.0 KB
- SHA1:
ef3a3ccffcb3... - MD5:
5f5730d9b557... - CRC32:
fe4c3ff1 - SHA256:
5c679e6b1b8e... - Source:
emutos/bin_to_h.py:1-30,hatari/src/tos.c:45-63,hatari/src/tos.c:1038-1046,core/core_config.c:77,core/core_config.c:91,core/core_config.c:1096-1116 - Compiled into the core from emutos/etos192uk.img and never opened at run time. Selected when no tos.img exists and no other image is chosen. Built from the hatarib-custom-140 branch of bbbradsmith/emutos; hashes are of the file in the repository.
etos192us.img optional in repo embedded
EmuTOS 1.4 192 KB US image, 60 Hz
- Size: 192.0 KB
- SHA1:
bb98cd8a50df... - MD5:
796f62574413... - CRC32:
18030f9a - SHA256:
ccccc4209080... - Source:
emutos/bin_to_h.py:1-30,hatari/src/tos.c:45-63,hatari/src/tos.c:1038-1046,core/core_config.c:78,core/core_config.c:1096-1116 - Compiled into the core from emutos/etos192us.img and never opened at run time. Built from the hatarib-custom-140 branch of bbbradsmith/emutos; hashes are of the file in the repository.
cartridge ROM optional missing
Atari ST cartridge image loaded at 0xFA0000
- Size: min 40 B, max 128.0 KB
- Validation: size
- Source:
core/core_config.c:166-185,core/core_config.c:1145-1149,core/core_config.c:1332-1344,core/core_file.c:256-259,hatari/src/cart.c:40,hatari/src/cart.c:57-100,hatari/src/cart.c:108-147 - Config key:
hatarib_cartridge - Any file of system/hatarib/ with an .img, .rom, .bin or .cart extension. Raw images up to 0x20000 bytes or .stc images of exactly 0x20004 bytes whose 4-byte header is skipped. Replaced by the built-in GEMDOS trampoline whenever GEMDOS hard disk emulation, extended VDI or OS tracing is on.
hatarib.nvram optional missing user_provided built-in fallback
TT and Falcon NVRAM contents, 50 bytes
- Size: min 50 B
- Validation: size
- Source:
hatari/src/falcon/nvram.c:97,hatari/src/falcon/nvram.c:111-117,hatari/src/falcon/nvram.c:127-170,hatari/src/falcon/nvram.c:178-205,hatari/src/falcon/nvram.c:317-330,hatari/src/falcon/nvram.c:371-374,hatari/src/falcon/nvram.h:54-58,core/core_file.c:273-277,core/core_file.c:319-322 - Read from the system directory at NvRam_Init for the TT and Falcon machines only; a read shorter than 50 bytes keeps the built-in defaults. Written back when the core shuts down.
capsimg.so optional in repo
CAPSImage 5.1 shared library for IPF and CTR floppy images, Linux, macOS, Android and Raspberry Pi builds
- Source:
hatari/src/floppy_ipf.c:320-331,hatari/src/floppy_ipf.c:632-640,hatari/src/floppy_ipf.c:686-744,hatari/src/floppy_ipf.c:752-764,hatari/CMakeLists.txt:246,hatari/cmake/config-cmake.h:99-101,DEVELOP.md:56,DEVELOP.md:59 - Opened with dlopen on the first IPF or CTR read, from the dlopen search path or next to the core, and required to export the CAPS functions the core imports; without it those images are refused with a notification and every other format still works. rsn8887/capsimg publishes one build per platform under this name.
capsimg.dll optional in repo
CAPSImage 5.1 shared library for IPF and CTR floppy images, Windows build
- Source:
hatari/src/floppy_ipf.c:320-331,hatari/src/floppy_ipf.c:632-640,hatari/src/floppy_ipf.c:686-744,hatari/src/floppy_ipf.c:752-764,DEVELOP.md:56 - Opened with LoadLibrary on the first IPF or CTR read, from the RetroArch directory or the library search path; without it those images are refused with a notification and every other format still works.
Generated on 2026-09-14T09:03:09Z