tiny little gizmos

Amstrad NC100 – Tastaturtransplantation

Damals in der Heimcomputerära hatte ich immer mal mit diesen interessanten, tragbaren Computern von Schlage eines Epson HX-20 oder Tandy Modell 100 geliebäugelt, konnte mir aber keinen leisten. Richtige Laptops (also PC) gab es ja damals noch nicht. Die “tragbaren” PC waren größer als Nähmaschinen und wogen so zwischen 9 und 14 Kg.

Vor einigen Wochen hatte ich mir nun einen Amstrad NC100 zugelegt. Eines der letzten Modelle dieser Gerätegattung. Angeblich der einfachste Computer der Welt – es steht sogar “user friendly” auf dem Gehäuse (dazu weiter unten noch ein Kommentar). Leider ist das Mainboard kaputt – der Rechner lässt sich nicht einschalten. Die Hoffnung, dass es sich nur um einen durchgebrannten Widerstand handelt, hatte sich leider nicht bestätigt. Am Wochenende habe ich ein weiteres Exemplar erstanden, bei dem das Mainboard heile, aber die Tastatur defekt ist.

Heute habe ich mich also an die Reparatur gemacht. Beide Rechner aufgeschraubt, die Tastatur gewechselt, frische Batterien eingesetzt und mich gefreut. Für insgesamt €35,- habe ich nun einen funktionierenden klassischen Oldtimer.

Defektes Mainboard (links), defekte Tastatur (rechts)

Vor der Operation: Defektes Mainboard (links), defekte Tastatur (rechts)

Nach der Tastaturtransplantation

Nach der Tastaturtransplantation

Funktioniert einwandfrei

Funktioniert einwandfrei

User friendly?

Wie Benutzerfreundlich ist der NC100 denn nun wirklich? Nach dem Einschalten brauchte ich jedenfalls kein Handbuch. Alles ist in großen, freundlichen Menüs nahezu selbsterklärend – was allerdings daran liegt, dass der Rechner primär als Schreibgerät konzipiert ist. Es gibt eine Textverarbeitung, eine simples Adressbuch und einen noch einfacheren Kalender. Es ist auch eine Version des BBC Basic Interpreters eingebaut (“Funktion” und “B”) und ein Terminalprogramm (“Funktion” und “S”). Das war es.

Originelles Konzept!

5ct. Szene heroes…

Vor ein paar Tagen habe ich mein Spiel colorflood für den Commodore64 veröffentlicht. Ein kleines, einfaches Casual Game. Ein paar Leute haben es auch schon gespielt und sich wohlwollend geäußert.

Eben finde ich es auf CSDB (Commodore Szene Database) – und zwar als “Crack”. Nicht dass ich etwas dagegen habe, dass mein Spiel dort zu finden ist – aber als Crack???
Cracks sind eigentlich Spiele, deren Kopierschutz geknackt wurden und dann mit einem entsprechenden Intro versehen wurden.

Mein Spiel hat keinen Kopierschutz. Man darf es kopieren. Das Programm liegt hier – bitte sehr. Ich habe sogar den Quellcode veröffentlicht, und zwar hier. Daraus einen “Crack” zu machen ist, wie alte Omas vor den Bus schubsen: Sehr einfach, sehr blöde und spricht nicht gerade für einen guten Charakter.

Mannmannmann, das ist ja wie damals, als sich pubertierende 14 Jährige in der “Szene” wichtig gemacht haben…

Sinclair ZX Spectrum – Instandsetzung

Vor ein paar Jahren habe ich einen Sinclair ZX Spectrum geschenkt bekommen und seitdem nicht mehr benutzt. Neulich habe ich mich daran erinnert und das Maschinchen aus der Schublade geholt. Schon auf den ersten Blick wurde klar, dass der Rechner schon bessere Tage gesehen hat. Die total verbeulte Tastaturabdeckung  fällt sofort ins Auge. Neben dem TV Anschluss links oben kommt ein amateurhaft angelötetes Kabel mit Cinchstecker heraus und das Gehäuse wurde für eine nachträglich eingesetzte LED aufgebohrt.

Zustand vor der Instandsetzung

Zustand vor der Instandsetzung

Nach dem Öffnen des Gerätes werden weitere Probleme sichtbar: Die Leiterbahnen der Tastatur Membranfolie sind kaputt und notdürftig geflickt, die Abdeckung des TV Modulators fehlt, die LED ist stümperhaft angelötet und das zusätzliche Kabel für Composite Video ist schon halb herausgerissen. Höchste Zeit also für eine eine Instandsetzung.

ZX Spectrum Rev 3 von 1983

ZX Spectrum Rev 3 von 1983

Zunächst habe ich den Rechner komplett auseinandergenommen. Die Metallabdeckung wurde von der Tastatur gelöst, die Tastaturmatte abgenommen und die Membranfolie entfernt. Von der oberen Gehäusehälfte habe ich mit warmen Geschirrspülwasser und einem weichen Plastikspachtel die Reste des Klebers entfernt mit dem die Metallabdeckung befestigt war. Die Tastaturmatte bekam ebenfalls ein Bad in Wasser mit Geschirrspülmittel. Die verfärbten Fettablagerungen lösten sich und die Beschriftung blieb glücklicherweise auf den Tasten. Während die Matte trocknete habe ich mich um die Platine gekümmert.

Platine auf dem Seziertisch

Auf dem Seziertisch: Platine, Entlötpumpe, Lötkolben und Drahtbrücke liegen bereit

Zunächst habe ich die Drähte für die LED entfernt. Die Idee mit dem Composite Video fand ich sehr gut. Einerseits ist das Bild besser. Wichtiger ist aber, dass moderne Fernseher mit dem Analog TV Signal des Spectrum nichts mehr anfangen können. Also habe ich das provisorische Kabel entfernt, den TV Modulator deaktiviert und das Composite Signal auf die Cinch Buchse gelegt. Bei Youtube finden sich unter den Stichworten “ZX Spectrum composite” einige Anleitungen dazu. Jetzt ist auch die fehlende Abdeckung des TV Modulators kein Problem mehr, da hier nichts mehr abzuschirmen ist.

Umbau des TV Modulators

Deaktivierter TV Modulators - noch fehlt der Drahtbrücke am Cinch Stecker

Eine freudige Überraschung war, dass man in England noch Ersatzteile für den Spectrum ordern kann. Die Preise sind allerdings recht deftig. Eine neue Tastaturmembran und eine neue Metallabdeckung kosten mit Vesand über € 30,-. Wenn der Rechner danach aber wieder fast wie neu aussieht, ist es mir das wert. Ich habe bei RWAPSoftware über die Website http://www.sellmyretro.com bestellt und die Lieferung erfolgte innerhalb weniger Tage.

Erneuerte Tastatur

Erneuerte Tastatur vor dem Zusammenbau

Nach dem Zusammenbau des Rechners wurde es spannend. Der ehemalige TV Ausgang wurde mit dem AV Eingang verbunden und das Netzteil angeschlossen. Ergebnis: ein klares, scharfes Bild. Operation soweit gelungen.

ZX Spectrum - fast wie neu

ZX Spectrum - fast wie neu

Die Tasten müssen jetzt etwas fester gedrückt werden, weil die neue Membran etwas steifer als das Original ist. Das ist aber kein Problem. Leider funktionieren aber zwei Spalten der Tastatur nicht richtig. Der Blick in den Schaltplan zeigt, dass Reihe 5 (ULA Anschluss KB4) schuld ist. Das ist auf dem linken, 5 poligen Anschluss der rechte Kontakt. Die Lötstellen hatte ich eigentlich durchgemessen und für gut befunden. Vermutlich bekommt die Folie in dem Stecker keinen richtigen Kontakt. Leider muss ich da also noch einmal ran.

Schaltplan Tastaturmatrix

Schaltplan Tastaturmatrix

 

Colorflood für Commodore 64 – fertig

Vor zwei Wochen schrieb ich über das kleine Spielchen, dass ich für den Commodore 64 programmiere. Die Idee hatte ich bereits letzten Sommer. Das ganze alte Know-How über 6502 Assembler und die Systemarchitektur des C64 rauszukramen und sich wieder  daran zu gewöhnen, Daten direkt durch Speicher, Prozessor und Videochip zu schieben hat etwas gedauert. Nun ging es dann aber doch erstaunlich schnell. Das Spiel ist fertig (Download: siehe unten).

Stumm ist dumm

