HDMA Effekt: Problem beim Einfügen

geschrieben am 15.05.2014 19:24:25
( Link )
Schönen guten Tag, liebes Forum

Ich habe versucht, den underwater HDMA Effekt von Ice Man mit uberASM in ein Level einzufügen. Ich habe versucht, es mit xkas und asar zu patchen, nichts funktioniert.

Hier der Code:
Code
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;HDMA Brightness Gradient Bottom
;by Ice Man
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

lorom ;\ ROM is LoRom
header ;| and has a header
org $228000 ;/ Address to insert code

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;RATS Tag Macro
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

macro RATS_start(id)
db "STAR"
dw RATS_Endcode-RATS_Startcode
dw RATS_Endcode-RATS_Startcode^#$FFFF
RATS_Startcode:
endmacro

macro RATS_end(id)
RATS_Endcode:
endmacro

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;HDMA Channel Settings
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

%RATS_start(0)
REP #$20 ;\ Set processor 16 bit
LDA #$0000 ;| $4350 = $2100
STA $4350 ;| $4351 = 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

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Table Settings
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Gradient:
db $80,$0F
db $10,$0F
db $08,$0E
db $08,$0D
db $08,$0C
db $08,$0B
db $08,$0A
db $08,$09
db $08,$08
db $08,$07
db $08,$06
db $00
%RATS_end(0)


Ich hatte den Code schon in Level_code.asm und Level:init_code.asm, nichts funktioniert.

Weiß jemand, wie ich den Code so einfüge, dass das auch klappt? Wäre super, wenn mir einer helfen könnte

~Bass
geschrieben am 15.05.2014 21:38:05
( Link )
Was du da gepostet hast, ist ein eigenständiger Patch. Den in einen anderen einzufügen bringt wenig außer Fehler.

Du kannst folgendes versuchen:
- Patche den Code als... Patch (aufpassen, dass $228000 wirklich noch Free Space ist), und schreibe in uberASM einfach JSL $228008.

- Bessere Idee: Die Patch-spezifischen Teile deines Codes weglassen, so dass er sich in uberASM einfügen lässt. Viel ist da nicht mal zu nötig.

Code
   REP #$20         ;\ Set processor 16 bit
LDA #$0000 ;| $4350 = $2100
STA $4350 ;| $4351 = 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

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Table Settings
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Gradient:
db $80,$0F
db $10,$0F
db $08,$0E
db $08,$0D
db $08,$0C
db $08,$0B
db $08,$0A
db $08,$09
db $08,$08
db $08,$07
db $08,$06
db $00
geschrieben am 15.05.2014 22:12:19
( Link )
Vielen Dank, klappt wunderbar!

Ich merke schon, dass ich lange nicht mehr dabei war