3-D Ultra Interesting: Digital Archaeology in 3-D Ultra Pinball: Creep Night

Deutsche Version hier! / Extractor tool / Complete Infosite

Sometimes a technical investigation starts completely by accident – and end with a game engine torn apart, and discovering new cheats and eastereggs.

In my case, all I wanted to do was play Sierra’s 1996 3-D Ultra Pinball: Creep Night again on an emulated Windows 98 PC. It was one of those games I played so much as a child that, decades later, quite a surprising amount of it still seems to live in muscle memory.

While playing it again, however, I noticed something I had obviously never thought about as a child: despite its name, 3-D Ultra Pinball is not really a 3D game in the modern sense.

The tables look three-dimensional. So do the characters, ball, ramps and animations. But there is no polygonal 3D world being rendered in real time. Instead, the game developed by Dynamix relies heavily on pre-rendered 2D graphics.

That observation started a journey into the internals of its engine. 😊

3-D Ultra Interesting: Digital Archaeology in 3-D Ultra Pinball: Creep Night weiterlesen

3-D Ultra spannend: Digitale Archäologie in „3-D Ultra Pinball: Creep Night“

English version here! / Extractor Tool / Zur kompletten Infosite

Manchmal beginnt eine technische Untersuchung völlig ungeplant – und enden damit, dass man nicht nur eine Engine auseinanderbaut, sondern dabei auch unbekannte Eastereggs und Cheats entdeckt.

In meinem Fall wollte ich eigentlich nur 3-D Ultra Pinball: Creep Night von Sierra aus dem Jahr 1996 auf einem emulierten Windows-98-Rechner wieder spielen. Das Spiel ist für mich seit meiner Kindheit so eines der Games, deren Abläufe man Jahrzehnte später erstaunlicherweise immer noch im „Muscle Memory“ hat.

Beim Spielen fiel mir diesmal allerdings etwas auf, über das ich als Kind selbstverständlich nie nachgedacht hatte: Trotz seines Namens ist 3-D Ultra Pinball kein 3D-Spiel im heutigen Sinne.

Die Tische sehen dreidimensional aus. Figuren, Kugeln, Rampen und Animationen ebenfalls. Aber es gibt keine in Echtzeit gerenderte polygonale 3D-Welt. Stattdessen arbeitet das von Dynamix entwickelte Spiel mit vorgerenderten 2D-Grafiken.

Das war der Beginn einer kleinen Reise in die Innereien der Engine. 😊

3-D Ultra spannend: Digitale Archäologie in „3-D Ultra Pinball: Creep Night“ weiterlesen

Stepper Motoren in Flipperautomaten – ein Drama in drei Akten

Jeder Flipperautomat hat ein besonderes Gimmick, liebevoll auch Toy genannt. Egal, ob es der sprechende, mechanische Kopf beim Funhouse ist oder die Burg beim Medieval Madness: Diese Toys sind so eine Art Alleinstellungsmerkmal des jeweiligen Flippermodells und viel Entwicklungsarbeit steckt seitens der Designer in diesen.

Umso bedauerlicher ist es, wenn ein solches Toy nicht funktioniert. Egal, ob es nun den Spielverlauf beeinflusst oder nicht.

Mein „Who Dunnit“ hat mehrere solcher Toys – eines davon ist eine Slot Machine unter dem Spielfeld. Mit dieser kann sich der Spieler Extrabälle, bestimmte Spielablaufereignisse (tolles Wort!) usw. erspielen. Geht diese mechanische Slot Machine nicht, wird sie einfach auf dem Display angezeigt. Kein großes Drama also, aber trotzdem nervig.

Also habe ich einen Reparaturversuch gewagt.

Stepper Motoren in Flipperautomaten – ein Drama in drei Akten weiterlesen

Migration von Serendipity zu WordPress

Mein Blog lief bis gestern mit dem eher unbekannten CMS Serendipity, welches nicht nur unnötig kompliziert zu buchstabieren ist, sondern ein funktionell ziemlich rudimentäres, aber dafür stabiles Blog-System bietet. Außerdem ist die Entwicklungsgeschichte richtig spannend!

Durch verschiedene PHP-Versionen und Serverumzüge hat es mich begleitet, dabei aber immer weitere Bugs und Inkompatibilitäten erzeugt. Zum Schluss konnte ich keine Bilder mehr hochladen – Ursache unbekannt, der Image Picker wurde mit einer leeren Seite ausgeliefert. Troubleshooting einer Serendipity-Installation ist furchtbar.