Die Spielmechanik hatte ich vor zehn Tagen fertig und nun wollte ich noch eine kleine Titelmelodie einbauen. Komponiert habe ich auf meiner Audioworkstation mit dem genialen Reason von Propellerheads. Um die Noten auf den C64 zu übertragen und abzuspielen habe ich den Soundmonitor von Chris Hülsbeck verwendet, der 1986 in der 64er erschienen ist. Die Software gilt als der erste Musik Tracker. Die Abspielroutine und die Daten verbrauchen leider sehr viel Speicherplatz und Prozessorzeit, aber da das Programm sehr klein ist und die Melodie nur im Titel und nicht während des Spiels läuft, macht das nichts.

So siehts aus

Das Spielprinzip ist absichtlich simpel, die Grafik und die Melodie ebenfalls. Spaß macht es (mir) trotzdem.

Colorflood - Titelscreen

Colorflood - Titelscreen

Farbwechsel von Braun zu Violett - Die Welle rauscht vorwärts

Farbwechsel von Braun zu Violett - Die Welle rauscht vorwärts

“Auch mal spielen?”

Alle Liebehaber des C64 sind herzlich eingeladen, Colorflood herunterzuladen und in ihre Spielsammlung aufzunehmen. Über Feedback freue ich mich natürlich auch.

Das Spiel ist Open Source; die Quelldateien und das fertige Programm (colorflood.prg) liegen auf GitHub:

https://github.com/dollmetzer/colorflood

Das fertige Spiel in einer D64 Datei (Diskettenimage) gibt es hier: colorflood.d64

Viel Spass!

Sonne, Wasser, Wald und frische Luft

Nur der Vollständigkeit halber – das Wochenende war ja wohl mal allererste Sahne. Sonne und Stadt ist nett, aber Cabrio öffnen und raus fahren ist noch netter.

Mitte - Sehr schön, aber raus in Grüne ist besser

Mitte - Sehr schön, aber raus in die Gegend ist besser

Müggelsee (gegenüber Friedrichshagen)

Müggelsee (gegenüber Friedrichshagen)

Malerischer Morast

Malerischer Morast

Wasserstrasse

Wasserstrasse

Farbflut auf dem Commodore 64

Seit letztem Jahr treibe ich mich in Berlin regelmäßig auf diversen Veranstaltungen mit dem Thema Retrocomputing herum. Ich habe viele interessante und teils verblüffende Dinge gesehen, die man mit den alten 8-Bit Maschinchen machen kann. Ich fand heraus, dass es noch immer eine lebendige Szene für meinen Lieblingscomputer Commodore 64 gibt und noch immer neue Software für das über 30 Jahre alte Schätzchen erscheint.

Ich will auch mal wieder…

Im letzten Sommer – nachdem ich den Vortrag von Berthold Fritz über die Programmierung eines Spiels für die 8 Bit Atari Heimcomputer gehört hatte – nahm ich mir vor, auch mal wieder ein kleines Spielchen zu programmieren. Und zwar so richtig maschinennah in Assembler – wie man das damals meist getan hat.

Es muss nichts aufregend, originelles, großes sein. Irgendwas nettes kleines, was man gerne mal für 10 Minuten spielt. Berthold Fritz hatte sich an Boulderdash orientiert, aber von solchen Spielen gibt es gefühlt hunderte für den C64. Was also tun?

Als ich meinen Raspberry Pi das erste mal eingeschaltet hatte, stolperte ich über ein kleines, in Python programmierte Spiel, bei dem man ein buntes Spielfeld durch Farbwechsel einfarbig bekommen soll. Total simpel und einfach – aber ich saß wie gebannt davor und habe das tatsächlich elend lange gespielt. Das Prinzip macht Spaß und man benötigt weder bombastische Grafik noch umwerfenden Sound. Bingo – so machen wir es!

Proof of concept: colorflood in Basic

Proof of concept: colorflood in Basic

Den Algorithmus für den Farbwechsel habe ich zunächst in Basic programmiert, um zu überprüfen ob er wirklich so einfach ist, wie ich gedacht habe. Das Ergebnis war lauffähig, aber wie zu erwarten war auch unglaublich langsam. Immerhin – der Proof of Concept war erbracht. Den Programmcode habe ich bei Github hinterlegt.

