Software

Anwendungen und Tools rund um RISC OS

StudioSound ist zurück

Der Beitrag zum Ausflug der GAG-Abordnung zur Classic Computing 2016 lässt noch etwas auf sich warten – in der Zwischenzeit eine neue Ausgabe der Reihe „Totgeglaubte Software kehrt zurück“.

Henrik Bjerregaard Pedersen hat einen Lauf. Nach der Wiederauferstehung von ProSound hat er jetzt sein zweites Baby namens StudioSound fit für die neue RISC OS-Welt gemacht. StudioSound ist ein 32-Track-Sequencer für Digisample-Schnipsel.

Mal sehen, ob er auch seinem dritten Baby – CineWorks – zu einer Neuauflage verhelfen kann. Wer will, kann schon mal das Handbuch probelesen. Archive.org hat die CineClips-CD im Angebot. Auf Henriks Homepage ist die alte 26bit-Version verfügbar.

ProSound ist zurück

Es war Mitte der 90er, Acorn hatte gerade den Risc PC auf den Markt gebracht und der RISC OS-Softwaremarkt erlebte eine neue Blüte. Vor allem die deutlich verbesserten Grafikfähigkeiten gegenüber den älteren Maschinen animierte die Softwarebranche zu neuen Höhenflügen. ArtWorks und PhotoDesk waren zwei Softwarepakete, die besonders vom Risc PC profitierten.

Aber es war auch die Zeit für Multimedia, also nicht nur Grafik, sondern auch Sound (und natürlich Video, aber das soll hier nicht das Thema sein). Besonders erwähnenswert an der Soundecke sind die beiden Werke von Henrik Bjerregaard Pedersen, ProSound und StudioSound. Die Originalversionen sind hier downloadbar, haben aber den Haken, dass sie mit viel Glück unter RISC OS 4 drehen, aber nicht 32bit- geschweige denn ARMv7-kompatibel sind.

Vor einigen Tagen ist Henrik aber im ROOL-Forum aufgetaucht und hat angekündigt, ProSound auf seinem RPi 2 zum Laufen zu kriegen. Und heute hat er Vollzug gemeldet. Download von seiner neuen Webseite, die es bezüglich Spartanität mit meiner alten Webpräsenz aufnehmen kann.

Als Bonus gibt es auch noch eine neue Version von DisAssem, besonders das Feature „Binärcode in BASIC-Assembler umwandeln“ ist interessant, das hat bei ARMalyser immer gefehlt. Also ein weiteres wertvolles Werkzeug, um die alten 26bit-Schätze zu konvertieren.

Kryo2APD Swing UI – ein kleines KryoFlux-Tool

Im Moment beschäftigen mich verstärkt (auch aufgrund der Vorbereitungen zur Classic Computing 2016 – siehe hier und hier) Retro-Computing-Themen. Schon 2011 hatte ich mir ein KryoFlux gekauft, um die diversen alten Disketten-Schätzchen aus meinem Software-Archiv zu verimagen (anno 1999 habe ich mal Reviews für alle Anwendungs- und Spielesoftware geschrieben – Vorsicht, ganz und gar nicht mehr aktuell!).

Es hat bis 2016 gedauert, bis ich tatsächlich zur Tat geschritten bin. Was sofort aufgefallen ist: die KryoFlux-Software ist „out of the box“ zum Verimagen von ADFS-Floppies nicht geeignet. Man muss erst mal eigene Configs für die gängigen Floppy-Formate anlegen, und bei kopiergeschützten Floppies funktioniert das nicht. Dann muss man mit dem „KryoFlux-Raw-Format“ arbeiten – dummerweise kann das aber keiner direkt lesen.

Deshalb hat Daniel Jameson ein kleines Java-Tool namens kryo2apd geschrieben, um aus dem KryoFlux-Raw-Format ein APD-Image zu erstellen. Das APD-Format wurde von Tom Walker (Entwickler der beiden großartigen Emulatoren Arculator und RPCEmu) erfunden, um alle bekannten Kopierschutzmechanismen der RISC OS-Welt abbilden zu können. Das APD-Format kann von Arculator und ADFFS gelesen werden.

