1. It would not effect any current software
2. I know FPGA space is limited, and I think this would require minimal space...it's just exposing values already tracked
WHAT:
Using a new DCSEL mode, 6 is currently unused
Have VERA_ADDRL,VERA_ADDRM,VERA_ADDRH for both ports available for direct access
WHY:
Since VRAM can't be banked for direct CPU access, this mode could allow "easier random" access to VRAM
*I'll leave it for other smarter people to improve, like VERA FX
EXAMPLES:
1. Compression routines often require offsetting from data already decompressed, which requires reading back from the current "pointer"
Having to switch selected port just to access the current L/M/H slows things down, increases code size etc.
also this could eliminate the need to use a CPU pointer (zero page?) since all the inc/dec would be handled by VERA
2. Config both ports at once. Say you want to do a palette fade
Code: Select all
;set select for dual data address access (DCSEL=6) <- asking suggested change
lda #1
sta VERA_ADDRH0
sta VERA_ADDRH1
lda #$FA
sta VERA_ADDRM0
sta VERA_ADDRM1
lda #$00
sta VERA_ADDRL0
sta VERA_ADDRL1
;vs -----------------------------------------------------
;set select for single data address access (DCSEL=0)
lda #1
sta VERA_ADDRH
lda #$FA
sta VERA_ADDRM
lda #$00
sta VERA_ADDRL
lda #1
sta VERA_CTRL
lda #1
sta VERA_ADDRH
lda #$FA
sta VERA_ADDRM
lda #$00
sta VERA_ADDRL
working with an 8-bit system, every cycle counts