Das Projekt colorflood ist mittlerweile in einem Stadium, in dem ich es auch mal zeigen kann. Es gibt:

  • Eine einfache Startseite. Los geht es mit Druck auf den Feuerknopf von Joystick 2.
  • Das Spielfeld wird aufgebaut
  • Die Farben werden zufällig gesetzt
  • Mit dem Joystick kann man die nächste Farbe auswählen und per “Feuer” setzen.
  • Der Farbwechsel wird animiert angezeigt
  • Die Anzahl der Farbwechsel wird gezählt (ist aber noch nicht limitiert)
  • Es gibt einen Countdown (der aber noch nicht bei 000 den Level beendet)
  • Wenn das komplette Spielfeld eingefärbt ist, wird der Level beendet (und damit zur Zeit auch das Spiel)

Als nächstes werde ich die verschiedenen Beendigungen eines Levels und die Erhöhung des Schwierigkeitsgrades im nächsten Level programmieren. Danach Sound und zum Abschluss hoffentlich noch eine Titelmelodie.
Die vollständigen Projektsourcen sind hier zu finden:

https://github.com/dollmetzer/colorflood

Wenn das Spiel fertig ist, werde ich es auch als fertig übersetztes Programm zur Verfügung stellen.

Online wie 1985 – mit dem C64

Es war einmal…
eine Zeit, in der kein normaler Mensch vom Internet gehört hat. Meine ersten eigenen Onlineerfahrungen in Mailboxen machte ich Anfang der 90er mit meinem brandneuen, teuren PC – einem 386SX, der noch hauptsächlich unter MS-DOS lief. Anstatt Internet und DSL gab es Telefonverbindungen und Modems. Meines übertrug 1.200 Bit/s, also ca. 130 Zeichen pro Sekunde. Das kann man ziemlich wörtlich nehmen, weil man nahezu ausschließlich Text übertragen hat. Etwas später habe ich mir dann ein ziemlich teures 28.000er geleistet.

Den Wunsch dazu hatte ich jedoch schon erheblich früher. Spätestens nachdem ich 1983 den Film “War Games” gesehen hatte, war ich brennend an Datenfernübertragung interessiert. Mit meinem heißgeliebten C 64 wäre es technisch möglich gewesen. Leider waren meine Mutter und die Bundespost irgendwie dagegen. Andere waren da weniger zimperlich als ich und haben es einfach gemacht.

Mein C64 am LCD Fernseher

Mein C64 am LCD Fernseher

In letzter Zeit habe ich wieder ein wenig mit dem alten Maschinchen beschäftigt und zwar sowohl mit der Original Hardware, als auch mit dem wirklich hervorragenden Emulator VICE. Nachdem ich auf einigen Seiten, wie z.B. “CBBS Outpost” festgestellt habe, daß es einige Nostalgiker gibt, die Commodore Mailboxen betreiben (sogar zum Teil auf original Hardware), musste natürlich ausprobieren, was ich in den 80ern verpasst hatte.

Mail in der Cottonwood BBS

Mail in der Cottonwood BBS

Kurze Erklärung: Der wichtigste Unterschied zwischen Internet und Mailboxen ist nicht etwa die Geschwindigkeit, sondern die Topologie. Heue hängt man seinen Computer in das Internet und kann so Millionen von Rechnern direkt erreichen. Früher hat man seinen Computer mit einem(!) anderen Rechner per Telefonleitung verbunden und aufgelegt, nachdem man fertig war. Das eigentliche Netzwerk war also das Telefonnetz.

Nun also mit dem C64 in eine Mailbox – bloß wie?

Ich habe zwar einen C64, aber kein Modem oder Akustikkoppler. Allerdings sind die meisten Mailboxen auch nicht mehr per Telefonleitung, sondern per Internet erreichbar. Daher muss der C64 irgendwie ins Internet. Hardwarebasteleien sind möglich, aber ich habe dazu gerade keine Lust. Schneller geht es mit dem bereits genannten Emulator VICE, der neben dem C64 auch andere 8Bit Commodore Computer (VC20, C128, Plus4, PET, CBM-Serie…) emulieren kann.

