ich arbeite gerade an einem Level, für welches ich gerne den "Gradient Shadow Bottom" von Ice Man, sowie einen anderen (normalen) Farbverlaufs- HDMA benutzen würde.
Bearbeiteter Shadow- HDMA:
STA $212C ;| is on main screen
LDA #$00 ;| Nothing
STA $212D ;| is on sub screen
LDA #$A7 ;| Affect layer 1,2,3
STA $40 ;/ back enable and subtract
REP #$20 ;\ Set processor 16 bit
LDA #$3200 ;| $4330 = $2132
STA $4350 ;| $4331 = Mode 00
LDA #Gradient ;| Get gradient pointer
STA $4352 ;| low and high byte
PHK ;| Get bank
PLY ;|
STY $4354 ;| Store to address bank
SEP #$20 ;/ Set processor 8 bit
LDA #$20 ;\ Enable HDMA
TSB $0D9F ;| on channel 5
RTS ;/ Return
Gradient:
db $64,$E0
db $04,$E1
db $04,$E2
db $04,$E3
db $04,$E4
db $04,$E5
db $04,$E6
db $04,$E7
db $04,$E8
db $04,$E9
db $04,$EA
db $04,$EB
db $04,$EC
db $04,$ED
db $04,$EE
db $04,$EF
db $04,$F0
db $04,$F1
db $04,$F2
db $04,$F3
db $04,$F4
db $04,$F5
db $04,$F6
db $04,$F7
db $04,$F8
db $04,$F9
db $04,$FA
db $04,$FB
db $04,$FC
db $04,$FD
db $04,$FE
db $04,$FF
db $00
Da ich uberASM benutze, habe ich zunächst den Shadow Code bei "Level_Init_code.asm" eingefügt und für Asar so modifiziert, dass er keine xkas- Commands mehr hat (siehe Spoiler).
Das hat dann auch alles ohne Probleme funktioniert. Was mir jedoch nicht gefällt, ist, dass dieser Hdma- Code, der sich hauptsächlich auf den FG bezieht, auch den kompletten Background schwarz färbt, und das Level so zu dunkel macht.
Aus diesem Grund habe ich einen normalen (blauen) HDMA Code ebenfalls über Level_Init_Code.asm" eingefügt, direkt unter den Shadow- Code.
STA $4330
LDA #$02
STA $4340
LDA #$32
STA $4331
STA $4341
REP #$20
LDA.w #.Table20
STA $4332
LDA.w #.Table19
STA $4342
SEP #$20
LDA.b #.Table20>>16
STA $4334
LDA.b #.Table19>>16
STA $4344
LDA #$18
TSB $0D9F
RTS
.Table19
db $80,$20,$40
db $60,$20,$40
db $00
.Table20
db $14,$81
db $14,$82
db $14,$83
db $14,$84
db $14,$85
db $14,$86
db $14,$87
db $14,$88
db $14,$89
db $14,$8A
db $14,$8B
db $14,$8C
db $22,$8D
db $00
-> Der Code ist nur provisorisch, eventuell nehme ich einen anderen Farbverlauf.
Obwohl mir Asar keine Probleme berichtet, erscheint im Level leider immer nur der eine HDMA- Code, nämlich der erste.
Anscheinend scheint das Ganze daran zu liegen, welche HDMA- Channels benutzt werden; Bei dem ersten Code steht als Kommentar des Autors, dass dieser Channel 5 benutzen würde.
Deshalb meine Frage: Wie muss ich den zweiten Code umschreiben, damit beide Codes im Level erscheinen, oder ist das eventuell gar nicht möglich?
Ich würde mich über Hilfe freuen. =)