Das funktioniert alles wunderprächtig, ist aber nicht sonderlich komfortabel – Kommandozeile halt. Da kryo2apd in Java geschrieben ist und ich zufällig aus meinem Real-World-Job ein wenig Expertise aus dem Bereich Java und Oberflächenprogrammierung mitbringe, habe ich schnell mal ein kleines Frontend dazu gebastelt, das man hier in der Version 0.1.0 herunterladen kann. Wie gesagt, es ist in Java geschrieben, ist also kein Tool, das unter RISC OS lauffähig ist, aber es ist ein Tool für RISC OS. Wenigstens ist die Programmgröße RISC OS-artig: bei 45 KiB kann man nicht meckern. Kein Wunder, die Hauptarbeit macht ja auch die Java-Runtime.

Oberfläche und Doku ist in Deutsch und Englisch verfügbar, im ReadMe/LiesMich stehen alle notwendigen Details, z.B. auch wo man kryo2apd herbekommt.

Sowohl bei kryo2apd als auch meinem Frontend gibt es noch reichlich Luft zur Verbesserung, vor allem um den Workflow etwas effizienter zu machen. Im Moment muss man den Raw-Output von DTC noch mit einem Rename-Tool behandeln, damit kryo2apd damit umgehen kann.

Mehr Quellcode von David Pilling

Über das erste Quellcode-Release von David Pilling habe ich bereits Mitte 2015 berichtet.

Jetzt hat David nachgelegt. ArcFax und die Impression-Loader für Ovation Pro sind nun im Source verfügbar. David hat wie immer launige Kommentare dazu verfasst über die Historie der Software – lesenswert!

David hat angedeutet, dass SparkFS auf Sicht ebenfalls im Source freigegeben werden könnte. Das wäre phantastisch, würde es doch die Möglichkeit eröffnen, neuere Kompressionstechniken zu integrieren oder z.B. dem ZIP-Modul Encryption beizubringen.

Noch frischeres Fireworkz

Vielleicht sollte ich den Blog umbenennen in „Der Colton-Software-Blog“. Scheinbar liefert die letzten Tage und Wochen nur Stuart Swales wirklich berichtenswertes aus der RISC OS-Welt. Nein, das ist natürlich nicht wahr, wie man unschwer bei der ArcSite nachlesen kann. Diverse Software wurde auf die neuen Sprite-Formate für die Cortex-A15-Maschinen angepasst (Ovation Pro, DPingScan, Snapper, ConvImgs), und die Arbeiten für die Anpassungen von UnixLib-nutzender Software für den Raspberry Pi 3 (der uns allen (wieder mal) klar gemacht hat, wie wenig Rücksicht ARM auf Rückwärtskompatibilität nimmt) nicht zu vergessen. Außerdem ist RISCOS Open Ltd. 10 Jahre alt geworden, und die (oder das?) JPEG-Update-Bounty wurde erfolgreich abgeschlossen.

Zurück zu Fireworkz. Version 2.10.0 wurde released. Folgt Stuart Swales der Idee der semantischen Versionierung, haben wir hier ein Minor-Update am Start, also nicht nur bloßes Bugfixing, sondern auch das eine oder andere neue Feature. Hier kann man die Details nachlesen. Verbesserte Excel-Kompatibilität sowie Erweiterungen beim Grafik-Import sind nennenswert, dazu ein Sack voll Bugfixes.

Frisches Fireworkz, frisches PipeDream

Stuart Swales hat neue Versionen an den Start gebracht: Fireworkz 2.00.04 und PipeDream 4.55.

Während die neue Fireworkz-Version ein klassisches Bugfix-Release ist, gab es bei PipeDream etwas größere Verbesserungsarbeiten: Verbesserungen beim Grafik-Import (Vector, Sprites, JPEGs, bei anderen Formaten wird ggf. ChangeFSI bemüht), und die im Draw-Format exportierten Charts sind nun PRM-konform und können nicht nur im bekannt nachsichtigen !Draw, sondern auch in Vector und – ironischerweise – in Fireworkz importiert werden. Außerdem neu (glaube ich wenigstens – das wäre mir doch aufgefallen?) – beide sind jetzt unter der MPL lizenziert.

