Giter VIP home page Giter VIP logo

atarist-sidecart-firmware's Introduction

ATARI ST Sidecart ROM Emulator Firmware

This repository hosts the firmware code for the Sidecart ROM Emulator designed for Atari ST/STE/Mega systems. In tandem with the Sidecart Raspberry Pico firmware, this firmware facilitates the functioning of the Sidecart ROM Emulator.

Introduction

The Sidecart ROM Emulator mimics the behavior of Atari ST cartridges and their contained ROM memory. The code in this repository prepares the emulator to operate as a classic TOS Atari ST application.

The source is bifurcated into:

  1. A configuration tool, a C program found in the /romloader directory.

  2. A bootstrapping ROM, an assembly program housed in the /src directory. This ROM embeds the configuration tool as an executable.

Note: This ROM cannot be loaded or emulated like conventional ROMs. It has to be merged directly into the Sidecart RP2040 ROM Emulator firmware. Additional details are available in the Sidecart Raspberry Pico firmware.

Newcomers to the Sidecart ROM Emulator are encouraged to peruse the official Sidecart ROM Emulator website for a comprehensive understanding.

Requirements

  • An Atari STe computer (or a compatible emulator). Various emulators are accessible for platforms like Windows, Linux, and Mac. Hatari comes recommended, but MiSTer is also a worthy contender. The requirement is a minimum of 512KB of RAM on any Atari ST.

  • The atarist-toolkit-docker is pivotal. Familiarize yourself with its installation and usage.

  • A git client, command line or GUI, your pick.

  • A Makefile attuned with GNU Make.

Building the ROM

Having your Atari ST computer, Hatari emulator, or MiSTer Atari ST operational, follow these steps to build the program:

  1. Clone this repository:
$ git clone https://github.com/sidecartridge/atarist-sidecart-firmware.git
  1. Navigate to the cloned repository:
cd atarist-sidecart-firmware
  1. Trigger the build.sh script to build the ROM images:
./build.sh
  1. The dist folder now houses the binary files: BOOT.BIN, which needs to be incorporated into the Sidecart RP2040 ROM Emulator firmware, and FIRMWARE.IMG, a raw binary file tailored for direct emulation by SidecarT (intended for testing).

Building the ROM Loader

For those inclined to tweak the ROM loader, it's possible. The ROM loader, crafted in C, compiles via the atarist-toolkit-docker.

For illustration, let's use the Hatari emulator on macOS:

  1. Begin by ensuring the repository is cloned. If not:
$ git clone https://github.com/sidecartridge/atarist-sidecart-firmware.git
  1. Enter the cloned repository, specifically the romloader directory:
cd atarist-sidecart-firmware/romloader
  1. Establish the ST_WORKING_FOLDER environment variable, linking it to the /romloader directory of the cloned repository:
export ST_WORKING_FOLDER=<ABSOLUTE_PATH_TO_THE_FOLDER_WHERE_YOU_CLONED_THE_REPO/romloader>
  1. Embark on your code modifications within the /src folder. For insights on leveraging the environment, refer to the atarist-toolkit-docker examples.

  2. Leverage the provided Makefile for the build. The stcmd command connects with the tools in the Docker image. Engage the _DEBUG flag (set to 1) to activate debug messages and bypass direct ROM usage:

stcmd make DEBUG_MODE=1 
  1. The outcome is ROMLOAD.TOS in the dist folder. This file is ready for execution on the Atari ST emulator or computer. If using Hatari, you can launch it as follows (assuming hatari is path-accessible):
hatari --fast-boot true --tos-res med romloader/dist/ROMLOAD.TOS &

Releases

For releases, head over to the Releases page. The latest release is always recommended.

Note: The build output isn't akin to standard ROM images. The release files have to be incorporated into the Sidecart RP2040 ROM Emulator firmware.

Resources

License

The project is licensed under the GNU General Public License v3.0. The full license is accessible in the LICENSE file.

atarist-sidecart-firmware's People

Contributors

diegoparrilla avatar nplanel avatar

Stargazers

Roger Pettett avatar Alejandro Alfonso Fernández avatar Sascha Kriegel avatar  avatar Simon Laszcz avatar David BARON avatar  avatar

Watchers

 avatar

Forkers

nplanel pny

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.