LEdit - Lufia ROM-Editor

PaD

Ritter
Mitglied seit
24.10.2006
Beiträge
26
Scheint so, als sei ich der erste hier in 2012. Also Frohes Neues! :kicher:

Wer ein gutes Gedächtnis hat, erinnert sich möglicherweise an mein Projekt namens "LEdit". Hierbei handelt es sich um einen Editor für den Lufia-ROM. Ziel ist es, möglichst viele Inhalte des Spiels verändern und ggf. hinzufügen zu können.

Es hat sich ewig nichts getan, was an den üblichen Faktoren liegt. Keine Zeit, keine Lust. Das Problem bisher: LEdit war von mir komplett verschlossen gehalten. Die Dinge haben sich geändert, ich bin mittlerweile eingefleischter Java-Entwickler. Man kommt so automatisch in den Genuss, mit mehr OpenSource-Libraries zu arbeiten, und daher habe ich mich entschieden, auch LEdit OpenSource zu halten. Da das alte Projekt in Visual Basic bzw. C# vorliegt, ist hier offensichtlich erstmal einige Übersetzungsarbeit notwendig, da ich in besagten Sprachen nicht mehr entwickeln möchte. Im Zuge dessen setze ich aber auf grundlegende Verbesserungen. Eine ist sicher, dass die Unterstützung für den englischen ROM sehr einfach einzubauen sein wird bzw. teilweise schon vorhanden ist.

Das Projekt ist erreichbar unter https://github.com/pdinklag/LEdit . Ich habe bereits eine erste Alpha dort hinterlegt, die zum herumspielen genutzt werden kann. Es ist zwar noch nicht ansatzweise in einem "fertigem" Stadium, aber ich würde mich auch jetzt schon über Kritik freuen.

Für LEdit wird offensichtlich Java (1.6 oder höher) benötigt. Ebenfalls wird der originale deutsche Lufia-ROM benötigt, welcher aus rechtlichen Gründen nicht Bestandteil der Software ist.

Das Vorgehen mit LEdit wird in etwa so ablaufen:
  • Erstelle ein neues Projekt über "Datei -> Projekt erstellen..."
  • Wähle Lufia 2 ROM aus (original deutsch, egal ob mit oder ohne Header)
  • Wähle Projektverzeichnis aus
  • Bearbeite Dinge
  • Speichere Projekt
  • Datei -> ROM generieren...

Man hat dann einen neuen ROM vorliegen, welcher die bearbeiteten Inhalte enthält und mit gängigen Emulatoren abspielbar ist. Der Vorteil dieser Vorgehensweise ist, dass ich nicht ständig einen ROM schreiben und wieder neu importieren muss, wie ich es damals gehalten habe. Stattdessen wird ein eigenes Format für Projekte verwendet. Selbst erstellte Inhalte sind so (legal) austauschbar und gleichzeitig aber auch vor "Diebstahl" in anderen Projekten geschützt, weil ein generierter ROM nicht wieder geladen werden kann.

Bisher können nur die grundlegenden Eigenschaften von Monstern bearbeitet werden, aber ich komme relativ schnell voran mit der Portierung, sodass in absehbarer Zeit auch der Map-Editor drin sein sollte. Ich bin mir gerade nichtmal sicher, wie viel davon jemals öffentlich war, aber Artemis wird dazu mehr sagen können. ;)

Wer es selbst kompilieren möchte benötigt zusätzlich die beiden Projekte "Base" und "SNES" von meinem github-Account.

Bin mal gespannt, wie viele noch übrig sind, die dies interessiert. :)
 

Biquinho

Fachteam "Spruch der Woche"
Mitglied seit
27.02.2009
Beiträge
1.378
Hmm wie formuliere ich das am besten...: LEdit <3

Natürlich ist noch Interesse da - und wie! Nur leider kann ich nicht helfen, da Null Ahnung und selbst wenn, dann Null Zeit.

Wenn das mal irgendwann fertig werden sollte, werde ich sicher einiges herumbasteln.
 

Artemis

