Ich habe heute endlich kapiert wie man Patches und HDMA Gradients einfügt (wurde auch mal Zeit). Ich habe einen Gradient eingefügt und den Patch für die Textboxen und das Ziel (alles in level_init_code.asm), dass hat auch funktioniert, allerdings ist Level 106 im Emulator dann komplett schwarz.
Hier der Code:
levelinit105:
header : lorom
org $0092A2 : db $0C
org $0092EA : db $0C
org $00CB0C : db $0C
org $03C511 : db $0C
org $04DB99 : db $0C
org $05B296 : db $0C
org $0CAB98 : db $0C
RTL
; works
header
lorom
ORG $05B296
DB $0C ; change STA to TSB, hence not clearing the HDMA channel enable byte when using message boxes
ORG $05B129 ;
JSL MSG_BOX_FIX ; stops message boxes from clearing HDMA channel enable byte
NOP ;
;point this to frickin freespace
ORG $308000
MSG_BOX_FIX:
LDA #$80 ; clear 8th bit
TRB $0D9F ;
LDA #$02 ; restore old code
RTL
LDA #$00
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 $04,$20,$8B
db $0A,$20,$8C
db $0A,$20,$8D
db $0A,$20,$8E
db $09,$20,$8F
db $0A,$20,$90
db $0A,$20,$91
db $0A,$20,$92
db $0A,$20,$93
db $09,$20,$94
db $0A,$20,$95
db $0A,$20,$96
db $0A,$20,$97
db $09,$20,$98
db $0B,$20,$99
db $09,$20,$9A
db $09,$20,$9B
db $01,$20,$9C
db $01,$20,$9B
db $09,$20,$9C
db $09,$20,$9D
db $0A,$20,$9E
db $0A,$20,$9F
db $00
.Table20
db $08,$41
db $08,$42
db $08,$43
db $08,$44
db $07,$45
db $08,$46
db $08,$47
db $08,$48
db $09,$49
db $07,$4A
db $09,$4B
db $07,$4C
db $08,$4D
db $08,$4E
db $08,$4F
db $08,$50
db $08,$51
db $08,$52
db $08,$53
db $07,$54
db $08,$55
db $09,$56
db $07,$57
db $08,$58
db $08,$59
db $02,$5A
db $00
levelinit106:
RTS
Könnt ihr mir helfen?