VWF-Dialoge v1.0

geschrieben am 13.11.2010 13:13:13
( Link )
Muss man da noch was zu sagen? Echt klasse gemacht.
geschrieben am 13.11.2010 13:17:43
( Link )
Danke für all' die positiven Reaktionen!
-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 13.11.2010 13:27:00
( Link )
Zitat von RPG Hacker:
Danke für all' die positiven Reaktionen!



Ehm...hast du wirklich geglaubt, jemand hätte was negatives dagegen zu sagen

Aber ich glaube ich frage es einfach mal, obwohl ich die Antwort schon kenne (hint:ja)

Sollen wir den Dialoge-Patch für den Teamhack verwenden
Wie kritisch man doch gegenüber dem System wird, wenn man älter wird...
geschrieben am 13.11.2010 13:35:40
( Link )
Zitat von Shog:
Ehm...hast du wirklich geglaubt, jemand hätte was negatives dagegen zu sagen


Das vielleicht nicht, aber ich hätte nie im Leben mit so vielen Antworten gerechnet (die auf SMW Central mitgezählt).

Zitat von Shog:
Sollen wir den Dialoge-Patch für den Teamhack verwenden


Ist natürlich fraglich, ob sich das lohnt, wenn der Hack ja nicht sooo einen Fokus auf Story legt und wohl auch nicht so übertrieben viel Text enthalten wird.
-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 13.11.2010 13:53:54
( Link )
Aber dein Patch macht nunmal alles episch ! Obwohl, den kann man ja auch am Ende einfügen...och mann ich will endlich mal Level oder zumindestens die OW vom Teamhack anfangen^^

nun zum PatchLiesmich: Wirst du es auch auf Deutsch evtl. übersetzen?
Wie kritisch man doch gegenüber dem System wird, wenn man älter wird...
geschrieben am 13.11.2010 13:56:26
( Link )
Zitat von Shog:
Aber dein Patch macht nunmal alles episch !


Naja, spätestens wenn mehrere Leute den nutzen, wirst du das anders sehen!
Ist mit allen neuen Sachen so. Romi's Cutscene Tool fand ich am Anfang auch super. Mittlerweile ist es aber doch irgendwie nervig, ihn in jedem Hack zu sehen.

Zitat von Shog:
nun zum PatchLiesmich: Wirst du es auch auf Deutsch evtl. übersetzen?


Habe ich vor, ja. Die Frage ist nur, wann.
-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 13.11.2010 14:03:37
( Link )
Aber diese Sache ist viel sinnvoller und epischer als Romi's Cutsceen Tool.
Hier wird nemlich nicht der ganze Spielverlauf unterbrochen. Außerdem hat es einfach im gesammten mehr Style xD

Bald kennt jeder deinen Namen: "RPG Hacker" =P

geschrieben am 13.11.2010 14:15:07
( Link )
Joa, ich denke der Vorteil bei meiner Version ist, dass man die Text Box so leicht in Größe, Position und Aussehen verändern kann und deswegen nicht jedes Spiel, das diesen Patch benutzt, gleich aussehen muss. Bei Romi's Tool hingegen konnte man lediglich den Font verändern. Naja, mal schauen.

Und joa, das wäre natürlich cool!
-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 13.11.2010 15:18:28
( Link )
Zitat von RPG Hacker:
Zitat von Shog:
nun zum PatchLiesmich: Wirst du es auch auf Deutsch evtl. übersetzen?


Habe ich vor, ja. Die Frage ist nur, wann.


Wenn du nicht die Zeit findest, wär's mir eine Ehre.
geschrieben am 13.11.2010 15:26:00
( Link )
Zeit wäre, denke ich, nicht das Problem. Wenn überhaupt, dann die Lust. Naja, mal schauen. Vorher gucke ich erstmal, ob in nächster Zeit noch irgendjemand Bugs findet oder ich noch ein paar Sachen hinzufüge. Vorher lohnt es sich nicht, die Readme schon zu übersetzen.

