Problem mit HDMA

geschrieben am 19.10.2010 18:09:51
( Link )
Hallo,

ich möchte mich nun in den Forgeschritenen Bereich wagen. Das erste was ich machen wollte waren HDMA Effekte, also hab ich mal im Internet nach Tutorials gesucht. Dann bin ich auf einen Thread des alten Forums gestoßen, dort wurde erklärt wie man HDMA mit ASM einfügt. Also hab ich das dann auch gemacht. Ich habe mir den Patch Ersanios LevelASM+INIT runtergeladen und den Code für die Farbverläufe in der Datei levelinitcode.asm unter das Level eingesetzt wo die HDMA Effekte sein sollen (105).Danach hab ich mir einen HDMA Effekt ausgesucht und den Code unter den Code den ich davor eingesetzt habe eingesetzt. Dann hab ich die Datei level.asm mit Xkas V06 mit einer bat Datei gepatcht als ich dann auf die bat Datei gegangen bin stand da immer das die levelinit redcolour, level init greenculour und levelinit bluecolour nicht gefunden worden sind. Als ich dann meine ROM gestartet habe waren in Level 105 im Hintergrund nur verbugte blinkende Regenbogenfarben. Wie kann ich das Problem beheben?
geschrieben am 19.10.2010 18:58:49
( Link )
Wenn du Levelcode.asm öffnest und Level105 suchst, findest du dort einen Beispielcode. Den musst du entfernen, da der für diesen Blink-Effekt verantwortlich ist.
Anschließend öffnest du Levelinitcode.asm, suchst Levelinit105, fügst zuerst den HDMA-Code ein und gleich darunter (unter dem RTS) den Code mit den Farbverläufen (du hast es anscheinend genau umgekehrt eingefügt).
Dann patcht du den Code einfach nochmal. Level.asm kann man beliebig oft patchen.
geschrieben am 19.10.2010 19:51:13
( Link )
Poste bitte mal den genauen Code, den du versuchst einzufügen.

Und entferne den Beispielcode aus Level 105 in levelcode.asm. Das ist die Ursache für die sich mit der X-Position verändernden Farben. (Edit: Ups, wurde schon erwähnt. Na ja.)
geschrieben am 20.10.2010 21:02:48
( Link )
Zitat von WYE:
Poste bitte mal den genauen Code, den du versuchst einzufügen.

Und entferne den Beispielcode aus Level 105 in levelcode.asm. Das ist die Ursache für die sich mit der X-Position verändernden Farben. (Edit: Ups, wurde schon erwähnt. Na ja.)


Hier ist der Code den ich als erstes einfüge:
REP #$20
LDA #$3200
STA $4330
LDA #.RedColour
STA $4332
PHK
PLY
STY $4334
LDA #$3200
STA $4340
LDA #.GreenColour
STA $4342
PHK
PLY
STY $4344
LDA #$3200
STA $4350
LDA #.BlueColour
STA $4352
PHK
PLY
STY $4354
SEP #$20
LDA #$38
TSB $0D9F
RTS

Hier der zweite:
.RedColour:
db $06,$20
db $06,$21
db $06,$22
db $06,$23
db $06,$24
db $06,$25
db $06,$26
db $06,$27
db $06,$28
db $06,$29
db $06,$2a
db $06,$2b
db $06,$2c
db $06,$2d
db $06,$2e
db $06,$2f
db $06,$30
db $06,$31
db $06,$32
db $06,$33
db $06,$34
db $06,$35
db $06,$36
db $06,$37
db $06,$38
db $06,$39
db $06,$3a
db $06,$3b
db $06,$3c
db $06,$3d
db $00

.GreenColour:
db $06,$4e
db $06,$4f
db $06,$50
db $06,$51
db $06,$52
db $06,$53
db $06,$54
db $06,$55
db $06,$56
db $06,$57
db $06,$58
db $06,$59
db $06,$5a
db $06,$5b
db $06,$5c
db $06,$5d
db $06,$5e
db $06,$5f
db $06,$5f
db $06,$5f
db $06,$5f
db $06,$5f
db $06,$5f
db $06,$5f
db $06,$5f
db $06,$5f
db $06,$5f
db $06,$5f
db $06,$5f
db $00


.BlueColour:
db $06,$9d
db $06,$9e
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $06,$9f
db $00
geschrieben am 20.10.2010 21:12:30
( Link )


Was funktioniert da den nicht?
Mfg Chagan/Danforce.
geschrieben am 20.10.2010 21:43:30
( Link )
Zitat von Danforce:


Was funktioniert da den nicht?


Ich hab jetzt den Beispielcode gelöscht, trotzdem hab ich immer noch diese verbugten Regenbogenfarben. Muss ich vielleicht wenn ich den Beispielcode in levelcode.asm lösche das RTS dalassen? Meine Vermutung ist das ich beim patchen einen Fehler gemacht da ich fürs patchen immer xkas GUI benutzt habe, da das hier damit aber nicht geklappt habe bin ich zu xkas V06 umgestigen.
geschrieben am 20.10.2010 22:02:18
( Link )
Wo fügst du denn welchen Code ein?
geschrieben am 20.10.2010 22:20:25
( Link )
Zitat von WYE:
Wo fügst du denn welchen Code ein?


Ich ersetze in levelinitcode.asm unter levelinit 105 das RTS durch den HDMA Code und füge direkt unter dem RTS was am Ende des HDMA Codes steht den Code mit den Farben ein.
geschrieben am 20.10.2010 22:46:19
( Link )
mach die Punkte vor Greencolour und bei dem anderen Farben weg , dann müsste es gehn
geschrieben am 20.10.2010 22:51:09
( Link )
Zitat von MarcelLp:
mach die Punkte vor Greencolour und bei dem anderen Farben weg , dann müsste es gehn


Danke, hat funktioniert
geschrieben am 20.10.2010 23:30:06
( Link )
Alternativ hätte man auch - und so war es eigentlich auch gedacht und wäre es besser gewesen - die Doppelpunkte hinter den jeweiligen Labels wegmachen können. Der Vorteil wäre dann gewesen, dass man genau dieselben Labels innerhalb von level.asm nochmal verwenden könnte. Macht man aber die Punkte weg, so muss man immer neue Namen für die Labels finden (z.B. GreenColour1, GreenColour2 etc.).
-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.2010 12:31:34
( Link )
Ja, das war meine Schuld. Die Seite, von der du den Code hast, ist upgedatet.