Getting Started With Hatari (Atari ST STE TT Falcon Emulation)

This was written using Lakka 2.1 rc6 x86_64

I was excited to find out Lakka has an Atari ST core, but then disappointed that it chucked out some errors when I tried to “just load an .st image”. There really was not much of a guide out there, even to get started, So I picked apart a handful of posts and docs and wrote my own mini guide below.

Quick Start;

  • Get a copy of US TOS 1.02 , name and put it here; “/storage/system/tos.img”
  • Create a folder for your Atari ST games “/storage/roms/Atari - ST”
  • Create a hatari.cfg file in “/storage/system/hatari.cfg” with the following lines

bAutoInsertDiskB = TRUE
FastFloppy = TRUE
nWriteProtection = 0
szDiskAFileName = /storage/roms/Atari\ -\ ST//
szDiskBFileName =
szDiskImageDirectory = /storage/roms/Atari\ -\ ST/
szDiskAZipPath =
szDiskBZipPath =

szCartridgeImageFileName =
szTosImageFileName = /storage/system/tos.img

  • Changing Floppy disks can be achieved by accessing the Hatari menu and selecting the “Floppy” menu (see long winded explanation below)
  • So far I have found non of my own .st files get scanned into a playlist so I’ll have to build my own, but in the mean time to load a disk, in the Lakka menu go to “Load Content” > select you first game disk > then select to run it with the Hatari Core, it will now try to load the game without complaining it has no TOS. (ST games can have varying Hardware requirements, see “Long Winded Start” on how to change settings, but you should be able to play a lot of games with just the defaults.
  • Note on controllers, A controller can be used as both a mouse and joystick, see “Long Winded Start” for more info.

Long WInded Start:

  • The TOS image (TOS stands for THE Operating System, cool huh)
    Consider TOS like a bios image used for other consoles, it needs adding to the the “/storage/system” directory. The one the retroarch Hatari documents mention is the US TOS version 1.02 this was an Atari ST OS and is probably the most compatible version for playing games, if you want to learn more about the different TOS versions and which hardware systems they correspond to (ST, STE, TT & FALCON) here is a good link;
    A quick google search of say “atari st TOS images” will take you somewhere like here;

  • I found Hatari would kick out this error when loading a game without the config set up “Can not load TOS file J’/usr/bin/TOS” This is because it was looking for the tos.img in the /usr/bin directory of Lakka, this is a read only location so we can not just drop the TOS image there, this is what the config file is needed for. This section tells Hatari to look for TOS in the location specified.

szCartridgeImageFileName =
szTosImageFileName = /storage/system/tos.img

  • Hatari does not seem to have a default hatari.cfg in place when first loaded (Hence the error above), It expects it to be read from two places by default, /storage/.hatari/hatari.cfg and /storage/system/hatari.cfg, I prefer the latter as it is more visible, once you load your first game you can then access the Hatari menu and save over your first base config in either location with whatever settings you change.

Controller and Hatari Menu ( And Changing Floppy Disk);

The default function mapping for controllers can be found in the docs here;

  • The Hatari menu can be accessed using the default controller button “Y” when the core is loaded (IE during a game" (i was using a PlayStation 4 controller and it was the square button for me)
  • Once in the menu I found a real mouse is not usable, however you can press “select” on your controller to switch to mouse mode (there is also another button to display the mouse speed “ms” and another to change it), now you can navigate the menu.
  • The menu can be used to change your system settings, here you can;
    - Point to new TOS images
    - Change the CPU & the amount of memory (needed sometimes to get some games working, dropping to 512k can help with some earlier games)
    - Change floppy disks, “YOU WILL DO THIS A LOT WITH SOME GAMES” When the first game disk is loaded you can then access the Hatari menu, go to the “Floppy” Menu and then browse to a new disk to put into a drive (A or B). It is important that you choose not to reset the system when exiting the Hatari menu if still in a game (this is not selected by default , so you will be fine).
    - Add a HDD not really needed (for die hard Atari fans).
    - Change Keyboard and Joystick settings.
    - Change the screen size (Warning Hatari is strict when it comes to aspect ratios it will always want to use the available resolutions of 1990s Monitors, with a little tweaking you can get it to fill most of your modern screen)
    - Change the sound chip settings (don’t touch unless you know what you’re doing)
    - There is also a save state option in the memory menu (Save state is not available directly from Lakka for Hatari, but it is inside the emulator :slight_smile: )
  • Once you have finished setting up your settings you can now save them using the save config button , rather than use the default location of /storage/.hatari/hatari.cfg I would navigate back to your initial basic config file /storage/hatari.cfg as it is more accessible and visible, Note if you like, you can have as many config files as you want, as long as you remember where you put them :blush: , "The Immortal (one of the hardest games ever made), for instance, needs its memory setting back to 512k with a 68000 cpu in st mode 1.02 TOS, so why not create an “immortal.cfg” with the right system settings and floppy already in the drive, then you can load it and it is all just done.
1 Like

I cant get my xinput joystick to work in game… can access hatari menu, when i click joysticks its configured to use real joystick but says none discovered. works fine in mouse mode, etc and works fine with other cores.

same problem, nobody knows the solution?

Yeah, it’s pretty confusing. Some games do have working controls and others don’t no matter what you do. Also, the control options are messed up. You put something to the “start” button but it thinks it’s the right trigger. There’s something really off about the hatari core and it’s controls.

I am trying to get Hatari to work on Lakka for a Raspberry Pi 1. I load the tos and the cfg in the correct folders, then load content on a .st file that works on any other emulator, the lakka logo starts and then black, nothing, pressing esc doesnt work, the system is frozen. Any help?