Apropos: Habe eben erst einen Fehler in der Readme gefunden und korrigiert. Habe ein relativ wichtiges Sonderzeichen - nämlich $FC - aus Versehen in der Erklärung übersprungen. Habe auch im Patch noch eine winzige Kleinigkeit verändert. Es lohnt sich also, sich das Paket noch einmal runterzuladen.
-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 13.11.2010 18:09:55
( Link )
Hm, ich hab den Patch mal bei meinem Hack benutzt, und der friert nach dem Title-Screen (auf dem auch keine Musik mehr spielt) entweder ein oder fängt wieder beim Presents-Logo an. Kurz gesagt: Irgendwas ist da nicht kompatibel. Ich porte mal und versuche herauszufinden, was.
geschrieben am 13.11.2010 18:42:11
( Link )
Ob du Freespace eingestellt hast, brauche ich ja nicht zu fragen, oder?

Aber welche Version von Lunar Magic benutzt du denn? Und wie groß ist deine ROM? Möglicherweise auch ein Konflikt bei irgendwelchen Hijack-Addressen. Kannst ja mal alle Hijacks in meinem Patch durchgehen.
-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 13.11.2010 20:02:32
( Link )
1.82, 2MB. Ich gehe gerade jeden Patch einzeln durch; es könnte aber auch an Addmusic liegen. Probier du's vielleicht auch mal aus.
geschrieben am 13.11.2010 20:43:52
( Link )
Ich darf doppelposten.

Ich glaube, ich habe die Ursache gerade gefunden, und selbst wenn's noch andere Sachen gitb, die das Problem verursacht haben, das hier ist auf jeden Fall eine davon. Ich rede von einem halb-selbstgemachten Patch, der die IRQ-Routine hackt und sowohl die Anzahl der Status-Bar-Scanlines für jedes Level verändern kann als auch die Status-Bar immer in den Main-Screen befördert. So weit kapiert? (Ich bin schlecht im erklären...) Der Code ist jedenfalls hier:

Code
; von KilloZapit
; Verhindert, dass bei Layer-3-Hintergründen,
; die hinter Layer 2 erscheinen, die Statusleiste
; auch in den Hintergrund tritt

header
lorom

org $008292
JML PreStatusBar : NOP : NOP
org $0083AD
JML PostStatusBar : NOP


!LevelNum = $010B
!blockaddress = $288000
org !blockaddress ; address to put code
; -------------------------------------------
db "STAR" ; Write RATS tag
dw Endcodeblock-Startcodeblock
dw Endcodeblock-Startcodeblock^$FFFF
; -------------------------------------------
Startcodeblock: ; code starts here
; -------------------------------------------

; Set Status Bar Scroll/Screen/Ect
PreStatusBar:
; old


;LDY.b #$24 ; Scanline-Anzahl


REP #$10 ; \ Da sich der Patch mit
LDX !LevelNum ; | Ersanios Scanline-Hack
LDA.l IRQTable,x; | überschneidet, wird der hier
SEP #$10 ; | mit eingefügt, d.h. das originale
TAY ; | LDY #$24 durch seinen Code zum Ändern
LDA $4211 ; / auf Level-Basis ersetzt

STY $4209
STZ $420A
STZ $11
LDA.b #$A1
STA $4200
STZ $2111
STZ $2111




; new

STZ $2112
STZ $2112
; Force status bar in main screen
LDA $0D9D
ORA.b #$04
STA $212c
; set level's Sub Screen
LDA $0D9E
STA $212d
; return to NMI
JML $8082B0

PostStatusBar:
; Set level's CGADSUB
LDA $40
STA $2131
; restore level's normal Main Screen
LDA $0D9D
STA $212c
; return to IRQ handler
JML $8083B2



