bbbradsmith / hatariB

Libretro core for Hatari emulation of Atari ST STE TT Falcon
GNU General Public License v2.0
17 stars 3 forks source link

hatariB

A Libretro core integrating the Hatari emulation of Atari ST, STE, TT, and Falcon computers.

Other platforms may be possible. See Manual Build below.

This is intended as an alternative or replacement for the older Libretro Hatari Core.

This is a new project in the initial testing phase. Eventually I would like to submit it to Libretro.

If you notice any problems or have feedback, please create a Github issue. If you can, test in Hatari's stand-alone emulator first to see if the problem exists there as well.

Emulator: Hatari 2.5.0 2024-04-18

Development notes: DEVELOP.md

Table of Contents

Installation

The build artifact ZIP files contain a core/ and info/ folder. The core folder contains the hatariB core object, and the info folder contains metadata that allows RetroArch to know its associated file types.

On Windows, if using RetroArch's portable Download version instead of the installer, you can simply copy the core and info files into the RetroArch folder and it will merge into those folders. If installed, or on other platforms, you may need to locate the needed core and info folders. You can find these in RetroArch's Settings > Directories menu under Cores and Core Info. Similarly the system/ folder referred to below where you can place your TOS and hard disk image files is actually the RetroArch System/BIOS directory.

Depending on the platform, you may also need to add executable permission to the core file (e.g. chmod +x hatarib.so). See below for MacOS instructions.

For IPF and CTR floppy disk image support, you will also need to provide the capsimg 5.1 support library, originally created by the Software Preservation Society. This library will be a file named capsimg.dll or capsimg.so, depending on your platform. On Windows this DLL should be placed in your RetroArch installation folder next to retroarch.exe. On other platforms it must be installed in your search path for dlopen, so if it isn't found next to the SO, maybe try /usr/lib? An up to date version of capsimg for many platforms can be downloaded here:

If you have trouble getting the builds to work, you can turn on logging under Settings > Logging. Log output to a file, restart RetoArch, then try to start the core. After it fails, close RetroArch and find the log. There should hopefully be an error message near the bottom of the log, which might help if we're not unlucky.

MacOS

Installing for MacOS requires a different method for giving permission:

Once the file is un-quarantined, and given permission to execute, you can copy it to your RetroArch cores folder.

The capsimg.so for IPF support can be placed next to the hatarib.dylib file, but it must also be given permission in the same way.

Android

You can use this core with the latest RetroArch APK, or with the older RetroArch Plus build from the Google Play store.

Manual Build

If you want to try building it yourself, in theory it should build on any platform supported by SDL2.

Prerequisite tools: git, make, cmake, gcc.

Open a terminal to the directory you want to use, and do the following:

If successful, this should create hatariB/build/hatarib.so (or DLL/dylib).

If unsuccessful, you might look at build.yml which runs the Github Actions builds for ideas.

If unsuccessful because the system is out of memory (may look like a "fatal error" of GCC), try setting the MULTITHREAD variable to empty:

By default all warnings are enabled and treated as werrors. If unsuccessful because of spurious warnings, try setting the WERROR variable to empty:

See DEVELOP.md for more details.

Notes

Hatari Manual

History

License

This project is licensed under the GNU General Public License Version 2.

The GPL v2 license was inherited from the Hatari project. The Hatari source code is incorporated here, in the hatari/ folder with minimal modifications, outlined in the development notes.

This project includes EmuTOS binaries as built-in available TOS BIOS images, under the GPL v2 license.

This project incorporates header files from Libretro, under a compatible permissive license.

This project includes SDL2 under the zlib license.

This project includes zlib under the zlib license.

Authors

This Libretro core was begun by Brad Smith.

Other contributors:

Incorporated works contributor documentation:

I would also like to acknowledge the prior work of libretro/hatari project:

Though none of hatariB's code is directly borrowed from libretro/hatari (aside from our mutual use of Hatari), as a past contributor I had learned much from it. As an example to work from and compare against, it was a direct inspiration and source of ideas for hatariB.