Ehrenuser
Mitglied seit
20.02.2008
Beiträge
1.744
Die Optionen, die in der älteren Version verfügbar waren, sind: Datei-Manager, Item-Editor, Map-Editor, Mapsprite-Editor, Monster-Editor und Monstersprite-Editor.

Der Map-Editor zum Beispiel war für mich sehr nützlich, um die Position der Prinzessin von Pandoria herausbekommen, als ich diese im Rahmen des La Puella Tarantula-Rematchs ein bisschen nach links versetzen wollte.
 

Redwolf

Folge der 8 bei den Palmen!
Mitglied seit
14.02.2002
Beiträge
2.817
Super Aktion, auch das mit der Lizenz. Werde das bei Zeiten mal auschecken.

Erste Gedanken:

  • java.nio Objekte für mehr Performance (setzt du ja schon ein). ByteBuffer (Java 2 Platform SE v1.4.2)
  • Du solltest die meinsten Streams mit einem try {} finally { if(s != null) s.close(); } umschließen.
  • Irgend einen Java SNES Emulator für direktes Debugging/Testen integrieren.
  • Editor-Anwendung als Eclipse RCP entwickeln.

Ansonsten gefällt mir dein Code strukturell.
 
Zuletzt bearbeitet:
OP
OP
PaD

PaD

Ritter
Mitglied seit
24.10.2006
Beiträge
26
Der "ByteBuffer" den ich verwende ist ein Eigenprodukt, ein Wrapper um ein Byte-Array, welches einen InputStream und einen OutputStream zur Verfügung stellt, um dieses zu beschreiben. Find ich persönlich am besten so zu handhaben. ;)

Ja, java.nio wird die Zukunft sein, aber ich bin (vor allem durch meinen Job bedingt) noch nicht wirklich bei Java 7 angekommen...

Redwolf schrieb:
Irgend einen Java SNES Emulator für direktes Debugging/Testen integrieren.
Man kann den generierten ROM direkt mit Geiger's Snes9x Debugger abspielen, stellte bisher kein Problem für mich dar. Natürlich kann ich so eine Art "Play"-Button reinhängen, der diesen direkt ausführt.

Redwolf schrieb:
Editor-Anwendung als Eclipse RCP entwickeln.
Habe ich mich noch nie mit auseinandergesetzt, aber sieht interessant aus. Wenn du dich damit auskennst und Interesse hast: noch ist die GUI sehr überschaubar und kann vermutlich leicht angepasst werden. Könnte man ja einen Branch für erstellen.
 

Redwolf

Folge der 8 bei den Palmen!
Mitglied seit
14.02.2002
Beiträge
2.817
Hab das jetzt mal ausgecheckt. Hatte am anfang noch Probleme, weil git mir das Encoding zerballert hat. Dementsprechend waren ö und ä irgendwelche Sonderzeichen. Das Problem sitzt aber hier vor dem Monitor.
Wär schön, wenn du noch entsprechend die Eclipse-Projektkonfiguration (.project .classpath) mit einchecken würdest. Sonst muss man die Projekte immer händisch zu Java-Projekten umwandeln.
 
OP
OP
PaD

PaD

Ritter
Mitglied seit
24.10.2006
Beiträge
26
Wenn du mir die bereitstellst gern. :) Ich verwende IntelliJ IDEA, nicht Eclipse. Begründungen lassen wir mal außen vor, wir wissen beide, wohin das führen würde. ;)

Ich habe das bisschen GUI, was es bereits gibt, komplett überarbeitet. Sieht nun mehr wie eine IDE aus. Ich denke nicht, dass dieses Tool in Eclipse integriert werden sollte (RCP sieht mir nach dem Plugin-System dafür aus, habe zumindest nichts gefunden, um außerhalb von Eclipse eine RCP-Applikation zu entwickeln).
 

Redwolf

Folge der 8 bei den Palmen!
Mitglied seit
14.02.2002
Beiträge
2.817
Werd mich mal damit beschäftigen, inwieweit ich einen Zweig erstellen kann von dem aus du einfach die Projektdateien in den Hauptzweig mergen kannst. Habe keine Erfahrung mit GitHub. Habe sonst Git immer nur lokal genutzt. Werd mir mal nen Github-Account zulegen ;).

