Ubuntu 12.10 „Quantal Quetzal“
Ubuntu 12.04 „Precise Pangolin“
Ubuntu 11.10 „Oneiric Ocelot“
bsnes
ist ein Emulator, der zunächst nur das Super Nintendo Entertainment System (kurz SNES) emulierte. Obwohl das Projekt im Vergleich zu den beiden ehemaligen Platzhirschen ZSNES und snes9x noch sehr jung ist, hat sich bsnes innerhalb kurzer Zeit zum Non plus ultra unter den SNES-Emulatoren gemausert. Dem Entwickler ist mittlerweile kein Spiel mehr bekannt, das nicht völlig fehlerfrei unter bsnes abläuft.
Seit einigen Versionen werden auch andere Nintendo-Konsolen und Handhelds unterstützt, darunter NES, Game Boy, Game Boy Color, Game Boy Advance und sogar Nintendo DS. Die Emulation dieser Systeme hat jedoch noch nicht das gleiche Niveau wie die des SNES.
Die akkurate Emulation wird einer extrem hohen Prozessorbelastung geschuldet, denn im Gegensatz zu seinen Artgenossen, emuliert bsnes ununterbrochen die komplette Hardware der Konsole. Die Genauigkeit der Emulation -und die damit einhergehende Prozessorbelastung- kann zwar durch die Wahl verschiedener Profile etwas herabgesetzt werden (siehe Kompilieren), trotzdem sollte der Prozessor bzw. dessen Kerne einen Takt im Bereich 2Ghz aufweisen (bsnes arbeitet nicht parallelisiert).
![]() |
GB-Flyer ![]() |
Seit Ubuntu 12.04 Precise Pangolin findet sich bsnes in den Paketquellen- ist für 64-Bit-Systeme sogar der einzige, noch verfügbare SNES-Emulator. Wie einige seiner Derivate, unterstützt auch bsnes OpenGL für die Hardwarebeschleunigung über die Grafikkarte, diese fällt jedoch wegen der hohen Prozessorbelastung deutlich mehr ins Gewicht als bei anderen Emulatoren. Es sollte also ein geeigneter Grafikkarten-Treiber installiert sein.
bsnes kann über die Paketverwaltung installiert [1] werden:
bsnes (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install bsnes
sudo aptitude install bsnes
Das Paket verwendet standardmäßig das "compatibility"-Profil, das im allgemeinen zum Spielen empfohlen wird. Das "accuracy"-Profil beansprucht deutlich mehr Rechenleistung und der Unterschied ist nur in weniger als einer Handvoll von Spielen bemerkbar. Der eigentliche Zweck des "accuracy"-Profils ist es, die Funktionsweise der Spielkonsole möglichst genau zu dokumentieren. Mit folgendem Befehl kann das Profil im Nachhinein geändert werden:
sudo update-alternatives --config bsnes-bin
Für eine Übersicht der verfügbaren Profile siehe Kompilieren
Folgende Abhängigkeiten sind aus den Paketquellen zu installieren:
build-essential
libgtk2.0-dev
libsdl1.2-dev
libpulse-dev
libopenal-dev
libao-dev
libxv-dev
mit apturl
Paketliste zum Kopieren:
sudo apt-get install build-essential libgtk2.0-dev libsdl1.2-dev libpulse-dev libopenal-dev libao-dev libxv-dev
sudo aptitude install build-essential libgtk2.0-dev libsdl1.2-dev libpulse-dev libopenal-dev libao-dev libxv-dev
Als nächstes wird das bsnes-Archiv von der Projektseite heruntergeladen und entpackt [2]. Nun muss man sich für ein Profil entscheiden. Folgende stehen zur Auswahl:
Profile | |
Profil | Beschreibung |
accuracy | Höchste Genauigkeit mit hoher Prozessorbelastung (mindestens 2Ghz nötig) |
compatibility | Guter Kompromiss zwischen Genauigkeit und Geschwindigkeit (ca. 1,5Ghz nötig) |
performance | Geringe Genauigkeit und dadurch sehr fehleranfällig. Entwickler rät von Benutzung ab. |
Nun wird in einem Terminal [3] in den Ordner bsnes gewechselt. Hier wird das Programm kompiliert und installiert [4], wobei kein configure-Skript ausgeführt werden muss. Zum Kompilieren wird der Befehl
make compiler=gcc phoenix=gtk profile=PROFIL-NAME
verwendet, wobei das gewünschte Profil einzusetzen ist.
Nach der Installation kann bsnes über den Eintrag im "Spiele"-Menü gestartet werden. Über den Menüeintrag "System -> Load Cartridge..." werden ROMs geladen.
Die allermeisten ROMs müssen für bsnes zuerst aufbereitet werden bevor sie geladen werden können. Siehe dazu bsnes-purify / Snespurify
Der Vollbildmodus wird mit F11 de-/aktiviert.
Die Tasten der Tastatur werden wie folgt den SNES-Tasten zugeordnet:
Steuerung | |||
Taste | SNES-Taste | Taste | SNES-Taste |
← , ↑ , → , ↓ | links, hoch, rechts, runter | ||
S | X | X | A |
A | Y | Z | B |
D | L | C | R |
⏎ | Start | # | Select |
Die Konfiguration kann im Menü "Settings" vorgenommen werden. Die Tastatur- bzw. Gamepadbelegung wird unter "Input Settings..." eingestellt.
Ein häufiger auftretendes Problem, ist ein Knacken im Ton und/oder ein zerreißendes Bild (tearing), besonders wenn das accuracy-Profil benutzt wird. Ist man sich sicher, dass genügend Rechenkraft zur Verfügung steht, liegt es meist an einer schlechten Balance zwischen der Audio-Abtastrate und der Bildwiederholfrequenz vom Monitor. Leider kann das Problem nur durch herumprobieren gelöst werden:
Im Hauptfenster unter Settings finden sich die Punkte Synchronize Video und Synchronize Audio; Bei mindestens(!) einem von beiden muss der Haken entfernt werden, da die automatische Regelung ja eh nicht richtig funktioniert. Anschließend wird mit Settings/Configuration zu den Einstellungen gewechselt; Unter dem linken Punkt Audio finden sich die Regler womit die angesprochene Balance von Hand ausgependelt werden kann. In neueren Versionen von bsnes gibt es mehrere Regler, nämlich Einen für jedes unterstützte System. Während einige Regler klar benannt sind (GB=Game Boy / NES etc.) versteckt sich das SNES hinter der Bezeichnung "SPC". Der jeweilige Regler befindet sich in der Mitte. Dieser sollte während er laufenden Emulation nun stückweise und in kleinen Schritten nach links verschoben werden wenn es eher Problemen dem Ton gibt, und nach rechts bei Bildproblemen. Wichtig ist, dass man nach jedem Verschieben erst einige Sekunden abwartet und sich die Emulation anschaut/anhört.
Hilft dies nicht, sollte man die Haken bei den automatischen Synchronisierungen (Settings im Hauptfenster) anders setzen und es nochmal probieren. Auch könnte es helfen, in den Einstellungen unter dem Punkt Advanced die Option Disable window compositor auf Always zu setzen.
![]() |
Ältere Version von Snespurify mit grafischer Oberfläche |
Die Geräte, mit denen Spiele von ihren Steckmodulen auf den PC überspielt werden, benutzen kein einheitliches Dateiformat. Obendrein müllen sie die ROMs mit unnützen Metadaten voll. Der Entwickler von bsnes hat diesem Durcheinander den Kampf angesagt , indem der Emulator sich konsequent weigert, derartige ROMs zu laden. Die Dateien müssen daher zunächst für bsnes aufbereitet werden. Hierzu dient das Programm
Snespurify
, welches bei einer Installation aus den Paketquellen bereits mitgeliefert wird, allerdings unter dem Namen bsnes-purify
vorliegt. In älteren Versionen wurden die ROMs in das Format *.sfc
umgewandelt; Seit einiger Zeit extrahiert das Programm den Inhalt der Dateien.
Die neuste Version von Snespurify wird über die Kommandozeile bedient. Der Befehl lautet:
bsnes-purify output PFAD/ZU/ALTEN/ROMS/ PFAD/ZU/NEUEN/ROMS/
Anschließend wurde für jedes ROM ein eigener Ordner angelegt, in welchem sich immer zwei Dateien mit den Endungen *.rom
und *.xml
befinden. Diese Ordner können nun unter bsnes gewählt- und die enthaltenen Spiele gestartet werden.
Vorausgesetzt, die zum Kompilieren von bsnes benötigten Abhängigkeiten sind bereits installiert, wechselt man in einem Terminal in den Ordner snespurify und führt
./cc-gtk.sh
oder
./cc-qt.sh
aus, um snespurify mit GTK+ oder Qt als Toolkit zu kompilieren. Nun kann man snespurify im gleichen Ordner mit
./snespurify-qt
starten.
Beim Verarbeiten der ROMs friert das Fenster von snespurify ein. Bei größeren Sammlungen dauert dieser Zustand entsprechend länger. Danach sollte es wieder reagieren.
Mit "Browse..." wird ein Ordner ausgewählt, der dann mit "Scan" nach zu korrigierenden SNES-ROMs durchsucht wird. Danach wird per Häkchen gewählt, welche Probleme behoben werden sollen, per Druck auf "Correct" werden die gewählten Aufgaben durchgeführt.