Hier zeigt ein kurzes Video, wie man sich mit der VICE Emulation mit einer Mailbox (hier: Jamming Signal) verbinden kann. Schön zu sehen, wie man jeden Buchstaben quasi “per Handschlag” begrüßen kann.

 
Das Setup
Neben dem Emulator benötigt man ein Terminalprogramm für den C64. In dem Video ist das Turbo Term, aber man kann natürlich auch Nova Term oder irgendein anderes Programm verwenden. Nun muss man an den emulierten C64 über die emulierte RS232C Schnittstelle noch ein emuliertes Modem anschließen. Dazu wird die Software tcpser genutzt, die so tut, als wäre sie ein Hayes kompatibles Modem. Auf der Kommandozeile startet man es mit den folgenden Parametern:

tcpser -v 25232 -s 300 -p 6400 -l 4

Die Software wird auf dem eigenen Rechner auf Port 25232 angesprochen, mit 300 Baud verbunden, geht auf Port 6400 raus und nutzt Loglevel 4.

Jetzt startet man den C64 Emulator und “schliesst das Modem an”, indem man in den Einstellungen (Settings) die Option “Userport RS232 Emulation” aktiviert und die Geschwindigkeit auf 300 einstellt.
Auf meinem Linux System muss man abweichend von den Einstellungen in dem Video für das RS232 Gerät “Prozess ausführen” auswählen und unter “Auzusführendes Programm” folgendes eingeben:

|nc localhost 25232

Damit wird die Ausgabe per netcat auf Port 25232 des eigenen Rechners weitergeleitet (nicht den seknrechten Strich vergessen), an dem das “Modem” horcht. Nun kann das Terminalprogramm geladen und gestartet werden. Die Verbindung zur Mailbox (hier ist es die Cottonwood BBS) stellt man her, indem man im Terminalmodus folgendes eingibt:

atdtcottonwoodbbs.dyndns.org

Die Zeile beginnt mit dem Modembehl at (Attention) dt (Dial Tone) gefolgt von der Internetadresse der Mailbox. Hinter der URL sollte man noch einen Doppelpunkt, gefolgt von der Portnummer eingeben, aber die Cottonwood BBS hört auf Port 6400 und das war ja unsere Voreinstellung von tcpser.

Nun steht dem prähistorischen Onlineabenteuer nicht mehr im Weg.

Happy BBSing!

Jolla – Das Nerd-Smartphone

Vor knapp drei Wochen habe ich mein Smartphone von Jolla bekommen nutze es seitdem jeden Tag. Die Einschätzung der bisherigen Tester kann ich bestätigen: Das Smartphone funktioniert an sich schon ganz gut, aber für normale Verbraucher hat es noch etwas viele Kanten.

Viel Licht

An der Hardware gibt es überhaupt nichts auszusetzen. Gute Verarbeitung, Display und Kamera finde ich absolut ausreichend, für den wechselbaren Akku gebe ich einen Extrapunkt. Anfangs gab es ein Problem mit der Akkuleistung, aber seitdem ich den NFC Chip in der Gehäuserückseite mit Alufolie abgeklebt habe, läuft das Telefon zwei Tage.

Fast alle Verbindungsarten funktionieren einwandfrei: UMTS/GSM, WLAN und Kopplungen mit Computer und Freisprechanlage per Bluetooth sind problemlos. Was seltsamerweise überhaupt nicht richtig funktioniert, ist der Anschluss an den Computer per USB Kabel. Der Apple Mac erkennt überhaupt nicht, dass ein Gerät angesteckt wurde, Windows konnte ich nicht ausprobieren und Linux erkennt zwar ein Gerät, verweigert aber den Zugriff.

Die Bedienung ist zunächst etwas ungewohnt, aber nach ein- oder zwei Tagen kommt man problemlos klar. Seit ich mein Gerät am 24.01. zum ersten Mal eingeschaltet habe sind zwei Updates für das Betriebssystem erschienen, in dem Bugfixes und kleine Verbesserungen enthalten sind. So soll nun auch das Akkuproblem behoben sein, was ich aber aufgrund meines Hardware-Bugfixes nicht merke. Ich habe das Problem, dass das Jolla regelmässig meckert, meine SIM Karte müsse neu eingelegt werden, aber ich gehe eher von einer defekten SIM Karte aus, da ich dasselbe Problem auch schon mit dem HTC One S hatte.

Jolla arbeitet jedenfalls fleissig daran, das System zu verbessern. Es soll auch weiterhin ein Update pro Monat geben.

