From 3ffebff2aad2ca438cf76db51fb3459c5639cd67 Mon Sep 17 00:00:00 2001 From: lameguy64 Date: Thu, 23 May 2019 22:24:56 +0800 Subject: Added BIOS Controller, BIOS CD, 2 new examples and custom exit handler in the works --- examples/rgb24/bunpattern.tim | Bin 0 -> 921620 bytes examples/rgb24/main.c | 52 ++++++++++++++++++++++++++++++++++++++++++ examples/rgb24/makefile | 41 +++++++++++++++++++++++++++++++++ examples/rgb24/tim.s | 7 ++++++ 4 files changed, 100 insertions(+) create mode 100644 examples/rgb24/bunpattern.tim create mode 100644 examples/rgb24/main.c create mode 100644 examples/rgb24/makefile create mode 100644 examples/rgb24/tim.s (limited to 'examples/rgb24') diff --git a/examples/rgb24/bunpattern.tim b/examples/rgb24/bunpattern.tim new file mode 100644 index 0000000..f233453 Binary files /dev/null and b/examples/rgb24/bunpattern.tim differ diff --git a/examples/rgb24/main.c b/examples/rgb24/main.c new file mode 100644 index 0000000..178ece2 --- /dev/null +++ b/examples/rgb24/main.c @@ -0,0 +1,52 @@ +/* LibPSn00b Example Programs + * Part of the PSn00bSDK Project + * + * RGB24 Example by Lameguy64 + * + * + * This example demonstrates the 24-bit color mode of the PS1. This mode is + * not practical for gameplay as the GPU can only draw graphics primitives + * in 16-bit color depth so this feature would normally be used only for + * fullscreen graphic illustrations or FMV sequences. + * + * + * Changelog: + * + * 05-03-2019 - Initial version. + * + */ + +#include +#include +#include + +// So data from tim.s can be accessed +extern unsigned int tim_image[]; + +int main() { + + DISPENV disp; + TIM_IMAGE tim; + + // Reset GPU + ResetGraph(0); + + // Setup 640x480 24-bit video mode + SetDefDispEnv(&disp, 0, 0, 640, 480); + disp.isrgb24 = 1; + disp.isinter = 1; + + // Apply and enable display + PutDispEnv(&disp); + SetDispMask(1); + + // Upload image to VRAM + GetTimInfo(tim_image, &tim); + LoadImage(tim.prect, tim.paddr); + DrawSync(); + + while(1) { + } + + return 0; +} \ No newline at end of file diff --git a/examples/rgb24/makefile b/examples/rgb24/makefile new file mode 100644 index 0000000..ada9fbb --- /dev/null +++ b/examples/rgb24/makefile @@ -0,0 +1,41 @@ +include ../sdk-common.mk + +TARGET = rgb24.elf + +CFILES = $(notdir $(wildcard *.c)) +CPPFILES = $(notdir $(wildcard *.cpp)) +AFILES = $(notdir $(wildcard *.s)) + +OFILES = $(addprefix build/,$(CFILES:.c=.o) $(CPPFILES:.cpp=.o) $(AFILES:.s=.o)) + +INCLUDE += +LIBDIRS += + +LIBS = -lc -lpsxgpu -lpsxapi -lgcc + +CFLAGS = -g -O2 -fno-builtin -fdata-sections -ffunction-sections +CPPFLAGS = $(CFLAGS) -fno-exceptions +AFLAGS = -g -msoft-float +LDFLAGS = -g -Ttext=0x80010000 -gc-sections + +CC = $(PREFIX)gcc +CXX = $(PREFIX)g++ +AS = $(PREFIX)as +LD = $(PREFIX)ld + +all: $(OFILES) + $(LD) $(LDFLAGS) $(LIBDIRS) $(OFILES) $(LIBS) -o $(TARGET) + elf2x -q $(TARGET) + +build/%.o: %.c + @mkdir -p $(dir $@) + $(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@ + +build/%.o: %.s + @mkdir -p $(dir $@) + $(CC) $(AFLAGS) $(INCLUDE) -c $< -o $@ + +build/%.o: %.tim + +clean: + rm -rf build $(TARGET) $(TARGET:.elf=.exe) diff --git a/examples/rgb24/tim.s b/examples/rgb24/tim.s new file mode 100644 index 0000000..a4432d9 --- /dev/null +++ b/examples/rgb24/tim.s @@ -0,0 +1,7 @@ +.section .data + +.global tim_image +.type tim_image, @object +tim_image: + .incbin "bunpattern.tim" + \ No newline at end of file -- cgit v1.2.3