VWF-Dialoge v1.0

geschrieben am 20.04.2011 20:08:14
( Link )
Wenn das der Fehler ist, dann dürfte es ja tatsächlich schon reichen, einfach nur in Lunar Magic FastROM zu aktivieren, was auch erklären würde, wieso er mit meiner Basisrom nicht auftrat. Es erscheint mir aber durchaus plausibel.

Die Cursor-Funktion erfodert schon ziemlich viel Aufwand. Erst die richtigen Grafiken im RAM finden, dann den Cursor über die ziemlich zeitaufwändige VWF-Routine hinzufügen, dann die alten Grafiken (ohne Cursor) wiederherstellen. Da die Grafiken - glaube ich zumindest - ganz am Ende auch noch in den VRAM hochgeladen werden müssen, könnte durchaus mal die Blank-Zeit überschritten werden. Ob gerade dieser Fehler genau damit zusammenhängt, kann ich nicht sagen. Es erscheint aber wirklich logisch.

Etwas daran ändern kann ich wahrscheinlich nicht. Schließlich hatte ich damals meine erste VWF-Patch-Version schon über den Haufen geworfen, um eine effizientere zu programmieren. Das heißt die aktuelle Version ist schon so effizient wie für mich nur möglich programmiert. Kann sein, dass man mit entsprechendem, mathematischem Fachwissen noch sehr viel rausholen kann. Dieses Fachwissen habe ich aber nicht.

Probiere einfach mal FastROM. Ich denke das alleine könnte das Probelm schon beheben. Wenn nicht, könntest du vielleicht Code aus dem Patch löschen, den du nicht mehr brauchst, um ihn etwas zu verschnellern. Allerdings glaube ich, dass es da nicht all zu viel gibt, was während der Cursor-Funktion überhaupt läuft.
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 20.04.2011 21:31:26
( Link )
Bwahaha, mit FastROM geht's tatsächlich! Dann muss ich gar nicht auf meinen Code verzichten! Hurra!

Vielen Dank für die Hilfe.
geschrieben am 20.04.2011 22:20:14
( Link )
Kein Problem. Hast's ja im Prinzip selbst gelöst.
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 14.06.2011 19:07:21
( Link )
Ich hab ein Problem: wenn ich vwfdialogues.asm patchen will (alle anderen benötigten dateien sind im xkas ordner) dann kommt: xkas.exe hat ein Problem festgestellt und muss beendet werden, Problembericht senden? blabla
In cmd wird mir kein error angezeigt. Brauch ich vieleicht eine bestimmte xkas Version (ich benutze die, die für romis cutscenes gebraucht wird)?
geschrieben am 14.06.2011 19:19:24
( Link )
Du brauchst v0.06
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 14.06.2011 19:35:32
( Link )
Besten Dank, jetzt funktioniert alles einwandfrei. Das ist wirklich ein Klasse patch, sehr gute Arbeit!
geschrieben am 21.10.2011 15:09:56
( Link )
Leider hab ich mal wieder ein kleines Problem zu vermelden - ich bin mir nicht sicher, ob es wirklich an deinem Patch liegt, aber ich benutze sonst nichts, das in irgendeiner Weise die SRAM-Einstellungen ändert.

Das Problem ist folgendes: Manche Dinge, für die der SRAM zuständig sein sollte - wie die Level, in denen man schon alle fünf Yoshi-Münzen gesammelt hat - werden nicht gespeichert; stattdessen werden sie nach Save+Reset wieder zurückgesetzt. Dasselbe gilt für Adressen, die laut RAM-Map in den SRAM gespeichert werden (wie $1F2B) und anscheinend sogar SRAM-Adressen selbst (wie $701003). Letzteres wird per LevelASM gesetzt, ist aber nach Save+Reset wieder Null.

Irgendwelche offensichtlichen Lösungen?
geschrieben am 21.10.2011 15:51:50
( Link )
Zitat von WYE:
Das Problem ist folgendes: Manche Dinge, für die der SRAM zuständig sein sollte - wie die Level, in denen man schon alle fünf Yoshi-Münzen gesammelt hat - werden nicht gespeichert; stattdessen werden sie nach Save+Reset wieder zurückgesetzt.


Ich kann mit ziemlicher Sicherheit sagen, dass die Yoshi-Münzen gar nicht erst im SRAM gespeichert werden. Sonst hätte ich ja nie den Patch für Mert geschrieben. Die werden nach Reset immer zurückgesetzt.

