Besserer Sound bei ScummVM Spielen auf einen Raspberry Pi mit Roland MT-32 und CM-32L Synthesizer Modulen Emulator. So klingen die beinahe 30 Jahre alten Spiele nicht mehr nach 8Bit Soundtechnik.

Im folgenden Tutorial wird gezeigt, wie Ihr die Synthesiser-Software Munt auf einem RPi 3B+ installieren und verwenden könnt. Windows-Benutzer können das Programm PuTTY für Aufgabe nutzen, Linux-Benutzer machen das über das Terminal mittels SSH-Verbindung. Falls nicht geändert, dann sollten die Standardlogin Daten gelten (Login: pi PW: raspberry).

1. Notwendige Pakete installieren:

sudo apt-get install build-essential cmake portaudio19-dev qtmobility-dev libx11-dev libxt-dev libxpm-dev

2. Software Munt downloaden:
Hier gibt es nun zwei Möglichkeiten, zu einem die Source Quelle und zum anderen die git Quelle. Ich arbeite am liebsten mit git, da diese einfacher sind zu updaten.

git clone https://github.com/munt/munt.git

3. betreten und build Ordner erstellen:

cd munt
mkdir -p build-munt
cd build-munt

4. Compiler-Flags setzen (RPi3):

export CCFLAGS="-Ofast -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -ftree-vectorize -funsafe-math-optimizations"
export CXXFLAGS="-Ofast -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -ftree-vectorize -funsafe-math-optimizations"

5. Munt kompilieren/bauen und installieren:

cmake -DCMAKE_BUILD_TYPE=Release -Dmunt_WITH_MT32EMU_QT:BOOL=OFF ../
make -j 4
sudo make install

6. Munt ALSA MIDI Treiber kompilieren/bauen und installieren:

cd ../mt32emu_alsadrv/
make
sudo make install

7. Kontrolle der Installation:

ls -la /usr/local/bin/mt32d

pi@retropie:~ $ ls -la /usr/local/bin/mt32d
-rwxr-xr-x 1 root staff 229068 Aug 29 17:29 /usr/local/bin/mt32d
pi@retropie:~ $

8. MT32 Autostart:

Hierfür tragen wir in die Datei “/etc/rc.local” folgendes vor dem “exit 0” ein.

sudo nano /etc/rc.local

/usr/local/bin/mt32d -i 12 &

9. Das Jamming verringern:

Um das Jamming des Sounds zu verringern, können diese On-Demand-CPU-Regler-Optimierungen in der “/etc/rc.local” Datei, unter der mt32d-Befehlszeile, eingetragen werden.

echo -n 100 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
echo -n 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate

Eine andere Alternative dazu ist

echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

jedoch macht treibt dieser die RPi deutlich höher und die CPU wird wärmer.

10. Neustart und erster Device Test:

Neustart mit: sudo reboot

Nachdem das System wieder oben ist und wir uns erneut eingeloggt haben, testen wir ob der Device vorhanden ist.

aconnect -o

pi@retropie:~ $ aconnect -o
client 14: ‘Midi Through’ [type=Kernel]
0 ‘Midi Through Port-0’
client 128: ‘MT-32’ [type=User,pid=619]
0 ‘Standard ‘
1 ‘GM Emulation ‘
pi@retropie:~ $

11. ROM Dateien:

Es fehlen noch die gewissen ROM Datei(en) zu dem ganzen (MT32_PCM.ROM, MT32_CONTROL.ROM und CM32L_PCM, CM32L_CONTROL.ROM). Diese packt ihr euch erstmal ins Home-Verzeichnis (/home/pi/) Eures RPi (mit WinSCP z.B.) um sie dann in PuTTY oder mittels SSH-Verbindung zu verschieben.

