Hatari 2014 - RetroBIOS¶
Technical notes
Hatari 2014 is the libretro port of Hatari 1.8.0 (src/includes/version.h:16), the July 2014 release, kept on the hitari2014-mercurial branch of libretro/hatari after the main branch moved to a new port. The branch carries the Mercurial history up to the 1.8.0 release commit plus the port commits started in November 2014; it builds as hatari2014 (Makefile.libretro:22, .gitlab-ci-libretro.yml:12) and reports library_name Hatari2014, version 1.8 (libretro/libretro.c:1466-1468). No hatari2014 .info exists in libretro-core-info yet.
Directory layout under the libretro system directory: the Hatari working
and data directories are
TOS selection: retro_set_environment lists
The cartridge slot is empty by default (src/configuration.c:592) and is filled through hatari.cfg or the in-core ROM dialog (libretro/gui-retro/dlgRom.c:82-89). Cart_ResetImage installs the built-in GEMDOS trampoline instead of the external image whenever GEMDOS hard disk emulation, extended VDI or OS tracing is on (src/cart.c:121-133).
Floppy, ACSI, IDE and GEMDOS images are content. When a .gem folder is
loaded,
7 files | 1 required, 6 optional | 2 in repo, 5 missing
tos.img required in repo
Atari TOS ROM image
- Size: max 1.0 MB
- Validation: size
- Source:
libretro/libretro.c:393-411,libretro/libretro.c:640-649,libretro/libretro.c:1602-1607,src/main.c:905-907,src/tos.c:48-53,src/tos.c:575-651 - Platforms: batocera, lakka, recalbox, retroarch, retrobat, retrodeck, retropie, romm
- Any TOS 1.00 to 4.04, TOS 0.00, a RAM TOS or EmuTOS. Additional images are read from
/hatari/tos and selected with the hatari_tosimage option; only names ending in img are offered.
cartridge ROM optional missing
Atari ST cartridge image loaded at 0xFA0000
- Size: min 40 B, max 128.0 KB
- Validation: size
- Source:
src/cart.c:40-46,src/cart.c:53-88,src/cart.c:121-133,src/configuration.c:336,src/configuration.c:592,libretro/gui-retro/dlgRom.c:82-89 - Config key:
szCartridgeImageFileName - Raw images up to 0x20000 bytes or .stc images of exactly 0x20004 bytes whose 4-byte header is skipped; any other size is refused. Extensions .img, .rom and .stc are tried when the configured path is missing.
BOOT.ST optional in repo
Boot floppy inserted with GEMDOS hard disk folders
- Path:
hatari/BOOT.ST - Source:
libretro/libretro.c:1663-1671 - Added as the first disk when the content is a .gem file.
floppy.raw optional missing user_provided built-in fallback
Floppy drive seek sample, signed 16-bit little-endian stereo at 44100 Hz, no header
- Source:
libretro/floppy_sound.c:118-170,libretro/libretro.c:844-852,libretro/libretro.c:1379 - Read whole at retro_init; an empty or short read falls back to the synthesised click (libretro/floppy_sound.c:31-95). Played on each drive LED rising edge when hatari_floppy_sound is on.
hatari.cfg optional missing user_provided
Hatari configuration file
- Path:
hatari/hatari.cfg - Source:
libretro/libretro.c:945-951,src/main.c:805-831,src/main.c:892-894,src/configuration.c:630-633,src/configuration.c:768-777,src/paths.c:283-284 - Read only when the hatari_autoload_config option is on (off by default):
/hatari/hatari.cfg first, then hatari.cfg in the Hatari home directory. Every section is applied except the TOS path.
keymap file optional missing user_provided
Keyboard remap table, one PC key code and ST scan code pair per line
- Source:
src/keymap.c:53-59,src/keymap.c:605-658,src/change.c:359,src/configuration.c:188,src/configuration.c:504 - Config key:
szMappingFileName - Empty by default; loaded at Keymap_Init and on configuration change when the path is set.
hatari.nvram optional missing built-in fallback
TT and Falcon NVRAM contents, 50 bytes
- Size: min 50 B
- Validation: size
- Source:
src/falcon/nvram.c:63-85,src/falcon/nvram.c:186-216,src/falcon/nvram.c:223-226,src/main.c:752,src/paths.c:283-284 - Read from the Hatari home directory at NvRam_Init; a short read keeps the built-in defaults adjusted to the monitor type. Saved back on exit.
Generated on 2026-09-14T09:03:09Z