Richtig toll finde ich, dass das Jolla nur mit den absoluten Basis Apps (Phone, SMS, Browser, Kamera, Kontakte, Galerie und Store) ausgeliefert wird. Jedes Zusatzprogramme, dass man haben möchte, muss man explizit nachinstallieren. Aber ab hier wird es leider auch etwas finster. Die Apps sind nämlich sehr rudimantär und bieten kaum Einstellungsmöglichkeiten.

Viel Schatten

Mail z.B. unterstützt immerhin mehrere Konten, bietet aber z.B. nicht die Möglichkeit, das Nachladen von Bildern zu verhindern, was aus Datenschutzgründen absolut notwendig ist. Es werden leider auch keine selbsterzeugten Serverzertifikate akzeptiert. In so einem Fall funktioniert nur die unverschlüsselte Mailübermittlung. Ein echtes No-Go. Die Anzeige von HTML Mails ist auch so klein, dass man sie nicht lesen kann.

Ein anderes Beispiel ist die Fotogalerie. So kann man in der Übersicht zwar mehrere Bilder auf einmal markieren – aber nur zum Löschen und nicht um einen ganzen Schwung auf einmal per Bluetooth auf den Computer zu schieben. Sehr lästig – vor allem, weil der Weg über USB leider ebenfalls nicht funktioniert (s.o.).

Es gibt leider noch sehr viele solcher Ungereimtheiten. Die Kontakte und Termine möchte ich auch gerne mit meinem eigenen Server abgleichen und nicht mit Google. Standardmässig zur Zeit nicht möglich, aber…

Viel Nerd-Zeug

Das oben genannte gilt für normale Nutzer. Für Nerds gibt es aber oftmals Wege, die Normalsterblichen nicht zugänglich sind. Die Schlüssel dazu sind der Entwicklermodus und der SSH Zugang.

Gestern bin ich auf eine Erweiterung aufmerksam geworden, wie man Synchronisation per CardDAV und CalDAV nachrüsten kann. Genau das will ich haben, damit ich meine persönlichen Daten wieder von Google wegbekomme. Die Lösung heisst SyncEvolution. Diese Software ist aber noch Beta und nicht im Jolla Store zu finden. Man muss sich per SSH auf dem Smartphone einloggen, ein zusätzliches Repository registrieren und kann dann per Paketmanager die Software installieren. Ob und wie die Verbindung mit OwnCloud funktioniert, weiss ich noch nicht, weil ich erst noch den Server im Heimnetz aufbauen muss.

Da ich nun also schon eine SSH Verbindung zum Smartphone hatte, konnte ich auch per SFTP auf das Dateisystem zugreifen und die ganzen Fotos en bloc herunterladen.

Dass es die Möglichkeit gibt, so zu arbeiten, ist toll. Das es aber momentan oftmals nur so geht ist aber Mist. Für Leute mit UNIX Kenntnissen ist das alles nicht sonderlich aufregend, aber für normale Benutzer vollkommen indiskutabel.

 

Retro Events in Berlin

Während der letzten Tage gab es einige schöne, kleine Treffen in Berlin mit Retro-Schwerpunkt. Leider musste ich aus terminlichen Gründen auf ein Highlight verzichten: Den Workshop “Racing the Beam…“, bei dem am Samstag an der Humboldt Universität eine Einführung in die Programmierung der seeligen Atari VCS (bzw. Atari 2600) Telespiels gegeben wurde. Sehr ärgerlich, denn darauf hatte ich mich schon länger gefreut.

Am Donnerstag gab es aber bereits einen netten Abend in einem Hackerspace, bei dem an einem Commodore 64 gezockt wurde. Spiele des Abends waren unter anderem Maniac Mansion, ein Galaxian Clone, Great Giana Sisters und Matrix. Etwas bedrohlich ist, dass immer mehr Disketten aus den 80er und 90er Jahren nicht mehr lesbar sind. Da nützt die bestgepflegte Hardware nichts. Hoffentlich sind die Wechselplatten der PDP11 langlebiger…

Links Wechselplatten für PDP11, rechts Galaxians auf C64

Links Wechselplatten für PDP11, rechts Galaxians auf C64