sudo mkdir -p usr/share/mt32-rom-data
sudo mv ~/*.ROM /usr/share/mt32-rom-data

12. ScummVM einstellen:

Die Soundeinstellungen können entweder für alle Spiele oder einzeln gemacht werden.
In dem Beispiel hier werden die Einstellungen für alle gemacht.

Standard Audio-Einstellung

MT32 Audio-Einstellung

Teilen:

Das Gerät misst 3.2cm, mit Analog Stick knapp 6cm an Höhe und ist 18 cm lang. Das Prinzip dieses Bauwerkes ist recht simple, oben und unten befinden sich zwei zurechtgeschnittene Plastik Platten. Die obere schützt die Steuerplatine mit den 3.5 IPS Display, Tastern und den etwas verunglimpften Lautsprechern (die hätte ich ehr auf der Innenseite angebraucht).
Das Raspberry Pi wird über die gesamte GPIO Leiste und einen HDMI doppel Stecker verbunden, der Sound kommt über die HDMI Schnittstelle.

An der linken Seite unterhalb der Taster befinden sich weiter vier Drucktaster an der Steuerplatine, um die Einstellungen des Displays und der Lautstärke zu machen. Auf der Rechten Seite unter dem Analogen Stick haben wir die Akku LEDs und darüber den On/OFF Schalter. Noch weiter höher kommen die Schultertasten und dazwischen befindet sich der Kopfhöreranschluss, sowie die Ladebuchse des Gerätes. Der Stecker ist ein Micro-USB Type-B.

Ich habe RetroPie auf einer Test-SD Karte und die Themes GBZ35-dark gewählt. Da diese Optimal für den Einsatz von 3.5 Zoll Displays gemacht ist, gibt es auch keine Probleme mit der grafischen Ansicht in den einzenlnen Systemen.

Spielen läßt es sich ähnlich wie ein PSP, Dingoo A320 oder GameKing. Das Design ist jedoch ehr der PSP angepasst, mit den rundlichen Seiten.

Galerie:


Teilen:



Monkey Island 4 ist nicht für die ScummVM geeignet, das haben die Entwickler auf deren Website ganz unter Kompatiblität zu stehen. Jedoch auf dem Schwester Projekt ResidualVM, welches nach einen ähnlichen Prinzip wie ScummVM funktioniert, ist es spielbar.



Scummvm und Residualvm sollten auf dem Raspberry Pi unter RetroPie installiert sein. Den Ordner “mi4” oder wie ihr ihn benannt habt, soll von dem ROM-Ordner residualvm in ROM-Ordner scummvm verschoben werden. Desweiteren soll bereits eine rvm Datei existieren, diese erhält man wenn man im ResidualVM Startmenü ein Spiel hinzufügt und anschließend beendet.

Also

1. Beide Emulatoren sollten installiert sein
2. MI4, die +Start Datei und dazugehörige rvm Datei nach scummvm ROM-Ordner verschieben
3. Abändern von es_systems.cfg (.rvm .RVM muss bei scummvm in extension hinzugefügt werden und bei residualvm entfernt werden – sonst taucht das unter residualvm in der Emualtionstation immer wieder auf!)
4. Die Befehlskette aus /opt/retropie/configs/residualvm/emulators.cfg von Emulator residualvm-software muss mit in die scummvm/emulators.cfg (über default).
5. Pfad des Emulators residualvm-software muss geändert werden. (…/roms/scummvm/+Start\ ResidualVM.sh software %BASENAME%”)
6. Beim ersten Start des Spiels muss der Emulator für das ROM geändert werden. Beim starten erscheint ein Dialogfenster, A drücken zum konfigurieren. und ändern der 2 Option zu residual-software durchführen.

das wars 😉

Teilen:

Ich geb mich ja mit Kleinkram sonst nicht zufrieden aber das hatte mich dann doch brennend gejuckt. Als Features habe ich den Drehteller der PS-Disc dringelassen und ebenfalls an die Raspberry Pi angeschlossen, Sozusagen eine rotierende Fake-Disc. Die entsprechenden Teile, für die USB-Ports, LAN und Audio, HDMI, SD-Slot und Stromanschluss, sowie die Raspberry Pi Halterung, entstammen aus den 3D-Drucker. Dazu noch ein kleiner Zusatz, damit der Standard Powerbutton und die LED auch hierbei funktionär bleiben.

Teilen:

(Beispiel mit NTFS Festplatte)

Dieser Artikel zeigt wie Ihr eure externe Festplatte für die „ROMs“ verwenden könnt. Hierbei wird die HDD/SSD als separate Quelle in das HOME-Verzeichnis eingehängt.

Die Festplatte sollte mit dem gewünschten Dateisystem vorbereitet und mit dem Raspberry Pi verbunden sein. Als erstes schalten wir den USB ROM Service aus.

1. RetroPie-Setup innerhalb des RetroPie Menüs in der Emulationstation aufrufen.
2. Configuration / tools auswählen.
3. usbromservice – USB ROM Service auswählen.
4. Disable USB ROM Service scripts

Nun kann das RetroPie-Setup Script wieder verlassen und eine SSH Verbindung (Windows: PuTTY – User: pi / Pass: raspberry) hergestellt werden. Oder direkt am RPi eine Tastatur anschließen und in der Emulationstation F4 drücken, um zur TTY zu gelangen.

1. Die Festplatte ist unter dem Einhängepunkt „/media/usb0“ eingehängt, eine Kontrolle mit dem Befehl „lsblk“ sollte den Device „/dev/sda1“ damit zeigen.
2. Verschieben der Inhalte des Ordners „/home/pi/RetroPie“ auf die Festplatte. Es kann nichts schaden den BIOS Ordner der sich in dem RetroPie Ordner befindet mit auf die HDD zu machen, nicht nur den roms.

sudo mv -v /home/pi/RetroPie/* /media/usb0

3. Konfigurieren der fstab für automatisches einhängen der USB-Gerätes. Hierfür kann die
Festplatten-Kennung (UUID) oder die Bezeichnung (LABEL) benutzt werden.

Für UUID : ls -l /dev/disk/by-uuid/
Für LABEL: ls -l /dev/disk/by-label/

sudo nano /etc/fstab

Eintrag UUID verschiedener Dateisysteme:

FAT32

UUID=6C96C26227A1468D   /home/pi/RetroPie      vfat    rw,exec,uid=pi,gid=pi,umask=022 0       2

NTFS

UUID=6C96C26227A1468D   /home/pi/RetroPie      ntfs    nofail,user,uid=pi,gid=pi 0       2

EXT4

UUID=6C96C26227A1468D /home/pi/RetroPie ext4 nofail,defaults 0    0

Eintrag LABEL verschiedener Dateisysteme:

FAT32

LABEL=roms /home/pi/RetroPie vfat nofail,user,uid=pi,gid=pi 0 2

NTFS

LABEL=roms /home/pi/RetroPie ntfs  nofail,user,uid=pi,gid=pi 0 2

EXT4

LABEL=roms /home/pi/RetroPie ext4 nofail,defaults 0    0


Beenden mit STRG+X und mit J oder Y (je nach Tastaturlayout) bestätigen. Es geht auch mit Speichern STRG+O und dann Beenden mit STRG+X.

4. Neustarten des Systems mit sudo reboot

Noch ein paar Worte zu Festplatten die nicht erkannt werden.

Das liegt dann daran das die Festplatte nicht genug Strom bekommt, hierfür eignen sich dann aktiv USB-Hubs ganz gut. Da diese eine eigene Stromversorgung haben können sie auch an das entsprechende USB-Gerät welchen abgeben. Festplatten mit eigener Versorgung sollten natürlich diese auch nutzen.

Teilen:


Raspbian hat Kodi in den eigenen Repositories noch nicht aktualisiert (letzte Version 17.3, da kann man vergeblich nach Kodi 17.4 suchen. Mit einer Extra-Quelle kann man einzelne Pakete auf die des Herstellers anheben. Aber als allererstes sollte die alte Kodi-Version, sofern installiert, entfernt werden. Am besten mit: sudo apt-get purge kodi

  

1. Repository Datei erstellen.

sudo echo 'deb http://pipplware.pplware.pt/pipplware/dists/jessie/main/binary /' | sudo tee --append /etc/apt/sources.list.d/pipplware.list

2. Repository Schlüssel hinzufügen.

wget -O - http://pipplware.pplware.pt/pipplware/key.asc | sudo apt-key add - 

3. Die Quellen updaten und System-Upgrade durchführen.

sudo apt update && sudo apt full-upgrade

An dieser Stelle eine kleine ANMERKUNG: Für RetroPie gilt die Installation von RetroPie-Setup aus, anschließend ES neustarten und unter Ports kann dann Kodi gestartet werden.

4. Kodi 17.4 installieren.

sudo apt install kodi

Have Fun!

Teilen:


Was früher in Spielhallen zuhauf stand und unser Geld verschlang, ist heute im heimischen Wohnzimmer neu eingezogen. Die Idee ist nicht neu und hat schon viele Leute zum Basteln bewegt. Dennoch wollt ich das Feeling selbst erleben einem „alten“ Arcade Automaten neues Leben einzuhauchen. Im Grunde genommen wurde er komplett neu gebaut. Mit den heutigen Möglichkeiten ist es schon einfacher als wie vor 15 Jahren das Ganze zu realisieren.

Der Automatenkörper ist nach dem Vorbild eines Starcade Bartop von Galactic, mit kleinen Veränderungen an der Steuerungspanel und Steuerungspanelfront gefertigt worden. An der Frontseite verzichtete ich auf einige Taster und setzte stattdessen ein 16×2 LCD Display zur Temperaturüberwachung, plus einen Ein und Ausschalter für das System ein.

Das Herzstück und ausführende Organ des Bartop Automaten ist ein Raspberry Pi 3 Model B mit einem Controlblock Zusatzmodul für die Arcade-Taster und Joysticks, welches den Genuss der klassischen Spiele zum Leben erweckt. Ein Miniverstärker, der direkt an dem HDMI-Ausgang des Raspberry Pi hängt, sorgt für einen klaren Sound. Coolness bewahren im inneren des Automatenkörpers 2 80x80mm große Lüfter auf der Rückseite, neben dem Hauptschalter. Für eventuelle Wartungsarbeiten am System selbst ist zusätzlich eine USB-Buchse montiert worden.

Materialliste

Zum Projektaufbau gibt es noch eine Galerie, diese könnt ihr hierüber erreichen.

Ich bin stolz auf die Erfahrungen, die ich beim Bau gesammelt habe. Sie waren sehr lehrreich und es haben sich viele neue Erkenntnisse aufgetan. Und dennoch wird es eine explizite Bauanleitung von meiner Seite aus nicht geben! Dies hat folgende Gründe: Ich will niemandem den Spaß und die Freude, es mit eigenen Ideen zu verwirklichen, nehmen. Das Nachbauen nach Anleitung verdirbt einem nur die Lust am ganzen Projekt. Lediglich Tipps und Anregungen sind mit diesem Beitrag, hoffentlich ausreichend, geliefert.

Teilen:


Viele nutzen ein Netzteil mit einen Kippschalter dran, diese sind sehr unpraktisch zum richtigen Runterfahren des Systems. Sie trennen die Stromzufuhr und nach bedarf kann man damit wieder einschalten. Das ist das selbe wie jedes mal den Stecker zu ziehen und wieder einzustecken, sprich Sinnentfremdet wie ich finde. Dabei bietet das Raspberry Pi viele Möglichkeiten, Bastlerische Freiheit. Über die GPIO-Pins kann man viele Dinge steuern, so auch einen Powerswitch zum Ein -und Ausschalten. Dieser setzt sich auch zwei Kabeln und einen Taster (Druckschalter – momentan, Kippschalter oder Permanentschalter – rastend) zusammen. Man kann dazu noch eine LED hinzufügen damit man sieht das dieses Gerät auch Tatsächlich läuft. Wir benötigen also zwei Kabel, rot für die GPIO Verbindung und schwarz die Masse (GND) und einen einfachen Drucktaster. Angeschlossen wird das rote Kabel an den PIN 5 (GPIO 03) und schwarz an PIN 9 (GND).

Konfiguaration

Console/Terminal

sudo apt-get update; sudo apt-get dist-upgrade
sudo apt-get install python-dev python3-dev gcc python-pip

wget https://pypi.python.org/packages/e2/58/6e1b775606da6439fa3fd1550e7f714ac62aa75e162eed29dbec684ecb3e/RPi.GPIO-0.6.3.tar.gz

sudo tar -zxvf RPi.GPIO-0.6.3.tar.gz
cd RPi.GPIO-0.6.3
sudo python setup.py install
sudo python3 setup.py install

im Homeverzeichnis die Datei powerswitch.py mit folgenden Inhalt erstellen

#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import subprocess

GPIO.setmode(GPIO.BOARD)  
GPIO.setup(5, GPIO.IN, pull_up_down = GPIO.PUD_UP)  

oldButtonState1 = True

while True:
    buttonState1 = GPIO.input(5)

    if buttonState1 != oldButtonState1 and buttonState1 == False:
      subprocess.call("shutdown -h now", shell=True, 
        stdout=subprocess.PIPE, stderr=subprocess.PIPE)
      oldButtonState1 = buttonState1

    time.sleep(.1)

dann die Datei ausführbar machen

chmod +x powerswitch.py

nun soll dieser Pythonscript auch beim starten geladen werden

sudo nano /etc/rc.local

...
python /home/pi/powerswitch.py &
exit 0

Ganz wichtig ist das der python Befehl vor dem “exit 0 kommt”.

Nun muss noch in der config.txt und den Eintrag dtparam=i2c_arm=off suchen und abändern in

dtparam=i2c_arm=on

dann ein reboot und der Powerswitch sollte funktionieren.

Die LED ist etwas einfacher, die kommt nur an den PIN 8 (GPIO 14) und PIN 39 (GND).

Das wars.

Teilen:


Wer die alten MSDOS Spiele geliebt hat und diese ohne Tastatur und Maus, direkt mit den Gamepad spielen will, muss zwangsweise den Controller mappen. Ich für meinen Teil möchte in meinem RetroBartop Automaten sehr gerne MSDOS Spiele mit bei haben. Zunächst dachte ich das man bei DOSBOX nur mit Tastatur und Maus arbeiten kann, doch nach dem recherchieren bin ich auf den DOSBOX Startparameter -startmapper gestoßen. Da ich RetroPie verwende nehme ich das gleich als Basis für diese Anleitung. Die DOSBOX kann über das RetroPie-Setup, unter “P Manage packages” -> “opt Manage optional packages” -> “112 dosbox” installiert werden. Oder manuell direkt aus der Console mit “sudo apt install dosbox”.

Um das Mapping auszulösen muss dosbox manuell mit der Option -startmapper gestartet werden.

pi@retropie:~ $ cd /opt/retropie/emulators/dosbox/bin/
pi@retropie:/opt/retropie/emulators/dosbox/bin $ ./dosbox -startmapper

1. Taste auf der vituellen Tastatur auswählen.
2. “Add” klicken um eine neue Tastenbelegung hinzuzufügen.
3. Am Gamepad/Controller die Taste drücken die damit belegt werden soll.
4. Auf “Save” klicken für Speicherung.
5. Wiederhole das bis Belegung komplett ist.
6. Klicke “Exit” zum Beenden.

Ich verwende einen SNES Controller und habe mir das folgendermaßen gemappt.

Wenn das Mapping nicht auf dem Endgerät statt gefunden hat so muss die mapper-SVN.map noch auf das Zielgerät kopiert werden. Sollte die .map Datei auch nicht mapper-SVN.map heißen so sollte man diese erst einmal umbenennen.

Verzeichnis-Struktur:

Win7/8 : {system drive}:\Users\{username}\AppData\Local\DOSBox\
Linux: ~/.dosbox
Mac: ~/Library/Preferences/DOSBox 0.73 Preferences

Teilen:

Da es im Bus nach Hamburg und Rostock meistens etwas langweilig zu geht, dacht ich mir eine RetroPie zu machen die mir die Langweile vertreibt. Im Prinzip ist es ganz einfach, man findet im Netz ja sehr viele Anleitungen dazu, ich möchte euch dennoch meine Variante zeigen.

Benötigt werden:

– 1x Raspberry Pi 3 Model B
– 1x 5V, 3A Netzteil Adapter
– 1x Powerbank 10000 mAh
– 1x USB-A-Stecker auf Micro-USB-B-Stecker mit Schalter
– 1x 7″ Zoll Touch Display
– 1x Rahmen von Eleduino
– 1x 32GB microSD Karte
– 2x USB SNES Controller
– 1x RetroPie Image

microSD und RPI hab ich schonmal mit dem Rahmen zusammen gebaut, das sollte kein Thema darstellen. Das System für dir microSD habe ich hier geladen und mit dd auf die Karte gebracht.

Die Spiele dazu werden in das Verzeichnis “/home/pi/RetroPie/roms/” rein gepackt und sind bereits vorgegeben. Diese können entweder mit im Dateimanager oder mit scp auf der PI direkt gebracht werden.

pi@retropie:~ $ cd RetroPie/roms/
pi@retropie:~/RetroPie/roms $ ls
amstradcpc  atarilynx  gb       mame-libretro  msx     nes   pcengine  scummvm  snes
arcade      fba        gba      mame-mame4all  n64     ngp   ports     sega32x  vectrex
atari2600   fds        gbc      mastersystem   nds     ngpc  psp       segacd   zxspectrum
atari7800   gamegear   genesis  megadrive      neogeo  pc    psx       sg-1000
pi@retropie:~/RetroPie/roms $ 

Ich habe mir zusätzlich noch einen Script geschrieben, mit dem ich die Updates ganz einfach von der GUI durchführen kann. Das geht zwar auch über das RetroPie-Setup aber für den einen oder anderen umständlich, zumal es in der Vergangeheit zu Problemen und Fehlern dabei gekommen ist.

Das Akkupack / die Powerbank hält bis zu vier Stunden am Stück locker durch und reicht somit bis Rostock und Hamburg. In die andere Richtung bin ich damit noch nicht gefahren aber das sollte ähnlich sein und zur Not empfiehlt sich ein zweites Akkupack / Powerbank.

Teilen: