seeseekey.net - Invictus Deus Ex Machina

Emulatoren für die unterschiedlichsten Systeme gibt es wie Sand am Meer. Meist folgen die Emulatoren dabei der Maxime — ein Emulator für eine Plattform. Das bedeutet natürlich auch, das man mehrere Applikationen pflegen muss und nicht alles unter einer Haube zur Verfügung steht. Unter Mac OS X kann man dieses Problem nun mittels OpenEmu beheben.

Die Nutzeroberfläche von OpenEmu

Dabei handelt es sich um einen Emulator, welcher unterschiedliche Systeme wie NES, SNES, GameBoy, Sega Genesis und viele andere unterstützt. OpenEmu ist dabei freie Software und unter der GPL2 lizenziert. Bezogen werden kann OpenEmu auf der offiziellen Webseite. Der Quelltext für OpenEmu, das SDK und die entsprechenden Cores sind auf GitHub zu finden.

Den Raspberry Pi kann auf vielfältige Weise genutzt werden. Meist möchte man für einen Test nicht gleich die Hardware rauskramen, sondern stattdessen das ganze erst einmal im Emulator ausprobieren. Die entsprechende ARM-Architektur lässt sich ohne Probleme mittels QEMU emulieren, allerdings ist die Konfiguration eines Raspberry Pi etwas anspruchsvoller.

Die Emulation mittels QEMU

Einfacher wird es durch das Projekt „Raspberry Pi emulation for Windows“ welches auf SourceForge zu finden ist. Das Projekt stellt eine knapp 550 MiB große Zusammenstellung bereit, in welcher eine komplette Raspberry Pi Emulation zu finden ist. Das Paket muss nur entpackt werden, anschließend kann der Raspberry Pi Emulator durch Start der „run.bat“ ausgeführt werden.

Wer schon immer das tiefe und unerklärliche Bedürfnis hatte, Windows in der ersten Version auszuprobieren, der kann dies nun tun. Möglich wird dies mit der Webseite jsmachines.net. Das ganze basiert dabei auf dem unter GPL stehenden PCjs. Dabei handelt es sich um einen IBM PC Emulator, welcher in Javascript geschrieben ist. Der Quelltext soll später auf GitHub zur Verfügung stehen.

Der Windows 1 Emulator in Aktion

Die Windows-Emulation ist neben einigen anderen Emulationen (unter anderem Zork I und DONKEY.BAS) auf der Webseite zu finden.

Seid einiger Zeit wird von Mojang das Spiel „0x10c“ entwickelt. Dort befindet man sich am Ende der Zeit in einem Universum und ist mit einem Raumschiff ausgerüstet welches eine CPU vom Typ „DCPU-16″ besitzt. Diese CPU wird in einem entsprechenden Assembler programmiert und vom Spiel simuliert.

Mittlerweile gibt es auch schon Betriebssysteme für diese CPU, wie „Atlas 2″ welches unter der MIT Lizenz steht. Das System soll dabei Paging, Speichermanagment, ein Dateisystem, Multitasking und mehrere Nutzer unterstützen. Anschauen kann man sich den Quelltext https://github.com/0x10cAtlas. Neben dem Quelltext gibt es dazu auch eine Wiki. Wer die CPU selber ausprobieren möchte, kann dies unter http://dcpu.ru/ tun.

Weitere Informationen gibt es unter:
http://en.wikipedia.org/wiki/0x10c

Es ist doch immer wieder erstaunlich was im Browser mittels Javascript alles möglich ist. Zum Beispiel ein vollständiger GameBoy Color Emulator. Zu finden ist dieser unter http://www.grantgalitz.org/gameboy/. Das ganze ist dabei Open Source wobei der Quelltext unter https://github.com/grantgalitz/GameBoy-Online verfügbar ist.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Gameboy

Bei VICE handelt es sich um einen Emulator für verschiedene Commodore Rechner wie z.B. den Commodore 64 oder den Commodore 128. VICE kann dabei mittels

sudo apt-get install vice

installiert werden. Bei Ubuntu werden die ROMs für die jeweiligen Rechner allerdings nicht mitgeliefert (das Copyright hält die niederländische Firma Tulip) so das diese manuell hinzugefügt werden müssen. Dazu lädt man sich von der offiziellen VICE Seite unter http://viceteam.org/ die Windows Version herunter und entpackt diese. Die Ordner welche sich in diesem Archiv befinden werden dabei in den Ordner /usr/lib/vice kopiert. Anschließend startet VICE ohne Probleme :)

Weitere Informationen gibt es unter:
http://wiki.ubuntuusers.de/VICE
http://de.wikipedia.org/wiki/VICE
http://www.c64-wiki.de/index.php/VICE
http://de.wikipedia.org/wiki/Commodore_64

Bei AndEngine handelt es sich um eine Gameengine für Androidgeräte. Die Apps für diese Plattform werden ja bekanntlich in Java geschrieben. Und darum soll es hier auch gehen. Im ersten Schritt wird Eclipse aufgesetzt und anschließend nehmen wir die AndEngine in Betrieb. Im ersten Schritt muss also das Paket eclipse installiert werden. Danach sollte das Android SDK für Linux unter http://developer.android.com/sdk/index.html heruntergeladen werden und auf der Festplatte entpackt werden. Dann geht es in den Ordner tools des SDKs und dort wird dann

./android update sdk 

ausgeführt. Nun bestätigt man die Lizenz und installiert die verschiedenen SDK Versionen. Dies kann dabei einige Minuten dauern.

