Crosscompiling für Atari ST mit gcc und CMake

Mit dem richtigen CMake File kann man auch für den Atari ST komfortabel mit PC Tools entwickeln.

Benötigt werden

  1. Crosscompiler und -toolchain mit gcc und zugehörigen Tools für Atari ST (z.B. hier: http://vincent.riviere.free.fr/soft/m68k-atari-mint/)
  2. CMake (http://cmake.org/)
  3. IDE für das Host System (ich verwende CMake mit Ausgabe von Makefiles und einem Projekt für die Code::Blocks IDE unter Linux)

Eine einfache CMakeLists.txt sieht dann wie folgt aus:

#
# Experimental File to build a basic file with custom startup code and without MiNTLib
# Version 17.7.2014
#
cmake_minimum_required(VERSION 2.8)
# disable strange gcc assumptions
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
# select Atari ST cross compiler
set(CMAKE_C_COMPILER m68k-atari-mint-gcc)
set(CMAKE_ASM_COMPILER m68k-atari-mint-as)
set(CMAKE_C_FLAGS "-m68000 -O3 -fomit-frame-pointer -Wall -mshort -nostdlib -std=c99")
set(CMAKE_EXE_LINKER_FLAGS  "${CMAKE_C_FLAGS} ${PROJECT_SOURCE_DIR}/startup.S" )
add_executable(stlow1.tos
 main.c
 )
#
# Experimental File to build a basic file with custom startup code and without MiNTLib
# Version 17.7.2014
#
cmake_minimum_required(VERSION 2.8)
# disable strange gcc assumptions
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS “”)
set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS “”)
# select Atari ST cross compiler
set(CMAKE_C_COMPILER m68k-atari-mint-gcc)
set(CMAKE_ASM_COMPILER m68k-atari-mint-as)
set(CMAKE_C_FLAGS “-m68000 -O3 -fomit-frame-pointer -Wall -mshort -nostdlib -std=c99”)
set(CMAKE_EXE_LINKER_FLAGS  “${CMAKE_C_FLAGS} ${PROJECT_SOURCE_DIR}/startup.S” )
add_executable(stlow1.tos
main.c

Dabei ergeben sich folgende Eigenschaften:

  • Code für Atari ST mit 68000er ohne FPU
  • int ist short, d.h. 16.bit (aber statt int ist eh stdint.h zu verwenden)
  • MinTLib wird nicht verwendet (d.h. keine Standard C Libraryfunktionen, aber die TOS Bindings sind da und voll funktionsfähig, ausserdem wird das Binary schön klein)
  • eigener Startupcode (hier von Markus Fröschle geklaut und um den Initcode von Leonard/Oxygene ergänzt)

Letztere sind für mich als Spiele und Demoentwickler interessant, da ich nicht immer 70K unixoide Library  dazulinken möchte.
Die Compilerflags kann man natürlich ggfs für den  Atari Falcon 030 oder die Firebee passend modifizieren.

Fehlt nur noch ein passendes Projekt, der erzeugte Code mit reinem C ist übrigens nah dran an handgeschriebenem Assembler. Nur echte ST Codingcracks werden besseren Assemblercode schreiben können als das, was hier ein relativ aktueller gcc erzeugt.

Vielen Dank an Vincent Riviere für die Toolchain und Markus Fröschle für praktisches Knowhow, ohne die Mintlib kleine effiziente Executables für den ST zu erzeugen.

Neues Autorennspiel “Racer” für den Atari Falcon 030

Zur Sillyventure 2k13 in Gdansk wurde am Wochenende erst ein neues Spiel für den Atari Falcon 030 veröffentlicht.

Racer auf dem Atari Falcon 030 (Titelbild)
Racer auf dem Atari Falcon 030 (Titelbild)

Das Spiel Racer ist ein technisch echt gutes Autorennspiel für jeden Falcon, mehr dazu im Kurzartikel bei atari-home.de: http://www.atari-home.de/2013/11/neues-autorennspiel-racer-fuer-den-atari-falcon-030/

Racer auf dem Atari Falcon 030 (Titelbild)
Racer auf dem Atari Falcon 030 (Titelbild)

Ich bin selbst stark erstaunt über die echt gute Performance, trpotz des landläufig als lahm verschriehenen sogenannten Truecolorgrafikmodus des Falcons (16Bit mit 5-6-5 Muster pro Pixel). Mich persönlich motiviert das, evtl auch eher auf Spiele für den Falcon zu setzen, wenn ich denn mal wieder privat Lust und Laune verspüre. Langsames Technologiesammeln läuft, aber bis zu einem fertigen Spiel ist es noch ein Weg. Immerhin lockt mich dieser Release, selber mal wieder etwas zu programmieren. Die Technik mit den “compilierten Sprites” habe ich mir schon mal abgeschaut, mein Generator ist da allerdings noch nicht so optimiert, wie der hier in Racer verwendete.

Immerhin, in der Atari Szene gibt es noch Bewegung!

Have you played Atari today?

Neues Retrogaming Portal retro-zocker.de

retro-zocker.de

Unter http://retro-zocker.de/ gibt es eine neue Portalseite bzgl Retrogaming auf allen Systemen, Konsolen und Rechnern. Natürlich auch Atari und co., aber auch Playstation, Megadrive und ZX Spectrum. Also quasi alle Systeme, die ich da habe und sammele.

Seite und Forum sind deutschsprachig. Aktuell ist noch im Forum wenig los, vielleicht mag der eine oder andere ja auch mal reinschauen?

SDCard HxC Floppy Emulator im Atari STE

Heute mittag habe ich meinen HxC Floppy Emulator (vorläufig) fest im Atari STE eingebaut. Ich habe mehrere Probleme dabei festgestellt. Trotz verlängertem Floppykabel ist da alles wegen der Kabelknickrichtung nicht wirklich praktisch. Ausserdem ist so das Kabel zur Spannungsversorgung immer noch knapp und mit dem verlängerten Floppykabel im Weg. Der rechte Abstandshalter ist mir leider etwas abgebröselt und zu allem übel halten die Fixierungschrauben, die eigentlich von unten in die Floppy greifen, weder von oben noch von unten 100%. Die ganze Konstruktion ist wackeliger, als sie auf dem Foto aussieht. Man kann prinzipiell damit arbeiten, alles läuft, aber mechanisch ist die Konstruktion alles andere als perfekt.

SD Card HxC Floppy Emulator eingebaut im Atari STE
SD Card HxC Floppy Emulator eingebaut im Atari STE

Höchstwahrscheinlich werde ich noch eine Verlängerung für die Spannungsversorgung holen, IIRC werden nur 5V benötigt und dann den ganzen HxC Aufbau durch die Floppyöffnung samt Kabeln aus dem Gehäuse heraus führen. Das ist nicht perfekt, müsste aber ausreichen und mechanisch und elektrisch zuverlässiger sein als der aktuelle Stand.

Von den vielen Montageproblemen hat leider kaum je einer in sämtlichen Foren ein Wort erwähnt. :(

Ein DB9 Joystick auf USB Adapter

In einer Ausgabe des Load Magazin auf der Xzentrix 2012 sah ich eine Werbeanzeige für diesen Joystickadapter zum selberzusammenbauen. Damit kann man wohl 2 klassische Joysticks mit DB9 Anschluss (C64, Amiga, Atari ST, etc) per USB an der PC anschliessen und verwenden: http://retro-donald.de/sinchai-shop/index.php?main_page=product_info&cPath=1&products_id=137

Die Firmware soll noch ein paar Macken haben und unter Linux oder auf dem Mac nicht 100% tun. Mal schauen, ich notiers mir mal im Hinterkopf und schau in Zukunft nochmal nach. Prinzipiell suche ich genau so ein Teil seit langer Zeit. Ausserdem hatte ich mal überlegt, selber eines mit AVR zu basteln, habe das Projekt aus Zeitmangel aber noch nicht angefangen.

Mein HxC SDCard Floppy Emulator

Am Samstag habe ich mich endlich mal aufgerafft und mir einen HxC Floppy Emulator mit SD-Kartenslot und Display gekauft. (Für die Laien, was macht das Teil überhaupt? Es ersetzt ein altes Diskettenlaufwerk, so daß keine mechanischen Teile und keine echten Disketten nötig sind.)

Ich habe ja schon längere Zeit darüber nachgedacht, ob sich die Anschaffung lohnt. 2 Aspekte, die ich über Recherche und Forendiskussion rausgefunden habe, haben mich dann überzeugt. Die SD Kartenversion kann im Gegensatz zur USB Version, die mir Thorn schon gezeigt hatte, auch Diskettenimages zurückschreiben, d.h. Spielstände und Highscores abspeichern. Ausserdem kann man wohl die HFE Images auch wieder zurücktransformieren.

HxC Floppy Emulator (SD Card Version)
HxC Floppy Emulator (SD Card Version)

Natürlich ist das Gerät auch portabel und nicht nur an den Atari ST gebunden, sondern würde dank des normierten Shugartbusses auch an PCs, an Amigas, Amstrad CPC oder ZX Spectrum funktionieren.

Alles in allem habe ich dann über Ebay bei Sintech gekauft und Versand und Abwicklung waren 1A. Sogar die Anleitung wurde mir farbig ausgedruckt auf DIN A4 mit ins Päckchen gelegt, da kann ich nicht meckern.

Eingebaut und ausprobiert habe ich das Gerät allerdings noch nicht. Ich bin auch noch am Überlegen, welche Maschine ich damit ausstatte. Favorit wäre derzeit mein Atari STE.

Ich werde dann wohl zügig eine große SD Karte fertigmachen, auf die sämtlichen No Fragments CDs draufkommen, und natürlich einiges zum daddeln.

In Summe hoffe ich, daß die Investition von 111€ gut angelegt ist und mein Hobby über längerere Jahre entsprechend bereichern wird.

Die Projekthomepage für Neugierige und gfs Selbstbauer lautet: http://hxc2001.free.fr/floppy_drive_emulator/

KDE1 Iconset for the Atari Falcon 030

package and RSC work (c) 2012 by
Matthias Arndt <marndt@asmsoftware.de>
The original KDE1 artwork is assumed to
be available under a free license.
Please keep me informed if this is not
the case.
Imported set of icons from KDE1, scaled
down to 16 colors and converted to GEM
icons for use with the Atari FALCON 030.
The files for Teradesk are usable right
away. Backup your old files and replace
the files CICONS.RSC and ICONS.RSC

package and RSC work (c) 2012 by Matthias Arndt <marndt@asmsoftware.de>

The original KDE1 artwork is assumed to be available under a free license.

Please keep me informed if this is not the case.

Preview of the KDE 1 iconset ported to the Atari Falcon 030
Preview of the KDE 1 iconset ported to the Atari Falcon 030

This is an imported set of icons from KDE1, scaled down to 16 colors and converted to GEM icons for use with the Atari FALCON 030. The final resource files have not been tested on the Atari TT and not with graphic cards or any other resolution than 640x480x4bpp

The files for Teradesk are usable right away. Backup your old files and simply replace the files CICONS.RSC and ICONS.RSC

Update 22.7.2012:

I reworked the monochrome icons a bit and added the lines for NEWDESK.INF to add icon associations in one go. A DESKICON.RSC with only monochrome icons for use with TOS 2.x (Atari ST and Atari STE) is now also included.

Download: KDE1ICONS.ZIP (70K)

STOT Classics #1/9 Wings Of Death

Im März 2012 spielen wir bei den STOT Classics das Spiel Wings Of Death. Über diesen Klassiker der Shooter für den Atari ST brauche ich wohl nicht viel zu verlieren.

SSB scores 117215 at Wings of Death (Atari ST)
SSB scores 117215 at Wings of Death (Atari ST)

Ich habe einen ersten Score von 117215 erzielt, ich denke da gibt es noch enormes Potential zur Verbesserung. Ich erinnere mich deutlich daran, daß ich früher nicht so elendig im 2.Level verreckt bin.

Have you played Atari today?

STOT Classics #1/8: Xenon II

Eine offizielle STOT Runde im 2 oder 3 Wochentakt gibt es aktuell ja nicht. Thorn und Christos sind wohl desillusioniert. Aber die STOT Classics gibt es ja dnnoch. Im Februar 2012 spielen wir Xenon II und ich habe mal einen ersten brauchbaren Score erzielt, 89030 Punkte.

SSB scores 89030 at Xenon II (Atari ST)
SSB scores 89030 at Xenon II (Atari ST)

Zum Spiel selbst muss ich wohl nicht viel sagen, denke das kennt jeder. Ansonsten kann man sich bei Atarimania schlau lesen.

Have you played Atari today?

Die Tücken der Spieleportierung

Gestern habe ich wegen dem stürmisch schlechten Wetter, bei dem man ja kaum vor die Tür wollte, am Nachmittag ein wenig programmiert. Ziel sollte es sein, das alte Spiel Megadash, ursprünglich für den Atari ST in GFABASIC geschrieben, auf PC bzw den GP2X Wiz zu portieren.

Ansich ging das ganz gut, binnen 2 Stunden hatte ich die meisten notwendigen Teilmodule in C neugeschrieben, eine Umgebung mit Code::Blocks aufgesetzt, meine ParadizeLib eingebunden und generell auch zum Laufen gebracht.

Am Ende des vorigen Nachmittags hatte ich dann das Spiel mit allen Mechaniken am Laufen, wie die Steine fallen, etc. Nur das Timing habe ich irgendwie nicht 100% abgebildet bekommen. Stellen, die im Originalspiel zwar mit Tücken bestückt waren, aber spielbar waren, funktionieren in meinem Port irgendwie nicht mehr. Die Steine erschlagen den Spieler an Stellen, wo man im Originalspiel erfolgreich “um sein Leben” rennen konnte.

Ich habe verschiedene Timingparameter angepasst, aber keinen zufriedenenstellenden Zustand gefunden. Entweder ist es immer noch zu schwer, oder viel zu leicht und auch da nicht immer nachvollziehbar.

Mal sehen, ob der Fehler noch gefunden wird. Im Moment liegt es jedenfalls als begonnenes Projekt auf der Platte.