Einleitung
Auf der Webseite der uConsole steht folgender Satz:
‚A real „fantasy console“ for indie game developers and bedroom programmers.‘
Damit ist unmissverständlich klar um was es hier geht! 🙂 Was eine Konsole ist wissen die meisten Leser vermutlich. Aber was ist eine ‚fantasy console‘? Hierbei handelt es sich um eine Konsole die nicht als real greifbarer Gegenstand existiert. Es ist ein Programm, welches von einer beliebigen Hardware emuliert werden muss, damit sie zum Leben erweckt werden kann. Eines davon ist Pico-8.
Celeste, ein Spiel welches auf dem Pico-8 seinen Ursprung hat und mittlerweile sogar als kommerzielle Version auf Steam zu bekommen ist.
Ein Donkey Kong Nachbau auf Pico-8.
GPT-4: ‚Pico-8 ist eine „Fantasy-Konsole“, die sowohl eine Entwicklungsumgebung als auch einen Interpreter für damit entwickelte Spiele und Programme enthält. Diese Konsole imitiert bewusst die Beschränkungen alter Spielkonsolen der 1980er Jahre – wie limitierte Grafiken, Farben, Auflösungen und Speicherplatz – auf moderner Hardware. Diese Beschränkungen fordern Entwickler heraus, innerhalb eines engen Rahmens kreativ zu sein. Spiele auf Pico-8 sind typischerweise Retro-inspiriert, nutzen eine 128×128 Pixel Auflösung und eine feste 16-Farben-Palette. Entwickelt werden diese mit der einfachen und effizienten Programmiersprache Lua, ergänzt durch integrierte Tools für Sprites, Karten und Soundeffekte.‘
Pico-8 erzeugt in der Welt des Programmierens und dem Entwickeln von Spielen eine ähnliche Faszination wie Lego. So wie Lego es erlaubt durch drastisch vereinfachte Komplexität des Bauens komplexe Bauten auf einfache Art und Weise zu erzeugen, so erlaubt es Pico-8 durch seine extreme Reduktion auf das Wesentliche faszinierende, optisch ansprechende und fesselnde Spiele zu entwickeln. Da gibt es nur ein Problem: Pico-8 benötigt trotz seiner einfachen und nicht fordernden Architektur normalerweise einen gewöhnlichen Desktop Computer oder ein Notebook. Doch auf dem Pico-8 zu entwickeln macht am meisten in der Freizeit Spaß, an Orten, an denen ein Desktop PC nicht zur Verfügung steht und selbst ein Notebook unhandlich ist.
Darum wünschen sich die Fans von Pico-8, dass es diese Konsole wirklich gibt. Hier ein Video über eine Pico-8 Konsole in einem Pappkarton. Mittlerweile ist es auch möglich Pico-8 auf vielen Emulator Konsolen zu installieren, wie zum Beispiel dem Odroid Go Advance (ab 1:12 min). Der beste Advance, da mit eingebautem WiFi, hier gibt es ihn noch bei Reichelt.
Tatsächlich funktioniert das ziemlich gut und es ist damit problemlos möglich die unzähligen existierenden Spiele für Pico-8 zu spielen. Aber was ist, wenn man sie, der ursprünglichen Intention von Pico-8 folgend, auch verändern oder selbst programmieren möchte? Dann fehlt bei nahezu allen diesen Lösungen die Tastatur! Das führt zu interessanten Konstruktionen, wie zum Beispiel dieser hier. Eine Pico-8 Konsole mit Hilfe eines Raspberry Pi 3 in einem selbst gedruckten Gehäuse!
Derlei und auch andere Gelüste führten 2015 zum Projekt Pocket C.H.I.P. auf Kickstarter, welches einen Einplatinencomputer mit einer integrierten Tastatur vorstellte, auf dem Pico-8 vorinstalliert war. Hier findet sich ein Bericht von heise.de, der zeigt dass dieses Vorhaben tatsächlich nach langer Zeit zu einem Produkt führte aber leider dann ein unrühmliches Ende nahm.
Clockwork uConsole
Nach dieser langen Einleitung, die meiner Meinung nach aber wichtig für ein Verständnis dieses Produkts ist, stelle ich Euch jetzt die Clockwork uConsole vor, ein Computer der viele Dinge anders macht:
-
Das fängt schon damit an, dass ganze 4 verschiedene Mikroarchitekturen (RPI-CM4, A-04, A-06, R-01) zur Verfügung stehen! Diese gibt es als kleine Karten zum Einstecken in die uConsole. Zur Zeit kann man aber keine andere als die RPI-CM4 bekommen.
-
Es geht weiter mit der Lieferung. Denn man bekommt kein fertiges Gerät, sondern muss sich eines aus Gehäuseteilen, verschiedenen Leiterplatten, einem Display, einer Tastaturmatte, Antennendrähten und verschiedenen Kleinteilen selbst zusammen schrauben. Das ist aber eigentlich kinderleicht und je nach Können zwischen 5 und 30 Minuten erledigt. Und macht Spaß!
-
Das Gehäuse ist komplett aus Metall! Und darum macht die uConsole nach dem Zusammenschrauben einen ziemlich wertigen Eindruck! Das Design mit seinen grobschlächtigen Innensechskantschrauben ist gewöhnungsbedürftig aber durchaus gefällig. Mir gefällt es. Dazu gibt es einen ausklappbaren Bügel der 2 verschiedene Funktionen erfüllt. Unter anderem kann ich das Gerät damit etwas schräg auf einen Tisch vor mir stellen. Der dadurch entstehende Aufstellwinkel macht es leichter das auf dem Display gezeigte Bild zu betrachten. Zur anderen Funktion komme ich gleich.
-
Der Formfaktor ist ungewöhnlich, aber für bestimmte Anwendungen sehr gut geeignet. Und zwar immer dann, wenn man keine Ablage hat und trotzdem etwas tippen muss. Zum Beispiel in der Industrie wenn man im Stehen an einer Anlage arbeiten muss oder halt, wie schon erwähnt, im Bus, in der Straßenbahn, in der Bahn oder im Flugzeug, im Bett, auf der Couch oder auf der Toilette. 🙂 Denn man kann die uConsole zwischen zwei Hände einklemmen und mit den Daumen darauf tippen.
-
Die uConsole verwendet zur mobilen Stromversorgung zwei 18650er Akkus! Damit hat man je nach gewähltem Akku die Wahl zwischen ungefähr 15 (2000 mAh Zelle) und 25 Wh (3400 mAh Zelle). Die Verwendung dieses Akkutyps hat zwei Vorteile: Die Akkus sind seit vielen Jahren auf dem Markt und somit leicht zu bekommen. Sind sie verschlissen, kann man einfach neue kaufen. Da die beiden Akkus parallel im Batteriefach sitzen, kann man die Akkus im laufenden Betrieb austauschen! Der Nachteil ist eine Beule im Gehäuse, die der uConsole ein noch charakteristischeres Aussehen gibt und die zweite Funktion des Bügels offenbart: Einen Ausgleich für die Beule, so dass die uConsole trotz des Buckels gerade auf dem Tisch liegen kann.
-
Zusätzlich zu dem kleinen Keyboard gibt es noch Tasten wie es sie auch auf gängigen Gamecontrollern gibt. Sie sind auch ähnlich angeordnet, so dass es damit möglich ist, Pico-8 Spiele, aber auch viele andere Spiele, zu spielen. Leider sind die Tasten zwar ähnlich aber nicht genau so wie bei den Controllern angeordnet. Dass und die durch die Gummitasten etwas höhere notwendige Kraft reichen zwar aus ein Spiel zu testen aber nicht um es wirklich gut zu spielen.
-
Einen kleinen Trackball als Mausersatz gibt es auch noch!
Macht das Sinn?
Ja, macht es. Wenn man es aus nachfolgender Perspektive betrachtet. Als Entwickler stehen meine Gedanken niemals still, selbst in meiner Freizeit denke ich gerne über Lösungen für irgendwelche Probleme nach. Das macht mir Freude. Wenn mein Nachdenken zu konkretem Code führt will ich den natürlich gerne ausprobieren. Aber nicht im Büro an meinem Schreibtisch, sondern da wo ich ich gerade bin, im Bett, am Strand oder auf der Couch liegend! Genau da ist ein Notebook schon wieder unhandlich und die Clockwork uConsole kommt ins Spiel. Ich kann sie einfach in meinen Händen halten und mit meinen Daumen Code tippen.
Der Spaß kann aber noch gesteigert werden, in dem ich Pico-8 auf die uConsole lade und mit den zwar auf das Notwendigste reduzierten, aber durchaus ausreichenden Möglichkeiten ein Spiel entwickle. Mit den integrierten Code-, Sprite-, Map-, Sound- und Musik-Editoren ist es ein Vergnügen, Spiele zu entwickeln. Aber auch wenn man nur ein kleines Programm ausprobieren will oder eine kleine 2D Simulation wie Life erstellen will, macht es großen Spaß damit zu arbeiten. Während viele andere Konsolen zwar die Leistungsfähigkeit haben Pico-8 Spiele ablaufen zu lassen, besitzt die uConsole auch das Keyboard, was notwendig ist um die Spiele zu erstellen bzw. editieren zu können!
Auch wenn Pico-8 durch seine große Verbreitung sicher am bekanntesten ist, so sei darauf hingewiesen, dass ein ganz ähnliches System namens TIC-80 schon auf der uConsole vorinstalliert ist. Mir gefällt bei TIC-80 vor allem die etwas höhere Auflösung von 240×136 Pixeln.
Welcher Entwickler möchte nicht wenigstens einmal in seinem Leben ein eigenes Spiel programmieren? Vielleicht für die eigenen Kinder ein individuelles Spiel bauen? Mit der uConsole und Pico-8 ist das jederzeit in kurzer Zeit und überall möglich.
Die Tastatur
Eines der entscheidendsten Features der uConsole ist ohne Frage die Tastatur. Denn nur diese hebt die uConsole deutlich über ähnlich große und leistungsfähigste Geräte wie zum Beispiel die vielen momentan auf dem Markt befindlichen Retro Konsolen hinaus. Leider funktioniert sie nicht so gut wie ich mir das wünschen würde. Sie ist nicht schlecht und im großen und Ganzen kann man damit arbeiten, aber es ist eine gewisse Disziplin notwendig, die Tasten präzise und eindeutig zu treffen. Mein Vergleichsmaßstab sind die aufklappbaren Palmtops HP 100LX und HP 200LX aus der Mitte der neunziger Jahre, die mit einer hervorragenden Tastatur ausgestattet waren. Auch diese Geräte ließen sich schlecht im Zehnfingersystem verwenden, aber eingeklemmt zwischen den Händen konnte man nach kurzer Zeit mit den beiden Daumen eine recht hohe Eingabegeschwindigkeit erreichen. Damit die Tasten schnell getippt werden konnten, besaßen sie eine Art Achse um die sie sich beim Drücken geringfügig gedreht haben. Damit man beim Tippen nicht versehentlich andere Tasten erwischt, gab es um jede Taste etwas Freiraum und es waren wirklich einzelne Tasten, die an der Oberfläche etwas abgerundet waren, so dass sie sich auch aus ungünstiger Stellung heraus gut tippen ließen.
Auch für das Problem gleichzeitig die Shift- und eine andere Taste zu drücken, hatte Hewlett-Packard eine Idee: Die Shift-Taste wurde nicht gleichzeitig, sondern vor den anderen Tasten gedrückt und gespeichert und dann der nächstfolgend getippten Taste zugeordnet!
Ergonomie
Sowohl die uConsole als auch die Palmtops kann man auf die gleiche Weise verwenden: Sie werden einfach zwischen beiden Händen eingeklemmt, präsentieren so wunderbar ihre Displays und ermöglichen das Tippen auf der darunter angeordneten Tastatur mit den Daumen. Auch wenn viele Tablets mit einer auf dem Bildschirm dargestellten Tastatur suggerieren wollen, dass man auf ihnen auch coden und schreiben kann, habe ich das in der Vergangenheit nicht nachempfinden können. Zahllose Angebote von Bluetooth Tastaturen bestätigen meinen Eindruck. Aber sobald das Tablet mit einer Tastatur physikalisch verbunden werden soll und man dann diese beiden Teile gemeinsam im Bett verwenden will, wird es, meiner Meinung nach, sehr unkomfortabel.
Und genau hier spielt die uConsole ihren größten Vorteil aus.
Laufzeit
Ich habe momentan 2 etwas ältere 18650 Akkus von LG (LGGBF1L1865) mit angegebenen 3350 mAh, die auch schon ein, oder zwei Mal tief entladen waren, eingesetzt. Die haben vielleicht noch um die 2900 mAh. Damit läuft die uConsole über 4 Stunden!
Was sonst noch geht
Damit Ihr wisst was ihr gesichert auf der uConsole machen könnt, führe ich nachfolgend alle von mir positiv getesteten Anwendungen auf. Manche sind schon auf dem für die uConsole herunterladbaren, auf Debian basierenden Image drauf und manche habe ich nachinstalliert. Denn nicht immer funktioniert auf einer bestimmten Hardware alles was man denkt.
DOSBox
Ich habe eine Vergangenheit mit MSDOS. Eine Zeit in der ich viele Dinge programmiert habe die ich bis heute aufgehoben habe. Schon immer träume ich von einem kleinen mobilen Computer auf dem ich mir meine alten Sachen ansehen kann und dazu eignet sich die uConsole ziemlich gut. Meine alten Programme wie BrainStorm, BrTex, TheTree, einen Tetris Clone namens ‚Clone‘ und viele, viele andere laufen zu lassen gibt mir ein gutes Gefühl. Selbst die alten Entwicklungsumgebungen wie Turbo Pascal 5.0 oder FoxPro 2.6 laufen noch. Sogar das uralte SPI Open Access III !
Tetris.
Das Büroprogramm SPI Open Access III war eines der ersten Programmpakete, welches Textverarbeitung, Tabellenkalkulation, Datenbank und einiges mehr in einem gemeinsamen Softwarepaket integrierte. So wie es heute bei LibreOffice der Fall ist. Aber Open Access besaß auch ein Programmiermodul, mit dem es möglich war komplette, auf den integrierten Komponenten basierende, Anwendungen zu entwickeln! Besonders hervorzuheben ist die integrierte Datenbank, die sogar SQL fähig war!
Mit CPACK200 kann ich in der DOSBox die auf meinem damaligen Hewlett-Packard HP 200LX gesammelten Daten weiter bearbeiten! Hierbei spielt das Keyboard der uConsole eine entscheidende Rolle, denn ohne ist es praktisch nicht möglich, mit den damals tastaturbasierten Apps zu arbeiten.
DOSBox Staging
Diesen Emulator kannte ich noch gar nicht. Es ist scheinbar eine Weiterentwicklung der DOSBox mit verbesserten Grafikeigenschaften. Auf der uConsole führt dies zu einer fensterlosen Darstellung der DOS Programme und damit der Ausnutzung der kompletten Bildschirmhöhe, was ich sehr gut finde.
Der beste Dateimanager ever.
Mein 1993 selbst entwickeltes Gedankenstrukturierungsprogramm BrainStorm.
Das phantastische Computeralgebra (CAS) Programm Derive.
FoxPro war eines der besten Datenbanksysteme, die es jemals gegeben hat. Mit dem sogenannten ‚Rushmore‘ Verfahren konnte es extrem schnell auf Daten zugreifen, es war möglich mit SQL komplexe Datenbankabfragen zu formulieren und das integrierte Entwicklungssystem erlaubte es komplexe Datenbankanwendungen zu entwickeln. Ich entwickelte damit eine datenbankbasierende Version meines Programmes BrainStorm mit der neuen Bezeichnung ‚TheTree‘, welches ich allerdings niemals veröffentlichte.
Python
Ich mag Python nicht sonderlich. Ich mag die erzwungene Einrückung nicht und mir fehlen die Klammern für Blöcke, die mir helfen die Struktur eines Codes schneller erkennen zu können. Außerdem ist es ein Interpreter und die geben mir immer das Gefühl nicht das Letzte aus einer Hardware herausholen zu können. Aber sei es drum, mit Thonny ist eine einfache Entwicklungsumgebung für Python samt vorinstalliertem Python vorhanden und das macht es sehr leicht mit Python auf der uConsole zu experimentieren. Da ich im letzten Jahr einiges an Python Code mit Hilfe von ChatGPT erzeugt habe und ich mit dem ebenfalls vorinstalliertem Chromium natürlich auch auf ChatGPT von der uConsole aus zugreifen kann, steht weiteren Experimenten nichts entgegen. Außerdem haben mir genau diese Versuche Python näher gebracht. Ich habe erkannt, dass ich damit tatsächlich schnell Programme für die verschiedensten Anwendungszwecke entwickeln kann. Ich habe meinen KI Email Checker ausprobiert und er läuft prima auf der uConsole.
Lazarus
Möchte man mit einem Compiler auf komfortable Weise programmieren und noch dazu Fensteroberflächen erzeugen, so ist Lazarus für mich die optimale Wahl. Diese IDE, ursprünglich Borland Delphi nachempfunden, ist Open Source und arbeitet mit der Programmiersprache Object Pascal, welche ich aufgrund von Erfahrungen mit Turbo-Pascal so einigermaßen beherrsche. Lazarus lässt sich auf der uConsole installieren und es gibt sogar die Möglichkeit das ursprünglich von Lazarus verwendete unsäglich Vielfenstersystem in eine aufgeräumte Oberfläche zu verwandeln. Es macht Spaß damit kleine Programme auf der uConsole zu entwickeln, aber größere Entwicklungen machen durch die geringe Bildschirmauflösung und die kleine Schrift weniger Freude.
LibreOffice
LibreOffice lässt sich nachinstallieren und so habe ich auch eine Textverarbeitung und eine Tabellenkalkulation auf der uConsole am Laufen. Da ich gerne und mittlerweile auch viel schreibe, ist dass ein absolutes Muss. Allerdings ist die Schriftgröße von LibreWriter sehr klein. Zum Glück kann die Schriftgröße des zu bearbeitenden Texts eingestellt werden und dass macht es etwas einfacher. Die Gummitastatur dagegen verhindert leider auch hier, dass größere Textmengen schnell eingegeben werden können.
GQRX
Mit GQRX und einem eingesteckten DVB-T Stick mit einem RTL-2832 mit U4000 oder R820T Chipsatz kann man aus der uConsole einen mobilen Allband Empfänger zu machen. Dessen Leistung wird dann im wesentlichen vom gewählten Stick und der verwendeten Antenne bestimmt. Damit ist es möglich echtes analoges Radio zu hören oder auf den Amateurfunkfrequenzen zu stöbern.
Fazit
Um noch einmal auf den Anfang zurück zu kommen, die Clockwork uConsole ist momentan vermutlich der beste, wertigste und schönste Computer, auf dem die Vision aus Pico-8 eine reale Konsole zu machen, Wirklichkeit geworden ist!
Allen Entwicklern, die im Alltag mit komplexen IDEs wie Eclipse oder Visual Studio zu tun haben, erlaubt diese Reduktion auf das Wesentliche in Verbindung mit einem der aufgeführten Konsolen Entwicklungssystemen (Pico-8, TIC-80, gibt auch noch andere), mit Vergnügen an ihren ureigensten Spielen zu arbeiten. Überall, nur nicht im Büro. 🙂
Selbstverständlich ist das nicht ihre einzige Daseinsberechtigung. Immer wenn Programme mobil eingesetzt werden sollen und ein Tablet mangels Tastatur oder umständlichen Gebrauchs nicht in Frage kommt, kann die uConsole erfolgreich eingesetzt werden. Für mich ist das zum Beispiel bei der Anwendung der DOSBox der Fall. Es macht mir sehr viel Freude auf der Couch sitzend oder liegend in meinen alten Programmen herum zu stöbern.
Ich habe natürlich auch ein Spiel mit Pico-8 entwickelt. Dabei geht es darum unsere 3 Katzen einzufangen und zu einem bestimmten Platz zu treiben. Es nennt sich Cat Sitting:
Allgemeine Tipps
-
An der Gummimatte mit der Tastatur muss die einzelne Taste oben abgeschnitten werden, damit sie sich in das Gehäuse einlegen lässt.
-
Beim Zusammenbauen habe ich den schwarzen Taster abgeschnitten und eingebaut. Das war ein Fehler, denn es wird ja auch ein transparenter Taster mitgeliefert und es ist sinnvoller diesen einzubauen, da ich dadurch die darunter liegenden LEDs sehen kann!
-
Die Lautsprecher müssen so eingesetzt werden, dass die Anschlusskontakte zum Rand hin zeigen.
-
Bevor ich über WinSCP und der uConsole Dateien austauschen konnte, musste ich in ‚Preferences/Raspberry Pi Configuration/Interfaces‘ SSH einschalten!
-
Das erste Einschalten funktionierte bei mir trotz eingelegten 18650 Akkus nur mit einem angesteckten USB-C Kabel. Und sobald ich das Kabel abzog, war die uConsole aus. Die Ursache für dieses Verhalten lag in den von mir beim Einbau eingelegten relativ leeren 18650 Akkus, deren Spannungen bei 3.2 Volt lagen und das war offensichtlich zu wenig für die uConsole, so dass sie nicht einmal in Erwägung zog, diese aufzuladen. Ich ersetzte sie durch aufgeladene Akkus und damit arbeitet die uConsole jetzt seit ein paar Tagen wie ich mir das vorstelle. Also, sie werden im Gerät geladen und ich kann die uConsole auch ohne Kabel mobil verwenden.
-
Möglicherweise kann es beim Zusammenbau dazu kommen, dass die Batteriehalterung nicht richtig Kontakt hat, obwohl es beim Zusammenschrauben keine Probleme gab. Ich hatte jedenfalls den Fall dass scheinbar nur ein Slot wirklich Kontakt zum ‚Mainboard’ hatte, was dazu führte, dass ich nur auf eine Laufzeit von knapp über 2 Stunden und beim abwechselnden Wechseln der Akkus es zur Spontanabschaltung kam. Darum achtet beim Festschrauben des Akku Moduls darauf, dass es perfekt auf den 4 Gewinden sitzt und ausreichend (aber nicht zu viel) fest geschraubt ist.
Tipps zu eingesetzter Software
Pico-8
Ich habe Pico-8 gekauft und den Inhalt der dadurch erhaltenen ZIP Datei in mein Home Verzeichnis in das Verzeichnis ‚pico-8‘ kopiert. Die Datei ‚pico8_64‘ habe ich mit ‚sudo chmod +x pico8_64‘ ausführbar gemacht. Anschließend ließ sie sich mit ‚./pico8_64‘ problemlos starten.
Standardpfad: /proc/self/task/3213/cwd/.lexaloffle/pico-8/carts
Damit Ihr Pico-8 aus dem Startmenü heraus aus aufrufen könnt, benötigt es noch ein paar Kleinigkeiten. Legt Euch eine Datei ‚/usr/local/share/applications/pico8.desktop‘ an und kopiert folgenden Code hinein:
[Desktop Entry]
Type=Application
Name=Pico 8
GenericName=Fantasy Console
Comment=The PICO-8 console and development environment
Icon=/home/user/pico-8/lexaloffle-pico8.png
Exec=/home/user/pico-8/pico8_64
Terminal=false
Categories=Game
DOSBox
Ich habe alle meine DOS Software immer in einem Verzeichnis ‚DOSBox‘ und kopiere dieses dann auf das Gerät mit dem DOSBox Emulator. Anschließend muss ich nur die Konfigurationsdatei anpassen. Bei der uConsole liegt und heißt die Datei ‚/home/tom/.dosbox/dosbox-0.74-3.conf‘ und ich füge am Ende die folgenden für mich passenden Zeilen ein:
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
mount c: /home/tom/DOSBox
c:
PATH=C:\XTPRO;C:\BRSTORM;C:\WINDOWS
Vielen Dank für Ihren Bericht / Artikel – super interessant und nützlich!
Würden Sie so freundlich sein, zu erklären, wie Sie Lazarus installiert haben?
Ich weiss nicht mehr genau, weil ich vieles ausprobiert habe. ich denke es war einfach:
sudo apt install lazarus
Well Done, Great Artikel
If you get tired of it I’ll happily buy it from you xD
Best regards
Richard Broberg Hallbäck
Sweden