Hatari unter Recalbox

Wenn man weiß wie, funktioniert auch die Atari ST Emulation mit Recalbox ganz anständig.

Ich habe z.B. Nebulus, Pacmania und Bubble Bobble aus der Menüreihe von Automation damit zum Laufen bekommen.

TOS ROM Images müssen im BIOS Ordner installiert werden. Der Emulator erkennt die Images über Checksummen, daher funktioniert es mit EmuTOS leider nicht.

Für den Start sollten ein TOS 1.02 oder 1.04 ausreichen. Vermutlich funktionieren UK Varianten am ehesten.

Die Bedienung ist etwas gruselig mit Controller, Spiele, die die Maus benutzen, sind praktisch unspielbar.

Alles was mit Joystick und vielleicht einer Taste auskommt, sollte aber laufen.

Folgende Hilfen beziehen sich auf einen XBOX 360 Controller.

  • Start aktiviert das von Hatari bekannte Konfigurationsmenü. Der Mauscursor ist dann mit dem Pad steuerbar.
  • Select am Controller schaltet das Gamepad zwischen Joystick und Mausmodus um.
  • Mit L1 kann man einblenden, was gerade aktiv ist.
  • Mit Y wird eine virtuelle Tastatur ein- und ausgeblendet. Das reicht um kurze Menüauswahlen zu treffen oder Trainermodi zu konfigurieren.

Funktionsfähig sind .ST und .MSA Images. Manche .STX Images funktionieren, aber nicht alle.

Recalbox vs Logitech F710 Gamepad

Irgendwann im Frühjahr habe ich meinen Raspberry Pi im Wohnzimmer von Retropie auf Recalbox umgestellt.

Das funktioniert fürs Gaming viel einfacher und läuft recht anständig mit einfachen Gamepads oder meinen XBox 360 Controllern.

Mit meinen Logitech F710 Gamepads war es irgendwie hakelig und teilweise nicht navigierbar.

Heute habe ich herausgefunden, was man beachten muss:

    • Die USB Dongles müssen vor dem Booten eingesteckt werden, sonst wird der zugehörige Controller möglicherweise nicht gefunden.
    • Der Schalter am Controller muss auf D für DirectInput stehen. Mit X wie XInput (XBox 360 kompatibel) funktioniert es nicht.

Danach funktionieren die Logitech F710 Gamepads auch super unter Recalbox.

In eigener Sache: Wechsel Erscheinungsbild und Cookies

Ich wurde darauf aufmerksam gemacht, daß mein Blog über Mobile Endgeräte nicht so gut lesbar ist. Nach langen Jahren mit gleichem Erscheinungsbild habe ich dieses dann heute mal ausgewechselt.

In dem Zuge habe ich auch das Wetterplugin deaktiviert, denn dieses setzt recht viele Cookies, die nicht nötig sind.

Insgesamt sollten im Normalbetrieb keine Cookies erforderlich sein.

STM32 “Blue pill” mit SEGGER Embedded Studio

Ich wollte mal SEGGER Embedded Studio ausprobieren, nachdem ich im Büro schon mit meinen Kollegen darüber gesprochen hatte.
Unter Linux stellt diese IDE auf jeden Fall eine gute Möglichkeit dar, für STM32 basierte Controller Software zu entwickeln, z.B. die “Blue Pill”.

Bislang habe ich nackte Makefiles und Eclipse probiert. Letzteres ist langsam und das Debuggen war damit nicht so gut verwendbar.

Die SEGGER IDE lies sich leicht installieren, die Installation benötigt leider root Rechte mit sudo, zumindest für udev Konfiguration für einen J-Link.
Wenn man das optional weglassen könnte, wäre das von Vorteil.

Die IDE präsentiert sich mit QT Oberfläche und ist flott und responsiv.

Positives:

  • gute Reaktionszeit
  • Debugger kann Controllerregister inklusive Peripherie darstellen
  • Debugger unterstützt SEGGER J-Link sowie GDB basiertes Debuggen mit OpenOCD
  • Installation nach /opt oder dgl möglich
  • bringt Compiler und Linker mit
  • Projektkonfigurator für Baremetal Devices
  • Plugins und Herstelersupport für definierte Controller und Familien nachinstallierbar
  • Crossplattform

Negatives:

  • kein Import von Makefileprojekten
  • Sortierung der Fenster und Reiter ist etwas unübersichtlich

Insgesamt aber besser als Eclipse und eine händische Umgebung.

Um via ST-Link v2 mit OpenOCD zu debuggen, habe ich mein Projekt im SEGGER Embedded Studio dann wie folgt konfiguriert:

  • “Debug > Debugger” auf “GDB Server” einstellen
  • “Debug > GDB Server für OpenOCD konfiguriert wie im Screenshot

[OpenOCD Konfiguration für die STM32 Blue Pill im SEGGER Embedded Studio]
OpenOCD Konfiguration für die STM32 Blue Pill im SEGGER Embedded Studio
Dann started OpenOCD automatisch im Hintergrund und man kann debuggen.

Ich bin bislang nur auf ein Problem gestossen, wenn ich die STM32 HAL für die Blue Pill benutzen möchte. Wenn ich das komplette .a File dazulinke, wird leider auch das komplette File eingebunden. Der GNU Linker im Makefile nimmt nur die Teile die nötig sind, da muss ich noch rausfinden, wie ich das SEGGER Embedded Studio dazu bekomme, nur das zu linken, was benötigt wird.

SNES2DB9 Arduino Prototyp

Seit ein paar Wochen arbeite ich an einem kleinen Mikrocontrollerprojekt.
Zum letzten Summer Games in Atzenhofen hatte ich für Janina vergessen, ein passendes Gamepad zum C64 mitzubringen. Mit einem klassischen Joystick kann sie nicht so recht zocken und bevorzugt Gamepads. Die Sega Pads funktionieren nur wackelig und teilweise und am C64 teils garnicht.

SNES2DB9 Arduino Prototyp am Atari STE
SNES2DB9 Arduino Prototyp am Atari STE

Zunächst wollte ich nur eine neue Leiterplatte entwerfen, mit der man ein USB Joypad auf den DB9 Joystickanschluß von Atari anpassen konnte. Das erschien mir ein wenig zu ambitioniert, also entschied ich mich, einen aktiven Konverter auf mit Arduino als Basis zu entwerfen. Ich entschied mich für die SNES Controller mit Schieberegister, da dies leicht abzufragen ist und die Handhabung der SNES Controller bei meiner Zielgruppe bekannt sind.

Heute habe ich meinen Prototypen dann mal am Atari STE ausprobiert, und ich muss sagen, es läuft. Es fehlen noch ein paar Feinheiten, Autofeuer, Springen mit Feuerknopf statt hoch, aber prinzipiell liest der Arduino den SNES Controller korrekt und mit ca 60Hz aus und bedient die Signalleitungen zum DB9 Joystickport entsprechend. Die Schaltung ist auch ziemlich einfach, mehr oder minder direkt verdrahtet, wobei ich dem Latch und Clock zum SNES Controller noch Pulldown, bzw Pullupwiderstände verpasst habe. Auch lassen sich Arduino und SNES Controller komplett über die 5V vom Joystickport versorgen.

Eine komplette Version mit eigenständigen Controller auf Basis eines ATTiny mit 14 Pin ist in Planung.

Quellcodes und Dokumentation werde ich recht bald bei Github unter MIT Lizenz verfügbar machen.

Steambox im Eigenbau – Teil 2

Im ersten Teil habe ich über mein neues Steamboxprojekt berichtet.
Die Festplattenlöschung war problemlos nach ca 4,5h fertig, bei einer 320GB Platte. In dem Zuge wurden auch keine Fehler wie defekte Sektoren gefunden. Auch memtest86 lief gut durch, die Kiste sollte prinzipiell also immer noch gut laufen. Hier musste ich allerdings die ältere Version 4 benutzen, die noch ein klassisches BIOS unterstützt. Der Acer hat noch kein UEFI.

Als nächsten Schritt habe ich dann mit der Installation von Windows 10 begonnen. Ich hatte zunächst eine gute alte DVD mit dem Medienerstellertool von Microsoft erzeugt.

Der Acer PC startete diese DVD auch, aber dann blieb der Bootvorgang mit Windowslogo und drehendem Rädchen für über 10min hängen. Schließlich wurde mir eine obskure Fehlermeldung gezeigt, wonach Geräte nicht ansprechbar waren.

Ich probierte es dann noch 2 oder 3mal aus, hatte aber keinen Erfolg. Als Plan B habe ich dann eine SD Karte als Installationsmedium erstellt, falls das DVD Laufwerk eine Macke hatte. Auch der eingebaute SD Kartenleser war mir suspekt, da war schon vor Jahren etwas kaputtgegangen.

Mit einem externen Kartenleser habe ich dann von USB gebootet und damit lief die Installation schließlich ohne Probleme los.

Auf die Frage nach einem Lizenzschlüssel hin habe ich meinen entsprechenden alten Windows 7 Home Schlüssel aus den Unterlagen vom Acer PC angegeben. Und tatsächlich, die Installation hat ihn akzeptiert und problemlos weiter gemacht.

