VWF-Dialoge v1.0

geschrieben am 13.11.2010 21:45:33
( Link )
@Vorherige Post: Das würde wohl trotzdem nicht funktionieren, weil HDMA wahrscheinlich auch nichts anderes machen würde, als die Main- und Subscreen-Einstellungen pro Scanline zu verändern. HDMA ist ja eigentlich dasselbe wie IRQ, bloß schneller, etwas leichter und dafür aber auch etwas beschränkter. Die einzige Möglichkeit, die ich sehe, ist wirklich, das nur in den Levels zu aktivieren, wo es auch gebraucht wird (und in diesen Levels dann auf meine Dialoge zu verzichten).

Aber um nochmal auf meine Frage zurückzukommen:
Benutzt du irgendwelche RAM-Addressen um festzulegen, in welchen Levels Layer 3 hinter Layer 2 erscheinen soll? Benutzt du dafür vielleicht $7E0D9D und $7E0D9E? Mehr bräuchte ich eigentlich nicht zu wissen um eine Lösung zu finden.

@Post gerade eben: Also FALLS du $7E0D9D und $7E0D9E benutzt sollte es wirklich kein Problem sein das zu fixen. Benutzt du die denn?
-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:50:58
( Link )
Zitat von RPG Hacker:
@Post gerade eben: Also FALLS du $7E0D9D und $7E0D9E benutzt sollte es wirklich kein Problem sein das zu fixen. Benutzt du die denn?


Ja, das tu ich.

Code
	;so benutze ich's
LDA.b #%00010001; \
STA.w $0D9D ; | Layer 3 in den Subscreen,
LDA.b #%00000110; | alles andere in den Mainscreen
STA.w $0D9E ; /
geschrieben am 13.11.2010 22:15:59
( Link )
Dann probier mal folgendes: Da, wo jetzt zur Zeit das auskommentierte "LDY #$24" steht fügst du mal folgendes ein:

Code
LDA $0D9D
ORA $0D9E
AND #$04
BNE +
JML $808297

+


Zur Erklärung: Erst wird $0D9D mit $0D9E geodert. Wäre auf einem von beiden Layer 3 aktiv, würde Bit 2 = 1 sein. Das ganze wird dann noch mit #$04 geundet um eben alle anderen Bits zu terminieren. Ist diese Zahl jetzt gleich 0 - und das kann nur dann eintreten, wenn mein Patch sie auf 0 gesetzt hat - dann ist Layer 3 gerade unsichtbar und der Code soll nicht ausgeführt werden. Ansonsten wird der Code ganz normal ausgeführt.

Falls das noch nicht gehen sollte (ich gehe aber davon aus, dass es das tut) oder falls du Dialoge auch unbedingt in Levels mit Layer 3 hinter Layer 2 einsetzen möchtest, könntest du mal folgendes probieren: Suche in meinem Patch per STRG + F nache "trb $0D9D" (das kommt nur einmal vor) und füge darunter ein "trb $0D9E" ein. Naja gut, in Levels mit Layer 3 hinter Layer 2 wäre das vielleicht doch keine so gute Idee, weil am Ende meines Patches dann Layer 3 wieder im Main Screen und somit vor Layer 2 wäre. In allen anderen Levels sollte es dann aber 100%ig funktionieren.

Probier's aus und sag Bescheid, ob es klappt.
-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 22:25:18
( Link )
Hm, nein, klappt nicht.

Es ist spät... Ich werd's morgen nochmal in aller Ruhe probieren.
geschrieben am 13.11.2010 23:38:40
( Link )
DOH! Natürlich, hab "PostStatusBar" vergessen. Der Patch enthält ja zwei Hijacks. Beim zweiten werden die Screen-Zuweisungen ja auch verändert. Also müsstest du da (am besten direkt unter das Label) nochmal haargenau denselben Code einfügen, bloß das JML diesmal durch ein "JML $8083B2" ersetzen. Hoffe mal, dass das dann funktioniert.