IRQTable: db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 00-07
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 08-0F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 10-17
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 18-1F
db $24,$24,$24,$24,$24,$00,$00,$00 ;Levels 20-27
db $00,$00,$00,$00,$00,$00,$00,$00 ;Levels 28-2F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 30-37
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 38-3F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 40-47
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 48-4F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 50-57
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 58-5F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 60-67
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 68-6F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 70-77
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 78-7F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 80-87
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 88-8F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 90-97
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 98-9F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels A0-A7
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels A8-AF
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels B0-B7
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels B8-BF
db $24,$24,$24,$24,$24,$00,$24,$24 ;Levels C0-C7
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels C8-CF
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels D0-D7
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels D8-DF
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels E0-E7
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels E8-EF
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels F0-F7
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels F8-FF
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 100-107
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 108-10F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 110-117
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 118-11F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 120-127
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 128-12F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 130-137
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 138-13F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 140-147
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 148-14F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 150-157
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 158-15F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 160-167
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 168-16F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 170-177
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 178-17F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 180-187
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 188-18F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 190-197
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 198-19F
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 1A0-1A7
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 1A8-1AF
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 1B0-1B7
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 1B8-1BF
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 1C0-1C7
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 1C8-1CF
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 1D0-1D7
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 1D8-1DF
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 1E0-1E7
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 1E8-1EF
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 1F0-1F7
db $24,$24,$24,$24,$24,$24,$24,$24 ;Levels 1F8-1FF


; -------------------------------------------
Endcodeblock: ; code ends here
; -------------------------------------------


Das Problem ist zwar nicht ganz dasselbe wie das am Anfang beschriebene (jetzt funktionert zwar alles, aber die VWF-Dialoge werden nicht richtig eingeblendet), aber ein Problem ist es auf jeden Fall. Wäre echt sehr nett, wenn du rausfinden könntest, warum es nicht geht und möglicherweise eine Lösung finden könntest.

So sieht's übrigens aus:
Spoiler anzeigen
geschrieben am 13.11.2010 20:45:16
( Link )
Könnte tatsächlich gut sein, dass das an Addmusic liegt. Ja, genau. Jetzt wo du's sagst: Als ich diesen Raum vor Bowser aufnehmen wollte, der ja die Custom Music aus Yoshi's Island verwendet, habe ich tatsächlich so einige Schwierigkeiten gehabt. Irgendwie war es ziemlich schwer, beides gleichzeitig zum Laufen zu kriegen: Die Custom Music und den Patch. Also mit Romi's Addmusic bekam ich nur verglichte Musik, mit carol's Musik musste ich die Musik immer wieder neu einfügen, damit überhaupt etwas abspielte. Allerdings muss ich eine Sache erwähnen: Als ich das Video aufgenommen hatte, hatte ich noch dieses Macro-System für neue Banks drin. Dennoch hatte ich aber 4 verschiende Fonts - darunter auch den japanischen Font, der ja noch mal aus ganz vielen normalen Fonts besteht - in der ROM drin, die alle nicht durch einen RATS-Tag geschützt waren. Von daher denke ich viel eher, dass es daran lag, dass die meisten Programme diese Daten als Freespace erkannt und überschrieben haben und es so immer wieder zu Konflikten zwischen Patch und Addmusic kam. Das ist aber nur eine Theorie und tatsächlich habe ich Addmusic mit diesem Patch nicht mehr getestet, seit ich ihn vollendet habe.

Welches Addmusic benutzt du denn? Also mit carol's und Romi's Addmusic könnte es tatsächlich gut sein, dass das nicht geht. Mit AddmusicM sollte es allerdings funktionieren, denn die ROM, die ich anfangs zum testen verwendet habe, war eine ROM, die auch AddmusicM gepatcht hatte und Musik damit abspielte. Damit gab es soweit ich mich erinnern kann nie Probleme.

Ich werde der Sache jedenfalls auf den Grund gehen. Kann mir allerdings nicht vorstellen, woran das liegen soll, wenn nicht an dem von mir geschilderten Problem mit den RATS-Tags. Habe im Patch nur ca. 8 Hijacks, die alle eigentlich nicht wirklich was mit Musik zu tun haben.

Eine komplett neue ROM hast du auch schon probiert, oder?

@Ninja-EDIT:
Ah ja, Layer 3 und IRQ. Joa, wären natürlich beides mögliche Überschneidungsquellen. Ich werde mir das mal ansehen.

EDIT:
Jab, scheint auf jeden Fall mit IRQ zu tun zu haben. Mein Patch deaktiviert IRQ in Dialogen einfach, sodass die verglichten Status-Bar-Grafiken unsichtbar sind. Dieser Patch macht wohl auch irgendetwas mit IRQ, sodass es zu Überschneidungen kommt.

EDIT2:
Naja, klar.

KilloZapit:
Code
org $008292
JML PreStatusBar : NOP : NOP


Ich:
Code
org $008297|$800000		; Hijack NMI for various things
jml NMIHijack|$800000
nop #$2


Wenig verwunderlich, dass es zu Konflikten kommt.

Also was genau macht der Patch nochmal? Ja, jetzt bräuchte ich tatsächlich eine detailierte Erklärung, damit ich gucken kann, ob ich den Hijack irgendwie umlegen und sonstige Konflikte zwischen den zwei Patches verhindern kann.

EDIT3:
Möglicherweise reicht es schon, das JML $8082B0 in KilloZapits Patch in JML $808297 umzuändern (und KilloZapits Patch auf jeden Fall immer vor meinem anzuwenden). Zwar dürften sich die zwei Patches dann durchaus noch überschneiden, aber beim Hijack in KilloZapits Patch werden am Ende ja nur NOPs geschrieben, die nur einen Byte lang sind und sowieso nichts tun, daher also von meinem Patch ohne Negativeffekt überschrieben werden können. Problem: Ich weiß nicht, ob KilloZapits Patch dann noch das tut, was er soll. Es sieht ja fast so aus, als wollte er mit diesem JML einen Teil von Code überspringen. Evtl. kehrt mein Patch aber dann viel zu früh zurück, sodass dieser Effekt nicht funktioniert, wie erwünscht. Verstehst du, was ich meine?
-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 13.11.2010 21:04:55
( Link )
Ich mache mal einen Doppelpost, um dich auf die Edits im letzten Post aufmerksam zu machen. Habe aber auch eine Frage: Diese $00en in IRQTable sollen die Status Bar doch unsichtbar machen, oder? Funktioniert das in allen Emulatoren?
-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 13.11.2010 21:09:14
( Link )
Zitat von RPG Hacker:
Ich mache mal einen Doppelpost, um dich auf die Edits im letzten Post aufmerksam zu machen. Habe aber auch eine Frage: Diese $00en in IRQTable sollen die Status Bar doch unsichtbar machen, oder? Funktioniert das in allen Emulatoren?

So ist es. Und in bsnes funktioniert's.

Zitat von RPG Hacker:
Also was genau macht der Patch nochmal? Ja, jetzt bräuchte ich tatsächlich eine detailierte Erklärung, damit ich gucken kann, ob ich den Hijack irgendwie umlegen und sonstige Konflikte zwischen den zwei Patches verhindern kann.

Sein Hauptanliegen ist, die Status-Bar in den Main-Screen zu schieben und den Rest von Layer 3 nicht. Nützlich bei Layer-3-Hintergründen, die hinter Layer 2 sind - ohne den Patch würde auch die Status-Bar hinter layer 1 und 2 verschwinden.
Daneben hab ich auch noch den "Statusbar Scanline Hack" von Ersanio eingebaut. der bewirkt, dass die Status-Bar nicht immer 24 Scanlines beansprucht, sondern man es in jedem Level einzeln festlegen kann (durch die Tabelle am Ende). Gut für Cutscenes, bei denen sie stören würde.

Ich hoffe, das war detailliert genug... Ich glaube, besser kann ich's nicht.

Zitat von RPG Hacker:
Möglicherweise reicht es schon, das JML $8082B0 in KilloZapits Patch in JML $808297 umzuändern (und KilloZapits Patch auf jeden Fall immer vor meinem anzuwenden). Zwar dürften sich die zwei Patches dann durchaus noch überschneiden, aber beim Hijack in KilloZapits Patch werden am Ende ja nur NOPs geschrieben, die nur einen Byte lang sind und sowieso nichts tun, daher also von meinem Patch ohne Negativeffekt überschrieben werden können. Problem: Ich weiß nicht, ob KilloZapits Patch dann noch das tut, was er soll. Es sieht ja fast so aus, als wollte er mit diesem JML einen Teil von Code überspringen. Evtl. kehrt mein Patch aber dann viel zu früh zurück, sodass dieser Effekt nicht funktioniert, wie erwünscht. Verstehst du, was ich meine?