Am Freitag fand an der Humboldt Universität die Veranstaltung “Game Circuits – Operative Computerspielanalyse” statt, die im Wesentlichen eine Ergebnispräsentation eines Workshops des Studiengangs Medienwissenschaften ist. Die Studentinnen (tatsächlich überwiegend Damen) haben sich mit der Technik der Konsolen der 3. und 4. Generation auseinandergesetzt. Bis auf eine Ausnahme war die Original Hardware aufgebaut und es konnte gezockt werden.

Eine meiner absoluten Lieblingskonsolen war 1982 das CBS ColecoVision, weil man darauf Donkey Kong in Automatenqualität spielen konnte – was ich an diesem Abend natürlich tat.

CBS ColecoVision

CBS ColecoVision

Von Atari waren gleich zwei Konsolen aufgebaut, die ich beide noch nie im Original gesehen hatte.

Auf dem Atari 7800 spielte ich eine Runde Asteroids. Das System, das 1986 in Europa auf den Markt kam, hatte ich damals kaum wahrgenommen. Entweder hatte man einen Computer, oder ein Videospiel von Nintendo oder Sega.

Das ungeheuer grosse Atari 5200 aus dem Jahr 1982 kam in Europa nicht auf den Markt. An diesem Abend war es mein heimlicher Favorit, was vor allem an dem genialen Trackball lag, der bei den Spielen Missile Command und Centipede für Original Spielhallenfeeling sorgte.

Atari 5200 (links) und Atari 7800 (rechts)

Atari 5200 (links) und Atari 7800 (rechts)

Es hatte schon etwas Besonderes, wenn man sich ein Videospiel, das man als 11jähriger gerne gehabt hätte, 35 Jahre später von einer charmanten jungen Studentin erklären und vorführen zu lassen. Die Rede ist von Dracula auf dem 1979 erschienenen Mattel IntelliVision. Das erste Spiel, bei dem man die Spielfiguren eindeutig erkennen konnte. Die Spielsteuerung ist zwar etwas zäh, aber Charme hat die Software immer noch. Wir spielten auch noch eine Runde Astrosmash gegeneinander. Hier war die Steuerung recht geschmeidig und ich konnte in dem kleinen Turnier sogar einen Preis gewinnen (Kinderschokolade). Leider gab es diese Konsole nur als Emulation, da die Original Hardware zwei Tage zuvor kaputt ging und erst repariert werden muss.

Dracula auf Intellivision Emulation

Dracula auf Intellivision Emulation

Weiterhin gab es an diesem Abend noch Nintendo SNES, SNK NeoGeoNEC TurboGrafx-16 (alias PC-Engine), MB Vectrex und Sega MegaDrive zu bestaunen und zu bespielen.

Es geht noch älter!

Nicht ganz zum Thema passend (weil zu alt) war auch eine RCA Studio II Konsole aus dem Jahr 1977 zu bespielen. Die Spiele waren allerdings selbst für die damalige Zeit schon etwas mager und nur in Schwarz/Weiß Grafik.

RCA Studio II

RCA Studio II

Nach der Veranstaltung zog sich eine kleine Gruppe in das Signallabor zurück um sich einem wirklich kostbaren Gerät zu widmen: Einer Originalverpackten Magnavox Odyssey von 1972. Das erste verkaufte Videospielsystem überhaupt. Ich hatte das Gerät zwar bereits als Austellungsstück gesehen, aber hier gab es zum ersten Mal die Gelegenheit zum Anfassen und Ausprobieren.

Magnavox Odyssey Originalverpackung

Magnavox Odyssey Originalverpackung

Die Überraschung begann schon beim Auspacken: Zuerst bekommt man nämlich neben sechs Spielmodulen tonnenweise Zubehör zu sehen: Bunte Bildschirmfolien in zwei Grössen, Karten, Spielgeld und so weiter.

Viel buntes Zubehör

Viel buntes Zubehör

Darunter dann endlich das Prachstück in absolut einwandfreiem Zustand ohne Gilb am Gehäuse. Nur das Netzteil ist nicht mehr Original.

Magnavox Odyssey

Magnavox Odyssey

Nachdem das Schätzchen ausgepackt und angeschlossen war, wurde sogleich eine Runde Pong gespielt. Dabei merkt man, dass das Gerät noch nicht Mikroprozessorgesteuert ist, sondern zum grossen Teil aus Analogelektronik besteht. Die sehr dicken Kabel an den Controllern verleiteten jemand zu der scherzhaften Vermutung, dass die Konsole nicht elektrisch sondern “noch mit Hydraulik” gesteuert wird.

