diff options
Diffstat (limited to 'examples/hello')
| -rw-r--r-- | examples/hello/main.c | 118 | ||||
| -rw-r--r-- | examples/hello/makefile | 60 |
2 files changed, 0 insertions, 178 deletions
diff --git a/examples/hello/main.c b/examples/hello/main.c deleted file mode 100644 index 1f02f0b..0000000 --- a/examples/hello/main.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - * LibPSn00b Example Programs - * - * Hello World Example - * 2019-2020 Meido-Tek Productions / PSn00bSDK Project - * - * The obligatory hello world example normally included in nearly every - * SDK package. This example should also get you started in how to manage - * the display using psxgpu. - * - * Example by Lameguy64 - * - * - * Changelog: - * - * January 1, 2020 - Initial version - */ - -#include <stdio.h> -#include <sys/types.h> -#include <psxetc.h> -#include <psxgte.h> -#include <psxgpu.h> - - -// Define display/draw environments for double buffering -DISPENV disp[2]; -DRAWENV draw[2]; -int db; - - -// Init function -void init(void) -{ - // This not only resets the GPU but it also installs the library's - // ISR subsystem to the kernel - ResetGraph(0); - - // Define display environments, first on top and second on bottom - SetDefDispEnv(&disp[0], 0, 0, 320, 240); - SetDefDispEnv(&disp[1], 0, 240, 320, 240); - - // Define drawing environments, first on bottom and second on top - SetDefDrawEnv(&draw[0], 0, 240, 320, 240); - SetDefDrawEnv(&draw[1], 0, 0, 320, 240); - - // Set and enable clear color - setRGB0(&draw[0], 0, 96, 0); - setRGB0(&draw[1], 0, 96, 0); - draw[0].isbg = 1; - draw[1].isbg = 1; - - // Clear double buffer counter - db = 0; - - // Apply the GPU environments - PutDispEnv(&disp[db]); - PutDrawEnv(&draw[db]); - - // Load test font - FntLoad(960, 0); - - // Open up a test font text stream of 100 characters - FntOpen(0, 8, 320, 224, 0, 100); -} - -// Display function -void display(void) -{ - // Flip buffer index - db = !db; - - // Wait for all drawing to complete - DrawSync(0); - - // Wait for vertical sync to cap the logic to 60fps (or 50 in PAL mode) - // and prevent screen tearing - VSync(0); - - // Switch pages - PutDispEnv(&disp[db]); - PutDrawEnv(&draw[db]); - - // Enable display output, ResetGraph() disables it by default - SetDispMask(1); - -} - -// Main function, program entrypoint -int main(int argc, const char *argv[]) -{ - int counter; - - // Init stuff - init(); - - // Main loop - counter = 0; - while(1) - { - - // Print the obligatory hello world and counter to show that the - // program isn't locking up to the last created text stream - FntPrint(-1, "HELLO WORLD\n"); - FntPrint(-1, "COUNTER=%d\n", counter); - - // Draw the last created text stream - FntFlush(-1); - - // Update display - display(); - - // Increment the counter - counter++; - } - - return 0; -} diff --git a/examples/hello/makefile b/examples/hello/makefile deleted file mode 100644 index 77edaa7..0000000 --- a/examples/hello/makefile +++ /dev/null @@ -1,60 +0,0 @@ -include ../sdk-common.mk - -# Project target name -TARGET = hello.elf - -# Searches for C, C++ and S (assembler) files in local directory -CFILES = $(notdir $(wildcard *.c)) -CPPFILES = $(notdir $(wildcard *.cpp)) -AFILES = $(notdir $(wildcard *.s)) - -# Determine object files -OFILES = $(addprefix build/,$(CFILES:.c=.o)) \ - $(addprefix build/,$(CPPFILES:.cpp=.o)) \ - $(addprefix build/,$(AFILES:.s=.o)) - -# Project specific include and library directories -# (use -I for include dirs, -L for library dirs) -INCLUDE += -LIBDIRS += - -# Libraries to link -LIBS = -lpsxetc -lpsxgpu -lpsxgte -lpsxspu -lpsxapi -lc - -# C compiler flags -CFLAGS = -g -O2 -fno-builtin -fdata-sections -ffunction-sections - -# C++ compiler flags -CPPFLAGS = $(CFLAGS) -fno-exceptions - -# Assembler flags -AFLAGS = -g -msoft-float - -# Linker flags -LDFLAGS = -g -Ttext=0x80010000 -gc-sections \ - -T $(GCC_BASE)/mipsel-unknown-elf/lib/ldscripts/elf32elmip.x - -# Toolchain programs -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: %.cpp - @mkdir -p $(dir $@) - $(CXX) $(AFLAGS) $(INCLUDE) -c $< -o $@ - -build/%.o: %.s - @mkdir -p $(dir $@) - $(CC) $(AFLAGS) $(INCLUDE) -c $< -o $@ - -clean: - rm -rf build $(TARGET) $(TARGET:.elf=.exe) |