Zumindest tut's was. Die VWF-Dialoge werden richtig angezeigt, nur nachdem sie verschwinden, wird einen Frame lang der ganze Bildschirm mit verglitchten Teilen gefüllt. Und ob der Patch noch irgendeinen Effekt hat (also ob er die Status-Bar noch in den Main-Screen befördert), hab ich noch nicht ausprobiert. (Der Scanline-Tile funktioniert noch).
geschrieben am 13.11.2010 21:17:56
( Link )
Ja, diese Erklärung war detailiert. Jetzt habe ich ein genaues Bild davon, was der Patch macht.

Zitat von WYE:
Zumindest tut's was. Die VWF-Dialoge werden richtig angezeigt, nur nachdem sie verschwinden, wird einen Frame lang der ganze Bildschirm mit verglitchten Teilen gefüllt. Und ob der Patch noch irgendeinen Effekt hat (also ob er die Status-Bar noch in den Main-Screen befördert), hab ich noch nicht ausprobiert. (Der Scanline-Tile funktioniert noch).


OK, ich verstehe. Ich denke ich weiß, was los ist. Das Problem ist, dass KilloZapits (es nervt mich echt extrem, dass ich diesen Namen nicht abkürzen kann, denn "KZ" wäre einfach kein schönes Kürzel) Patch in allen Levels aktiv ist. Wäre er nur in Levels aktiv, wo er auch gebraucht wird, könnte ich einfach sagen "Gut, dann benutzt die Dialoge eben nur in Levels, die keinen Layer-3-Hintergrund haben". Wahrscheinlich würdest du das ja sowieso tun, weil mein Patch ja Layer 3 für kurze Zeit verschwinden lässt. Hier ist jedenfalls das Problem:

KilloZapits Patch verändert ja was mit Main- und SubScreen und Layer 3. Genau dasselbe macht mein Patch auch, wenn er Layer 3 back upped und restored. Beim backuppen ist es wahrscheinlich noch nichtmals so schlimm, dass es einen Konflikt zwischen den zwei Patches gibt. Beim restoren allerdings schon, denn in meinem Patch mache ich folgendes: Ich setze Layer 3 sowohl im Main- als auch im Subscreen auf 0. Dadurch wird er unsichtbar. In dieser Zeit restore ich dann die alten Grafiken. So bekommt der Spieler die verglichten Grafiken nicht zu sehen. Da KilloZapits Patch aber dieselben Register beschreibt und auch noch mit Werten, die nicht 0 sind, wird Layer 3 wieder sichtbar, obwohl er für meinen Patch unsichtbar sein sollte. Folge: Der Spieler bekommt die verglichten Grafiken zu sehen.

Ich werde mal gucken, ob ich in KilloZapits Patch irgendwie eine Abfrage einbauen kann, damit der nur in Levels läuft, wo er auch gebraucht wird.

EDIT:
Gibt es vielleicht irgendeine RAM-Addresse, die in Levels mit Layer 3 im Hintergrund besondere Merkmale aufweist? Die könnte ich dann hierfür verwenden.
-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 13.11.2010 21:26:27
( Link )
Schön, wenn sich alles erklären lässt. So wird's sein.

Gut, dann kann ich mich in der Zeit ja mal nach einer Alternative umsehen (der Thread, in dem KilloZapit den Patch gepostet hat, enthielt auch noch eine alternative Methode von edit1547; ich suche mal den Thread), während du versuchen kannst, eine Lösung zu finden.

Das nenne ich Arbeitsteilung.

EDIT: Okay, die Alternative wäre, das Main-Screen-Zeugs mit HDMA zu machen. Das hieße dann, dass ich in einem Level mit Layer-3-Hintergrund einen HDMA-Channel weniger zur Verfügung hätte. Das könnte/müsste ich dann auch noch verschmerzen, wenn du keine Lösung findest.
geschrieben am 13.11.2010 21:41:36
( Link )
Diese ganzen Edits...

Zitat von RPG Hacker:
EDIT:
Gibt es vielleicht irgendeine RAM-Addresse, die in Levels mit Layer 3 im Hintergrund besondere Merkmale aufweist? Die könnte ich dann hierfür verwenden.

Ich glaube, ich könnte ein einfaches LDA #$01 : STA !FreeRAM in den Stripe-Image-Upload-Patch einbauen. !FreeRAM wäre dann 01, wenn das Level einen Layer-3-BG hat.