From 3b03005f08a7382307ae9726aa382d494b2edd72 Mon Sep 17 00:00:00 2001 From: Damian Yerrick Date: Thu, 30 Jan 2020 16:19:22 -0500 Subject: [PATCH] v0.20 I want to get my changes out before Action 53 volume 4. This is the last version to have Bassil S. in the patron credits. Hardware testing revealed three bugs, two of them in new tests, that are fixed in this commit: - NES MDFourier: Fix solid color backgrounds - GB Chroma crosstalk: Fix page crossing that was causing it to send incorrect colors - GBA Vertical scroll test: Display the correct help page --- gameboy/CHANGES.txt | 2 +- gameboy/makefile | 2 +- gameboy/src/helppages.txt | 4 +- gameboy/src/sgbtests.z80 | 116 ++++++++++++++++++++------------------ gba/CHANGES.txt | 4 +- gba/Makefile | 9 +++ gba/src/helppages.txt | 5 +- gba/src/scrolltest.c | 2 +- makefile | 2 +- nes/CHANGES.txt | 3 +- nes/makefile | 2 +- nes/src/helppages.txt | 5 +- nes/src/mdfourierfe.s | 3 + 13 files changed, 90 insertions(+), 69 deletions(-) diff --git a/gameboy/CHANGES.txt b/gameboy/CHANGES.txt index 4c4c028..629328f 100644 --- a/gameboy/CHANGES.txt +++ b/gameboy/CHANGES.txt @@ -1,4 +1,4 @@ -0.20 (2020-01-xx) +0.20 (2020-01-30) * Add SGB-only Chroma crosstalk test * Help: Wait to draw status line until Huffman decoding finishes * Help: Blink Gus's eyes diff --git a/gameboy/makefile b/gameboy/makefile index 024c25a..4a0d20b 100644 --- a/gameboy/makefile +++ b/gameboy/makefile @@ -11,7 +11,7 @@ # Used in the title of the zipfile and .gb executable title:=gb240p -version:=0.19 +version:=0.20 # Space-separated list of asm files without .z80 extension # (use a backslash to continue on the next line) diff --git a/gameboy/src/helppages.txt b/gameboy/src/helppages.txt index 5ac617e..59cb7ea 100644 --- a/gameboy/src/helppages.txt +++ b/gameboy/src/helppages.txt @@ -716,12 +716,12 @@ crosstalk artifacts. == 144p Test Suite == -Ver. 0.20wip (2019-09-19) +Ver. 0.20 (2020-01-30) Chroma crosstalk © 2011-2016 Artemio Urbina -© 2015-2019 +© 2015-2020 Damian Yerrick This is free software; see the source for copying diff --git a/gameboy/src/sgbtests.z80 b/gameboy/src/sgbtests.z80 index 0df6be3..a118198 100644 --- a/gameboy/src/sgbtests.z80 +++ b/gameboy/src/sgbtests.z80 @@ -420,60 +420,7 @@ sgb_load_border:: ld a, $14<<3|1 jp sgb_send_trn_ab -; Mystery test ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -pass_pattern: - db %01111111 - db %00000110 - db %00001000 - db %00110000 - db %01111111 - db %00000000 - db %00000001 - db %01111111 - db %00000001 - db %00000000 - db %00100110 - db %01001001 - db %01001001 - db %00110010 - db %00000000 - db %00111110 - db %01000001 - db %01000001 - db %00100010 - -nes_palette_11to1c: - if 0 - ; NES palette made with bisqwit's tool - ; Not ideal for Super NES, but better than nothing - drgb $0f63b3 - drgb $4051d0 - drgb $7841cc - drgb $a736a9 - drgb $c03470 - drgb $bd3c30 - drgb $9f4a00 - drgb $6d5c00 - drgb $366d00 - drgb $077704 - drgb $00793d - drgb $00727d - else - ; 12 evenly spaced YUV points - drgb $8067ff - drgb $a358ed - drgb $bd54bf - drgb $c75b80 - drgb $bd6c40 - drgb $a38312 - drgb $809800 - drgb $5ca712 - drgb $42ab40 - drgb $38a47f - drgb $4293bf - drgb $5c7ced - endc +; NTSC chroma crosstalk test ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; rsset hTestState hIncTime rb 1 @@ -594,8 +541,8 @@ wr1color: add a add low(nes_palette_11to1c) ld e, a - ld a, 0 - add high(nes_palette_11to1c) + adc high(nes_palette_11to1c) + sub e ld d, a ld a, [de] ld [hl+], a @@ -613,3 +560,60 @@ add_c_to_curpalette: .nowrap: ldh [hCurPalette], a ret + +; The needed alignment is not fully understood. +; If "Chroma crosstalk" produces noticeable diagonal stripes even +; on S-Video or RGB, revisit this and wr1color. +section "crosstalkcolors",ROM0,ALIGN[1] +nes_palette_11to1c: + if 0 + ; NES palette made with bisqwit's tool + ; Not ideal for Super NES, but better than nothing + drgb $0f63b3 + drgb $4051d0 + drgb $7841cc + drgb $a736a9 + drgb $c03470 + drgb $bd3c30 + drgb $9f4a00 + drgb $6d5c00 + drgb $366d00 + drgb $077704 + drgb $00793d + drgb $00727d + else + ; 12 evenly spaced YUV points + drgb $8067ff + drgb $a358ed + drgb $bd54bf + drgb $c75b80 + drgb $bd6c40 + drgb $a38312 + drgb $809800 + drgb $5ca712 + drgb $42ab40 + drgb $38a47f + drgb $4293bf + drgb $5c7ced + endc + +pass_pattern: + db %01111111 + db %00000110 + db %00001000 + db %00110000 + db %01111111 + db %00000000 + db %00000001 + db %01111111 + db %00000001 + db %00000000 + db %00100110 + db %01001001 + db %01001001 + db %00110010 + db %00000000 + db %00111110 + db %01000001 + db %01000001 + db %00100010 diff --git a/gba/CHANGES.txt b/gba/CHANGES.txt index 84a66f8..d9e2d43 100644 --- a/gba/CHANGES.txt +++ b/gba/CHANGES.txt @@ -1,4 +1,6 @@ -0.20 (2020-01-xx) +0.20 (2020-01-30) +* Add Convergence test +* Vertical scroll test: Display correct help page * Help: Blink Gus's eyes 0.19 (2019-09-12) diff --git a/gba/Makefile b/gba/Makefile index 2844bf0..d7e9f75 100644 --- a/gba/Makefile +++ b/gba/Makefile @@ -128,6 +128,15 @@ export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) .PHONY: $(BUILD) clean +#--------------------------------------------------------------------------------- +# This sets up the dependencies for the first build if the user runs +# make 240pee_mb.gba +# instead of running +# make +#--------------------------------------------------------------------------------- +$(TARGET).gba $(TARGET).elf: $(BUILD) + echo hello... + #--------------------------------------------------------------------------------- $(BUILD): @[ -d $@ ] || mkdir -p $@ diff --git a/gba/src/helppages.txt b/gba/src/helppages.txt index 14105ec..801dd5e 100644 --- a/gba/src/helppages.txt +++ b/gba/src/helppages.txt @@ -517,7 +517,7 @@ A: Start or stop the test == Lame boy == -This test serves as a +This test served as a placeholder in early versions of 160p Test Suite for tests that have not yet been ported @@ -634,7 +634,8 @@ Select: Show or hide == 160p Test Suite == -Version 0.20wip (2020-01-30) +Version 0.20 (2020-01-30) +Convergence © 2011-2016 Artemio Urbina © 2015-2020 Damian Yerrick diff --git a/gba/src/scrolltest.c b/gba/src/scrolltest.c index 623ec65..a584ec9 100644 --- a/gba/src/scrolltest.c +++ b/gba/src/scrolltest.c @@ -206,7 +206,7 @@ void activity_kiki_scroll(void) { scrolltest_dy = 1; load_kiki_bg(); do { - read_pad_help_check(helpsect_hill_zone_scroll_test); + read_pad_help_check(helpsect_vertical_scroll_test); move_1d_scroll(); VBlankIntrWait(); diff --git a/makefile b/makefile index 4832a06..9849ae2 100644 --- a/makefile +++ b/makefile @@ -1,5 +1,5 @@ title := 240p-test-mini -version := 0.19 +version := 0.20 # Make $(MAKE) work correctly even when Make is installed inside # C:\Program Files diff --git a/nes/CHANGES.txt b/nes/CHANGES.txt index bf7a72f..341ac44 100644 --- a/nes/CHANGES.txt +++ b/nes/CHANGES.txt @@ -1,4 +1,5 @@ -0.20 (2020-01-xx) +0.20 (2020-01-30) +* Add Convergence test * Add MDFourier tone generator 0.19 (2019-09-12) diff --git a/nes/makefile b/nes/makefile index bca5c10..5a7bdf0 100644 --- a/nes/makefile +++ b/nes/makefile @@ -11,7 +11,7 @@ # These are used in the title of the NES program and the zip file. title = 240pee -version = 0.18 +version = 0.20 # Space-separated list of assembly language files that make up the # PRG ROM. If it gets too long for one line, you can add a backslash diff --git a/nes/src/helppages.txt b/nes/src/helppages.txt index 309f4ee..3727a0e 100644 --- a/nes/src/helppages.txt +++ b/nes/src/helppages.txt @@ -791,7 +791,8 @@ less than 5 lines (317 us). == 240p Test Suite == -Version 0.20wip (2020-01-30) +Version 0.20 (2020-01-30) +Convergence & MDFourier Concept: Artemio Urbina 🐦 @Artemio @@ -799,7 +800,7 @@ Program: Damian Yerrick 🐦 @PinoBatch © 2011-2016 Artemio Urbina -© 2015-2019 Damian Yerrick +© 2015-2020 Damian Yerrick This is free software; see the source for copying conditions. There is NO warranty, not diff --git a/nes/src/mdfourierfe.s b/nes/src/mdfourierfe.s index 6ae1f07..13355de 100644 --- a/nes/src/mdfourierfe.s +++ b/nes/src/mdfourierfe.s @@ -133,8 +133,11 @@ ppu_loaders: ldx #$3F sty PPUMASK stx PPUADDR + ldy #0 sty PPUADDR sta PPUDATA + sty PPUADDR + sty PPUADDR rts .endproc