diff --git a/snes/data.a65 b/snes/data.a65 index 695a757..fc60e7a 100644 --- a/snes/data.a65 +++ b/snes/data.a65 @@ -112,3 +112,4 @@ hdma_math .byt 0 .byt 0,0 .byt 0 infloop .byt 0,0 ; to be filled w/ 80 FE +wram_fadeloop .byt 0 diff --git a/snes/main.a65 b/snes/main.a65 index 0952e76..4aa6fa4 100644 --- a/snes/main.a65 +++ b/snes/main.a65 @@ -146,7 +146,11 @@ setup_gfx: sta infloop lda #$fe sta infloop+1 - + lda #^wram_fadeloop + ldx #!wram_fadeloop + stx $2181 + sta $2183 + DMA0(#$00, #$22, #^fadeloop, #!fadeloop, #$80); rts tests: @@ -283,3 +287,27 @@ snes_init: rts +fadeloop: + sep #$30 : .as : .xs + ldx #$0f + and #$00 + pha + plb +fadeloop_start + lda $4212 + and #$80 + bne fadeloop_start +- lda $4212 + and #$80 + bne + + bra - ++ txa + dec + sta $2100 + tax + bne fadeloop_start + stz $2100 +- bra - + +fadeloop_end: + .byt $ff diff --git a/snes/menu.a65 b/snes/menu.a65 index ff3e246..1c590d4 100644 --- a/snes/menu.a65 +++ b/snes/menu.a65 @@ -481,7 +481,7 @@ select_file: lda #$00 sta @$4200 cli - jsl @infloop + jsl @wram_fadeloop rts select_dir: ; y = direntry ptr