FG HDMA?

geschrieben am 28.12.2010 15:40:34
( Link )
Ja ich wusste nicht ob ich das in algemeine Fragen stellen sollte oder einfach in einem neuen Topic,schließlich habe ich mich für einen neuen Topic entschieden da das vieleicht auch für andere gut zum nachschauen ist.

Also zur eigentlichen Frage:Wie füge ich Diesen FG HDMA ein und wo bekommen ich einen her
wie man BG HDMA einfügt weis ich ja jetzt durch DerKoopas Totorial.

Verscheinlich Täusch ich mich im Namen deswegen ein Beispiel:

BSP1:
[youtube]mw1Y8NQ85wQ&feature=related[/youtube]

Und dann noch kurz ne frage wie macht man das dann des es flimmert oder wo man es sich in einem bestimten bereich downloaden kann auf SMWC.

BSP2:


Ich hoffe ihr könnt mir weiter helfen.
MFG:Wysey
>we live in a society
geschrieben am 28.12.2010 15:46:41
( Link )
Damit ein Farbverlauf sich auch auf den Vordergrund auswirkt, brauchst du folgenden Code:

Code
LDA #%01001111
TSB $40

LDA #$02
TSB $44


Zumindest den FG-Welleneffekt gibt's irgendwo in diesem Thread.
geschrieben am 28.12.2010 16:41:24
( Link )
Zitat von WYE:
Damit ein Farbverlauf sich auch auf den Vordergrund auswirkt, brauchst du folgenden Code:

Code
LDA #%01001111
TSB $40

LDA #$02
TSB $44


Zumindest den FG-Welleneffekt gibt's irgendwo in diesem Thread.


Okay werde gloich mal herumexperementieren,ich sage dann wenn irgendwas nicht klapt oder so....
>we live in a society
geschrieben am 02.01.2011 3:11:47
( Link )
Muss man diesen code den du gepostet hast einfach durch den code ersetzten den man für den bg hdma braucht oder das noch beim anderen code anhängen?

Random Musiktitel:Branchez - Shake
geschrieben am 02.01.2011 10:53:25
( Link )
Den Code zusätzlich benutzen.
geschrieben am 04.01.2011 11:13:04
( Link )
HDMA Farbverläufe kann ich gut einfügen nur versteh ich das mit dem FG HDMA überhaupt nicht. Egal welchen Code ich eingebe, entweder error beim patchen oder das Level startet nicht.

also ich füge z.B. den Code genau so ein in Levelcode.asm:

Code anzeigen
level105:
REP #$20 ; 16 bit A LDA #$0000 ; $43X0 = 00 STA $4330 ; $43x1 = 00 LDA #LVL1BRIGHT ; get pointer to brightness table STA $4332 ; store it to low and high byte pointer PHK ; get bank PLY ; STY $4334 ; store to bank pointer byte SEP #$20 ; 8 bit A LDA #$08 ; Enable HDMA on channel 3 TSB $0D9F ; RTS ; return LVL1BRIGHT: db $0C,$0F db $0C,$0E db $0C,$0D db $0C,$0C db $0C,$0B db $0C,$0A db $0C,$09 db $0C,$08 db $0C,$07 db $0C,$06 db $0C,$05 db $0C,$04 db $0C,$03 db $0C,$02 db $0C,$01 db $0C,$00 db $00

damit es so aussieht:


hab ich was vergessen? kann mir das einer Step by Step erklären?
diesen Code hab ich auch mal zusätzlich vor den Code von oben eingefügt, klappt nicht....
Zitat von Wysey:
LDA #%01001111
TSB $40

LDA #$02
TSB $44
geschrieben am 04.01.2011 12:42:04
( Link )
Was genau willst du denn?

Der Code, den du da verwendest, ist kein Farbverlauf, sondern ein Helligkeitsverlauf. Der ändert die Helligkeit des ganzen Bildschirms, ausnahmslos alles, also bringt's nichts, den Transparenzcode da noch mit einzufügen. Ein Farbverlauf ändert nicht die Helligkeit, sondern die Hintergrundfarbe, und der Code stellt die Transparenzeinstellungen so ein, dass sie durch den Vordergrund hindurch scheint.

Oder hast du Probleme, den Code überhaupt einzufügen? Achte darauf, dass jeder Befehl in einer eigenen Zeile steht. Bei dir scheint da alles in einer Zeile zu sein. Merke: Codes von SMWC nicht direkt kopieren, sondern vorher auf "Quote" und aus dem Postfeld kopieren.
geschrieben am 04.01.2011 13:11:46
( Link )
achso jetzt klappts mit diesem Code Danke!

so hab ma wieder ein Problem das hier ist, glaub ich, der wavy effect:
Code anzeigen
levelinit6:

REP #$20 ; 16 bit A
LDA #$0F42 ; one reg write twice, indirect
STA $4340 ; $210F - layer 2 horizontal scroll register
LDA #$B600 ; low and high bytes of source address
STA $4342 ;
SEP #$20 ; 8 bit A
LDA #$7F ; set bank
STA $4344 ;
STA $4347 ; set indirect bank too
LDA #$10 ; enable channel 4
TSB $0D9F ;


LDA #$00 ; setup indirect addressing
STA $00 ; target address: $7FB600
LDA #$B6
STA $01
LDA #$7F
STA $02

LDX #$09 ; loop 10 (decimal) times

LVL6_LOOP6:

LDY #$17 ; loop 24 (decimal) times
LVL6_LOOP7:
LDA LVL6_HDMA4,y;
STA [$00],y ; upload table to RAM
DEY
BPL LVL6_LOOP7

REP #$20 ; 16 bit A
LDA $00 ; load low/high byte of target address
CLC
ADC #$0018 ; add 18
STA $00 ; store back
SEP #$20 ; 8 bit A

DEX
BPL LVL6_LOOP6 ; loop again if needed

LDA #$00 ; add in terminator byte
STA [$00]

JMP level6 ; jump to remaining code

;;;;;;;;

level6:

REP #$20 ; 16 bit A

LDX #$0E ; update scroll values
LVL6_LOOP8:
LDA $1E ; layer 2 x
CLC
ADC LVL6_HDMA2,x; add in offset
STA $7FB710,x ; store to HDMA table
DEX
DEX
BPL LVL6_LOOP8 ; loop 8 times

SEP #$20 ; 8 bit A

LDX #$15 ; reset these scanline counts
LDA #$04
LVL6_8:
STA $7FB600,x
DEX
DEX
DEX
BPL LVL6_8

STZ $00 ; set this scratch to 00

LDA $14 ; frame counter
LSR ; /2
AND #$03 ; mod 4
CLC
ADC $20 ; add in layer 2 y
LVL6_7:
CMP #$04 ; check if below 4
BCC LVL6_6 ; continue if so
SBC #$04 ; subtract 4 until it is
INC $00 ; increment scratch
BRA LVL6_7 ; loop
LVL6_6:
SEC ;
SBC #$04 ; flip
EOR #$FF
INC A
STA $01 ; store to scratch for later

LDA $14 ; frame counter
LSR ; /8
LSR
LSR
CLC
ADC $00 ; add in additional from layer 2's y
AND #$07 ; mod 8
STA $00 ; store to scratch
ASL ; x3
CLC
ADC $00
TAX ; stick in x
LDA $01 ; get scanline count
STA $7FB600,x ; set scanline count
STX $4342 ; set table offset

RTS