Zitat von WYE:
Dasselbe gilt für Adressen, die laut RAM-Map in den SRAM gespeichert werden (wie $1F2B)


Bei der steht doch sogar extra dabei, dass sie auf dem Titlescreen zurückgesetzt wird. Da spielt es wahrscheinlich auch keine Rolle, dass sie im SRAM gespeichert wird.

Zitat von WYE:
und anscheinend sogar SRAM-Adressen selbst (wie $701003). Letzteres wird per LevelASM gesetzt, ist aber nach Save+Reset wieder Null.


Hast du die Adresse vielleicht schon im Patch irgendwo verwendet? Ansonsten würde ich mal andere Adressen ausprobieren. Ich weiß jetzt nicht genau, wie es im Spiel mit einzelnen SRAM-Adressen aussieht. Kann sein, dass die automatisch irgendwo geleert werden. Ich denke jedenfalls nicht, dass irgendetwas davon mit dem Patch zusammenhängt. Möglicherweise liegt's am Emulator.
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 21.10.2011 16:43:41
( Link )
Zitat von RPG Hacker:
Ich kann mit ziemlicher Sicherheit sagen, dass die Yoshi-Münzen gar nicht erst im SRAM gespeichert werden. Sonst hätte ich ja nie den Patch für Mert geschrieben. Die werden nach Reset immer zurückgesetzt.

Hm, da hast du sogar recht... in dem Fall fürchte ich, ich muss dich bitten, mir besagten Patch zu geben. oder verrat mir einfach, wie du's gemacht hast, das reicht mir glaube ich auch schon.

Zitat von RPG Hacker:
Bei der steht doch sogar extra dabei, dass sie auf dem Titlescreen zurückgesetzt wird. Da spielt es wahrscheinlich auch keine Rolle, dass sie im SRAM gespeichert wird.

Touché.

Zitat von RPG Hacker:
Hast du die Adresse vielleicht schon im Patch irgendwo verwendet? Ansonsten würde ich mal andere Adressen ausprobieren. Ich weiß jetzt nicht genau, wie es im Spiel mit einzelnen SRAM-Adressen aussieht. Kann sein, dass die automatisch irgendwo geleert werden. Ich denke jedenfalls nicht, dass irgendetwas davon mit dem Patch zusammenhängt. Möglicherweise liegt's am Emulator.

Nö, am Emulator liegt's nicht. Kann es daran liegen, dass ich den "initalize RAM"-Teil deines Patches so verändert hab, dass SRAM-Adressen, die ich für andere Zwecke benutze, gleich mit intialisiert werden? Muss ich möglicherweise irgendwo anders im Code noch was verändern, damit diese neuen Adressen auch gespeichert werden? Kann ich mir zwar nicht vorstellen, aber na ja.
geschrieben am 21.10.2011 17:11:00
( Link )
Zitat von WYE:
Hm, da hast du sogar recht... in dem Fall fürchte ich, ich muss dich bitten, mir besagten Patch zu geben. oder verrat mir einfach, wie du's gemacht hast, das reicht mir glaube ich auch schon.


Da solltest du Mert fragen. Wenn es ihm passt, habe ich auch kein Problem damit. Allerdings dürfte er für einige Zeit nicht online sein, da sein PC kaputt ist. Erklären kann ich da allerdings auch nicht all zu viel. Habe halt mit den RAM-Adressen der Yoshi-Münzen eine Routine geschrieben, die alle im SRAM abspeichert und auch wieder davon lädt. Eigentlich keine all zu große Sache. Für die Anzeige der Münze auf der Overworld habe ich das Stripe Image vom Layer 3 auf der Overworld verwendet.

Zitat von WYE:
Kann es daran liegen, dass ich den "initalize RAM"-Teil deines Patches so verändert hab, dass SRAM-Adressen, die ich für andere Zwecke benutze, gleich mit intialisiert werden?


Ja, ist sogar wahrscheinlich. Die Routine wird immerhin bei jedem Start des Spiels ausgeführt und soll dafür sorgen, dass das Spiel sich nicht wegen fehlerhafter Daten aufhängt. Somit würden deine SRAM-Adressen auf jeden Fall bei jedem Spielstart zurückgesetzt werden.

Zitat von WYE:
Muss ich möglicherweise irgendwo anders im Code noch was verändern, damit diese neuen Adressen auch gespeichert werden? Kann ich mir zwar nicht vorstellen, aber na ja.


