Hatari 2014
Hatari 2014 emulates Atari ST, Atari STE, Atari TT and Atari Falcon. It reads 7 files, 1 of them required: without a required file it does not start games. A required file is needed only by the machines that use it. Each file below cites the line of source code that reads it.
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 hatari2014Open Terminal, in Applications, then Utilities. Paste the line. Press Return.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator hatari2014Open a terminal. Paste the line. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator hatari2014Switch to Desktop Mode. Open Konsole. Paste with Ctrl+Shift+V. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator hatari2014Install 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 hatari2014Open 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 hatari2014Technical 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:1476-1478). No hatari2014 .info exists in libretro-core-info yet.
Directory layout under the libretro system directory: the Hatari working and data directories are <system>/hatari (src/paths.c:324-325, or the system directory itself on Vita and PS3, src/paths.c:314-320), the default TOS is <system>/tos.img, extra TOS images go in <system>/hatari/tos, BOOT.ST in <system>/hatari, floppy.raw and the global hatari.cfg in <system> and <system>/hatari. The Hatari home directory, which holds the user hatari.cfg and hatari.nvram, is $HOME/.hatari on desktop builds (src/paths.c:41, src/paths.c:284-285), <system>/hatari on Wii U and Vita (src/paths.c:210-213, src/paths.c:224-226), the system directory itself on PS3 (src/paths.c:238-240).
TOS selection: retro_set_environment lists <system>/tos.img and every entry of <system>/hatari/tos (libretro/libretro.c:393-411). The hatari_tosimage option offers those ending in img (libretro/libretro.c:270-299) and the choice becomes RETRO_TOS (libretro/libretro.c:640-649). retro_load_game refuses content when that path does not exist (libretro/libretro.c:1612-1617) and hmain writes it into szTosImageFileName after the configuration files, so hatari.cfg cannot override it (src/main.c:914-916). TOS_LoadImage reads the file whole, strips the 256-byte (or 34-byte for 4.92) loader of a RAM TOS, detects EmuTOS by ETOS at offset 0x2c, and rejects an image whose version word is outside 0x100-0x4FF, whose load address is neither 0xE00000 nor 0xFC0000, or which exceeds 1 MB. A 16 KB image with version 0 is the TOS 0.00 boot loader (src/tos.c:575-651). Machine type and CPU are coerced to the TOS version unless the image is EmuTOS (src/tos.c:459-566), and ROM patches are applied for TOS 1.00, 1.02, 1.04, 1.06, 1.62, 2.05, 2.06, 3.06, 4.00 to 4.04 and 4.92 (src/tos.c:146-220). HFile_Read also accepts .img, .rom and .tos as fallback extensions and reads the first member of a .zip or a .gz (src/file.c:217-244, libretro/include/config.h:20), which only matters for a path picked in the in-core ROM dialog (libretro/gui-retro/dlgRom.c:69-76). EmuTOS is not embedded.
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, <system>/hatari/BOOT.ST is inserted into drive A so TOS boots with the GEMDOS drive (libretro/libretro.c:1673-1681). Memory snapshots for retro_serialize stay in memory (libretro/libretro.c:1778-1803), and hatari.sav, auto.sav, hatari.prn, hatari.wav and hatari.avi are output names under <system>/hatari. DESKTOP.INF and NEWDESK.INF are created or rewritten inside the emulated C: directory when extended VDI is on (src/vdi.c:955-988).
7 files: 1 required, 6 optional.
In this collection: 2 in repo, 1 missing and 4 unsourceable.
Required
Section titled “Required”| File | Status |
|---|---|
tos.imgAtari TOS ROM image
Validation and source
| in repo |
Optional
Section titled “Optional”| File | Status |
|---|---|
cartridge ROMAtari ST cartridge image loaded at 0xFA0000
Validation, source and config key
| missing |
BOOT.STBoot floppy inserted with GEMDOS hard disk folders
Source
| in repo |
floppy.rawFloppy drive seek sample, signed 16-bit little-endian stereo at 44100 Hz, no header
Source
| unsourceable user_provided built-in fallback |
hatari.cfgHatari configuration file
Source
| unsourceable user_provided |
keymap fileKeyboard remap table, one PC key code and ST scan code pair per line
Source and config key
| unsourceable user_provided |
hatari.nvramTT and Falcon NVRAM contents, 50 bytes
Validation and source
| unsourceable built-in fallback |
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