git.y1.nz

gbdk-2020

GameBoy Development Kit
download: https://git.y1.nz/archives/gbdk.tar.gz
README | Files | Log | Refs | LICENSE

commit d2a4c10458d479e547843b34cdbc574474393bae
parent 632f66f4ce8949bcbc6da6c363960d9ec916300b
Author: Michel Iwaniec <46843052+michel-iwaniec@users.noreply.github.com>
Date:   Mon, 16 Dec 2024 21:16:31 +0000

NES: Fix bug with set_bkg_1bpp_data not working in buffered mode (#734)

Replace direct PPUADDR / PPUDATA writes with calls to _set_vram_byte.
Diffstat:
Mgbdk-lib/libc/targets/mos6502/nes/set_1bit_data.s18+++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/gbdk-lib/libc/targets/mos6502/nes/set_1bit_data.s b/gbdk-lib/libc/targets/mos6502/nes/set_1bit_data.s @@ -14,6 +14,7 @@ fg_bit_p1: .ds 1 bg_bit_p1: .ds 1 bits: .ds 1 + ppuaddr: .ds 2 .area _HOME @@ -35,9 +36,9 @@ _set_bkg_1bpp_data:: lda *_shadow_PPUCTRL and #0x10 ora *src+1 - sta PPUADDR + sta *ppuaddr+1 lda *src - sta PPUADDR + sta *ppuaddr ; lda *_set_bkg_1bpp_data_PARM_3 sta *src @@ -86,7 +87,18 @@ _set_bkg_1bpp_data_bit_loop_skip: dex bne _set_bkg_1bpp_data_bit_loop lda *bits - sta PPUDATA + ; + sty *REGTEMP+4 + sta *_set_vram_byte_PARM_2 + lda *ppuaddr + ldx *ppuaddr+1 + jsr _set_vram_byte + inc *ppuaddr + bne 1$ + inc *ppuaddr+1 +1$: + ldy *REGTEMP+4 + ; iny cpy #8 bne _set_bkg_1bpp_data_byte_loop

This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.