den hab ich richtig über ''Quote'' kopiert aber der lässt sich nich draufpatchen, dann erscheint eine Error Meldung.
ich vermute ich muss hier was vor den Code einfügen, aber was? Sorry für die dummen Fragen, aber wenn ich es einmal geschnallt hab frag ich nie mehr
geschrieben am 04.01.2011 13:42:53
( Link )
In dem Code ist eine Trennlinie (;;;;;;;;). Den oberen Teil musst du in levelinitcode.asm einfügen, den unteren in levelcode.asm.
geschrieben am 04.01.2011 13:54:27
( Link )
ok hab ich gemacht, aber immer noch error Meldung, ist aber nicht die selbe Meldung. wenn ich teste, wirkt der Wavy effect nur auf den BG und nicht den FG, wie mache ich das er auf beides wirkt?
Edit: error Meldung glaub ich ist nicht schlimm, da steht nur das ich irgendwas schon einmal definiert hab
geschrieben am 04.01.2011 14:55:38
( Link )
Zitat von wertzedu:
Edit: error Meldung glaub ich ist nicht schlimm, da steht nur das ich irgendwas schon einmal definiert hab


Doch, entferne die "levelinit6"- und "level6"-Labels aus dem Code.
geschrieben am 04.01.2011 15:27:42
( Link )
hmm? was für Labels?
sind das die Labels? das hab ich weggemacht (errormeldung ist nicht mehr da, und im Level ist der wavy effect auch nicht mehr vorhanden):
Code
levelinit6:

REP #$20 ; 16 bit A
LDA #$0F42 ; one reg write twice, indirect
STA $4340 ; $210F - layer 2 horizontal scroll register
LDA #$B600 ; low and high bytes of source address
STA $4342 ;
SEP #$20 ; 8 bit A
LDA #$7F ; set bank
STA $4344 ;
STA $4347 ; set indirect bank too
LDA #$10 ; enable channel 4
TSB $0D9F ;


LDA #$00 ; setup indirect addressing
STA $00 ; target address: $7FB600
LDA #$B6
STA $01
LDA #$7F
STA $02

LDX #$09 ; loop 10 (decimal) times


Code
level6:

REP #$20 ; 16 bit A

LDX #$0E ; update scroll values
geschrieben am 04.01.2011 20:03:41
( Link )
Halt die Zeilen, in denen "levelinit6:" und "level6:" steht.
geschrieben am 05.01.2011 10:48:32
( Link )
so hab die Zeilen gelöscht und es kommt schon wieder ein neuer Error:
error: Levelcode.asm: line 541: label [LVL6_HDMA2] not found [ADC LVL6_HDMA2,x)
error: Levelinitcode.asm: line 562: label (LVL6_HDMA4] not found [LDA LVL6_HDMA4

hab diese Zeilen auch gelöscht dann ging das patchen aber im Level ist wieder kein Effekt.

kannst du mir vielleicht den Code so schreiben das er direkt funktioniert ohne das ich irgendwelche Zeilen löschen muss, bitte? Das wäre echt nett
geschrieben am 21.01.2011 19:07:28
( Link )
ich habe eine frage kann man mit dem HDMA Gradient Ripper also den codes vom ripper FG Farbverläufe machen?
ich bin mir einfach nicht sicher und ausserdem wäre es ein bisschen komisch da es beim ripper keine transparent gibt (glaube ich zumindest)

Random Musiktitel:Branchez - Shake
geschrieben am 21.01.2011 22:22:52
( Link )
Wie gesagt, HDMA-Farbverläufe machen keinen Unterschied zwischen Vorder-und Hintergrund.

Zitat von WYE:
Damit ein Farbverlauf sich auch auf den Vordergrund auswirkt, brauchst du folgenden Code:

Code
LDA #%01001111
TSB $40

LDA #$02
TSB $44
geschrieben am 25.01.2011 7:01:34
( Link )
Ok dann werde ich es mal versuchen ^^
hab bis jetzt erst mit dem ripper codes gemacht da ich das mit dem normalen hdma noch am lernen bin
Aber für das wie ich es brauche ist der ripper ja gut

Random Musiktitel:Branchez - Shake