Hätte dies nicht funktioniert, dann hätte ich vermutlich vorerst das Projekt ohne Aktivierung von Windows 10 fortgesetzt. Dann hätte ich später immer noch einen Lizenzschlüssel kaufen können.

Nach ca 45min hatte ich dann ein Windows 10 installiert, bei dem ich erstmal viele invasive Fragen mit nein beantwortet hatte. Passend zu meiner Windows 7 Lizenz bekam ich so also ein Windows 10 Home Edition installiert.

Zunächst hatte ich Angst, ob dies vielleicht nur einen einzigen User erlauben würde, aber man kann definitiv weitere Accounts hinzufügen.

Windows Hello habe ich gleich in der Systemsteuerung abgeklemmt, ich logge mich lieber mit einem ordentlichen Passwort ein, und nicht mit einer Pin.

Für die Benutzung als Steambox brauche ich in Zukunft natürlich Controlerunterstützung. Der Empfänger für meinen wireless Xbox 360 Controller wurde gleich erkannt und der Treiber kommentarlos installiert.

Danach habe ich erstmal 2-3 Stunden investiert, um eine grundlegende Auswahl an Programmen zu installieren. Auch auf einer Steambox will ich die gängigsten Dateiformate zumindest ansehen können.

Ich installierte folgende Programme:

  • 7-Zip (Ein- und Auspacken von Dateiarchiven ist ein Muss)
  • Daemon Tools Lite (bei dem ggfs defekten DVD Laufwerk will ich notfalls CD/DVD Images verwenden können, Stand März 2020 gibt immer noch eine freie Version ohne Zahlungszwang)
  • Notepad++ (denn ohne einen ordentlichen Texteditor geht nichts)
  • LibreOffice (Officedokumente will man zumindest Lesen und notfalls auch schnell schreiben können)
  • Acrobat Reader (PDFs tauchen doch regelmäßig mal wieder auf)
  • CDBurnerXP (falls man doch mal ISOs erstellen oder zumindest wegbrennen will

Danach habe ich dann noch einen weiteren Benutzeraccount angelegt, unter dem später Steam direkt gestartet werden soll. Mehr dazu in einem Folgeartikel

Ein paar Dinge liefen nicht auf Anhieb. Für meine PCIe-Karte mit COM Port fehlt mir noch ein Treiber für Windows 10. Diese Schnittstelle ist aber nicht lebenswichtig für eine Steambox.

Das lokale Netzwerk musste ich zum Filesharing über SMB erstmal aktivieren, aber da ist mir eine gezielte bewusste Aktivierung lieber wie komische Magie.

Einloggen über Remotedesktop ist bei der Home Edition nicht möglich. Ich probierte Teamviewer aus, das war aber irgendwie ruckelig und laggte rum, sodas ich dann noch lieber live vor dem Gerät sitzen wollte.

Als Virenschutz habe ich erstmal Windows Defender belassen. Ob ich da noch mehr installiere, weiß ich jetzt noch nicht.

Insgesamt bin ich überrascht, der alte Athlon Dualcore mit 3GB RAM läuft unter Windows 10 gefühlt zügiger als unter Windows 7. Auch bootet Windows 10 erstaunlich gut. Hat Microsoft nach 20 Jahren endlich mal dazugelernt?

Und Steam OS? Ich glaube, ich hätte für die Installation weniger wie die Hälfte der Zeit gebraucht, es würde auch funktionieren und ich hätte sofort Steam im Zugriff gehabt. Allerdings wäre dort dann die Spieleauswahl stark reduziert, vorallem ein paar Capcom und Konamipacks laufen derzeit nur unter Windows 10, aber nicht unter Windows 8. Und die möchte ich mal anzocken, bevor ich auch der Alienware ein Update auf Windows 10 installiere.

Steambox im Eigenbau – Teil 1

Ich habe schon vor 2,5 Jahren einen neuen kleinen, leisen, lüfterlosen Arbeitsrechner gekauft. Da ich zum Spielen mittlerweile meine Alienware Alpha benutze, ist der Arbeitsrechner nicht mehr dualbootfähig und rennt nur noch unter Xubuntu, derzeit noch mit 18.04LTS.

Steam Logo

Seit diesem Neukauf stand auch mein alter Arbeitsrechner, der Acer AS X1301-3, den ich im Mai 2010 gekauft habe, nur noch rum.

Ich hatte schon länger die Idee, mal eine eigene Steambox von Grund auf selber aufzusetzen. Für dieses Projekt hatte ich schon immer den ungenutzten Acer PC im Sinne, und er sollte zumindest die Retromäßigen Titel (z.B. die neuen Capcom Releases bei Steam) alle abkönnen. Eine neuere Grafikkarte wäre vielleicht mal sinnvoll, das hat aber aktuell keine Priorität.

Geliefert wurde der Acer damals mit Windows 7 Home. Ich werde ausprobieren, ob ich Windows 10 mit dem alten Key als Professional Version installiert bekomme. Davon werde ich in einem Folgebeitrag berichten. Eine Zeitlang hätte ich auch Steam OS genommen, aber für Windows ist die Kompatibilität besser und da ich ja eigentlich einen Key für den PC habe, auch kein Hinderungsgrund.

Eine Datensicherung habe ich damals 2017 gemacht und den Rechner nicht wieder angefasst. Daher kann auch alles weg, was da noch so drauf ist. Ich könnte auch die Wiederherstellungs DVDs nehmen, aber mir ist eine Installation von Grund auf neu lieber. Außerdem ist das einem Neuprojekt mit einem alten Rechner sicherlich immer gut.

Nachdem ich aktuell endlich mal wieder Lust auf Basteln habe, habe ich heute den alten Acer hergenommen und mit Darik‘s Boot and Nuke Boot CD gestartet, denn ich wollte die Gelegenheit nutzen, mal ein Tool zur Festplattenlöschung auszuprobieren. Näheres unter https://dban.org/

Allerdings wollte meine Kiste zunächst nicht starten. Es ging dann mit einem anderen Kaltgerätekabel, aber eigentlich müsste das zuerst von mir probierte Kabel genau dasjenige gewesen, welches ich damals 7 Jahre lang mit dem Acer PC benutzt habe.

Anders Kabel, neues Glück. Der PC startete dann und ich erinnerte mich sofort, warum ich damals einen neuen PC angeschaffte habe. Die Lüfter rasselten ab und an beim Systemstart derbe laut, auch hatte ich das Gerät ein paar Mal beim Spielen von „Red Orchestra“ in eine hitzebedingte Notabschaltung gefahren (jaja, der Rechner vertrug nicht alle Games von 2007)

Die CMOS Batterie war erstmal leer, aber ich habe im BIOS wieder die Defaults eingetragen und dann startete auch die Boot CD zum Löschen der Festplatte. Ich hoffe, die Batterie ist gepuffert und das CMOS bleibt erhalten, wenn der Rechner ab und an mal wieder gestartet wird.

Im Moment läuft immer noch die Festplattenlöschung, schon seit über einer Stunde, und die geschätzte Abschlußzeit ist erst in 4,5 Stunden. Heute passiert jedenfalls nicht mehr viel damit.

Aber ein Anfang zum Projekt ist gemacht.

STM32 HAL Library für die “Blue pill”

Seit einiger Zeit kann man die sogenannte “Blue Pill” kaufen. Dies sind Mikrocontroller aus der STM32 Familie mit Cortex Kern, konkret STM32F103C8 mit Cortex M3, die auf einem schönen klassischen DIL-Träger aufgelötet sind mit Pinheader und Micro-USB zur Stromversorgung ausgerüstet sind. Dadurch passt alles in ein Steckbrett und kann auch als Arduino betrieben werden.

Ich habe mir ein paar Exemplare beschafft und möchte diese natürlich mehr oder minder “bare metal” benutzen, ähnlich wie ich das im Beruf auch tue. Dort arbeite ich seit gut 7 Jahren ebenfalls mit STM32 Controllern.

ST Microelectronics stellt eine recht gute Bibliothek zum Ansprechen der Controllerperipherie zur Verfügung. Damit man diese nicht immer mit jedem noch so kleinen Projekt von Null auf übersetzen muss, habe ich mir mit CMake ein kleines Framework geschrieben, welches die Library für den konkreten Controller der “Blue Pill” als Binary übersetzt.

Ausprobiert habe ich die Library noch nicht, aber es baut und linkt. Eigentlich müsste das schon reichen, das .a File wird im neuen Projekt referenziert und der Includepfade zu der Headern der HAL Library mitangegeben.

Der Anwender muss ggfs. die STM32 Header für den Controller in seinem Projekt referenzieren, denn einige Headerfiles der HAL Library ziehen die controllerspezifischen Header nochmal rein.

Näheres und technische Updates gibt es auf der Projektablage bei Github:
https://github.com/simonsunnyboy/stm32hal_bluepill

Ich habe den heute aktuellen Stand der HAL Library eingebunden, speziell den vom CubeMX angelegten, STM32Cube_FW_F1_V1.8.0.