Magnavox Odyssey in action

Magnavox Odyssey in action

Abgesehen von der extrem groben Schwarz/Weiß “Grafik” sind aus heutiger Sicht viele Eigenarten etwas irritierend:

  • Man kann nicht gegen die Maschine spielen, da überhaupt keine geeignete Steuerelektronik vorhanden ist.
  • Die Maschine zählt auch keine Punkte. Das müssen die Spieler schon selber machen
  • Das System prüft nicht einmal die Einhaltung der Spielregeln. Ob man bei dem Spiel “Skifahren” auf der Piste bleibt, muss man ebenfalls selbst entscheiden.

Eigentlich ist die Odyssey somit gar kein “richtiges” Videospiel, sondern ein Gesellschaftsspiel, von dem zufällig ein Teil am Fernseher stattfindet. Verblüffende Erkenntnis!

Bewegungserkennung per Webcam

Für ein kleines Projekt stand gerade vor der Aufgabe, Standbilder per Webcam aufzunehmen und zu speichern – aber nur, wenn sich etwas vor der Linse bewegt.
Das klingt zunächst reichlich kompliziert, aber mit den richtigen Werkzeugen ist es tatsächlich verblüffend einfach. Die Werkzeuge der Wahl sind:

  • Python – Eine populäre Skriptsprache
  • OpenCV – Eine Funktionsbibliothek für Bild-, Videobearbeitung, Mustererkennung u.ä.

Den rechten Weg wies mir Matthias Stein mit seinem Artikel “Motion detection using a webcam, Python, OpenCV and Differential Images“. Die Bewegungserkennung funktioniert so, dass drei kurz nacheinender aufgenommene Bilder übereinandergelegt werden und daraus ein Differenzbild errechnet wird. Dort wo sich nichts verändert hat, ist das Differenzbild schwarz. Stellen, die sich verändert haben, werden weiß. Das führt zu recht eigenwilligen, geisterhaften Bildern, wie man in dem Beispielvideo auf Youtube sehen kann.

Die Lösung

Die Methode musste ich nun nur noch etwas ergänzen. Aus dem Differenzbild errechnet die OpenCV Methode countNonZero die Anzahl, der weißen Pixel. Falls dieser Wert oberhalb eines gesetzten Schwellwertes (sinnvollen Wert ausprobieren) liegt, soll das Bild gespeichert werden. Jetzt muss man nur noch dafür sorgen, dass das Ursprungsbild in Farbe vorliegt und nur zur Differenzberechnung in Schwarz/Weiss gewandelt wird. Et voilá…

Für die interessierten ist hier der Code:

#! /usr/bin/python

import time
import cv2

def diffImg(t0, t1, t2):
    d1 = cv2.absdiff(t2, t1)
    d2 = cv2.absdiff(t1, t0)
    return cv2.bitwise_and(d1, d2)

print "Start Capturing"
cam = cv2.VideoCapture(0)

# Threshold for minimum movement
threshold = 130000
targetdir = './'
winName = "MovementIndicator"
cv2.namedWindow(winName, cv2.CV_WINDOW_AUTOSIZE)

# Read three images first:
colorimg = cam.read()[1]
t_minus = cv2.cvtColor(colorimg, cv2.COLOR_RGB2GRAY)
t = cv2.cvtColor(colorimg, cv2.COLOR_RGB2GRAY)
t_plus = cv2.cvtColor(colorimg, cv2.COLOR_RGB2GRAY)

start = time.time()
while True:
    dimg=diffImg(t_minus, t, t_plus)
    cv2.imshow( winName, dimg )

    # save picture, when movement above threshold
    print cv2.countNonZero(dimg)
    if cv2.countNonZero(dimg) > threshold:
        timestamp = round(time.time() - start)
        filename = targetdir + str(timestamp) + ".jpg"
        cv2.imwrite(filename, colorimg)

    # Read next image
    colorimg = cam.read()[1]
    t_minus = t
    t = t_plus
    t_plus = cv2.cvtColor(colorimg, cv2.COLOR_RGB2GRAY)

« Previous PageNext Page »