Mein Patch speichert ja eigentlich gar nichts im SRAM. Er benutzt den SRAM wie ganz normalen RAM um darin Grafiken zu bearbeiten und so. Tatsächlich kannst du im Patch für die SRAM-Adressen sogar einfache RAM-Adressen benutzen und es funktioniert immer noch. Am besten wäre es also, wenn du einfach SMWs Save-Routine bearbeiten und deinen Code da einfügen würdest. Entsprechend dann auch die Load-Routine.
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 21.10.2011 17:33:03
( Link )
Zitat von RPG Hacker:
Ja, ist sogar wahrscheinlich. Die Routine wird immerhin bei jedem Start des Spiels ausgeführt und soll dafür sorgen, dass das Spiel sich nicht wegen fehlerhafter Daten aufhängt. Somit würden deine SRAM-Adressen auf jeden Fall bei jedem Spielstart zurückgesetzt werden.

Argh, natürlich - initialisieren heißt ja bei jedem Start zurücksetzen. Wie blöd kann ich eigentlich sein? Ich schieb's mal auf die Erkältung.
Die Frage ist nur... wie bekomm ich's dann hin, dass eine Adresse einmal initialisiert und trotzdem gespeichert wird? Hm, am besten, ich initialisiere sie an einer Stelle, die nur einmal ausgeführt wird, zum Beispiel direkt nach dem Auswählen eines neuen Speicherstandes.

Ich glaube, jetzt hab ich alle Informationen, die ich brauche - jetzt zerbrech ich mir den Kopf drüber und ordne sie, wenn ich Zeit hab, und dann hab ich das Problem gelöst. (Und ich denke mal, den Yoshi-Münzen-Patch krieg ich auch noch selber hin.) Danke für die Hilfe!
geschrieben am 22.10.2011 16:55:31
( Link )
Okay, ich geb auf. Kannst du mir, auf welchem Wege auch immer, den Yoshi-Münzen-Patch mal zukommen lassen?

Ich hab das Gefühl, ich weiß selber nicht genau, was ich tue. Ich weiß nur, dass das Problem erst mal gelöst wäre, wenn ich $1F2F bis $1F3A in den SRAM gespeichert kriegen würde (glaube ich). Ich würde gerne mal probieren, ob dein Patch mein Problem löst, und wenn er's tut, dann kann ich Mert immer noch spter um Erlaubnis fragen.
geschrieben am 22.10.2011 17:19:24
( Link )
Den habe ich gar nicht mehr auf meinem Computer. Hast du schon probiert, $009BC9 und $009CEF zu hijacken?
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 22.10.2011 22:25:08
( Link )
Das Problem ist, dass ich den "One File, One Player"-Patch von Noobish Noobsicle verwende und der, so weit ich weiß, so ziemlich alles verändert, was mit Speicherständen zu tun hat. Ich schätze mal, ich werde den Patch selbst verändern müssen - zwar kein Ding der Unmöglichkeit, aber nervig, da ich mich erst in fremden Code reinfinden muss.

Ich werd's morgen mal probieren. (Ich komm mir beim Fragenstellen immer ganz schön dumm vor... als würde alles, was ich sage, falsch rüberkommen...)
geschrieben am 22.10.2011 22:26:56
( Link )
Musst du den Patch denn unbedingt verwenden? Soweit ich das sehe bringt der doch überhaupt keine Vorteile, sondern nur Nachteile. Wieso sollte ein Speicherstand schon besser als drei sein, außer man müsste aus Kostengründen SRAM sparen und hätte trotzdem viele Daten zu speichern?
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 22.10.2011 23:31:14
( Link )
Bringen tut er eigentlich nichts - es sieht nur nett aus und ist mal was anderes, das ist alles.

Wie auch immer, ich hab ein bisschen was probiert und es immer noch nicht komplett zum Laufen gekriegt. Ich schlaf' mal drüber und versuch's morgen noch mal, und im schlimmsten Falle nehm ich besagten Patch halt raus.
geschrieben am 24.10.2011 20:22:52
( Link )
Wollte dich nur wissen lassen, dass ich jetzt zum Laufen gekriegt habe, was ich wollte - und dass es wirklich alles andere als schwer war, wenn man erst mal wusste, was man zu tun hatte.

(Auch wenn das mit deinem Patch eigentlich gar nichts mehr zu tun hat. )
geschrieben am 24.10.2011 20:27:31
( Link )
Schon gut. Ab und zu kann man schonmal abschweifen.

Schön, dass du's hinbekommen hast.
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.