Also, runterladen. Kost‘ nix. Beide Softwarepakete sind auch über PackMan verfügbar.

Fireworkz ist wie immer simultan auch in derselben Version für Windows verfügbar.

Update kaum gepostet, schon veraltet – Fireworkz 2.00.05 wurde einen Tag später veröffentlicht, mit kleinen Verbesserungen beim Excel-Import.

Alte Spiele, neues ADFFS

Jon Abbott hat das Release der neuesten Version von ADFFS, 2.55 beta, verkündet (hier das passende JASPP-Forum-Posting dazu mit allen Details).

Was ADFFS macht und kann, habe ich in einigen früheren Blogposts schon beschrieben.

Was gibt’s neues? Es ist das erste Release, das den Fokus auf den Raspberry Pi legt – das Original, also nicht die Versionen 2 und 3, da sich ADFFS zunächst um die Emulation auf ARMv5-Plattformen (also eben jenem Raspberry Pi 1 (A, B, B+, Zero) und quasi nebenbei als Abfallprodukt auch dem IYONIX pc) kümmert. ARMv7-Unterstützung ist rudimentär enthalten, hat aber noch viele Einschränkungen.

Voraussetzung für die neue ADFFS-Version ist eine aktuelle Version von RISC OS 5, namentlich 5.23 nach dem 6. April 2016, und zwar ein unveränderter Build mit High-Vector-Semantik und relocated zero page. Das gilt logischerweise nicht für die auch weiterhin unterstützten klassischen Plattformen wie Archimedes und Risc PC, da tut es jede alte schäbige RISC OS-Version.

Der „Game Count“, also die Zahl lauffähiger Spiele, liegt nun bei beeindruckenden 130 – vermutlich werden selbst eingefleischte RISC OS-Nutzer Probleme haben, mehr als 50 Spiele für die Plattform zu benennen. Im Rahmen des JASPP-Projekts wurden weitere 17 Spiele zum freien Download veröffentlicht, hauptsächlich alte Minerva-Titel aus den 80ern, aber auch ein paar bekanntere Spiele von den Portiermeistern von Krisalis (Lemmings 2, Manchester United, Pipe Mania).

Besonders die nun sauber unterstützten 50Hz-Modi (auch auf dem Pi, wenn der Monitor/Fernseher mitspielt) und die vielen Verbesserungen im Sound-Bereich lassen auf erhöhten Spielspaß hoffen. Vielleicht dann auch demnächst auf den ARMv7-Plattformen.

JavaScript-JIT für Otter und QupZilla

Die Portierung von Qt5 durch Lee Noar, die die Basis für Qt5WebKit und damit die Portierungen von Otter und QupZilla durch Chris Gransden ermöglichte, steht vor dem nächsten großen Schritt. Bisher konnte die JavaScript-Engine nur im Interpreter-Modus betrieben werden. Neben dem offensichtlichen Performance-Problem war auch zu sehen, dass der Interpreter-Modus eine Menge mehr Bugs und Unschärfen hatte, schlicht weil die anderen Plattformen ihn nicht (mehr) verwenden.

Nun ist es Lee Noar gelungen, die Probleme der JavaScript-JIT-Engine weitgehend zu beheben (für Detalverliebte: Revision 7074 im GCCSDK-SVN-Repo), wie Chris Gransden mitteilt. Sogar aufwändige JavaScript-basierte Seiten wie OpenStreetMap.org scheinen nun – genügend CPU-Power vorausgesetzt (Cortex-A15 empfohlen…) – anständig zu funktionieren. Zweifellos ein großer Schritt für die RISC OS Browsing Experience.

Testversionen sollen demnächst zur Verfügung stehen.

RISC OS Remote per VNC

Wer mehrere Rechner betreibt, wird früher oder später mit dem Thema „Remote Desktop“ konfrontiert werden, also der Möglichkeit, auf einem Rechner den Desktop eines anderen Rechners im Netzwerk anzuzeigen. Einzige Ausnahme dürfe die Linux-Kommandozeilen-Fraktion sein, die mit einer ssh-Shell auskommt.

