Seite 1 von 2
Arkanoid Hacking Projekt / Editor
Verfasst: 28. August 2020, 12:44
von Svambo
Moin zusammen,
wolltest du schon immer mal an einem Rom-Hack mitarbeiten, aber es fehlte das nötige Know-How? Dann kommt hier deine Chance:
Doke und ich haben in den letzten Wochen an einem Editor für das SNES Spiel Arkanoid - Doh it again gearbeitet. Der Editor ist zwar noch nicht ganz fertig, hat aber schon den größten Teil der Funktionen.
Unser Plan ist, damit einen Hack von dem Spiel zu erstellen und dann später auch den Editor zu veröffentlichen.
Wir suchen nun Mitstreiter, die Lust haben, den Editor auszuprobieren und ein paar eigene Level für den geplanten Hack zu entwerfen. Während dessen wird der Editor auch gleich noch ein wenig ausgetestet (was ist alles intuitiv, was muss evt. noch erläutert werden, welche Funktionen sollten ggf. noch ergänzt werden, gibt es noch Fehler, etc.).
Wer gerne mitmachen möchte kann sich einfach hier im Thread oder per PN bei Doke oder mir melden.
Re: Arkanoid Hacking Projekt / Editor
Verfasst: 29. August 2020, 11:43
von Krischan
Moin, ist ja grundsätzlich ganz spannend. Würde mir den Editor gerne mal anschauen. Wo läuft den euer Editor bzw. in welcher Sprache ist dieser geschrieben? Bekommt man den auch unter OS X/Linux zum laufen?
Danke und VG!
Re: Arkanoid Hacking Projekt / Editor
Verfasst: 29. August 2020, 15:20
von Doke
Der Editor ist in C# programmiert und benötigt mindestens das .NET Framwork 4.5
Unter Linux könntest du es also evtl. mit .NET Core oder Wine zum laufen bekommen.
Wenn du das mal ausprobieren möchtest, könnte dir einer von uns die Anwendung zusenden.
Sofern es funktioniert würden wir uns freuen, wenn du ein kleines Tut hier posten könntest und das hier für andere Linux-User evtl. auch interessant wird

Re: Arkanoid Hacking Projekt / Editor
Verfasst: 31. August 2020, 12:40
von Krischan
Ich würde es zumindest mal mit Wine probieren, schickt mir gerne einen Link oder das Programm per PN.
Schon mal überlegt auf Java zu wechseln? Ist syntaktisch gar nicht soweit weg von C# und läuft auf jedem System, für das es eine JRE gibt.

Re: Arkanoid Hacking Projekt / Editor
Verfasst: 31. August 2020, 22:21
von Svambo
Hast eine PN
Re: Arkanoid Hacking Projekt / Editor
Verfasst: 1. September 2020, 12:36
von Krischan
Hab's mit OS X 10.14.6 + xQuartz 2.7.7 (x11 Server) + wine-stable 5.0 + wine-mono paket + wine-gecko paket versucht. Das ganze nervt extrem und geht mit jeder Menge Meldungen wie "unbekannte Blockgröße" und was weiß ich nicht alles auf die Bretter. Möglicherweise sollte ich mir eine C#-IDE runterladen und versuchen mir die Executable selbst zu compilieren. Wofür werden die Abhängigkeiten ins .NET-Framework 4.5 benötigt? Irgendwelche speziellen Bibliotheken, die man dafür braucht, möglicherweise in der GUI des Editors?
Vielleicht sollte ich mir einfach eine Windows-10-VM aufsetzen, ist vielleicht ein bischen übertrieben, nur für 1 kleines Program und bräuchte dann ja auch einen Win-Lizensschlüssel. (*Hust

)
Ach ich weiß nicht... Hatte gehofft die Tage der Windowsherrschaft sind vorbei... Wohl doch nicht.

Re: Arkanoid Hacking Projekt / Editor
Verfasst: 2. September 2020, 09:14
von Doke
Das .NET Framework stellt die ganzen Namespaces (Klassen und Funktionen) bereit, die in der Anwendung benutzt werden.
Hast du über winetricks das dotnet45 installiert? Das wird zwingend benötigt, sonst geht da nix
-> Tutorial <-
Falls du möchtest, könntest du dir das Projekt von GitHub clonen und nochmal in Mono kompilieren.
Hierfür schickst mir einfach mal deine E-Mail oder deinen Nick bei GitHub
Aber ich denke, dass die vorkompilierte exe ausreichen dürfte
Mono und Visual Studio sollten da eigentlich das die gleichen Binaries ausspucken...
Über Mono: mono ArkanEdit.exe und das sollte eigentlich laufen.
Bin sehr gespannt, ob das hinhaut
Edit: Für die einmalige Aktivierung von Windows 10 sollte ein Aktivierungsschlüssel* ausreichen

Übrigens kannst du den 30 tägigen Testzeitraum über 'slmgr -rearm' bis zu 3 mal verlängern und so 120 Tage lang Windows 10 testen.
(* Aktivierungsschlüssel != Lizenzschlüssel, reicht aber trotzdem für die einmalige Aktivierung aus und sind schon für 3 - 4€ erhältlich)
Re: Arkanoid Hacking Projekt / Editor
Verfasst: 2. September 2020, 12:56
von Krischan
So langsam komme ich ein wenig dahinter

