You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(35) |
Dec
(2) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(37) |
Feb
(10) |
Mar
|
Apr
(2) |
May
(17) |
Jun
(1) |
Jul
(14) |
Aug
(14) |
Sep
(4) |
Oct
|
Nov
(14) |
Dec
(4) |
2005 |
Jan
(6) |
Feb
|
Mar
|
Apr
(6) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
(92) |
Dec
(12) |
2006 |
Jan
(3) |
Feb
(4) |
Mar
|
Apr
(5) |
May
(3) |
Jun
(15) |
Jul
(3) |
Aug
(1) |
Sep
(29) |
Oct
(1) |
Nov
(6) |
Dec
(5) |
2007 |
Jan
(2) |
Feb
(2) |
Mar
|
Apr
(3) |
May
(14) |
Jun
(2) |
Jul
(16) |
Aug
(73) |
Sep
(12) |
Oct
(9) |
Nov
(27) |
Dec
(3) |
2008 |
Jan
(4) |
Feb
(4) |
Mar
(3) |
Apr
(8) |
May
(23) |
Jun
(4) |
Jul
(1) |
Aug
(3) |
Sep
(7) |
Oct
(5) |
Nov
(1) |
Dec
(1) |
2009 |
Jan
|
Feb
(10) |
Mar
|
Apr
(4) |
May
(4) |
Jun
(10) |
Jul
|
Aug
(1) |
Sep
|
Oct
(7) |
Nov
|
Dec
(1) |
2010 |
Jan
|
Feb
(1) |
Mar
|
Apr
(6) |
May
|
Jun
(3) |
Jul
(11) |
Aug
(1) |
Sep
|
Oct
(15) |
Nov
(1) |
Dec
(5) |
2011 |
Jan
(4) |
Feb
(1) |
Mar
(6) |
Apr
|
May
(22) |
Jun
|
Jul
(8) |
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
(2) |
2012 |
Jan
|
Feb
(10) |
Mar
(1) |
Apr
(6) |
May
(27) |
Jun
(48) |
Jul
(30) |
Aug
(4) |
Sep
|
Oct
(3) |
Nov
(1) |
Dec
(11) |
2013 |
Jan
(4) |
Feb
(7) |
Mar
(6) |
Apr
(18) |
May
(28) |
Jun
(20) |
Jul
|
Aug
(4) |
Sep
(1) |
Oct
(1) |
Nov
(2) |
Dec
(7) |
2014 |
Jan
(3) |
Feb
(2) |
Mar
(4) |
Apr
(9) |
May
(11) |
Jun
(10) |
Jul
|
Aug
(18) |
Sep
(12) |
Oct
(17) |
Nov
(10) |
Dec
(16) |
2015 |
Jan
(5) |
Feb
(1) |
Mar
(5) |
Apr
(4) |
May
(28) |
Jun
(2) |
Jul
|
Aug
|
Sep
(6) |
Oct
|
Nov
(2) |
Dec
(1) |
2016 |
Jan
(14) |
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
(3) |
Jul
(4) |
Aug
(4) |
Sep
(1) |
Oct
(1) |
Nov
|
Dec
(1) |
2017 |
Jan
(11) |
Feb
|
Mar
(21) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2018 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
(2) |
Sep
(4) |
Oct
(4) |
Nov
|
Dec
(1) |
2019 |
Jan
(1) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(13) |
Sep
(4) |
Oct
|
Nov
|
Dec
|
2020 |
Jan
(10) |
Feb
(9) |
Mar
(5) |
Apr
(4) |
May
(3) |
Jun
(18) |
Jul
(4) |
Aug
(2) |
Sep
(20) |
Oct
(2) |
Nov
|
Dec
|
2021 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
(1) |
Jun
(2) |
Jul
(1) |
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
(2) |
2022 |
Jan
(1) |
Feb
(2) |
Mar
(2) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(5) |
Sep
|
Oct
(1) |
Nov
|
Dec
(1) |
2023 |
Jan
(10) |
Feb
(7) |
Mar
(29) |
Apr
(31) |
May
(29) |
Jun
(34) |
Jul
(3) |
Aug
(24) |
Sep
(22) |
Oct
(10) |
Nov
(38) |
Dec
(27) |
2024 |
Jan
(15) |
Feb
(8) |
Mar
(4) |
Apr
(20) |
May
(33) |
Jun
(18) |
Jul
(15) |
Aug
(23) |
Sep
(20) |
Oct
|
Nov
|
Dec
|
From: darcagn <da...@us...> - 2024-08-20 15:30:55
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via cdff9466a32a5f59d9139513786adc6184c3adce (commit) from c2d45545e439c0624865b792a23653bb3dfd956b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit cdff9466a32a5f59d9139513786adc6184c3adce Author: dfchil <dan...@gm...> Date: Tue Aug 20 17:29:43 2024 +0200 Pvrtex minor fixes (#720) * removed dependency on xxd, used the standarized install path in $DC_TOOLS_BASE * removed the autogenerated info/*.h files --------- Co-authored-by: Daniel Fairchild <da...@vi...> ----------------------------------------------------------------------- Summary of changes: utils/pvrtex/Makefile | 14 +- utils/pvrtex/info/examples.h | 175 ------- utils/pvrtex/info/options.h | 1030 ------------------------------------------ utils/pvrtex/main.c | 4 +- 4 files changed, 8 insertions(+), 1215 deletions(-) delete mode 100644 utils/pvrtex/info/examples.h delete mode 100644 utils/pvrtex/info/options.h diff --git a/utils/pvrtex/Makefile b/utils/pvrtex/Makefile index 40e17a3e..d736110b 100644 --- a/utils/pvrtex/Makefile +++ b/utils/pvrtex/Makefile @@ -19,15 +19,13 @@ MYCFLAGS=$(MYFLAGS) -Wno-pointer-sign define textSegment2Header - awk '/$1/,/--------------------------------------------------------------------------/' README|xxd -i -n $2_$3 > $2/$3.h + awk '/$1/,/--------------------------------------------------------------------------/' README > $2/$3.txt + $(KOS_BASE)/utils/bin2c/bin2c $2/$3.txt $2/$3.h $(3)_txt + rm $2/$3.txt endef - -TOOLINSTALLDIR=$(KOS_BASE)/../bin - .PHONY: all clean - $(TARGET): $(OBJS) gcc $(OPTMODE) -o $(TARGET) \ $(OBJS) $(PROGMAIN) -lm -lstdc++ @@ -50,10 +48,10 @@ README: readme_unformatted.txt all: $(TARGET) README install: all - install -m 755 $(TARGET) $(TOOLINSTALLDIR)/ + install -m 755 $(TARGET) $(DC_TOOLS_BASE)/ -info/options.h: README +info/options.h: README Makefile $(call textSegment2Header,Command Line Options:,info,options) -info/examples.h: README +info/examples.h: README Makefile $(call textSegment2Header,Usage Examples:,info,examples) diff --git a/utils/pvrtex/info/examples.h b/utils/pvrtex/info/examples.h deleted file mode 100644 index 1888d1e8..00000000 --- a/utils/pvrtex/info/examples.h +++ /dev/null @@ -1,175 +0,0 @@ -unsigned char info_examples[] = { - 0x55, 0x73, 0x61, 0x67, 0x65, 0x20, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, - 0x65, 0x73, 0x3a, 0x0a, 0x0a, 0x70, 0x76, 0x72, 0x74, 0x65, 0x78, 0x20, - 0x2d, 0x69, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x6e, - 0x67, 0x20, 0x2d, 0x6f, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, - 0x2e, 0x64, 0x74, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, - 0x73, 0x20, 0x61, 0x20, 0x50, 0x4e, 0x47, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x44, 0x54, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x74, 0x77, - 0x69, 0x64, 0x64, 0x6c, 0x65, 0x64, 0x2c, 0x20, 0x75, 0x6e, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x0a, 0x09, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, - 0x75, 0x74, 0x20, 0x6d, 0x69, 0x70, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x69, - 0x73, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, - 0x6c, 0x6c, 0x79, 0x20, 0x63, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x0a, 0x09, - 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, - 0x20, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x2e, 0x70, 0x6e, 0x67, 0x20, 0x28, 0x53, 0x65, 0x65, 0x20, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, - 0x72, 0x0a, 0x09, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x74, 0x65, 0x78, 0x74, - 0x75, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x69, - 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x29, 0x2e, 0x0a, 0x0a, 0x70, 0x76, 0x72, 0x74, 0x65, 0x78, 0x20, 0x2d, - 0x69, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x6e, 0x67, - 0x20, 0x2d, 0x6f, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x2e, - 0x64, 0x74, 0x20, 0x2d, 0x66, 0x20, 0x61, 0x72, 0x67, 0x62, 0x34, 0x34, - 0x34, 0x34, 0x20, 0x2d, 0x64, 0x20, 0x2d, 0x63, 0x20, 0x36, 0x34, 0x20, - 0x2d, 0x6d, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x2d, - 0x72, 0x20, 0x2d, 0x52, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x74, 0x73, 0x20, 0x61, 0x20, 0x50, 0x4e, 0x47, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x44, 0x54, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x74, - 0x77, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x64, 0x2c, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x0a, 0x09, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x72, 0x65, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6d, - 0x69, 0x70, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x41, 0x52, 0x47, - 0x42, 0x34, 0x34, 0x34, 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x0a, - 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x64, 0x69, 0x74, 0x68, 0x65, 0x72, 0x65, 0x64, 0x2e, 0x20, 0x49, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x61, 0x0a, - 0x09, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x20, 0x70, 0x6f, 0x77, 0x65, - 0x72, 0x2d, 0x6f, 0x66, 0x2d, 0x74, 0x77, 0x6f, 0x2c, 0x20, 0x69, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x73, - 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x20, 0x73, - 0x71, 0x75, 0x61, 0x72, 0x65, 0x0a, 0x09, 0x70, 0x6f, 0x77, 0x65, 0x72, - 0x2d, 0x6f, 0x66, 0x2d, 0x74, 0x77, 0x6f, 0x2e, 0x20, 0x54, 0x68, 0x65, - 0x20, 0x63, 0x6f, 0x64, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, - 0x64, 0x0a, 0x09, 0x74, 0x6f, 0x20, 0x36, 0x34, 0x20, 0x65, 0x6e, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x20, 0x32, 0x35, 0x36, 0x3b, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x73, 0x20, 0x71, 0x75, 0x61, 0x6c, - 0x69, 0x74, 0x79, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x0a, 0x09, 0x72, 0x65, - 0x64, 0x75, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2e, 0x35, - 0x20, 0x4b, 0x42, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6d, 0x70, - 0x72, 0x6f, 0x76, 0x65, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x72, 0x61, - 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x70, 0x76, 0x72, 0x74, 0x65, 0x78, 0x20, - 0x2d, 0x69, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x6e, - 0x67, 0x20, 0x2d, 0x6f, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, - 0x2e, 0x64, 0x74, 0x20, 0x2d, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x20, 0x2d, 0x6d, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x74, 0x73, 0x20, 0x61, 0x20, 0x50, 0x4e, 0x47, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x6d, 0x61, - 0x70, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x44, 0x54, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x2c, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6d, 0x69, - 0x70, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x0a, 0x0a, 0x70, 0x76, 0x72, 0x74, - 0x65, 0x78, 0x20, 0x2d, 0x69, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x2e, 0x70, 0x6e, 0x67, 0x20, 0x2d, 0x6f, 0x20, 0x74, 0x65, 0x78, 0x74, - 0x75, 0x72, 0x65, 0x2e, 0x64, 0x74, 0x20, 0x2d, 0x73, 0x0a, 0x09, 0x43, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x73, 0x20, 0x61, 0x20, 0x50, 0x4e, - 0x47, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, - 0x6e, 0x6f, 0x6e, 0x74, 0x77, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x64, 0x20, - 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x20, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x2e, 0x70, 0x6e, 0x67, 0x20, 0x69, 0x73, 0x20, 0x6e, - 0x6f, 0x74, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x70, 0x6f, 0x77, - 0x65, 0x72, 0x2d, 0x6f, 0x66, 0x2d, 0x74, 0x77, 0x6f, 0x20, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x61, 0x6e, - 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x61, 0x6e, 0x79, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x0a, 0x09, 0x6f, - 0x66, 0x20, 0x33, 0x32, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, - 0x20, 0x3c, 0x3d, 0x20, 0x31, 0x30, 0x32, 0x34, 0x2e, 0x0a, 0x0a, 0x70, - 0x76, 0x72, 0x74, 0x65, 0x78, 0x20, 0x2d, 0x69, 0x20, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x2e, 0x70, 0x6e, 0x67, 0x20, 0x2d, 0x6f, 0x20, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x64, 0x74, 0x20, 0x2d, 0x66, - 0x20, 0x70, 0x61, 0x6c, 0x38, 0x62, 0x70, 0x70, 0x20, 0x2d, 0x43, 0x20, - 0x36, 0x34, 0x20, 0x2d, 0x64, 0x20, 0x2d, 0x70, 0x20, 0x70, 0x72, 0x65, - 0x76, 0x69, 0x65, 0x77, 0x2e, 0x70, 0x6e, 0x67, 0x0a, 0x09, 0x43, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x74, 0x73, 0x20, 0x61, 0x20, 0x50, 0x4e, 0x47, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x44, - 0x54, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x38, 0x2d, 0x62, 0x69, 0x74, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x69, - 0x6e, 0x67, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6d, - 0x6f, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x36, 0x34, 0x20, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x20, 0x32, 0x35, 0x36, 0x2c, 0x0a, 0x09, 0x61, 0x6e, - 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, - 0x74, 0x68, 0x65, 0x72, 0x65, 0x64, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x70, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x77, 0x72, 0x69, 0x74, - 0x74, 0x65, 0x6e, 0x0a, 0x09, 0x74, 0x6f, 0x20, 0x74, 0x65, 0x78, 0x74, - 0x75, 0x72, 0x65, 0x2e, 0x64, 0x74, 0x2e, 0x70, 0x61, 0x6c, 0x2e, 0x20, - 0x41, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x0a, 0x09, 0x77, 0x72, 0x69, 0x74, - 0x74, 0x65, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, - 0x65, 0x77, 0x2e, 0x70, 0x6e, 0x67, 0x2e, 0x0a, 0x0a, 0x70, 0x76, 0x72, - 0x74, 0x65, 0x78, 0x20, 0x2d, 0x69, 0x20, 0x6d, 0x69, 0x70, 0x32, 0x35, - 0x36, 0x2e, 0x70, 0x6e, 0x67, 0x20, 0x2d, 0x69, 0x20, 0x6d, 0x69, 0x70, - 0x31, 0x32, 0x38, 0x2e, 0x70, 0x6e, 0x67, 0x20, 0x2d, 0x69, 0x20, 0x6d, - 0x69, 0x70, 0x36, 0x34, 0x2e, 0x70, 0x6e, 0x67, 0x20, 0x2d, 0x69, 0x20, - 0x6d, 0x69, 0x70, 0x33, 0x32, 0x2e, 0x70, 0x6e, 0x67, 0x20, 0x2d, 0x69, - 0x20, 0x6d, 0x69, 0x70, 0x31, 0x36, 0x2e, 0x70, 0x6e, 0x67, 0x0a, 0x2d, - 0x6f, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x64, 0x74, - 0x20, 0x2d, 0x6d, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x73, 0x20, 0x61, 0x20, 0x6d, 0x69, 0x70, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x2c, 0x20, - 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, - 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x09, 0x61, 0x73, - 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x20, 0x6d, 0x69, 0x70, 0x6d, 0x61, 0x70, 0x20, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x20, - 0x6f, 0x66, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x6d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x61, 0x20, 0x6d, - 0x69, 0x70, 0x6d, 0x61, 0x70, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, - 0x65, 0x72, 0x2c, 0x20, 0x69, 0x74, 0x0a, 0x09, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x68, 0x69, 0x67, - 0x68, 0x65, 0x72, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2e, 0x20, 0x42, - 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2c, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x0a, 0x09, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x62, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x2c, 0x20, 0x62, 0x75, - 0x74, 0x20, 0x74, 0x68, 0x72, 0x65, 0x65, 0x20, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x73, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x3b, 0x20, 0x69, 0x66, - 0x20, 0x79, 0x6f, 0x75, 0x0a, 0x09, 0x77, 0x61, 0x6e, 0x74, 0x20, 0x74, - 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x2c, 0x20, 0x75, - 0x73, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x20, 0x6d, 0x69, 0x70, 0x6d, - 0x61, 0x70, 0x73, 0x20, 0x28, 0x2d, 0x6d, 0x20, 0x66, 0x61, 0x73, 0x74, - 0x29, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x0a, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x0a -}; -unsigned int info_examples_len = 2055; diff --git a/utils/pvrtex/info/options.h b/utils/pvrtex/info/options.h deleted file mode 100644 index 6e437e86..00000000 --- a/utils/pvrtex/info/options.h +++ /dev/null @@ -1,1030 +0,0 @@ -unsigned char info_options[] = { - 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x4c, 0x69, 0x6e, 0x65, - 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x0a, 0x0a, 0x2d, - 0x2d, 0x68, 0x65, 0x6c, 0x70, 0x2c, 0x20, 0x2d, 0x68, 0x0a, 0x09, 0x44, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x2d, 0x2d, 0x65, 0x78, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x73, 0x20, 0x2d, 0x45, 0x0a, 0x09, 0x44, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x73, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x20, - 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x2d, 0x2d, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x2d, 0x56, 0x0a, - 0x09, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x73, 0x20, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x2d, 0x2d, 0x69, 0x6e, 0x20, - 0x5b, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x2c, 0x20, - 0x2d, 0x69, 0x20, 0x5b, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, - 0x5d, 0x0a, 0x09, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x09, - 0x49, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x0a, 0x09, - 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, - 0x6d, 0x69, 0x70, 0x6d, 0x61, 0x70, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x20, - 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x20, 0x6d, 0x69, 0x70, 0x6d, 0x61, - 0x70, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x0a, 0x09, - 0x62, 0x65, 0x20, 0x61, 0x20, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x20, - 0x70, 0x6f, 0x77, 0x65, 0x72, 0x2d, 0x6f, 0x66, 0x2d, 0x74, 0x77, 0x6f, - 0x2e, 0x0a, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x73, 0x20, 0x73, 0x74, 0x62, - 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, - 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x3a, 0x0a, 0x09, 0x09, 0x4a, 0x50, 0x45, 0x47, - 0x2c, 0x20, 0x50, 0x4e, 0x47, 0x2c, 0x20, 0x54, 0x47, 0x41, 0x2c, 0x20, - 0x42, 0x4d, 0x50, 0x2c, 0x20, 0x50, 0x53, 0x44, 0x2c, 0x20, 0x47, 0x49, - 0x46, 0x2c, 0x20, 0x48, 0x44, 0x52, 0x2c, 0x20, 0x50, 0x49, 0x43, 0x2c, - 0x20, 0x50, 0x4d, 0x4e, 0x0a, 0x0a, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x20, - 0x5b, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x2c, 0x20, - 0x2d, 0x6f, 0x20, 0x5b, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, - 0x5d, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x0a, 0x09, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x0a, 0x0a, 0x09, - 0x54, 0x68, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x3a, 0x0a, 0x0a, 0x09, 0x2e, 0x50, 0x56, 0x52, 0x0a, 0x09, 0x09, - 0x4f, 0x66, 0x66, 0x69, 0x63, 0x69, 0x61, 0x6c, 0x20, 0x50, 0x6f, 0x77, - 0x65, 0x72, 0x56, 0x52, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, - 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6e, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x73, 0x20, - 0x77, 0x61, 0x73, 0x0a, 0x09, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x68, 0x65, 0x6c, 0x70, 0x20, 0x74, 0x65, - 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x2c, 0x20, 0x62, 0x79, 0x0a, 0x09, - 0x09, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x50, 0x43, 0x20, 0x50, 0x56, - 0x52, 0x20, 0x76, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, - 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x74, 0x65, 0x78, 0x74, - 0x75, 0x72, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x79, 0x20, 0x69, 0x6e, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2e, 0x50, 0x56, 0x52, - 0x0a, 0x09, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x20, - 0x6f, 0x66, 0x20, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x69, 0x61, 0x6c, 0x20, - 0x67, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x28, 0x66, 0x6f, 0x72, 0x20, 0x65, - 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2c, 0x20, 0x70, 0x76, 0x72, 0x74, - 0x65, 0x78, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x0a, 0x09, 0x09, 0x6e, 0x6f, - 0x74, 0x20, 0x61, 0x64, 0x64, 0x20, 0x61, 0x20, 0x47, 0x42, 0x49, 0x58, - 0x20, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x29, 0x2e, 0x0a, 0x09, 0x2e, 0x54, - 0x45, 0x58, 0x0a, 0x09, 0x09, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x76, 0x73, 0x70, - 0x65, 0x6c, 0x73, 0x66, 0x72, 0x65, 0x61, 0x6b, 0x27, 0x73, 0x20, 0x74, - 0x65, 0x78, 0x63, 0x6f, 0x6e, 0x76, 0x2e, 0x20, 0x70, 0x76, 0x72, 0x74, - 0x65, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x0a, 0x09, 0x09, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x63, 0x65, 0x72, 0x74, 0x61, - 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6e, 0x76, 0x20, - 0x62, 0x75, 0x74, 0x0a, 0x09, 0x09, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, - 0x65, 0x6e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x20, 0x28, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x64, 0x65, 0x0a, 0x09, 0x09, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, - 0x73, 0x29, 0x2e, 0x0a, 0x09, 0x2e, 0x44, 0x54, 0x0a, 0x09, 0x09, 0x4e, - 0x65, 0x77, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x2e, - 0x20, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x73, 0x6d, - 0x61, 0x6c, 0x6c, 0x0a, 0x09, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x62, 0x6f, - 0x6f, 0x6b, 0x20, 0x56, 0x51, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, - 0x69, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x20, 0x33, 0x32, 0x2d, 0x62, 0x79, 0x74, 0x65, 0x0a, - 0x09, 0x09, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, 0x20, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x6b, 0x65, 0x20, 0x44, 0x4d, 0x41, 0x20, 0x65, 0x61, - 0x73, 0x69, 0x65, 0x72, 0x2e, 0x0a, 0x0a, 0x09, 0x49, 0x74, 0x27, 0x73, - 0x20, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x79, 0x20, 0x6e, 0x6f, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x20, 0x70, 0x72, - 0x65, 0x76, 0x69, 0x65, 0x77, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x0a, - 0x09, 0x69, 0x73, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x2e, - 0x0a, 0x0a, 0x2d, 0x2d, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x5b, - 0x74, 0x79, 0x70, 0x65, 0x5d, 0x2c, 0x20, 0x2d, 0x66, 0x20, 0x5b, 0x74, - 0x79, 0x70, 0x65, 0x5d, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x20, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x72, 0x65, 0x2e, 0x0a, 0x0a, 0x09, 0x5b, 0x74, 0x79, 0x70, - 0x65, 0x5d, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6c, - 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x3a, 0x0a, 0x0a, 0x09, 0x52, 0x47, - 0x42, 0x35, 0x36, 0x35, 0x0a, 0x09, 0x09, 0x42, 0x65, 0x73, 0x74, 0x20, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, - 0x74, 0x20, 0x73, 0x61, 0x63, 0x72, 0x69, 0x66, 0x69, 0x63, 0x69, 0x6e, - 0x67, 0x0a, 0x09, 0x09, 0x73, 0x70, 0x65, 0x65, 0x64, 0x2c, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, - 0x72, 0x61, 0x69, 0x6e, 0x62, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x6f, - 0x6e, 0x20, 0x67, 0x72, 0x61, 0x79, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x0a, 0x09, 0x41, 0x52, 0x47, - 0x42, 0x31, 0x35, 0x35, 0x35, 0x0a, 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x6f, - 0x77, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x20, 0x74, 0x65, 0x78, 0x65, 0x6c, 0x73, 0x2e, 0x20, 0x42, 0x65, 0x74, - 0x74, 0x65, 0x72, 0x20, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x0a, 0x09, 0x09, 0x67, 0x72, 0x61, 0x79, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x52, 0x47, 0x42, 0x35, - 0x36, 0x35, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, - 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x72, 0x61, 0x69, 0x6e, 0x62, - 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x09, 0x41, 0x52, 0x47, 0x42, - 0x34, 0x34, 0x34, 0x34, 0x0a, 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x6f, 0x77, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x20, - 0x67, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x70, 0x6f, 0x6f, 0x72, 0x65, 0x73, 0x74, 0x20, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x70, 0x74, 0x68, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x0a, 0x09, 0x09, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x2e, - 0x0a, 0x09, 0x59, 0x55, 0x56, 0x34, 0x32, 0x32, 0x20, 0x2f, 0x20, 0x59, - 0x55, 0x56, 0x0a, 0x09, 0x09, 0x42, 0x65, 0x74, 0x74, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x52, 0x47, 0x42, 0x35, 0x36, 0x35, 0x20, - 0x6f, 0x72, 0x20, 0x41, 0x52, 0x47, 0x42, 0x31, 0x35, 0x35, 0x35, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x67, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, - 0x73, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x0a, 0x09, 0x09, 0x62, 0x69, 0x2f, - 0x74, 0x72, 0x69, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x68, 0x61, 0x73, 0x20, - 0x77, 0x6f, 0x72, 0x73, 0x65, 0x20, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x0a, 0x09, 0x50, 0x41, 0x4c, 0x38, - 0x42, 0x50, 0x50, 0x0a, 0x09, 0x09, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x32, 0x35, 0x36, 0x20, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x73, 0x2e, 0x20, 0x50, 0x61, 0x6c, 0x65, 0x74, 0x74, 0x65, - 0x20, 0x69, 0x73, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x0a, 0x09, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, - 0x4d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x74, 0x77, 0x69, 0x64, - 0x64, 0x6c, 0x65, 0x64, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x6d, 0x69, - 0x70, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x0a, 0x09, 0x09, - 0x61, 0x6e, 0x64, 0x20, 0x62, 0x69, 0x2f, 0x74, 0x72, 0x69, 0x6c, 0x69, - 0x6e, 0x65, 0x61, 0x72, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x2c, 0x20, 0x61, 0x20, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, - 0x65, 0x20, 0x62, 0x75, 0x67, 0x20, 0x63, 0x61, 0x75, 0x73, 0x65, 0x73, - 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x0a, 0x09, 0x09, 0x74, 0x65, 0x78, 0x65, - 0x6c, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x72, 0x72, - 0x65, 0x63, 0x74, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x74, 0x6f, 0x70, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x2f, 0x62, 0x6f, - 0x74, 0x74, 0x6f, 0x6d, 0x0a, 0x09, 0x09, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x20, 0x63, 0x6f, 0x72, 0x6e, 0x65, 0x72, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x61, 0x20, 0x34, 0x78, 0x32, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x0a, 0x09, 0x50, 0x41, 0x4c, 0x34, 0x42, 0x50, 0x50, 0x0a, 0x09, 0x09, - 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x31, - 0x36, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x2e, 0x20, 0x50, 0x61, - 0x6c, 0x65, 0x74, 0x74, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, - 0x73, 0x65, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x0a, 0x09, 0x09, 0x66, - 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x4d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, - 0x20, 0x74, 0x77, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x64, 0x2e, 0x20, 0x49, - 0x66, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x2c, 0x20, 0x6d, 0x69, 0x70, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x2c, 0x0a, 0x09, 0x09, 0x61, 0x6e, 0x64, 0x20, 0x62, 0x69, 0x2f, - 0x74, 0x72, 0x69, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x2c, 0x20, 0x61, 0x20, 0x68, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x20, 0x62, 0x75, 0x67, 0x20, 0x63, - 0x61, 0x75, 0x73, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x0a, 0x09, - 0x09, 0x74, 0x65, 0x78, 0x65, 0x6c, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x6c, 0x79, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x70, 0x20, 0x6c, 0x65, - 0x66, 0x74, 0x2f, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x0a, 0x09, 0x09, - 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x63, 0x6f, 0x72, 0x6e, 0x65, 0x72, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x34, 0x78, 0x34, 0x20, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x0a, 0x09, 0x42, 0x55, 0x4d, 0x50, 0x4d, 0x41, - 0x50, 0x0a, 0x09, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x73, 0x20, 0x50, 0x56, 0x52, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x20, 0x6d, 0x61, 0x70, 0x2e, 0x20, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, 0x0a, 0x09, - 0x09, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x2e, - 0x0a, 0x09, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x0a, 0x09, 0x09, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x20, 0x50, 0x56, 0x52, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x6d, 0x61, 0x70, 0x2e, - 0x20, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x61, 0x73, 0x20, 0x61, 0x0a, 0x09, 0x09, 0x44, 0x4f, 0x54, 0x33, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x6d, 0x61, 0x70, 0x2c, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x47, 0x42, 0x20, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x0a, 0x09, 0x09, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x27, 0x73, 0x20, 0x58, 0x59, 0x5a, 0x2e, 0x0a, 0x09, 0x41, 0x55, 0x54, - 0x4f, 0x0a, 0x09, 0x09, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x73, 0x20, - 0x52, 0x47, 0x42, 0x35, 0x36, 0x35, 0x2c, 0x20, 0x41, 0x52, 0x47, 0x42, - 0x31, 0x35, 0x35, 0x35, 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x41, 0x52, 0x47, - 0x42, 0x34, 0x34, 0x34, 0x34, 0x20, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x0a, 0x09, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x6f, - 0x66, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, - 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x2c, 0x20, 0x52, 0x47, 0x42, 0x35, - 0x36, 0x35, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x2c, 0x0a, - 0x09, 0x09, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, - 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x6f, 0x70, 0x61, 0x71, 0x75, - 0x65, 0x20, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x0a, 0x09, - 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2c, 0x20, 0x41, 0x52, 0x47, 0x42, - 0x31, 0x35, 0x35, 0x35, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x66, 0x20, 0x73, 0x6f, 0x6d, - 0x65, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x20, 0x68, 0x61, 0x76, - 0x65, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x0a, - 0x09, 0x09, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x20, 0x6f, 0x72, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, - 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x41, 0x52, 0x47, 0x42, - 0x34, 0x34, 0x34, 0x34, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x2e, 0x0a, 0x09, 0x41, 0x55, 0x54, 0x4f, 0x59, 0x55, 0x56, 0x0a, 0x09, - 0x09, 0x53, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x41, 0x55, 0x54, - 0x4f, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x52, 0x47, 0x42, 0x35, 0x36, 0x35, 0x20, 0x69, - 0x73, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x59, 0x55, 0x56, 0x34, 0x32, 0x32, 0x2e, 0x0a, - 0x0a, 0x2d, 0x2d, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x20, 0x5b, - 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x2c, 0x20, 0x2d, - 0x70, 0x20, 0x5b, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x5d, - 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x20, - 0x61, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x59, 0x6f, 0x75, 0x20, 0x63, 0x61, 0x6e, - 0x0a, 0x09, 0x73, 0x65, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x74, - 0x20, 0x64, 0x65, 0x70, 0x74, 0x68, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x64, 0x69, 0x74, 0x68, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x6d, 0x69, 0x70, 0x6d, 0x61, 0x70, 0x73, - 0x2c, 0x0a, 0x09, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x09, 0x54, 0x68, - 0x65, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x20, 0x69, 0x73, - 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x50, 0x4e, - 0x47, 0x2c, 0x20, 0x4a, 0x50, 0x47, 0x2c, 0x20, 0x42, 0x4d, 0x50, 0x2c, - 0x20, 0x6f, 0x72, 0x20, 0x54, 0x47, 0x41, 0x20, 0x66, 0x69, 0x6c, 0x65, ...<truncated>... hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: falcovorbis <fal...@us...> - 2024-08-19 06:00:27
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via c2d45545e439c0624865b792a23653bb3dfd956b (commit) via 76326ab61332ac7f7257447b88f4ff2bbcbaa712 (commit) from fff864a476bc3096afc0de1b515f1a4453a6caa5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit c2d45545e439c0624865b792a23653bb3dfd956b Author: SiZiOUS <si...@gm...> Date: Mon Aug 19 06:59:56 2024 +0100 `utils`: adding `font2txf`, a tool to make TXF from TrueType/OpenType fonts (#704) * `utils`: adding `font2txf`, a tool to make TXF from TrueType/OpenType fonts. This tool is an updated version of the ttf2txf tool created by Chris Laurel for the Celestia project. TXF font format was created in 1997 by Mark J. Kilgard for the OpenGL Utility Toolkit (GLUT). TXF is supported using the `libdcplib` kos-port via the PLIB FNT component. * `utils`: don't build `font2txf` by default (at least for now) commit 76326ab61332ac7f7257447b88f4ff2bbcbaa712 Author: SiZiOUS <si...@gm...> Date: Mon Aug 19 06:25:26 2024 +0100 `LibADX`: adding an example for ADX playback (#715) This example was written by Josh 'PH3NOM' Pearson <ph3...@gm...> (@PH3NOM-PRO). ----------------------------------------------------------------------- Summary of changes: .../dreamcast/{2ndmix => sound/hello-adx}/Makefile | 12 +- examples/dreamcast/sound/hello-adx/libADXplay.c | 121 +++++++ examples/dreamcast/sound/hello-adx/readme.txt | 3 + .../dreamcast/sound/hello-adx/romdisk}/.keepme | 0 utils/font2txf/.gitignore | 40 +++ utils/font2txf/CHANGELOG.md | 35 ++ utils/font2txf/CREDITS | 6 + utils/{genromfs/COPYING => font2txf/LICENSE} | 64 +--- utils/{makeip => font2txf}/Makefile | 0 utils/font2txf/README.md | 169 ++++++++++ utils/font2txf/TODO.md | 10 + utils/font2txf/img/arial.png | Bin 0 -> 76428 bytes utils/font2txf/src/Makefile | 98 ++++++ utils/font2txf/src/Makefile.cfg | 46 +++ utils/font2txf/src/Makefile.hostdetect | 43 +++ utils/font2txf/src/charset.cpp | 32 ++ utils/font2txf/src/charset.h | 19 ++ utils/font2txf/src/global.cpp | 49 +++ utils/font2txf/src/global.h | 83 +++++ utils/font2txf/src/main.cpp | 360 +++++++++++++++++++++ utils/font2txf/src/preview.cpp | 186 +++++++++++ utils/font2txf/src/preview.h | 26 ++ utils/font2txf/src/txfbuild.cpp | 286 ++++++++++++++++ utils/font2txf/src/txfbuild.h | 27 ++ utils/font2txf/src/txfwrite.cpp | 148 +++++++++ utils/font2txf/src/txfwrite.h | 77 +++++ utils/font2txf/src/utils.cpp | 64 ++++ utils/font2txf/src/utils.h | 160 +++++++++ utils/gentexfont/readme.txt | 6 + 29 files changed, 2101 insertions(+), 69 deletions(-) copy examples/dreamcast/{2ndmix => sound/hello-adx}/Makefile (56%) create mode 100644 examples/dreamcast/sound/hello-adx/libADXplay.c create mode 100644 examples/dreamcast/sound/hello-adx/readme.txt copy {addons/lib => examples/dreamcast/sound/hello-adx/romdisk}/.keepme (100%) create mode 100644 utils/font2txf/.gitignore create mode 100644 utils/font2txf/CHANGELOG.md create mode 100644 utils/font2txf/CREDITS copy utils/{genromfs/COPYING => font2txf/LICENSE} (83%) copy utils/{makeip => font2txf}/Makefile (100%) create mode 100644 utils/font2txf/README.md create mode 100644 utils/font2txf/TODO.md create mode 100644 utils/font2txf/img/arial.png create mode 100644 utils/font2txf/src/Makefile create mode 100644 utils/font2txf/src/Makefile.cfg create mode 100644 utils/font2txf/src/Makefile.hostdetect create mode 100644 utils/font2txf/src/charset.cpp create mode 100644 utils/font2txf/src/charset.h create mode 100644 utils/font2txf/src/global.cpp create mode 100644 utils/font2txf/src/global.h create mode 100644 utils/font2txf/src/main.cpp create mode 100644 utils/font2txf/src/preview.cpp create mode 100644 utils/font2txf/src/preview.h create mode 100644 utils/font2txf/src/txfbuild.cpp create mode 100644 utils/font2txf/src/txfbuild.h create mode 100644 utils/font2txf/src/txfwrite.cpp create mode 100644 utils/font2txf/src/txfwrite.h create mode 100644 utils/font2txf/src/utils.cpp create mode 100644 utils/font2txf/src/utils.h diff --git a/examples/dreamcast/2ndmix/Makefile b/examples/dreamcast/sound/hello-adx/Makefile similarity index 56% copy from examples/dreamcast/2ndmix/Makefile copy to examples/dreamcast/sound/hello-adx/Makefile index 0e3b214d..218ef865 100644 --- a/examples/dreamcast/2ndmix/Makefile +++ b/examples/dreamcast/sound/hello-adx/Makefile @@ -1,11 +1,11 @@ -# KallistiOS ##version## # -# 2ndmix/Makefile -# Copyright (C)2003 Megan Potter +# LibADX Test +# Copyright (C) 2011-2013 Josh 'PH3NOM' Pearson <ph3...@gm...> +# Copyright (C) 2024 The KOS Team and contributors # -TARGET = 2ndmix.elf -OBJS = 2ndmix.o romdisk.o +TARGET = libADXplay.elf +OBJS = libADXplay.o romdisk.o KOS_ROMDISK_DIR = romdisk all: rm-elf $(TARGET) @@ -19,7 +19,7 @@ rm-elf: -rm -f $(TARGET) romdisk.* $(TARGET): $(OBJS) - kos-cc -o $(TARGET) $(OBJS) + kos-cc -o $(TARGET) $(OBJS) -lADX run: $(TARGET) $(KOS_LOADER) $(TARGET) diff --git a/examples/dreamcast/sound/hello-adx/libADXplay.c b/examples/dreamcast/sound/hello-adx/libADXplay.c new file mode 100644 index 00000000..8e220511 --- /dev/null +++ b/examples/dreamcast/sound/hello-adx/libADXplay.c @@ -0,0 +1,121 @@ +/* LibADX for KallistiOS ##version## + + libADXPlay.c + Simple "Hello World" style example of ADX playback. + + Copyright (C) 2012 Josh 'PH3NOM' Pearson <ph3...@gm...> + Copyright (C) 2024 The KOS Team and contributors +*/ + +#include <stdio.h> + +#include <kos/dbgio.h> + +#include <dc/maple.h> +#include <dc/maple/controller.h> +#include <dc/sound/stream.h> + +#include <kos/init.h> +#include <kos.h> + +#include <adx/adx.h> /* ADX Decoder Library */ +#include <adx/snddrv.h> /* Direct Access to Sound Driver */ + +#define CONT_RESUME 0x01 +#define CONT_PAUSE 0x02 +#define CONT_RESTART 0x03 +#define CONT_STOP 0x04 +#define CONT_VOLUP 0x05 +#define CONT_VOLDN 0x06 + +int check_cont() +{ + int ret=0; + maple_device_t *cont; + cont_state_t *state; + cont = maple_enum_type(0, MAPLE_FUNC_CONTROLLER); + + if(cont) + { + state = (cont_state_t *)maple_dev_status(cont); + if (!state) + ret = 0; + if (state->buttons & CONT_START) + ret = CONT_STOP; + if (state->buttons & CONT_X) + ret = CONT_RESTART; + if (state->buttons & CONT_A) + ret = CONT_PAUSE; + if (state->buttons & CONT_B) + ret = CONT_RESUME; + if (state->buttons & CONT_DPAD_UP) + ret = CONT_VOLUP; + if (state->buttons & CONT_DPAD_DOWN) + ret = CONT_VOLDN; + } + return ret; +} + +int main() +{ + /* Print some text to the screen */ + int o = 20*640+20; + bfont_set_encoding(BFONT_CODE_ISO8859_1); + bfont_draw_str(vram_s+o,640,1,"LibADX (C) PH3NOM 2012"); o+=640*48; + printf("LibADX (C) PH3NOM 2012\n"); + + /* Start the ADX stream, with looping enabled */ + if( adx_dec( "/rd/test.adx", 1 ) < 1 ) + { + printf("Invalid ADX file\n"); + return 0; + } + + /* Wait for the stream to start */ + while( snddrv.drv_status == SNDDRV_STATUS_NULL ) + thd_pass(); + + bfont_draw_str(vram_s+o,640,1,"Press Start to stop, press X to restart"); + o+=640*48; + bfont_draw_str(vram_s+o,640,1,"Press A to pause, press B to resume"); + o+=640*48; + bfont_draw_str(vram_s+o,640,1,"Press UP or Down to increase/decrease volume"); + + /* Check for user input and eof */ + while( snddrv.drv_status != SNDDRV_STATUS_NULL ) { + int vol; + switch (check_cont()) { + case CONT_RESTART: + if(adx_restart()) + printf("ADX streaming restarted\n"); + break; + case CONT_STOP: + if(adx_stop()) + printf("ADX streaming stopped\n"); + break; + case CONT_PAUSE: + if(adx_pause()) + printf("ADX streaming paused\n"); + break; + case CONT_RESUME: + if(adx_resume()) + printf("ADX streaming resumed\n"); + break; + case CONT_VOLUP: + vol = snddrv_volume_up(); + printf("SNDDRV: Volume set to %i%s\n", ((vol*100)/255), "%"); + break; + case CONT_VOLDN: + vol = snddrv_volume_down(); + printf("SNDDRV: Volume set to %i%s\n", ((vol*100)/255), "%"); + break; + default: + break; + } + thd_sleep(50); + } /* when (snddrv.drv_status == SNDDRV_STATUS_NULL) the stream is finished*/ + + printf( "LibADX Example Finished\n"); + + return 0; +} diff --git a/examples/dreamcast/sound/hello-adx/readme.txt b/examples/dreamcast/sound/hello-adx/readme.txt new file mode 100644 index 00000000..e08dcc08 --- /dev/null +++ b/examples/dreamcast/sound/hello-adx/readme.txt @@ -0,0 +1,3 @@ +This example expects a file called "test.adx" to exist in the root of the +romdisk. Put a relatively small adx file with the correct filename in the +romdisk directory before compiling if you want the example to work. ;) diff --git a/addons/lib/.keepme b/examples/dreamcast/sound/hello-adx/romdisk/.keepme similarity index 100% copy from addons/lib/.keepme copy to examples/dreamcast/sound/hello-adx/romdisk/.keepme diff --git a/utils/font2txf/.gitignore b/utils/font2txf/.gitignore new file mode 100644 index 00000000..5bcd548d --- /dev/null +++ b/utils/font2txf/.gitignore @@ -0,0 +1,40 @@ +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + +# Fonts +*.ttf +*.otf +*.txf + +# Other types +*.log diff --git a/utils/font2txf/CHANGELOG.md b/utils/font2txf/CHANGELOG.md new file mode 100644 index 00000000..1b2474ef --- /dev/null +++ b/utils/font2txf/CHANGELOG.md @@ -0,0 +1,35 @@ +# font2txf: Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [1.12.0] - 2024-08-xx + +### Added + +- Preview option (`-p`), used for displaying the generated TXF file at the + end of the process. This requires [Freeglut](https://freeglut.sourceforge.net/), + but it can be disabled if needed at compile time. +- Verbose option (`-v`), that display the original output from `ttf2txf`. + +### Changed + +- Complete redesign/refactoring of the whole code. Splitting code into many + small source files instead of a single `ttf2txf.cpp` file. +- Command-line options were updated a bit (exclusion between `-c` and `-f`, + `-q` is really quiet now, `-h` stands for help now but can be mapped to + height as originally if used with `-w`, etc.). +- Program is now licensed under the **GNU GPL 2 License** like the + [Celestia](https://celestiaproject.space/) project (previously this tool + wasn't clearly licensed). + +### Fixed + +- Some memory leaks while building the TXF font when an error occured. + +## [1.11.0] - 2001-10-20 + +### Added +- Initial release used for the [Celestia](https://celestiaproject.space/) project. diff --git a/utils/font2txf/CREDITS b/utils/font2txf/CREDITS new file mode 100644 index 00000000..9caa9721 --- /dev/null +++ b/utils/font2txf/CREDITS @@ -0,0 +1,6 @@ +font2txf: Credits + +- Mark J. Kilgard: Creator of the Texture Mapped Font (TXF) format. +- Chris Laurel and the Celestia project team: The initial authors of the original "ttf2txf" utility. + https://web.archive.org/web/20051104023112/http://www.shatters.net/~claurel/celestia/fonts/tt2txf/ +- Mickaël Cardoso (SiZiOUS): Complete refactoring of the project. diff --git a/utils/genromfs/COPYING b/utils/font2txf/LICENSE similarity index 83% copy from utils/genromfs/COPYING copy to utils/font2txf/LICENSE index dc63aaca..5ec43ee1 100644 --- a/utils/genromfs/COPYING +++ b/utils/font2txf/LICENSE @@ -1,9 +1,8 @@ - GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 675 Mass Ave, Cambridge, MA 02139, USA + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -277,64 +276,3 @@ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) 19yy <name of author> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/utils/makeip/Makefile b/utils/font2txf/Makefile similarity index 100% copy from utils/makeip/Makefile copy to utils/font2txf/Makefile diff --git a/utils/font2txf/README.md b/utils/font2txf/README.md new file mode 100644 index 00000000..29ce2581 --- /dev/null +++ b/utils/font2txf/README.md @@ -0,0 +1,169 @@ +# font2txf + +**font2txf** is an utility used for generating texture mapped font files, +also known as the `TXF` format, from a **TrueType** (`TTF`) or **OpenType** +(`OTF`) font file. + +`TXF` is a texture font which can be used in the context of **GLUT** (OpenGL +Utility Toolkit), created by [Mark J. Kilgard](https://en.wikipedia.org/wiki/Mark_Kilgard). +For the **Sega Dreamcast**, the `TXF` format is supported using the `libdcplib` +KallistiOS Port, using the `PLIB FNT` component. An example of source code, +including sample `TXF` fonts, is available here: + + $KOS_BASE/examples/dreamcast/cpp/dcplib + +For generating `TXF` files, you can use the provided `gentexfont` (originally +written by Mark himself), `ttf2txf` (from the [Celestia](https://celestiaproject.space/) +project) or this `font2txf` utility. + +Below you'll find an example of a `TXF` generated font, from the `Arial` +TrueType font: + +![Example](img/arial.png "Sample Arial TXF image") + +## Building + +This program is a standard C program which may be compiled with **GNU Make**. +It requires `FreeType` installed. +[Learn more about FreeType here](http://freetype.org/). + +1. Edit the `Makefile.cfg` and check if everything is OK for you; +2. Enter `make` (`gmake` on BSD systems). + +If you want to enable the **Preview** feature (as displayed in this +`README` file), you will have to install `freeglut`. +[Learn more about freeglut here](https://freeglut.sourceforge.net/). + +Please note that you can indeed make a static binary by setting up +the `STANDALONE_BINARY` flag to `1`. This was created with Microsoft +Windows in mind, but could work on other OS as well. + +## Usage + +To use this tool, the usage is nearly identical as the original `ttf2txf` +utility. The minimal command-line is: + + ./font2txf <fontfile.ttf> + +This will convert `fontfile.ttf` to the corresponding `fontfile.txf`, +using the defaults, which are a `256x256` texture size, using a `20pt` font +size and the default charset, which is: + + (space)(A..Z)1234567890(a..z)?.;,!*:"/+-|'@#$%^&<>()[]{}_ + +Of course, `(space)` means a blank space character (` `) and `(A..Z)` means +every characters, from `A` to `Z` (same for `(a..z)`). + +Example of a more complete command-line: + + ./ttf2txf -o revenant.txf -s 22 -w 256 -h 256 -c "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()-_=+[]{}|;:,.<>~ ?/" revenant.ttf + +The `revenant.txf` file will be generated from the `revenant.ttf` font, +in a `256x256` texture, using the charset passed with the `-c` switch, +and using the `22pt` size. + +### Available Options + +Available options are (displayed with the `-h` switch): + + -w <width> Texture width (default: 256) + -e <height> Texture height (default: 256); also `-h` for compatibility + -c <string> Override charset to convert; read from command-line + Cannot be mixed with `-f` + -f <filename.txt> Override charset to convert; read from a text file + Cannot be mixed with `-c` + -g <gap> Space between glyphs (default: 1) + -s <size> Font point size (default: 20) + -o <filename.txf> Output file for textured font (default: <fontfile>.txf) + -q Quiet; except error messages, cannot be mixed with `-v` + -v Verbose; display more info, cannot be mixed with `-q` + -p Preview; display the txf output at the end of the process + -h Usage information (you're looking at it); if `-w` not set + +### Altering the generated texture + +The `-w` (width) and `-e` (height) options are used for altering the size of the +generated texture. For compatibility reasons, `-e` can be replaced by `-h`, if +used with `-w`. Indeed in the original `ttf2txf` tool, `-h` was mapped to texture +height, but now it means displaying help. ...<truncated>... hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: falcovorbis <fal...@us...> - 2024-08-19 05:00:49
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via fff864a476bc3096afc0de1b515f1a4453a6caa5 (commit) from 9d115023ffc10996601a8e12fdb809cff2c5804f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit fff864a476bc3096afc0de1b515f1a4453a6caa5 Author: jnmartin84 <jnm...@gm...> Date: Mon Aug 19 00:55:22 2024 -0400 Add an example of how to render lines with the PVR. (#714) * Add PVR-accelerated line-rendering example. * turns out the endpoint order condition check is simple * cleanup vert swapping * formatting and comments * one missed spaces-to-tab * remove copyright header until I figure out what is wanted * fix remaining stray tab issues * update comments and long lines ----------------------------------------------------------------------- Summary of changes: examples/dreamcast/pvr/Makefile | 3 + .../{network/dns-client => pvr/pvrline}/Makefile | 7 +- examples/dreamcast/pvr/pvrline/pvrline.c | 264 +++++++++++++++++++++ 3 files changed, 271 insertions(+), 3 deletions(-) copy examples/dreamcast/{network/dns-client => pvr/pvrline}/Makefile (82%) create mode 100644 examples/dreamcast/pvr/pvrline/pvrline.c diff --git a/examples/dreamcast/pvr/Makefile b/examples/dreamcast/pvr/Makefile index 24812cfe..3cb67d66 100644 --- a/examples/dreamcast/pvr/Makefile +++ b/examples/dreamcast/pvr/Makefile @@ -6,6 +6,7 @@ all: $(KOS_MAKE) -C plasma + $(KOS_MAKE) -C pvrline $(KOS_MAKE) -C pvrmark $(KOS_MAKE) -C pvrmark_strips $(KOS_MAKE) -C pvrmark_strips_direct @@ -18,6 +19,7 @@ all: clean: $(KOS_MAKE) -C plasma clean + $(KOS_MAKE) -C pvrline clean $(KOS_MAKE) -C pvrmark clean $(KOS_MAKE) -C pvrmark_strips clean $(KOS_MAKE) -C pvrmark_strips_direct clean @@ -30,6 +32,7 @@ clean: dist: $(KOS_MAKE) -C plasma dist + $(KOS_MAKE) -C pvrline dist $(KOS_MAKE) -C pvrmark dist $(KOS_MAKE) -C pvrmark_strips dist $(KOS_MAKE) -C pvrmark_strips_direct dist diff --git a/examples/dreamcast/network/dns-client/Makefile b/examples/dreamcast/pvr/pvrline/Makefile similarity index 82% copy from examples/dreamcast/network/dns-client/Makefile copy to examples/dreamcast/pvr/pvrline/Makefile index 0e010c5a..a834749b 100644 --- a/examples/dreamcast/network/dns-client/Makefile +++ b/examples/dreamcast/pvr/pvrline/Makefile @@ -1,8 +1,8 @@ # Put the filename of the output binary here -TARGET = dns-client.elf +TARGET = pvrline.elf # List all of your C files here, but change the extension to ".o" -OBJS = dns-client.o +OBJS = pvrline.o all: rm-elf $(TARGET) @@ -18,8 +18,9 @@ $(TARGET): $(OBJS) kos-cc -o $(TARGET) $(OBJS) run: $(TARGET) - $(KOS_LOADER) $(TARGET) -n + $(KOS_LOADER) $(TARGET) dist: $(TARGET) -rm -f $(OBJS) $(KOS_STRIP) $(TARGET) + diff --git a/examples/dreamcast/pvr/pvrline/pvrline.c b/examples/dreamcast/pvr/pvrline/pvrline.c new file mode 100644 index 00000000..ee6632fb --- /dev/null +++ b/examples/dreamcast/pvr/pvrline/pvrline.c @@ -0,0 +1,264 @@ +/* + * KallistiOS ##version## + * + * examples/dreamcast/pvr/pvrline/pvrline.c + * Copyright (C) 2024 Jason Martin + * + * This example demonstrates the use of the PVR to draw lines with quads + * (as triangle strips). + * It also demonstrates the use of pvr_list_prim, interleaving the drawing of + * OPAQUE and TRANSPARENT polygons. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <time.h> + +#include <kos.h> + +/* 512 kb vertex buffer size */ +#define VERTBUF_SIZE (512*1024) + +KOS_INIT_FLAGS(INIT_DEFAULT); + +/* enable OP and TR lists */ +pvr_init_params_t pvr_params = { +{ PVR_BINSIZE_16, 0, PVR_BINSIZE_16, 0, 0 }, VERTBUF_SIZE, 1, 0, 0, 3 +}; + +uint8_t __attribute__((aligned(32))) op_buf[VERTBUF_SIZE]; +uint8_t __attribute__((aligned(32))) tr_buf[VERTBUF_SIZE]; + +/* + * given a vec3f_t representing the screen-space start of a line (x,y,z), + * a vec3f_t representing the screen-space end of a line (x,y,z), + * a color, a width, a pvr polygon list type and a pvr polygon header + * uses the PVR to draw a line with a triangle strip consisting of 4 vertices + * representing a quad +*/ +void draw_pvr_line(vec3f_t *v1, vec3f_t *v2, float width, int color, + int which_list, pvr_poly_hdr_t *which_hdr); + +int main(int argc, char **argv) +{ + pvr_poly_hdr_t op_hdr, tr_hdr; + pvr_poly_cxt_t op_cxt, tr_cxt; + + /* start and end points of a line in screen-space */ + vec3f_t v1, v2; + /* red, green, blue and alpha color components */ + int r, g, b, a; + /* packed color */ + int color; + /* line width */ + int width; + /* moving offset added or subtracted to x and y components of endpoints */ + int offset; + /* number of lines to draw per frame */ + int linecount = 1; + + maple_device_t *controller; + cont_state_t *cont; + + printf("---KallistiOS PVR Line-drawing Example---\n"); + printf("Press DPAD UP to increase line count\n\t(up to a maximum of 1536" + " lines).\n"); + printf("Press DPAD DOWN to decrease line count\n\t(down to a minimum of 1" + " line).\n"); + printf("Press A to reset line count to 1.\n"); + printf("Press Start to exit.\n"); + + srand(time(NULL)); + + vid_set_enabled(0); + vid_set_mode(DM_640x480, PM_RGB565); + pvr_init(&pvr_params); + vid_set_enabled(1); + + /* polygon header setup, OP lines */ + pvr_poly_cxt_col(&op_cxt, PVR_LIST_OP_POLY); + pvr_poly_compile(&op_hdr, &op_cxt); + + /* polygon header setup, TR lines */ + pvr_poly_cxt_col(&tr_cxt, PVR_LIST_TR_POLY); + pvr_poly_compile(&tr_hdr, &tr_cxt); + + offset = 0; + + while (true) { + controller = maple_enum_type(0, MAPLE_FUNC_CONTROLLER); + if (controller) { + cont = maple_dev_status(controller); + if (cont->buttons & CONT_DPAD_UP) { + if (linecount < 1536) { + linecount += 1; + } + } else if (cont->buttons & CONT_DPAD_DOWN) { + if (linecount > 1) { + linecount -= 1; + } + } else if (cont->buttons & CONT_A) { + linecount = 1; + } else if (cont->buttons & CONT_START) { + break; + } + } + + pvr_wait_ready(); + pvr_scene_begin(); + + /* set vertex buffers for pvr_list_prim use */ + pvr_set_vertbuf(PVR_LIST_OP_POLY, op_buf, VERTBUF_SIZE); + pvr_set_vertbuf(PVR_LIST_TR_POLY, tr_buf, VERTBUF_SIZE); + + /* + * incrementing offset added to endpoints + * make endpoints occasionally move to other side of screen + * from where they start + * force swaps in the line drawing routine + */ + offset = (offset + 5) % 360; + + for (int i = 0; i < linecount; i++) { + v1.x = rand() % 128; + v1.y = rand() % 64; + v1.z = 5; + + v2.x = 500 + (rand() % 96); + v2.y = 400 + (rand() % 48); + v2.z = 5; + + /* + * add an offset in the range [0,359] to v1 x and y + * x stays within [0,487] + * y stays within [0,422] + */ + v1.x += offset; + v1.y += offset; + + /* + * subtract an offset in the range [0,359] from v2 x and y + * x stays within [141,595] + * y stays within [40,447] + */ + v2.x -= offset; + v2.y -= offset; + + /* + * the above offset can move v2 to the left of v1 + * this demonstrates that lines will always render correctly + * regardless of vertex order + */ + + /* generate a random RGBA color */ + r = rand() % 256; + g = rand() % 256; + b = rand() % 256; + a = rand() % 256; + + color = PVR_PACK_COLOR((float)a / 255.0f, + (float)r / 255.0f, + (float)g / 255.0f, + (float)b / 255.0f); + + width = (rand() % 5) + 1; + + /* interleaved use of PVR polygon list types */ + if (a == 255) { + /* + * when alpha is fully opaque + * use the OP list + */ + draw_pvr_line(&v1, &v2, width, color, + PVR_LIST_OP_POLY, &op_hdr); + } else { + /* + * when alpha is transparent at all + * use the TR list + */ + draw_pvr_line(&v1, &v2, width, color, + PVR_LIST_TR_POLY, &tr_hdr); + } + } + + pvr_scene_finish(); + } +} + +void draw_pvr_line(vec3f_t *v1, vec3f_t *v2, float width, int color, + int which_list, pvr_poly_hdr_t *which_hdr) +{ + pvr_vertex_t __attribute__((aligned(32))) line_verts[4]; + pvr_vertex_t *vert = line_verts; + + vec3f_t *ov1; + vec3f_t *ov2; + + for (int i=0;i<4;i++) { + line_verts[i].flags = PVR_CMD_VERTEX; + line_verts[i].argb = color; + line_verts[i].oargb = 0; + } + line_verts[3].flags = PVR_CMD_VERTEX_EOL; + + /* + * when first vertex is to the left of or vertical with second vertex + * they are already ordered + * otherwise + * swap endpoints + */ + if(v1->x <= v2->x) { + ov1 = v1; + ov2 = v2; + } else { + ov1 = v2; + ov2 = v1; + } + + /* + * https://devcry.heiho.net/html/2017/20170820-opengl-line-drawing.html + * + * get the normal to the line segment running from v1 to v2 + * use normal to draw a quad covering the actual line segment + */ + float dx = ov2->x - ov1->x; + float dy = ov2->y - ov1->y; + + /* + * use the fast reciprocal square root function provided by KOS + * to get inverse of the magnitude of the normal + * multiply by half of the line width + * this scales the normal, making a quad with the requested line width + */ + float inverse_magnitude = frsqrt((dx*dx) + (dy*dy)) * + ((float)width*0.5f); + float nx = -dy * inverse_magnitude; + float ny = dx * inverse_magnitude; + + /* normal offset "down" from the first endpoint */ + vert->x = ov1->x + nx; + vert->y = ov1->y + ny; + vert->z = ov1->z; + vert++; + + /* normal offset "up" from the first endpoint */ + vert->x = ov1->x - nx; + vert->y = ov1->y - ny; + vert->z = ov2->z; + vert++; + + /* normal offset "down" from the second endpoint */ + vert->x = ov2->x + nx; + vert->y = ov2->y + ny; + vert->z = ov1->z; + vert++; + + /* normal offset "up" from the second endpoint */ + vert->x = ov2->x - nx; + vert->y = ov2->y - ny; + vert->z = ov2->z; + + /* submit the poly header and vertices to requested list */ + pvr_list_prim(which_list, which_hdr, sizeof(pvr_poly_hdr_t)); + pvr_list_prim(which_list, &line_verts, 4 * sizeof(pvr_vertex_t)); +} hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: falcovorbis <fal...@us...> - 2024-08-19 04:27:20
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 9d115023ffc10996601a8e12fdb809cff2c5804f (commit) via 51b5cd64678d5c6e8446bed3f6ccf7365d06538b (commit) from 8f1db16e84dbbc968567f5bda8c6f96b012b74b1 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 9d115023ffc10996601a8e12fdb809cff2c5804f Author: dfchil <dan...@gm...> Date: Mon Aug 19 06:26:56 2024 +0200 Add pvrtex utility (#602) * added pvrtex source files * handled compilation warnings added install target in makefile some minor formatting cleanup * bugfix makefile * fixed install target, further cleanup in nvmath.h for arm64 compilation * Added install target in Makefile Removed some dead code in nvmath.h that prevented compilation on ARM64 targets Added targets for generating header files from selected sections in the README file Added command line option --examples/-E which outputs the "Usage Examples" section of the README file Changed -h/--help option to output the "Command Line Options:" section of the README file Added this CHANGELOG file * Fixed bug with printing of non zero terminated char arrays from info/*.h files * Updated doc/CHANGELOG * Added pvrtex folder as a dependency in utils/Makefile * removed two unused variables * fixed make depency error improved error output * Added missing symbols in file_dctex.h by including <dc/pvr.h> * fixed header compile issues after upgrading gcc to 14.1.1-dev and kos to latest stable * allowed myself the liberty of patching init.mk in this PR as well, for my own convienience * removed dependency on kos/pvr.h, added generated info/*.h files --------- Co-authored-by: drxl <da...@vm...> Co-authored-by: Daniel Fairchild <da...@vi...> commit 51b5cd64678d5c6e8446bed3f6ccf7365d06538b Author: Paul Cercueil <pa...@cr...> Date: Mon Aug 19 06:20:37 2024 +0200 Iso9660: Read CD-ROM sectors using DMA (#659) * iso9660: Reduce number of allocations Reduce the number of allocations for the cache from 32 (16 icache/dcache buffers) to just 2: one for the icache/dcache structures, and one for the data buffers. This will later allow to allocate the data arrays all at once with a specific alignment. Signed-off-by: Paul Cercueil <pa...@cr...> * iso9660: Use DMA to read sectors from CD-ROM Use the DMA to read sectors from the CD-ROM instead of reading them using PIO. This frees the CPU to work on other tasks while the data transfer is ongoing. Signed-off-by: Paul Cercueil <pa...@cr...> --------- Signed-off-by: Paul Cercueil <pa...@cr...> ----------------------------------------------------------------------- Summary of changes: doc/CHANGELOG | 1 + kernel/arch/dreamcast/fs/fs_iso9660.c | 26 +- utils/Makefile | 2 +- utils/pvrtex/.gitignore | 2 + utils/pvrtex/CHANGELOG | 29 + utils/pvrtex/Makefile | 59 + utils/pvrtex/avstring.c | 462 ++ utils/pvrtex/bprint.c | 332 + utils/pvrtex/compat/va_copy.h | 34 + utils/pvrtex/crc.c | 413 ++ utils/pvrtex/dither.cpp | 478 ++ utils/pvrtex/elbg.c | 530 ++ utils/pvrtex/elbg.h | 59 + utils/pvrtex/file_common.c | 74 + utils/pvrtex/file_common.h | 22 + utils/pvrtex/file_dctex.c | 88 + utils/pvrtex/file_dctex.h | 565 ++ utils/pvrtex/file_pvr.c | 82 + utils/pvrtex/file_pvr.h | 21 + utils/pvrtex/file_tex.c | 76 + utils/pvrtex/file_tex.h | 8 + addons/lib/.keepme => utils/pvrtex/info/.gitkeep | 0 utils/pvrtex/info/examples.h | 175 + utils/pvrtex/info/options.h | 1030 +++ utils/pvrtex/lfg.c | 87 + utils/pvrtex/libavcodec/elbg.h | 59 + utils/pvrtex/libavutil/attributes.h | 173 + utils/pvrtex/libavutil/attributes_internal.h | 34 + utils/pvrtex/libavutil/avassert.h | 75 + utils/pvrtex/libavutil/avconfig.h | 6 + utils/pvrtex/libavutil/avstring.h | 429 ++ utils/pvrtex/libavutil/avutil.h | 371 + utils/pvrtex/libavutil/bprint.h | 251 + utils/pvrtex/libavutil/bswap.h | 111 + utils/pvrtex/libavutil/common.h | 578 ++ utils/pvrtex/libavutil/crc.h | 102 + utils/pvrtex/libavutil/dynarray.h | 70 + utils/pvrtex/libavutil/error.h | 128 + utils/pvrtex/libavutil/internal.h | 188 + utils/pvrtex/libavutil/intfloat.h | 77 + utils/pvrtex/libavutil/intreadwrite.h | 644 ++ utils/pvrtex/libavutil/lfg.c | 87 + utils/pvrtex/libavutil/lfg.h | 81 + utils/pvrtex/libavutil/libm.h | 472 ++ utils/pvrtex/libavutil/log.h | 387 ++ utils/pvrtex/libavutil/macros.h | 80 + utils/pvrtex/libavutil/mathematics.c | 319 + utils/pvrtex/libavutil/mathematics.h | 300 + utils/pvrtex/libavutil/md5.h | 89 + utils/pvrtex/libavutil/mem.c | 568 ++ utils/pvrtex/libavutil/mem.h | 609 ++ utils/pvrtex/libavutil/pixfmt.h | 699 ++ utils/pvrtex/libavutil/rational.c | 193 + utils/pvrtex/libavutil/rational.h | 221 + utils/pvrtex/libavutil/thread.h | 202 + utils/pvrtex/libavutil/version.h | 128 + utils/pvrtex/log.c | 490 ++ utils/pvrtex/main.c | 455 ++ utils/pvrtex/md5.c | 208 + utils/pvrtex/mem.c | 566 ++ utils/pvrtex/mycommon.c | 32 + utils/pvrtex/mycommon.h | 40 + utils/pvrtex/nvmath.h | 722 ++ utils/pvrtex/optparse.h | 403 ++ utils/pvrtex/optparse_impl.c | 2 + utils/pvrtex/pixel.h | 492 ++ utils/pvrtex/pvr_texture.c | 476 ++ utils/pvrtex/pvr_texture.h | 115 + utils/pvrtex/pvr_texture_encoder.c | 932 +++ utils/pvrtex/pvr_texture_encoder.h | 226 + utils/pvrtex/readme_unformatted.txt | 309 + utils/pvrtex/stb_image.h | 7897 ++++++++++++++++++++++ utils/pvrtex/stb_image_impl.c | 3 + utils/pvrtex/stb_image_resize.h | 2634 ++++++++ utils/pvrtex/stb_image_resize_impl.c | 3 + utils/pvrtex/stb_image_write.h | 1724 +++++ utils/pvrtex/stb_image_write_impl.c | 3 + utils/pvrtex/tddither.c | 231 + utils/pvrtex/tddither.h | 13 + utils/pvrtex/vqcompress.c | 154 + utils/pvrtex/vqcompress.h | 38 + 81 files changed, 30542 insertions(+), 12 deletions(-) create mode 100644 utils/pvrtex/.gitignore create mode 100644 utils/pvrtex/CHANGELOG create mode 100644 utils/pvrtex/Makefile create mode 100644 utils/pvrtex/avstring.c create mode 100644 utils/pvrtex/bprint.c create mode 100644 utils/pvrtex/compat/va_copy.h create mode 100644 utils/pvrtex/crc.c create mode 100644 utils/pvrtex/dither.cpp create mode 100644 utils/pvrtex/elbg.c create mode 100644 utils/pvrtex/elbg.h create mode 100644 utils/pvrtex/file_common.c create mode 100644 utils/pvrtex/file_common.h create mode 100644 utils/pvrtex/file_dctex.c create mode 100644 utils/pvrtex/file_dctex.h create mode 100644 utils/pvrtex/file_pvr.c create mode 100644 utils/pvrtex/file_pvr.h create mode 100644 utils/pvrtex/file_tex.c create mode 100644 utils/pvrtex/file_tex.h copy addons/lib/.keepme => utils/pvrtex/info/.gitkeep (100%) create mode 100644 utils/pvrtex/info/examples.h create mode 100644 utils/pvrtex/info/options.h create mode 100644 utils/pvrtex/lfg.c create mode 100644 utils/pvrtex/libavcodec/elbg.h create mode 100644 utils/pvrtex/libavutil/attributes.h create mode 100644 utils/pvrtex/libavutil/attributes_internal.h create mode 100644 utils/pvrtex/libavutil/avassert.h create mode 100644 utils/pvrtex/libavutil/avconfig.h create mode 100644 utils/pvrtex/libavutil/avstring.h create mode 100644 utils/pvrtex/libavutil/avutil.h create mode 100644 utils/pvrtex/libavutil/bprint.h create mode 100644 utils/pvrtex/libavutil/bswap.h create mode 100644 utils/pvrtex/libavutil/common.h create mode 100644 utils/pvrtex/libavutil/crc.h create mode 100644 utils/pvrtex/libavutil/dynarray.h create mode 100644 utils/pvrtex/libavutil/error.h create mode 100644 utils/pvrtex/libavutil/internal.h create mode 100644 utils/pvrtex/libavutil/intfloat.h create mode 100644 utils/pvrtex/libavutil/intreadwrite.h create mode 100644 utils/pvrtex/libavutil/lfg.c create mode 100644 utils/pvrtex/libavutil/lfg.h create mode 100644 utils/pvrtex/libavutil/libm.h create mode 100644 utils/pvrtex/libavutil/log.h create mode 100644 utils/pvrtex/libavutil/macros.h create mode 100644 utils/pvrtex/libavutil/mathematics.c create mode 100644 utils/pvrtex/libavutil/mathematics.h create mode 100644 utils/pvrtex/libavutil/md5.h create mode 100644 utils/pvrtex/libavutil/mem.c create mode 100644 utils/pvrtex/libavutil/mem.h create mode 100644 utils/pvrtex/libavutil/pixfmt.h create mode 100644 utils/pvrtex/libavutil/rational.c create mode 100644 utils/pvrtex/libavutil/rational.h create mode 100644 utils/pvrtex/libavutil/thread.h create mode 100644 utils/pvrtex/libavutil/version.h create mode 100644 utils/pvrtex/log.c create mode 100644 utils/pvrtex/main.c create mode 100644 utils/pvrtex/md5.c create mode 100644 utils/pvrtex/mem.c create mode 100644 utils/pvrtex/mycommon.c create mode 100644 utils/pvrtex/mycommon.h create mode 100644 utils/pvrtex/nvmath.h create mode 100644 utils/pvrtex/optparse.h create mode 100644 utils/pvrtex/optparse_impl.c create mode 100644 utils/pvrtex/pixel.h create mode 100644 utils/pvrtex/pvr_texture.c create mode 100644 utils/pvrtex/pvr_texture.h create mode 100644 utils/pvrtex/pvr_texture_encoder.c create mode 100644 utils/pvrtex/pvr_texture_encoder.h create mode 100644 utils/pvrtex/readme_unformatted.txt create mode 100644 utils/pvrtex/stb_image.h create mode 100644 utils/pvrtex/stb_image_impl.c create mode 100644 utils/pvrtex/stb_image_resize.h create mode 100644 utils/pvrtex/stb_image_resize_impl.c create mode 100644 utils/pvrtex/stb_image_write.h create mode 100644 utils/pvrtex/stb_image_write_impl.c create mode 100644 utils/pvrtex/tddither.c create mode 100644 utils/pvrtex/tddither.h create mode 100644 utils/pvrtex/vqcompress.c create mode 100644 utils/pvrtex/vqcompress.h diff --git a/doc/CHANGELOG b/doc/CHANGELOG index 251ed0bf..f3da1509 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -228,6 +228,7 @@ KallistiOS version 2.1.0 ----------------------------------------------- - *** Added thread support for tracking CPU time + updated clock_gettime() [FG] - *** Added support for one-shot timers [PC] - DC Use one-shot timers for timeout and a proper polling mechanism in modem [PC] +- *** Added pvrtex utility by TapamN to utils [DF == Daniel Fairchild] - *** Added full support for <time.h> additions from C23 standard. [FG] - *** Fixes mutexes not working properly [PC] - DC fs_dcload: Set errno on error in dcload_stat() [PC] diff --git a/kernel/arch/dreamcast/fs/fs_iso9660.c b/kernel/arch/dreamcast/fs/fs_iso9660.c index f8445cad..6f3f5273 100644 --- a/kernel/arch/dreamcast/fs/fs_iso9660.c +++ b/kernel/arch/dreamcast/fs/fs_iso9660.c @@ -197,8 +197,8 @@ static uint32 iso_733(const uint8 *from) { this cache. As the cache fills up, sectors are removed from the end of it. */ typedef struct { + uint8 *data; /* Sector data */ uint32 sector; /* CD sector */ - uint8 data[2048]; /* Sector data */ } cache_block_t; /* List of cache blocks (ordered least recently used to most recently) */ @@ -206,6 +206,9 @@ typedef struct { static cache_block_t *icache[NUM_CACHE_BLOCKS]; /* inode cache */ static cache_block_t *dcache[NUM_CACHE_BLOCKS]; /* data cache */ +static unsigned char *cache_data; +static cache_block_t *caches; + /* Cache modification mutex */ static mutex_t cache_mutex; @@ -268,7 +271,7 @@ static int bread_cache(cache_block_t **cache, uint32 sector) { } /* Load the requested block */ - j = cdrom_read_sectors(cache[i]->data, sector + 150, 1); + j = cdrom_read_sectors_ex(cache[i]->data, sector + 150, 1, CDROM_READ_DMA); if(j < 0) { //dbglog(DBG_ERROR, "fs_iso9660: can't read_sectors for %d: %d\n", @@ -1084,11 +1087,16 @@ void fs_iso9660_init(void) { mutex_init(&cache_mutex, MUTEX_TYPE_NORMAL); mutex_init(&fh_mutex, MUTEX_TYPE_NORMAL); - /* Allocate cache block space */ + /* Allocate cache block space, properly aligned for DMA access */ + cache_data = memalign(32, 2 * NUM_CACHE_BLOCKS * 2048); + caches = malloc(2 * NUM_CACHE_BLOCKS * sizeof(cache_block_t)); + for(i = 0; i < NUM_CACHE_BLOCKS; i++) { - icache[i] = malloc(sizeof(cache_block_t)); + icache[i] = &caches[i * 2]; + icache[i]->data = &cache_data[i * 2 * 2048]; icache[i]->sector = -1; - dcache[i] = malloc(sizeof(cache_block_t)); + dcache[i] = &caches[i * 2 + 1]; + dcache[i]->data = &cache_data[i * 2 * 2048 + 2048]; dcache[i]->sector = -1; } @@ -1104,16 +1112,12 @@ void fs_iso9660_init(void) { /* De-init the file system */ void fs_iso9660_shutdown(void) { - int i; - /* De-register with vblank */ vblank_handler_remove(iso_vblank_hnd); /* Dealloc cache block space */ - for(i = 0; i < NUM_CACHE_BLOCKS; i++) { - free(icache[i]); - free(dcache[i]); - } + free(cache_data); + free(caches); /* Free muteces */ mutex_destroy(&cache_mutex); diff --git a/utils/Makefile b/utils/Makefile index f3045bd7..19988ecb 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -4,7 +4,7 @@ # Copyright (C) 2001 Megan Potter # -DIRS = bin2c bincnv dcbumpgen genromfs kmgenc makeip scramble vqenc wav2adpcm +DIRS = bin2c bincnv dcbumpgen genromfs kmgenc makeip scramble vqenc wav2adpcm pvrtex ifeq ($(KOS_SUBARCH), naomi) DIRS += naomibintool naominetboot diff --git a/utils/pvrtex/.gitignore b/utils/pvrtex/.gitignore new file mode 100644 index 00000000..1d3690fa --- /dev/null +++ b/utils/pvrtex/.gitignore @@ -0,0 +1,2 @@ +pvrtex +README diff --git a/utils/pvrtex/CHANGELOG b/utils/pvrtex/CHANGELOG new file mode 100644 index 00000000..7c51f43c --- /dev/null +++ b/utils/pvrtex/CHANGELOG @@ -0,0 +1,29 @@ +Based on code by TapamN +Source released here: https://dcemulation.org/phpBB/viewtopic.php?t=106138 + + Version 1.0 + Initial release + + Version 1.01 + Program now displays error message when an error occurs loading a source image. Previously, the program would hit an assertion. + + Fixed "--resize down" option. Previously, the program would round down sizes that were already a power-of-two, now sizes that are already POT are left unchanged. + + Included a missing FFmpeg header file. + +--------------------------- + +Adaption into KOS by Daniel Fairchild, 2024 + +Version 1.0.2 + Added install target in Makefile + + Removed some dead code in nvmath.h that prevented compilation on ARM64 targets + + Added targets for generating header files from selected sections in the README file + + Added command line option --examples/-E which outputs the "Usage Examples" section of the README file + + Changed -h/--help option to output the "Command Line Options:" section of the README file + + Added this CHANGELOG file diff --git a/utils/pvrtex/Makefile b/utils/pvrtex/Makefile new file mode 100644 index 00000000..40e17a3e --- /dev/null +++ b/utils/pvrtex/Makefile @@ -0,0 +1,59 @@ +#Uncomment when debugging +#DEBUGBUILD = true + +TARGET = pvrtex +OBJS = elbg.o mem.o log.o bprint.o avstring.o lfg.o crc.o md5.o stb_image_impl.o \ + stb_image_write_impl.o stb_image_resize_impl.o optparse_impl.o pvr_texture.o \ + dither.o tddither.o vqcompress.o mycommon.o file_common.o \ + file_pvr.o file_tex.o file_dctex.o pvr_texture_encoder.o main.o + +ifdef $(DEBUGBUILD) + OPTMODE= -Og -pg -g +else + OPTMODE= -O3 -flto +endif + +MYFLAGS=-flto=auto -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Ilibavutil -I. -DCONFIG_MEMORY_POISONING=0 -DHAVE_FAST_UNALIGNED=0 -I${KOS_INC_PATHS} +MYCPPFLAGS=$(MYFLAGS) +MYCFLAGS=$(MYFLAGS) -Wno-pointer-sign + + +define textSegment2Header + awk '/$1/,/--------------------------------------------------------------------------/' README|xxd -i -n $2_$3 > $2/$3.h +endef + + +TOOLINSTALLDIR=$(KOS_BASE)/../bin + +.PHONY: all clean + + +$(TARGET): $(OBJS) + gcc $(OPTMODE) -o $(TARGET) \ + $(OBJS) $(PROGMAIN) -lm -lstdc++ + +main.o: main.c info/options.h info/examples.h + gcc $(CFLAGS) $(MYCFLAGS) $(OPTMODE) -c $< -o $@ + +%.o: %.c + gcc $(CFLAGS) $(MYCFLAGS) $(OPTMODE) -c $< -o $@ + +%.o: %.cpp + gcc $(CFLAGS) $(MYCPPFLAGS) $(CXXFLAGS) $(OPTMODE) -c $< -o $@ + +clean: + rm -f $(TARGET) $(OBJS) README + +README: readme_unformatted.txt + fmt -s readme_unformatted.txt > README + +all: $(TARGET) README + +install: all + install -m 755 $(TARGET) $(TOOLINSTALLDIR)/ + +info/options.h: README + $(call textSegment2Header,Command Line Options:,info,options) + +info/examples.h: README + $(call textSegment2Header,Usage Examples:,info,examples) diff --git a/utils/pvrtex/avstring.c b/utils/pvrtex/avstring.c new file mode 100644 index 00000000..99f06690 --- /dev/null +++ b/utils/pvrtex/avstring.c @@ -0,0 +1,462 @@ +/* + * Copyright (c) 2000, 2001, 2002 Fabrice Bellard + * Copyright (c) 2007 Mans Rullgard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include <limits.h> +#include <stdarg.h> +#include <stdint.h> +#include <stdio.h> +#include <string.h> + +#include "mem.h" +#include "avassert.h" +#include "avstring.h" +#include "bprint.h" +#include "error.h" +#include "macros.h" +#include "version.h" + +int av_strstart(const char *str, const char *pfx, const char **ptr) +{ + while (*pfx && *pfx == *str) { + pfx++; + str++; + } + if (!*pfx && ptr) + *ptr = str; + return !*pfx; +} + +int av_stristart(const char *str, const char *pfx, const char **ptr) +{ + while (*pfx && av_toupper((unsigned)*pfx) == av_toupper((unsigned)*str)) { + pfx++; + str++; + } + if (!*pfx && ptr) + *ptr = str; + return !*pfx; +} + +char *av_stristr(const char *s1, const char *s2) +{ + if (!*s2) + return (char*)(intptr_t)s1; + + do + if (av_stristart(s1, s2, NULL)) + return (char*)(intptr_t)s1; + while (*s1++); + + return NULL; +} + +char *av_strnstr(const char *haystack, const char *needle, size_t hay_length) +{ + size_t needle_len = strlen(needle); + if (!needle_len) + return (char*)haystack; + while (hay_length >= needle_len) { + hay_length--; + if (!memcmp(haystack, needle, needle_len)) + return (char*)haystack; + haystack++; + } + return NULL; +} + +size_t av_strlcpy(char *dst, const char *src, size_t size) +{ + size_t len = 0; + while (++len < size && *src) + *dst++ = *src++; + if (len <= size) + *dst = 0; + return len + strlen(src) - 1; +} + +size_t av_strlcat(char *dst, const char *src, size_t size) +{ + size_t len = strlen(dst); + if (size <= len + 1) + return len + strlen(src); + return len + av_strlcpy(dst + len, src, size - len); +} + +size_t av_strlcatf(char *dst, size_t size, const char *fmt, ...) +{ + size_t len = strlen(dst); + va_list vl; + + va_start(vl, fmt); + len += vsnprintf(dst + len, size > len ? size - len : 0, fmt, vl); + va_end(vl); + + return len; +} + +char *av_asprintf(const char *fmt, ...) +{ + char *p = NULL; + va_list va; + int len; + + va_start(va, fmt); + len = vsnprintf(NULL, 0, fmt, va); + va_end(va); + if (len < 0) + goto end; + + p = av_malloc(len + 1); + if (!p) + goto end; + + va_start(va, fmt); + len = vsnprintf(p, len + 1, fmt, va); + va_end(va); + if (len < 0) + av_freep(&p); + +end: + return p; +} + ...<truncated>... hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: falcovorbis <fal...@us...> - 2024-08-19 04:15:26
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 8f1db16e84dbbc968567f5bda8c6f96b012b74b1 (commit) via 3d61838a3ee4c93ad4aa83efe3cd0025376e20d6 (commit) via f9f426bae33fa886039aab1f85a6744225aaaa0c (commit) from 3c99eb588dd1ae664b0e42481b15ba8c57381cf3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 8f1db16e84dbbc968567f5bda8c6f96b012b74b1 Author: Paul Cercueil <pa...@cr...> Date: Mon Aug 19 06:15:09 2024 +0200 Support chained LBA28 DMA transfers in IDE and DMA transfers in FAT (#662) * g1ata: Factorize code Factorize the code that sets the sector LBA and length of the next transfer, into a dedicated function. Signed-off-by: Paul Cercueil <pa...@cr...> * g1ata: Support chained LBA28 DMA transfers Add support for transferring more than 256 sectors worth of data using DMA on devices that don't support LBA48. This works by cutting the DMA transfer into chunks of 256 sectors, that are transferred automatically: every time a 256-sectors transfer is done, the DMA complete IRQ will start the next one. Signed-off-by: Paul Cercueil <pa...@cr...> * libkosfat: Align buffers to 32 bytes to support DMA Use memalign() to allocate buffers aligned to 32 bytes for those that need it; and also align buffers on the stack when needed. This makes it possible to mount a FAT filesystem on a IDE drive using DMA accesses for faster and CPU-free transfers. Signed-off-by: Paul Cercueil <pa...@cr...> --------- Signed-off-by: Paul Cercueil <pa...@cr...> commit 3d61838a3ee4c93ad4aa83efe3cd0025376e20d6 Author: Paul Cercueil <pa...@cr...> Date: Mon Aug 19 06:09:27 2024 +0200 Fix 24-bit / 32-bit video modes (#697) * video: Configure PVR video mode in vid_set_mode() Also configure the pixel mode at which the PVR will render, instead of only configuring the framebuffer mode. This makes the 24-bit and 32-bit video modes usable with the PVR. Signed-off-by: Paul Cercueil <pa...@cr...> * pvr: Fix PVR rendering for 24/32-bit video modes Replace hardcoded x2 with the corresponding multiplier for the pixel mode. Signed-off-by: Paul Cercueil <pa...@cr...> --------- Signed-off-by: Paul Cercueil <pa...@cr...> commit f9f426bae33fa886039aab1f85a6744225aaaa0c Author: Andy Barajas <and...@gm...> Date: Sun Aug 18 21:06:05 2024 -0700 Make FD_SETSIZE configurable (#703) * Reduce FD_SETSIZE from 1024 => 64 The maximum amount of files that can be opened at once is 64. We can save 11.25 KB if we reduce FD_SETSIZE to 64. * Allow FD_SETSIZE value to be overwritten Move all the #define FD_SETSIZE definitions to one file, opts.h. Add an option to environ.sh to allow FD_SETSIZE to be configured. Add an printf message if opening a file fails and FD_SETSIZE is not set to the default. * Updated documenation comment ----------------------------------------------------------------------- Summary of changes: addons/libkosfat/bpb.c | 6 +- addons/libkosfat/bpb.h | 4 +- addons/libkosfat/fatfs.c | 5 +- doc/environ.sh.sample | 15 ++ include/kos/fs.h | 6 +- include/kos/opts.h | 6 + include/sys/_types.h | 4 - include/sys/select.h | 6 +- kernel/arch/dreamcast/hardware/g1ata.c | 220 +++++++++------------ kernel/arch/dreamcast/hardware/pvr/pvr_buffers.c | 2 +- .../dreamcast/hardware/pvr/pvr_init_shutdown.c | 2 +- kernel/arch/dreamcast/hardware/pvr/pvr_misc.c | 2 +- kernel/arch/dreamcast/hardware/video.c | 19 ++ kernel/fs/fs.c | 7 +- 14 files changed, 154 insertions(+), 150 deletions(-) diff --git a/addons/libkosfat/bpb.c b/addons/libkosfat/bpb.c index b34eece0..740a64e0 100644 --- a/addons/libkosfat/bpb.c +++ b/addons/libkosfat/bpb.c @@ -4,6 +4,7 @@ Copyright (C) 2012, 2019 Lawrence Sebald */ +#include <malloc.h> #include <stdio.h> #include <errno.h> #include <stdlib.h> @@ -18,7 +19,7 @@ static int fat_read_raw_boot(fat_bootblock_t *sb, kos_blockdev_t *bd) { if(bd->l_block_size > 9) { uint8_t *buf; - if(!(buf = (uint8_t *)malloc(1 << bd->l_block_size))) + if(!(buf = (uint8_t *)memalign(32, 1 << bd->l_block_size))) return -ENOMEM; if(bd->read_blocks(bd, 0, 1, buf)) @@ -28,9 +29,6 @@ static int fat_read_raw_boot(fat_bootblock_t *sb, kos_blockdev_t *bd) { free(buf); return 0; } - else if(bd->l_block_size == 9) { - return bd->read_blocks(bd, 0, 1, sb); - } else { return bd->read_blocks(bd, 0, 512 >> bd->l_block_size, sb); } diff --git a/addons/libkosfat/bpb.h b/addons/libkosfat/bpb.h index bc57f9b7..b7ac1e95 100644 --- a/addons/libkosfat/bpb.h +++ b/addons/libkosfat/bpb.h @@ -64,7 +64,7 @@ typedef struct fat_bootblock { fat16_ebpb_t fat16; fat32_ebpb_t fat32; } ebpb; -} __attribute__((packed)) fat_bootblock_t; +} __attribute__((packed,aligned(32))) fat_bootblock_t; typedef struct fat32_fsinfo { uint32_t fsinfo_sig1; @@ -74,7 +74,7 @@ typedef struct fat32_fsinfo { uint32_t last_alloc_cluster; uint8_t reserved2[12]; uint32_t fsinfo_sig3; -} __attribute__((packed)) fat32_fsinfo_t; +} __attribute__((packed,aligned(32))) fat32_fsinfo_t; #define FAT32_FSINFO_SIG1 0x41615252 #define FAT32_FSINFO_SIG2 0x61417272 diff --git a/addons/libkosfat/fatfs.c b/addons/libkosfat/fatfs.c index 3e458806..438ba739 100644 --- a/addons/libkosfat/fatfs.c +++ b/addons/libkosfat/fatfs.c @@ -4,6 +4,7 @@ Copyright (C) 2012, 2013, 2019 Lawrence Sebald */ +#include <malloc.h> #include <stdio.h> #include <errno.h> #include <stdint.h> @@ -315,7 +316,7 @@ fat_fs_t *fat_fs_init_ex(kos_blockdev_t *bd, uint32_t flags, int cache_sz, } for(j = 0; j < cache_sz; ++j) { - if(!(rv->bcache[j]->data = (uint8_t *)malloc(cluster_size))) { + if(!(rv->bcache[j]->data = (uint8_t *)memalign(32, cluster_size))) { goto out_bcache; } @@ -337,7 +338,7 @@ fat_fs_t *fat_fs_init_ex(kos_blockdev_t *bd, uint32_t flags, int cache_sz, } for(j = 0; j < fcache_sz; ++j) { - if(!(rv->fcache[j]->data = (uint8_t *)malloc(block_size))) { + if(!(rv->fcache[j]->data = (uint8_t *)memalign(32, block_size))) { goto out_fcache2; } diff --git a/doc/environ.sh.sample b/doc/environ.sh.sample index f1a0989d..ad12f47e 100644 --- a/doc/environ.sh.sample +++ b/doc/environ.sh.sample @@ -144,6 +144,21 @@ export KOS_CFLAGS="${KOS_CFLAGS} -O2" # #export KOS_CFLAGS="${KOS_CFLAGS} -freorder-blocks-algorithm=simple -flto=auto" +# RAM-Saving Optimization +# +# Uncomment the line below to reduce the default size of FD_SETSIZE from the +# default value of 1024 to 64. FD_SETSIZE defines the maximum number of files +# that can be opened simultaneously, including files on the ramdisk, romdisk, +# CD, VMU, network sockets, etc. The default setting allows 1024 files to be +# opened at once, which is typically more than most use cases require. +# +# By reducing this value, you can save approximately ~11.25 KB of RAM, which +# can be particularly useful when porting large games to the Dreamcast that +# are strapped for memory. However, be cautious not to set it too low, as this +# may limit the number of files and sockets that can be opened simultaneously. +# +# export KOS_CFLAGS="${KOS_CFLAGS} -DFD_SETSIZE=64" + # Frame Pointers # # Controls whether frame pointers are emitted or not. Disabled by diff --git a/include/kos/fs.h b/include/kos/fs.h index d3e58b90..2cc3924d 100644 --- a/include/kos/fs.h +++ b/include/kos/fs.h @@ -29,6 +29,7 @@ __BEGIN_DECLS #include <sys/types.h> #include <kos/limits.h> +#include <kos/opts.h> #include <time.h> #include <sys/queue.h> #include <stdarg.h> @@ -205,11 +206,6 @@ typedef struct vfs_handler { int (*fstat)(void *hnd, struct stat *st); } vfs_handler_t; -/** \brief The number of distinct file descriptors that can be in use at a - time. -*/ -#define FD_SETSIZE 1024 - /** \cond */ /* This is the private struct that will be used as raw file handles underlying descriptors. */ diff --git a/include/kos/opts.h b/include/kos/opts.h index 888e428a..fe005278 100644 --- a/include/kos/opts.h +++ b/include/kos/opts.h @@ -129,6 +129,12 @@ __BEGIN_DECLS #define FS_RAMDISK_MAX_FILES 8 #endif +/** \brief The number of distinct file descriptors that can be in use at a + time. This value can be overwritten in environ.sh */ +#ifndef FD_SETSIZE +#define FD_SETSIZE 1024 +#endif + /** @} */ __END_DECLS diff --git a/include/sys/_types.h b/include/sys/_types.h index 4e3df568..2cbc2027 100644 --- a/include/sys/_types.h +++ b/include/sys/_types.h @@ -159,10 +159,6 @@ typedef _TIMER_T_ __timer_t; typedef _CLOCK_T_ __clock_t; -// This part inserted to fix newlib brokenness. -/** \brief Size of an fd_set. */ -#define FD_SETSIZE 1024 - /* The architecture should define the macro BYTE_ORDER in <arch/types.h> to equal one of these macros for code that looks for these BSD-style macros. */ /** \brief Little Endian test macro */ diff --git a/include/sys/select.h b/include/sys/select.h index bcc78eec..9d12ed14 100644 --- a/include/sys/select.h +++ b/include/sys/select.h @@ -26,6 +26,7 @@ __BEGIN_DECLS #include <newlib.h> +#include <kos/opts.h> #if __NEWLIB__ > 2 || (__NEWLIB__ == 2 && __NEWLIB_MINOR__ > 2) #include <sys/_timeval.h> @@ -41,11 +42,6 @@ __BEGIN_DECLS #define _SYS_TYPES_FD_SET -#ifndef FD_SETSIZE -/* This matches fs.h. */ -#define FD_SETSIZE 1024 -#endif - #define NFDBITS 32 /** \brief Represents a set of file descriptors */ diff --git a/kernel/arch/dreamcast/hardware/g1ata.c b/kernel/arch/dreamcast/hardware/g1ata.c index 5d4e3fcc..7faa8c0a 100644 --- a/kernel/arch/dreamcast/hardware/g1ata.c +++ b/kernel/arch/dreamcast/hardware/g1ata.c @@ -170,6 +170,9 @@ static uint8_t orig_dev = 0x00; /* Variables related to DMA. */ static int dma_in_progress = 0; static int dma_blocking = 0; +static uint8_t dma_cmd = 0; +static size_t dma_nb_sectors = 0; +static uint64_t dma_sector = 0; static semaphore_t dma_done = SEM_INITIALIZER(0); static kthread_t *dma_thd = NULL; @@ -211,12 +214,47 @@ inline int g1_ata_mutex_unlock(void) { return mutex_unlock(&_g1_ata_mutex); } +static void g1_ata_set_sector_and_count(uint64_t sector, uint32_t count, int lba28) { + if(!lba28) { + OUT8(G1_ATA_SECTOR_COUNT, (uint8_t)(count >> 8)); + OUT8(G1_ATA_LBA_LOW, (uint8_t)((sector >> 24) & 0xFF)); + OUT8(G1_ATA_LBA_MID, (uint8_t)((sector >> 32) & 0xFF)); + OUT8(G1_ATA_LBA_HIGH, (uint8_t)((sector >> 40) & 0xFF)); + } + + /* Write out the number of sectors we want and the lower 24-bits of + the LBA we're looking for. Note that putting 0 into the sector count + register returns 256 sectors. */ + OUT8(G1_ATA_SECTOR_COUNT, (uint8_t)count); + OUT8(G1_ATA_LBA_LOW, (uint8_t)((sector >> 0) & 0xFF)); + OUT8(G1_ATA_LBA_MID, (uint8_t)((sector >> 8) & 0xFF)); + OUT8(G1_ATA_LBA_HIGH, (uint8_t)((sector >> 16) & 0xFF)); +} + static void g1_dma_irq_hnd(uint32 code, void *data) { + unsigned int nb_sectors; + /* XXXX: Probably should look at the code to make sure it isn't an error. */ (void)code; (void)data; - if(dma_in_progress) { + if(dma_in_progress && dma_nb_sectors > 256) { + dma_sector += 256; + dma_nb_sectors -= 256; + nb_sectors = dma_nb_sectors <= 256 ? dma_nb_sectors : 256; + + /* Set the DMA parameters for the next transfer. */ + g1_ata_set_sector_and_count(dma_sector, nb_sectors, 1); + OUT32(G1_ATA_DMA_ADDRESS, IN32(G1_ATA_DMA_ADDRESS) + 256 * 512); + OUT32(G1_ATA_DMA_LENGTH, nb_sectors * 512); + + /* Write out the command to the device. */ + OUT8(G1_ATA_COMMAND_REG, dma_cmd); + + /* Re-start the DMA transfer. */ + OUT32(G1_ATA_DMA_STATUS, 1); + } + else if(dma_in_progress) { /* Signal the calling thread to continue, if it is blocking. */ if(dma_blocking) { sem_signal(&dma_done); @@ -283,6 +321,8 @@ static int dma_common(uint8_t cmd, size_t nsects, uint32_t addr, int dir, int block) { uint8_t status; + dma_cmd = cmd; + /* Set the thread ID that initiated this DMA. */ dma_thd = thd_current; @@ -489,6 +529,7 @@ int g1_ata_read_lba(uint64_t sector, size_t count, void *buf) { uint8_t nsects = (uint8_t)count; uint16_t word; uint8_t *ptr = (uint8_t *)buf; + int lba28, cmd; /* Make sure that we've been initialized and there's a disk attached. */ if(!devices) { @@ -520,44 +561,26 @@ int g1_ata_read_lba(uint64_t sector, size_t count, void *buf) { count -= nsects; /* Which mode are we using: LBA28 or LBA48? */ - if((sector + nsects) <= 0x0FFFFFFF) { + lba28 = (sector + nsects) <= 0x0FFFFFFF; + if(lba28) { g1_ata_select_device(G1_ATA_SLAVE | G1_ATA_LBA_MODE | ((sector >> 24) & 0x0F)); - - /* Write out the number of sectors we want and the lower 24-bits of - the LBA we're looking for. */ - OUT8(G1_ATA_SECTOR_COUNT, nsects); - OUT8(G1_ATA_LBA_LOW, (uint8_t)((sector >> 0) & 0xFF)); - OUT8(G1_ATA_LBA_MID, (uint8_t)((sector >> 8) & 0xFF)); - OUT8(G1_ATA_LBA_HIGH, (uint8_t)((sector >> 16) & 0xFF)); - - /* Wait until the drive is ready to accept the command. */ - g1_ata_wait_nbsy(); - g1_ata_wait_drdy(); - - /* Write out the command to the device. */ - OUT8(G1_ATA_COMMAND_REG, ATA_CMD_READ_SECTORS); + cmd = ATA_CMD_READ_SECTORS; } else { g1_ata_select_device(G1_ATA_SLAVE | G1_ATA_LBA_MODE); + cmd = ATA_CMD_READ_SECTORS_EXT; + } - /* Write out the number of sectors we want and the LBA. */ - OUT8(G1_ATA_SECTOR_COUNT, 0); - OUT8(G1_ATA_LBA_LOW, (uint8_t)((sector >> 24) & 0xFF)); - OUT8(G1_ATA_LBA_MID, (uint8_t)((sector >> 32) & 0xFF)); - OUT8(G1_ATA_LBA_HIGH, (uint8_t)((sector >> 40) & 0xFF)); - OUT8(G1_ATA_SECTOR_COUNT, nsects); - OUT8(G1_ATA_LBA_LOW, (uint8_t)((sector >> 0) & 0xFF)); - OUT8(G1_ATA_LBA_MID, (uint8_t)((sector >> 8) & 0xFF)); - OUT8(G1_ATA_LBA_HIGH, (uint8_t)((sector >> 16) & 0xFF)); - - /* Wait until the drive is ready to accept the command. */ - g1_ata_wait_nbsy(); - g1_ata_wait_drdy(); + /* Write out the number of sectors we want and the LBA. */ + g1_ata_set_sector_and_count(sector, nsects, lba28); - /* Write out the command to the device. */ - OUT8(G1_ATA_COMMAND_REG, ATA_CMD_READ_SECTORS_EXT); - } + /* Wait until the drive is ready to accept the command. */ + g1_ata_wait_nbsy(); + g1_ata_wait_drdy(); + + /* Write out the command to the device. */ + OUT8(G1_ATA_COMMAND_REG, cmd); /* Now, wait for the drive to give us back each sector. */ for(i = 0; i < nsects; ++i, ++sector) { @@ -589,9 +612,9 @@ out: int g1_ata_read_lba_dma(uint64_t sector, size_t count, void *buf, int block) { - int rv = 0; + int lba28, old, can_lba48 = CAN_USE_LBA48(); uint32_t addr; - int old, can_lba48 = CAN_USE_LBA48(); + uint8_t cmd; /* Make sure we're actually being asked to do work... */ if(!count) @@ -621,7 +644,7 @@ int g1_ata_read_lba_dma(uint64_t sector, size_t count, void *buf, } /* Chaining isn't done yet, so make sure we don't need to. */ - if(count > 65536 || (!can_lba48 && count > 256)) { + if(count > 65536) { errno = EOVERFLOW; return -1; } @@ -663,56 +686,41 @@ int g1_ata_read_lba_dma(uint64_t sector, size_t count, void *buf, /* Set the settings for this transfer and re-enable IRQs. */ dma_blocking = block; dma_in_progress = 1; + dma_nb_sectors = count; + dma_sector = sector; irq_restore(old); + if(!can_lba48 && count > 256) + count = 256; + /* Wait for the device to signal it is ready. */ g1_ata_wait_bsydrq(); /* Which mode are we using: LBA28 or LBA48? */ - if(!can_lba48 || use_lba28(sector, count)) { + lba28 = !can_lba48 || use_lba28(sector, count); + if(lba28) { g1_ata_select_device(G1_ATA_SLAVE | G1_ATA_LBA_MODE | ((sector >> 24) & 0x0F)); - - /* Write out the number of sectors we want and the lower 24-bits of - the LBA we're looking for. Note that putting 0 into the sector count - register returns 256 sectors. */ - OUT8(G1_ATA_SECTOR_COUNT, (uint8_t)count); - OUT8(G1_ATA_LBA_LOW, (uint8_t)((sector >> 0) & 0xFF)); - OUT8(G1_ATA_LBA_MID, (uint8_t)((sector >> 8) & 0xFF)); - OUT8(G1_ATA_LBA_HIGH, (uint8_t)((sector >> 16) & 0xFF)); - - /* Do the rest of the work... */ - rv = dma_common(ATA_CMD_READ_DMA, count, addr, G1_DMA_TO_MEMORY, block); + cmd = ATA_CMD_READ_DMA; } else { g1_ata_select_device(G1_ATA_SLAVE | G1_ATA_LBA_MODE); - - /* Write out the number of sectors we want and the LBA. Note that in - LBA48 mode, putting 0 into the sector count register returns 65536 - sectors (not that we have that much RAM on the Dreamcast). */ - OUT8(G1_ATA_SECTOR_COUNT, (uint8_t)(count >> 8)); - OUT8(G1_ATA_LBA_LOW, (uint8_t)((sector >> 24) & 0xFF)); - OUT8(G1_ATA_LBA_MID, (uint8_t)((sector >> 32) & 0xFF)); - OUT8(G1_ATA_LBA_HIGH, (uint8_t)((sector >> 40) & 0xFF)); - OUT8(G1_ATA_SECTOR_COUNT, (uint8_t)count); - OUT8(G1_ATA_LBA_LOW, (uint8_t)((sector >> 0) & 0xFF)); - OUT8(G1_ATA_LBA_MID, (uint8_t)((sector >> 8) & 0xFF)); - OUT8(G1_ATA_LBA_HIGH, (uint8_t)((sector >> 16) & 0xFF)); - - /* Do the rest of the work... */ - rv = dma_common(ATA_CMD_READ_DMA_EXT, count, addr, G1_DMA_TO_MEMORY, - block); + cmd = ATA_CMD_READ_DMA_EXT; } - return rv; + /* Write out the number of sectors we want and the LBA. */ + g1_ata_set_sector_and_count(sector, count, lba28); + + /* Do the rest of the work... */ + return dma_common(cmd, count, addr, G1_DMA_TO_MEMORY, block); } int g1_ata_write_lba(uint64_t sector, size_t count, const void *buf) { - int rv = 0; unsigned int i, j; uint8_t nsects = (uint8_t)count; uint16_t word; uint8_t *ptr = (uint8_t *)buf; + int cmd, lba28; /* Make sure that we've been initialized and there's a disk attached. */ if(!devices) { @@ -744,37 +752,23 @@ int g1_ata_write_lba(uint64_t sector, size_t count, const void *buf) { count -= nsects; /* Which mode are we using: LBA28 or LBA48? */ - if((sector + nsects) <= 0x0FFFFFFF) { + lba28 = (sector + nsects) <= 0x0FFFFFFF; + if(lba28) { g1_ata_select_device(G1_ATA_SLAVE | G1_ATA_LBA_MODE | ((sector >> 24) & 0x0F)); - - /* Write out the number of sectors we want and the lower 24-bits of - the LBA we're looking for. */ - OUT8(G1_ATA_SECTOR_COUNT, nsects); - OUT8(G1_ATA_LBA_LOW, (uint8_t)((sector >> 0) & 0xFF)); - OUT8(G1_ATA_LBA_MID, (uint8_t)((sector >> 8) & 0xFF)); - OUT8(G1_ATA_LBA_HIGH, (uint8_t)((sector >> 16) & 0xFF)); - - /* Write out the command to the device. */ - OUT8(G1_ATA_COMMAND_REG, ATA_CMD_WRITE_SECTORS); + cmd = ATA_CMD_WRITE_SECTORS; } else { g1_ata_select_device(G1_ATA_SLAVE | G1_ATA_LBA_MODE); - - /* Write out the number of sectors we want and the LBA. */ - OUT8(G1_ATA_SECTOR_COUNT, 0); - OUT8(G1_ATA_LBA_LOW, (uint8_t)((sector >> 24) & 0xFF)); - OUT8(G1_ATA_LBA_MID, (uint8_t)((sector >> 32) & 0xFF)); - OUT8(G1_ATA_LBA_HIGH, (uint8_t)((sector >> 40) & 0xFF)); - OUT8(G1_ATA_SECTOR_COUNT, nsects); - OUT8(G1_ATA_LBA_LOW, (uint8_t)((sector >> 0) & 0xFF)); - OUT8(G1_ATA_LBA_MID, (uint8_t)((sector >> 8) & 0xFF)); - OUT8(G1_ATA_LBA_HIGH, (uint8_t)((sector >> 16) & 0xFF)); - - /* Write out the command to the device. */ - OUT8(G1_ATA_COMMAND_REG, ATA_CMD_WRITE_SECTORS_EXT); + cmd = ATA_CMD_WRITE_SECTORS_EXT; } + /* Write out the number of sectors we want and the LBA. */ + g1_ata_set_sector_and_count(sector, nsects, lba28); + + /* Write out the command to the device. */ + OUT8(G1_ATA_COMMAND_REG, cmd); + /* Now, send the drive each sector. */ for(i = 0; i < nsects; ++i, ++sector) { /* Wait for the device to signal it is ready. */ @@ -792,18 +786,15 @@ int g1_ata_write_lba(uint64_t sector, size_t count, const void *buf) { /* Wait for the device to signal that it has finished writing the data. */ g1_ata_wait_bsydrq(); - rv = 0; - g1_ata_mutex_unlock(); - return rv; + return 0; } int g1_ata_write_lba_dma(uint64_t sector, size_t count, const void *buf, int block) { - int rv = 0; + int cmd, lba28, old, can_lba48 = CAN_USE_LBA48(); uint32_t addr; - int old, can_lba48 = CAN_USE_LBA48(); /* Make sure we're actually being asked to do work... */ if(!count) @@ -875,49 +866,30 @@ int g1_ata_write_lba_dma(uint64_t sector, size_t count, const void *buf, /* Set the settings for this transfer and re-enable IRQs. */ dma_blocking = block; dma_in_progress = 1; + dma_nb_sectors = count; + dma_sector = sector; irq_restore(old); ...<truncated>... hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: falcovorbis <fal...@us...> - 2024-08-19 03:52:45
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 3c99eb588dd1ae664b0e42481b15ba8c57381cf3 (commit) via 253b193654d8b0d794c56f4520e97ec9d4364957 (commit) from 63c8b0c0b174af2762fa7f00cb34048bfaa5235b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 3c99eb588dd1ae664b0e42481b15ba8c57381cf3 Author: Paul Cercueil <pa...@cr...> Date: Mon Aug 19 05:51:39 2024 +0200 vmu: Add function vmu_printf() (#699) This function can be used to print a string to every connect VMU, using the built-in VMU font. Signed-off-by: Paul Cercueil <pa...@cr...> commit 253b193654d8b0d794c56f4520e97ec9d4364957 Author: Andy Barajas <and...@gm...> Date: Sun Aug 18 20:47:59 2024 -0700 Fix kos doxygen warnings (#711) ----------------------------------------------------------------------- Summary of changes: include/netinet/in.h | 2 +- include/poll.h | 6 +- kernel/arch/dreamcast/include/arch/byteorder.h | 5 +- kernel/arch/dreamcast/include/dc/video.h | 2 +- kernel/arch/dreamcast/include/dc/vmu_fb.h | 11 ++ kernel/arch/dreamcast/util/Makefile | 2 +- kernel/arch/dreamcast/util/vmu_printf.c | 147 +++++++++++++++++++++++++ 7 files changed, 169 insertions(+), 6 deletions(-) create mode 100644 kernel/arch/dreamcast/util/vmu_printf.c diff --git a/include/netinet/in.h b/include/netinet/in.h index ad614083..5fb23321 100644 --- a/include/netinet/in.h +++ b/include/netinet/in.h @@ -208,7 +208,7 @@ extern const struct in6_addr in6addr_loopback; #define IPPROTO_UDP 17 /** \brief Internet Protocol Version 6. - \ingroup networking_ipv + \ingroup networking_ip */ #define IPPROTO_IPV6 41 diff --git a/include/poll.h b/include/poll.h index aa7acf3f..bdf6e83d 100644 --- a/include/poll.h +++ b/include/poll.h @@ -6,7 +6,7 @@ /** \file poll.h \brief Definitions for the poll() function. - \ingroup threading_posix + \ingroup threading_polling This file contains the definitions needed for using the poll() function, as directed by the POSIX 2008 standard (aka The Open Group Base Specifications @@ -27,7 +27,9 @@ __BEGIN_DECLS -/** \addtogroup threading_posix +/** \defgroup threading_polling Polling + \brief Implementation of POSIX polling. + \ingroup threading_posix @{ */ diff --git a/kernel/arch/dreamcast/include/arch/byteorder.h b/kernel/arch/dreamcast/include/arch/byteorder.h index aae54433..2585f247 100644 --- a/kernel/arch/dreamcast/include/arch/byteorder.h +++ b/kernel/arch/dreamcast/include/arch/byteorder.h @@ -32,7 +32,10 @@ __BEGIN_DECLS #undef BYTE_ORDER #endif -/** \addtogroup arch +/** \defgroup system_arch Byte Order + \brief Byte-order management for the SH4 architecture + \ingroup arch + @{ */ diff --git a/kernel/arch/dreamcast/include/dc/video.h b/kernel/arch/dreamcast/include/dc/video.h index de8dc1b0..04b59984 100644 --- a/kernel/arch/dreamcast/include/dc/video.h +++ b/kernel/arch/dreamcast/include/dc/video.h @@ -318,7 +318,7 @@ uint32_t vid_border_color(uint8_t r, uint8_t g, uint8_t b); void vid_clear(uint8_t r, uint8_t g, uint8_t b); /** \brief Clear VRAM. - \ingroup video_vram + \ingroup video_fb This function is essentially a memset() for the whole of VRAM that will clear it all to 0 bytes. diff --git a/kernel/arch/dreamcast/include/dc/vmu_fb.h b/kernel/arch/dreamcast/include/dc/vmu_fb.h index 8f440ca7..ae38a21d 100644 --- a/kernel/arch/dreamcast/include/dc/vmu_fb.h +++ b/kernel/arch/dreamcast/include/dc/vmu_fb.h @@ -136,4 +136,15 @@ vmufb_print_string(vmufb_t *fb, const vmufb_font_t *font, const char *str) { vmufb_print_string_into(fb, font, 0, 0, 48, 32, 0, str); } +/** \brief Render a string to attached VMUs using the built-in font + + Uses the built-in VMU font to render a string to all VMUs connected to the + system. + + \param fmt The format string, optionally followed by extra + arguments. + */ +__attribute__ ((format (printf, 1, 2))) +void vmu_printf(const char *fmt, ...); + #endif /* __DC_VMU_FB_H */ diff --git a/kernel/arch/dreamcast/util/Makefile b/kernel/arch/dreamcast/util/Makefile index 3bcc7111..37d94f7b 100644 --- a/kernel/arch/dreamcast/util/Makefile +++ b/kernel/arch/dreamcast/util/Makefile @@ -4,7 +4,7 @@ # Copyright (C) 2001 Megan Potter # -OBJS = vmu_fb.o vmu_pkg.o screenshot.o minifont.o +OBJS = vmu_fb.o vmu_pkg.o vmu_printf.o screenshot.o minifont.o SUBDIRS = ifneq ($(KOS_SUBARCH), naomi) diff --git a/kernel/arch/dreamcast/util/vmu_printf.c b/kernel/arch/dreamcast/util/vmu_printf.c new file mode 100644 index 00000000..6024415c --- /dev/null +++ b/kernel/arch/dreamcast/util/vmu_printf.c @@ -0,0 +1,147 @@ +/* KallistiOS ##version## + + util/vmu_fb.c + Copyright (C) 2024 Paul Cercueil +*/ + +#include <stdarg.h> +#include <stdio.h> + +#include <dc/vmu_fb.h> + +static vmufb_t vmufb; + +/* Linux 4x6 font: lib/fonts/font_mini_4x6.c + * + * Created by Kenneth Albanowski. + * No rights reserved, released to the public domain. + */ +static const char fontdata_4x6[] = { + 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, + 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, + 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, + 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, + 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, + 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, + 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, + 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, + 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, + 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, + 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, + 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, + 0x00, 0x00, 0x00, 0x44, 0x40, 0x40, 0xaa, 0x00, + 0x00, 0xaf, 0xfa, 0x00, 0x46, 0xec, 0x40, 0xa2, + 0x48, 0xa0, 0x69, 0x6a, 0xd0, 0x24, 0x00, 0x00, + 0x24, 0x44, 0x20, 0x42, 0x22, 0x40, 0x0e, 0xee, + 0x00, 0x04, 0xe4, 0x00, 0x00, 0x04, 0x80, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x40, 0x02, 0x48, 0x00, + 0x4a, 0xaa, 0x40, 0x4c, 0x44, 0xe0, 0xc2, 0x48, + 0xe0, 0xe2, 0x62, 0xe0, 0xaa, 0xe2, 0x20, 0xe8, + 0xe2, 0xe0, 0xe8, 0xea, 0xe0, 0xe2, 0x22, 0x20, + 0xea, 0xea, 0xe0, 0xea, 0xe2, 0x20, 0x00, 0x40, + 0x40, 0x00, 0x40, 0x48, 0x24, 0x84, 0x20, 0x0e, + 0x0e, 0x00, 0x84, 0x24, 0x80, 0xe2, 0x60, 0x40, + 0x4e, 0xe8, 0x40, 0x4a, 0xea, 0xa0, 0xca, 0xca, + 0xc0, 0x68, 0x88, 0x60, 0xca, 0xaa, 0xc0, 0xe8, + 0xe8, 0xe0, 0xe8, 0xe8, 0x80, 0x68, 0xea, 0x60, + 0xaa, 0xea, 0xa0, 0xe4, 0x44, 0xe0, 0x22, 0x2a, + 0x40, 0xaa, 0xca, 0xa0, 0x88, 0x88, 0xe0, 0xae, + 0xea, 0xa0, 0xae, 0xee, 0xa0, 0x4a, 0xaa, 0x40, + 0xca, 0xc8, 0x80, 0x4a, 0xae, 0x60, 0xca, 0xec, + 0xa0, 0x68, 0x42, 0xc0, 0xe4, 0x44, 0x40, 0xaa, + 0xaa, 0x60, 0xaa, 0xa4, 0x40, 0xaa, 0xee, 0xa0, + 0xaa, 0x4a, 0xa0, 0xaa, 0x44, 0x40, 0xe2, 0x48, + 0xe0, 0x64, 0x44, 0x60, 0x08, 0x42, 0x00, 0x62, + 0x22, 0x60, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0x84, 0x00, 0x00, 0x00, 0x6a, 0xe0, 0x88, 0xca, + 0xc0, 0x00, 0x68, 0x60, 0x22, 0x6a, 0x60, 0x0e, + 0xe8, 0x60, 0x24, 0xe4, 0x40, 0x06, 0xa6, 0xe0, + 0x88, 0xca, 0xa0, 0x40, 0x44, 0x40, 0x40, 0x44, + 0x80, 0x08, 0xac, 0xa0, 0x0c, 0x44, 0xe0, 0x00, + 0xee, 0xa0, 0x00, 0xca, 0xa0, 0x04, 0xaa, 0x40, + 0x00, 0xca, 0xc8, 0x00, 0x6a, 0x62, 0x0c, 0xa8, + 0x80, 0x06, 0xc2, 0xc0, 0x04, 0xe4, 0x40, 0x00, + 0xaa, 0x60, 0x00, 0xae, 0x40, 0x00, 0xae, 0xe0, + 0x00, 0xa4, 0xa0, 0x00, 0xae, 0x2c, 0x0e, 0x6c, + 0xe0, 0x24, 0xc4, 0x20, 0x44, 0x44, 0x40, 0x84, + 0x64, 0x80, 0x5a, 0x00, 0x00, 0x4a, 0xae, 0x00, + 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, + 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, + 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, + 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, + 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, + 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, + 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, + 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, + 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, + 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, + 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, + 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, + 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, + 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, + 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, + 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, + 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, + 0xee, 0xe0, 0x06, 0xc6, 0x00, 0x0c, 0x6c, 0x00, + 0x82, 0x82, 0x82, 0xa5, 0xa5, 0xa5, 0xdb, 0xdb, + 0xdb, 0x44, 0x44, 0x44, 0x44, 0xc4, 0x44, 0x44, + 0xcc, 0x44, 0x66, 0xe6, 0x66, 0x00, 0xe6, 0x66, + 0x00, 0xcc, 0x44, 0x66, 0xee, 0x66, 0x66, 0x66, + 0x66, 0x00, 0xee, 0x66, 0x66, 0xee, 0x00, 0x66, + 0xe0, 0x00, 0x44, 0xcc, 0x00, 0x00, 0xc4, 0x44, + 0x44, 0x70, 0x00, 0x44, 0xf0, 0x00, 0x00, 0xf4, + 0x44, 0x44, 0x74, 0x44, 0x00, 0xf0, 0x00, 0x44, + 0xf4, 0x44, 0x44, 0x77, 0x44, 0x66, 0x76, 0x66, + 0x66, 0x77, 0x00, 0x00, 0x77, 0x66, 0x66, 0xff, + 0x00, 0x00, 0xff, 0x66, 0x66, 0x77, 0x66, 0x00, + 0xff, 0x00, 0x66, 0xff, 0x66, 0x44, 0xff, 0x00, + 0x66, 0xf0, 0x00, 0x00, 0xff, 0x44, 0x00, 0xf6, + 0x66, 0x66, 0x70, 0x00, 0x44, 0x77, 0x00, 0x00, + 0x77, 0x44, 0x00, 0x76, 0x66, 0x66, 0xf6, 0x66, + 0x44, 0xff, 0x44, 0x44, 0xc0, 0x00, 0x00, 0x74, + 0x44, 0xff, 0xff, 0xff, 0x00, 0x0f, 0xff, 0xcc, + 0xcc, 0xcc, 0x33, 0x33, 0x33, 0xff, 0xf0, 0x00, + 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, + 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, + 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, + 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, + 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, + 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, + 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, + 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, + 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, + 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, + 0xe0, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xe0, 0xee, + 0xee, 0xe0, 0x00, 0x66, 0x00, 0xee, 0xee, 0xe0, +}; + +static const vmufb_font_t vmufb_font4x6 = { + .w = 4, + .h = 6, + .stride = 3, + .fontdata = fontdata_4x6, +}; + +void vmu_printf(const char *fmt, ...) +{ + maple_device_t *dev; + unsigned int vmu; + char buf[256]; + va_list va; + + buf[sizeof(buf) - 1] = '\0'; + + va_start(va, fmt); + vsnprintf(buf, sizeof(buf), fmt, va); + va_end(va); + + vmufb_print_string(&vmufb, &vmufb_font4x6, buf); + + for (vmu = 0; ; vmu++) { + dev = maple_enum_type(vmu, MAPLE_FUNC_LCD); + if (!dev) + break; + + vmufb_present(&vmufb, dev); + } +} hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: falcovorbis <fal...@us...> - 2024-08-19 03:47:08
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 63c8b0c0b174af2762fa7f00cb34048bfaa5235b (commit) from 084658a4859a9e29da6dbaa43f05ba0fceade10f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 63c8b0c0b174af2762fa7f00cb34048bfaa5235b Author: Tchan0 <617...@us...> Date: Mon Aug 19 05:46:43 2024 +0200 Naomi: examples Makefile: exclude network, modem & g1ata (#713) * Naomi: examples Makefile: exclude modem & g1ata Exclude examples /modem & /g1ata when building for Naomi, as the corresponding functions do not exist for Naomi * Naomi: examples Makefile: exclude network Exclude network examples, as network is also excluded when building KallistiOS for Naomi ----------------------------------------------------------------------- Summary of changes: examples/dreamcast/Makefile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/examples/dreamcast/Makefile b/examples/dreamcast/Makefile index 8afe9ad9..221b371c 100644 --- a/examples/dreamcast/Makefile +++ b/examples/dreamcast/Makefile @@ -5,10 +5,14 @@ # Copyright (C) 2024 Andy Barajas # -DIRS = 2ndmix basic libdream kgl hello sound png network vmu conio pvr video \ - lua parallax modem dreameye filesystem sd g1ata lightgun keyboard sdl dev rumble \ +DIRS = 2ndmix basic libdream kgl hello sound png vmu conio pvr video \ + lua parallax dreameye filesystem sd lightgun keyboard sdl dev rumble \ micropython +ifneq ($(KOS_SUBARCH), naomi) + DIRS += network modem g1ata +endif + ifdef KOS_CCPLUS DIRS += cpp tsunami endif hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: falcovorbis <fal...@us...> - 2024-08-19 03:45:46
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 084658a4859a9e29da6dbaa43f05ba0fceade10f (commit) from 41528fef656ffbbdfe16663e895c01c912f71b43 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 084658a4859a9e29da6dbaa43f05ba0fceade10f Author: Andy Barajas <and...@gm...> Date: Sun Aug 18 20:44:40 2024 -0700 Cleanup documentation. Rearrange error checking code. Remove unused symbol. (#716) ----------------------------------------------------------------------- Summary of changes: kernel/arch/dreamcast/hardware/sq.c | 8 ++++++-- kernel/arch/dreamcast/hardware/sq_fast_cpy.s | 3 +-- kernel/arch/dreamcast/sound/snd_pcm_split.s | 1 - kernel/arch/dreamcast/sound/snd_stream.c | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/kernel/arch/dreamcast/hardware/sq.c b/kernel/arch/dreamcast/hardware/sq.c index 10ef13bd..41dc3ee2 100644 --- a/kernel/arch/dreamcast/hardware/sq.c +++ b/kernel/arch/dreamcast/hardware/sq.c @@ -123,11 +123,15 @@ void *sq_set16(void *dest, uint32_t c, size_t n) { void *sq_set32(void *dest, uint32_t c, size_t n) { uint32_t *d = SQ_MASK_DEST(dest); - sq_lock(dest); - /* Write them as many times necessary */ n >>= 5; + /* Exit early if we dont have enough data to set */ + if(n == 0) + return dest; + + sq_lock(dest); + while(n--) { /* Fill both store queues with c */ d[0] = d[1] = d[2] = d[3] = d[4] = d[5] = d[6] = d[7] = c; diff --git a/kernel/arch/dreamcast/hardware/sq_fast_cpy.s b/kernel/arch/dreamcast/hardware/sq_fast_cpy.s index 134ee374..b58544ab 100644 --- a/kernel/arch/dreamcast/hardware/sq_fast_cpy.s +++ b/kernel/arch/dreamcast/hardware/sq_fast_cpy.s @@ -1,6 +1,6 @@ ! KallistiOS ##version## ! -! arch/dreamcast/hardware/sq_fast_path.s +! arch/dreamcast/hardware/sq_fast_cpy.s ! Copyright (C) 2024 Andy Barajas ! ! Optimized SH4 assembler function for copying 32 bytes of data @@ -43,4 +43,3 @@ _sq_fast_cpy: .exit: rts fschg - diff --git a/kernel/arch/dreamcast/sound/snd_pcm_split.s b/kernel/arch/dreamcast/sound/snd_pcm_split.s index fa27a159..089b568c 100644 --- a/kernel/arch/dreamcast/sound/snd_pcm_split.s +++ b/kernel/arch/dreamcast/sound/snd_pcm_split.s @@ -9,7 +9,6 @@ .section .text .globl _snd_pcm16_split -.globl _snd_pcm16_split_sq_start .globl _snd_pcm8_split .globl _snd_adpcm_split diff --git a/kernel/arch/dreamcast/sound/snd_stream.c b/kernel/arch/dreamcast/sound/snd_stream.c index e499c909..d79ff314 100644 --- a/kernel/arch/dreamcast/sound/snd_stream.c +++ b/kernel/arch/dreamcast/sound/snd_stream.c @@ -237,7 +237,7 @@ void snd_pcm16_split_sq(uint32_t *data, uintptr_t left, uintptr_t right, size_t /* Make sure the FIFOs are empty */ g2_fifo_wait(); - /* Separating channels and do fill/write queues as many times necessary. */ + /* Separating channels and fill/write queues as many times as necessary. */ for(; remain >= 128; remain -= 128) { /* Fill SQ0 */ hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: darcagn <da...@us...> - 2024-08-16 00:45:02
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 41528fef656ffbbdfe16663e895c01c912f71b43 (commit) via 5f3e39dc6f69aeac2a29abe59a924137a4a0f12a (commit) via a85d2f28840b6b1e95c6d6d472305535d6e52697 (commit) from 2751f20f40083c856e767b90eff4c64206987b68 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 41528fef656ffbbdfe16663e895c01c912f71b43 Merge: a85d2f28 5f3e39dc Author: darcagn <da...@pr...> Date: Thu Aug 15 19:44:47 2024 -0500 Merge pull request #712 from Tchan0/gitignore_add_vscode gitignore: add .vscode folders commit 5f3e39dc6f69aeac2a29abe59a924137a4a0f12a Author: Tchan0 <617...@us...> Date: Thu Aug 15 19:50:42 2024 +0200 gitignore: add .vscode folders Add .vscode folders that could be added in the examples by the users, when using Visual Studio Code commit a85d2f28840b6b1e95c6d6d472305535d6e52697 Author: darcagn <da...@pr...> Date: Mon Aug 12 07:17:13 2024 -0500 dc-chain: Fix ARM toolchain build error when JIT is enabled for SH toolchain (#709) ----------------------------------------------------------------------- Summary of changes: .gitignore | 1 + utils/dc-chain/doc/CHANGELOG.md | 6 ++++++ utils/dc-chain/scripts/gcc-pass1.mk | 4 +++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 02d16d33..107e5e4f 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ *~ .*.swp .DS_Store +.vscode/ doc/reference/ environ.sh romdisk.img diff --git a/utils/dc-chain/doc/CHANGELOG.md b/utils/dc-chain/doc/CHANGELOG.md index 75c15e5d..498ee2c9 100644 --- a/utils/dc-chain/doc/CHANGELOG.md +++ b/utils/dc-chain/doc/CHANGELOG.md @@ -2,6 +2,12 @@ | Date<br/>_____________ | Author(s)<br/>_____________ | Changes<br/>_____________ | |:-----------------------|:----------------------------|---------------------------| +| 2024-08-11 | Eric Fradella | Fix ARM toolchain build error when JIT is enabled for SH toolchain. | +| 2024-08-07 | Eric Fradella | Updated binutils to 2.43. Updated GCC 11 profile with support for GCC 11.5.0. | +| 2024-08-01 | Eric Fradella | Updated GCC 14 profile with support for GCC 14.2.0. | +| 2024-07-15 | Eric Fradella | Updated profiles for GDB 15.1. | +| 2024-06-26 | Eric Fradella | Updated GCC 12 profile with support for GCC 12.4.0. | +| 2024-05-24 | Eric Fradella | Added support for GCC 13.3.0. | | 2024-05-08 | Falco Girgis | Added configuration option for libstdc++'s timezone database. | | 2024-05-02 | Eric Fradella | Deprecated GCC 4.7.4 profile. Revamped configuration system into separate profiles and Makefile.cfg. Revised configuration options and documentation. | | 2024-05-01 | Falco Girgis | Added config option for enabling the Ada langauge. | diff --git a/utils/dc-chain/scripts/gcc-pass1.mk b/utils/dc-chain/scripts/gcc-pass1.mk index 5958a858..4cfbf87c 100644 --- a/utils/dc-chain/scripts/gcc-pass1.mk +++ b/utils/dc-chain/scripts/gcc-pass1.mk @@ -2,7 +2,9 @@ # This file is part of KallistiOS. build-sh4-gcc-pass1: build = build-gcc-$(target)-$(gcc_ver)-pass1 +build-sh4-gcc-pass1: enabled_languages = $(pass1_languages) build-arm-gcc-pass1: build = build-gcc-$(target)-$(gcc_ver) +build-arm-gcc-pass1: enabled_languages = c $(build_gcc_pass1) $(build_gcc_pass2): src_dir = gcc-$(gcc_ver) $(build_gcc_pass1) $(build_gcc_pass2): log = $(logdir)/$(build).log $(build_gcc_pass1): logdir @@ -17,7 +19,7 @@ $(build_gcc_pass1): logdir --with-gnu-ld \ --without-headers \ --with-newlib \ - --enable-languages=$(pass1_languages) \ + --enable-languages=$(enabled_languages) \ --disable-libssp \ --enable-checking=release \ $(cpu_configure_args) \ hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: falcovorbis <fal...@us...> - 2024-08-11 15:36:59
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 2751f20f40083c856e767b90eff4c64206987b68 (commit) from 002de35db2462e7d2d78713b2a954ff2d0c8a756 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 2751f20f40083c856e767b90eff4c64206987b68 Author: José Ribeiro <602...@us...> Date: Sun Aug 11 16:36:21 2024 +0100 Expanded VFS documentation (#684) * Reworking FS driver explanation and size warning * Update include/kos/fs_romdisk.h Co-authored-by: Andy Barajas <and...@gm...> * Update include/kos/fs_romdisk.h Co-authored-by: Andy Barajas <and...@gm...> * Update include/kos/fs_romdisk.h Co-authored-by: Andy Barajas <and...@gm...> * Update include/kos/fs_romdisk.h Co-authored-by: Andy Barajas <and...@gm...> * Update include/kos/fs_romdisk.h Co-authored-by: Falco Girgis <gyr...@gm...> * Explain how to build and embed fs image * Rewworking the line sizes * Update include/kos/fs_romdisk.h Co-authored-by: Falco Girgis <gyr...@gm...> --------- Co-authored-by: Andy Barajas <and...@gm...> Co-authored-by: Falco Girgis <gyr...@gm...> ----------------------------------------------------------------------- Summary of changes: include/kos/fs_romdisk.h | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/include/kos/fs_romdisk.h b/include/kos/fs_romdisk.h index c322bbb5..274d00a5 100644 --- a/include/kos/fs_romdisk.h +++ b/include/kos/fs_romdisk.h @@ -15,9 +15,33 @@ with the genromfs program that is included in the utils portion of the tree. You can choose to automount one ROMFS image by embedding it into your binary - and using the appropriate KOS_INIT_FLAGS() setting. The embedded ROMFS will - mount itself on /rd. You can also mount additional images that you load - from some other source on whatever mountpoint you want. + and using the appropriate flags (INIT_DEFAULT by itself or INIT_FS_ROMDISK with other flags) + when calling the KOS_INIT_FLAGS() macro with a custom flag selection. The embedded ROMFS + will mount itself on /rd. + + \warning + An embedded romdisk image is linked to your executable and cannot be evicted from + system RAM! + + Mounting additional images that you load from some other sources (such as a modified BIOS) + on whatever mountpoint you want, is also possible. Using fs_romdisk_mount() and passing a + pointer to the location of a romdisk image will mount it. + + \remark + Mounted images will reside in system RAM for as long as your program is running + or until you unmount them with fs_romdisk_unmount(). The size of your generated + ROMFS image must be kept below 16MB, with 14MB being the maximum recommended size, + as your binary will also reside in RAM and you need to leave some memory available + for it. Generating files larger than the available RAM will lead to system crashes. + + A romdisk filesystem image can be created by adding "KOS_ROMDISK_DIR=" to your Makefile + and pointing it to the directory contaning all the resources you wish to have embeded in + filesystem image. A rule to create the image is provided in the rules provided in Makefile.rules, + the created object file must be linked with your binary file by adding romdisk.o to your + list of objects. + + \see INIT_FS_ROMDISK + \see KOS_INIT_FLAGS() \author Megan Potter */ hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: darcagn <da...@us...> - 2024-08-11 06:34:22
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 002de35db2462e7d2d78713b2a954ff2d0c8a756 (commit) via e8dfbf4db231e4d90dea0bcc91664e760c45db7e (commit) via 0bc7d702180a9fcf7f3759a3a739856536c5477c (commit) from cca9753dc0e3f58fca4a36d1d4ab0f1a89754b52 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 002de35db2462e7d2d78713b2a954ff2d0c8a756 Merge: cca9753d e8dfbf4d Author: darcagn <da...@pr...> Date: Sun Aug 11 01:33:03 2024 -0500 Merge pull request #529 from pcercuei/libc-fix-lto Fix atomics with LTO commit e8dfbf4db231e4d90dea0bcc91664e760c45db7e Author: Paul Cercueil <pa...@cr...> Date: Thu Aug 8 16:08:00 2024 +0200 thread: Mark thd_pass() as __used This fixes atomics when building with LTO. Signed-off-by: Paul Cercueil <pa...@cr...> commit 0bc7d702180a9fcf7f3759a3a739856536c5477c Author: Paul Cercueil <pa...@cr...> Date: Thu Aug 8 16:06:13 2024 +0200 init: Mark arch_init() as __used And add the __noreturn that was missing to the implementation. Without the __used and when using LTO, some programs may have undefined references to arch_init(). Signed-off-by: Paul Cercueil <pa...@cr...> ----------------------------------------------------------------------- Summary of changes: kernel/arch/dreamcast/kernel/init.c | 1 + kernel/thread/thread.c | 1 + 2 files changed, 2 insertions(+) diff --git a/kernel/arch/dreamcast/kernel/init.c b/kernel/arch/dreamcast/kernel/init.c index 6c71b278..ed90b7f1 100644 --- a/kernel/arch/dreamcast/kernel/init.c +++ b/kernel/arch/dreamcast/kernel/init.c @@ -388,6 +388,7 @@ void arch_menu(void) { /* Called to shut down non-gracefully; assume the system is in peril and don't try to call the dtors */ +__used __noreturn void arch_abort(void) { /* Disable the WDT, if active */ wdt_disable(); diff --git a/kernel/thread/thread.c b/kernel/thread/thread.c index 5fe46097..319149de 100644 --- a/kernel/thread/thread.c +++ b/kernel/thread/thread.c @@ -828,6 +828,7 @@ void thd_sleep(unsigned int ms) { } /* Manually cause a re-schedule */ +__used void thd_pass(void) { /* Makes no sense inside int */ if(irq_inside_int()) return; hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: quzar <qu...@us...> - 2024-08-11 00:52:21
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "The KallistiOS port of OpenGL.". The branch, master has been updated via 8374cbee6c350612f38aeedf9a0af541e83aae76 (commit) from 8a4be75e53e7520ff558df1e2b2736db0f4abbb4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 8374cbee6c350612f38aeedf9a0af541e83aae76 Author: Falco Girgis <gyr...@gm...> Date: Sat Aug 10 16:05:53 2024 -0500 Correct KGL header usage (#3) * Ensure pointing to <KGL/GL.h> rather than the <GL/GL.h> which will pick up GLdc. * Roll back enabling of DMA from (#2) ----------------------------------------------------------------------- Summary of changes: gl-sh4.h | 2 -- include/glu.h | 2 +- include/glut.h | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/gl-sh4.h b/gl-sh4.h index a669995..1ca91ed 100644 --- a/gl-sh4.h +++ b/gl-sh4.h @@ -11,8 +11,6 @@ #include <arch/args.h> -#define GL_KOS_USE_DMA 1 - typedef float vector3f[3]; /* 3 float vector */ typedef float matrix4f[4][4]; /* 4x4 float matrix */ diff --git a/include/glu.h b/include/glu.h index 6397441..c740dec 100644 --- a/include/glu.h +++ b/include/glu.h @@ -17,7 +17,7 @@ __BEGIN_DECLS #ifndef BUILD_LIBGL -#include <GL/gl.h> +#include <KGL/gl.h> #endif #define GLU_FALSE 0 diff --git a/include/glut.h b/include/glut.h index 91e4b04..b115bc2 100644 --- a/include/glut.h +++ b/include/glut.h @@ -13,7 +13,7 @@ __BEGIN_DECLS #ifndef BUILD_LIBGL -#include <GL/gl.h> +#include <KGL/gl.h> #endif /* Flush the Submitted Primitive Data to the GPU for render */ hooks/post-receive -- The KallistiOS port of OpenGL. |
From: falcovorbis <fal...@us...> - 2024-08-10 05:26:46
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via cca9753dc0e3f58fca4a36d1d4ab0f1a89754b52 (commit) via 858e77a016364bab6d921fc118936552d5e97d27 (commit) from db242c8af3110d3ed31cea395aa20361d576396b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit cca9753dc0e3f58fca4a36d1d4ab0f1a89754b52 Author: Andy Barajas <and...@gm...> Date: Fri Aug 9 21:29:25 2024 -0700 Remove g1ata mutex use in biosfont (#700) Removed mutex from biosfont because it causes an issue in DS bootloader as well as give the ability to use biofonts inside of an IRQ context commit 858e77a016364bab6d921fc118936552d5e97d27 Author: Andy Barajas <and...@gm...> Date: Fri Aug 9 20:48:21 2024 -0700 Fix -Wmaybe-uninitialize warning (#701) ----------------------------------------------------------------------- Summary of changes: examples/dreamcast/vmu/vmu_beep/beep.c | 2 +- kernel/arch/dreamcast/hardware/biosfont.c | 8 -------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/examples/dreamcast/vmu/vmu_beep/beep.c b/examples/dreamcast/vmu/vmu_beep/beep.c index 666eef77..75d74085 100644 --- a/examples/dreamcast/vmu/vmu_beep/beep.c +++ b/examples/dreamcast/vmu/vmu_beep/beep.c @@ -50,7 +50,7 @@ static void on_reset(uint8_t addr, uint32_t btns) { } int main(int argc, char *argv[]) { - maple_device_t *dev, *vmudev; + maple_device_t *dev, *vmudev = NULL; cont_state_t *state; point_t w; plx_font_t *fnt; diff --git a/kernel/arch/dreamcast/hardware/biosfont.c b/kernel/arch/dreamcast/hardware/biosfont.c index 328d278f..0792279a 100644 --- a/kernel/arch/dreamcast/hardware/biosfont.c +++ b/kernel/arch/dreamcast/hardware/biosfont.c @@ -14,7 +14,6 @@ #include <dc/syscalls.h> #include <kos/dbglog.h> -#include <kos/mutex.h> /* @@ -75,12 +74,7 @@ int bfont_set_32bit_mode(int on) { return rv; } -/* From cdrom.c */ -extern mutex_t _g1_ata_mutex; - int lock_bfont(void) { - if(mutex_lock(&_g1_ata_mutex) == -1) return -1; - /* Just make sure no outside system took the lock */ while(syscall_font_lock() != 0) thd_pass(); @@ -89,8 +83,6 @@ int lock_bfont(void) { } int unlock_bfont(void) { - if(mutex_unlock(&_g1_ata_mutex) == -1) return -1; - syscall_font_unlock(); return 0; hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: falcovorbis <fal...@us...> - 2024-08-08 11:25:08
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via db242c8af3110d3ed31cea395aa20361d576396b (commit) from 5f4e519c3e234980fbd7d430160c740710b1b6f3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit db242c8af3110d3ed31cea395aa20361d576396b Author: Falco Girgis <gyr...@gm...> Date: Thu Aug 8 06:19:46 2024 -0500 Manually aligned PVR primitives to 32-bytes (#678) This is necessary to leverage the "fast" store-queue path for pvr_prim(), and everyone doing any level of performance work is having to manually align every single vertex at the time of declaration... time to fix this in KOS itself like we did for matrix_t.` 1) Aligned all PVR vertex types to 32-bytes. 2) Aligned all PVR header types to 32-bytes. ----------------------------------------------------------------------- Summary of changes: kernel/arch/dreamcast/include/dc/pvr.h | 49 +++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/kernel/arch/dreamcast/include/dc/pvr.h b/kernel/arch/dreamcast/include/dc/pvr.h index bd070e11..ecc37286 100644 --- a/kernel/arch/dreamcast/include/dc/pvr.h +++ b/kernel/arch/dreamcast/include/dc/pvr.h @@ -39,6 +39,8 @@ #include <sys/cdefs.h> __BEGIN_DECLS +#include <stdalign.h> + #include <arch/memory.h> #include <arch/types.h> #include <arch/cache.h> @@ -723,7 +725,8 @@ typedef struct { \headerfile dc/pvr.h */ -typedef struct { +typedef struct pvr_poly_hdr { + alignas(32) uint32_t cmd; /**< \brief TA command */ uint32_t mode1; /**< \brief Parameter word 1 */ uint32_t mode2; /**< \brief Parameter word 2 */ @@ -740,7 +743,8 @@ typedef struct { \headerfile dc/pvr.h */ -typedef struct { +typedef struct pvr_poly_ic_hdr { + alignas(32) uint32_t cmd; /**< \brief TA command */ uint32_t mode1; /**< \brief Parameter word 1 */ uint32_t mode2; /**< \brief Parameter word 2 */ @@ -758,7 +762,8 @@ typedef struct { \headerfile dc/pvr.h */ -typedef struct { +typedef struct pvr_poly_mod_hdr { + alignas(32) uint32_t cmd; /**< \brief TA command */ uint32_t mode1; /**< \brief Parameter word 1 */ uint32_t mode2_0; /**< \brief Parameter word 2 (outside volume) */ @@ -776,7 +781,8 @@ typedef struct { \headerfile dc/pvr.h */ -typedef struct { +typedef struct pvr_sprite_hdr { + alignas(32) uint32_t cmd; /**< \brief TA command */ uint32_t mode1; /**< \brief Parameter word 1 */ uint32_t mode2; /**< \brief Parameter word 2 */ @@ -794,7 +800,8 @@ typedef struct { \headerfile dc/pvr.h */ -typedef struct { +typedef struct pvr_mod_hdr { + alignas(32) uint32_t cmd; /**< \brief TA command */ uint32_t mode1; /**< \brief Parameter word 1 */ uint32_t d1; /**< \brief Dummy value */ @@ -822,7 +829,8 @@ typedef struct { \headerfile dc/pvr.h */ -typedef struct { +typedef struct pvr_vertex { + alignas(32) uint32_t flags; /**< \brief TA command (vertex flags) */ float x; /**< \brief X coordinate */ float y; /**< \brief Y coordinate */ @@ -841,7 +849,8 @@ typedef struct { \headerfile dc/pvr.h */ -typedef struct { +typedef struct pvr_vertex_pcm { + alignas(32) uint32_t flags; /**< \brief TA command (vertex flags) */ float x; /**< \brief X coordinate */ float y; /**< \brief Y coordinate */ @@ -860,17 +869,18 @@ typedef struct { \headerfile dc/pvr.h */ -typedef struct { +typedef struct pvr_vertex_tpcm { + alignas(32) uint32_t flags; /**< \brief TA command (vertex flags) */ - float x; /**< \brief X coordinate */ - float y; /**< \brief Y coordinate */ - float z; /**< \brief Z coordinate */ - float u0; /**< \brief Texture U coordinate (outside) */ - float v0; /**< \brief Texture V coordinate (outside) */ + float x; /**< \brief X coordinate */ + float y; /**< \brief Y coordinate */ + float z; /**< \brief Z coordinate */ + float u0; /**< \brief Texture U coordinate (outside) */ + float v0; /**< \brief Texture V coordinate (outside) */ uint32_t argb0; /**< \brief Vertex color (outside) */ uint32_t oargb0; /**< \brief Vertex offset color (outside) */ - float u1; /**< \brief Texture U coordinate (inside) */ - float v1; /**< \brief Texture V coordinate (inside) */ + float u1; /**< \brief Texture U coordinate (inside) */ + float v1; /**< \brief Texture V coordinate (inside) */ uint32_t argb1; /**< \brief Vertex color (inside) */ uint32_t oargb1; /**< \brief Vertex offset color (inside) */ uint32_t d1; /**< \brief Dummy value */ @@ -891,7 +901,8 @@ typedef struct { \headerfile dc/pvr.h */ -typedef struct { +typedef struct pvr_sprite_txr { + alignas(32) uint32_t flags; /**< \brief TA command (vertex flags) */ float ax; /**< \brief First X coordinate */ float ay; /**< \brief First Y coordinate */ @@ -915,7 +926,8 @@ typedef struct { This vertex type is to be used with the sprite polygon header and the sprite related commands to draw untextured sprites (aka, quads). */ -typedef struct { +typedef struct pvr_sprite_col { + alignas(32) uint32_t flags; /**< \brief TA command (vertex flags) */ float ax; /**< \brief First X coordinate */ float ay; /**< \brief First Y coordinate */ @@ -939,7 +951,8 @@ typedef struct { This vertex type is to be used with the modifier volume header to specify triangular modifier areas. */ -typedef struct { +typedef struct pvr_modifier_vol { + alignas(32) uint32_t flags; /**< \brief TA command (vertex flags) */ float ax; /**< \brief First X coordinate */ float ay; /**< \brief First Y coordinate */ hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: falcovorbis <fal...@us...> - 2024-08-08 11:20:18
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, skmp_pvr_bg_fix has been created at e0b526286e4e8cd83a4459610b3cc3718cdf5ad7 (commit) - Log ----------------------------------------------------------------- commit e0b526286e4e8cd83a4459610b3cc3718cdf5ad7 Author: Falco Girgis <gyr...@gm...> Date: Tue Aug 6 17:42:48 2024 -0500 Fixed overflow with writing pvr bg plane. - skmp (correctly) reported that our little loop to copy the internally populated pvr_bkg_poly_t polygon (which gets color info from pvr_set_bg_color()) was looping too far. * structure is only 60 bytes, we looped for 64 and then wrote another word even beyond that. - swapped implementation to use memcpy() based on sizeof(pvr_bkg_poly_t) which is safer, and is smart enough to do per-word operations when they are valid (not here, lolz). - removed final vrl[0x11] = 0 assignment, as it clearly wasn't necessary and doesn't appear to even be doing anything useful at-all. The BG polygon types are special and don't need end-of-list flags, and interpolate the 4th vertex, more like PVR sprites. ----------------------------------------------------------------------- hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: quzar <qu...@us...> - 2024-08-07 21:40:49
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 5f4e519c3e234980fbd7d430160c740710b1b6f3 (commit) from 90f95e840f1bbfcb03c71240250bf1c3b84219d2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 5f4e519c3e234980fbd7d430160c740710b1b6f3 Author: darcagn <da...@pr...> Date: Wed Aug 7 16:39:30 2024 -0500 dc-chain: Updates to profiles and patches (#695) - GCC 11.x profile updated to 11.5.0 - Binutils updated to 2.43 for all non-legacy toolchains - Patch offsets updated to cleanly patch GCC 15.0.0-dev toolchain ----------------------------------------------------------------------- Summary of changes: utils/dc-chain/Makefile.default.cfg | 4 +- utils/dc-chain/README.md | 22 ++++---- .../{gcc-11.4.0-kos.diff => gcc-11.5.0-kos.diff} | 58 +++++++++++----------- utils/dc-chain/patches/gcc-15.0.0-kos.diff | 4 +- utils/dc-chain/profiles/profile.10.5.0.mk | 4 +- .../{profile.11.4.0.mk => profile.11.5.0.mk} | 6 +-- utils/dc-chain/profiles/profile.12.4.0.mk | 4 +- utils/dc-chain/profiles/profile.13.3.0.mk | 4 +- utils/dc-chain/profiles/profile.13.3.1-dev.mk | 4 +- utils/dc-chain/profiles/profile.14.2.0.mk | 4 +- utils/dc-chain/profiles/profile.14.2.1-dev.mk | 4 +- utils/dc-chain/profiles/profile.15.0.0-dev.mk | 4 +- utils/dc-chain/profiles/profile.gccrs-dev.mk | 4 +- utils/dc-chain/profiles/profile.rustc-dev.mk | 4 +- utils/dc-chain/profiles/profile.stable.mk | 4 +- 15 files changed, 67 insertions(+), 67 deletions(-) rename utils/dc-chain/patches/{gcc-11.4.0-kos.diff => gcc-11.5.0-kos.diff} (73%) rename utils/dc-chain/profiles/{profile.11.4.0.mk => profile.11.5.0.mk} (94%) diff --git a/utils/dc-chain/Makefile.default.cfg b/utils/dc-chain/Makefile.default.cfg index d539b43e..f7b2bfbf 100644 --- a/utils/dc-chain/Makefile.default.cfg +++ b/utils/dc-chain/Makefile.default.cfg @@ -10,9 +10,9 @@ # - 9.3.0-legacy: Former 'stable' option, based on GCC 9.3.0 and Newlib 3.3.0. # - 9.5.0-winxp: Most recent versions of tools which run on Windows XP. # - 10.5.0: Last release in the GCC 10 series, released 2023-07-07. +# - 11.5.0: Last release in the GCC 11 series, released 2024-07-19. # Supported upstream: -# - 11.4.0: Latest release in the GCC 11 series, released 2023-05-15. -# - 12.4.0: Latest release in the GCC 12 series, released 2023-06-20. +# - 12.4.0: Latest release in the GCC 12 series, released 2024-06-20. # - stable: Tested stable; based on GCC 13.2.0, released 2023-07-27. # - 13.3.0: Latest release in the GCC 13 series, released 2024-05-21. # - 14.2.0: Latest release in the GCC 14 series, released 2024-08-01. diff --git a/utils/dc-chain/README.md b/utils/dc-chain/README.md index 7f645d11..1e802874 100644 --- a/utils/dc-chain/README.md +++ b/utils/dc-chain/README.md @@ -100,17 +100,17 @@ The following toolchain profiles are available for users to select in |---------:|:-------:|:----------:|:------------:|:-------:|:----------------:|:------| | 9.3.0-legacy | 9.3.0 | 3.3.0 | 2.34 | 8.4.0 | 2.34 | Former 'stable' option, based on GCC 9<br />GCC 9 series support ended upstream | | 9.5.0-winxp | 9.5.0 | 4.3.0 | 2.34 | 8.5.0 | 2.34 | Most recent versions of tools which run on Windows XP<br />GCC 9 series support ended upstream | -| 10.5.0 | 10.5.0 | 4.3.0 | 2.41 | 8.5.0 | 2.41 | Latest release in the GCC 10 series, released 2023-07-07<br />GCC 10 series support ended upstream | -| 11.4.0 | 11.4.0 | 4.3.0 | 2.41 | 8.5.0 | 2.41 | Latest release in the GCC 11 series, released 2023-05-15 | -| 12.3.0 | 12.3.0 | 4.3.0 | 2.41 | 8.5.0 | 2.41 | Latest release in the GCC 12 series, released 2023-05-08 | -| **stable** | **13.2.0** | **4.3.0** | **2.41** | **8.5.0** | **2.41** | **Tested stable; based on GCC 13.2.0, released 2023-07-27** | -| 13.3.0 | 13.3.0 | 4.4.0 | 2.42 | 8.5.0 | 2.42 | Latest release in the GCC 13 series, released 2024-05-21 | -| 14.2.0 | 14.2.0 | 4.4.0 | 2.42 | 8.5.0 | 2.42 | Latest release in the GCC 14 series, released 2024-08-01 | -| 13.3.1-dev | 13.3.1 (git) | 4.4.0 | 2.42 | 8.5.0 | 2.42 | Bleeding edge GCC 13 series from git | -| 14.2.1-dev | 14.2.1 (git) | 4.4.0 | 2.42 | 8.5.0 | 2.42 | Bleeding edge GCC 14 series from git | -| 15.0.0-dev | 15.0.0 (git) | 4.4.0 | 2.42 | 8.5.0 | 2.42 | Bleeding edge GCC 15 series from git | -| gccrs-dev | 14.x | 4.4.0 | 2.42 | 8.5.0 | 2.42 | GCC fork for development of the GCCRS Rust compiler | -| rustc-dev | 14.x | 4.4.0 | 2.42 | 8.5.0 | 2.42 | GCC fork for development of the libgccjit rustc GCC codegen | +| 10.5.0 | 10.5.0 | 4.3.0 | 2.43 | 8.5.0 | 2.43 | Latest release in the GCC 10 series, released 2023-07-07<br />GCC 10 series support ended upstream | +| 11.5.0 | 11.5.0 | 4.3.0 | 2.43 | 8.5.0 | 2.43 | Latest release in the GCC 11 series, released 2024-07-19<br />GCC 11 series support ended upstream | +| 12.3.0 | 12.3.0 | 4.3.0 | 2.43 | 8.5.0 | 2.43 | Latest release in the GCC 12 series, released 2023-05-08 | +| **stable** | **13.2.0** | **4.3.0** | **2.43** | **8.5.0** | **2.43** | **Tested stable; based on GCC 13.2.0, released 2023-07-27** | +| 13.3.0 | 13.3.0 | 4.4.0 | 2.43 | 8.5.0 | 2.43 | Latest release in the GCC 13 series, released 2024-05-21 | +| 14.2.0 | 14.2.0 | 4.4.0 | 2.43 | 8.5.0 | 2.43 | Latest release in the GCC 14 series, released 2024-08-01 | +| 13.3.1-dev | 13.3.1 (git) | 4.4.0 | 2.43 | 8.5.0 | 2.43 | Bleeding edge GCC 13 series from git | +| 14.2.1-dev | 14.2.1 (git) | 4.4.0 | 2.43 | 8.5.0 | 2.43 | Bleeding edge GCC 14 series from git | +| 15.0.0-dev | 15.0.0 (git) | 4.4.0 | 2.43 | 8.5.0 | 2.43 | Bleeding edge GCC 15 series from git | +| gccrs-dev | 14.x | 4.4.0 | 2.43 | 8.5.0 | 2.43 | GCC fork for development of the GCCRS Rust compiler | +| rustc-dev | 14.x | 4.4.0 | 2.43 | 8.5.0 | 2.43 | GCC fork for development of the libgccjit rustc GCC codegen | The **stable** profile is the primary, widely tested target for KallistiOS, and is the most recent toolchain profile known to work with all example programs. diff --git a/utils/dc-chain/patches/gcc-11.4.0-kos.diff b/utils/dc-chain/patches/gcc-11.5.0-kos.diff similarity index 73% rename from utils/dc-chain/patches/gcc-11.4.0-kos.diff rename to utils/dc-chain/patches/gcc-11.5.0-kos.diff index b05d6d5d..4dc35670 100644 --- a/utils/dc-chain/patches/gcc-11.4.0-kos.diff +++ b/utils/dc-chain/patches/gcc-11.5.0-kos.diff @@ -1,6 +1,6 @@ -diff --color -ruN gcc-11.4.0/gcc/config/sh/sh-c.c gcc-11.4.0-kos/gcc/config/sh/sh-c.c ---- gcc-11.4.0/gcc/config/sh/sh-c.c 2023-06-05 16:36:14.199287582 -0500 -+++ gcc-11.4.0-kos/gcc/config/sh/sh-c.c 2023-06-05 16:36:16.723296050 -0500 +diff --color -ruN gcc-11.5.0/gcc/config/sh/sh-c.c gcc-11.5.0-kos/gcc/config/sh/sh-c.c +--- gcc-11.5.0/gcc/config/sh/sh-c.c 2023-06-05 16:36:14.199287582 -0500 ++++ gcc-11.5.0-kos/gcc/config/sh/sh-c.c 2023-06-05 16:36:16.723296050 -0500 @@ -141,4 +141,11 @@ cpp_define_formatted (pfile, "__SH_ATOMIC_MODEL_%s__", @@ -13,9 +13,9 @@ diff --color -ruN gcc-11.4.0/gcc/config/sh/sh-c.c gcc-11.4.0-kos/gcc/config/sh/s + /* Toolchain supports setting up stack for 32MB */ + builtin_define ("__KOS_GCC_32MB__"); } -diff --color -ruN gcc-11.4.0/gcc/config/sh/sh_treg_combine.cc gcc-11.4.0-kos/gcc/config/sh/sh_treg_combine.cc ---- gcc-11.4.0/gcc/config/sh/sh_treg_combine.cc 2023-06-05 16:36:14.199287582 -0500 -+++ gcc-11.4.0-kos/gcc/config/sh/sh_treg_combine.cc 2023-06-05 16:36:16.724296054 -0500 +diff --color -ruN gcc-11.5.0/gcc/config/sh/sh_treg_combine.cc gcc-11.5.0-kos/gcc/config/sh/sh_treg_combine.cc +--- gcc-11.5.0/gcc/config/sh/sh_treg_combine.cc 2023-06-05 16:36:14.199287582 -0500 ++++ gcc-11.5.0-kos/gcc/config/sh/sh_treg_combine.cc 2023-06-05 16:36:16.724296054 -0500 @@ -37,6 +37,7 @@ #include "cfgrtl.h" #include "tree-pass.h" @@ -35,10 +35,10 @@ diff --color -ruN gcc-11.4.0/gcc/config/sh/sh_treg_combine.cc gcc-11.4.0-kos/gcc // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // RTL pass class -diff --color -ruN gcc-11.4.0/gcc/configure gcc-11.4.0-kos/gcc/configure ---- gcc-11.4.0/gcc/configure 2023-06-05 16:36:16.428295060 -0500 -+++ gcc-11.4.0-kos/gcc/configure 2023-06-05 16:36:16.726296060 -0500 -@@ -12635,7 +12635,7 @@ +diff --color -ruN gcc-11.5.0/gcc/configure gcc-11.5.0-kos/gcc/configure +--- gcc-11.5.0/gcc/configure 2023-06-05 16:36:16.428295060 -0500 ++++ gcc-11.5.0-kos/gcc/configure 2023-06-05 16:36:16.726296060 -0500 +@@ -12658,7 +12658,7 @@ target_thread_file='single' ;; aix | dce | lynx | mipssde | posix | rtems | \ @@ -47,9 +47,9 @@ diff --color -ruN gcc-11.4.0/gcc/configure gcc-11.4.0-kos/gcc/configure target_thread_file=${enable_threads} ;; *) -diff --color -ruN gcc-11.4.0/libgcc/config/sh/t-sh gcc-11.4.0-kos/libgcc/config/sh/t-sh ---- gcc-11.4.0/libgcc/config/sh/t-sh 2023-06-05 16:36:13.515285288 -0500 -+++ gcc-11.4.0-kos/libgcc/config/sh/t-sh 2023-06-05 16:36:16.726296060 -0500 +diff --color -ruN gcc-11.5.0/libgcc/config/sh/t-sh gcc-11.5.0-kos/libgcc/config/sh/t-sh +--- gcc-11.5.0/libgcc/config/sh/t-sh 2023-06-05 16:36:13.515285288 -0500 ++++ gcc-11.5.0-kos/libgcc/config/sh/t-sh 2023-06-05 16:36:16.726296060 -0500 @@ -23,6 +23,8 @@ $(LIB1ASMFUNCS_CACHE) LIB1ASMFUNCS_CACHE = _ic_invalidate _ic_invalidate_array @@ -59,9 +59,9 @@ diff --color -ruN gcc-11.4.0/libgcc/config/sh/t-sh gcc-11.4.0-kos/libgcc/config/ crt1.o: $(srcdir)/config/sh/crt1.S $(gcc_compile) -c $< -diff --color -ruN gcc-11.4.0/libgcc/configure gcc-11.4.0-kos/libgcc/configure ---- gcc-11.4.0/libgcc/configure 2023-06-05 16:36:13.547285395 -0500 -+++ gcc-11.4.0-kos/libgcc/configure 2023-06-05 16:36:16.727296064 -0500 +diff --color -ruN gcc-11.5.0/libgcc/configure gcc-11.5.0-kos/libgcc/configure +--- gcc-11.5.0/libgcc/configure 2023-06-05 16:36:13.547285395 -0500 ++++ gcc-11.5.0-kos/libgcc/configure 2023-06-05 16:36:16.727296064 -0500 @@ -5688,6 +5688,7 @@ tpf) thread_header=config/s390/gthr-tpf.h ;; vxworks) thread_header=config/gthr-vxworks.h ;; @@ -70,9 +70,9 @@ diff --color -ruN gcc-11.4.0/libgcc/configure gcc-11.4.0-kos/libgcc/configure esac -diff --color -ruN gcc-11.4.0/libobjc/configure gcc-11.4.0-kos/libobjc/configure ---- gcc-11.4.0/libobjc/configure 2023-06-05 16:36:13.230284332 -0500 -+++ gcc-11.4.0-kos/libobjc/configure 2023-06-05 16:36:16.728296067 -0500 +diff --color -ruN gcc-11.5.0/libobjc/configure gcc-11.5.0-kos/libobjc/configure +--- gcc-11.5.0/libobjc/configure 2023-06-05 16:36:13.230284332 -0500 ++++ gcc-11.5.0-kos/libobjc/configure 2023-06-05 16:36:16.728296067 -0500 @@ -2917,11 +2917,9 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -85,9 +85,9 @@ diff --color -ruN gcc-11.4.0/libobjc/configure gcc-11.4.0-kos/libobjc/configure ; return 0; } -diff --color -ruN gcc-11.4.0/libobjc/Makefile.in gcc-11.4.0-kos/libobjc/Makefile.in ---- gcc-11.4.0/libobjc/Makefile.in 2023-06-05 16:36:13.229284328 -0500 -+++ gcc-11.4.0-kos/libobjc/Makefile.in 2023-06-05 16:36:16.728296067 -0500 +diff --color -ruN gcc-11.5.0/libobjc/Makefile.in gcc-11.5.0-kos/libobjc/Makefile.in +--- gcc-11.5.0/libobjc/Makefile.in 2023-06-05 16:36:13.229284328 -0500 ++++ gcc-11.5.0-kos/libobjc/Makefile.in 2023-06-05 16:36:16.728296067 -0500 @@ -308,14 +308,16 @@ $(srcdir)/aclocal.m4: @MAINT@ $(aclocal_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) @@ -118,9 +118,9 @@ diff --color -ruN gcc-11.4.0/libobjc/Makefile.in gcc-11.4.0-kos/libobjc/Makefile mostlyclean: -$(LIBTOOL_CLEAN) rm -f libobjc$(libsuffix).la libobjc_gc$(libsuffix).la *.lo -diff --color -ruN gcc-11.4.0/libstdc++-v3/config/cpu/sh/atomicity.h gcc-11.4.0-kos/libstdc++-v3/config/cpu/sh/atomicity.h ---- gcc-11.4.0/libstdc++-v3/config/cpu/sh/atomicity.h 2023-06-05 16:36:13.754286089 -0500 -+++ gcc-11.4.0-kos/libstdc++-v3/config/cpu/sh/atomicity.h 2023-06-05 16:36:16.728296067 -0500 +diff --color -ruN gcc-11.5.0/libstdc++-v3/config/cpu/sh/atomicity.h gcc-11.5.0-kos/libstdc++-v3/config/cpu/sh/atomicity.h +--- gcc-11.5.0/libstdc++-v3/config/cpu/sh/atomicity.h 2023-06-05 16:36:13.754286089 -0500 ++++ gcc-11.5.0-kos/libstdc++-v3/config/cpu/sh/atomicity.h 2023-06-05 16:36:16.728296067 -0500 @@ -22,14 +22,40 @@ // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see // <http://www.gnu.org/licenses/>. @@ -171,10 +171,10 @@ diff --color -ruN gcc-11.4.0/libstdc++-v3/config/cpu/sh/atomicity.h gcc-11.4.0-k + +_GLIBCXX_END_NAMESPACE_VERSION +} // namespace -diff --color -ruN gcc-11.4.0/libstdc++-v3/configure gcc-11.4.0-kos/libstdc++-v3/configure ---- gcc-11.4.0/libstdc++-v3/configure 2023-06-05 16:36:14.088287210 -0500 -+++ gcc-11.4.0-kos/libstdc++-v3/configure 2023-06-05 16:36:16.733296084 -0500 -@@ -15753,6 +15753,7 @@ +diff --color -ruN gcc-11.5.0/libstdc++-v3/configure gcc-11.5.0-kos/libstdc++-v3/configure +--- gcc-11.5.0/libstdc++-v3/configure 2023-06-05 16:36:14.088287210 -0500 ++++ gcc-11.5.0-kos/libstdc++-v3/configure 2023-06-05 16:36:16.733296084 -0500 +@@ -15769,6 +15769,7 @@ tpf) thread_header=config/s390/gthr-tpf.h ;; vxworks) thread_header=config/gthr-vxworks.h ;; win32) thread_header=config/i386/gthr-win32.h ;; diff --git a/utils/dc-chain/patches/gcc-15.0.0-kos.diff b/utils/dc-chain/patches/gcc-15.0.0-kos.diff index e10d57d0..b937ea5d 100644 --- a/utils/dc-chain/patches/gcc-15.0.0-kos.diff +++ b/utils/dc-chain/patches/gcc-15.0.0-kos.diff @@ -16,7 +16,7 @@ diff -ruN gcc-15.0.0/gcc/config/sh/sh-c.cc gcc-15.0.0-kos/gcc/config/sh/sh-c.cc diff -ruN gcc-15.0.0/gcc/configure gcc-15.0.0-kos/gcc/configure --- gcc-15.0.0/gcc/configure 2024-01-04 16:01:33.801051764 -0600 +++ gcc-15.0.0-kos/gcc/configure 2024-01-04 16:01:42.913094480 -0600 -@@ -13220,7 +13220,7 @@ +@@ -13051,7 +13051,7 @@ target_thread_file='single' ;; aix | dce | lynx | mipssde | posix | rtems | \ @@ -40,7 +40,7 @@ diff -ruN gcc-15.0.0/libgcc/config/sh/t-sh gcc-15.0.0-kos/libgcc/config/sh/t-sh diff -ruN gcc-15.0.0/libgcc/configure gcc-15.0.0-kos/libgcc/configure --- gcc-15.0.0/libgcc/configure 2024-01-04 16:01:37.139067412 -0600 +++ gcc-15.0.0-kos/libgcc/configure 2024-01-04 16:01:42.914094485 -0600 -@@ -5763,6 +5763,7 @@ +@@ -5731,6 +5731,7 @@ tpf) thread_header=config/s390/gthr-tpf.h ;; vxworks) thread_header=config/gthr-vxworks.h ;; win32) thread_header=config/i386/gthr-win32.h ;; diff --git a/utils/dc-chain/profiles/profile.10.5.0.mk b/utils/dc-chain/profiles/profile.10.5.0.mk index 4cf8a4fd..36134d8f 100644 --- a/utils/dc-chain/profiles/profile.10.5.0.mk +++ b/utils/dc-chain/profiles/profile.10.5.0.mk @@ -2,7 +2,7 @@ # This file is part of KallistiOS. # Toolchain versions for SH -sh_binutils_ver=2.41 +sh_binutils_ver=2.43 sh_gcc_ver=10.5.0 newlib_ver=4.3.0.20230120 gdb_ver=15.1 @@ -10,7 +10,7 @@ gdb_ver=15.1 # Toolchain for ARM # The ARM version of gcc/binutils is separated as support for the ARM7DI core # used in the Dreamcast's AICA is not available in versions of GCC beyond 8.5.0. -arm_binutils_ver=2.41 +arm_binutils_ver=2.43 arm_gcc_ver=8.5.0 # GCC custom dependencies diff --git a/utils/dc-chain/profiles/profile.11.4.0.mk b/utils/dc-chain/profiles/profile.11.5.0.mk similarity index 94% rename from utils/dc-chain/profiles/profile.11.4.0.mk rename to utils/dc-chain/profiles/profile.11.5.0.mk index 34266f51..c0427f55 100644 --- a/utils/dc-chain/profiles/profile.11.4.0.mk +++ b/utils/dc-chain/profiles/profile.11.5.0.mk @@ -2,15 +2,15 @@ # This file is part of KallistiOS. # Toolchain versions for SH -sh_binutils_ver=2.41 -sh_gcc_ver=11.4.0 +sh_binutils_ver=2.43 +sh_gcc_ver=11.5.0 newlib_ver=4.3.0.20230120 gdb_ver=15.1 # Toolchain for ARM # The ARM version of gcc/binutils is separated as support for the ARM7DI core # used in the Dreamcast's AICA is not available in versions of GCC beyond 8.5.0. -arm_binutils_ver=2.41 +arm_binutils_ver=2.43 arm_gcc_ver=8.5.0 # GCC custom dependencies diff --git a/utils/dc-chain/profiles/profile.12.4.0.mk b/utils/dc-chain/profiles/profile.12.4.0.mk index f4628cd9..283f7ffd 100644 --- a/utils/dc-chain/profiles/profile.12.4.0.mk +++ b/utils/dc-chain/profiles/profile.12.4.0.mk @@ -2,7 +2,7 @@ # This file is part of KallistiOS. # Toolchain versions for SH -sh_binutils_ver=2.41 +sh_binutils_ver=2.43 sh_gcc_ver=12.4.0 newlib_ver=4.3.0.20230120 gdb_ver=15.1 @@ -10,7 +10,7 @@ gdb_ver=15.1 # Toolchain for ARM # The ARM version of gcc/binutils is separated as support for the ARM7DI core # used in the Dreamcast's AICA is not available in versions of GCC beyond 8.5.0. -arm_binutils_ver=2.41 +arm_binutils_ver=2.43 arm_gcc_ver=8.5.0 # GCC custom dependencies diff --git a/utils/dc-chain/profiles/profile.13.3.0.mk b/utils/dc-chain/profiles/profile.13.3.0.mk index 9e32135f..ab3d9903 100644 --- a/utils/dc-chain/profiles/profile.13.3.0.mk +++ b/utils/dc-chain/profiles/profile.13.3.0.mk @@ -2,7 +2,7 @@ # This file is part of KallistiOS. # Toolchain versions for SH -sh_binutils_ver=2.42 +sh_binutils_ver=2.43 sh_gcc_ver=13.3.0 newlib_ver=4.4.0.20231231 gdb_ver=15.1 @@ -10,7 +10,7 @@ gdb_ver=15.1 # Toolchain for ARM # The ARM version of gcc/binutils is separated as support for the ARM7DI core # used in the Dreamcast's AICA is not available in versions of GCC beyond 8.5.0. -arm_binutils_ver=2.42 +arm_binutils_ver=2.43 arm_gcc_ver=8.5.0 # GCC custom dependencies diff --git a/utils/dc-chain/profiles/profile.13.3.1-dev.mk b/utils/dc-chain/profiles/profile.13.3.1-dev.mk index c383442e..fb13ea9e 100644 --- a/utils/dc-chain/profiles/profile.13.3.1-dev.mk +++ b/utils/dc-chain/profiles/profile.13.3.1-dev.mk @@ -9,7 +9,7 @@ ############################################################################### # Toolchain versions for SH -sh_binutils_ver=2.42 +sh_binutils_ver=2.43 sh_gcc_ver=13.3.1 newlib_ver=4.4.0.20231231 gdb_ver=15.1 @@ -22,7 +22,7 @@ sh_gcc_git_branch=releases/gcc-13 # Toolchain for ARM # The ARM version of gcc/binutils is separated as support for the ARM7DI core # used in the Dreamcast's AICA is not available in versions of GCC beyond 8.5.0. -arm_binutils_ver=2.42 +arm_binutils_ver=2.43 arm_gcc_ver=8.5.0 # GCC custom dependencies diff --git a/utils/dc-chain/profiles/profile.14.2.0.mk b/utils/dc-chain/profiles/profile.14.2.0.mk index c7e015e2..6f599b84 100644 --- a/utils/dc-chain/profiles/profile.14.2.0.mk +++ b/utils/dc-chain/profiles/profile.14.2.0.mk @@ -2,7 +2,7 @@ # This file is part of KallistiOS. # Toolchain versions for SH -sh_binutils_ver=2.42 +sh_binutils_ver=2.43 sh_gcc_ver=14.2.0 newlib_ver=4.4.0.20231231 gdb_ver=15.1 @@ -10,7 +10,7 @@ gdb_ver=15.1 # Toolchain for ARM # The ARM version of gcc/binutils is separated as support for the ARM7DI core # used in the Dreamcast's AICA is not available in versions of GCC beyond 8.5.0. -arm_binutils_ver=2.42 +arm_binutils_ver=2.43 arm_gcc_ver=8.5.0 # GCC custom dependencies diff --git a/utils/dc-chain/profiles/profile.14.2.1-dev.mk b/utils/dc-chain/profiles/profile.14.2.1-dev.mk index 9fd615d5..5bea7f27 100644 --- a/utils/dc-chain/profiles/profile.14.2.1-dev.mk +++ b/utils/dc-chain/profiles/profile.14.2.1-dev.mk @@ -9,7 +9,7 @@ ############################################################################### # Toolchain versions for SH -sh_binutils_ver=2.42 +sh_binutils_ver=2.43 sh_gcc_ver=14.2.1 newlib_ver=4.4.0.20231231 gdb_ver=15.1 @@ -22,7 +22,7 @@ sh_gcc_git_branch=releases/gcc-14 # Toolchain for ARM # The ARM version of gcc/binutils is separated as support for the ARM7DI core # used in the Dreamcast's AICA is not available in versions of GCC beyond 8.5.0. -arm_binutils_ver=2.42 +arm_binutils_ver=2.43 arm_gcc_ver=8.5.0 # GCC custom dependencies diff --git a/utils/dc-chain/profiles/profile.15.0.0-dev.mk b/utils/dc-chain/profiles/profile.15.0.0-dev.mk index ffd0dbde..9e5942c7 100644 --- a/utils/dc-chain/profiles/profile.15.0.0-dev.mk +++ b/utils/dc-chain/profiles/profile.15.0.0-dev.mk @@ -9,7 +9,7 @@ ############################################################################### # Toolchain versions for SH -sh_binutils_ver=2.42 +sh_binutils_ver=2.43 sh_gcc_ver=15.0.0 newlib_ver=4.4.0.20231231 gdb_ver=15.1 @@ -22,7 +22,7 @@ sh_gcc_git_branch=master # Toolchain for ARM # The ARM version of gcc/binutils is separated as support for the ARM7DI core # used in the Dreamcast's AICA is not available in versions of GCC beyond 8.5.0. -arm_binutils_ver=2.42 +arm_binutils_ver=2.43 arm_gcc_ver=8.5.0 # GCC custom dependencies diff --git a/utils/dc-chain/profiles/profile.gccrs-dev.mk b/utils/dc-chain/profiles/profile.gccrs-dev.mk index 1f14127e..148c11d9 100644 --- a/utils/dc-chain/profiles/profile.gccrs-dev.mk +++ b/utils/dc-chain/profiles/profile.gccrs-dev.mk @@ -9,7 +9,7 @@ ############################################################################### # Toolchain versions for SH -sh_binutils_ver=2.42 +sh_binutils_ver=2.43 sh_gcc_ver=rs newlib_ver=4.4.0.20231231 gdb_ver=15.1 @@ -22,7 +22,7 @@ sh_gcc_git_branch=master # Toolchain for ARM # The ARM version of gcc/binutils is separated as support for the ARM7DI core # used in the Dreamcast's AICA is not available in versions of GCC beyond 8.5.0. -arm_binutils_ver=2.42 +arm_binutils_ver=2.43 arm_gcc_ver=8.5.0 # GCC custom dependencies diff --git a/utils/dc-chain/profiles/profile.rustc-dev.mk b/utils/dc-chain/profiles/profile.rustc-dev.mk index 7a472357..b2f96aa4 100644 --- a/utils/dc-chain/profiles/profile.rustc-dev.mk +++ b/utils/dc-chain/profiles/profile.rustc-dev.mk @@ -9,7 +9,7 @@ ############################################################################### # Toolchain versions for SH -sh_binutils_ver=2.42 +sh_binutils_ver=2.43 sh_gcc_ver=rustc newlib_ver=4.4.0.20231231 gdb_ver=15.1 @@ -22,7 +22,7 @@ sh_gcc_git_branch=master # Toolchain for ARM # The ARM version of gcc/binutils is separated as support for the ARM7DI core # used in the Dreamcast's AICA is not available in versions of GCC beyond 8.5.0. -arm_binutils_ver=2.42 +arm_binutils_ver=2.43 arm_gcc_ver=8.5.0 # GCC custom dependencies diff --git a/utils/dc-chain/profiles/profile.stable.mk b/utils/dc-chain/profiles/profile.stable.mk index 8072b2da..8dd0b74e 100644 --- a/utils/dc-chain/profiles/profile.stable.mk +++ b/utils/dc-chain/profiles/profile.stable.mk @@ -2,7 +2,7 @@ # This file is part of KallistiOS. # Toolchain versions for SH -sh_binutils_ver=2.41 +sh_binutils_ver=2.43 sh_gcc_ver=13.2.0 newlib_ver=4.3.0.20230120 gdb_ver=15.1 @@ -10,7 +10,7 @@ gdb_ver=15.1 # Toolchain for ARM # The ARM version of gcc/binutils is separated as support for the ARM7DI core # used in the Dreamcast's AICA is not available in versions of GCC beyond 8.5.0. -arm_binutils_ver=2.41 +arm_binutils_ver=2.43 arm_gcc_ver=8.5.0 # GCC custom dependencies hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: quzar <qu...@us...> - 2024-08-06 06:40:19
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 90f95e840f1bbfcb03c71240250bf1c3b84219d2 (commit) from 013fef38184d6d8517a42e8acea8f6b9558e33d9 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 90f95e840f1bbfcb03c71240250bf1c3b84219d2 Author: Falco Girgis <gyr...@gm...> Date: Tue Aug 6 01:38:34 2024 -0500 Added declaration for nanosleep to time.h. (#691) Since we don't define _POSIX_TIMERS (since we don't suppor them (yet)), Newlib does not provide us with a protype for nanosleep(). I've added it to KOS's time.h extension header. ----------------------------------------------------------------------- Summary of changes: include/kos/time.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/kos/time.h b/include/kos/time.h index fe6f2ddc..5fa1f7ba 100644 --- a/include/kos/time.h +++ b/include/kos/time.h @@ -113,12 +113,14 @@ extern __time_t timegm(struct tm *timeptr); #endif /* Explicitly provided function declarations for POSIX clock API, since -getting them from Newlib requires supporting the rest of the _POSIX_TIMERS -API, which is not implemented yet. */ + getting them from Newlib requires supporting the rest of the _POSIX_TIMERS + API, which is not implemented yet. */ extern int clock_settime(__clockid_t clock_id, const struct timespec *ts); extern int clock_gettime(__clockid_t clock_id, struct timespec *ts); extern int clock_getres(__clockid_t clock_id, struct timespec *res); +extern int nanosleep(const struct timespec *req, struct timespec *rem); + #endif /** \endcond */ hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: falcovorbis <fal...@us...> - 2024-08-02 03:44:35
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 013fef38184d6d8517a42e8acea8f6b9558e33d9 (commit) from c8aef24a4e9674e77cb8b6854c652cf68e3eac40 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 013fef38184d6d8517a42e8acea8f6b9558e33d9 Author: darcagn <da...@pr...> Date: Thu Aug 1 22:44:05 2024 -0500 * dc-chain: Update 14.1.0 profile to GCC 14.2.0 (#689) * dc-chain: Update 14.1.1-dev profile to GCC 14.2.1 (git) ----------------------------------------------------------------------- Summary of changes: utils/dc-chain/Makefile.default.cfg | 4 +- utils/dc-chain/README.md | 4 +- .../{gcc-14.1.0-kos.diff => gcc-14.2.0-kos.diff} | 48 +++++++++++----------- .../{gcc-14.1.1-kos.diff => gcc-14.2.1-kos.diff} | 48 +++++++++++----------- .../{profile.14.1.0.mk => profile.14.2.0.mk} | 2 +- ...profile.14.1.1-dev.mk => profile.14.2.1-dev.mk} | 4 +- 6 files changed, 55 insertions(+), 55 deletions(-) rename utils/dc-chain/patches/{gcc-14.1.0-kos.diff => gcc-14.2.0-kos.diff} (75%) rename utils/dc-chain/patches/{gcc-14.1.1-kos.diff => gcc-14.2.1-kos.diff} (74%) rename utils/dc-chain/profiles/{profile.14.1.0.mk => profile.14.2.0.mk} (98%) rename utils/dc-chain/profiles/{profile.14.1.1-dev.mk => profile.14.2.1-dev.mk} (94%) diff --git a/utils/dc-chain/Makefile.default.cfg b/utils/dc-chain/Makefile.default.cfg index d877a823..d539b43e 100644 --- a/utils/dc-chain/Makefile.default.cfg +++ b/utils/dc-chain/Makefile.default.cfg @@ -15,10 +15,10 @@ # - 12.4.0: Latest release in the GCC 12 series, released 2023-06-20. # - stable: Tested stable; based on GCC 13.2.0, released 2023-07-27. # - 13.3.0: Latest release in the GCC 13 series, released 2024-05-21. -# - 14.1.0: Latest release in the GCC 14 series, released 2024-05-07. +# - 14.2.0: Latest release in the GCC 14 series, released 2024-08-01. # Development versions: # - 13.3.1-dev Bleeding edge GCC 13 series from git. -# - 14.1.1-dev Bleeding edge GCC 14 series from git. +# - 14.2.1-dev Bleeding edge GCC 14 series from git. # - 15.0.0-dev Bleeding edge GCC 15 series from git. # - gccrs-dev: GCC fork for development of the GCCRS Rust compiler. # - rustc-dev: GCC fork for development of the libgccjit rustc GCC codegen. diff --git a/utils/dc-chain/README.md b/utils/dc-chain/README.md index 02a54190..7f645d11 100644 --- a/utils/dc-chain/README.md +++ b/utils/dc-chain/README.md @@ -105,9 +105,9 @@ The following toolchain profiles are available for users to select in | 12.3.0 | 12.3.0 | 4.3.0 | 2.41 | 8.5.0 | 2.41 | Latest release in the GCC 12 series, released 2023-05-08 | | **stable** | **13.2.0** | **4.3.0** | **2.41** | **8.5.0** | **2.41** | **Tested stable; based on GCC 13.2.0, released 2023-07-27** | | 13.3.0 | 13.3.0 | 4.4.0 | 2.42 | 8.5.0 | 2.42 | Latest release in the GCC 13 series, released 2024-05-21 | -| 14.1.0 | 14.1.0 | 4.4.0 | 2.42 | 8.5.0 | 2.42 | Latest release in the GCC 14 series, released 2024-05-07 | +| 14.2.0 | 14.2.0 | 4.4.0 | 2.42 | 8.5.0 | 2.42 | Latest release in the GCC 14 series, released 2024-08-01 | | 13.3.1-dev | 13.3.1 (git) | 4.4.0 | 2.42 | 8.5.0 | 2.42 | Bleeding edge GCC 13 series from git | -| 14.1.1-dev | 14.0.1 (git) | 4.4.0 | 2.42 | 8.5.0 | 2.42 | Bleeding edge GCC 14 series from git | +| 14.2.1-dev | 14.2.1 (git) | 4.4.0 | 2.42 | 8.5.0 | 2.42 | Bleeding edge GCC 14 series from git | | 15.0.0-dev | 15.0.0 (git) | 4.4.0 | 2.42 | 8.5.0 | 2.42 | Bleeding edge GCC 15 series from git | | gccrs-dev | 14.x | 4.4.0 | 2.42 | 8.5.0 | 2.42 | GCC fork for development of the GCCRS Rust compiler | | rustc-dev | 14.x | 4.4.0 | 2.42 | 8.5.0 | 2.42 | GCC fork for development of the libgccjit rustc GCC codegen | diff --git a/utils/dc-chain/patches/gcc-14.1.0-kos.diff b/utils/dc-chain/patches/gcc-14.2.0-kos.diff similarity index 75% rename from utils/dc-chain/patches/gcc-14.1.0-kos.diff rename to utils/dc-chain/patches/gcc-14.2.0-kos.diff index ffb4f677..d76c0b44 100644 --- a/utils/dc-chain/patches/gcc-14.1.0-kos.diff +++ b/utils/dc-chain/patches/gcc-14.2.0-kos.diff @@ -1,6 +1,6 @@ -diff -ruN gcc-14.1.0/gcc/config/sh/sh-c.cc gcc-14.1.0-kos/gcc/config/sh/sh-c.cc ---- gcc-14.1.0/gcc/config/sh/sh-c.cc 2024-01-04 16:01:33.790051712 -0600 -+++ gcc-14.1.0-kos/gcc/config/sh/sh-c.cc 2024-01-04 16:01:42.910094466 -0600 +diff -ruN gcc-14.2.0/gcc/config/sh/sh-c.cc gcc-14.2.0-kos/gcc/config/sh/sh-c.cc +--- gcc-14.2.0/gcc/config/sh/sh-c.cc 2024-01-04 16:01:33.790051712 -0600 ++++ gcc-14.2.0-kos/gcc/config/sh/sh-c.cc 2024-01-04 16:01:42.910094466 -0600 @@ -141,4 +141,11 @@ cpp_define_formatted (pfile, "__SH_ATOMIC_MODEL_%s__", @@ -13,9 +13,9 @@ diff -ruN gcc-14.1.0/gcc/config/sh/sh-c.cc gcc-14.1.0-kos/gcc/config/sh/sh-c.cc + /* Toolchain supports setting up stack for 32MB */ + builtin_define ("__KOS_GCC_32MB__"); } -diff -ruN gcc-14.1.0/gcc/configure gcc-14.1.0-kos/gcc/configure ---- gcc-14.1.0/gcc/configure 2024-01-04 16:01:33.801051764 -0600 -+++ gcc-14.1.0-kos/gcc/configure 2024-01-04 16:01:42.913094480 -0600 +diff -ruN gcc-14.2.0/gcc/configure gcc-14.2.0-kos/gcc/configure +--- gcc-14.2.0/gcc/configure 2024-01-04 16:01:33.801051764 -0600 ++++ gcc-14.2.0-kos/gcc/configure 2024-01-04 16:01:42.913094480 -0600 @@ -13220,7 +13220,7 @@ target_thread_file='single' ;; @@ -25,9 +25,9 @@ diff -ruN gcc-14.1.0/gcc/configure gcc-14.1.0-kos/gcc/configure target_thread_file=${enable_threads} ;; *) -diff -ruN gcc-14.1.0/libgcc/config/sh/t-sh gcc-14.1.0-kos/libgcc/config/sh/t-sh ---- gcc-14.1.0/libgcc/config/sh/t-sh 2024-01-04 16:01:37.134067388 -0600 -+++ gcc-14.1.0-kos/libgcc/config/sh/t-sh 2024-01-04 16:01:42.914094485 -0600 +diff -ruN gcc-14.2.0/libgcc/config/sh/t-sh gcc-14.2.0-kos/libgcc/config/sh/t-sh +--- gcc-14.2.0/libgcc/config/sh/t-sh 2024-01-04 16:01:37.134067388 -0600 ++++ gcc-14.2.0-kos/libgcc/config/sh/t-sh 2024-01-04 16:01:42.914094485 -0600 @@ -23,6 +23,8 @@ $(LIB1ASMFUNCS_CACHE) LIB1ASMFUNCS_CACHE = _ic_invalidate _ic_invalidate_array @@ -37,9 +37,9 @@ diff -ruN gcc-14.1.0/libgcc/config/sh/t-sh gcc-14.1.0-kos/libgcc/config/sh/t-sh crt1.o: $(srcdir)/config/sh/crt1.S $(gcc_compile) -c $< -diff -ruN gcc-14.1.0/libgcc/configure gcc-14.1.0-kos/libgcc/configure ---- gcc-14.1.0/libgcc/configure 2024-01-04 16:01:37.139067412 -0600 -+++ gcc-14.1.0-kos/libgcc/configure 2024-01-04 16:01:42.914094485 -0600 +diff -ruN gcc-14.2.0/libgcc/configure gcc-14.2.0-kos/libgcc/configure +--- gcc-14.2.0/libgcc/configure 2024-01-04 16:01:37.139067412 -0600 ++++ gcc-14.2.0-kos/libgcc/configure 2024-01-04 16:01:42.914094485 -0600 @@ -5763,6 +5763,7 @@ tpf) thread_header=config/s390/gthr-tpf.h ;; vxworks) thread_header=config/gthr-vxworks.h ;; @@ -48,9 +48,9 @@ diff -ruN gcc-14.1.0/libgcc/configure gcc-14.1.0-kos/libgcc/configure mcf) thread_header=config/i386/gthr-mcf.h ;; esac -diff -ruN gcc-14.1.0/libobjc/configure gcc-14.1.0-kos/libobjc/configure ---- gcc-14.1.0/libobjc/configure 2024-01-04 16:01:37.499069099 -0600 -+++ gcc-14.1.0-kos/libobjc/configure 2024-01-04 16:01:42.915094489 -0600 +diff -ruN gcc-14.2.0/libobjc/configure gcc-14.2.0-kos/libobjc/configure +--- gcc-14.2.0/libobjc/configure 2024-01-04 16:01:37.499069099 -0600 ++++ gcc-14.2.0-kos/libobjc/configure 2024-01-04 16:01:42.915094489 -0600 @@ -2924,11 +2924,9 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -63,9 +63,9 @@ diff -ruN gcc-14.1.0/libobjc/configure gcc-14.1.0-kos/libobjc/configure ; return 0; } -diff -ruN gcc-14.1.0/libobjc/Makefile.in gcc-14.1.0-kos/libobjc/Makefile.in ---- gcc-14.1.0/libobjc/Makefile.in 2024-01-04 16:01:37.499069099 -0600 -+++ gcc-14.1.0-kos/libobjc/Makefile.in 2024-01-04 16:01:42.915094489 -0600 +diff -ruN gcc-14.2.0/libobjc/Makefile.in gcc-14.2.0-kos/libobjc/Makefile.in +--- gcc-14.2.0/libobjc/Makefile.in 2024-01-04 16:01:37.499069099 -0600 ++++ gcc-14.2.0-kos/libobjc/Makefile.in 2024-01-04 16:01:42.915094489 -0600 @@ -308,14 +308,16 @@ $(srcdir)/aclocal.m4: @MAINT@ $(aclocal_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) @@ -96,9 +96,9 @@ diff -ruN gcc-14.1.0/libobjc/Makefile.in gcc-14.1.0-kos/libobjc/Makefile.in mostlyclean: -$(LIBTOOL_CLEAN) rm -f libobjc$(libsuffix).la libobjc_gc$(libsuffix).la *.lo -diff -ruN gcc-14.1.0/libstdc++-v3/config/cpu/sh/atomicity.h gcc-14.1.0-kos/libstdc++-v3/config/cpu/sh/atomicity.h ---- gcc-14.1.0/libstdc++-v3/config/cpu/sh/atomicity.h 2024-01-04 16:01:37.608069611 -0600 -+++ gcc-14.1.0-kos/libstdc++-v3/config/cpu/sh/atomicity.h 2024-01-04 16:01:42.916094494 -0600 +diff -ruN gcc-14.2.0/libstdc++-v3/config/cpu/sh/atomicity.h gcc-14.2.0-kos/libstdc++-v3/config/cpu/sh/atomicity.h +--- gcc-14.2.0/libstdc++-v3/config/cpu/sh/atomicity.h 2024-01-04 16:01:37.608069611 -0600 ++++ gcc-14.2.0-kos/libstdc++-v3/config/cpu/sh/atomicity.h 2024-01-04 16:01:42.916094494 -0600 @@ -22,14 +22,40 @@ // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see // <http://www.gnu.org/licenses/>. @@ -149,9 +149,9 @@ diff -ruN gcc-14.1.0/libstdc++-v3/config/cpu/sh/atomicity.h gcc-14.1.0-kos/libst + +_GLIBCXX_END_NAMESPACE_VERSION +} // namespace -diff -ruN gcc-14.1.0/libstdc++-v3/configure gcc-14.1.0-kos/libstdc++-v3/configure ---- gcc-14.1.0/libstdc++-v3/configure 2024-01-04 16:01:37.616069648 -0600 -+++ gcc-14.1.0-kos/libstdc++-v3/configure 2024-01-04 16:01:42.919094508 -0600 +diff -ruN gcc-14.2.0/libstdc++-v3/configure gcc-14.2.0-kos/libstdc++-v3/configure +--- gcc-14.2.0/libstdc++-v3/configure 2024-01-04 16:01:37.616069648 -0600 ++++ gcc-14.2.0-kos/libstdc++-v3/configure 2024-01-04 16:01:42.919094508 -0600 @@ -15974,6 +15974,7 @@ tpf) thread_header=config/s390/gthr-tpf.h ;; vxworks) thread_header=config/gthr-vxworks.h ;; diff --git a/utils/dc-chain/patches/gcc-14.1.1-kos.diff b/utils/dc-chain/patches/gcc-14.2.1-kos.diff similarity index 74% rename from utils/dc-chain/patches/gcc-14.1.1-kos.diff rename to utils/dc-chain/patches/gcc-14.2.1-kos.diff index c4fa40a7..a9033017 100644 --- a/utils/dc-chain/patches/gcc-14.1.1-kos.diff +++ b/utils/dc-chain/patches/gcc-14.2.1-kos.diff @@ -1,6 +1,6 @@ -diff -ruN gcc-14.1.1/gcc/config/sh/sh-c.cc gcc-14.1.1-kos/gcc/config/sh/sh-c.cc ---- gcc-14.1.1/gcc/config/sh/sh-c.cc 2024-01-04 16:01:33.790051712 -0600 -+++ gcc-14.1.1-kos/gcc/config/sh/sh-c.cc 2024-01-04 16:01:42.910094466 -0600 +diff -ruN gcc-14.2.1/gcc/config/sh/sh-c.cc gcc-14.2.1-kos/gcc/config/sh/sh-c.cc +--- gcc-14.2.1/gcc/config/sh/sh-c.cc 2024-01-04 16:01:33.790051712 -0600 ++++ gcc-14.2.1-kos/gcc/config/sh/sh-c.cc 2024-01-04 16:01:42.910094466 -0600 @@ -141,4 +141,11 @@ cpp_define_formatted (pfile, "__SH_ATOMIC_MODEL_%s__", @@ -13,9 +13,9 @@ diff -ruN gcc-14.1.1/gcc/config/sh/sh-c.cc gcc-14.1.1-kos/gcc/config/sh/sh-c.cc + /* Toolchain supports setting up stack for 32MB */ + builtin_define ("__KOS_GCC_32MB__"); } -diff -ruN gcc-14.1.1/gcc/configure gcc-14.1.1-kos/gcc/configure ---- gcc-14.1.1/gcc/configure 2024-01-04 16:01:33.801051764 -0600 -+++ gcc-14.1.1-kos/gcc/configure 2024-01-04 16:01:42.913094480 -0600 +diff -ruN gcc-14.2.1/gcc/configure gcc-14.2.1-kos/gcc/configure +--- gcc-14.2.1/gcc/configure 2024-01-04 16:01:33.801051764 -0600 ++++ gcc-14.2.1-kos/gcc/configure 2024-01-04 16:01:42.913094480 -0600 @@ -13220,7 +13220,7 @@ target_thread_file='single' ;; @@ -25,9 +25,9 @@ diff -ruN gcc-14.1.1/gcc/configure gcc-14.1.1-kos/gcc/configure target_thread_file=${enable_threads} ;; *) -diff -ruN gcc-14.1.1/libgcc/config/sh/t-sh gcc-14.1.1-kos/libgcc/config/sh/t-sh ---- gcc-14.1.1/libgcc/config/sh/t-sh 2024-01-04 16:01:37.134067388 -0600 -+++ gcc-14.1.1-kos/libgcc/config/sh/t-sh 2024-01-04 16:01:42.914094485 -0600 +diff -ruN gcc-14.2.1/libgcc/config/sh/t-sh gcc-14.2.1-kos/libgcc/config/sh/t-sh +--- gcc-14.2.1/libgcc/config/sh/t-sh 2024-01-04 16:01:37.134067388 -0600 ++++ gcc-14.2.1-kos/libgcc/config/sh/t-sh 2024-01-04 16:01:42.914094485 -0600 @@ -23,6 +23,8 @@ $(LIB1ASMFUNCS_CACHE) LIB1ASMFUNCS_CACHE = _ic_invalidate _ic_invalidate_array @@ -37,9 +37,9 @@ diff -ruN gcc-14.1.1/libgcc/config/sh/t-sh gcc-14.1.1-kos/libgcc/config/sh/t-sh crt1.o: $(srcdir)/config/sh/crt1.S $(gcc_compile) -c $< -diff -ruN gcc-14.1.1/libgcc/configure gcc-14.1.1-kos/libgcc/configure ---- gcc-14.1.1/libgcc/configure 2024-01-04 16:01:37.139067412 -0600 -+++ gcc-14.1.1-kos/libgcc/configure 2024-01-04 16:01:42.914094485 -0600 +diff -ruN gcc-14.2.1/libgcc/configure gcc-14.2.1-kos/libgcc/configure +--- gcc-14.2.1/libgcc/configure 2024-01-04 16:01:37.139067412 -0600 ++++ gcc-14.2.1-kos/libgcc/configure 2024-01-04 16:01:42.914094485 -0600 @@ -5763,6 +5763,7 @@ tpf) thread_header=config/s390/gthr-tpf.h ;; vxworks) thread_header=config/gthr-vxworks.h ;; @@ -48,9 +48,9 @@ diff -ruN gcc-14.1.1/libgcc/configure gcc-14.1.1-kos/libgcc/configure mcf) thread_header=config/i386/gthr-mcf.h ;; esac -diff -ruN gcc-14.1.1/libobjc/configure gcc-14.1.1-kos/libobjc/configure ---- gcc-14.1.1/libobjc/configure 2024-01-04 16:01:37.499069099 -0600 -+++ gcc-14.1.1-kos/libobjc/configure 2024-01-04 16:01:42.915094489 -0600 +diff -ruN gcc-14.2.1/libobjc/configure gcc-14.2.1-kos/libobjc/configure +--- gcc-14.2.1/libobjc/configure 2024-01-04 16:01:37.499069099 -0600 ++++ gcc-14.2.1-kos/libobjc/configure 2024-01-04 16:01:42.915094489 -0600 @@ -2924,11 +2924,9 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -63,9 +63,9 @@ diff -ruN gcc-14.1.1/libobjc/configure gcc-14.1.1-kos/libobjc/configure ; return 0; } -diff -ruN gcc-14.1.1/libobjc/Makefile.in gcc-14.1.1-kos/libobjc/Makefile.in ---- gcc-14.1.1/libobjc/Makefile.in 2024-01-04 16:01:37.499069099 -0600 -+++ gcc-14.1.1-kos/libobjc/Makefile.in 2024-01-04 16:01:42.915094489 -0600 +diff -ruN gcc-14.2.1/libobjc/Makefile.in gcc-14.2.1-kos/libobjc/Makefile.in +--- gcc-14.2.1/libobjc/Makefile.in 2024-01-04 16:01:37.499069099 -0600 ++++ gcc-14.2.1-kos/libobjc/Makefile.in 2024-01-04 16:01:42.915094489 -0600 @@ -308,14 +308,16 @@ $(srcdir)/aclocal.m4: @MAINT@ $(aclocal_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) @@ -96,9 +96,9 @@ diff -ruN gcc-14.1.1/libobjc/Makefile.in gcc-14.1.1-kos/libobjc/Makefile.in mostlyclean: -$(LIBTOOL_CLEAN) rm -f libobjc$(libsuffix).la libobjc_gc$(libsuffix).la *.lo -diff -ruN gcc-14.1.1/libstdc++-v3/config/cpu/sh/atomicity.h gcc-14.1.1-kos/libstdc++-v3/config/cpu/sh/atomicity.h ---- gcc-14.1.1/libstdc++-v3/config/cpu/sh/atomicity.h 2024-01-04 16:01:37.608069611 -0600 -+++ gcc-14.1.1-kos/libstdc++-v3/config/cpu/sh/atomicity.h 2024-01-04 16:01:42.916094494 -0600 +diff -ruN gcc-14.2.1/libstdc++-v3/config/cpu/sh/atomicity.h gcc-14.2.1-kos/libstdc++-v3/config/cpu/sh/atomicity.h +--- gcc-14.2.1/libstdc++-v3/config/cpu/sh/atomicity.h 2024-01-04 16:01:37.608069611 -0600 ++++ gcc-14.2.1-kos/libstdc++-v3/config/cpu/sh/atomicity.h 2024-01-04 16:01:42.916094494 -0600 @@ -22,14 +22,40 @@ // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see // <http://www.gnu.org/licenses/>. @@ -149,9 +149,9 @@ diff -ruN gcc-14.1.1/libstdc++-v3/config/cpu/sh/atomicity.h gcc-14.1.1-kos/libst + +_GLIBCXX_END_NAMESPACE_VERSION +} // namespace -diff -ruN gcc-14.1.1/libstdc++-v3/configure gcc-14.1.1-kos/libstdc++-v3/configure ---- gcc-14.1.1/libstdc++-v3/configure 2024-01-04 16:01:37.616069648 -0600 -+++ gcc-14.1.1-kos/libstdc++-v3/configure 2024-01-04 16:01:42.919094508 -0600 +diff -ruN gcc-14.2.1/libstdc++-v3/configure gcc-14.2.1-kos/libstdc++-v3/configure +--- gcc-14.2.1/libstdc++-v3/configure 2024-01-04 16:01:37.616069648 -0600 ++++ gcc-14.2.1-kos/libstdc++-v3/configure 2024-01-04 16:01:42.919094508 -0600 @@ -15974,6 +15974,7 @@ tpf) thread_header=config/s390/gthr-tpf.h ;; vxworks) thread_header=config/gthr-vxworks.h ;; diff --git a/utils/dc-chain/profiles/profile.14.1.0.mk b/utils/dc-chain/profiles/profile.14.2.0.mk similarity index 98% rename from utils/dc-chain/profiles/profile.14.1.0.mk rename to utils/dc-chain/profiles/profile.14.2.0.mk index 380bd801..c7e015e2 100644 --- a/utils/dc-chain/profiles/profile.14.1.0.mk +++ b/utils/dc-chain/profiles/profile.14.2.0.mk @@ -3,7 +3,7 @@ # Toolchain versions for SH sh_binutils_ver=2.42 -sh_gcc_ver=14.1.0 +sh_gcc_ver=14.2.0 newlib_ver=4.4.0.20231231 gdb_ver=15.1 diff --git a/utils/dc-chain/profiles/profile.14.1.1-dev.mk b/utils/dc-chain/profiles/profile.14.2.1-dev.mk similarity index 94% rename from utils/dc-chain/profiles/profile.14.1.1-dev.mk rename to utils/dc-chain/profiles/profile.14.2.1-dev.mk index 8dd7962e..9fd615d5 100644 --- a/utils/dc-chain/profiles/profile.14.1.1-dev.mk +++ b/utils/dc-chain/profiles/profile.14.2.1-dev.mk @@ -4,13 +4,13 @@ ############################################################################### ############################################################################### ### THIS CONFIG IS FOR AN EXPERIMENTAL VERSION OF GCC! -## THERE ARE NO KNOWN ISSUES BUILDING THIS VERSION as of 2024-04-26. +## THERE ARE NO KNOWN ISSUES BUILDING THIS VERSION as of 2024-08-01. ############################################################################### ############################################################################### # Toolchain versions for SH sh_binutils_ver=2.42 -sh_gcc_ver=14.1.1 +sh_gcc_ver=14.2.1 newlib_ver=4.4.0.20231231 gdb_ver=15.1 hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: falcovorbis <fal...@us...> - 2024-07-31 18:58:25
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via c8aef24a4e9674e77cb8b6854c652cf68e3eac40 (commit) from 973216532c9cd340ce71aefa28c1233c10ffeff3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit c8aef24a4e9674e77cb8b6854c652cf68e3eac40 Author: Andy Barajas <and...@gm...> Date: Wed Jul 31 11:57:02 2024 -0700 Update minimum macOS version for toolchain build (#685) Updated the CXX line to set -mmacosx-version-min to 10.14 from 10.7 to support building the toolchain on M1 Macs. This ensures compatibility with newer macOS versions. ----------------------------------------------------------------------- Summary of changes: utils/dc-chain/scripts/init.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/dc-chain/scripts/init.mk b/utils/dc-chain/scripts/init.mk index bc37f4db..0115ca7d 100644 --- a/utils/dc-chain/scripts/init.mk +++ b/utils/dc-chain/scripts/init.mk @@ -63,7 +63,7 @@ ifdef MACOS sdkroot = $(shell xcrun --sdk macosx --show-sdk-path) macos_extra_args = -isysroot $(sdkroot) CC += -Wno-nullability-completeness -Wno-missing-braces $(macos_extra_args) - CXX += -stdlib=libc++ -mmacosx-version-min=10.7 $(macos_extra_args) + CXX += -stdlib=libc++ -mmacosx-version-min=10.14 $(macos_extra_args) SH_CC_FOR_TARGET += $(macos_extra_args) SH_CXX_FOR_TARGET += $(macos_extra_args) macos_gcc_configure_args = --with-sysroot --with-native-system-header=/usr/include hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: falcovorbis <fal...@us...> - 2024-07-31 17:59:48
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 973216532c9cd340ce71aefa28c1233c10ffeff3 (commit) from 25a851792351a9818cc5d02762f5f925ee05e69b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 973216532c9cd340ce71aefa28c1233c10ffeff3 Author: Donald Haase <qu...@ya...> Date: Wed Jul 31 13:59:22 2024 -0400 Replace duplicated define for the size of the PVR RAM (#688) Co-authored-by: QuzarDC <qu...@co...> ----------------------------------------------------------------------- Summary of changes: kernel/arch/dreamcast/hardware/video.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/kernel/arch/dreamcast/hardware/video.c b/kernel/arch/dreamcast/hardware/video.c index 6cae86f9..df945333 100644 --- a/kernel/arch/dreamcast/hardware/video.c +++ b/kernel/arch/dreamcast/hardware/video.c @@ -14,9 +14,6 @@ #include <string.h> #include <stdio.h> -/* The size of the vram. TODO: This needs a better home */ -#define PVR_MEM_SIZE 0x800000 - /*-----------------------------------------------------------------------------*/ /* This table is indexed w/ DM_* */ vid_mode_t vid_builtin[DM_MODE_COUNT] = { @@ -283,7 +280,7 @@ void vid_set_mode(int dm, vid_pixel_mode_t pm) { if(mb == DM_MULTIBUFFER) { /* Fill vram with framebuffers */ - mode.fb_count = PVR_MEM_SIZE / mode.fb_size; + mode.fb_count = PVR_RAM_SIZE / mode.fb_size; } /* This is also to be generic */ @@ -433,7 +430,7 @@ void vid_set_vram(uint32_t base) { void vid_set_start(uint32_t base) { /* Set vram base of current framebuffer */ - base &= (PVR_MEM_SIZE - 1); + base &= (PVR_RAM_SIZE - 1); PVR_SET(PVR_FB_ADDR, base); vid_set_vram(base); @@ -531,7 +528,7 @@ void vid_clear(uint8_t r, uint8_t g, uint8_t b) { /*-----------------------------------------------------------------------------*/ /* Clears all of video memory as quickly as possible */ void vid_empty(void) { - sq_clr((uint32_t *)PVR_RAM_BASE, PVR_MEM_SIZE); + sq_clr((uint32_t *)PVR_RAM_BASE, PVR_RAM_SIZE); } /*-----------------------------------------------------------------------------*/ hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: quzar <qu...@us...> - 2024-07-31 16:58:18
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 25a851792351a9818cc5d02762f5f925ee05e69b (commit) via 3f12e2627cbb9c7446345ed4627278c6e0cbf099 (commit) via d3e17e6bcfc558bda85ef8b0a63379061d646ea7 (commit) from d07bebfc468cd0046364031a01158c2e83ea2e00 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 25a851792351a9818cc5d02762f5f925ee05e69b Author: Falco Girgis <gyr...@gm...> Date: Wed Jul 31 11:55:31 2024 -0500 Added utime h POSIX header file (#658) * Added utime.h header for missing declaration. - Freaking Newlib does NOT publicly declare the utime() function within the cross-platform header, utime.h; however, we have utime() implemented for SH. - Trying to use the utime() function prior to GCC14 would result in an implicit declaration of the function, which would resolve at link-time. GCC14 deprecated this, so now it's a hard error. - Added utime.h header file to KOS's root include folder so that #include <utime.h> will look there and find it first, rather than using Newlib's (worthless) header. commit 3f12e2627cbb9c7446345ed4627278c6e0cbf099 Author: Falco Girgis <gyr...@gm...> Date: Wed Jul 31 11:52:43 2024 -0500 Fixed GCC9+10 build failures: pthread_atfork() (#663) 1) pthread_atfork()'s implementation was not declaring agument variables by name, which was not supported in ancient GCC9 and GCC10, apparently. 2) pthread_atfork() was added as a symbol for CMake checks for pthreads to pass, yet we were never declaring the symbol publicly anywhere, and implicit declarations of C functions are now deprecated in GCC14+. commit d3e17e6bcfc558bda85ef8b0a63379061d646ea7 Author: Andy Barajas <and...@gm...> Date: Wed Jul 31 09:47:23 2024 -0700 Fix ramdisk_find (#687) Fix ramdisk_find by making sure we also compare the filename lengths so false positives wont occur ----------------------------------------------------------------------- Summary of changes: include/pthread.h | 3 ++- include/utime.h | 32 ++++++++++++++++++++++++++++++++ kernel/fs/fs_ramdisk.c | 4 ++-- kernel/libc/pthreads/pthread_thd.c | 5 +++-- 4 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 include/utime.h diff --git a/include/pthread.h b/include/pthread.h index bfff123a..c9ba378f 100644 --- a/include/pthread.h +++ b/include/pthread.h @@ -62,7 +62,8 @@ extern "C" { NOTE: RTEMS does not provide pthread_atfork(). */ #if !defined(__rtems__) -// #warning "Add pthread_atfork() prototype" + int pthread_atfork(void (*prepare)(void), void (*parent)(void), + void (*child)(void)); #endif /* Mutex Initialization Attributes, P1003.1c/Draft 10, p. 81 */ diff --git a/include/utime.h b/include/utime.h new file mode 100644 index 00000000..c7f9ef45 --- /dev/null +++ b/include/utime.h @@ -0,0 +1,32 @@ +/* KallistiOS ##version## + + utime.h + Copyright (C) 2024 Falco Girgis +*/ + +/** \file utime.h + \brief KOS extension of Newlib's utime.h + + Newlib does not ever actually declare a prototype for utime() within + its header, despite implementing it for SH. We add the prototype ourselves. + + \author Falco Girgis +*/ + +#ifndef __KOS_UTIME_H +#define __KOS_UTIME_H + +__BEGIN_DECLS + +#include <time.h> + +struct utimbuf { + time_t actime; /**< access time */ + time_t modtime; /**< modification time */ +}; + +extern int utime(const char *path, struct utimbuf *times); + +__END_DECLS + +#endif /* __KOS_UTIME_H */ diff --git a/kernel/fs/fs_ramdisk.c b/kernel/fs/fs_ramdisk.c index b2c8d57e..2dd0eda3 100644 --- a/kernel/fs/fs_ramdisk.c +++ b/kernel/fs/fs_ramdisk.c @@ -103,11 +103,11 @@ static mutex_t rd_mutex; /* Search a directory for the named file; return the struct if we find it. Assumes we hold rd_mutex. */ -static rd_file_t * ramdisk_find(rd_dir_t * parent, const char * name, int namelen) { +static rd_file_t *ramdisk_find(rd_dir_t *parent, const char *name, size_t namelen) { rd_file_t *f; LIST_FOREACH(f, parent, dirlist) { - if(!strncasecmp(name, f->name, namelen)) + if((strlen(f->name) == namelen) && !strncasecmp(name, f->name, namelen)) return f; } diff --git a/kernel/libc/pthreads/pthread_thd.c b/kernel/libc/pthreads/pthread_thd.c index 9217c9e8..04152942 100644 --- a/kernel/libc/pthreads/pthread_thd.c +++ b/kernel/libc/pthreads/pthread_thd.c @@ -71,7 +71,8 @@ int pthread_equal(pthread_t t1, pthread_t t2) { return t1 == t2; } -int pthread_atfork(void (*)(void), void (*)(void), void (*)(void)) -{ +int pthread_atfork(void (*prepare)(void), void (*parent)(void), + void (*child)(void)) { + (void)prepare; (void)parent; (void)child; return 0; } hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: falcovorbis <fal...@us...> - 2024-07-31 01:51:12
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via d07bebfc468cd0046364031a01158c2e83ea2e00 (commit) from 2fdebacac9d70c372e0b6926ffd4ff73728c93ec (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit d07bebfc468cd0046364031a01158c2e83ea2e00 Author: Andy Barajas <and...@gm...> Date: Fri Jul 26 05:49:17 2024 -0700 Fix PVR_PACK_COLOR macro (#683) ----------------------------------------------------------------------- Summary of changes: kernel/arch/dreamcast/include/dc/pvr.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/arch/dreamcast/include/dc/pvr.h b/kernel/arch/dreamcast/include/dc/pvr.h index 84341efb..bd070e11 100644 --- a/kernel/arch/dreamcast/include/dc/pvr.h +++ b/kernel/arch/dreamcast/include/dc/pvr.h @@ -969,10 +969,10 @@ typedef struct { \return The packed color value */ #define PVR_PACK_COLOR(a, r, g, b) ( \ - ( ((uint8)( a * 255 ) ) << 24 ) | \ - ( ((uint8)( r * 255 ) ) << 16 ) | \ - ( ((uint8)( g * 255 ) ) << 8 ) | \ - ( ((uint8)( b * 255 ) ) << 0 ) ) + ( ((uint8_t)( (a) * 255 ) ) << 24 ) | \ + ( ((uint8_t)( (r) * 255 ) ) << 16 ) | \ + ( ((uint8_t)( (g) * 255 ) ) << 8 ) | \ + ( ((uint8_t)( (b) * 255 ) ) << 0 ) ) /** \brief Pack two floating point coordinates into one 32-bit value, truncating them to 16-bits each. hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: falcovorbis <fal...@us...> - 2024-07-17 03:34:11
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 2fdebacac9d70c372e0b6926ffd4ff73728c93ec (commit) from 1baf3245a6e8d30613ebcf943142fc884e3d8b6a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 2fdebacac9d70c372e0b6926ffd4ff73728c93ec Author: Paul Cercueil <pa...@cr...> Date: Wed Jul 17 05:33:52 2024 +0200 CMake: Support romdisks in C++ projects (#677) * bin2c: Generate code compilable with C++ compiler Mark the variables as "extern C" so that the generated source file can be compiled with a C++ compiler and still link properly with KallistiOS. Signed-off-by: Paul Cercueil <pa...@cr...> * CMake: Support generating romdisk in C++-only projects When the project is C++ only, any .c file added to the target sources will be ignored by CMake. This meant that the source file generated by kos_add_romdisk() macro would not be compiled. Address this issue by changing the extension of the generated source file to .cpp when a C++ compiler is used. Signed-off-by: Paul Cercueil <pa...@cr...> --------- Signed-off-by: Paul Cercueil <pa...@cr...> ----------------------------------------------------------------------- Summary of changes: utils/bin2c/bin2c.c | 3 +++ utils/cmake/dreamcast.cmake | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/utils/bin2c/bin2c.c b/utils/bin2c/bin2c.c index 66924a26..7ba8847d 100644 --- a/utils/bin2c/bin2c.c +++ b/utils/bin2c/bin2c.c @@ -26,7 +26,10 @@ void convert(char *ifn, char *ofn, char *prefix) { fseek(i, 0, SEEK_SET); setbuf(o, buf); + fprintf(o, "#ifdef __cplusplus\nextern \"C\"\n#endif\n"); fprintf(o, "const int %s_size = %d;\n", prefix, left); + + fprintf(o, "#ifdef __cplusplus\nextern \"C\"\n#endif\n"); fprintf(o, "const unsigned char %s_data[%d] =", prefix, left); fprintf(o, "{\n\t"); diff --git a/utils/cmake/dreamcast.cmake b/utils/cmake/dreamcast.cmake index 9781bdfe..a8f7b5a4 100644 --- a/utils/cmake/dreamcast.cmake +++ b/utils/cmake/dreamcast.cmake @@ -66,7 +66,13 @@ function(kos_add_romdisk target romdiskPath) file(REAL_PATH "${romdiskPath}" romdiskPath) - set(c_tmp ${CMAKE_CURRENT_BINARY_DIR}/${romdiskName}_tmp.c) + if(CMAKE_CXX_COMPILER_LOADED) + set(tmpExt cpp) + else() + set(tmpExt c) + endif() + + set(c_tmp ${CMAKE_CURRENT_BINARY_DIR}/${romdiskName}_tmp.${tmpExt}) set(img ${CMAKE_CURRENT_BINARY_DIR}/${romdiskName}.img) # Variable holding all files in the romdiskPath folder hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: falcovorbis <fal...@us...> - 2024-07-16 00:18:05
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 1baf3245a6e8d30613ebcf943142fc884e3d8b6a (commit) from a03ea3dc765c332ae2b1263ad2c87143a4c69ac3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 1baf3245a6e8d30613ebcf943142fc884e3d8b6a Author: Andy Barajas <and...@gm...> Date: Mon Jul 15 17:17:49 2024 -0700 Using dcache_inval_range instead should work now since zcrc fixed it (#668) ----------------------------------------------------------------------- Summary of changes: kernel/arch/dreamcast/hardware/network/broadband_adapter.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/kernel/arch/dreamcast/hardware/network/broadband_adapter.c b/kernel/arch/dreamcast/hardware/network/broadband_adapter.c index 76852d8f..36df6dad 100644 --- a/kernel/arch/dreamcast/hardware/network/broadband_adapter.c +++ b/kernel/arch/dreamcast/hardware/network/broadband_adapter.c @@ -543,11 +543,8 @@ static int bba_copy_dma(uint8 * dst, uint32 s, int len) { dst -= add; #ifndef USE_P2_AREA - /* - used to be a call to dcache_inval_range, but for some strange reasons, I need to - make a full flush now ... - */ - dcache_flush_range((uint32) dst, len); + /* Invalidate the dcache over the range of the data. */ + dcache_inval_range((uint32) dst, len); #endif if(!dma_used) { hooks/post-receive -- A pseudo Operating System for the Dreamcast. |
From: falcovorbis <fal...@us...> - 2024-07-15 22:45:51
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via a03ea3dc765c332ae2b1263ad2c87143a4c69ac3 (commit) from 15115fbf34867109f2e73fb066d8eeee5d70320c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit a03ea3dc765c332ae2b1263ad2c87143a4c69ac3 Author: Donald Haase <qu...@ya...> Date: Mon Jul 15 18:45:26 2024 -0400 Ensure thd_current does not get set to null (#674) * Remove the use of setting thd_current to null to signal wait. As this also was only happening when the thread state was being set to STATE_WAIT, the checks against it were always pointless due to being followed by testing against STATE_RUNNING. The dontenq variable can be removed entirely due to this. I can only imagine that this predated the state system. * Remove accidentally added includes to genwait. --------- Co-authored-by: QuzarDC <qu...@co...> ----------------------------------------------------------------------- Summary of changes: kernel/thread/genwait.c | 1 - kernel/thread/thread.c | 9 ++------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/kernel/thread/genwait.c b/kernel/thread/genwait.c index 64285666..da50dbb2 100644 --- a/kernel/thread/genwait.c +++ b/kernel/thread/genwait.c @@ -81,7 +81,6 @@ int genwait_wait(void * obj, const char * mesg, int timeout, void (*callback)(vo /* Prepare us for sleep */ me = thd_current; - thd_current = NULL; me->state = STATE_WAIT; me->wait_obj = obj; me->wait_msg = mesg; diff --git a/kernel/thread/thread.c b/kernel/thread/thread.c index b7b360dd..5fe46097 100644 --- a/kernel/thread/thread.c +++ b/kernel/thread/thread.c @@ -660,16 +660,11 @@ static void thd_update_cpu_time(kthread_t *thd) { don't want a full context switch inside the same priority group. */ void thd_schedule(bool front_of_line, uint64_t now) { - int dontenq; kthread_t *thd; if(now == 0) now = timer_ms_gettime64(); - /* We won't re-enqueue the current thread if it's NULL (i.e., the - thread blocked itself somewhere) or if it's a zombie (below) */ - dontenq = !thd_current; - /* If there's only two thread left, it's the idle task and the reaper task: exit the OS */ if(thd_count == 2) { @@ -679,7 +674,7 @@ void thd_schedule(bool front_of_line, uint64_t now) { /* If the current thread is supposed to be in the front of the line, and it did not die, re-enqueue it to the front of the line now. */ - if(front_of_line && !dontenq && thd_current->state == STATE_RUNNING) { + if(front_of_line && thd_current->state == STATE_RUNNING) { thd_current->state = STATE_READY; thd_add_to_runnable(thd_current, front_of_line); } @@ -698,7 +693,7 @@ void thd_schedule(bool front_of_line, uint64_t now) { /* If we didn't already re-enqueue the thread and we are supposed to do so, do it now. */ - if(!front_of_line && !dontenq && thd_current->state == STATE_RUNNING) { + if(!front_of_line && thd_current->state == STATE_RUNNING) { thd_current->state = STATE_READY; thd_add_to_runnable(thd_current, front_of_line); hooks/post-receive -- A pseudo Operating System for the Dreamcast. |