gbdk-2020 | GameBoy Development Kit |
| download: https://git.y1.nz/archives/gbdk.tar.gz | |
| README | Files | Log | Refs | LICENSE |
commit 3bc301b803ed95fad1d24019fcba7e7a632175be parent a4582291f76f97fb83da19b8c79ca48822de961d Author: Toxa <56631470+untoxa@users.noreply.github.com> Date: Fri, 14 Jul 2023 16:47:51 +0300 Merge pull request #539 from michel-iwaniec/nes_fix_data_initialization-v2 NES: Fix recent regression caused by improper initialization of jmp_to_VBL_isr / jmp_to_LCD_isr and palette Diffstat:
| M | gbdk-lib/libc/targets/mos6502/nes/crt0.s | 17 | ++++++++++++++--- |
| M | gbdk-lib/libc/targets/mos6502/nes/lcd.s | 4 | ++-- |
2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/gbdk-lib/libc/targets/mos6502/nes/crt0.s b/gbdk-lib/libc/targets/mos6502/nes/crt0.s @@ -328,7 +328,7 @@ __crt0_setPalette: lda #0x30 sta __crt0_paletteShadow ; set all background / sprite sub-palettes to 10, 00, 1D - ldx #0x1F + ldx #0x18 1$: lda #0x1D sta __crt0_paletteShadow,x @@ -339,8 +339,7 @@ __crt0_setPalette: lda #0x10 sta __crt0_paletteShadow,x dex - dex - bpl 1$ + bne 1$ rts __crt0_waitPPU: @@ -427,6 +426,18 @@ __crt0_RESET_bankSwitchValue: lda #<s__DATA ldx #>s__DATA jsr ___memcpy + ; Perform initialization of INITIALIZED area + lda #<s__INITIALIZER + sta ___memcpy_PARM_2 + lda #>s__INITIALIZER + sta ___memcpy_PARM_2+1 + lda #<l__INITIALIZER + sta ___memcpy_PARM_3 + lda #>l__INITIALIZER + sta ___memcpy_PARM_3+1 + lda #<s__INITIALIZED + ldx #>s__INITIALIZED + jsr ___memcpy ; Set bank to first lda #0x00 sta *__current_bank diff --git a/gbdk-lib/libc/targets/mos6502/nes/lcd.s b/gbdk-lib/libc/targets/mos6502/nes/lcd.s @@ -5,11 +5,11 @@ .area _ZP (PAG) __lcd_scanline:: .ds 1 -.area _DATA +.area _INITIALIZED .jmp_to_VBL_isr:: .ds 3 .jmp_to_LCD_isr:: .ds 3 -.area _XINIT +.area _INITIALIZER ; .jmp_to_VBL_isr rts nop
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.