hatariB
hatariB emulates Atari ST, Atari STE, Atari TT and Atari Falcon. It reads 8 files, none of them required: it starts games without them.
About this profile
Install this emulator's files
The installer finds your setup and its BIOS folder, then downloads only the files this emulator reads there and checks each one.
Open the Start menu. Type PowerShell and open it. Paste the line. Press Enter.
&([scriptblock]::Create((irm https://abdess.github.io/retrobios/i.ps1))) --emulator hataribOpen Terminal, in Applications, then Utilities. Paste the line. Press Return.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator hataribOpen a terminal. Paste the line. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator hataribSwitch to Desktop Mode. Open Konsole. Paste with Ctrl+Shift+V. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator hataribInstall Termux, a terminal app. Run pkg install python and termux-setup-storage once. Then paste the line. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator hataribOpen a terminal on the device. Or connect from a computer with SSH, a terminal over the network. Paste the line. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator hataribTechnical 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, makefile.libretro: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 <nopath> (hatari/src/paths.c:339-350), hatari.cfg is never read because Main_LoadInitialConfig calls core_config_init instead (hatari/src/main.c:987-1015, core/core_config.c:1440-1445), and printer, RS232 and keymap file settings keep their disabled defaults with no option to change them (hatari/src/configuration.c:728, hatari/src/keymap.c:63, hatari/src/keymap.c:699-718). The AVI recorder is compiled out and replaced by stubs (hatari/src/avi_record.c:102, hatari/src/avi_record.c:1535-1547), and File_Length, File_Lock and File_InputAvailable are removed with it (hatari/src/file.c:374, hatari/src/file.c:744, hatari/src/file.c:802).
At retro_set_environment the core looks for <system>/tos.img and lists every entry of <system>/hatarib/, up to 128 files and 16 directories (core/core_file.c:13-14, core/core_file.c:791-851). Those lists fill the hatarib_tos, hatarib_cartridge and hatarib_hardimg options, 100 values each: TOS candidates end in .img, .rom, .bin or .tos, cartridges in .img, .rom, .bin or .cart, hard disks are any file or subdirectory (core/core_config.c:11, core/core_config.c:1318-1385). The TOS option defaults to <tos.img> when the file exists and to EmuTOS 192uk otherwise (core/core_config.c:68-92, core/core_config.c:1325-1340). The four special values select tos.img or one of the built-in images, any other value is a path under the system directory (core/core_config.c:1112-1135). TOS_LoadImage copies the built-in image or reads the file with core_read_file_system and caches it (hatari/src/tos.c:45-63, hatari/src/tos.c:1028-1078). A failed load raises a notification and halts the CPU instead of leaving (hatari/src/tos.c:1080-1086, hatari/src/tos.c:1250-1262, core/core.c:419-433, hatari/src/main.c:906-925). Validation is upstream's (hatari/src/tos.c:1114-1160), but TOS_CheckSysConfig only warns and never switches machine or CPU (hatari/src/tos.c:859-1000). The hatarib_emutos_region and hatarib_emutos_framerate options rewrite the OS header word of an EmuTOS image (hatari/src/tos.c:1351-1365, core/core_config.c:1181-1187). Symbols_LoadTOS still runs (hatari/src/tos.c:1193) but resolves <tos>.sym against the process working directory, so nothing is read from the system directory.
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:324-326).
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:1018-1075, core/core_config.c:1169-1180). 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:1077-1105). 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:672, hatari/src/gemdos.c:770, hatari/src/gemdos.c:1330). 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), and 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), and Midi_Host_Open no longer opens files (hatari/src/midi.c:346-424).
8 files: 0 required, 8 optional.
In this collection: 6 in repo, 1 missing and 1 unsourceable.
Optional
Section titled “Optional”| File | Status | Hash |
|---|---|---|
tos.imgAtari TOS ROM image, default when present
Validation and source
| in repo built-in fallback | - |
etos1024k.imgEmuTOS 1.4 1024 KB image, all machine types
Hashes and source
| in repo embedded | MD5 1cb3775c4775 |
etos192uk.imgEmuTOS 1.4 192 KB UK image, 50 Hz, default TOS
Hashes and source
| in repo embedded | MD5 5f5730d9b557 |
etos192us.imgEmuTOS 1.4 192 KB US image, 60 Hz
Hashes and source
| in repo embedded | MD5 796f62574413 |
cartridge ROMAtari ST cartridge image loaded at 0xFA0000
Validation, source and config key
| missing | - |
hatarib.nvramTT and Falcon NVRAM contents, 50 bytes
Validation and source
| unsourceable user_provided built-in fallback | - |
capsimg.soCAPSImage 5.1 shared library for IPF and CTR floppy images, Linux, macOS, Android and Raspberry Pi builds
Source
| in repo | - |
capsimg.dllCAPSImage 5.1 shared library for IPF and CTR floppy images, Windows build
Packages and source
| in repo | - |
Next steps
Section titled “Next steps”- Get your files, for the setup you play on
- Every system, and the files each one needs
- When a game does not start