EDIT:
Naja, habe wohl noch einen weiteren Fehler gemacht. Diese Codes sollten an einer anderen Stelle eingefügt werden. Bei PreStatusBar unter dem "; Force status bar in main screen" und bei PostStatusBar unter dem "; restore level's normal Main Screen". So dürfte eigentlich auf keinen Fall etwas schiefgehen.
-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.11.2010 10:54:16
( Link )
So, ich poste das hier besser auch nochmal:
Es gibt einen Bug in ZSNES. ZSNES kann zu bestimmten Teilen im SRAM per JSL nicht richtig springen. Das führt mit der Default-Addresse in für !varram zu Crashes, wenn man den Befehl $F1 benutzt. In BSNES funktioniert es einwandfrei. Deswegen solltet ihr folgendes machen: Ändert die Addresse hinter !varram von "$727E00" zu "$702000". Das ist immer noch im SRAM, nur etwas früher und mit dieser Addresse hat ZSNES keine Probleme. Habe die modifizierte Version auch nochmal hochgeladen.
-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.11.2010 11:51:48
( Link )
Um das IRQ-Zeug kümmere ich mich später... es scheint tatsächlich hauptsächlich an Addmusic zu liegen, zumindest an Romis. Wenn ich mir die ASM-Dateien so anschaue, auch kein Wunder, denn es wimmelt von Hijacks im $008xxx-Bereich.

MUSIC.asm:

Code
lorom 
header
!MainCodeLocation = $1E8000 ;Point it to some free space
!FreeRAM = $7007FF
!MAIN_CODE_SIZE = END_OF_FILE-AddressTable
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org $00807C
JSL SPCUpload1
NOP #$2
org $00808D
JSL SPCUpload2
org $008096
JSL SPCUpload2
org $0080B4
JSL SPCUpload2
JSL SPCUpload2
TAX
JSL SPCUpload3
NOP #$3
org $008F65
JSL Bonus
NOP
org $009702
NOP #$3

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

org $00973B
NOP #$5
JSL CustomMusicMain
NOP #$2
org $00A1C7
JSL ClearRAM
org $00A64A
LDA $0DDA
AND #$7F
JSL HackingRoutine
NOP
org $05855F
BRA $02
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org !MainCodeLocation
db "STAR"
dw !MAIN_CODE_SIZE-$01
dw !MAIN_CODE_SIZE-$01^$FFFF

db $03 ;code version, for removing or modifying this main code in the future.

AddressTable: dl $000000,$000000,$000000,$000000 ; 20-23, 24-27, 28-2B, 2C-2F
dl $000000,$000000,$000000,$000000 ; 30-33, 34-37, 38-3B, 3C-3F
dl $000000,$000000,$000000,$000000 ; 40-43, 44-47, 48-4B, 4C-4F
dl $000000,$000000,$000000,$000000 ; 50-53, 54-57, 58-5B, 5C-5F

dl $000000,$000000,$000000,$000000 ; 60-63, 64-67, 68-6B, 6C-6F
dl $000000,$000000,$000000,$000000 ; 70-73, 74-77, 78-7B, 7C-7F
dl $000000,$000000,$000000,$000000 ; 80-83, 84-87, 88-8B, 8C-8F
dl $000000,$000000,$000000,$000000 ; 90-93, 94-97, 98-9B, 9C-9F


CustomMusicMain: STZ $0DAE
STZ $0DAF

LDA $0100
CMP #$11
BNE Return

LDA $0DDA
CMP !FreeRAM
CLC
BEQ ActualNumber
STA !FreeRAM
CMP #$20
BCC UploadLevel
CustomMusic: REP #$30
AND #$00FF
LSR A
LSR A
STA $00
ASL A
ADC $00
TAX
LDA AddressTable-$18,x
PHA
LDA AddressTable-$18+$01,x
STA $04

LDA #$8000
STA $00
SEP #$30
LDA #$00

PHK
PER $0006
PEA $804C
JML $80811A

REP #$20
PLA
STA $00
SEP #$20
LDX #$1D
.wait DEX
BNE .wait
LDA $05

PHK
PER $0006
PEA $804C
JML $80811A


SEC
ActualNumber: LDA $0DDA
BIT #$E0
BEQ Clear1DFB
AND #$03
INC A
ORA #$20
STA $0DDA
BCS StoreTo1DFB
Clear1DFB: LDA #$00
StoreTo1DFB: STA $1DFB
Return: RTL

UploadLevel: PHK
PER $0006
PEA $804C
JML $008148
LDA $0DDA
BRA StoreTo1DFB

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
HackingRoutine: AND #$3F
STA $0DDA
LDA #$FF
STA !FreeRAM
RTL

ClearRAM: LDA #$FF
STA !FreeRAM
JML $848241

Bonus: LDA #$FF
STA !FreeRAM
STA $1425
RTL

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SPCUpload1: LDA $00
AND #$7FFF
TAY
LDA #$8000
STA $00
LDA #$BBAA
RTL



SPCUpload2: LDA [$00],y
INY
BPL .R
LDY #$0000
INC $02
.R XBA
RTL

SPCUpload3: JSL SPCUpload2
JSL SPCUpload2
STA $2142
XBA
STA $2143
RTL


END_OF_FILE:


MORE.asm:

Code
lorom
header

;patch this to your ROM ONLY IF you don't use -se option of AddMusic.
;Because, AddMusic inserts MORE.bin (if it is in the same directory as AddMusic) automatically
;when you use -se option.


!MainCodeLocation = $258000 ;Point it to some free space!
!MAIN_CODE_SIZE = END_OF_FILE-CodeStart
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org $008055
JML UploadData
NOP
NOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

org !MainCodeLocation
db "STAR"
dw !MAIN_CODE_SIZE-$01
dw !MAIN_CODE_SIZE-$01^$FFFF

CodeStart:
UploadData: STZ $0100
STZ $0109
REP #$10
LDX #$0000
Wait: DEX
BNE Wait
SEP #$30
LDA.b #CodeStart
STA $00
LDA.b #CodeStart/$0100
STA $01
LDA.b #CodeStart/$010000
STA $02
PEA $805A
JML $80811D

incbin MORE.bin
db $00,$00,$00,$05
END_OF_FILE:


ich hoffe, es läuft nicht auf ein "Addmusic oder VWF-Patch"-Szenario heraus.
geschrieben am 14.11.2010 11:58:10
( Link )
Zitat von WYE:
MORE.asm:

Code
[...]
org $008055
JML UploadData
NOP
NOP


vwfdialogues.asm:

Code
org $008055|$800000		; Initialize RAM to prevent glitches
jml InitCall|$800000 ; or game crashes
nop #2


Scheint mir eine einfache Überschneidung zu sein. Ich werde mal gucken, ob ich's in meinem Patch umlegen kann, da Romi's Addmusic ja öfters genutzt 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 14.11.2010 12:07:04
( Link )
So, hab den Hijack nach $008064 verschoben. Probier's jetzt nochmal.
-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.11.2010 12:11:10
( Link )
Jetzt crasht's schon ohne Addmusic gleich nach dem Patchen.

Könnte aber auch an mir liegen. Ich werd nochmal alles in aller Ruhe porten.
geschrieben am 14.11.2010 12:13:20
( Link )
Vielleicht ein Konflikt mit irgendeinem anderen Patch?
-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.11.2010 12:14:55
( Link )
Okay, ich hab's nochmal mit der letzten nicht geporteten ROM probiert, und es GEHT! Zwar taucht in Leveln mit Layer-3-BG immer noch der "Screen einen Frame lang verglitcht"-Bug auf, aber in solchen Leveln benutz ich ihn ja eh nicht. (EDIT: Auch in Leveln ohne Layer-3-BG disablet er jetzt HDMA. Mal sehen, woran das liegt.)

Allerdings ist der Status-Bar-IRQ-Patch noch nicht wieder drauf. ich probier's mal aus.
geschrieben am 14.11.2010 12:22:12
( Link )
Nee, der Status-IRQ-Patch bringt alles durcheinander. So sieht's momentan aus:

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 = $258000
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 $0D9E
AND #$04
BNE +
JML $808297

+


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
ORA $0D9E
AND #$04
BNE +
JML $8083B2

+


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
; -------------------------------------------
geschrieben am 14.11.2010 12:25:42
( Link )
Fuck, das "GEHT" nehm ich zurück. Manchmal crasht's wie aus dem nichts, wenn ich z.B. ?-Blöcke berühre.

Ich glaube, ich porte wirklich nochmal. Mann, ich fühl mich wie ein N00b.
geschrieben am 14.11.2010 12:44:47
( Link )
Zitat von WYE:
Fuck, das "GEHT" nehm ich zurück. Manchmal crasht's wie aus dem nichts, wenn ich z.B. ?-Blöcke berühre.


