Archiv verlassen und diese Seite im Standarddesign anzeigen : Patches selber machen
Der RPG Maker kann schon ziemlich viel, aber je mehr desto besser.^^
Meine Frage lautet: Wie kann ich selber Patches machen?
Besteht die Möglichkeit den RPG Maker mir Ruby zu verändern?
Ich arbeite übrigens mit den RPG Maker 2000.
Wie soll das mit Ruby gehen?
Klar kannst du einen Patch in der Sprache schreiben, aber kA ob das überhaupt geht. Der Maker (2000/3) wurde in Delphi geschrieben btw.
Um einen Patch schreiben zu können musst du dich erst mal lange Zeit mit eine Sprache beschäftigen, bzw mit Sprachen im Allgemeinen.
So ein Lösung wie "Ich klick mir das zusammen" gibt es dafür nicht.
Ach, mit Delphi wurde es gemacht?
Ich dachte es wäre Ruby...
Das mit dem Sprachen ist mein Problem, ich weiß.
Sollte ich aber irgendwie hinkriegen.
Aber ich weiß immer noch nicht wie ich Patches machen kann.
Hat jemand irgendwelche Erfahrungen damit?
Hast du meinen Post nicht gelesen?
Um so was wie einen Patch zu schreiben, brauchst du erst mal Erfahrung in einer Sprache oO
Klar kann dir jemand was dazu sagen, aber wenn du schon fragst, wie man solche Patches macht, impliziert das doch das du vom Programmieren recht wenig Ahnung hast oder?
MagicMagor
01.07.2010, 16:38
In welcher Sprache der Maker geschrieben wurde ist unerheblich, da der Quelltext nicht vorliegt.
Um den Maker bzw. die Spiel-engine zu patchen muss man "nur" den in der exe-datei vorliegenden Code ändern. Problem dabei ist natürlich, daß dieser Code in keiner für Menschen gemachten Sprache vorliegt sondern in Maschinensprache.
Ausserdem muss man bevor man etwas ändert, zumindest halbwegs verstehen wie der Code funktioniert um zu wissen was man wie ändern muss und welche Implikationen das auf andere Teile des Codes haben könnte.
Öffne die Exe-Datei mal mit einem Hex-Editor, was du dann siehst ist der Maschinencode, eine lange Aneinanderreihung von Zahlen, denn nichts anderes versteht der PC.
Das Beste was man daraus noch machen könnte, wäre einen Disassembler darüber laufen zu lassen und Assembler-Code zu kriegen - der ist zwar deutlich lesbarer als die reinen Zahlenkolonnen, aber nicht wirklich benutzerfreundlich. (Zwischen Assembler und Hochsprachen wie C, Delphi oder Ruby (das nochmal ne deutliche Spur programmiererfreundlich ist) liegen Welten).
Das ganze ist extrem fortgeschrittenes Zeug und keinesfalls mal so eben machbar, ein Programmieranfänger ist damit weit überfordert.
Ich würde dir daher raten den Gedanken an eigene Patches fallen zu lassen.
Hmm, muss mal sehen ob ich was vom Binärcode verändern kann...
Kann zumindest ein bisschen Phyton.^^
Naja, auf jeden Fall danke!
Aber gibt es keine andere Möglichkeit Patches zu machen?
Bis auf bereits genanntes fiele mir auch nichts ein. Was willst du denn machen? Wenn du einen Patch brauchst findet sich bestimmt jemand, der das für dich übernimmt. Wenn du aber selber welche machen willst, dann brauchst du wirklich viel Erfahrung mit z.B. Assembler, da bereits ein Fehler arge Probleme bereiten kann und damit mein ich nicht nur, dass dein Programm nicht mehr funktioniert, sondern dass du damit unter Umständen auch deinem PC Schaden zufügen kannst.
es gibt ein PAtch, mit den man Skripte schreiben kann. Ist zwar kein Ruby dann, aber denoch eine Sprache ^,^ Damit soll man auch Onlinegames machen können. Ist von BananaJoe oder wie er auch heißt ^,^ Cherry hat auch einen gemacht, wenn ich mich nicht täusche.
elvissteinjr
03.07.2010, 00:07
Was Cherry und Co. so machen ist ne riesen Geschichte mit Assembler, Hexeditor und diversen Programmiersprachen.
Eine simplere Variante beliegen Code vom Maker Spiel ausführen zu lassen ist dass erstellen einer eigenen Harmony.dll. Man fängt die DLL Funktionsaufrufe ab und leitet sie an die echte Harmony.dll weiter. Man kann dadurch aber auch eigenen Code einschleusen. Beispielweise den Aufruf von "sound.tollerpatch.wav" Abfangen und dann deinen tollen Patch ausführen. Zumindest ist das der Weg wie der Keypatch und manche andere vorgehen.
Variablen können dem Spiel mit "Get Midi Tick" übergeben werden.
Natürlich sind dadurch keine Änderungen möglich die die Spielengine beeinflussen. Aber es ist ein Weg mit dem man allein mit dem erlernen einer Programmiersprache eine Patch schreiben kann. Ganz ohne Assembler.
Muss mir mal das ganze anschauen, falls ich Probleme hab poste ich nochmal hier was.
Aber auf jeden Fall Danke für die Tipps. ;-)
Mein Nachschlagewerk zum Thema "Wie mach ich einen Patch?": http://www.multimediaxis.de/showthread.php?t=114880
Den Patch von wegen Ruby, den du meinst, ist entweder der Power Patch oder CGSS, wobei beide Lua verwenden, nicht Ruby. CGSS ist mächtiger und wird eines Tages in etwa das können, was du dir vorstellst: Rummanschen am Maker per Skript.
Auge des Sterns
03.07.2010, 21:41
Nur eine Frage. Wie schwer ist es eigentlich Lua zu erlernen. Ich bin nämlich auf dem Gebiet von Programmiersprachen überhaupt nicht bewandert.
Da du nicht auf diesem Gebiet "bewandert" bist, denke ich dur wirst wohl etwas länger brauchen, aber allgemein gilt eigentlich wie für alle Sprachen, es ist nicht schwer nur zeitaufwendig. Du musst dich einfach nur eingehend mit der Sprache beschäftigen, dann wird das schon :)
Edit:
Übrigenss ist die Syntax sehr an Pascal angelehnt, soweit ich das mitbekommen habe, das hilft vllt.
Auge des Sterns
03.07.2010, 22:12
Da du nicht auf diesem Gebiet "bewandert" bist, denke ich dur wirst wohl etwas länger brauchen, aber allgemein gilt eigentlich wie für alle Sprachen, es ist nicht schwer nur zeitaufwendig. Du musst dich einfach nur eingehend mit der Sprache beschäftigen, dann wird das schon :)
Das esetwas dauern könnte, ist natürlich richtig. Aber ich habe noch ein Leben zum Lernen vor mir. Wenn es auch nicht schwer ist, dann werde ich vielleicht einiges darüber in Erfahrung bringen. Dann könnte sich einiges anstellen lassen.
Mein Nachschlagewerk zum Thema "Wie mach ich einen Patch?": http://www.multimediaxis.de/showthread.php?t=114880
Den Patch von wegen Ruby, den du meinst, ist entweder der Power Patch oder CGSS, wobei beide Lua verwenden, nicht Ruby. CGSS ist mächtiger und wird eines Tages in etwa das können, was du dir vorstellst: Rummanschen am Maker per Skript.
Ich wollte die Datei downloaden, aber irgendwas scheint nicht zu klappen...
Bei mir erscheint nur: Seiten-Ladefehler
Kannst du auch die normale Adresse angeben, dass hilft meistens auch, falls die Datei noch existiert.
Das esetwas dauern könnte, ist natürlich richtig. Aber ich habe noch ein Leben zum Lernen vor mir. Wenn es auch nicht schwer ist, dann werde ich vielleicht einiges darüber in Erfahrung bringen. Dann könnte sich einiges anstellen lassen.
Es gibt allerdings einen Unterschied zwischen "eine Programmiersprache lernen" und "eine Programmiersprache beherrschen", letzteres erlaubt nämlich, dass dir auch andere solche Sprachen leichter fallen. Wenn man nämlich weiß, welche Sachen sich in den verschiedenen Sprachen ähneln (z.B. die altbekannte "if"-Anweisung), dann kann man eine neue Sprache schonmal praktisch zu 50%. Such dir also erstmal eine relativ einfache Sprache und guck dir die Grundzüge an :D
Abgesehen von HTML(Keine richtige Programmiersprache) kann ich einbisschen Phyton und daher weiß ich, dass "print" auch haüfig in Programmiersprachen vorkommt.^^
Genauso wie "else" usw...
Auge des Sterns
04.07.2010, 14:00
Es gibt allerdings einen Unterschied zwischen "eine Programmiersprache lernen" und "eine Programmiersprache beherrschen", letzteres erlaubt nämlich, dass dir auch andere solche Sprachen leichter fallen. Wenn man nämlich weiß, welche Sachen sich in den verschiedenen Sprachen ähneln (z.B. die altbekannte "if"-Anweisung), dann kann man eine neue Sprache schonmal praktisch zu 50%. Such dir also erstmal eine relativ einfache Sprache und guck dir die Grundzüge an :D
Sollte ich machen. Danke.^^
Was an der Stelle zu erwähnen ist, das, wonach du hier fragst, ist für einen Anfänger unnötig trickreich. Es hat einen Grund warum man nicht in Assembler programmiert und wenn du aus fremdem Assembler-Code schlau werden willst, braucht das Erfahrung und Zeit - beides erheblich. (ich war mir zu faul, Cherrys Link durchzulesen aber ich nehm mal an, dass selbst die Dokumentation nicht gerade trivial ist)
Wenn du was in die Richtung machen willst, bastel dir lieber direkt ein Spiel mit einer Hochsprache wie C++ statt mit Patches anzufangen.
(google allgemein mal nach C-Tutorials, sorg dafür, dass du danach weißt was Pointer/Zeiger, Arrays und Klassen sind und such dir dann ein Tuto zu einer guten Bibliothek wie OpenGL
Zu phyton, das is ganz nett um die Grundzüge üblicher Syntax zu lernen, interpretiert aber (d.h. der Code wird nicht in Maschinensprache übersetzt bevor man das Programm ausführt) und ist daher langsam (was du bei einfachen Programmen nicht merkst aber je komplexer das Proggi wird eben schon) - phyton empfehl ich dir genau dann, wenn du gute Tutorials in phyton hast.
Fazit: Schau dich lieber im Programmiererforum um wenns dir um sowas geht. Vor ´Luki und Cherry hatte es ne halbe Ewigkeit keine Patches (in der deutschen Szene) und das hat einen Grund.
MagicMagor
04.07.2010, 15:54
Abgesehen von HTML(Keine richtige Programmiersprache) kann ich einbisschen Phyton und daher weiß ich, dass "print" auch haüfig in Programmiersprachen vorkommt.^^
Genauso wie "else" usw...
Mit diesem Wissen solltest du vielleicht erstmal eine richtige Programmiersprache wie Python oder Ruby richtig lernen - dann hast du auch im XP etlich mehr Möglichkeiten als von Hause aus - bevor du dich an Patches und Assembler begibst.
Alle Programmiersprachen, sei es Ruby, Python, Lua oder sogar C(++) (das ich nicht unbedingt als Anfängerfreundlich einstufen würde) haben eines gemeinsam: Sie wurden für Menschen entwickelt.
Assembler ist da ganz anders. Assembler ist mehr oder weniger nichts weiter als die Sprache des Prozessors, wobei die einzelnen Befehle Namen kriegen, anstatt der Zahlen, mit denen die CPU arbeitet.
Alle Konstrukte, die es so in gängigen Programmiersprachen gibt, wie print, if-else, Schleifen usw. gibt es in Assembler nicht.
Was es gibt sind ein paar Befehle um Speicherinhalte zu bewegen (sowas wie Typen kennt Assembler nicht), einige Rechenbefehle sowie ein paar Befehle um im Code rumzuspringen (direkte Sprünge und bedingte Sprünge).
Assembler mal so eben lernen ist nicht drin. Ich bin noch nicht mal sicher ob man eine Sprache wie Ruby "mal so eben" lernen kann.
Ich hab ein wenig Assembler in der Uni im Rahmen einer Vorlesung lernen müssen und wenn ich eines davon behalten habe, dann daß ich niemals in Assembler arbeiten will und wenn dann bitte nur mit sehr ausführlichen Kommentaren (selbst dann ist es schwer genug).
Aber falls du immer noch interessiert genug bist. Ich kann gerne das (englische) Buch raussuchen, daß uns damals empfohlen wurde (gibts als PDF).
Assembler mal so eben lernen ist nicht drin.
Kann ich nur zustimmen. Wer sich trotzdem das ganze ansehen will und nicht unbedingt seinen PC schrotten will, der kann mal "SPIM" und "MIPS" googlen, bzw. "MARS" gibts da auch noch. Ein Handbuch (PDF) müsste unter Umständen noch als "spimdoku" (oder so ähnlich) zu finden sein. Hierbei handelt es sich einfach nur um Assembler- Simulatoren, allerdings würde ich es mir nicht noch einmal antuen wollen. :D
Es gibt allerdings einen Unterschied zwischen "eine Programmiersprache lernen" und "eine Programmiersprache beherrschen", letzteres erlaubt nämlich, dass dir auch andere solche Sprachen leichter fallen. Wenn man nämlich weiß, welche Sachen sich in den verschiedenen Sprache
n ähneln (z.B. die altbekannte "if"-Anweisung), dann kann man eine neue Sprache schonmal praktisch zu 50%. Such dir also erstmal eine relativ einfache Sprache und guck dir die Grundzüge an :D
Ja und nein, also ein klares Jein ;) "Eine Programmiersprache beherrschen" ist etwas unglücklich ausgedrückt, finde ich. Man kann eine Programmiersprache bis in ihre tiefsten Tiefen kennen, und trotzdem ein sehr schlechter Programmierer sein. "Programmieren lernen" funktioniert weitgehend unabhängig von den Sprachen die man dazu benutzt. Dabei geht es darum, ein Problem exakt zu analysieren, es möglicherweise in seine kleinsten Bestandteile zu zerlegen, um dann mit dem zur Verfügung stehenden Werkzeug, also der Programmiersprache, die man gerade da hat, einen Algorithmus zu entwickeln und zu einer Lösung zu kommen.
Fast jede Programmiersprache ist nach den gleichen Regeln aufgebaut. Auch wenn in Ruby nahezu Alles und Jedes ein Objekt ist, gibt es doch viele Gemeinsamkeiten mit Sprachen, die vermutlich bereits vor der Geburt eurer Eltern ausgestorben waren. Ich erwähne nur mal COBOL. Variablen, Schleifen, Kontrollstrukturen, Bedingungsabfragen, und so weiter, wirst du in jeder Sprache finden, auch wenn es manchmal etwas schwer zu erkennen ist. (Brainfuck, anyone?) :D
Wenn jemand eine Programmiersprache "beherrscht", sagt das nicht wirklich viel. Wer hingegen das Programmieren gelernt hat, kann seinen Quick-, Heap-, Bubble- Sort-oder Sonstwas-Algorithmus in kurzer Zeit in nahezu jeder Sprache umsetzen.
Modernere Sprachen kommen allerdings mit umfangreichen Funktionsbibliotheken daher, die einem erfahrenen Programmierer schon einen Großteil der alltäglichen Arbeit abnehmen.
Jeder, der gelernt hat, zu programmieren, sollte in der Lage sein, sich in wenigen Stunden mit einer neuen Umgebung vertraut zu machen - ob die IF-Abfrage nun in C++, Python, Ruby, oder sonstwas da steht, macht keinen Unterschied. Um aber herauszufinden, wie eine bestimmte Programmierumgebung ihre Standard-Objekte handhabt, und welche Methoden sie zur Verfügung stellt, braucht man etwas mehr als 'n verkürztes Wochenende.
Wann also "beherrscht" man eine Programmiersprache? Wenn man 'ne WHILE-Schleife ohne Syntaxfehler abtippen kann? Oder ist es doch erst, wenn man alle Standard-Funktionen, -Methoden und -Objekte schon mal zum Essen (Incl. Vor- und Nachspiel) eingeladen hat?
Wenn der Aufruf einer Standard-Funktion in bspw Python nicht so funktioniert, wie ich es erwarte, schaue ich in den Sourcecode wo diese Funktion deklariert ist, und sehe meistens sehr schnell, warum das Ding sich nicht so benimmt wie erwartet, und meistens habe ich dann auch bald eine Idee, wie ich die gewünschten Ergebnisse bekomme. Falls es doch mal länger dauert, liegt es meistens daran, dass ich ich irgendwo einen Denkfehler und/oder ein Logik-Problem habe.
Anyway, man KANN mit einer (nahezu) beliebigen Sprache fast jedes Programmierproblem lösen - es bleibt nur die Frage, ob es die dafür aufgewändete Zeit Wert ist. Mit Grausen erinnere ich mich daran, wie unser Dozent erwartet hat, dass wir eine größere Sammlung von C++-Standard-Funktionen nachprogrammieren und nach unseren (seinen) Wünschen modifizieren können. Aber: das daduch erlangte Wissen und die Erfahrung möchte ich heute nicht mehr missen - auch wenn ich nur noch selten programmiere..
Es gibt allerdings einen Unterschied zwischen "eine Programmiersprache lernen" und "eine Programmiersprache beherrschen", letzteres erlaubt nämlich, dass dir auch andere solche Sprachen leichter fallen.
Nein. Nicht, so wie ich es sehe. Einer Sprache beherrschen bedeutet für mich, dass man wirklich mit jedem Standad-Objekt und jeder Standard-Funktion oder Methode, die die Sprachumgebung zur Verfügung stellt, auf Du-Und-Du steht. Aber wer tut das schon? Wie ich Eingangs erwähnte, dauert es vielleicht einen oder zwei Nachmittage, um sich mit einer neuen Sprache vertraut zu machen - WENN man programmieren gelernt hat. Wenn man das gelernt hat, ist die Sprache wirklich egal, oder nicht?
Um zum Threadstarter zurückzukommen: Es ist egal, mit welcher Sprache du anfängst - du wirst immer mal auf Verständnisprobleme stoßen - da wird sich durchgebissen, das gehört sich so.:D
Wenn du allerdings glaubst, es braucht nur ein paar Zeilen Code, um alle deine Wünsche zu erfüllen, irrst du dich - um diese paar Zeilen schreiben zu können, musst du nämlich auf die Erfahrungen und das Wissen zurückgreifen können, die du dir in vielen tausend vorhergehenden Zeilen erarbeitet hast. Ja, ich habe auch schon mal 2000 Zeilen Code geschrieben um ein Problem zu lösen, welches sich nach Klärung eines Verständnisproblems und Aufbesserung einer Wissenslücke mit 15 Zeilen lösen ließ. So ist das Leben.
MagicMagor
04.07.2010, 16:32
Wer sich trotzdem das ganze ansehen will und nicht unbedingt seinen PC schrotten will, der kann mal "SPIM" und "MIPS" googlen, bzw. "MARS" gibts da auch noch. Ein Handbuch (PDF) müsste unter Umständen noch als "spimdoku" (oder so ähnlich) zu finden sein. Hierbei handelt es sich einfach nur um Assembler- Simulatoren, allerdings würde ich es mir nicht noch einmal antuen wollen.
Eine kurze Google-Anfrage ergibt, daß du hier wohl etwas verwechselt. Unter dem Begriff "MIPS" finde ich eine Mikro-Prozessor-Architektur, was sich mit den Simulatoren decken würde, da man hier einen Mikroprozessor simulieren muss.
Mikroprozessor-Programmierung ist kein Assembler. Mikroprozessor-Programmierung liegt eine Ebene tiefer unter dem Assembler und ist gewissermaßen die Schnittstelle zwischen Assembler und Hardware.
Assembler braucht man nicht simulieren, man kann es direkt zu einer binary assemblieren und ausführen. (für die in heutigen PCs verwendete x86-Architektur wäre das zB mit NASM (http://sourceforge.net/projects/nasm/) möglich)
Mal ein direkter Vergleich von Hochsprachen und Assembler:
def fib(n)
if (n==0)
return 0
else
if (n==1)
return 1
else
return fib(n-1) + fib(n-2)
end
end
end
Eine in Ruby geschrieben Funktion zur Berechnung der n-ten Fibonacci-Zahl mittels Rekursion. Sehr simpel und in so gut wie allen Programmiersprachen würde das ähnlich aussehen.
Das ganze in Assembler (die Funktion sollte von C aus aufgerufen werden):
(Alles hinter ; ist ein Kommentar)
segment .text
global asm_main
asm_main:
enter 0,0
push ebx ; ebx sichern, da C erwartet dass ebx nicht veraendert wird
mov eax, [ebp+8] ; Von C uebergebenen Wert aus dem Stack lesen
push eax ; Parameter auf den Stack legen
call fib ; Fib. Zahl berechnen
add esp, 4 ; Parameter vom Stack nehmen
; Ergebnis steht in eax wie von der C-Calling Convention gefordert
pop ebx ; ebx wiederherstellen
leave
ret
; Unterprogramm zur Berechnung der Fibonacci-Zahl
fib:
mov ebx, [esp+4] ; Parameter vom Stack lesen
; Ueberpruefung ob ebx=0 oder ebx=1
cmp ebx, 0
jz fibZero
cmp ebx, 1
jz fibOne
sub ebx, 2 ; n-2 berechnen
push ebx ; n-2 auf den Stack legen
call fib ; n-2.te Fib. berechnen
add esp, 4 ; Parameter vom Stack nehmen
push eax ; Ergebnis auf dem Stack sichern
mov ebx, [esp+8] ; Parameter vom Stack lesen
sub ebx, 1 ; n-1 berechnen
push ebx ; n-1 auf den Stack legen
call fib ; n-1.te Fib. berechnen
add esp, 4
; Fib(n-1) steht in eax, Fib(n-2) steht auf dem Stack
add eax, [esp] ; Fib(n-1) + Fib(n-2) berechnen
add esp, 4 ; Fib(n-2) vom Stack nehmen
jmp fibEnd
fibZero:
mov eax, 0 ; 0.te Fibonacci-Zahl ist per Definition 0
jmp fibEnd
fibOne:
mov eax, 1 ; 1.te Fibonacci-Zahl ist per Definition 1
fibEnd:
ret
Obiger Assemblertext wurde von mir vor einem Jahr als Uni-Aufgabe geschrieben und war eine Hölle zum Debuggen.
<snip>Mikroprozessor-Programmierung ist kein Assembler. Mikroprozessor-Programmierung liegt eine Ebene tiefer unter dem Assembler und ist gewissermaßen die Schnittstelle zwischen Assembler und Hardware.
Einspruch! µPc ist sehr wohl Assembler, nur halt mit einem etwas anderen Befehlssatz, als man ihn vom PC her kennt - aber was soll's? Der 286er hatte auch einen ganz anderen Befehlssatz und eine andere Register-Struktur als moderne Prozessoren, trotzdem ist beides Assembler. Unterschiedliche Dialekte will ich gerne zugeben, aber immer noch Assembler - genauso wie das, was ich für meine ATMEL-Chips fabriziere.
MagicMagor
04.07.2010, 17:01
Einspruch! µPc ist sehr wohl Assembler, nur halt mit einem etwas anderen Befehlssatz, als man ihn vom PC her kennt - aber was soll's? Der 286er hatte auch einen ganz anderen Befehlssatz und eine andere Register-Struktur als moderne Prozessoren, trotzdem ist beides Assembler. Unterschiedliche Dialekte will ich gerne zugeben, aber immer noch Assembler - genauso wie das, was ich für meine ATMEL-Chips fabriziere.
Vielleicht meinen wir hier jeweils mit Assembler nur etwas anderes. Bei uns wurde in Info2 Mikroprozessor-Programmierung seperat von Assembler behandelt und eben eine Ebene tiefer angesetzt. Vermutlich kann man das auch als Assembler bezeichnen, ich habe hier im Thread aber mit Assembler implizit die x86-Architektur gemeint und dessen Befehlssatz wie er eben von NASM erzeugt wird.
Denn hier im Thread geht es nunmal immer noch um Patches für den Maker und demzufolge mMn um das Verändern der Maker-Exes, der nunmal in x86-Code vorliegt.
Vielleicht meinen wir hier jeweils mit Assembler nur etwas anderes.
Kann gut sein. Hamburger glauben auch nicht, dass Bayern Deutsch sprechen können. ;)
Bei uns wurde in Info2 Mikroprozessor-Programmierung seperat von Assembler behandelt und eben eine Ebene tiefer angesetzt.
Da würde mich echt mal interessieren wieso? Ob ich meinen MOV AX Sonstwas nun auf 'nem X86 oder auf 'nen ATMEL ausführen lasse, ist doch Wurscht - beides ist Assembler.
Vermutlich kann man das auch als Assembler bezeichnen, ich habe hier im Thread aber mit Assembler implizit die x86-Architektur gemeint und dessen Befehlssatz wie er eben von NASM erzeugt wird.
Allein bei den X86ern gibt's -zig Dialekte die auch auf Verlangen von NASM passend erzeugt werden können. Im Standardfall nimmt er halt den kleinsten gemeinsamen Nenner - aber IIRC, kann er sogar für ATMEL, PICaxe und sonstwas passenden Maschinencode erzeugen. Alles Assembler, in meinen Augen, aber ich will mich da nicht streiten.
Denn hier im Thread geht es nunmal immer noch um Patches für den Maker und demzufolge mMn um das Verändern der Maker-Exes, der nunmal in x86-Code vorliegt.
In welchem? Dem von Intel, oder dem von AMD, oder gar ganz rustikal in dem von CYRIX? http://www.multimediaxis.de/images/smilies/old/s_044.gif
OK, ich will mich wirklich nicht streiten, aber für mich ist Assembler eine Suppe, die jeweils passend für den Prozessor zugeschnitten (gewürzt) wird/wurde, auf dem sie ausgeführt (gekocht) werden soll. Ob der Topf nun Intel, AMD, Atmel, oder sonstwie heißt, interessiert mich nicht. Zumindest so lange nicht, wie es nicht um Zeit-kritische Anwendungen geht, wo zB der AMD 1 bis 2 Prozessorzyklen mehr für einen Assembler-Befehl braucht als der Intel - oder umgekehrt, je nach Situation.
Ein Assembler ist einfach nur ein Übersetzungstool für beliebige Befehlssätze (MIPS, x86, ARM, PowerPC, usw, wobei es in der Regel noch weiter zwischen Dialekten unterschieden wird, wie Das 'O' bereits bemerkte).
Was MagicMagor wohl mit "Mikroprozessor-Programmierung" meint, ist die Implementierung eines Befehlssatzes mittels des Mikrobefehlssatzes der zugrunde liegenden Hardware, was jedoch vom Hardwarehersteller selbst vorgenommen wird. Der Begriff "Mikroprozessor-Programmierung" ist hier anscheinend nur unglücklich gewählt.
Mit Mikroprozessor/-controller-Programmierung verbinde ich, wie auch Das 'O', die Programmierung eines Mikroprozessors/-controllers mittels eines Befehlssatzes, oder einer höheren Programmiersprache wie etwa C.
Ich wollte die Datei downloaden, aber irgendwas scheint nicht zu klappen...
Bei mir erscheint nur: Seiten-Ladefehler
Kannst du auch die normale Adresse angeben, dass hilft meistens auch, falls die Datei noch existiert.
Das liegt daran, dass der Server von meiner Seite zurzeit offline ist, wegen technischen Problemen. Sollte morgen Mittag eigentlich wieder gehen.
@MagicMagor:
Vielen Dank für deine PM, die meine Frage beantwortet hat. :) Ich finde, du hättest es ruhig hier im Thread schreiben können. Auch wenn es ein weiterer kurzer Ausflug ins Off-Topic-Land gewesen wäre, hätte der eine oder andere Leser vielleicht davon profitieren können.
@Rayo:
Wenn du eh gerade Python lernst, warum installierst du nicht Ruby und versuchst deine Programmieraufgaben parallel in beiden Sprachen zu lösen? So lernst du gleich etwas über die verschiedenen Konzepte, aber auch die Gemeinsamkeiten, die den beiden Sprache zugrunde liegen.
Die Ruby-Kenntnisse kannst du dann später dazu benutzen, deine Maker XP Spiele aufzupeppen.
Was das Entwickeln von Patches angeht, wirst du dann in einigen Jahren über deine heutige Naivität grinsen. Denn auch wenn es relativ leicht ist, einen Patch-Generator in Python, Ruby, oder sonst einer Sprache zu schreiben, ist es ungleich schwerer erstmal herauszufinden, welches Byte dieser Generator dann "verbiegen" soll, und wohin.
Wenn ich mich recht erinnere, haben Cherry und Andere Anleitungen veröffentlicht, wie man mit 'nem HEX-Editor der RTP_RT.exe 'n paar neue Kunststückchen beibringen kann. An deiner Stelle würde ich mich mal an denen versuchen und glücklich sein, wenn es klappt.
Aber erst wenn du genau verstehst, was du da tust und vor allem warum, kannst du daran denken, selbst mal sowas zu entwickeln.
Um selbst zu patchen brauchst du also 'nen HEX-Editor und das Wissen, welche Bytes wie geändert werden müssen. Der HEX-Editor ist leicht zu beschaffen :D
Ich mache meine Spiele zurzeit im RPG Maker 2000 und hatte einen Laufpatch für mein Spiel geplant, aber mal sehen ob ich was draus machen kann.
Und zu Phyton: Lieber eine Programmiersprache lernen, nicht gleichzeitig zwei.
Ich wollte ja nur kleine Dinge ändern, aber das wird wohl auch eine Herausforderung werden, wie ihr das hier bescheibt.
Dann schau ich mal den HEX-Editor oder was anderes zum Patchen an und sehe mir mal das ganze mal genauer an. ;)
Aber irgendwie geht Cherrytree immer noch nicht??! Naja, Abwarten...
Wie sollte dann dieser Laufpatch aussehen?
Oder meinst du evtl ein Renn-Script, wie es viele Spiele mehr oder minder erfolgreich verwenden?
Nein, der Laufpatch soll die Auswahl der Geschwindigkeit verdoppeln/verdreifachen..., sodass man z.B. zwischen 1 und 2 auch 1.5 wählen kann. Sowas hatte ich mir immer schon gewünscht.
Auu, das wirst du sicher nicht hinbekommen, das sag ich dir gleich. Ganz so einfach ist das nämlich nicht, wie etwa irgendeinen Text verschieben oder irgendwas überspringen.
Sonst hätt ich das schon gemacht.
Das stützt sich nämlich auf die 60 Frames pro Sekunde und einigen anderen Kram.
EDIT: Hm, obwohl, mir fällt da grade was ein. Mal sehen. Aber Rayo sollte es trotzdem lassen - bzw. versuchen kannst du es ja, aber du wirst gar nicht wissen, wo du suchen sollst.
EDIT²: Aber Cherry Tree ist wieder online, die RM Interna.cue könntest du dir also saugen. Fraglich ist nur, ob sie dir nützt.
Ich denke RM Interna.cue wird mir viel weiterhelfen.
Ich schau mal wie das ganze ist.
(Nachdem ich die letzten Noten geschrieben habe) ;)
MajinSonic
11.07.2010, 09:23
Ich bin mit dem Patches usw nicht so bewandert, da ich mich gerne an das halte, was ich habe.
Aber es gibt natsächlich einen Patch der mich interessieren würde.
Ich benutze den RM2k3 und das standart KS.
Ist es möglich einen Patch zu entwickeln, der die LP des Gegners anzeigt ?
Z.B. während ich den gegner für einen angriff / zauber anvisiere ?
Danke im Vorraus.
Mit dem PicsInBattle-Patch, an dem ich gerade arbeite, könnte sowas vielleicht sogar gehen.
Mnemonik
11.07.2010, 14:09
Mit dem PicsInBattle-Patch, an dem ich gerade arbeite, könnte sowas vielleicht sogar gehen.
Das klingt genial. Ich habs das ja schon ansatzweise in Davias Gamethread mitbekommen.
Wann kommt mein heissgeliebter Patch zum ändern der Event IDs?! xD
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.