:
Du benutzt in deinem Programm also Klassen und Objekte, die Teil des .NET Framework 4.5 sind. Diese Klassen und Objekte sind der .exe nicht enthalten, sondern lediglich Verweise darauf, also ganz anders als zum Beispiel in einer Java .jar Datei, wo etwaig verwendete Bibliotheken mit eingebettet würden. (mal abgesehen von den sonstigen Unterschieden wie Bytecode ungleich Objektcode, die .exe wird aus meiner SIcht keinen "puren" Machinecode enthalten) Somit muss ich sehen, dass die Bibliotheken auch bei mir vorhanden sind. Welches mono-Paket ich genau installiert habe, kann ich nicht sagen, da ich wine per dmg-Installer installiert habe und wine-mono mir während der Installation als Zusatzpaket angeboten wurde. Die mono-Version müsste ich dann ja im wine-Installer ablesen können wie im Screenshot der von dir verlinkten Seite. (dort ist es 4.7.1)
Ich schaue dort nochmal nach, ob meine Version > 4.5 ist und installiere ansonten nochmal wie angegeben(winetricks) nach.
Meinem (bisherigen) Verständnis nach sollte der Aufruf dann aber trotzdem "wine mono ArkanEdit.exe" o. ä sein, oder? Wenn ich es richtig verstehe, ist mono dann eine "WIndows-Anwendung", die in wine läuft. Bei notepad wäre es dann sinngemäß "wine notepad -PATHC:\Test.txt". Oder liege ich da völlig falsch?
DIe VM wäre für mich der letzte Schritt, alleine der benötigte Speicherplatz für die VM-Ware und die Partitions-Datei, welche ja auch eine win-swap-Datei enthalten muss, erscheint mir schon sehr unverhältnismäßig.

Da warte ich lieber noch auf .Net5.0 im Nov., wenn es denn Hoffnung gibt, dass es dann besser läuft.
Schon mal danke für die viele Mühe die du/ihr dir/euch mach(s)t, um mich hier zum Testen des Editors zu kriegen.

Was mich vorab noch interessieren würde: Wie bekommt ihr die mit dem Editor erstellten Level in den .ips-Patch für die Originalrom?
Re: Arkanoid Hacking Projekt / Editor
Verfasst: 2. September 2020, 13:18
von Krischan
Gut, dass ich noch nicht die neueste OS X Version verwende.

Aus der Mono-doku:
NOTE: on macOS you’ll have to wait around a minute the very first time you run this command. You also need to use mono32 since WinForms isn’t supported on 64bit yet. As of macOS 10.15 Catalina there’s no 32bit support anymore so WinForms doesn’t work there at the moment.
Re: Arkanoid Hacking Projekt / Editor
Verfasst: 2. September 2020, 13:20
von Doke
Ja, deine Ansichten zum .NET Framework sollten so in etwa stimmen
Das .NET Framework ist sozusagen als Bestandteil des Windows OS zu sehen und kann von jeglichen Anwendungen angesprochen und genutzt werden.
PowerShell ist z.b. auch so ein Kandidat, der sich das zunutze macht
Wine Mono ist wieder so eine "von hinten durch die Brust ins Auge"-Sache
Du verwendest dadurch die Windows Version von Mono in der Linux-Umgebung.
Benutze lieber die reine Linux Version, damit wirst du vermutlich weniger Probleme haben.
Mono kannst du dann vermutlich aus Wine wieder entfernen, sofern das nicht für andere Anwendungen bei dir relevant sein sollte.
Dann kannst du die .exe einfach über 'mono ArkanEdit.exe' aufrufen.
Zu deiner IPS-Patch Frage: Wir würden da jedem eine Range von Leveln zuweisen, die er bearbeiten darf und aus jeder eingesendeten Datei dann einen IPS-Patch erstellen. Diese wenden wir dann alle auf ein ROM an und erstellen von diesem dann wiederum einen IPS-Patch. Hoffe das war einigermaßen verständlich
Edit: Generell wurde ArkanEdit für Any CPU kompiliert, es sollte also keine Rolle spielen, ob 32 oder 64 Bit. Aber das aktuellste OSX wohl weder 32 noch 64 Bit Windows Forms Anwendungen unterstützt hast du da echt nochmal Schwein gehabt