Nun kann man Eclipse starten. Beim ersten Start erscheint ein Begrüßungsbildschirm den man schließen kann. Danach sollte man unter Help -> Install new Software die Android Development Tools installieren. Dazu wird in dem sich öffnenden Dialog die URL http://dl-ssl.google.com/android/eclipse/ eingegeben und durch einen Druck auf den Add… Button hinzugefügt. Dann klicken wir die Checkbox Developer Tools an und betätigen die Installation mit dem Next… Button. Mittels eines Assistenten wird man nun durch die Installation geleitet. Nachdem die Installation beendet ist empfiehlt Eclipse einen Neustart der Umgebung. Diesem sollte Wunsch sollte man Folge leisten.

Nun benötigt Eclipse die Information wo das Android SDK sich auf der Festplatte befindet. Dazu geht man auf Window -> Preferences -> Android. Dort wählt man den Pfad des Android SDKs aus und bestätigt den Dialog mit OK.

Die grundlegende Konfigurationsarbeit ist damit geleistet. Nun kann mit dem ersten Projekt begonnen werden. Dazu gehen wir auf File -> New -> Project und wählen dort Android Project aus und klicken dann auf Next. In dem darauf folgenden Dialog geben wir dem Projekt einen Namen z.B. Hello World. Im Feld Package Name geben wir den Namen des Package an z.B. net.seeseekey.hello_world und bei Activity name z.B. FormMain und bei Application name z.B. Hello World und bestätigen das ganze mit dem Finish Button.

Danach wird automatisch das Grundgerüst für eine Android Applikation erzeugt. Sollte es beim Erzeugen der Anwendung der Fehler

Project ‚RuntimeAndroid‘ is missing required source folder ‚gen’
The project cannot be built until build errors are resolved 

auftreten so hilft es die R.java Datei zu löschen. Sie wird danach automatisch neu erzeugt. Wenn wir nun auf den grünen Play Knopf (Run) in der Symbolleiste klicken so startet Eclipse das Programm im Android Emulator. Beim ersten Start sollte allerdings ein Dialog erscheinen welcher einem anbietet ein virtuelles Gerät für den Emulator anzulegen. Nachdem dies geschehen ist, wird das Hello World Programm im Emulator geladen und ausgeführt. Und schon ist das erste Hello World Programm geschrieben und die Funktionsfähigkeit der IDE getestet.

Nun geht es an die AndEngine. Erst einmal holen wir uns den Sourcecodes mittels hg (Mercurial) auf die Festplatte:

hg clone https://andengine.googlecode.com/hg/ andengine
hg clone https://andengineexamples.googlecode.com/hg/ andengineexamples 

Anschließend importieren wir das andengineexamples Projekt (File -> Import…) in den Workspace. In dem Projekt AndEngineExamples sind dabei viele Beispiele zur Anwendung der Engine zu finden.

Nun nehmen wir unser bereits angelegtes Hello World Projekt und erzeugen in diesem (mittels New -> Folder) einen Ordner namens lib. In diesen kopieren wir die andengine.jar aus dem AndEngine Examples Projekt. Nun klicken wir mit der rechten Maustaste auf die andengine.jar und wählen dort Build Path -> Add To Build Path… aus. Damit ist die Bibliothek referenziert. Nun gehen wir in unsere Activity, in diesem Fall FormMain und löschen dort alles bis auf die packages Zeile. Nun fügen wir dort folgenden Quelltext ein:

public class FormMain extends BaseGameActivity {
	// Konstanten
	private static final int CAMERA_WIDTH = 720;
	private static final int CAMERA_HEIGHT = 480;

	// Variablen
	private Camera mCamera;

	@Override
	public Engine onLoadEngine() {
		this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
		return new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera));
	}

	@Override
	public void onLoadResources() {
	}

	@Override
	public Scene onLoadScene() {
		this.mEngine.registerUpdateHandler(new FPSLogger());

		final Scene scene = new Scene(1);
		scene.setBackground(new ColorBackground(0, 0, 0.8784f));

		return scene;
	}

	@Override
	public void onLoadComplete() {

	}
}

Anschließend werden mittels Strg + Shift + O alle benötigten Importe in die Datei eingefügt. Wichtig ist es jetzt noch dem Manifest folgende Zeile hinzuzufügen:

<uses-permission android:name="android.permission.WAKE_LOCK"/>

Nun kann man das ganze im Emulator starten. Es dürfte ein blauer Bildschirm angezeigt werden. Nun kann man sich damit beginnen das ganze mit Leben zu erfüllen :)

Weitere Informationen gibt es unter:
http://www.andengine.org/
http://code.google.com/p/andengine/
http://code.google.com/p/andengineexamples/
http://developer.android.com/sdk/installing.html
http://www.andengine.org/forums/tutorials/getting-started-updated-t2198.html
http://www.andengine.org/forums/tutorials/andengine-core-terminology-t316.html
http://www.andengine.org/forums/tutorials/getting-started-with-andengine-t11.html
http://www.andengine.org/forums/tutorials/eclipse-andengine-and-helloworld-t380.html
http://www.andengine.org/forums/tutorials/mimminito-s-tutorial-list-t417.html

Secret of Evermore ist ein Spiel für das SNES. Im Gegensatz zur Secret of Mana Reihe (welche einen Mehrspielermodus bot) besitzt Secret of Evermore keinen Mehrspielermodus. Wobei nun müsste es richtig heißen es besaß keinen Mehrspielermodus. Bei Secret of Evermore war es nämlich schon immer möglich beide Charaktere zu steuern. Der andere Charakter wurde dann von der KI übernommen. Nun hat sich jemand die Arbeit gemacht und einen Patch für Secret of Evermore erstellt welcher diesem einen Mehrspielermodus hinzufügt, so das man beide Figuren steuern kann. Zu finden ist dieser Patch unter http://fusoya.eludevisibility.org/soe/index.html. Viel Spaß beim ausprobieren :)

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Secret_of_Evermore