Da WordPress inzwischen ziemlich komfortabel geworden ist und sich zu sowas wie einem Industriestandard (43% aller Webseiten laufen angeblich heute mit WordPress!) entwickelt hat, war es Zeit, zu wechseln. Auch wenn ich mit der Plugin- und Theme-Flut nicht zufrieden bin: Eine WP-Seite, die heute läuft, ist morgen mangels Maintenance schon out-of-date. Oh well… das ist wohl der Preis des Fortschritts.

Migration von Serendipity zu WordPress weiterlesen

Fehler in composer: „Cloning failed“

Wer mit einer PHP-Webanwendung arbeitet kommt manchmal nicht am Composer vorbei. Im Regelfall ist das auch kein Problem, aber ich bin neulich auf folgende Fehlermeldung gestoßen:

Installing dependencies from lock file
Verifying lock file contents can be installed on current platform.
Package operations: 169 installs, 0 updates, 0 removals
  – Syncing symfony/deprecation-contracts (v2.5.2) into cache
Cloning failed using an ssh key for authentication, enter your GitHub credentials to access private repos

Ein sehr merkwürdiger Fehler.

Fehler in composer: „Cloning failed“ weiterlesen

iPhone „Persönlicher Hotspot“ dauerhaft verbinden

Wenn ich mit meinem Macbook oder iPad den „Persönlichen Hotspot“ meines iPhones nutze, bleibt die Verbindung dauerhaft bestehen, solange mein Macbook oder iPad Daten über das Internet senden. Soweit funktioniert die automatische Erkennung also.

iPhone „Persönlicher Hotspot“ dauerhaft verbinden weiterlesen

Jabra Evolve2 mutet nicht mehr mit hochgeklapptem Mikrofonarm

Ein tolles Feature meines Jabra Evolve2 75 Headsets ist, dass man den Mikrofonarm hochklappen kann und damit das Mikrofon in Microsoft Teams gemutet wird. Also: Mikrofon eingeklappt, Mute aktiviert. Mikrofon runtergeklappt, Mute deaktiviert. Gerade wenn man nicht jedes Mal mit der Maus herumfuchteln will oder gerade während eines Meetings am Herumlaufen ist, ist das eine tolle Sache. 

Ich hatte nun das Problem, dass das irgendwann nicht mehr funktioniert hat – egal was ich mit Jabra Direct und Co. eingestellt hatte.

Jabra Evolve2 mutet nicht mehr mit hochgeklapptem Mikrofonarm weiterlesen

„Die angegebene Domäne ist nicht vorhanden“

Merkwürdigerweise bekomme ich bei meinem Dienstlaptop, der in die AD-Domäne integriert ist, beim Aufruf jeglicher ActiveDirectory-Snapins und -Befehle nur die folgende Fehlermeldung:

Fehlermeldung "Die angegebene Domäne ist nicht vorhanden, oder es konnte keine Verbindung aufgebaut werden"

Das ergibt wenig Sinn, denn sowohl das Gerät ist in der Domäne integriert, als natürlich auch der angemeldete (AD-)Benutzer.

„Die angegebene Domäne ist nicht vorhanden“ weiterlesen

BigFix: „Password missing“, „Masthead file does not exist“

Bei der Verwaltung von BigFix über die Linux-Shell mittels BESAdmin.sh bekommt man manchmal kryptische Fehlermeldungen. Zwei davon habe ich nun mitbekommen. Beide Male lag es an der fehlenden Berechtigung, was von BESAdmin aber nicht so kommuniziert wird – leider!

BigFix: „Password missing“, „Masthead file does not exist“ weiterlesen

Windows Server: Herausfinden, zu welchem Dienst ein Port gehört

Falls man auf einem Windows-Server einmal einen offenen Port hat und nicht weiß, woher der kommt (z.B. nach einem Security Audit einer einem selbst nicht gut bekannten Applikation), kann man wie folgt vorgehen:

  • Eine PowerShell oder CMD öffnen
  • netstat -aon | findstr PORTNUMMER
  • Rechts steht die Prozess-ID
  • Taskmanager öffnen, Tab „Dienste“
  • Dort gibt es eine Spalte PID – die ausgegebene PID suchen
  • Freude 🙂