Re: Arkanoid Hacking Projekt / Editor
Verfasst: 2. September 2020, 13:30
von Krischan
Ahhhh, ich verstehe!
Ihr ersetzt also nur die Originallevel in der ROM, somit kann ich die im Editor erstellten Level direkt als .ips wegspeichern? Das wäre ja traumhaft und ich könnte ein erstelltes Level direkt auf mein SD2SNES bringen.
Ich werde heute Abend nochmal rumprobieren und anschließend berichten! (mit wine und ohne wine

)
Re: Arkanoid Hacking Projekt / Editor
Verfasst: 2. September 2020, 13:48
von Doke
Leider nicht ganz
Der Editor erfordert ein ROM, welches du editieren willst (EU/US/JP/BS) und speichert deine Änderungen auch wieder in diesem oder je nachdem als Kopie. Das ROM wäre somit sofort einsatzbereit und kann auf dein SD2SNES kopiert und gezockt werden
Wenn du einen IPS-Patch erstellen wolltest, müsstest du das mit einem separaten Tool machen.
Wir sammeln sozusagen die einzelnen ROMs, erstellen daraus je einen IPS-Patch und wenden dann alle IPS-Patches auf ein ROM an.
Daraus entsteht dann der Gesamt-ROM-Hack

Re: Arkanoid Hacking Projekt / Editor
Verfasst: 2. September 2020, 18:02
von Svambo
Wir haben im discord einen channel angelegt, in dem selbst gebastelte Level eingestellt werden können. Kannst deine kreativen Werke da gerne mit einbringen...
Re: Arkanoid Hacking Projekt / Editor
Verfasst: 3. September 2020, 17:15
von Krischan
Puhh, ich bin gefühlt kurz davor mit mono für OS X den Editor zum laufen zu kriegen, aber irgendwie auch weit entfernt.
Mit mono64-Bit geht gar nichts. Das verwendete Windows.Forms wird von mono auf das Carbon-Framework "verlinkt". (also in etwa zu jeder Funktion und jedem Objekt in WIndows.Forms wird eine entsprechende Carbon-Funktion oder ein Carbon-Objekt zugewiesen) Aber Carbon gibt es (noch?) nicht für 64-Bit-Systeme.
Code: Alles auswählen
Krischans-MacBook-Air-5:~ krischan$ mono --arch=64 /Users/krischan/Downloads/ArkanEdit.exe
WARNING: The Carbon driver has not been ported to 64bits, and very few parts of Windows.Forms will work properly, or at all
System.NotSupportedException: Specified method is not supported.
at System.Drawing.MacSupport.GetCGContextForView (System.IntPtr handle) [0x0001a] in <96c2003d15dd4c1784674780359bf078>:0
at System.Drawing.Graphics.FromHwnd (System.IntPtr hwnd) [0x00055] in <96c2003d15dd4c1784674780359bf078>:0
at System.Windows.Forms.Control.CreateGraphics () [0x00019] in <0cb4fbe6da104c0e9a146523b449f33b>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control.CreateGraphics()
at System.Windows.Forms.Document.owner_HandleCreated (System.Object sender, System.EventArgs e) [0x00000] in <0cb4fbe6da104c0e9a146523b449f33b>:0
at System.Windows.Forms.Control.OnHandleCreated (System.EventArgs e) [0x00019] in <0cb4fbe6da104c0e9a146523b449f33b>:0
at System.Windows.Forms.TextBoxBase.OnHandleCreated (System.EventArgs e) [0x00000] in <0cb4fbe6da104c0e9a146523b449f33b>:0 (...)
Gut, dass ich zufällig die letzte OS X-Version installiert habe, die noch native 32-Bit-Programme unterstützt. Dachte ich zumindest...
Zunächst 2-3 Sekunden große Freude, aber dann...
Code: Alles auswählen
Krischans-MacBook-Air-5:~ krischan$ mono --arch=32 /Users/krischan/Downloads/ArkanEdit.exe
Kein Fenster erscheint, nichts passiert, keine Exceptions auf dem StdOut, Programm terminiert aber auch nicht!
Mit mono --verbose bekommt man tausende Zeilen pro Sekunde um die Ohren gehauen, bringt also auch erstmal nix.
Grund ist wohl dieser hier:
Code: Alles auswählen
Krischans-MacBook-Air-5:~ krischan$ mono-test-install
Active Mono: /Library/Frameworks/Mono.framework/Versions/Current/Commands/mono
Warning: pkg-config could not find mono installed on this system
No dotnet pkgconfig found, Windows.Forms, System.Drawing and others will not work
Hab mal mit Umgebungsvariablen rumprobiert, aber auch keinen Erfolg. Z. B.:
Code: Alles auswählen
#folder to the PKG_CONFIG_PATH variable
export PKG_CONFIG_PATH="/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig":$PKG_CONFIG_PATH
Irgendwelche Ideen?
Ansonsten muss ich mal auf dem Rechner eines Freundes probieren und vielleicht bin ich dann so motiviert mir extra dafür eine VM einzurichten.

Re: Arkanoid Hacking Projekt / Editor
Verfasst: 8. September 2020, 21:09
von Svambo
Das wäre vermutlich das einfachste ...
So Leute ... der Editor ist inzwischen weit fortgeschritten. Wir brauchen noch 2-3 kreative Mitstreiter die Lust haben, Level zu basteln.
Kein Vor- oder Fachwissen erforderlich - nur ein Windows-Rechner (sorry Krischan ... konnt's mit nicht verkneifen

)
Wer mitmachen möchte einfach hier im Thread melden oder Doke oder mich per PN anschreiben ...