Prinzipiell gibt es drei Technologien, die Remote Desktop erlauben: RDP („Remote Desktop Protocol“) aus der Microsoft-Ecke, X Window System als grundsätzlich netzwerkfähiges Fenstersystem auf unixoiden Systemen und VMS sowie last but not least VNC („Virtual Network Computing“, Open Source seit 1998) als plattformübergreifende Lösung aus der Zeit, als man NCs für das nächste große Ding hielt. Die Historie und Details dieser Technologien soll hier nicht Thema sein, wer Lust hat kann da ein paar Stunden Wikipedia-Recherche betreiben.

Clients für die verschiedenen Technologien gibt es für RISC OS schon sehr lange – Avalanche von James Peacock ist der vermutlich beste VNC-Client gefolgt von ViNCe von Vincent Lefevre. VNCViewer von Leo White ist leider nicht 32bit-fähig, genauso wenig wie !VNC von Simon Truss. Für RDP ist der RDPClient von Andrew Sellors das Mittel der Wahl. Auch X-Server (ja, beim X Window System ist die Terminologie „Client“ und „Server“ durchaus erklärungsbedürftig…) gab es vereinzelt, eine ultrateure Kaufsoftware von Gnome (nein, nicht der GNU Object Model Environment-Desktop), etwas eher experimentelles von Vincent Sanders und schließlich RiscX von Leo White – allesamt älteren Datums und nicht 32bit-fähig.

Sehr viel dünner sieht es auf der Server-Seite aus. Anno 2002 gab es einen VNC-Server von Henrik Bjerregaard Pedersen (Autor von ProSound, StudioSound und CineWorks), der aber sehr experimentell und langsam war und den ich zudem nie richtig ans Laufen brachte. Dieser Server wurde inzwischen gründlich überarbeitet, zunächst von David Llewellyn-Jones und schließlich von Jeffrey Lee.

Und tatsächlich ist es mir mit der neuesten Version 0.13 von Jeffrey endlich gelungen, RISC OS einigermaßen vernünftig remote bedienbar zu machen, zunächst mal (damit es nicht an der Hardware scheitert) meinen ARMX6. Versuche mit Raspberry Pi (2) und PandaBoard ES werden folgen.

Was sind die Stolperfallen? Die Performance ist bescheiden, weil RISC OS keine vernünftige Schnittstelle hat, um Interessenten mitzuteilen, was sich denn auf dem Bildschirm geändert hat (Jeffrey Lee hat in diesem Thread im RISC OS Open-Forum angedeutet, dass er hier Verbesserungen anstrebt). Es wird letztlich immer direkt in den Framebuffer geblittet. Und so muss der VNC-Server den Framebuffer auf Änderungen scannen, was logischerweise nicht besonders effizient ist. Deshalb sollte man unterstützend eingreifen und einen Bildschirmmodus mit geringer Farbtiefe wählen (256 Farben bieten sich an). Der Redraw-Performance hilft es, wenn das Pinboard einfarbig ist, weil dann viel weniger Daten übertragen werden müssen.

Interessant ist, dass die verschiedenen VNC-Viewer, die ich unter Windows ausprobiert habe, ganz unterschiedlich gut mit dem RISC OS-VNC-Server harmonierten. TightVNC, den ich bisher für VNC unter Windows und Linux verwende, wollte überhaupt nichts darstellen, sondern stürzte direkt ab nach Eingabe des Passwortes. UltraVNC, normal meine zweite Wahl, verhielt sich sehr komisch bezüglich der Darstellung des Mauszeigers und hinterließ manchmal die schwarze Silhouette des Mauszeigers irgendwo auf dem Schirm. RealVNC, eigentlich das Original, ist inzwischen mehr oder weniger Kaufsoftware geworden – vor dem Download „darf“ man erst mal ein paar persönliche Daten eingeben, um dann herauszufinden, dass die Software „for time limited evaluation only“ ist. Als Alternativen habe ich jetzt TurboVNC und TigerVNC getestet, die beide sehr gut funktionieren, bei TurboVNC ist das Fullscreen-Handling aber deutlich besser. Also bekommt TurboVNC hier meine Empfehlung.