Das Eclipse RCP ist das Eclipse Grundgerüst. Dieses ermöglicht die Nutzung von allen Eclipse Oberflächenelementen wie die Projektansicht, Tab-Fenster usw., die auch Eclipse selbst als IDE nutzt. Ein darauf aufbauender "Rich Client" kommt erstmal nur minimalistisch daher, bietet dir aber alle Optionen des Baukastens wie (Plugins, Updatemodul, Projektfenster). Ist also ideal einen Projektbasierenden Editor darauf aufzubauen.

So sieht das in der minimalen Form aus:



und lässt sich natürlich zum Spieleeditor aufboren (jmonkeyengine.com):



AFAIK leider nur in Eclipse entwickelbar und auch nur ein Gedankengang, wohin man das entwickeln könnte.

Dass du dich erstmal auf die wesentlichen Dinge konzentrierst ist wohl die bessere Gangart.
 
Zuletzt bearbeitet:

Biquinho

Fachteam "Spruch der Woche"
Mitglied seit
27.02.2009
Beiträge
1.378
Sieht schlecht aus... der Link zum GitHub repository führt nach 404 :(
 

Redwolf

Folge der 8 bei den Palmen!
Mitglied seit
14.02.2002
Beiträge
2.817
Wenn alles gut läuft, hab ich noch irgendwo den Code. Werde ihn dann hier hochladen. Nutzbar ist das Programm aktuell aber noch nicht. War halt noch in Entwicklung von PaD.

Update:

Hab es noch. Den Source leider nicht mehr. Hab die kompilierte Jar-Datei mal angehängt.

Die .NET-Variante hab ich auch noch hier. Werde die demnächst auch hochladen. Leider haben wir hier ein 1 MB Limit ;).
 

Anhänge

Zuletzt bearbeitet:

Lexis Shaia

Ritter
Mitglied seit
29.08.2013
Beiträge
19
Sehr interessantes Programm, den Monster-Editor probier ich direkt mal aus. Danke an Redwolf für die Datei. Welche Funktionen kamen bei der letzten Version noch dazu, von der der DL tot ist?
 

Lexis Shaia

Ritter
Mitglied seit
29.08.2013
Beiträge
19
Diese Version startet bei mir trotz Installation von .net Framework 4.0 nicht. Hab Win7. Gibt es sonstige Bedingungen, die mein PC vllt nicht erfüllt?
 

Redwolf

Folge der 8 bei den Palmen!
Mitglied seit
14.02.2002
Beiträge
2.817
Installier mal zusätzlich Microsoft .NET Framework 2.0. Ansonsten probier ich das heute selbst nochmal.
 

Lexis Shaia

Ritter
Mitglied seit
29.08.2013
Beiträge
19
Danke für die Hilfsbereitschaft, ich werds mal probieren. Bringt der Kompatiblitätsmodus irgendwas?

Edit: Hab mir die 2.0.exe heruntergeladen, doch trotz Löschens des Microsoft.NET Ordners kann ich es nicht installieren, weil die Anzeige kommt, dass es bereits als Bestandteil des Betriebssystems installiert sei. Ist .NET irgendwo anders gespeichert?
 

Redwolf

Folge der 8 bei den Palmen!
Mitglied seit
14.02.2002
Beiträge
2.817
Habs dir mal von meiner Platte hochgeladen. Da ist auch noch der reflektierte Sourcecode drin für die, welche die Details interessieren. Schau mal ob die Version geht. Den Microsoft.NET Ordner zu löschen ist keine gute Idee :grmpf:. Sollte es nicht auf Anhieb funktionieren, geh auf Start > Systemsteuerung > Programme > Programme und Funktionen > Microsoft .NET Framework 4 Client Profile > Option zum reparieren auswählen.
 
Zuletzt bearbeitet:

Lexis Shaia

Ritter
Mitglied seit
29.08.2013
Beiträge
19
Deine Version funkt nach Reparieren von den Dateien ;) Vielen Dank, ein Traum wird wahr. Kann ich mit der Version auch die geänderten Sachen speichern? Finde keinen Button dafür.
 
Zuletzt bearbeitet:
Oben