Das wird aber dann wohl kaum an diesem neuen Hijack liegen, denn $8064 wird nur ein einziges mal pro Spiel aufgerufen, nämlich zu Beginn. Wird wohl daran liegen, dass du noch nicht geportet hattest.
-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.11.2010 15:46:12
( Link )
Okay, ich hab jetzt alles auf eine neue ROM übertragen, ausgenommen von KilloZapits Status-Bar-IRQ-Patch. Es crasht zwar nichts mehr, aber folgende Probleme bestehen noch:

  • Natürlich fehlt noch der Effekt von KilloZapits Patch, d. h. die Status-Bar verschwindet in Leveln, in denen Layer 3 in den Subscreen verschoben wurde, hinter Layer 1.

  • In Leveln ohne HDMA und Layer-3-BG klappt alles bestens.

  • Wenn ich HDMA-Code nur in levelinit.asm ausführe, wird der Farbverlauf verändert, wenn eine Nachricht angezeigt wird. Führe ich den HDMA-Code auch in levelcode.asm (und damit jeden Frame) aus, scheint alles zu gehen. Das ist zwar seltsam, da dein Patch doch nichts mit HDMA macht, aber zum Glück leicht zu lösen.

  • In Leveln mit Layer-3-Hintergrund werden nach dem Anzeigen der Nachricht einen Frame lang die verglitchten Nullen auf dem ganzen Bildschirm angezeigt, danach erscheint der Layer-3-BG-wieder, aber jetzt nicht mehr hinter Layer 2. Ist aber auch verständlich, und ich darf dann halt keine VWF-Nachrichten in Leveln mit Layer-3-Hintergründen anzeigen lassen. Mal sehen, ob ich das schaffe.


Ansonsten, wie gesagt, geht's anscheinend. Jetzt müssen wir nur noch einen Weg finden, KilloZapits IRQ-Patch zu installieren, ohne dass der wieder alles durcheinander bringt.
geschrieben am 14.11.2010 15:55:45
( Link )
Also im Prinzip muss aus dieser Liste jetzt nur der erste Punkt gefixt werden, sehe ich das richtig? Die modifizierte Version des Patches zu verwenden hast du auch schon probiert, oder? Und denk dran, dass du diesen Patch dann vor meinem VWF Patch anwenden musst, sonst wird es auf jeden Fall crashen. Falls der nicht funktioniert sag Bescheid.
-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.11.2010 17:58:25
( Link )
Zitat von RPG Hacker:
Also im Prinzip muss aus dieser Liste jetzt nur der erste Punkt gefixt werden, sehe ich das richtig?

im Prinzip ja, auch wenn mir die HDMA-Sache komisch vorkommt. Macht dein Patch denn was mit HDMA? (Apropos, in bsnes ist beim Verschwinden der Nachricht der Farbverlauf einen Frame lang verglitcht.)

Oh, und der IRQ-Patch crasht das Spiel schon beim Title-Screen. Immer noch derselbe Code wie vor ein paar Posts. Ja, ich hab zuerst den installiert, dann deinen VWF-Patch.

Okay, das lag am FreeSpace. Er crasht jetzt nicht mehr, aber die Nachrichten werden schon wieder nicht mehr richtig angezeigt.
geschrieben am 14.11.2010 18:14:46
( Link )
Zitat von WYE:
im Prinzip ja, auch wenn mir die HDMA-Sache komisch vorkommt. Macht dein Patch denn was mit HDMA?


Eigentlich nicht, nein. 0_o
Deswegen bin ich selbst verwirrt.

Zitat von WYE:
(Apropos, in bsnes ist beim Verschwinden der Nachricht der Farbverlauf einen Frame lang verglitcht.)


Welchen Farbverlauf meinst du? Den HDMA-Farbverlauf?

Zitat von WYE:
Oh, und der IRQ-Patch crasht das Spiel schon beim Title-Screen. Immer noch derselbe Code wie vor ein paar Posts. Ja, ich hab zuerst den installiert, dann deinen VWF-Patch.


Also er crasht die ROM auch ALLEINE schon? Also auch, wenn sie ohne meinen Patch angewendet wird? Ich dachte jedenfalls, du hättest das JML $8082B0 im ersten Block in JML $808297 umgeändert, deswegen habe ich das auch in meinem Code verwendet, den ich dir gegeben habe. Vielleicht hat es damit was zu tun? Anderseits sollte es im Prinzip auch so gehen, weil $808297 ja eh nur ausgeführt werden muss, wenn mein Patch laufen soll. Aber du könntest mal probieren, jeweils eines der JMLs in das andere umzuändern (sodass du zwei gleiche da hast) um zu gucken, was passiert. Vielleicht bringt das etwas?
-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.11.2010 18:17:53
( Link )
Zitat von RPG Hacker:
Welchen Farbverlauf meinst du? Den HDMA-Farbverlauf?

Jau. Komisch zwar, aber das ist im Moment das geringste Problem.

Oh, und:

Zitat
Okay, das lag am FreeSpace. Er crasht jetzt nicht mehr, aber die Nachrichten werden schon wieder nicht mehr richtig angezeigt.

EDIT: Auch in Leveln ohne Layer-3-BG.