Ein Problem sind die drei Maustasten. Es ist mir nicht gelungen, einen Viewer so zu konfigurieren, dass er schlicht die drei Tasten meines Laptop-Touchpads durchreicht. Also braucht man Notlösungen. Ich habe dazu unter RISC OS 3rdButton von Thomas Milius installiert, in einer leicht gepatchten Form von Raik Fischer um nicht die Windows-Popup-Menü-Taste (die es auf meiner Laptop-Tastatur nicht gibt) sondern die rechte Strg-Taste als Menütaste umzukonfigurieren. Ich hatte kurz versucht, einfach auf die rechte Maustaste (aka „Adjust“) zu verzichten und im VNC-Server den Modus „zweite Maustaste ist die Menütaste“ über vncserv_swap_adjust_menu 1 zu aktivieren. Aber ich habe schlicht festgestellt, dass ich ständig die rechte Maustaste verwende, insbesondere bei der Navigation durch Filer-Fenster.

Insgesamt bin ich mit der Lösung jetzt recht zufrieden, sie scheint besser zu funktionieren als über einen PC mit RPCEmu oder Virtual-RPC in Verbindung mit VNC unter Windows – RDP ist hier keine Option, weil merkwürdigerweise beide Emulatoren darüber nicht funktionieren. So richtig Spaß macht die Bedienung von RISC OS über Remote noch nicht, aber da setze ich meine Hoffnungen auf Jeffrey.

Und wer das Mausbutton-Problem besser gelöst bekommt, mag mir bitte eine Mail schreiben!

Connector-Comeback

Es war Anfang der Neunziger. Die ersten postzugelassenen Modems zu moderaten Preisen kamen auf den Markt – man wollte sich ja nicht auf die schiefe Bahn begeben durch den Betrieb dieser höchst illegalen Import-Modems – und so erstand ich ein Telejet 2400. 2400bps, MNP5, und ein wirklich schön klackerndes Relais für die damals übliche Pulswahl.

Auf dem A3000 war es gar nicht so einfach, ein anständiges (und am besten kostenloses) Terminal-Programm zu finden. Es gab Grapevine, das hatte nur partiell eine WIMP-Oberfläche für das Telefonbuch und Datei-Upload und -Download, aber die eigentliche Terminal-Emulation fand im Fullscreen statt. Und zur Dateiübertragung gab es auch nur XModem. ARCterm 3 gab es noch, lief aber nur begrenzt gut. Ich fing damit an, ein eigenes Terminal-Programm namens „LambdaComm“ zu schreiben, wurde aber nie fertig. Es gab eine partielle ANSI-/VT100-Emulation und XModem/YModem sowie die Anfänge von ZModem.

Eine Zeitlang ärgerte ich mich noch mit ZAnsi rum, kaufte dann frustriert die „RISCOS Terminals+“. Aber dann kam die Erlösung aus deutschen Landen: Andreas Zieringer veröffentlichte den Connector, ein großartiges Terminalprogramm. Flexibel, mit ZModem, und kompetenter ANSI-/VT100-/VT102-Terminal-Emulation. Und sogar CEPT für die letzten Zuckungen von BTX.

Irgendwann kam die Zeit des Internets, und Terminal-Programme wurden nur noch selten gebraucht – in meinem Falle eigentlich nur, um beim ZyXEL-ISDN-TA per XModem eine neue Firmware hochzuladen. Konsequenterweise gab es auch nie eine 32bit-Version für den IYONIX pc. Aber mit dem BeagleBoard änderte sich plötzlich die Lage – es gab einen seriellen Port, der für Debugzwecke sehr gut geeignet ist (z.B. während des Boot-Prozesses, um Ausgaben zu erhalten bevor der Bildschirm hell wird). Und um den Output zu verarbeiten, käme ein Terminal-Programm natürlich gerade recht.

Nun schreiben wir 2016, und es ist passiert: Connector feiert sein Comeback. Ich weiß nicht ob das irgendwo verkündet wurde, ich habe es beim routinemäßigen Lesen der CVS-Historie bei RISCOS Open Ltd. bemerkt. Ab sofort ist im „Bonus Binaries“-Download Connector mit an Bord.

Es werden zusätzlich die „Serial Blockdrivers“ benötigt. Ggf. auch noch der Blockdriver für den Pi.