Categories
Ghostbusters

Topper für den Ghostbusters

Da der Stern Original-Topper für den Ghostbusters nicht nur etwas lieblos verarbeitet ist, sondern auch nur zu exorbitanten Preisen im Gebrauchtmarkt zu bekommen ist, hab ich mal etwas eigenes konstruiert:

Categories
Beobachtungen Ghostbusters Spike 1

Ein Blick auf die Spike-1 Software

Mit der Spike-1 Flipperarchitektur hat Stern einen grossen Schritt weg von der alten Architektur mit einem zentralen Controller und I/O-Board zu einem modularen System gemacht. Dabei wurde nicht nur die Hardware geändert, sondern auch die Software. Seit Spike-1 läuft nun ein Linux auf dem Flipper. Grund genug, da mal reinzuschauen. Da Stern die SD-Karten-Images bereitstellt, ist das nicht schwierig.

Das Image ist 4GB gross, auf der SD-Karte sind diverse Partitionen:

fdisk ghostbusters-1_17.iso

Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk ghostbusters-1_17-modified.iso: 3.5 GiB, 3752852992 bytes, 7329791 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00018e69

Device Boot Start End Sectors Size Id Type
ghostbusters-1_17-modified.iso1 * 35 6999 6965 3.4M 1 FAT12
ghostbusters-1_17-modified.iso2 7000 13999 7000 3.4M da Non-FS data
ghostbusters-1_17-modified.iso3 14000 262499 248500 121.3M 83 Linux
ghostbusters-1_17-modified.iso4 264192 7329791 7065600 3.4G 5 Extended
ghostbusters-1_17-modified.iso5 266240 397311 131072 64M 83 Linux
ghostbusters-1_17-modified.iso6 399360 6690815 6291456 3G 83 Linux
ghostbusters-1_17-modified.iso7 6692864 6823935 131072 64M 83 Linux

Als nächstes kann man mit den Loopback-Tools von Linux die einzelnen Partitions mounten:

sudo losetup -P /dev/loop99  ghostbusters-1_17-modified.iso
mkdir iso1 iso3 iso5 iso6 is7
sudo mount /dev/loop99p1 iso1
sudo mount /dev/loop99p3 iso3
sudo mount /dev/loop99p5 iso5
sudo mount /dev/loop99p6 iso6
sudo mount /dev/loop99p7 iso7

Mal schauen, was man da so sieht.

Auf der FAT-Partition befindet sich nur der Bootloader:

ls iso1/
BOOT.BIN

Partition 3 enthält wohl das gesamte System:

ls iso3/
bin  data  dev  dump  etc  games  home  lib  lost+found  media  mnt  proc  sbin  spk  tmp  usr  var

Partition 5 ist der Ersatz fürs NV-Ram:

 ls iso5
lost+found  nv

Partition 6 scheint den eigentlichen Game-Code zu enthalten:

ls iso6
game  ghostbusters_pro  lost+found  spk

Und auf Partition 7 wird geloggt:

ls iso7
log  lost+found

Die Hardware ist ARMv7 basiert und es gibt auch ein Busybox auf dem System. Das bedeutet, es sollte möglich sein, auf dem Pinball einzuloggen.

file iso3/bin/busybox
iso3/bin/busybox: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 2.6.16, stripped

Also mal ein Blick in auf die Spielesoftware werfen:

ls -l iso6/ghostbusters_pro
total 1158340
-rw-rw-r-- 1 root root      21118 Feb 15  2015 accbridgenode-LPC1313-0_52_0.hex
-rw-rw-r-- 1 root root      34115 Feb 15  2015 coil4node-LPC1112_101-0_52_0.hex
-rw-rw-r-- 1 root root      34115 Feb 15  2015 coil4node-LPC1112_201-0_52_0.hex
-rw-rw-r-- 1 root root      57118 Feb 15  2015 coil4node-LPC1313-0_52_0.hex
-rwxrwxr-x 1 root root    7057423 Feb 15  2015 game
-rw-r--r-- 1 root root 1177406356 Feb 15  2015 image.bin
-rw-rw-r-- 1 root root      46842 Feb 15  2015 lcdnode-LPC1113_302-0_52_0.hex
-rw-rw-r-- 1 root root      62780 Feb 15  2015 netbridge-LPC1313-0_52_0.hex
-rw-rw-r-- 1 root root      26068 Feb 15  2015 node4-LPC1124_303-0_52_0.hex
-rw-rw-r-- 1 root root      21613 Feb 15  2015 nodebusanalyzer-LPC1313-0_52_0.hex
-rw-rw-r-- 1 root root      32712 Feb 15  2015 pinnode-LPC1112_101-0_52_0.hex
-rw-rw-r-- 1 root root      32773 Feb 15  2015 pinnode-LPC1112_201-0_52_0.hex
-rw-rw-r-- 1 root root      59982 Feb 15  2015 pinnode-LPC1313-0_52_0.hex
-rw-rw-r-- 1 root root      34422 Feb 15  2015 ws2812node-LPC1313-0_52_0.hex

Hier findet man die Firmware der Node-Boards. Wie man sieht, laufen die mit einfachen LPC ARM-Prozessoren.

Die eigentliche Spielsoftware ist ein grosses statisch gelinktes Binary:

file iso6/ghostbusters_pro/game
iso6/ghostbusters_pro/game: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, not stripped

Heikler wird es bei den Daten:

file iso6/ghostbusters_pro/image.bin
iso6/ghostbusters_pro/image.bin: data

Das ist eine grosse Datei ohne einfach erkennbare Struktur. Die Struktur ist wohl dem Autor des Pinball Browsers bekannt, aber nicht öffentlich dokumentiert.

Categories
Ghostbusters

Zweifarbige Convolux für Ghostbusters

Beim Ghostbusters ist es schwer, sich für eine Farbe bei Plastik-Protektoren zu entscheiden. Die linke Slingshot-Plastik ist eher grünlich, die recht bläulich.

Warum also nicht die Protektoren zweifarbig? Gesagt, getan: