git.y1.nz

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:
Mgbdk-lib/libc/targets/mos6502/nes/crt0.s17++++++++++++++---
Mgbdk-lib/libc/targets/mos6502/nes/lcd.s4++--
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.