Ergebnis 1 bis 15 von 15

Thema: [Tutorial] Der RM2k(3) unter Linux

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    [Tutorial] Der RM2k(3) unter Linux

    Einleitung

    Mir ist bekannt, dass es bereits eine Hand voll Tutorials zum Thema "Wie bringe ich den Maker unter Linux zum Laufen" gab. Eines davon ist zum Beispiel dieses von dukey: http://www.multimediaxis.de/showthread.php?t=102219
    Eines haben jedoch alle diese Tutorials gemeinsam: Der Eventlayer läuft nur sehr langsam. Auf kleinen Maps mag das ein geringes Problem sein, bei größeren dauert das Scrollen jedoch teils ewig.
    Ein weiterer Punkt, der selten Angesprochen wird, ist die MIDI- und somit die Hintergrundmusik-Ausgabe. Nur selten muss man nichts konfigurieren, damit sie funktioniert.

    Beide Probleme werde ich in diesem Tutorial behandeln. Dennoch gibt es zur Zeit einige wenige Bugs, welche weiter unten beschrieben sind.

    Für eine Liste lauffähiger Patches, siehe unten.

    Für dieses Tutorial solltet ihr bereits eine gewisse Ahnung von Linux haben. Ich richte mich zwar weitestgehend an Einsteiger, aber wie die Befehle "cd" und "ls" bzw. "dir" funktionieren, sowie wie man Packte nachinstalliert sollte bekannt sein.


    Lauffähige Patches
    - Destinypatch (sofort)
    - MP3-/Key-Patch von Ineluki (Anleitung unten)


    Benötigte Pakete

    Ich bin nicht ganz sicher, welche Pakete gebraucht werden. Die folgenden Pakete sind definitiv benötigt, aber es kann sein, dass die Liste nicht vollständig ist. Solltet ihr in irgendeinem Schritt eine Fehlermeldung erhalten, dass etwas fehlt, schaut nach, ob ihr ein gleichnamiges oder zumindest ähnlich klingendes Paket findet, dass ihr installieren könnt. Sollte das den Fehler nicht beheben, könnt ihr auch noch Google fragen, zu welchem Paket die fehlende Datei gehört.

    Definitiv benötigt werden:

    1) Zum Kompilieren
    autoconf
    gcc
    make
    patch

    2) Für Wine
    flex
    bison
    libx11-dev
    libasound2-dev
    libfreetype6-dev
    fontforge

    3) Für den MIDI-Support
    timidity
    pmidi


    Wine installieren

    Dieser Schritt ist derjenige, der zu einem schnellen Eventlayer führt. Während andere Tutorials einfach ein Wine-Paket installieren und dieses nutzen, müssen wir Wine aus dem Quellencode selbst erzeugen. Der Unterschied zu einem fertigem Wine-Paket besteht darin, dass wir den Quellencode noch modifizieren werden: Wir installieren eine sog. DIB-Engine! (http://wiki.winehq.org/DIBEngine)
    Bitte fragt mich nicht, was genau diese Engine tut. Das ich sie ausprobiert habe, war ein Glückstreffer. Ich weiß, sie hat etwas damit zu tun, wie Fenster dargestellt werden, bzw. mit dem Zugriff auf sie, wenn etwas dargestelltes verändert wird, mehr kann ich dazu aber auch nicht sagen.

    Als erstes werfen wir einen Blick auf http://bugs.winehq.org/show_bug.cgi?id=421. Ihr findet dort eine Liste mit Anhängen (attachments), zunächst solltet ihr die veralteten ausblenden (Hide Obsolete). Nun sucht, von unten ausgehend, eine möglichst aktuelle Version der DIB-Engine. Die Datei wird wahrscheinlich "DIB-Engine Fix" oder "DIB Patch" oder ähnlich heißen. Downloadet also eine möglichst aktuelle Version und entpackt sie nach "/home/BENUTZERNAME/dibpatch". Prägt euch im Patchnamen enthaltene Wine-Version ein, denn als nächstes downloaden wir eben diese.
    Geht dazu auf http://sourceforge.net/projects/wine/files/Source/ . Sucht nun im Ordner "Source" nach der Wine-Version, die zu eurer DIB-Engine passt. Ihr könnt alternativ sogar die neuste Wine-Version ausprobieren, auch wenn sie eine höhere Versionsnummer hat. Mit etwas Glück funktioniert der Patch trotzdem. Entpackt nun Wine nach "/home/BENUTZERNAME/winesource".

    Nun haben wir den Sourcecode, den wir brauchen. Als nächstes installiert die o.g. Pakete nach, solltet ihr es noch nicht getan haben.

    Öffnet nun eine Konsole und navigiert via "cd /home/BENUTZERNAME/winesource" zum eurem Wine-Sourcecode. Öffnet nun zusätzlich in einem Texteditor die Datei "/home/BENUTZERNAME/dibpatch/series". In letzterer Datei findet sich die Reihenfolge, in dem die einzelnen Dateien des Patches auf den Wine-Code angewendet werden müssen. Die erste Kommentarzeile könnt ihr ignorieren.
    Schreibt nun vor jede Zeile, außer dem Kommentar, folgendes: "patch -p1 <", so ergibt sich z.B.: "patch -p1 < dib-engine-hook-the-engine-bet.patch". Kopiert die erste dieser Patchzeilen in eurer vorbereitete Konsole und führt den Befehl aus. So verfahrt ihr mit jeder Zeile. Ihr müsst hierbei die Reihenfolge der Patches beachten, sonst wird es nicht funktionieren.

    Habt ihr das Patchen fertiggestellt, könnt ihr die series-Datei schließen. Ihr braucht sie nicht speichern, wir benötigen sie nicht mehr.

    In der (hoffentlich noch offenen) Konsole (solltet ihr sie geschlossen haben, navigiert wieder in den winesource-Ordner) führt nun folgende Befehle aus nacheinander aus: "autoconf" und "./configure && make depend && make". Ersterer dürfte nicht allzu lange dauern, letzterer je nach System schon eine ganze Weile. Wurde der zweite Befehl erfolgreich beendet, so ist Wine fertig kompiliert. Ihr könnt es nun mit "sudo make install" (im winesource-Ordner ausgeführt) installieren. Ihr werdet hierbei nach dem root-/Administrator-Kennwort gefragt werden.

    Nun können wir das RunTimePacket und den Maker selbst installieren. Ich gehe davon aus, ihr hab Setups für beides in "/home/BENUTZERNAME/maker" liegen, das RTP nennt sich "rtp_setup.exe" und der Maker "rm_setup.exe". Navigiert eure Konsole also nach "/home/BENUTZERNAME/maker" und führt "wine rtp_setup.exe" aus. Solltet ihr gerade zum ersten mal Wine startet, wird es einige Konfigurationen ausführen, bevor es das Setup öffnet. Klickt euch einfach durch das Setup, ihr müsst nichts beachten. Einzig interessant ist, wo sich Laufwerk C: tatsächlich befindet: "/home/BENUTZERNAME/.wine/drive_c". ".wine" ist ein versteckter Ordner, denn ihr daher wohl möglich nicht ohne weiteres sehen könnt. Müsst ihr also Datein per Hand ändern, so müsst ihr euch darüber informieren, wie ihr versteckte Ordner einblendet. (Dies ist von System zu System unterschiedlich. Bei mir im OpenSUSE 11.2 mit Gnome und Nautilus klicke in im Nautilus auf "Ansicht-> verborgene Dateien anzeigen")
    Ist das RTP installiert, startet das Setup des Makers mit "wine rm_setup.exe". Auch hier ist eigentlich nichts zu beachten. Ich werde im folgenden davon ausgehen, dass der Maker nach "C:/Programme/ASCII/RPG200X/" installiert wurde und die exe-Datei, die in diesem Verzeichnis liegt "rpg200X.exe" heißt.

    Um den Maker zu starten, müssen wir Wine darauf hinweisen, dass wir die neue DIB-Engine, die wir durch die Patches eingebaut haben, auch nutzen wollen. Außerdem hätten wir ja gerne eine "Verknüpfung", um den Maker zu starten. Legt also an einem beliebigen Ort eine neue Datei an und öffnet sie mit einem Text-Editor. Mit dieser Datei werden wir später den Maker starten können. Achtet darauf, die Datei mit einem reinen Texteditor zu öffnen, nicht mit einem Office-System. Tragt nun folgende Zeilen in die Datei ein:

    Code:
    #!/bin/bash
    WINEDIB=ON wine /home/BENUTZERNAME/.wine/drive_c/Programme/ASCII/RPG200X/rpg200X.exe
    Die Zeile mit #! muss die erste in der Datei sein, die Raute (#) das erste Zeichen, sonst funktioniert die Datei wohl möglich nicht. Navigiert nun eine Konsole an diesen Ort und führt "sudo chmod uga+x DATEINAME" aus, wobei DATEINAME der Name euer frisch angelegten Datei ist. Ihr solltet sie nun mit einem Doppelklick ausführen können und siehe da: Der Maker startet. Und im Gegensatz zur Variante ohne die DIB-Engine ist auch der Eventlayer so flott, wie unter Windows, egal wie viele Events die Map hat.


    MIDI-Support

    Um die MIDI-Unterstützung zu aktivieren und somit Musik in den Spielen zu haben, müsst ihr zunächst einmal timidity installieren. Ladet euch einfach das entsprechende Paket herunter.
    Also nächstes startet den Befehl "timidity -iA". Merkt ihn euch gut, denn ihr müsst ihn nach jedem Reboot einmalig ausführen, um die MIDI-Unterstützung zu aktivieren. Ich tüftel noch an einem vernünftigen Autostart. Alles, was ich bisher versuchte, funktionierte wenn überhaupt dann nicht mit Wine bzw. dem Maker.

    Führt nun pmidi -l aus. Ihr erhaltet eine Liste mit Verfügbaren MIDI-Ports. Sucht euch den ersten Timidity-Port aus, meistens ist es 128:0.
    Als nächstes gebt "wine regedit" ein. Sucht nun den Ordner "HKEY_CURRENT_USER/Software/Wine/ALSA". Ist er nicht vorhanden, legt ihn mit einem Rechtsklick->Neu->Schlüssel auf den Wine-Ornder an. Im rechten Teilfenster fügt ihr nun zwei neue Zeichenketten ein. Die eine soll "MidiPort" heißen. Der Wert ist der Port, den ihr eben herausgefunden habt, oft also "128:0". Die zweite Zeichenkette heißt "PlaybackDevice" und hat den Wert "default". Kontrolliert noch, ob im Ornder "HKEY_CURRENT_USER/Software/Wine/Drivers" eine Zeichenkette "audio" existiert, die den Wert "alsa" enthält. Existieren Ordner oder Zeichenkette nicht, legt beides an. In diesem Fall ist der Wert von "audio" einfach "alsa". Existiert "audio" zwar, aber "alsa" ist nicht im Wert enthalten, so hängt ihr an den Wert von audio einfach ",alsa" ran. Ihr könnt regedit nun verlassen.

    Damit die MIDIs nun auch nach etwas klingen, braucht ihr ein sog. Soundfont für Timidity. Ich nutze FluidR3GM. Ihr könnt es hier downloaden: http://www.hammersound.net/cgi-bin/s...=Download%20It
    Entpackt es nach "/home/BENUTZERNAME/timidity_temp". Downloadet auch sfarkxtc, z.B. von hier: http://melodymachine.com/files/sfarkxtc_lx86.tar.gz
    Entpackt auch dies nach "/home/BENUTZERNAME/timidity_temp". Navigiert nun eine Konsole in genau diesen Ordner und führt "sfarkxtc "FluidR3 GM.sfArk"" sowie "mv "FluidR3 GM.SF2" FluidR3GM.SF2" aus. Führt "sudo chmod -R a+w /usr/share/timidity" aus, damit ihr in jenen Ordner schreiben könnt und kopiert nun "FluidR3GM.SF2" nach "/usr/share/timidity".
    Öffnet nun timidity.cfg in einem Texteditor und fügt folgende Zeile ganz unten hinzu: "soundfont /usr/share/timidity/FluidR3GM.SF2"

    Startet jetzt ein Makerspiel und euer MIDI-Sound sollte funktionieren.

    [EDIT:] Ich habe gerade entdeckt, dass MorDen ein Tutorial zu Timidity unter Windows gepostet hat: http://www.multimediaxis.de/showthread.php?t=126440
    Er verlinkt dort einige andere Soundfonts. Allgemein könnten das Tutorial bei Problemen mit dem MIDI-Sound evtl. hilfreich sein.
    [EDIT2:] Wer einen Windows-ähnlichen Klag der Midis bevorzugt, sollte folgenden Soundfont ausprobieren: http://soundfonts.homemusician.net/c...vas_tuned.html


    Der MP3-/Key-Patch von Ineluki

    Während die Tasten- und (hoffentlich) Mausfunktionen (letztes noch ungetestet) des Key-Patches sofort funktionieren, ist für die MP3-Wiedergabe-Funktion etwas Arbeit nötig.

    Also erstes brauchen wir eine Konsole im frisch angelegten Ordner "/home/BENUTZERNAME/winetricks". Führt mit dieser nun "wget http://www.kegel.com/wine/winetricks" aus. Dies Downloadet das Tool winetricks, mit dem ihr verschiedene Windowsanwendungen in Wine installieren könnt.

    Für den MP3-Patch setzt einen Harken bei "directx9" und installiert es.

    Nach der Installation gebt auf der Konsole "winecfg" ein. Im sich öffnenden Fenster klick auf "Standarteinstellungen" (sollte der Maker in der Liste sein, so verwendet ihn nicht! Es funktioniert dann nicht. Die folgenden Änderung muss in den Standarteinstellungen passieren.) und klickt auf Bibliotheken. Im Feld "Neue Überschreibung für" gebt "mciqtz32" ein und klickt auf hinzufügen. Es wird unten in der Liste hinzugefügt. Um sicher zu stellen, dass die Überschreibung immer genutzt wird, klickt auf "mciqtz32" in der Liste unten, klickt dann auf "Bearbeiten" und wählt "Native (Windows)" aus. Verlasst mit einem Klick auf Okay dieses Konfigurationsmenü.

    Nun ist möglicherweise eine weiter Änderung notwendig: Öffnet "/home/BENUTZERNAME/.wine/drive_c/windows/system.ini" in einem Texteditor. Ist unter [mci] kein Eintrag "mciqtz32=mciqtz32.dll", so ergänzt ihn. Speichert die Datei und der MP3-Patch bzw. die MP3-Funktion des Keypatches sollte verfügbar sein.


    Bekannte Bugs

    Mir sind derzeit zwei Bugs bekannt:

    1) Das Maker-Fenster taucht zweimal in der Taskleiste auf.
    Solltet ihr feststellen, dass ihr plötzlich zwei Makerfenster in der Taskleiste angezeigt bekommt, obwohl ihr kein Unterfenster (z.B. die Database) offen habt, solltet ihr euer Projekt speichern und den Maker neu starten. Tut ihr dies nicht, hängt sich der Maker auf, sobald ihr versucht ein Unterfenster zu öffnen.
    Ich weiß nicht, was diesen Bug verursacht. Eventuell wird er in einer zukünftigen Wine-Version gefixt, vielleicht nicht. Ich bin nicht einmal sicher, ob er überhaupt ein Bug im Wine ist. Der Fehler ist bei mir bisher nur 3 mal vorgekommen, alle 3 male in der allerersten Stunde, in der der Maker bei mir lief. Es ist allso möglich, dass es an Inkompatibilität zu einem anderen Programm lag und der Fehler nie mehr auftaucht.

    2) Falsche Schrift in Testspielen
    Dieser Fehler wird durch die DIB-Engine erzeugt. Er taucht nur dann auf, wenn ihr ein spiel mit "WINEDIB=ON wine SPIEL.exe" startet. Da der Maker mit diesen Einstellungen gestartet wird, wird sie auf Testspiele übertragen.,Startet ihr stattdessen das Spiel ohne den Maker mit dem Befehl "wine SPIEL.exe" (also ohne "WINEDIB=ON" oder sogar mit "WINEDIB=OFF"), so wird die Schrift richtig dargestellt.
    Die Chance ist groß, dass dieser Bug in Kürze durch ein Update der DIB-Engine behoben wird.


    Schlusswort

    Ich hoffe, dass es zumindest ein paar Leute gibt, die mit diesem Tutorial etwas anfangen könne. Soweit ich weiß, bin ich der erste in deutsch- und englischsprachigem Raum, der einen schnell laufenden Eventlayer unter Linux benutzt oder zumindest der erste, der sich dazu äußert, wie man ihn erhält. Das MIDI-Tutorial scheint in einigen Versionen von Wine unnötig zu sein, da einige Leute berichten, dass bei ihnen MIDIs sofort funktionierten, trotzdem scheine ich auch hier der erste zu sein, der ein Tutorial dazu veröffentlicht.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •